GIN improvements part 1: additional information

Started by Alexander Korotkovover 12 years ago123 messages
#1Alexander Korotkov
aekorotkov@gmail.com
1 attachment(s)

Hackers,

Revised version of patch for additional information storage in GIN is
attached. Changes are mostly bug fixes.

Resemble GIN interface changes that this patch introduce.
Patch modifies GIN interface as following:
1) Two arguments are added to extractValue
Datum **addInfo, bool **addInfoIsNull
2) Two arguments are added to consistent
Datum addInfo[], bool addInfoIsNull[]
3) New method config is introduced which returns datatype oid of addtional
information (analogy with SP-GiST config method).

Additionally there is another patch which demonstrates benefits from
additional information storage itself (because it don't accelerate tsearch
itselt). It comes in separate thread.

------
With best regards,
Alexander Korotkov.

Attachments:

ginaddinfo.4.patch.gzapplication/x-gzip; name=ginaddinfo.4.patch.gzDownload
#2Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#1)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Fri, Jun 14, 2013 at 12:09 AM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

Revised version of patch for additional information storage in GIN is
attached. Changes are mostly bug fixes.

New version of patch is attached with some more refactoring and bug fixes.

------
With best regards,
Alexander Korotkov.

Attachments:

ginaddinfo.5.patch.gzapplication/x-gzip; name=ginaddinfo.5.patch.gzDownload
#3Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#2)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Mon, Jun 17, 2013 at 4:54 PM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Fri, Jun 14, 2013 at 12:09 AM, Alexander Korotkov <aekorotkov@gmail.com

wrote:

Revised version of patch for additional information storage in GIN is
attached. Changes are mostly bug fixes.

New version of patch is attached with some more refactoring and bug fixes.

Another revision with more bug fixes.

------
With best regards,
Alexander Korotkov.

Attachments:

ginaddinfo.6.patch.gzapplication/x-gzip; name=ginaddinfo.6.patch.gzDownload
#4Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#3)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Wed, Jun 19, 2013 at 12:44 AM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

On Mon, Jun 17, 2013 at 4:54 PM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Fri, Jun 14, 2013 at 12:09 AM, Alexander Korotkov <
aekorotkov@gmail.com> wrote:

Revised version of patch for additional information storage in GIN is
attached. Changes are mostly bug fixes.

New version of patch is attached with some more refactoring and bug fixes.

Another revision with more bug fixes.

New revision of patch is attached. Now it includes some docs.

------
With best regards,
Alexander Korotkov.

Attachments:

ginaddinfo.7.patch.gzapplication/x-gzip; name=ginaddinfo.7.patch.gzDownload
#5Antonin Houska
antonin.houska@gmail.com
In reply to: Alexander Korotkov (#4)
Re: GIN improvements part 1: additional information

On 06/25/2013 12:03 AM, Alexander Korotkov wrote:

New revision of patch is attached. Now it includes some docs.

Hi,
I was curious about the new layout of the data page, so I spent a while
looking into the code.
It's interesting, but I suspect 2 things are not o.k.:

* gindatapage.c:dataIsEnoughSpace() - 'i++' in the for loop should
probably be 'j++', otherwise it loops forever

* gin_private.h:ginDataPageLeafRead() - fetch_att() is used to retrieve
the additional info, but per the definition and comments in tupmacs.h it
expects aligned pointer.

* gindatapage.c:ginCheckPlaceToDataPageLeaf() - comment "if leaf data
page" should probably be "on a leaf data page" or so.

Regards,
Antonin Houska (Tony)

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

#6Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#4)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 25.06.2013 01:03, Alexander Korotkov wrote:

New revision of patch is attached. Now it includes some docs.

Thanks! I'm looking into this in detail now.

First, this patch actually contains two major things:

1. Pack item pointers more tightly on posting data leaf pages.
2. Allow opclass implementation to attach "additional information" to
each item pointer.

These are two very distinct features, so this patch needs to be split
into two. I extracted the 1st part into a separate patch, attached, and
am going to focus on that now.

I made one significant change: I removed the 'freespace' field you added
to GinpageOpaque. Instead, on data leaf pages the offset from the
beginning of the page where the packed items end is stored in place of
the 'maxoff' field. This allows for quick calculation of the free space,
but there is no count of item pointers stored on the page anymore, so
some code that looped through all the item pointers relying on 'maxoff'
had to be changed to work with the end offset instead. I'm not 100%
wedded on this, but I'd like to avoid adding the redundant freespace
field on pages that don't need it, because it's confusing and you have
to remember to keep them in sync.

The patch needs a lot of cleanup still, and I may well have broken some
stuff, but I'm quite pleased with the performance. I tested this with
two tables; one is the titles from the DBLP dataset. Another is integer
arrays, created with this:

create function randomintarr() returns int[] as $$ select
array_agg((random() * 1000.0)::int4) from generate_series(1,10) $$
language sql;
create table intarrtbl as select randomintarr() as ii from
generate_series(1, 10000000);

The effect on the index sizes is quite dramatic:

postgres=# \di+
List of relations
Schema | Name | Type | Owner | Table | Size |
--------+--------------------+-------+--------+-------------+--------+
public | gin_intarr_master | index | heikki | intarrtbl | 585 MB |
public | gin_intarr_patched | index | heikki | intarrtbl | 211 MB |
public | gin_title | index | heikki | dblp_titles | 93 MB |
public | gin_title_master | index | heikki | dblp_titles | 180 MB |
(4 rows)

Tomas Vondra tested the search performance of an earlier version of this
patch: /messages/by-id/50BFF89A.7080908@fuzzy.cz).
He initially saw a huge slowdown, but could not reproduce it with a
later version of the patch. I did not see much difference in a few quick
queries I ran, so we're probably good on that front.

There's a few open questions:

1. How are we going to handle pg_upgrade? It would be nice to be able to
read the old page format, or convert on-the-fly. OTOH, if it gets too
complicated, might not be worth it. The indexes are much smaller with
the patch, so anyone using GIN probably wants to rebuild them anyway,
sooner or later. Still, I'd like to give it a shot.

2. The patch introduces a small fixed 32-entry index into the packed
items. Is that an optimal number?

3. I'd like to see some performance testing of insertions, deletions,
and vacuum. I suspect that maintaining the 32-entry index might be
fairly expensive, as it's rewritten on every update to a leaf page.

- Heikki

Attachments:

gin-packed-postinglists-1.patchtext/x-diff; name=gin-packed-postinglists-1.patchDownload
*** a/src/backend/access/gin/README
--- b/src/backend/access/gin/README
***************
*** 145,150 **** none appear in the key entry itself.  The separate pages are called a
--- 145,151 ----
  Note that in either case, the ItemPointers associated with a key can
  easily be read out in sorted order; this is relied on by the scan
  algorithms.
+ FIXME: Update above paragraph!
  
  * The index tuple header fields of a leaf key entry are abused as follows:
  
*** a/src/backend/access/gin/gindatapage.c
--- b/src/backend/access/gin/gindatapage.c
***************
*** 17,22 ****
--- 17,113 ----
  #include "access/gin_private.h"
  #include "utils/rel.h"
  
+ /*
+  * Write item pointer into leaf data page using varbyte encoding. Since
+  * BlockNumber is stored in incremental manner we also need a previous item
+  * pointer.
+  */
+ char *
+ ginDataPageLeafWriteItemPointer(char *ptr, ItemPointer iptr, ItemPointer prev)
+ {
+ 	uint32		blockNumberIncr;
+ 	uint16		offset;
+ 	uint8		v;
+ 
+ 	blockNumberIncr = iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16) -
+ 					  (prev->ip_blkid.bi_lo + (prev->ip_blkid.bi_hi << 16));
+ 	for (;;)
+ 	{
+ 		if (blockNumberIncr < HIGHBIT)
+ 		{
+ 			v = (uint8) blockNumberIncr;
+ 			*ptr = v;
+ 			ptr++;
+ 			break;
+ 		}
+ 		else
+ 		{
+ 			v = ((uint8) blockNumberIncr) | HIGHBIT;
+ 			*ptr = v;
+ 			ptr++;
+ 			blockNumberIncr >>= 7;
+ 		}
+ 	}
+ 
+ 	offset = iptr->ip_posid;
+ 	for (;;)
+ 	{
+ 		if (offset < HIGHBIT)
+ 		{
+ 			v = (uint8) offset;
+ 			*ptr = v;
+ 			ptr++;
+ 			break;
+ 		}
+ 		else
+ 		{
+ 			v = ((uint8) offset) | HIGHBIT;
+ 			*ptr = v;
+ 			ptr++;
+ 			offset >>= 7;
+ 		}
+ 	}
+ 
+ 	return ptr;
+ }
+ 
+ /*
+  * Calculate size of incremental varbyte encoding of item pointer.
+  */
+ static int
+ ginDataPageLeafGetItemPointerSize(ItemPointer iptr, ItemPointer prev)
+ {
+ 	uint32		blockNumberIncr;
+ 	uint16		offset;
+ 	int			size = 0;
+ 
+ 	blockNumberIncr = iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16) -
+ 					  (prev->ip_blkid.bi_lo + (prev->ip_blkid.bi_hi << 16));
+ 	do
+ 	{
+ 		size++;
+ 		blockNumberIncr >>= 7;
+ 	} while (blockNumberIncr > 0);
+ 
+ 	offset = iptr->ip_posid;
+ 	do
+ 	{
+ 		size++;
+ 		offset >>= 7;
+ 	} while (offset > 0);
+ 
+ 	return size;
+ }
+ 
+ /*
+  * Returns size of item pointers if leaf data page after inserting another one.
+  */
+ Size
+ ginCheckPlaceToDataPageLeaf(ItemPointer iptr, ItemPointer prev, Size size)
+ {
+ 	return size + ginDataPageLeafGetItemPointerSize(iptr, prev);
+ }
+ 
  int
  ginCompareItemPointers(ItemPointer a, ItemPointer b)
  {
***************
*** 159,164 **** dataLocateItem(GinBtree btree, GinBtreeStack *stack)
--- 250,322 ----
  }
  
  /*
+  * Find item pointer in leaf data page. Returns true if given item pointer is
+  * found and false if it's not. Sets offset and iptrOut to last item pointer
+  * which is less than given one. Sets ptrOut ahead that item pointer.
+  */
+ static bool
+ findInLeafPage(GinBtree btree, Page page, OffsetNumber *offset,
+ 	ItemPointerData *iptrOut, Pointer *ptrOut)
+ {
+ 	Pointer		ptr = GinDataPageGetData(page);
+ 	OffsetNumber i, maxoff, first = FirstOffsetNumber;
+ 	ItemPointerData iptr = {{0,0},0};
+ 	int cmp;
+ 
+ 	maxoff = GinPageGetOpaque(page)->maxoff;
+ 
+ 	/*
+ 	 * At first, search index at the end of page. As the result we narrow
+ 	 * [first, maxoff] range.
+ 	 */
+ 	for (i = 0; i < GinDataLeafIndexCount; i++)
+ 	{
+ 		GinDataLeafItemIndex *index = &GinPageGetIndexes(page)[i];
+ 		if (index->offsetNumer == InvalidOffsetNumber)
+ 			break;
+ 
+ 		cmp = ginCompareItemPointers(&index->iptr, btree->items + btree->curitem);
+ 		if (cmp < 0)
+ 		{
+ 			ptr = GinDataPageGetData(page) + index->pageOffset;
+ 			first = index->offsetNumer;
+ 			iptr = index->iptr;
+ 		}
+ 		else
+ 		{
+ 			maxoff = index->offsetNumer - 1;
+ 			break;
+ 		}
+ 	}
+ 
+ 	/* Search page in [first, maxoff] range found by page index */
+ 	for (i = first; i <= maxoff; i++)
+ 	{
+ 		*ptrOut = ptr;
+ 		*iptrOut = iptr;
+ 		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+ 
+ 		cmp = ginCompareItemPointers(btree->items + btree->curitem, &iptr);
+ 		if (cmp == 0)
+ 		{
+ 			*offset = i;
+ 			return true;
+ 		}
+ 		if (cmp < 0)
+ 		{
+ 			*offset = i;
+ 			return false;
+ 		}
+ 	}
+ 
+ 	*ptrOut = ptr;
+ 	*iptrOut = iptr;
+ 	*offset = GinPageGetOpaque(page)->maxoff + 1;
+ 	return false;
+ }
+ 
+ 
+ /*
   * Searches correct position for value on leaf page.
   * Page should be correctly chosen.
   * Returns true if value found on page.
***************
*** 167,175 **** static bool
  dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
  {
  	Page		page = BufferGetPage(stack->buffer);
! 	OffsetNumber low,
! 				high;
! 	int			result;
  
  	Assert(GinPageIsLeaf(page));
  	Assert(GinPageIsData(page));
--- 325,332 ----
  dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
  {
  	Page		page = BufferGetPage(stack->buffer);
! 	ItemPointerData iptr;
! 	Pointer		ptr;
  
  	Assert(GinPageIsLeaf(page));
  	Assert(GinPageIsData(page));
***************
*** 180,215 **** dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
  		return TRUE;
  	}
  
! 	low = FirstOffsetNumber;
! 	high = GinPageGetOpaque(page)->maxoff;
! 
! 	if (high < low)
! 	{
! 		stack->off = FirstOffsetNumber;
! 		return false;
! 	}
! 
! 	high++;
! 
! 	while (high > low)
! 	{
! 		OffsetNumber mid = low + ((high - low) / 2);
! 
! 		result = ginCompareItemPointers(btree->items + btree->curitem, (ItemPointer) GinDataPageGetItem(page, mid));
  
- 		if (result == 0)
- 		{
- 			stack->off = mid;
- 			return true;
- 		}
- 		else if (result > 0)
- 			low = mid + 1;
- 		else
- 			high = mid;
- 	}
- 
- 	stack->off = high;
- 	return false;
  }
  
  /*
--- 337,344 ----
  		return TRUE;
  	}
  
! 	return findInLeafPage(btree, page, &stack->off, &iptr, &ptr);
  
  }
  
  /*
***************
*** 333,345 **** dataIsEnoughSpace(GinBtree btree, Buffer buf, OffsetNumber off)
  
  	if (GinPageIsLeaf(page))
  	{
! 		if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
  		{
! 			if ((btree->nitem - btree->curitem) * sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
! 				return true;
  		}
! 		else if (sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
  			return true;
  	}
  	else if (sizeof(PostingItem) <= GinDataPageGetFreeSpace(page))
  		return true;
--- 462,498 ----
  
  	if (GinPageIsLeaf(page))
  	{
! 		int i, n, j;
! 		ItemPointerData iptr = {{0,0},0};
! 		Size size = 0;
! 
! 		/*
! 		 * Calculate additional size using worst case assumption: varbyte
! 		 * encoding from zero item pointer. Also use worst case assumption about
! 		 * alignment.
! 		 */
! 		n = GinPageGetOpaque(page)->maxoff;
! 
! 		if (GinPageRightMost(page) && off > n)
! 		{
! 			for (j = btree->curitem; j < btree->nitem; j++)
! 			{
! 				size = ginCheckPlaceToDataPageLeaf(&btree->items[j],
! 					(j == btree->curitem) ? (&iptr) : &btree->items[j - 1],
! 												   size);
! 				i++;
! 			}
! 		}
! 		else
  		{
! 			j = btree->curitem;
! 			size = ginCheckPlaceToDataPageLeaf(&btree->items[j], &iptr, size);
  		}
! 		size += MAXIMUM_ALIGNOF;
! 
! 		if (GinDataPageGetFreeSpace(page) >= size)
  			return true;
+ 
  	}
  	else if (sizeof(PostingItem) <= GinDataPageGetFreeSpace(page))
  		return true;
***************
*** 380,391 **** static void
  dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata)
  {
  	Page		page = BufferGetPage(buf);
- 	int			sizeofitem = GinSizeOfDataPageItem(page);
  	int			cnt = 0;
  
  	/* these must be static so they can be returned to caller */
  	static XLogRecData rdata[3];
  	static ginxlogInsert data;
  
  	*prdata = rdata;
  	Assert(GinPageIsData(page));
--- 533,544 ----
  dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata)
  {
  	Page		page = BufferGetPage(buf);
  	int			cnt = 0;
  
  	/* these must be static so they can be returned to caller */
  	static XLogRecData rdata[3];
  	static ginxlogInsert data;
+ 	static char insertData[BLCKSZ];
  
  	*prdata = rdata;
  	Assert(GinPageIsData(page));
***************
*** 395,401 **** dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
  	data.node = btree->index->rd_node;
  	data.blkno = BufferGetBlockNumber(buf);
  	data.offset = off;
! 	data.nitem = 1;
  	data.isDelete = FALSE;
  	data.isData = TRUE;
  	data.isLeaf = GinPageIsLeaf(page) ? TRUE : FALSE;
--- 548,554 ----
  	data.node = btree->index->rd_node;
  	data.blkno = BufferGetBlockNumber(buf);
  	data.offset = off;
! 	data.nitem = 0;
  	data.isDelete = FALSE;
  	data.isData = TRUE;
  	data.isLeaf = GinPageIsLeaf(page) ? TRUE : FALSE;
***************
*** 423,457 **** dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
  	rdata[cnt].next = &rdata[cnt + 1];
  	cnt++;
  
- 	rdata[cnt].buffer = InvalidBuffer;
- 	rdata[cnt].data = (GinPageIsLeaf(page)) ? ((char *) (btree->items + btree->curitem)) : ((char *) &(btree->pitem));
- 	rdata[cnt].len = sizeofitem;
- 	rdata[cnt].next = NULL;
- 
  	if (GinPageIsLeaf(page))
  	{
! 		if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
  		{
! 			/* usually, create index... */
! 			uint32		savedPos = btree->curitem;
  
! 			while (btree->curitem < btree->nitem)
  			{
! 				GinDataPageAddItem(page, btree->items + btree->curitem, off);
! 				off++;
! 				btree->curitem++;
  			}
- 			data.nitem = btree->curitem - savedPos;
- 			rdata[cnt].len = sizeofitem * data.nitem;
  		}
  		else
  		{
! 			GinDataPageAddItem(page, btree->items + btree->curitem, off);
  			btree->curitem++;
  		}
  	}
! 	else
! 		GinDataPageAddItem(page, &(btree->pitem), off);
  }
  
  /*
--- 576,908 ----
  	rdata[cnt].next = &rdata[cnt + 1];
  	cnt++;
  
  	if (GinPageIsLeaf(page))
  	{
! 		int i = 0, j, max_j;
! 		Pointer ptr = GinDataPageGetData(page), next_ptr, insertStart;
! 		ItemPointerData iptr = {{0,0},0}, next_iptr;
! 		char pageCopy[BLCKSZ];
! 		int maxoff = GinPageGetOpaque(page)->maxoff;
! 		int copySize = 0;
! 
! 		/*
! 		 * We're going to prevent var-byte re-encoding of whole page.
! 		 * Find position in page using page indexes.
! 		 */
! 		findInLeafPage(btree, page, &off, &iptr, &ptr);
! 
! 		Assert(GinDataPageFreeSpacePre(page,ptr) >= 0);
! 
! 		if (off <= maxoff)
! 		{
! 			/*
! 			 * Read next item pointer: we'll have to re-encode it. Copy
! 			 * previous part of page
! 			 */
! 			next_iptr = iptr;
! 			next_ptr = ginDataPageLeafReadItemPointer(ptr, &next_iptr);
! 			copySize = GinDataPageSize -  GinDataPageGetFreeSpace(page) -
! 				(next_ptr - GinDataPageGetData(page));
! 			memcpy(pageCopy, next_ptr, copySize);
! 		}
! 
! 		/* Check how many items we're going to add */
! 		if (GinPageRightMost(page) && off > maxoff)
! 			max_j = btree->nitem;
! 		else
! 			max_j = btree->curitem + 1;
! 
! 		/* Place items to the page while we have enough of space */
! 		*((ItemPointerData *)insertData) = iptr;
! 		insertStart = ptr;
! 		i = 0;
! 		for (j = btree->curitem; j < max_j; j++)
! 		{
! 			Pointer ptr2;
! 
! 			ptr2 = page + ginCheckPlaceToDataPageLeaf(&btree->items[j],
! 													  &iptr, ptr - page);
! 
! 			if (GinDataPageFreeSpacePre(page, ptr2) < 0)
! 				break;
! 
! 			ptr = ginDataPageLeafWriteItemPointer(ptr, &btree->items[j], &iptr);
! 			Assert(GinDataPageFreeSpacePre(page,ptr) >= 0);
! 
! 			iptr = btree->items[j];
! 			btree->curitem++;
! 			data.nitem++;
! 			i++;
! 		}
! 
! 		/* Put WAL data */
! 		memcpy(insertData + sizeof(ItemPointerData), insertStart,
! 															ptr - insertStart);
! 		rdata[cnt].buffer = InvalidBuffer;
! 		rdata[cnt].data = insertData;
! 		rdata[cnt].len = sizeof(ItemPointerData) + (ptr - insertStart);
! 		rdata[cnt].next = NULL;
! 
! 		/* Place rest of the page back */
! 		if (off <= maxoff)
  		{
! 			ptr = ginDataPageLeafWriteItemPointer(ptr, &next_iptr, &iptr);
! 			Assert(GinDataPageFreeSpacePre(page,ptr) >= 0);
! 			memcpy(ptr, pageCopy, copySize);
! 		}
  
! 		GinPageGetOpaque(page)->maxoff += i;
! 
! 		if (GinDataPageFreeSpacePre(page,ptr) < 0)
! 			elog(ERROR, "Not enough of space in leaf page!");
! 
! 		/* Update indexes in the end of page */
! 		updateItemIndexes(page, btree->ginstate);
! 	}
! 	else
! 	{
! 		rdata[cnt].buffer = InvalidBuffer;
! 		rdata[cnt].data = (char *) &(btree->pitem);
! 		rdata[cnt].len = sizeof(PostingItem);
! 		rdata[cnt].next = NULL;
! 		data.nitem = 1;
! 
! 		GinDataPageAddItem(page, &(btree->pitem), off);
! 	}
! }
! 
! /* Macro for leaf data page split: switch to right page if needed. */
! #define CHECK_SWITCH_TO_RPAGE                    \
! 	do {                                         \
! 		if (ptr - GinDataPageGetData(page) >     \
! 			totalsize / 2 && page == lpage)      \
! 		{                                        \
! 			maxLeftIptr = iptr;                  \
! 			prevIptr.ip_blkid.bi_hi = 0;         \
! 			prevIptr.ip_blkid.bi_lo = 0;         \
! 			prevIptr.ip_posid = 0;               \
! 			GinPageGetOpaque(lpage)->maxoff = j; \
! 			page = rpage;                        \
! 			ptr = GinDataPageGetData(rpage);     \
! 			j = FirstOffsetNumber;               \
! 		}                                        \
! 		else                                     \
! 		{                                        \
! 			j++;                                 \
! 		}                                        \
! 	} while (0)
! 
! 
! 
! /*
!  * Place tuple and split page, original buffer(lbuf) leaves untouched,
!  * returns shadow page of lbuf filled new data.
!  */
! static Page
! dataSplitPageLeaf(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
! 														XLogRecData **prdata)
! {
! 	OffsetNumber i, j,
! 				maxoff;
! 	Size		totalsize = 0, prevTotalsize;
! 	Pointer		ptr, copyPtr;
! 	Page		page;
! 	Page		lpage = PageGetTempPageCopy(BufferGetPage(lbuf));
! 	Page		rpage = BufferGetPage(rbuf);
! 	Size		pageSize = PageGetPageSize(lpage);
! 	Size		maxItemSize = 0;
! 	ItemPointerData iptr, prevIptr, maxLeftIptr;
! 	int			totalCount = 0;
! 	int			maxItemIndex = btree->curitem;
! 
! 	/* these must be static so they can be returned to caller */
! 	static XLogRecData rdata[3];
! 	static ginxlogSplit data;
! 	static char lpageCopy[BLCKSZ];
! 
! 	*prdata = rdata;
! 	data.leftChildBlkno = (GinPageIsLeaf(lpage)) ?
! 		InvalidOffsetNumber : GinGetDownlink(btree->entry);
! 	data.updateBlkno = dataPrepareData(btree, lpage, off);
! 
! 	maxoff = GinPageGetOpaque(lpage)->maxoff;
! 
! 	/* Copy original data of the page */
! 	memcpy(lpageCopy, lpage, BLCKSZ);
! 
! 	/* Reinitialize pages */
! 	GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
! 	GinInitPage(lpage, GinPageGetOpaque(rpage)->flags, pageSize);
! 
! 	GinPageGetOpaque(lpage)->maxoff = 0;
! 	GinPageGetOpaque(rpage)->maxoff = 0;
! 
! 	/* Calculate the whole size we're going to place */
! 	copyPtr = GinDataPageGetData(lpageCopy);
! 	iptr.ip_blkid.bi_hi = 0;
! 	iptr.ip_blkid.bi_lo = 0;
! 	iptr.ip_posid = 0;
! 	for (i = FirstOffsetNumber; i <= maxoff; i++)
! 	{
! 		if (i == off)
! 		{
! 			prevIptr = iptr;
! 			iptr = btree->items[maxItemIndex];
! 
! 			prevTotalsize = totalsize;
! 			totalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize);
! 
! 			maxItemIndex++;
! 			totalCount++;
! 			maxItemSize = Max(maxItemSize, totalsize - prevTotalsize);
! 		}
! 
! 		prevIptr = iptr;
! 		copyPtr = ginDataPageLeafReadItemPointer(copyPtr, &iptr);
! 
! 		prevTotalsize = totalsize;
! 		totalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize);
! 
! 		totalCount++;
! 		maxItemSize = Max(maxItemSize, totalsize - prevTotalsize);
! 	}
! 
! 	if (off == maxoff + 1)
! 	{
! 		prevIptr = iptr;
! 		iptr = btree->items[maxItemIndex];
! 		if (GinPageRightMost(lpage))
! 		{
! 			Size newTotalsize;
! 
! 			/*
! 			 * Found how many new item pointer we're going to add using
! 			 * worst case assumptions about odd placement and alignment.
! 			 */
! 			while (maxItemIndex < btree->nitem &&
! 				(newTotalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize)) <
! 					2 * GinDataPageSize - 2 * maxItemSize - 2 * MAXIMUM_ALIGNOF
! 			)
  			{
! 				maxItemIndex++;
! 				totalCount++;
! 				maxItemSize = Max(maxItemSize, newTotalsize - totalsize);
! 				totalsize = newTotalsize;
! 
! 				prevIptr = iptr;
! 				if (maxItemIndex < btree->nitem)
! 					iptr = btree->items[maxItemIndex];
  			}
  		}
  		else
  		{
! 			prevTotalsize = totalsize;
! 			totalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize);
! 			maxItemIndex++;
! 
! 			totalCount++;
! 			maxItemSize = Max(maxItemSize, totalsize - prevTotalsize);
! 		}
! 	}
! 
! 	/*
! 	 * Place item pointers with additional information to the pages using
! 	 * previous calculations. XXX: what does this do now that I removed the
! 	 * additional information stuff from the patch?
! 	 */
! 	ptr = GinDataPageGetData(lpage);
! 	page = lpage;
! 	j = FirstOffsetNumber;
! 	iptr.ip_blkid.bi_hi = 0;
! 	iptr.ip_blkid.bi_lo = 0;
! 	iptr.ip_posid = 0;
! 	prevIptr = iptr;
! 	copyPtr = GinDataPageGetData(lpageCopy);
! 	for (i = FirstOffsetNumber; i <= maxoff; i++)
! 	{
! 		if (i == off)
! 		{
! 			while (btree->curitem < maxItemIndex)
! 			{
! 				iptr = btree->items[btree->curitem];
! 
! 				ptr = ginDataPageLeafWriteItemPointer(ptr, &iptr, &prevIptr);
! 				Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
! 
! 				btree->curitem++;
! 				prevIptr = iptr;
! 
! 				CHECK_SWITCH_TO_RPAGE;
! 			}
! 		}
! 
! 		copyPtr = ginDataPageLeafReadItemPointer(copyPtr, &iptr);
! 
! 		ptr = ginDataPageLeafWriteItemPointer(ptr, &iptr, &prevIptr);
! 		Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
! 
! 		prevIptr = iptr;
! 
! 		CHECK_SWITCH_TO_RPAGE;
! 	}
! 
! 	if (off == maxoff + 1)
! 	{
! 		while (btree->curitem < maxItemIndex)
! 		{
! 			iptr = btree->items[btree->curitem];
! 
! 			ptr = ginDataPageLeafWriteItemPointer(ptr, &iptr, &prevIptr);
! 			Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
! 
  			btree->curitem++;
+ 
+ 			prevIptr = iptr;
+ 
+ 			CHECK_SWITCH_TO_RPAGE;
  		}
  	}
! 
! 	GinPageGetOpaque(rpage)->maxoff = j - 1;
! 
! 	PostingItemSetBlockNumber(&(btree->pitem), BufferGetBlockNumber(lbuf));
! 	btree->pitem.key = maxLeftIptr;
! 	btree->rightblkno = BufferGetBlockNumber(rbuf);
! 
! 	*GinDataPageGetRightBound(rpage) = *GinDataPageGetRightBound(lpage);
! 	*GinDataPageGetRightBound(lpage) = maxLeftIptr;
! 
! 	/* Fill indexes at the end of pages */
! 	updateItemIndexes(lpage, btree->ginstate);
! 	updateItemIndexes(rpage, btree->ginstate);
! 
! 	data.node = btree->index->rd_node;
! 	data.rootBlkno = InvalidBlockNumber;
! 	data.lblkno = BufferGetBlockNumber(lbuf);
! 	data.rblkno = BufferGetBlockNumber(rbuf);
! 	data.separator = GinPageGetOpaque(lpage)->maxoff;
! 	data.nitem = GinPageGetOpaque(lpage)->maxoff + GinPageGetOpaque(rpage)->maxoff;
! 	data.isData = TRUE;
! 	data.isLeaf = TRUE;
! 	data.isRootSplit = FALSE;
! 	data.rightbound = *GinDataPageGetRightBound(rpage);
! 
! 	rdata[0].buffer = InvalidBuffer;
! 	rdata[0].data = (char *) &data;
! 	rdata[0].len = sizeof(ginxlogSplit);
! 	rdata[0].next = &rdata[1];
! 
! 	rdata[1].buffer = InvalidBuffer;
! 	rdata[1].data = GinDataPageGetData(lpage);
! 	rdata[1].len = GinDataPageSize - GinDataPageGetFreeSpace(lpage);
! 	rdata[1].next = &rdata[2];
! 
! 	rdata[2].buffer = InvalidBuffer;
! 	rdata[2].data = GinDataPageGetData(rpage);
! 	rdata[2].len = GinDataPageSize - GinDataPageGetFreeSpace(rpage);
! 	rdata[2].next = NULL;
! 
! 	return lpage;
  }
  
  /*
***************
*** 461,467 **** dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
   * left page
   */
  static Page
! dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRecData **prdata)
  {
  	char	   *ptr;
  	OffsetNumber separator;
--- 912,919 ----
   * left page
   */
  static Page
! dataSplitPageInternal(GinBtree btree, Buffer lbuf, Buffer rbuf,
! 										OffsetNumber off, XLogRecData **prdata)
  {
  	char	   *ptr;
  	OffsetNumber separator;
***************
*** 563,569 **** dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
  	data.separator = separator;
  	data.nitem = maxoff;
  	data.isData = TRUE;
! 	data.isLeaf = GinPageIsLeaf(lpage) ? TRUE : FALSE;
  	data.isRootSplit = FALSE;
  	data.rightbound = oldbound;
  
--- 1015,1021 ----
  	data.separator = separator;
  	data.nitem = maxoff;
  	data.isData = TRUE;
! 	data.isLeaf = FALSE;
  	data.isRootSplit = FALSE;
  	data.rightbound = oldbound;
  
***************
*** 581,586 **** dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
--- 1033,1092 ----
  }
  
  /*
+  * Split page of posting tree. Calls relevant function of internal of leaf page
+  * because they are handled very different.
+  */
+ static Page
+ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
+ 														XLogRecData **prdata)
+ {
+ 	if (GinPageIsLeaf(BufferGetPage(lbuf)))
+ 		return dataSplitPageLeaf(btree, lbuf, rbuf, off, prdata);
+ 	else
+ 		return dataSplitPageInternal(btree, lbuf, rbuf, off, prdata);
+ }
+ 
+ /*
+  * Updates indexes in the end of leaf page which are used for faster search.
+  * Also updates freespace opaque field of page. Returns last item pointer of
+  * page.
+  */
+ ItemPointerData
+ updateItemIndexes(Page page, GinState *ginstate)
+ {
+ 	Pointer ptr;
+ 	ItemPointerData iptr;
+ 	int j = 0, maxoff, i;
+ 
+ 	/* Iterate over page */
+ 
+ 	maxoff = GinPageGetOpaque(page)->maxoff;
+ 	ptr = GinDataPageGetData(page);
+ 	iptr.ip_blkid.bi_lo = 0;
+ 	iptr.ip_blkid.bi_hi = 0;
+ 	iptr.ip_posid = 0;
+ 
+ 	for (i = FirstOffsetNumber; i <= maxoff; i++)
+ 	{
+ 		/* Place next page index entry if it's time to */
+ 		if (i * (GinDataLeafIndexCount + 1) > (j + 1) * maxoff)
+ 		{
+ 			GinPageGetIndexes(page)[j].iptr = iptr;
+ 			GinPageGetIndexes(page)[j].offsetNumer = i;
+ 			GinPageGetIndexes(page)[j].pageOffset = ptr - GinDataPageGetData(page);
+ 			j++;
+ 		}
+ 		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+ 	}
+ 	/* Fill rest of page indexes with InvalidOffsetNumber if any */
+ 	for (; j < GinDataLeafIndexCount; j++)
+ 	{
+ 		GinPageGetIndexes(page)[j].offsetNumer = InvalidOffsetNumber;
+ 	}
+ 	return iptr;
+ }
+ 
+ /*
   * Fills new root by right bound values from child.
   * Also called from ginxlog, should not use btree
   */
*** a/src/backend/access/gin/ginentrypage.c
--- b/src/backend/access/gin/ginentrypage.c
***************
*** 18,162 ****
  #include "utils/rel.h"
  
  /*
!  * Form a tuple for entry tree.
!  *
!  * If the tuple would be too big to be stored, function throws a suitable
!  * error if errorTooBig is TRUE, or returns NULL if errorTooBig is FALSE.
!  *
!  * See src/backend/access/gin/README for a description of the index tuple
!  * format that is being built here.  We build on the assumption that we
!  * are making a leaf-level key entry containing a posting list of nipd items.
!  * If the caller is actually trying to make a posting-tree entry, non-leaf
!  * entry, or pending-list entry, it should pass nipd = 0 and then overwrite
!  * the t_tid fields as necessary.  In any case, ipd can be NULL to skip
!  * copying any itempointers into the posting list; the caller is responsible
!  * for filling the posting list afterwards, if ipd = NULL and nipd > 0.
   */
! IndexTuple
! GinFormTuple(GinState *ginstate,
! 			 OffsetNumber attnum, Datum key, GinNullCategory category,
! 			 ItemPointerData *ipd, uint32 nipd,
! 			 bool errorTooBig)
  {
! 	Datum		datums[2];
! 	bool		isnull[2];
! 	IndexTuple	itup;
! 	uint32		newsize;
! 
! 	/* Build the basic tuple: optional column number, plus key datum */
! 	if (ginstate->oneCol)
! 	{
! 		datums[0] = key;
! 		isnull[0] = (category != GIN_CAT_NORM_KEY);
! 	}
! 	else
! 	{
! 		datums[0] = UInt16GetDatum(attnum);
! 		isnull[0] = false;
! 		datums[1] = key;
! 		isnull[1] = (category != GIN_CAT_NORM_KEY);
! 	}
! 
! 	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
! 
! 	/*
! 	 * Determine and store offset to the posting list, making sure there is
! 	 * room for the category byte if needed.
! 	 *
! 	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
! 	 * be some wasted pad space.  Is it worth recomputing the data length to
! 	 * prevent that?  That would also allow us to Assert that the real data
! 	 * doesn't overlap the GinNullCategory byte, which this code currently
! 	 * takes on faith.
! 	 */
! 	newsize = IndexTupleSize(itup);
! 
! 	if (IndexTupleHasNulls(itup))
! 	{
! 		uint32		minsize;
! 
! 		Assert(category != GIN_CAT_NORM_KEY);
! 		minsize = GinCategoryOffset(itup, ginstate) + sizeof(GinNullCategory);
! 		newsize = Max(newsize, minsize);
! 	}
! 
! 	newsize = SHORTALIGN(newsize);
! 
! 	GinSetPostingOffset(itup, newsize);
! 
! 	GinSetNPosting(itup, nipd);
! 
! 	/*
! 	 * Add space needed for posting list, if any.  Then check that the tuple
! 	 * won't be too big to store.
! 	 */
! 	newsize += sizeof(ItemPointerData) * nipd;
! 	newsize = MAXALIGN(newsize);
! 	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
! 	{
! 		if (errorTooBig)
! 			ereport(ERROR,
! 					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
! 			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
! 				   (unsigned long) newsize,
! 				   (unsigned long) Min(INDEX_SIZE_MASK,
! 									   GinMaxItemSize),
! 				   RelationGetRelationName(ginstate->index))));
! 		pfree(itup);
! 		return NULL;
! 	}
  
! 	/*
! 	 * Resize tuple if needed
! 	 */
! 	if (newsize != IndexTupleSize(itup))
! 	{
! 		itup = repalloc(itup, newsize);
  
! 		/* set new size in tuple header */
! 		itup->t_info &= ~INDEX_SIZE_MASK;
! 		itup->t_info |= newsize;
! 	}
! 
! 	/*
! 	 * Insert category byte, if needed
! 	 */
! 	if (category != GIN_CAT_NORM_KEY)
  	{
! 		Assert(IndexTupleHasNulls(itup));
! 		GinSetNullCategory(itup, ginstate, category);
  	}
- 
- 	/*
- 	 * Copy in the posting list, if provided
- 	 */
- 	if (ipd)
- 		memcpy(GinGetPosting(itup), ipd, sizeof(ItemPointerData) * nipd);
- 
- 	return itup;
- }
- 
- /*
-  * Sometimes we reduce the number of posting list items in a tuple after
-  * having built it with GinFormTuple.  This function adjusts the size
-  * fields to match.
-  */
- void
- GinShortenTuple(IndexTuple itup, uint32 nipd)
- {
- 	uint32		newsize;
- 
- 	Assert(nipd <= GinGetNPosting(itup));
- 
- 	newsize = GinGetPostingOffset(itup) + sizeof(ItemPointerData) * nipd;
- 	newsize = MAXALIGN(newsize);
- 
- 	Assert(newsize <= (itup->t_info & INDEX_SIZE_MASK));
- 
- 	itup->t_info &= ~INDEX_SIZE_MASK;
- 	itup->t_info |= newsize;
- 
- 	GinSetNPosting(itup, nipd);
  }
  
  /*
--- 18,41 ----
  #include "utils/rel.h"
  
  /*
!  * Read item pointers from leaf data page. Information is stored in the same
!  * manner as in leaf data pages.
   */
! void
! ginReadTuple(GinState *ginstate, OffsetNumber attnum,
! 			 IndexTuple itup, ItemPointerData *ipd)
  {
! 	Pointer		ptr;
! 	int			nipd = GinGetNPosting(itup), i;
! 	ItemPointerData ip = {{0,0},0};
  
! 	ptr = GinGetPosting(itup);
  
! 	for (i = 0; i < nipd; i++)
  	{
! 		ptr = ginDataPageLeafReadItemPointer(ptr, &ip);
! 		ipd[i] = ip;
  	}
  }
  
  /*
*** a/src/backend/access/gin/ginfast.c
--- b/src/backend/access/gin/ginfast.c
***************
*** 23,28 ****
--- 23,29 ----
  #include "miscadmin.h"
  #include "utils/memutils.h"
  #include "utils/rel.h"
+ #include "access/htup_details.h"
  
  
  #define GIN_PAGE_FREESIZE \
***************
*** 437,442 **** ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
--- 438,526 ----
  		ginInsertCleanup(ginstate, false, NULL);
  }
  
+ static IndexTuple
+ GinFastFormTuple(GinState *ginstate,
+ 				 OffsetNumber attnum, Datum key, GinNullCategory category)
+ {
+ 	Datum		datums[2];
+ 	bool		isnull[2];
+ 	IndexTuple	itup;
+ 	uint32		newsize;
+ 
+ 	/* Build the basic tuple: optional column number, plus key datum */
+ 
+ 	if (ginstate->oneCol)
+ 	{
+ 		datums[0] = key;
+ 		isnull[0] = (category != GIN_CAT_NORM_KEY);
+ 	}
+ 	else
+ 	{
+ 		datums[0] = UInt16GetDatum(attnum);
+ 		isnull[0] = false;
+ 		datums[1] = key;
+ 		isnull[1] = (category != GIN_CAT_NORM_KEY);
+ 	}
+ 
+ 	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+ 
+ 	/*
+ 	 * Place category to the last byte of index tuple extending it's size if
+ 	 * needed
+ 	 */
+ 	newsize = IndexTupleSize(itup);
+ 
+ 	if (category != GIN_CAT_NORM_KEY)
+ 	{
+ 		uint32		minsize;
+ 
+ 		Assert(IndexTupleHasNulls(itup));
+ 		minsize = IndexInfoFindDataOffset(itup->t_info) +
+ 			heap_compute_data_size(ginstate->tupdesc[attnum - 1], datums, isnull) +
+ 			sizeof(GinNullCategory);
+ 		newsize = Max(newsize, minsize);
+ 	}
+ 
+ 	newsize = MAXALIGN(newsize);
+ 
+ 	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+ 	{
+ 		ereport(ERROR,
+ 				(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+ 		errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+ 			   (unsigned long) newsize,
+ 			   (unsigned long) Min(INDEX_SIZE_MASK,
+ 								   GinMaxItemSize),
+ 			   RelationGetRelationName(ginstate->index))));
+ 		pfree(itup);
+ 		return NULL;
+ 	}
+ 
+ 	/*
+ 	 * Resize tuple if needed
+ 	 */
+ 	if (newsize != IndexTupleSize(itup))
+ 	{
+ 		itup = repalloc(itup, newsize);
+ 
+ 		/* set new size in tuple header */
+ 		itup->t_info &= ~INDEX_SIZE_MASK;
+ 		itup->t_info |= newsize;
+ 	}
+ 
+ 	/*
+ 	 * Insert category byte, if needed
+ 	 */
+ 	if (category != GIN_CAT_NORM_KEY)
+ 	{
+ 		Assert(IndexTupleHasNulls(itup));
+ 		GinSetNullCategory(itup, ginstate, category);
+ 	}
+ 
+ 	return itup;
+ }
+ 
+ 
  /*
   * Create temporary index tuples for a single indexable item (one index column
   * for the heap tuple specified by ht_ctid), and append them to the array
***************
*** 486,493 **** ginHeapTupleFastCollect(GinState *ginstate,
  	{
  		IndexTuple	itup;
  
! 		itup = GinFormTuple(ginstate, attnum, entries[i], categories[i],
! 							NULL, 0, true);
  		itup->t_tid = *ht_ctid;
  		collector->tuples[collector->ntuples++] = itup;
  		collector->sumsize += IndexTupleSize(itup);
--- 570,576 ----
  	{
  		IndexTuple	itup;
  
! 		itup = GinFastFormTuple(ginstate, attnum, entries[i], categories[i]);
  		itup->t_tid = *ht_ctid;
  		collector->tuples[collector->ntuples++] = itup;
  		collector->sumsize += IndexTupleSize(itup);
*** a/src/backend/access/gin/ginget.c
--- b/src/backend/access/gin/ginget.c
***************
*** 73,90 **** findItemInPostingPage(Page page, ItemPointer item, OffsetNumber *off)
  {
  	OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
  	int			res;
  
  	if (GinPageGetOpaque(page)->flags & GIN_DELETED)
  		/* page was deleted by concurrent vacuum */
  		return false;
  
  	/*
  	 * scan page to find equal or first greater value
  	 */
  	for (*off = FirstOffsetNumber; *off <= maxoff; (*off)++)
  	{
! 		res = ginCompareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off));
  
  		if (res <= 0)
  			return true;
  	}
--- 73,94 ----
  {
  	OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
  	int			res;
+ 	Pointer		ptr;
+ 	ItemPointerData iptr = {{0, 0}, 0};
  
  	if (GinPageGetOpaque(page)->flags & GIN_DELETED)
  		/* page was deleted by concurrent vacuum */
  		return false;
  
+ 	ptr = GinDataPageGetData(page);
  	/*
  	 * scan page to find equal or first greater value
  	 */
  	for (*off = FirstOffsetNumber; *off <= maxoff; (*off)++)
  	{
! 		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
  
+ 		res = ginCompareItemPointers(item, &iptr);
  		if (res <= 0)
  			return true;
  	}
***************
*** 148,162 **** scanPostingTree(Relation index, GinScanEntry scanEntry,
  	 */
  	for (;;)
  	{
  		page = BufferGetPage(buffer);
  
  		if ((GinPageGetOpaque(page)->flags & GIN_DELETED) == 0 &&
! 			GinPageGetOpaque(page)->maxoff >= FirstOffsetNumber)
  		{
! 			tbm_add_tuples(scanEntry->matchBitmap,
! 				   (ItemPointer) GinDataPageGetItem(page, FirstOffsetNumber),
! 						   GinPageGetOpaque(page)->maxoff, false);
! 			scanEntry->predictNumberResult += GinPageGetOpaque(page)->maxoff;
  		}
  
  		if (GinPageRightMost(page))
--- 152,176 ----
  	 */
  	for (;;)
  	{
+ 		OffsetNumber maxoff, i;
+ 
  		page = BufferGetPage(buffer);
+ 		maxoff = GinPageGetOpaque(page)->maxoff;
  
  		if ((GinPageGetOpaque(page)->flags & GIN_DELETED) == 0 &&
! 			maxoff >= FirstOffsetNumber)
  		{
! 			ItemPointerData iptr = {{0, 0}, 0};
! 			Pointer ptr;
! 
! 			ptr = GinDataPageGetData(page);
! 			for (i = FirstOffsetNumber; i <= maxoff; i++)
! 			{
! 				ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
! 				tbm_add_tuples(scanEntry->matchBitmap, &iptr, 1, false);
! 			}
! 
! 			scanEntry->predictNumberResult += maxoff;
  		}
  
  		if (GinPageRightMost(page))
***************
*** 344,351 **** collectMatchBitmap(GinBtreeData *btree, GinBtreeStack *stack,
  		}
  		else
  		{
  			tbm_add_tuples(scanEntry->matchBitmap,
! 						   GinGetPosting(itup), GinGetNPosting(itup), false);
  			scanEntry->predictNumberResult += GinGetNPosting(itup);
  		}
  
--- 358,369 ----
  		}
  		else
  		{
+ 			ItemPointerData *ipd = (ItemPointerData *)palloc(
+ 								sizeof(ItemPointerData) * GinGetNPosting(itup));
+ 			ginReadTuple(btree->ginstate, scanEntry->attnum, itup, ipd);
+ 
  			tbm_add_tuples(scanEntry->matchBitmap,
! 						   ipd, GinGetNPosting(itup), false);
  			scanEntry->predictNumberResult += GinGetNPosting(itup);
  		}
  
***************
*** 438,443 **** restartScanEntry:
--- 456,464 ----
  			BlockNumber rootPostingTree = GinGetPostingTree(itup);
  			GinPostingTreeScan *gdi;
  			Page		page;
+ 			OffsetNumber maxoff, i;
+ 			Pointer ptr;
+ 			ItemPointerData iptr = {{0,0},0};
  
  			/*
  			 * We should unlock entry page before touching posting tree to
***************
*** 465,474 **** restartScanEntry:
  			/*
  			 * Keep page content in memory to prevent durable page locking
  			 */
! 			entry->list = (ItemPointerData *) palloc(BLCKSZ);
! 			entry->nlist = GinPageGetOpaque(page)->maxoff;
! 			memcpy(entry->list, GinDataPageGetItem(page, FirstOffsetNumber),
! 				   GinPageGetOpaque(page)->maxoff * sizeof(ItemPointerData));
  
  			LockBuffer(entry->buffer, GIN_UNLOCK);
  			freeGinBtreeStack(gdi->stack);
--- 486,502 ----
  			/*
  			 * Keep page content in memory to prevent durable page locking
  			 */
! 			entry->list = (ItemPointerData *) palloc(BLCKSZ * sizeof(ItemPointerData));
! 			maxoff = GinPageGetOpaque(page)->maxoff;
! 			entry->nlist = maxoff;
! 
! 			ptr = GinDataPageGetData(page);
! 
! 			for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i))
! 			{
! 				ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
! 				entry->list[i - FirstOffsetNumber] = iptr;
! 			}
  
  			LockBuffer(entry->buffer, GIN_UNLOCK);
  			freeGinBtreeStack(gdi->stack);
***************
*** 478,485 **** restartScanEntry:
  		else if (GinGetNPosting(itup) > 0)
  		{
  			entry->nlist = GinGetNPosting(itup);
  			entry->list = (ItemPointerData *) palloc(sizeof(ItemPointerData) * entry->nlist);
! 			memcpy(entry->list, GinGetPosting(itup), sizeof(ItemPointerData) * entry->nlist);
  			entry->isFinished = FALSE;
  		}
  	}
--- 506,516 ----
  		else if (GinGetNPosting(itup) > 0)
  		{
  			entry->nlist = GinGetNPosting(itup);
+ 			entry->predictNumberResult = entry->nlist;
  			entry->list = (ItemPointerData *) palloc(sizeof(ItemPointerData) * entry->nlist);
! 
! 			ginReadTuple(ginstate, entry->attnum, itup, entry->list);
! 
  			entry->isFinished = FALSE;
  		}
  	}
***************
*** 583,594 **** entryGetNextItem(GinState *ginstate, GinScanEntry entry)
  			if (!ItemPointerIsValid(&entry->curItem) ||
  				findItemInPostingPage(page, &entry->curItem, &entry->offset))
  			{
  				/*
  				 * Found position equal to or greater than stored
  				 */
! 				entry->nlist = GinPageGetOpaque(page)->maxoff;
! 				memcpy(entry->list, GinDataPageGetItem(page, FirstOffsetNumber),
! 				   GinPageGetOpaque(page)->maxoff * sizeof(ItemPointerData));
  
  				LockBuffer(entry->buffer, GIN_UNLOCK);
  
--- 614,636 ----
  			if (!ItemPointerIsValid(&entry->curItem) ||
  				findItemInPostingPage(page, &entry->curItem, &entry->offset))
  			{
+ 				OffsetNumber maxoff, i;
+ 				Pointer ptr;
+ 				ItemPointerData iptr = {{0,0},0};
+ 
  				/*
  				 * Found position equal to or greater than stored
  				 */
! 				maxoff = GinPageGetOpaque(page)->maxoff;
! 				entry->nlist = maxoff;
! 
! 				ptr = GinDataPageGetData(page);
! 
! 				for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i))
! 				{
! 					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
! 					entry->list[i - FirstOffsetNumber] = iptr;
! 				}
  
  				LockBuffer(entry->buffer, GIN_UNLOCK);
  
*** a/src/backend/access/gin/gininsert.c
--- b/src/backend/access/gin/gininsert.c
***************
*** 42,55 **** typedef struct
   * items[] must be in sorted order with no duplicates.
   */
  static BlockNumber
! createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
  {
  	BlockNumber blkno;
! 	Buffer		buffer = GinNewBuffer(index);
  	Page		page;
  
  	/* Assert that the items[] array will fit on one page */
- 	Assert(nitems <= GinMaxLeafDataItems);
  
  	START_CRIT_SECTION();
  
--- 42,57 ----
   * items[] must be in sorted order with no duplicates.
   */
  static BlockNumber
! createPostingTree(GinState *ginstate, ItemPointerData *items, uint32 nitems)
  {
  	BlockNumber blkno;
! 	Buffer		buffer = GinNewBuffer(ginstate->index);
  	Page		page;
+ 	int			i;
+ 	Pointer		ptr;
+ 	ItemPointerData prev_iptr = {{0,0},0};
  
  	/* Assert that the items[] array will fit on one page */
  
  	START_CRIT_SECTION();
  
***************
*** 57,74 **** createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
  	page = BufferGetPage(buffer);
  	blkno = BufferGetBlockNumber(buffer);
  
- 	memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * nitems);
  	GinPageGetOpaque(page)->maxoff = nitems;
  
  	MarkBufferDirty(buffer);
  
! 	if (RelationNeedsWAL(index))
  	{
  		XLogRecPtr	recptr;
  		XLogRecData rdata[2];
  		ginxlogCreatePostingTree data;
  
! 		data.node = index->rd_node;
  		data.blkno = blkno;
  		data.nitem = nitems;
  
--- 59,84 ----
  	page = BufferGetPage(buffer);
  	blkno = BufferGetBlockNumber(buffer);
  
  	GinPageGetOpaque(page)->maxoff = nitems;
+ 	ptr = GinDataPageGetData(page);
+ 	for (i = 0; i < nitems; i++)
+ 	{
+ 		if (i > 0)
+ 			prev_iptr = items[i - 1];
+ 		ptr = ginDataPageLeafWriteItemPointer(ptr, &items[i], &prev_iptr);
+ 	}
+ 	Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+ 	updateItemIndexes(page, ginstate);
  
  	MarkBufferDirty(buffer);
  
! 	if (RelationNeedsWAL(ginstate->index))
  	{
  		XLogRecPtr	recptr;
  		XLogRecData rdata[2];
  		ginxlogCreatePostingTree data;
  
! 		data.node = ginstate->index->rd_node;
  		data.blkno = blkno;
  		data.nitem = nitems;
  
***************
*** 78,85 **** createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
  		rdata[0].next = &rdata[1];
  
  		rdata[1].buffer = InvalidBuffer;
! 		rdata[1].data = (char *) items;
! 		rdata[1].len = sizeof(ItemPointerData) * nitems;
  		rdata[1].next = NULL;
  
  		recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_PTREE, rdata);
--- 88,95 ----
  		rdata[0].next = &rdata[1];
  
  		rdata[1].buffer = InvalidBuffer;
! 		rdata[1].data = GinDataPageGetData(page);
! 		rdata[1].len = GinDataPageSize - GinDataPageGetFreeSpace(page);
  		rdata[1].next = NULL;
  
  		recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_PTREE, rdata);
***************
*** 93,98 **** createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
--- 103,239 ----
  	return blkno;
  }
  
+ /*
+  * Form a tuple for entry tree.
+  *
+  * If the tuple would be too big to be stored, function throws a suitable
+  * error if errorTooBig is TRUE, or returns NULL if errorTooBig is FALSE.
+  *
+  * See src/backend/access/gin/README for a description of the index tuple
+  * format that is being built here.  We build on the assumption that we
+  * are making a leaf-level key entry containing a posting list of nipd items.
+  * If the caller is actually trying to make a posting-tree entry, non-leaf
+  * entry, or pending-list entry, it should pass nipd = 0 and then overwrite
+  * the t_tid fields as necessary.  In any case, ipd can be NULL to skip
+  * copying any itempointers into the posting list; the caller is responsible
+  * for filling the posting list afterwards, if ipd = NULL and nipd > 0.
+  */
+ static IndexTuple
+ GinFormTuple(GinState *ginstate,
+ 			 OffsetNumber attnum, Datum key, GinNullCategory category,
+ 			 ItemPointerData *ipd,
+ 			 uint32 nipd,
+ 			 bool errorTooBig)
+ {
+ 	Datum		datums[3];
+ 	bool		isnull[3];
+ 	IndexTuple	itup;
+ 	uint32		newsize;
+ 	int			i;
+ 	ItemPointerData nullItemPointer = {{0,0},0};
+ 
+ 	/* Build the basic tuple: optional column number, plus key datum */
+ 	if (ginstate->oneCol)
+ 	{
+ 		datums[0] = key;
+ 		isnull[0] = (category != GIN_CAT_NORM_KEY);
+ 		isnull[1] = true;
+ 	}
+ 	else
+ 	{
+ 		datums[0] = UInt16GetDatum(attnum);
+ 		isnull[0] = false;
+ 		datums[1] = key;
+ 		isnull[1] = (category != GIN_CAT_NORM_KEY);
+ 		isnull[2] = true;
+ 	}
+ 
+ 	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+ 
+ 	/*
+ 	 * Determine and store offset to the posting list, making sure there is
+ 	 * room for the category byte if needed.
+ 	 *
+ 	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
+ 	 * be some wasted pad space.  Is it worth recomputing the data length to
+ 	 * prevent that?  That would also allow us to Assert that the real data
+ 	 * doesn't overlap the GinNullCategory byte, which this code currently
+ 	 * takes on faith.
+ 	 */
+ 	newsize = IndexTupleSize(itup);
+ 
+ 	GinSetPostingOffset(itup, newsize);
+ 
+ 	GinSetNPosting(itup, nipd);
+ 
+ 	/*
+ 	 * Add space needed for posting list, if any.  Then check that the tuple
+ 	 * won't be too big to store.
+ 	 */
+ 
+ 	if (nipd > 0)
+ 	{
+ 		newsize = ginCheckPlaceToDataPageLeaf(&ipd[0], &nullItemPointer, newsize);
+ 		for (i = 1; i < nipd; i++)
+ 		{
+ 			newsize = ginCheckPlaceToDataPageLeaf(&ipd[i], &ipd[i - 1], newsize);
+ 		}
+ 	}
+ 
+ 	if (category != GIN_CAT_NORM_KEY)
+ 	{
+ 		Assert(IndexTupleHasNulls(itup));
+ 		newsize = newsize + sizeof(GinNullCategory);
+ 	}
+ 	newsize = MAXALIGN(newsize);
+ 
+ 	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+ 	{
+ 		if (errorTooBig)
+ 			ereport(ERROR,
+ 					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+ 			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+ 				   (unsigned long) newsize,
+ 				   (unsigned long) Min(INDEX_SIZE_MASK,
+ 									   GinMaxItemSize),
+ 				   RelationGetRelationName(ginstate->index))));
+ 		pfree(itup);
+ 		return NULL;
+ 	}
+ 
+ 	/*
+ 	 * Resize tuple if needed
+ 	 */
+ 	if (newsize != IndexTupleSize(itup))
+ 	{
+ 		itup = repalloc(itup, newsize);
+ 
+ 		/* set new size in tuple header */
+ 		itup->t_info &= ~INDEX_SIZE_MASK;
+ 		itup->t_info |= newsize;
+ 	}
+ 
+ 	/*
+ 	 * Copy in the posting list, if provided
+ 	 */
+ 	if (nipd > 0)
+ 	{
+ 		char *ptr = GinGetPosting(itup);
+ 		ptr = ginDataPageLeafWriteItemPointer(ptr, &ipd[0], &nullItemPointer);
+ 		for (i = 1; i < nipd; i++)
+ 			ptr = ginDataPageLeafWriteItemPointer(ptr, &ipd[i], &ipd[i-1]);
+ 	}
+ 
+ 	/*
+ 	 * Insert category byte, if needed
+ 	 */
+ 	if (category != GIN_CAT_NORM_KEY)
+ 	{
+ 		Assert(IndexTupleHasNulls(itup));
+ 		GinSetNullCategory(itup, ginstate, category);
+ 	}
+ 	return itup;
+ }
  
  /*
   * Adds array of item pointers to tuple's posting list, or
***************
*** 111,141 **** addItemPointersToLeafTuple(GinState *ginstate,
  	Datum		key;
  	GinNullCategory category;
  	IndexTuple	res;
  
  	Assert(!GinIsPostingTree(old));
  
  	attnum = gintuple_get_attrnum(ginstate, old);
  	key = gintuple_get_key(ginstate, old, &category);
  
  	/* try to build tuple with room for all the items */
  	res = GinFormTuple(ginstate, attnum, key, category,
! 					   NULL, nitem + GinGetNPosting(old),
! 					   false);
! 
! 	if (res)
! 	{
! 		/* good, small enough */
! 		uint32		newnitem;
! 
! 		/* fill in the posting list with union of old and new TIDs */
! 		newnitem = ginMergeItemPointers(GinGetPosting(res),
! 										GinGetPosting(old),
! 										GinGetNPosting(old),
! 										items, nitem);
! 		/* merge might have eliminated some duplicate items */
! 		GinShortenTuple(res, newnitem);
! 	}
! 	else
  	{
  		/* posting list would be too big, convert to posting tree */
  		BlockNumber postingRoot;
--- 252,281 ----
  	Datum		key;
  	GinNullCategory category;
  	IndexTuple	res;
+ 	ItemPointerData *newItems, *oldItems;
+ 	int			oldNPosting, newNPosting;
  
  	Assert(!GinIsPostingTree(old));
  
  	attnum = gintuple_get_attrnum(ginstate, old);
  	key = gintuple_get_key(ginstate, old, &category);
  
+ 	oldNPosting = GinGetNPosting(old);
+ 	oldItems = (ItemPointerData *) palloc(sizeof(ItemPointerData) * oldNPosting);
+ 
+ 	newNPosting = oldNPosting + nitem;
+ 	newItems = (ItemPointerData *) palloc(sizeof(ItemPointerData) * newNPosting);
+ 
+ 	ginReadTuple(ginstate, attnum, old, oldItems);
+ 
+ 	newNPosting = ginMergeItemPointers(newItems,
+ 									   items, nitem,
+ 									   oldItems, oldNPosting);
+ 
  	/* try to build tuple with room for all the items */
  	res = GinFormTuple(ginstate, attnum, key, category,
! 					   newItems, newNPosting, false);
! 	if (!res)
  	{
  		/* posting list would be too big, convert to posting tree */
  		BlockNumber postingRoot;
***************
*** 146,154 **** addItemPointersToLeafTuple(GinState *ginstate,
  		 * surely small enough to fit on one posting-tree page, and should
  		 * already be in order with no duplicates.
  		 */
! 		postingRoot = createPostingTree(ginstate->index,
! 										GinGetPosting(old),
! 										GinGetNPosting(old));
  
  		/* During index build, count the newly-added data page */
  		if (buildStats)
--- 286,294 ----
  		 * surely small enough to fit on one posting-tree page, and should
  		 * already be in order with no duplicates.
  		 */
! 		postingRoot = createPostingTree(ginstate,
! 										oldItems,
! 										oldNPosting);
  
  		/* During index build, count the newly-added data page */
  		if (buildStats)
***************
*** 194,199 **** buildFreshLeafTuple(GinState *ginstate,
--- 334,353 ----
  	{
  		/* posting list would be too big, build posting tree */
  		BlockNumber postingRoot;
+ 		ItemPointerData prevIptr = {{0,0},0};
+ 		Size size = 0;
+ 		int itemsCount = 0;
+ 
+ 		do
+ 		{
+ 			size = ginCheckPlaceToDataPageLeaf(&items[itemsCount], &prevIptr,
+ 											   size);
+ 			prevIptr = items[itemsCount];
+ 			itemsCount++;
+ 		}
+ 		while (itemsCount < nitem && size < GinDataPageSize);
+ 		itemsCount--;
+ 
  
  		/*
  		 * Build posting-tree-only result tuple.  We do this first so as to
***************
*** 205,220 **** buildFreshLeafTuple(GinState *ginstate,
  		 * Initialize posting tree with as many TIDs as will fit on the first
  		 * page.
  		 */
! 		postingRoot = createPostingTree(ginstate->index,
  										items,
! 										Min(nitem, GinMaxLeafDataItems));
  
  		/* During index build, count the newly-added data page */
  		if (buildStats)
  			buildStats->nDataPages++;
  
  		/* Add any remaining TIDs to the posting tree */
! 		if (nitem > GinMaxLeafDataItems)
  		{
  			GinPostingTreeScan *gdi;
  
--- 359,374 ----
  		 * Initialize posting tree with as many TIDs as will fit on the first
  		 * page.
  		 */
! 		postingRoot = createPostingTree(ginstate,
  										items,
! 										itemsCount);
  
  		/* During index build, count the newly-added data page */
  		if (buildStats)
  			buildStats->nDataPages++;
  
  		/* Add any remaining TIDs to the posting tree */
! 		if (nitem > itemsCount)
  		{
  			GinPostingTreeScan *gdi;
  
***************
*** 222,229 **** buildFreshLeafTuple(GinState *ginstate,
  			gdi->btree.isBuild = (buildStats != NULL);
  
  			ginInsertItemPointers(gdi,
! 								  items + GinMaxLeafDataItems,
! 								  nitem - GinMaxLeafDataItems,
  								  buildStats);
  
  			pfree(gdi);
--- 376,383 ----
  			gdi->btree.isBuild = (buildStats != NULL);
  
  			ginInsertItemPointers(gdi,
! 								  items + itemsCount,
! 								  nitem - itemsCount,
  								  buildStats);
  
  			pfree(gdi);
*** a/src/backend/access/gin/ginvacuum.c
--- b/src/backend/access/gin/ginvacuum.c
***************
*** 41,80 **** typedef struct
   */
  
  static uint32
! ginVacuumPostingList(GinVacuumState *gvs, ItemPointerData *items, uint32 nitem, ItemPointerData **cleaned)
  {
  	uint32		i,
  				j = 0;
  
  	/*
  	 * just scan over ItemPointer array
  	 */
  
  	for (i = 0; i < nitem; i++)
  	{
! 		if (gvs->callback(items + i, gvs->callback_state))
  		{
  			gvs->result->tuples_removed += 1;
! 			if (!*cleaned)
  			{
! 				*cleaned = (ItemPointerData *) palloc(sizeof(ItemPointerData) * nitem);
  				if (i != 0)
! 					memcpy(*cleaned, items, sizeof(ItemPointerData) * i);
  			}
  		}
  		else
  		{
  			gvs->result->num_index_tuples += 1;
  			if (i != j)
! 				(*cleaned)[j] = items[i];
  			j++;
  		}
  	}
  
  	return j;
  }
  
  /*
   * fills WAL record for vacuum leaf page
   */
  static void
--- 41,206 ----
   */
  
  static uint32
! ginVacuumPostingList(GinVacuumState *gvs, Pointer src, uint32 nitem, Pointer *cleaned, Size size, Size *newSize)
  {
  	uint32		i,
  				j = 0;
+ 	ItemPointerData iptr = {{0,0},0}, prevIptr;
+ 	Pointer		dst = NULL, prev, ptr = src;
  
  	/*
  	 * just scan over ItemPointer array
  	 */
  
+ 	prevIptr = iptr;
  	for (i = 0; i < nitem; i++)
  	{
! 		prev = ptr;
! 		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
! 		if (gvs->callback(&iptr, gvs->callback_state))
  		{
  			gvs->result->tuples_removed += 1;
! 			if (!dst)
  			{
! 				dst = (Pointer) palloc(size);
! 				*cleaned = dst;
  				if (i != 0)
! 				{
! 					memcpy(dst, src, prev - src);
! 					dst += prev - src;
! 				}
  			}
  		}
  		else
  		{
  			gvs->result->num_index_tuples += 1;
  			if (i != j)
! 				dst = ginDataPageLeafWriteItemPointer(dst, &iptr, &prevIptr);
  			j++;
+ 			prevIptr = iptr;
  		}
  	}
  
+ 	if (i != j)
+ 		*newSize = dst - *cleaned;
  	return j;
  }
  
  /*
+  * Form a tuple for entry tree based on already encoded array of item pointers
+  * with additional information.
+  */
+ static IndexTuple
+ GinFormTuple(GinState *ginstate,
+ 			 OffsetNumber attnum, Datum key, GinNullCategory category,
+ 			 Pointer data,
+ 			 Size dataSize,
+ 			 uint32 nipd,
+ 			 bool errorTooBig)
+ {
+ 	Datum		datums[3];
+ 	bool		isnull[3];
+ 	IndexTuple	itup;
+ 	uint32		newsize;
+ 
+ 	/* Build the basic tuple: optional column number, plus key datum */
+ 	if (ginstate->oneCol)
+ 	{
+ 		datums[0] = key;
+ 		isnull[0] = (category != GIN_CAT_NORM_KEY);
+ 		isnull[1] = true;
+ 	}
+ 	else
+ 	{
+ 		datums[0] = UInt16GetDatum(attnum);
+ 		isnull[0] = false;
+ 		datums[1] = key;
+ 		isnull[1] = (category != GIN_CAT_NORM_KEY);
+ 		isnull[2] = true;
+ 	}
+ 
+ 	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+ 
+ 	/*
+ 	 * Determine and store offset to the posting list, making sure there is
+ 	 * room for the category byte if needed.
+ 	 *
+ 	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
+ 	 * be some wasted pad space.  Is it worth recomputing the data length to
+ 	 * prevent that?  That would also allow us to Assert that the real data
+ 	 * doesn't overlap the GinNullCategory byte, which this code currently
+ 	 * takes on faith.
+ 	 */
+ 	newsize = IndexTupleSize(itup);
+ 
+ 	GinSetPostingOffset(itup, newsize);
+ 
+ 	GinSetNPosting(itup, nipd);
+ 
+ 	/*
+ 	 * Add space needed for posting list, if any.  Then check that the tuple
+ 	 * won't be too big to store.
+ 	 */
+ 
+ 	if (nipd > 0)
+ 	{
+ 		newsize += dataSize;
+ 	}
+ 
+ 	if (category != GIN_CAT_NORM_KEY)
+ 	{
+ 		Assert(IndexTupleHasNulls(itup));
+ 		newsize = newsize + sizeof(GinNullCategory);
+ 	}
+ 	newsize = MAXALIGN(newsize);
+ 
+ 	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+ 	{
+ 		if (errorTooBig)
+ 			ereport(ERROR,
+ 					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+ 			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+ 				   (unsigned long) newsize,
+ 				   (unsigned long) Min(INDEX_SIZE_MASK,
+ 									   GinMaxItemSize),
+ 				   RelationGetRelationName(ginstate->index))));
+ 		pfree(itup);
+ 		return NULL;
+ 	}
+ 
+ 	/*
+ 	 * Resize tuple if needed
+ 	 */
+ 	if (newsize != IndexTupleSize(itup))
+ 	{
+ 		itup = repalloc(itup, newsize);
+ 
+ 		/* set new size in tuple header */
+ 		itup->t_info &= ~INDEX_SIZE_MASK;
+ 		itup->t_info |= newsize;
+ 	}
+ 
+ 	/*
+ 	 * Copy in the posting list, if provided
+ 	 */
+ 	if (nipd > 0)
+ 	{
+ 		char *ptr = GinGetPosting(itup);
+ 		memcpy(ptr, data, dataSize);
+ 	}
+ 
+ 	/*
+ 	 * Insert category byte, if needed
+ 	 */
+ 	if (category != GIN_CAT_NORM_KEY)
+ 	{
+ 		Assert(IndexTupleHasNulls(itup));
+ 		GinSetNullCategory(itup, ginstate, category);
+ 	}
+ 	return itup;
+ }
+ 
+ /*
   * fills WAL record for vacuum leaf page
   */
  static void
***************
*** 101,107 **** xlogVacuumPage(Relation index, Buffer buffer)
  		backup = GinDataPageGetData(page);
  		data.nitem = GinPageGetOpaque(page)->maxoff;
  		if (data.nitem)
! 			len = MAXALIGN(sizeof(ItemPointerData) * data.nitem);
  	}
  	else
  	{
--- 227,233 ----
  		backup = GinDataPageGetData(page);
  		data.nitem = GinPageGetOpaque(page)->maxoff;
  		if (data.nitem)
! 			len = MAXALIGN(GinDataPageSize - GinDataPageGetFreeSpace(page));
  	}
  	else
  	{
***************
*** 178,187 **** ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
  	{
  		OffsetNumber newMaxOff,
  					oldMaxOff = GinPageGetOpaque(page)->maxoff;
! 		ItemPointerData *cleaned = NULL;
  
  		newMaxOff = ginVacuumPostingList(gvs,
! 				(ItemPointer) GinDataPageGetData(page), oldMaxOff, &cleaned);
  
  		/* saves changes about deleted tuple ... */
  		if (oldMaxOff != newMaxOff)
--- 304,315 ----
  	{
  		OffsetNumber newMaxOff,
  					oldMaxOff = GinPageGetOpaque(page)->maxoff;
! 		Pointer cleaned = NULL;
! 		Size newSize;
  
  		newMaxOff = ginVacuumPostingList(gvs,
! 				GinDataPageGetData(page), oldMaxOff, &cleaned,
! 				GinDataPageSize - GinDataPageGetFreeSpace(page), &newSize);
  
  		/* saves changes about deleted tuple ... */
  		if (oldMaxOff != newMaxOff)
***************
*** 189,197 **** ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
  			START_CRIT_SECTION();
  
  			if (newMaxOff > 0)
! 				memcpy(GinDataPageGetData(page), cleaned, sizeof(ItemPointerData) * newMaxOff);
  			pfree(cleaned);
  			GinPageGetOpaque(page)->maxoff = newMaxOff;
  
  			MarkBufferDirty(buffer);
  			xlogVacuumPage(gvs->index, buffer);
--- 317,327 ----
  			START_CRIT_SECTION();
  
  			if (newMaxOff > 0)
! 				memcpy(GinDataPageGetData(page), cleaned, newSize);
! 
  			pfree(cleaned);
  			GinPageGetOpaque(page)->maxoff = newMaxOff;
+ 			updateItemIndexes(page, &gvs->ginstate);
  
  			MarkBufferDirty(buffer);
  			xlogVacuumPage(gvs->index, buffer);
***************
*** 520,527 **** ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
  			 * if we already create temporary page, we will make changes in
  			 * place
  			 */
! 			ItemPointerData *cleaned = (tmppage == origpage) ? NULL : GinGetPosting(itup);
! 			uint32		newN = ginVacuumPostingList(gvs, GinGetPosting(itup), GinGetNPosting(itup), &cleaned);
  
  			if (GinGetNPosting(itup) != newN)
  			{
--- 650,662 ----
  			 * if we already create temporary page, we will make changes in
  			 * place
  			 */
! 			Size cleanedSize;
! 			Pointer cleaned = NULL;
! 			uint32		newN =
! 				ginVacuumPostingList(gvs,
! 					GinGetPosting(itup), GinGetNPosting(itup), &cleaned,
! 					IndexTupleSize(itup) - GinGetPostingOffset(itup),
! 					&cleanedSize);
  
  			if (GinGetNPosting(itup) != newN)
  			{
***************
*** 542,564 **** ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
  					 */
  					tmppage = PageGetTempPageCopy(origpage);
  
- 					if (newN > 0)
- 					{
- 						Size		pos = ((char *) GinGetPosting(itup)) - ((char *) origpage);
- 
- 						memcpy(tmppage + pos, cleaned, sizeof(ItemPointerData) * newN);
- 					}
- 
- 					pfree(cleaned);
- 
  					/* set itup pointer to new page */
  					itup = (IndexTuple) PageGetItem(tmppage, PageGetItemId(tmppage, i));
  				}
  
  				attnum = gintuple_get_attrnum(&gvs->ginstate, itup);
  				key = gintuple_get_key(&gvs->ginstate, itup, &category);
  				itup = GinFormTuple(&gvs->ginstate, attnum, key, category,
! 									GinGetPosting(itup), newN, true);
  				PageIndexTupleDelete(tmppage, i);
  
  				if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, false, false) != i)
--- 677,692 ----
  					 */
  					tmppage = PageGetTempPageCopy(origpage);
  
  					/* set itup pointer to new page */
  					itup = (IndexTuple) PageGetItem(tmppage, PageGetItemId(tmppage, i));
  				}
  
  				attnum = gintuple_get_attrnum(&gvs->ginstate, itup);
  				key = gintuple_get_key(&gvs->ginstate, itup, &category);
+ 				/* FIXME */
  				itup = GinFormTuple(&gvs->ginstate, attnum, key, category,
! 									cleaned, cleanedSize, newN, true);
! 				pfree(cleaned);
  				PageIndexTupleDelete(tmppage, i);
  
  				if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, false, false) != i)
*** a/src/backend/access/gin/ginxlog.c
--- b/src/backend/access/gin/ginxlog.c
***************
*** 106,114 **** static void
  ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
  {
  	ginxlogCreatePostingTree *data = (ginxlogCreatePostingTree *) XLogRecGetData(record);
! 	ItemPointerData *items = (ItemPointerData *) (XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree));
  	Buffer		buffer;
  	Page		page;
  
  	/* Backup blocks are not used in create_ptree records */
  	Assert(!(record->xl_info & XLR_BKP_BLOCK_MASK));
--- 106,117 ----
  ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
  {
  	ginxlogCreatePostingTree *data = (ginxlogCreatePostingTree *) XLogRecGetData(record);
! 	Pointer		ptr = XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree), tmp;
  	Buffer		buffer;
  	Page		page;
+ 	GinState	ginstate;
+ 	ItemPointerData iptr = {{0, 0}, 0};
+ 	OffsetNumber i;
  
  	/* Backup blocks are not used in create_ptree records */
  	Assert(!(record->xl_info & XLR_BKP_BLOCK_MASK));
***************
*** 118,128 **** ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
  	page = (Page) BufferGetPage(buffer);
  
  	GinInitBuffer(buffer, GIN_DATA | GIN_LEAF);
! 	memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * data->nitem);
  	GinPageGetOpaque(page)->maxoff = data->nitem;
  
  	PageSetLSN(page, lsn);
  
  	MarkBufferDirty(buffer);
  	UnlockReleaseBuffer(buffer);
  }
--- 121,139 ----
  	page = (Page) BufferGetPage(buffer);
  
  	GinInitBuffer(buffer, GIN_DATA | GIN_LEAF);
! 
! 	tmp = ptr;
! 	for (i = 1; i <= data->nitem; i++)
! 		tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
! 
! 	memcpy(GinDataPageGetData(page), ptr, tmp - ptr);
! 
  	GinPageGetOpaque(page)->maxoff = data->nitem;
  
  	PageSetLSN(page, lsn);
  
+ 	updateItemIndexes(page, &ginstate);
+ 
  	MarkBufferDirty(buffer);
  	UnlockReleaseBuffer(buffer);
  }
***************
*** 182,195 **** ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
  
  			if (data->isLeaf)
  			{
! 				OffsetNumber i;
! 				ItemPointerData *items = (ItemPointerData *) (XLogRecGetData(record) + sizeof(ginxlogInsert));
  
  				Assert(GinPageIsLeaf(page));
  				Assert(data->updateBlkno == InvalidBlockNumber);
  
! 				for (i = 0; i < data->nitem; i++)
! 					GinDataPageAddItem(page, items + i, data->offset + i);
  			}
  			else
  			{
--- 193,241 ----
  
  			if (data->isLeaf)
  			{
! 				ItemPointer startIptr = (ItemPointer) (XLogRecGetData(record) + sizeof(ginxlogInsert));
! 				OffsetNumber i, maxoff = GinPageGetOpaque(page)->maxoff, j;
! 				Pointer dataPtr = (Pointer)(startIptr + 1);
! 				GinState	ginstate;
! 				ItemPointerData iptr = {{0, 0}, 0}, prev_iptr;
! 				char pageCopy[BLCKSZ];
! 				Pointer ptr, destPtr, dataFinish;
  
  				Assert(GinPageIsLeaf(page));
  				Assert(data->updateBlkno == InvalidBlockNumber);
  
! 				memcpy(pageCopy, page, BLCKSZ);
! 				ptr = GinDataPageGetData(page);
! 				for (i = 1; i < data->offset ; i++)
! 				{
! 					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
! 				}
! 
! 				ptr = GinDataPageGetData(pageCopy);
! 				for (i = 1; i < data->offset ; i++)
! 				{
! 					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
! 				}
! 
! 				prev_iptr = iptr;
! 				destPtr = page + (ptr - pageCopy);
! 
! 				dataFinish = dataPtr;
! 				for (j = 0; j < data->nitem; j++)
! 					dataFinish = ginDataPageLeafReadItemPointer(dataFinish, &prev_iptr);
! 
! 				memcpy(destPtr, dataPtr, dataFinish - dataPtr);
! 				destPtr += dataFinish - dataPtr;
! 
! 				for (; i <= maxoff; i++)
! 				{
! 					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
! 					destPtr = ginDataPageLeafWriteItemPointer(destPtr, &iptr, &prev_iptr);
! 					prev_iptr = iptr;
! 				}
! 
! 				GinPageGetOpaque(page)->maxoff = maxoff + data->nitem;
! 				updateItemIndexes(page, &ginstate);
  			}
  			else
  			{
***************
*** 255,260 **** ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
--- 301,307 ----
  	Page		lpage,
  				rpage;
  	uint32		flags = 0;
+ 	GinState	ginstate;
  
  	if (data->isLeaf)
  		flags |= GIN_LEAF;
***************
*** 284,310 **** ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
  		OffsetNumber i;
  		ItemPointer bound;
  
! 		for (i = 0; i < data->separator; i++)
  		{
! 			GinDataPageAddItem(lpage, ptr, InvalidOffsetNumber);
! 			ptr += sizeofitem;
  		}
! 
! 		for (i = data->separator; i < data->nitem; i++)
  		{
! 			GinDataPageAddItem(rpage, ptr, InvalidOffsetNumber);
! 			ptr += sizeofitem;
! 		}
  
! 		/* set up right key */
! 		bound = GinDataPageGetRightBound(lpage);
! 		if (data->isLeaf)
! 			*bound = *(ItemPointerData *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff);
! 		else
! 			*bound = ((PostingItem *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff))->key;
  
! 		bound = GinDataPageGetRightBound(rpage);
! 		*bound = data->rightbound;
  	}
  	else
  	{
--- 331,391 ----
  		OffsetNumber i;
  		ItemPointer bound;
  
! 		if (data->isLeaf)
  		{
! 			Pointer tmp, ptr2;
! 			ItemPointerData iptr = {{0, 0}, 0};
! 			Size lsize, rsize;
! 
! 			tmp = ptr;
! 			for (i = 1; i <= data->separator; i++)
! 				tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
! 			lsize = tmp - ptr;
! 			ptr2 = ptr + MAXALIGN(lsize);
! 			tmp = ptr2;
! 			for (; i <= data->nitem; i++)
! 				tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
! 			rsize = tmp - ptr2;
! 
! 			Assert(lsize < GinDataPageSize);
! 			Assert(rsize < GinDataPageSize);
! 
! 			memcpy(GinDataPageGetData(lpage), ptr, lsize);
! 			memcpy(GinDataPageGetData(rpage), ptr2, rsize);
! 
! 			GinPageGetOpaque(lpage)->maxoff = data->separator;
! 			GinPageGetOpaque(rpage)->maxoff = data->nitem - data->separator;
! 			*GinDataPageGetRightBound(lpage) = updateItemIndexes(lpage, &ginstate);
! 			updateItemIndexes(rpage, &ginstate);
! 
! 			*GinDataPageGetRightBound(rpage) = data->rightbound;
! 
! 			Assert(GinPageGetOpaque(lpage)->flags == flags);
! 			Assert(GinPageGetOpaque(rpage)->flags == flags);
  		}
! 		else
  		{
! 			for (i = 0; i < data->separator; i++)
! 			{
! 				GinDataPageAddItem(lpage, ptr, InvalidOffsetNumber);
! 				ptr += sizeofitem;
! 			}
  
! 			for (i = data->separator; i < data->nitem; i++)
! 			{
! 				GinDataPageAddItem(rpage, ptr, InvalidOffsetNumber);
! 				ptr += sizeofitem;
! 			}
! 			/* set up right key */
! 			bound = GinDataPageGetRightBound(lpage);
! 			if (data->isLeaf)
! 				*bound = *(ItemPointerData *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff);
! 			else
! 				*bound = ((PostingItem *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff))->key;
  
! 			bound = GinDataPageGetRightBound(rpage);
! 			*bound = data->rightbound;
! 		}
  	}
  	else
  	{
***************
*** 390,399 **** ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record)
  	{
  		if (GinPageIsData(page))
  		{
! 			memcpy(GinDataPageGetData(page),
! 				   XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
! 				   data->nitem * GinSizeOfDataPageItem(page));
! 			GinPageGetOpaque(page)->maxoff = data->nitem;
  		}
  		else
  		{
--- 471,500 ----
  	{
  		if (GinPageIsData(page))
  		{
! 			if (GinPageIsLeaf(page))
! 			{
! 				GinState	ginstate;
! 				ItemPointerData iptr = {{0, 0}, 0};
! 				Pointer ptr, tmp;
! 				OffsetNumber i;
! 
! 				ptr = XLogRecGetData(record) + sizeof(ginxlogVacuumPage);
! 				tmp = ptr;
! 				for (i = 1; i <= data->nitem; i++)
! 					tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
! 
! 				memcpy(GinDataPageGetData(page), ptr, tmp - ptr);
! 
! 				GinPageGetOpaque(page)->maxoff = data->nitem;
! 				updateItemIndexes(page, &ginstate);
! 			}
! 			else
! 			{
! 				memcpy(GinDataPageGetData(page),
! 					   XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
! 					   data->nitem * GinSizeOfDataPageItem(page));
! 				GinPageGetOpaque(page)->maxoff = data->nitem;
! 			}
  		}
  		else
  		{
***************
*** 802,813 **** ginContinueSplit(ginIncompleteSplit *split)
  		ginPrepareDataScan(&btree, reln);
  
  		PostingItemSetBlockNumber(&(btree.pitem), split->leftBlkno);
! 		if (GinPageIsLeaf(page))
! 			btree.pitem.key = *(ItemPointerData *) GinDataPageGetItem(page,
! 											 GinPageGetOpaque(page)->maxoff);
! 		else
! 			btree.pitem.key = ((PostingItem *) GinDataPageGetItem(page,
! 									   GinPageGetOpaque(page)->maxoff))->key;
  	}
  
  	btree.rightblkno = split->rightBlkno;
--- 903,909 ----
  		ginPrepareDataScan(&btree, reln);
  
  		PostingItemSetBlockNumber(&(btree.pitem), split->leftBlkno);
! 		btree.pitem.key = *GinDataPageGetRightBound(page);
  	}
  
  	btree.rightblkno = split->rightBlkno;
*** a/src/include/access/gin_private.h
--- b/src/include/access/gin_private.h
***************
*** 196,205 **** typedef signed char GinNullCategory;
  #define GinCategoryOffset(itup,ginstate) \
  	(IndexInfoFindDataOffset((itup)->t_info) + \
  	 ((ginstate)->oneCol ? 0 : sizeof(int16)))
! #define GinGetNullCategory(itup,ginstate) \
  	(*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))))
  #define GinSetNullCategory(itup,ginstate,c) \
! 	(*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))) = (c))
  
  /*
   * Access macros for leaf-page entry tuples (see discussion in README)
--- 196,211 ----
  #define GinCategoryOffset(itup,ginstate) \
  	(IndexInfoFindDataOffset((itup)->t_info) + \
  	 ((ginstate)->oneCol ? 0 : sizeof(int16)))
! /*#define GinGetNullCategory(itup,ginstate) \
  	(*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))))
  #define GinSetNullCategory(itup,ginstate,c) \
! 	(*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))) = (c))*/
! 
! #define GinGetNullCategory(itup,ginstate) \
! 	(*((GinNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(GinNullCategory))))
! #define GinSetNullCategory(itup,ginstate,c) \
! 	(*((GinNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(GinNullCategory))) = (c))
! 
  
  /*
   * Access macros for leaf-page entry tuples (see discussion in README)
***************
*** 213,223 **** typedef signed char GinNullCategory;
  
  #define GinGetPostingOffset(itup)	GinItemPointerGetBlockNumber(&(itup)->t_tid)
  #define GinSetPostingOffset(itup,n) ItemPointerSetBlockNumber(&(itup)->t_tid,n)
! #define GinGetPosting(itup)			((ItemPointer) ((char*)(itup) + GinGetPostingOffset(itup)))
  
  #define GinMaxItemSize \
  	MAXALIGN_DOWN(((BLCKSZ - SizeOfPageHeaderData - \
! 		MAXALIGN(sizeof(GinPageOpaqueData))) / 3 - sizeof(ItemIdData)))
  
  /*
   * Access macros for non-leaf entry tuples
--- 219,229 ----
  
  #define GinGetPostingOffset(itup)	GinItemPointerGetBlockNumber(&(itup)->t_tid)
  #define GinSetPostingOffset(itup,n) ItemPointerSetBlockNumber(&(itup)->t_tid,n)
! #define GinGetPosting(itup)			((Pointer) ((char*)(itup) + GinGetPostingOffset(itup)))
  
  #define GinMaxItemSize \
  	MAXALIGN_DOWN(((BLCKSZ - SizeOfPageHeaderData - \
! 		MAXALIGN(sizeof(GinPageOpaqueData))) / 6 - sizeof(ItemIdData)))
  
  /*
   * Access macros for non-leaf entry tuples
***************
*** 255,260 **** typedef signed char GinNullCategory;
--- 261,289 ----
  #define GinListPageSize  \
  	( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GinPageOpaqueData)) )
  
+ typedef struct
+ {
+ 	ItemPointerData iptr;
+ 	OffsetNumber offsetNumer;
+ 	uint16 pageOffset;
+ } GinDataLeafItemIndex;
+ 
+ #define GinDataLeafIndexCount 32
+ 
+ #define GinDataPageSize	\
+ 	(BLCKSZ - MAXALIGN(SizeOfPageHeaderData) \
+ 	 - MAXALIGN(sizeof(ItemPointerData)) \
+ 	 - MAXALIGN(sizeof(GinPageOpaqueData)) \
+ 	 - MAXALIGN(sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount))
+ 
+ #define GinDataPageFreeSpacePre(page,ptr) \
+ 	(GinDataPageSize \
+ 	 - ((ptr) - GinDataPageGetData(page)))
+ 
+ #define GinPageGetIndexes(page) \
+ 	((GinDataLeafItemIndex *)(GinDataPageGetData(page) + GinDataPageSize))
+ 
+ 
  /*
   * Storage type for GIN's reloptions
   */
***************
*** 519,536 **** extern void ginInsertValue(GinBtree btree, GinBtreeStack *stack,
  extern void ginFindParents(GinBtree btree, GinBtreeStack *stack, BlockNumber rootBlkno);
  
  /* ginentrypage.c */
- extern IndexTuple GinFormTuple(GinState *ginstate,
- 			 OffsetNumber attnum, Datum key, GinNullCategory category,
- 			 ItemPointerData *ipd, uint32 nipd, bool errorTooBig);
- extern void GinShortenTuple(IndexTuple itup, uint32 nipd);
  extern void ginPrepareEntryScan(GinBtree btree, OffsetNumber attnum,
  					Datum key, GinNullCategory category,
  					GinState *ginstate);
  extern void ginEntryFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf);
  extern IndexTuple ginPageGetLinkItup(Buffer buf);
  
  /* gindatapage.c */
  extern int	ginCompareItemPointers(ItemPointer a, ItemPointer b);
  extern uint32 ginMergeItemPointers(ItemPointerData *dst,
  					 ItemPointerData *a, uint32 na,
  					 ItemPointerData *b, uint32 nb);
--- 548,567 ----
  extern void ginFindParents(GinBtree btree, GinBtreeStack *stack, BlockNumber rootBlkno);
  
  /* ginentrypage.c */
  extern void ginPrepareEntryScan(GinBtree btree, OffsetNumber attnum,
  					Datum key, GinNullCategory category,
  					GinState *ginstate);
  extern void ginEntryFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf);
  extern IndexTuple ginPageGetLinkItup(Buffer buf);
+ extern void ginReadTuple(GinState *ginstate, OffsetNumber attnum,
+ 	IndexTuple itup, ItemPointerData *ipd);
+ extern ItemPointerData updateItemIndexes(Page page, GinState *ginstate);
  
  /* gindatapage.c */
  extern int	ginCompareItemPointers(ItemPointer a, ItemPointer b);
+ extern char *ginDataPageLeafWriteItemPointer(char *ptr, ItemPointer iptr, ItemPointer prev);
+ extern Size ginCheckPlaceToDataPageLeaf(ItemPointer iptr, ItemPointer prev,
+ 							Size size);
  extern uint32 ginMergeItemPointers(ItemPointerData *dst,
  					 ItemPointerData *a, uint32 na,
  					 ItemPointerData *b, uint32 nb);
***************
*** 724,727 **** extern void ginHeapTupleFastCollect(GinState *ginstate,
--- 755,805 ----
  extern void ginInsertCleanup(GinState *ginstate,
  				 bool vac_delay, IndexBulkDeleteResult *stats);
  
+ /*
+  * Function for reading packed ItemPointers. Used in various .c files and
+  * have to be inline for being fast.
+  *
+  * Read next item pointer from leaf data page. Replaces current item pointer
+  * with the next one. Zero item pointer should be passed in order to read the
+  * first item pointer.
+  */
+ static inline char *
+ ginDataPageLeafReadItemPointer(char *ptr, ItemPointer iptr)
+ {
+ 	uint32		blockNumberIncr;
+ 	uint16		offset;
+ 	int			i;
+ 	uint8		v;
+ 
+ 	i = 0;
+ 	blockNumberIncr = 0;
+ 	do
+ 	{
+ 		v = *ptr;
+ 		ptr++;
+ 		blockNumberIncr |= (uint32) (v & (~HIGHBIT)) << i;
+ 		i += 7;
+ 	}
+ 	while (IS_HIGHBIT_SET(v));
+ 
+ 	blockNumberIncr += iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16);
+ 
+ 	iptr->ip_blkid.bi_lo = blockNumberIncr & 0xFFFF;
+ 	iptr->ip_blkid.bi_hi = (blockNumberIncr >> 16) & 0xFFFF;
+ 
+ 	i = 0;
+ 	offset = 0;
+ 	do
+ 	{
+ 		v = *ptr;
+ 		ptr++;
+ 		offset |= (uint32) (v & (~HIGHBIT)) << i;
+ 		i += 7;
+ 	} while(IS_HIGHBIT_SET(v));
+ 
+ 	iptr->ip_posid = offset;
+ 
+ 	return ptr;
+ }
+ 
  #endif   /* GIN_PRIVATE_H */
#7Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Antonin Houska (#5)
Re: GIN improvements part 1: additional information

On 27.06.2013 17:20, Antonin Houska wrote:

I was curious about the new layout of the data page, so I spent a while
looking into the code.
It's interesting, but I suspect 2 things are not o.k.:

* gindatapage.c:dataIsEnoughSpace() - 'i++' in the for loop should
probably be 'j++', otherwise it loops forever

Hmm. It won't loop forever, i is counting the number of entries that fit
on the page, while j is used to loop through the items being added.
However, i isn't actually used for anything (and isn't initialized
either), so it's just dead code.

- Heikki

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

#8Antonin Houska
antonin.houska@gmail.com
In reply to: Heikki Linnakangas (#7)
Re: GIN improvements part 1: additional information

On 06/29/2013 11:00 AM, Heikki Linnakangas wrote:

On 27.06.2013 17:20, Antonin Houska wrote:

I was curious about the new layout of the data page, so I spent a while
looking into the code.
It's interesting, but I suspect 2 things are not o.k.:

* gindatapage.c:dataIsEnoughSpace() - 'i++' in the for loop should
probably be 'j++', otherwise it loops forever

Hmm. It won't loop forever, i is counting the number of entries that
fit on the page, while j is used to loop through the items being
added. However, i isn't actually used for anything (and isn't
initialized either), so it's just dead code.

- Heikki

You're right. While thinking about possible meaning of the 'i' I didn't
notice that j++ is in the 'for' construct. Stupid mistake on my side.

Tony

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

#9Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Heikki Linnakangas (#6)
Re: GIN improvements part 1: additional information

On 29.06.2013 11:56, Heikki Linnakangas wrote:

On 25.06.2013 01:03, Alexander Korotkov wrote:

New revision of patch is attached. Now it includes some docs.

Thanks! I'm looking into this in detail now.

First, this patch actually contains two major things:

1. Pack item pointers more tightly on posting data leaf pages.
2. Allow opclass implementation to attach "additional information" to
each item pointer.

These are two very distinct features, so this patch needs to be split
into two. I extracted the 1st part into a separate patch, attached, and
am going to focus on that now.

I made one significant change: I removed the 'freespace' field you added
to GinpageOpaque. Instead, on data leaf pages the offset from the
beginning of the page where the packed items end is stored in place of
the 'maxoff' field. This allows for quick calculation of the free space,
but there is no count of item pointers stored on the page anymore, so
some code that looped through all the item pointers relying on 'maxoff'
had to be changed to work with the end offset instead. I'm not 100%
wedded on this, but I'd like to avoid adding the redundant freespace
field on pages that don't need it, because it's confusing and you have
to remember to keep them in sync.

Ah, crap, looks like I sent the wrong patch, and now I can't find the
correct one anymore. The patch I sent didn't include the changes store
end offset instead of freespace. I'll rewrite that part..

- Heikki

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

#10Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Heikki Linnakangas (#9)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 29.06.2013 20:08, Heikki Linnakangas wrote:

On 29.06.2013 11:56, Heikki Linnakangas wrote:

I made one significant change: I removed the 'freespace' field you added
to GinpageOpaque. Instead, on data leaf pages the offset from the
beginning of the page where the packed items end is stored in place of
the 'maxoff' field. This allows for quick calculation of the free space,
but there is no count of item pointers stored on the page anymore, so
some code that looped through all the item pointers relying on 'maxoff'
had to be changed to work with the end offset instead. I'm not 100%
wedded on this, but I'd like to avoid adding the redundant freespace
field on pages that don't need it, because it's confusing and you have
to remember to keep them in sync.

Ah, crap, looks like I sent the wrong patch, and now I can't find the
correct one anymore. The patch I sent didn't include the changes store
end offset instead of freespace. I'll rewrite that part..

Here's the correct version. I've probably broken things, sorry about that.

I'm going to mark this as "returned with feedback" now. The code still
needs a lot of general cleanup, including comment and README updates.
Also, please take some time to consider the open questions I listed
here: archives.postgresql.org/message-id/51CEA13C.8040103@vmware.com.

- Heikki

Attachments:

gin-packed-postinglists-2.patchtext/x-diff; name=gin-packed-postinglists-2.patchDownload
diff --git a/src/backend/access/gin/README b/src/backend/access/gin/README
index 67159d8..6ebee1b 100644
--- a/src/backend/access/gin/README
+++ b/src/backend/access/gin/README
@@ -145,6 +145,7 @@ none appear in the key entry itself.  The separate pages are called a
 Note that in either case, the ItemPointers associated with a key can
 easily be read out in sorted order; this is relied on by the scan
 algorithms.
+FIXME: Update above paragraph!
 
 * The index tuple header fields of a leaf key entry are abused as follows:
 
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c
index f017de0..a250bfc 100644
--- a/src/backend/access/gin/gindatapage.c
+++ b/src/backend/access/gin/gindatapage.c
@@ -18,6 +18,97 @@
 #include "utils/rel.h"
 
 /*
+ * Write item pointer into leaf data page using varbyte encoding. Since
+ * BlockNumber is stored in incremental manner we also need a previous item
+ * pointer.
+ */
+char *
+ginDataPageLeafWriteItemPointer(char *ptr, ItemPointer iptr, ItemPointer prev)
+{
+	uint32		blockNumberIncr;
+	uint16		offset;
+	uint8		v;
+
+	blockNumberIncr = iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16) -
+					  (prev->ip_blkid.bi_lo + (prev->ip_blkid.bi_hi << 16));
+	for (;;)
+	{
+		if (blockNumberIncr < HIGHBIT)
+		{
+			v = (uint8) blockNumberIncr;
+			*ptr = v;
+			ptr++;
+			break;
+		}
+		else
+		{
+			v = ((uint8) blockNumberIncr) | HIGHBIT;
+			*ptr = v;
+			ptr++;
+			blockNumberIncr >>= 7;
+		}
+	}
+
+	offset = iptr->ip_posid;
+	for (;;)
+	{
+		if (offset < HIGHBIT)
+		{
+			v = (uint8) offset;
+			*ptr = v;
+			ptr++;
+			break;
+		}
+		else
+		{
+			v = ((uint8) offset) | HIGHBIT;
+			*ptr = v;
+			ptr++;
+			offset >>= 7;
+		}
+	}
+
+	return ptr;
+}
+
+/*
+ * Calculate size of incremental varbyte encoding of item pointer.
+ */
+static int
+ginDataPageLeafGetItemPointerSize(ItemPointer iptr, ItemPointer prev)
+{
+	uint32		blockNumberIncr;
+	uint16		offset;
+	int			size = 0;
+
+	blockNumberIncr = iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16) -
+					  (prev->ip_blkid.bi_lo + (prev->ip_blkid.bi_hi << 16));
+	do
+	{
+		size++;
+		blockNumberIncr >>= 7;
+	} while (blockNumberIncr > 0);
+
+	offset = iptr->ip_posid;
+	do
+	{
+		size++;
+		offset >>= 7;
+	} while (offset > 0);
+
+	return size;
+}
+
+/*
+ * Returns size of item pointers if leaf data page after inserting another one.
+ */
+Size
+ginCheckPlaceToDataPageLeaf(ItemPointer iptr, ItemPointer prev, Size size)
+{
+	return size + ginDataPageLeafGetItemPointerSize(iptr, prev);
+}
+
+/*
  * Merge two ordered arrays of itempointers, eliminating any duplicates.
  * Returns the number of items in the result.
  * Caller is responsible that there is enough space at *dst.
@@ -91,12 +182,12 @@ dataLocateItem(GinBtree btree, GinBtreeStack *stack)
 	if (btree->fullScan)
 	{
 		stack->off = FirstOffsetNumber;
-		stack->predictNumber *= GinPageGetOpaque(page)->maxoff;
+		stack->predictNumber *= GinPageGetOpaque(page)->u.maxoff;
 		return btree->getLeftMostPage(btree, page);
 	}
 
 	low = FirstOffsetNumber;
-	maxoff = high = GinPageGetOpaque(page)->maxoff;
+	maxoff = high = GinPageGetOpaque(page)->u.maxoff;
 	Assert(high >= low);
 
 	high++;
@@ -105,7 +196,7 @@ dataLocateItem(GinBtree btree, GinBtreeStack *stack)
 	{
 		OffsetNumber mid = low + ((high - low) / 2);
 
-		pitem = (PostingItem *) GinDataPageGetItem(page, mid);
+		pitem = GinDataPageGetItem(page, mid);
 
 		if (mid == maxoff)
 		{
@@ -117,7 +208,7 @@ dataLocateItem(GinBtree btree, GinBtreeStack *stack)
 		}
 		else
 		{
-			pitem = (PostingItem *) GinDataPageGetItem(page, mid);
+			pitem = GinDataPageGetItem(page, mid);
 			result = ginCompareItemPointers(btree->items + btree->curitem, &(pitem->key));
 		}
 
@@ -135,11 +226,82 @@ dataLocateItem(GinBtree btree, GinBtreeStack *stack)
 	Assert(high >= FirstOffsetNumber && high <= maxoff);
 
 	stack->off = high;
-	pitem = (PostingItem *) GinDataPageGetItem(page, high);
+	pitem = GinDataPageGetItem(page, high);
+
 	return PostingItemGetBlockNumber(pitem);
 }
 
 /*
+ * Find item pointer in leaf data page. Returns true if given item pointer is
+ * found and false if it's not. Sets offset and iptrOut to last item pointer
+ * which is less than given one. Sets ptrOut ahead that item pointer.
+ */
+static bool
+findInLeafPage(GinBtree btree, Page page, OffsetNumber *offset,
+			   ItemPointerData *iptrOut, Pointer *ptrOut)
+{
+	Pointer		ptr = GinDataPageGetData(page);
+	int			i;
+	OffsetNumber off;
+	ItemPointerData iptr = {{0,0},0};
+	int			cmp;
+	Pointer		endPtr;
+	bool		result = false;
+
+	endPtr = page + GinPageGetOpaque(page)->u.endoffset;
+
+	/*
+	 * At first, search index at the end of page. As the result we narrow
+	 * [first, maxoff] range.
+	 */
+	off = FirstOffsetNumber;
+	for (i = 0; i < GinDataLeafIndexCount; i++)
+	{
+		GinDataLeafItemIndex *index = &GinPageGetIndexes(page)[i];
+		if (index->offsetNumber == InvalidOffsetNumber)
+			break;
+
+		cmp = ginCompareItemPointers(&index->iptr, btree->items + btree->curitem);
+		if (cmp < 0)
+		{
+			ptr = GinDataPageGetData(page) + index->pageOffset;
+			iptr = index->iptr;
+			off = index->offsetNumber;
+		}
+		else
+		{
+			endPtr = page + index->pageOffset;
+			break;
+		}
+	}
+
+	/* Search page in [first, maxoff] range found by page index */
+	while (ptr < endPtr)
+	{
+		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+
+		cmp = ginCompareItemPointers(btree->items + btree->curitem, &iptr);
+		if (cmp == 0)
+		{
+			result = true;
+			break;
+		}
+		if (cmp < 0)
+		{
+			result = false;
+			break;
+		}
+		off++;
+	}
+
+	*ptrOut = ptr;
+	*iptrOut = iptr;
+	*offset = off;
+	return result;
+}
+
+
+/*
  * Searches correct position for value on leaf page.
  * Page should be correctly chosen.
  * Returns true if value found on page.
@@ -148,9 +310,8 @@ static bool
 dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
 {
 	Page		page = BufferGetPage(stack->buffer);
-	OffsetNumber low,
-				high;
-	int			result;
+	ItemPointerData iptr;
+	Pointer		ptr;
 
 	Assert(GinPageIsLeaf(page));
 	Assert(GinPageIsData(page));
@@ -161,36 +322,7 @@ dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
 		return TRUE;
 	}
 
-	low = FirstOffsetNumber;
-	high = GinPageGetOpaque(page)->maxoff;
-
-	if (high < low)
-	{
-		stack->off = FirstOffsetNumber;
-		return false;
-	}
-
-	high++;
-
-	while (high > low)
-	{
-		OffsetNumber mid = low + ((high - low) / 2);
-
-		result = ginCompareItemPointers(btree->items + btree->curitem, (ItemPointer) GinDataPageGetItem(page, mid));
-
-		if (result == 0)
-		{
-			stack->off = mid;
-			return true;
-		}
-		else if (result > 0)
-			low = mid + 1;
-		else
-			high = mid;
-	}
-
-	stack->off = high;
-	return false;
+	return findInLeafPage(btree, page, &stack->off, &iptr, &ptr);
 }
 
 /*
@@ -201,7 +333,7 @@ static OffsetNumber
 dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber storedOff)
 {
 	OffsetNumber i,
-				maxoff = GinPageGetOpaque(page)->maxoff;
+				maxoff = GinPageGetOpaque(page)->u.maxoff;
 	PostingItem *pitem;
 
 	Assert(!GinPageIsLeaf(page));
@@ -210,7 +342,7 @@ dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber stor
 	/* if page isn't changed, we return storedOff */
 	if (storedOff >= FirstOffsetNumber && storedOff <= maxoff)
 	{
-		pitem = (PostingItem *) GinDataPageGetItem(page, storedOff);
+		pitem = GinDataPageGetItem(page, storedOff);
 		if (PostingItemGetBlockNumber(pitem) == blkno)
 			return storedOff;
 
@@ -220,7 +352,7 @@ dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber stor
 		 */
 		for (i = storedOff + 1; i <= maxoff; i++)
 		{
-			pitem = (PostingItem *) GinDataPageGetItem(page, i);
+			pitem = GinDataPageGetItem(page, i);
 			if (PostingItemGetBlockNumber(pitem) == blkno)
 				return i;
 		}
@@ -231,7 +363,7 @@ dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber stor
 	/* last chance */
 	for (i = FirstOffsetNumber; i <= maxoff; i++)
 	{
-		pitem = (PostingItem *) GinDataPageGetItem(page, i);
+		pitem = GinDataPageGetItem(page, i);
 		if (PostingItemGetBlockNumber(pitem) == blkno)
 			return i;
 	}
@@ -249,37 +381,38 @@ dataGetLeftMostPage(GinBtree btree, Page page)
 
 	Assert(!GinPageIsLeaf(page));
 	Assert(GinPageIsData(page));
-	Assert(GinPageGetOpaque(page)->maxoff >= FirstOffsetNumber);
+	Assert(GinPageGetOpaque(page)->u.maxoff >= FirstOffsetNumber);
 
-	pitem = (PostingItem *) GinDataPageGetItem(page, FirstOffsetNumber);
+	pitem = GinDataPageGetItem(page, FirstOffsetNumber);
 	return PostingItemGetBlockNumber(pitem);
 }
 
 /*
- * add ItemPointer or PostingItem to page. data should point to
+ * add PostingItem to page. data should point to
  * correct value! depending on leaf or non-leaf page
  */
 void
-GinDataPageAddItem(Page page, void *data, OffsetNumber offset)
+GinPageAddPostingItem(Page page, PostingItem *data, OffsetNumber offset)
 {
-	OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
-	char	   *ptr;
+	OffsetNumber maxoff = GinPageGetOpaque(page)->u.maxoff;
+	PostingItem *ptr;
+
+	Assert(!GinPageIsLeaf(page));
 
 	if (offset == InvalidOffsetNumber)
-	{
 		ptr = GinDataPageGetItem(page, maxoff + 1);
-	}
 	else
 	{
+		Assert(offset <= maxoff + 1);
 		ptr = GinDataPageGetItem(page, offset);
-		if (maxoff + 1 - offset != 0)
-			memmove(ptr + GinSizeOfDataPageItem(page),
+		if (offset != maxoff + 1)
+			memmove(GinDataPageGetItem(page, offset +1),
 					ptr,
-					(maxoff - offset + 1) * GinSizeOfDataPageItem(page));
+					(maxoff - offset + 1) * sizeof(PostingItem));
 	}
-	memcpy(ptr, data, GinSizeOfDataPageItem(page));
+	memcpy(ptr, data, sizeof(PostingItem));
 
-	GinPageGetOpaque(page)->maxoff++;
+	GinPageGetOpaque(page)->u.maxoff++;
 }
 
 /*
@@ -288,16 +421,17 @@ GinDataPageAddItem(Page page, void *data, OffsetNumber offset)
 void
 GinPageDeletePostingItem(Page page, OffsetNumber offset)
 {
-	OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
+	OffsetNumber maxoff = GinPageGetOpaque(page)->u.maxoff;
 
 	Assert(!GinPageIsLeaf(page));
 	Assert(offset >= FirstOffsetNumber && offset <= maxoff);
 
 	if (offset != maxoff)
-		memmove(GinDataPageGetItem(page, offset), GinDataPageGetItem(page, offset + 1),
+		memmove(GinDataPageGetItem(page, offset),
+				GinDataPageGetItem(page, offset + 1),
 				sizeof(PostingItem) * (maxoff - offset));
 
-	GinPageGetOpaque(page)->maxoff--;
+	GinPageGetOpaque(page)->u.maxoff--;
 }
 
 /*
@@ -314,15 +448,26 @@ dataIsEnoughSpace(GinBtree btree, Buffer buf, OffsetNumber off)
 
 	if (GinPageIsLeaf(page))
 	{
-		if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
+		int j;
+		ItemPointerData iptr = {{0,0},0};
+		Size size = 0;
+
+		/*
+		 * Calculate additional size using worst case assumption: varbyte
+		 * encoding from zero item pointer.
+		 */
+		for (j = btree->curitem; j < btree->nitem; j++)
 		{
-			if ((btree->nitem - btree->curitem) * sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
-				return true;
+			size = ginCheckPlaceToDataPageLeaf(&btree->items[j],
+											   (j == btree->curitem) ? (&iptr) : &btree->items[j - 1],
+											   size);
 		}
-		else if (sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
+
+		if (GinLeafDataPageGetFreeSpace(page) >= size)
 			return true;
+
 	}
-	else if (sizeof(PostingItem) <= GinDataPageGetFreeSpace(page))
+	else if (sizeof(PostingItem) <= GinNonLeafDataPageGetFreeSpace(page))
 		return true;
 
 	return false;
@@ -361,12 +506,12 @@ static void
 dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata)
 {
 	Page		page = BufferGetPage(buf);
-	int			sizeofitem = GinSizeOfDataPageItem(page);
 	int			cnt = 0;
 
 	/* these must be static so they can be returned to caller */
 	static XLogRecData rdata[3];
 	static ginxlogInsert data;
+	static char insertData[BLCKSZ];
 
 	*prdata = rdata;
 	Assert(GinPageIsData(page));
@@ -376,7 +521,7 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
 	data.node = btree->index->rd_node;
 	data.blkno = BufferGetBlockNumber(buf);
 	data.offset = off;
-	data.nitem = 1;
+	data.nitem = 0;
 	data.isDelete = FALSE;
 	data.isData = TRUE;
 	data.isLeaf = GinPageIsLeaf(page) ? TRUE : FALSE;
@@ -404,35 +549,343 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
 	rdata[cnt].next = &rdata[cnt + 1];
 	cnt++;
 
-	rdata[cnt].buffer = InvalidBuffer;
-	rdata[cnt].data = (GinPageIsLeaf(page)) ? ((char *) (btree->items + btree->curitem)) : ((char *) &(btree->pitem));
-	rdata[cnt].len = sizeofitem;
-	rdata[cnt].next = NULL;
-
 	if (GinPageIsLeaf(page))
 	{
-		if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
+		int i = 0, j, max_j;
+		Pointer ptr = GinDataPageGetData(page), next_ptr, insertStart;
+		ItemPointerData iptr = {{0,0},0}, next_iptr;
+		char pageCopy[BLCKSZ];
+		int copySize = 0;
+		char *endPtr = page + GinPageGetOpaque(page)->u.endoffset;
+		bool	append = true;
+
+		/*
+		 * We're going to prevent var-byte re-encoding of whole page.
+		 * Find position in page using page indexes.
+		 */
+		findInLeafPage(btree, page, &off, &iptr, &ptr);
+
+		Assert(GinDataPageFreeSpacePre(page,ptr) >= 0);
+
+		if (ptr < endPtr)
 		{
-			/* usually, create index... */
-			uint32		savedPos = btree->curitem;
+			/*
+			 * Read next item pointer: we'll have to re-encode it. Copy
+			 * previous part of page
+			 */
+			next_iptr = iptr;
+			next_ptr = ginDataPageLeafReadItemPointer(ptr, &next_iptr);
+			copySize = GinDataPageSize -  GinLeafDataPageGetFreeSpace(page) -
+				(next_ptr - GinDataPageGetData(page));
+			memcpy(pageCopy, next_ptr, copySize);
+			append = false;
+		}
 
-			while (btree->curitem < btree->nitem)
+		/* Check how many items we're going to add */
+		max_j = btree->curitem + btree->nitem;
+
+		/* Place items to the page while we have enough of space */
+		memcpy(insertData, &iptr, sizeof(ItemPointerData));
+		insertStart = ptr;
+		i = 0;
+		for (j = btree->curitem; j < max_j; j++)
+		{
+			Pointer ptr2;
+
+			ptr2 = page + ginCheckPlaceToDataPageLeaf(&btree->items[j],
+													  &iptr, ptr - page);
+
+			if (GinDataPageFreeSpacePre(page, ptr2) < 0)
+				break;
+
+			ptr = ginDataPageLeafWriteItemPointer(ptr, &btree->items[j], &iptr);
+			Assert(GinDataPageFreeSpacePre(page,ptr) >= 0);
+
+			iptr = btree->items[j];
+			btree->curitem++;
+			data.nitem++;
+			i++;
+		}
+		Assert(i > 0);
+
+		/* Put WAL data */
+		memcpy(insertData + sizeof(ItemPointerData), insertStart,
+															ptr - insertStart);
+		rdata[cnt].buffer = InvalidBuffer;
+		rdata[cnt].data = insertData;
+		rdata[cnt].len = sizeof(ItemPointerData) + (ptr - insertStart);
+		rdata[cnt].next = NULL;
+
+		/* Place rest of the page back */
+		if (!append)
+		{
+			ptr = ginDataPageLeafWriteItemPointer(ptr, &next_iptr, &iptr);
+			Assert(GinDataPageFreeSpacePre(page,ptr) >= 0);
+			memcpy(ptr, pageCopy, copySize);
+			ptr += copySize;
+		}
+
+		GinPageGetOpaque(page)->u.endoffset = ptr - page;
+
+		if (GinDataPageFreeSpacePre(page,ptr) < 0)
+			elog(ERROR, "not enough space in leaf page!");
+
+		/* Update indexes in the end of page */
+		updateItemIndexes(page, btree->ginstate);
+	}
+	else
+	{
+		rdata[cnt].buffer = InvalidBuffer;
+		rdata[cnt].data = (char *) &(btree->pitem);
+		rdata[cnt].len = sizeof(PostingItem);
+		rdata[cnt].next = NULL;
+		data.nitem = 1;
+
+		GinPageAddPostingItem(page, &(btree->pitem), off);
+	}
+}
+
+/* Macro for leaf data page split: switch to right page if needed. */
+#define CHECK_SWITCH_TO_RPAGE                    \
+	do {                                         \
+		if (ptr - GinDataPageGetData(page) >     \
+			totalsize / 2 && page == lpage)      \
+		{                                        \
+			maxLeftIptr = iptr;                  \
+			prevIptr.ip_blkid.bi_hi = 0;         \
+			prevIptr.ip_blkid.bi_lo = 0;         \
+			prevIptr.ip_posid = 0;               \
+			GinPageGetOpaque(lpage)->u.endoffset = ptr - page; \
+			page = rpage;                        \
+			ptr = GinDataPageGetData(rpage);     \
+			separator = j;						 \
+			j = FirstOffsetNumber;               \
+		}                                        \
+		else                                     \
+		{                                        \
+			j++;                                 \
+		}                                        \
+	} while (0)
+
+
+
+/*
+ * Place tuple and split page, original buffer(lbuf) leaves untouched,
+ * returns shadow page of lbuf filled new data.
+ */
+static Page
+dataSplitPageLeaf(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
+														XLogRecData **prdata)
+{
+	OffsetNumber i, j;
+	Size		totalsize = 0, prevTotalsize;
+	Pointer		ptr, copyPtr, copyEndPtr;
+	Page		page;
+	Page		lpage = PageGetTempPageCopy(BufferGetPage(lbuf));
+	Page		rpage = BufferGetPage(rbuf);
+	Size		pageSize = PageGetPageSize(lpage);
+	Size		maxItemSize = 0;
+	ItemPointerData iptr, prevIptr, maxLeftIptr;
+	int			totalCount = 0;
+	int			maxItemIndex = btree->curitem;
+	int			separator = 0;
+
+	/* these must be static so they can be returned to caller */
+	static XLogRecData rdata[3];
+	static ginxlogSplit data;
+	static char lpageCopy[BLCKSZ];
+
+	*prdata = rdata;
+	data.leftChildBlkno = (GinPageIsLeaf(lpage)) ?
+		InvalidOffsetNumber : GinGetDownlink(btree->entry);
+	data.updateBlkno = dataPrepareData(btree, lpage, off);
+
+	/* Copy original data of the page */
+	memcpy(lpageCopy, lpage, BLCKSZ);
+
+	/* Reinitialize pages */
+	GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
+	GinInitPage(lpage, GinPageGetOpaque(rpage)->flags, pageSize);
+
+	GinPageGetOpaque(lpage)->u.endoffset = GinDataPageGetData(lpage) - lpage;
+	GinPageGetOpaque(rpage)->u.endoffset = GinDataPageGetData(rpage) - rpage;
+
+	/* Calculate the whole size we're going to place */
+	copyPtr = GinDataPageGetData(lpageCopy);
+	copyEndPtr = lpageCopy + GinPageGetOpaque(lpageCopy)->u.endoffset;
+	iptr.ip_blkid.bi_hi = 0;
+	iptr.ip_blkid.bi_lo = 0;
+	iptr.ip_posid = 0;
+	i = FirstOffsetNumber;
+	while (copyPtr < copyEndPtr)
+	{
+		if (i == off)
+		{
+			prevIptr = iptr;
+			iptr = btree->items[maxItemIndex];
+
+			prevTotalsize = totalsize;
+			totalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize);
+
+			maxItemIndex++;
+			totalCount++;
+			maxItemSize = Max(maxItemSize, totalsize - prevTotalsize);
+		}
+
+		prevIptr = iptr;
+		copyPtr = ginDataPageLeafReadItemPointer(copyPtr, &iptr);
+
+		prevTotalsize = totalsize;
+		totalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize);
+
+		totalCount++;
+		maxItemSize = Max(maxItemSize, totalsize - prevTotalsize);
+		i++;
+	}
+
+	Assert(copyPtr <= copyEndPtr);
+	if (copyPtr == copyEndPtr)
+	{
+		prevIptr = iptr;
+		iptr = btree->items[maxItemIndex];
+		if (GinPageRightMost(lpage))
+		{
+			Size newTotalsize;
+
+			/*
+			 * Found how many new item pointer we're going to add using
+			 * worst case assumptions about odd placement and alignment.
+			 */
+			while (maxItemIndex < btree->nitem &&
+				(newTotalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize)) <
+					2 * GinDataPageSize - 2 * maxItemSize - 2 * MAXIMUM_ALIGNOF
+			)
 			{
-				GinDataPageAddItem(page, btree->items + btree->curitem, off);
-				off++;
-				btree->curitem++;
+				maxItemIndex++;
+				totalCount++;
+				maxItemSize = Max(maxItemSize, newTotalsize - totalsize);
+				totalsize = newTotalsize;
+
+				prevIptr = iptr;
+				if (maxItemIndex < btree->nitem)
+					iptr = btree->items[maxItemIndex];
 			}
-			data.nitem = btree->curitem - savedPos;
-			rdata[cnt].len = sizeofitem * data.nitem;
 		}
 		else
 		{
-			GinDataPageAddItem(page, btree->items + btree->curitem, off);
-			btree->curitem++;
+			prevTotalsize = totalsize;
+			totalsize = ginCheckPlaceToDataPageLeaf(&iptr, &prevIptr, totalsize);
+			maxItemIndex++;
+
+			totalCount++;
+			maxItemSize = Max(maxItemSize, totalsize - prevTotalsize);
 		}
 	}
-	else
-		GinDataPageAddItem(page, &(btree->pitem), off);
+
+	/*
+	 * Place item pointers with additional information to the pages using
+	 * previous calculations. XXX: what does this do now that I removed the
+	 * additional information stuff from the patch?
+	 */
+	ptr = GinDataPageGetData(lpage);
+	page = lpage;
+	j = FirstOffsetNumber;
+	iptr.ip_blkid.bi_hi = 0;
+	iptr.ip_blkid.bi_lo = 0;
+	iptr.ip_posid = 0;
+	prevIptr = iptr;
+	copyPtr = GinDataPageGetData(lpageCopy);
+	i = 0;
+	while (copyPtr < copyEndPtr)
+	{
+		if (i == off)
+		{
+			while (btree->curitem < maxItemIndex)
+			{
+				iptr = btree->items[btree->curitem];
+
+				ptr = ginDataPageLeafWriteItemPointer(ptr, &iptr, &prevIptr);
+				Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+
+				btree->curitem++;
+				prevIptr = iptr;
+
+				CHECK_SWITCH_TO_RPAGE;
+				i++;
+			}
+		}
+
+		copyPtr = ginDataPageLeafReadItemPointer(copyPtr, &iptr);
+
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &iptr, &prevIptr);
+		Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+
+		prevIptr = iptr;
+
+		CHECK_SWITCH_TO_RPAGE;
+		i++;
+	}
+
+	/*
+	 * If we didn't add the new items yet, they belong at the end. Insert them
+	 * there.
+	 */
+	while (btree->curitem < maxItemIndex)
+	{
+		iptr = btree->items[btree->curitem];
+
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &iptr, &prevIptr);
+		Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+
+		btree->curitem++;
+
+		prevIptr = iptr;
+
+		CHECK_SWITCH_TO_RPAGE;
+		i++;
+	}
+
+	Assert(page == rpage);
+	GinPageGetOpaque(rpage)->u.endoffset = ptr - rpage;
+
+	PostingItemSetBlockNumber(&(btree->pitem), BufferGetBlockNumber(lbuf));
+	btree->pitem.key = maxLeftIptr;
+	btree->rightblkno = BufferGetBlockNumber(rbuf);
+
+	*GinDataPageGetRightBound(rpage) = *GinDataPageGetRightBound(lpage);
+	*GinDataPageGetRightBound(lpage) = maxLeftIptr;
+
+	/* Fill indexes at the end of pages */
+	updateItemIndexes(lpage, btree->ginstate);
+	updateItemIndexes(rpage, btree->ginstate);
+
+	data.node = btree->index->rd_node;
+	data.rootBlkno = InvalidBlockNumber;
+	data.lblkno = BufferGetBlockNumber(lbuf);
+	data.rblkno = BufferGetBlockNumber(rbuf);
+	data.separator = separator;
+	data.nitem = i;
+	data.isData = TRUE;
+	data.isLeaf = TRUE;
+	data.isRootSplit = FALSE;
+	data.rightbound = *GinDataPageGetRightBound(rpage);
+
+	rdata[0].buffer = InvalidBuffer;
+	rdata[0].data = (char *) &data;
+	rdata[0].len = sizeof(ginxlogSplit);
+	rdata[0].next = &rdata[1];
+
+	rdata[1].buffer = InvalidBuffer;
+	rdata[1].data = GinDataPageGetData(lpage);
+	rdata[1].len = GinDataPageSize - GinLeafDataPageGetFreeSpace(lpage);
+	rdata[1].next = &rdata[2];
+
+	rdata[2].buffer = InvalidBuffer;
+	rdata[2].data = GinDataPageGetData(rpage);
+	rdata[2].len = GinDataPageSize - GinLeafDataPageGetFreeSpace(rpage);
+	rdata[2].next = NULL;
+
+	return lpage;
 }
 
 /*
@@ -442,19 +895,18 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
  * left page
  */
 static Page
-dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRecData **prdata)
+dataSplitPageInternal(GinBtree btree, Buffer lbuf, Buffer rbuf,
+										OffsetNumber off, XLogRecData **prdata)
 {
 	char	   *ptr;
 	OffsetNumber separator;
 	ItemPointer bound;
 	Page		lpage = PageGetTempPageCopy(BufferGetPage(lbuf));
 	ItemPointerData oldbound = *GinDataPageGetRightBound(lpage);
-	int			sizeofitem = GinSizeOfDataPageItem(lpage);
-	OffsetNumber maxoff = GinPageGetOpaque(lpage)->maxoff;
+	OffsetNumber maxoff = GinPageGetOpaque(lpage)->u.maxoff;
 	Page		rpage = BufferGetPage(rbuf);
 	Size		pageSize = PageGetPageSize(lpage);
 	Size		freeSpace;
-	uint32		nCopied = 1;
 
 	/* these must be static so they can be returned to caller */
 	static ginxlogSplit data;
@@ -462,7 +914,7 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
 	static char vector[2 * BLCKSZ];
 
 	GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
-	freeSpace = GinDataPageGetFreeSpace(rpage);
+	freeSpace = GinNonLeafDataPageGetFreeSpace(rpage);
 
 	*prdata = rdata;
 	data.leftChildBlkno = (GinPageIsLeaf(lpage)) ?
@@ -470,63 +922,36 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
 	data.updateBlkno = dataPrepareData(btree, lpage, off);
 
 	memcpy(vector, GinDataPageGetItem(lpage, FirstOffsetNumber),
-		   maxoff * sizeofitem);
+		   maxoff * sizeof(PostingItem));
 
-	if (GinPageIsLeaf(lpage) && GinPageRightMost(lpage) && off > GinPageGetOpaque(lpage)->maxoff)
-	{
-		nCopied = 0;
-		while (btree->curitem < btree->nitem &&
-			   maxoff * sizeof(ItemPointerData) < 2 * (freeSpace - sizeof(ItemPointerData)))
-		{
-			memcpy(vector + maxoff * sizeof(ItemPointerData),
-				   btree->items + btree->curitem,
-				   sizeof(ItemPointerData));
-			maxoff++;
-			nCopied++;
-			btree->curitem++;
-		}
-	}
-	else
-	{
-		ptr = vector + (off - 1) * sizeofitem;
-		if (maxoff + 1 - off != 0)
-			memmove(ptr + sizeofitem, ptr, (maxoff - off + 1) * sizeofitem);
-		if (GinPageIsLeaf(lpage))
-		{
-			memcpy(ptr, btree->items + btree->curitem, sizeofitem);
-			btree->curitem++;
-		}
-		else
-			memcpy(ptr, &(btree->pitem), sizeofitem);
+	ptr = vector + (off - 1) * sizeof(PostingItem);
+	if (maxoff + 1 - off != 0)
+		memmove(ptr + sizeof(PostingItem), ptr, (maxoff - off + 1) * sizeof(PostingItem));
+	memcpy(ptr, &(btree->pitem), sizeof(PostingItem));
 
-		maxoff++;
-	}
+	maxoff++;
 
 	/*
 	 * we suppose that during index creation table scaned from begin to end,
 	 * so ItemPointers are monotonically increased..
 	 */
 	if (btree->isBuild && GinPageRightMost(lpage))
-		separator = freeSpace / sizeofitem;
+		separator = freeSpace / sizeof(PostingItem);
 	else
 		separator = maxoff / 2;
 
 	GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
 	GinInitPage(lpage, GinPageGetOpaque(rpage)->flags, pageSize);
 
-	memcpy(GinDataPageGetItem(lpage, FirstOffsetNumber), vector, separator * sizeofitem);
-	GinPageGetOpaque(lpage)->maxoff = separator;
+	memcpy(GinDataPageGetItem(lpage, FirstOffsetNumber), vector, separator * sizeof(PostingItem));
+	GinPageGetOpaque(lpage)->u.maxoff = separator;
 	memcpy(GinDataPageGetItem(rpage, FirstOffsetNumber),
-		 vector + separator * sizeofitem, (maxoff - separator) * sizeofitem);
-	GinPageGetOpaque(rpage)->maxoff = maxoff - separator;
+		 vector + separator * sizeof(PostingItem), (maxoff - separator) * sizeof(PostingItem));
+	GinPageGetOpaque(rpage)->u.maxoff = maxoff - separator;
 
 	PostingItemSetBlockNumber(&(btree->pitem), BufferGetBlockNumber(lbuf));
-	if (GinPageIsLeaf(lpage))
-		btree->pitem.key = *(ItemPointerData *) GinDataPageGetItem(lpage,
-											GinPageGetOpaque(lpage)->maxoff);
-	else
-		btree->pitem.key = ((PostingItem *) GinDataPageGetItem(lpage,
-									  GinPageGetOpaque(lpage)->maxoff))->key;
+	btree->pitem.key = ((PostingItem *) GinDataPageGetItem(lpage,
+														   GinPageGetOpaque(lpage)->u.maxoff))->key;
 	btree->rightblkno = BufferGetBlockNumber(rbuf);
 
 	/* set up right bound for left page */
@@ -544,7 +969,7 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
 	data.separator = separator;
 	data.nitem = maxoff;
 	data.isData = TRUE;
-	data.isLeaf = GinPageIsLeaf(lpage) ? TRUE : FALSE;
+	data.isLeaf = FALSE;
 	data.isRootSplit = FALSE;
 	data.rightbound = oldbound;
 
@@ -555,13 +980,83 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
 
 	rdata[1].buffer = InvalidBuffer;
 	rdata[1].data = vector;
-	rdata[1].len = MAXALIGN(maxoff * sizeofitem);
+	rdata[1].len = MAXALIGN(maxoff * sizeof(PostingItem));
 	rdata[1].next = NULL;
 
 	return lpage;
 }
 
 /*
+ * Split page of posting tree. Calls relevant function of internal of leaf page
+ * because they are handled very different.
+ */
+static Page
+dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
+														XLogRecData **prdata)
+{
+	if (GinPageIsLeaf(BufferGetPage(lbuf)))
+		return dataSplitPageLeaf(btree, lbuf, rbuf, off, prdata);
+	else
+		return dataSplitPageInternal(btree, lbuf, rbuf, off, prdata);
+}
+
+/*
+ * Updates indexes in the end of leaf page which are used for faster search.
+ * Also updates freespace opaque field of page. Returns last item pointer of
+ * page.
+ */
+ItemPointerData
+updateItemIndexes(Page page, GinState *ginstate)
+{
+	Pointer beginptr;
+	Pointer ptr;
+	Pointer endptr;
+	Pointer nextptr;
+	ItemPointerData iptr;
+	int j = 0, i;
+	int totalsize;
+
+	Assert(GinPageIsLeaf(page));
+
+	/* Iterate over page */
+
+	ptr = beginptr = GinDataPageGetData(page);
+	endptr = page + GinPageGetOpaque(page)->u.endoffset;
+	iptr.ip_blkid.bi_lo = 0;
+	iptr.ip_blkid.bi_hi = 0;
+	iptr.ip_posid = 0;
+
+	totalsize = endptr - beginptr;
+	nextptr = beginptr + (int) ((double) totalsize / (double) (GinDataLeafIndexCount + 1));
+	j = 0;
+	i = FirstOffsetNumber;
+	while (ptr < endptr && j < GinDataLeafIndexCount)
+	{
+		/* Place next page index entry if it's time to */
+		if (ptr >= nextptr)
+		{
+			GinPageGetIndexes(page)[j].iptr = iptr;
+			GinPageGetIndexes(page)[j].offsetNumber = i;
+			GinPageGetIndexes(page)[j].pageOffset = ptr - GinDataPageGetData(page);
+			j++;
+			nextptr = beginptr + (int) ((double) (j + 1) * (double) totalsize / (double) (GinDataLeafIndexCount + 1));
+		}
+		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+		i++;
+	}
+	/* Fill rest of page indexes with InvalidOffsetNumber if any */
+	for (; j < GinDataLeafIndexCount; j++)
+	{
+		GinDataLeafItemIndex *idx = &GinPageGetIndexes(page)[j];
+		MemSet(&idx->iptr, 0, sizeof(ItemPointerData));
+		idx->offsetNumber = InvalidOffsetNumber;
+		idx->pageOffset = 0;
+	}
+
+	return iptr;
+}
+
+/*
  * Fills new root by right bound values from child.
  * Also called from ginxlog, should not use btree
  */
@@ -576,11 +1071,11 @@ ginDataFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf)
 
 	li.key = *GinDataPageGetRightBound(lpage);
 	PostingItemSetBlockNumber(&li, BufferGetBlockNumber(lbuf));
-	GinDataPageAddItem(page, &li, InvalidOffsetNumber);
+	GinPageAddPostingItem(page, &li, InvalidOffsetNumber);
 
 	ri.key = *GinDataPageGetRightBound(rpage);
 	PostingItemSetBlockNumber(&ri, BufferGetBlockNumber(rbuf));
-	GinDataPageAddItem(page, &ri, InvalidOffsetNumber);
+	GinPageAddPostingItem(page, &ri, InvalidOffsetNumber);
 }
 
 void
diff --git a/src/backend/access/gin/ginentrypage.c b/src/backend/access/gin/ginentrypage.c
index 7733028..f069ea6 100644
--- a/src/backend/access/gin/ginentrypage.c
+++ b/src/backend/access/gin/ginentrypage.c
@@ -18,151 +18,24 @@
 #include "utils/rel.h"
 
 /*
- * Form a tuple for entry tree.
- *
- * If the tuple would be too big to be stored, function throws a suitable
- * error if errorTooBig is TRUE, or returns NULL if errorTooBig is FALSE.
- *
- * See src/backend/access/gin/README for a description of the index tuple
- * format that is being built here.  We build on the assumption that we
- * are making a leaf-level key entry containing a posting list of nipd items.
- * If the caller is actually trying to make a posting-tree entry, non-leaf
- * entry, or pending-list entry, it should pass nipd = 0 and then overwrite
- * the t_tid fields as necessary.  In any case, ipd can be NULL to skip
- * copying any itempointers into the posting list; the caller is responsible
- * for filling the posting list afterwards, if ipd = NULL and nipd > 0.
+ * Read item pointers from leaf data page. Information is stored in the same
+ * manner as in leaf data pages.
  */
-IndexTuple
-GinFormTuple(GinState *ginstate,
-			 OffsetNumber attnum, Datum key, GinNullCategory category,
-			 ItemPointerData *ipd, uint32 nipd,
-			 bool errorTooBig)
+void
+ginReadTuple(GinState *ginstate, OffsetNumber attnum,
+			 IndexTuple itup, ItemPointerData *ipd)
 {
-	Datum		datums[2];
-	bool		isnull[2];
-	IndexTuple	itup;
-	uint32		newsize;
-
-	/* Build the basic tuple: optional column number, plus key datum */
-	if (ginstate->oneCol)
-	{
-		datums[0] = key;
-		isnull[0] = (category != GIN_CAT_NORM_KEY);
-	}
-	else
-	{
-		datums[0] = UInt16GetDatum(attnum);
-		isnull[0] = false;
-		datums[1] = key;
-		isnull[1] = (category != GIN_CAT_NORM_KEY);
-	}
-
-	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
-
-	/*
-	 * Determine and store offset to the posting list, making sure there is
-	 * room for the category byte if needed.
-	 *
-	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
-	 * be some wasted pad space.  Is it worth recomputing the data length to
-	 * prevent that?  That would also allow us to Assert that the real data
-	 * doesn't overlap the GinNullCategory byte, which this code currently
-	 * takes on faith.
-	 */
-	newsize = IndexTupleSize(itup);
-
-	if (IndexTupleHasNulls(itup))
-	{
-		uint32		minsize;
-
-		Assert(category != GIN_CAT_NORM_KEY);
-		minsize = GinCategoryOffset(itup, ginstate) + sizeof(GinNullCategory);
-		newsize = Max(newsize, minsize);
-	}
-
-	newsize = SHORTALIGN(newsize);
-
-	GinSetPostingOffset(itup, newsize);
-
-	GinSetNPosting(itup, nipd);
-
-	/*
-	 * Add space needed for posting list, if any.  Then check that the tuple
-	 * won't be too big to store.
-	 */
-	newsize += sizeof(ItemPointerData) * nipd;
-	newsize = MAXALIGN(newsize);
-	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
-	{
-		if (errorTooBig)
-			ereport(ERROR,
-					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
-			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
-				   (unsigned long) newsize,
-				   (unsigned long) Min(INDEX_SIZE_MASK,
-									   GinMaxItemSize),
-				   RelationGetRelationName(ginstate->index))));
-		pfree(itup);
-		return NULL;
-	}
+	Pointer		ptr;
+	int			nipd = GinGetNPosting(itup), i;
+	ItemPointerData ip = {{0,0},0};
 
-	/*
-	 * Resize tuple if needed
-	 */
-	if (newsize != IndexTupleSize(itup))
-	{
-		itup = repalloc(itup, newsize);
-		/*
-		 * PostgreSQL 9.3 and earlier did not clear this new space, so we
-		 * might find uninitialized padding when reading tuples from disk.
-		 */
-		memset((char *) itup + IndexTupleSize(itup),
-			   0, newsize - IndexTupleSize(itup));
+	ptr = GinGetPosting(itup);
 
-		/* set new size in tuple header */
-		itup->t_info &= ~INDEX_SIZE_MASK;
-		itup->t_info |= newsize;
-	}
-
-	/*
-	 * Insert category byte, if needed
-	 */
-	if (category != GIN_CAT_NORM_KEY)
+	for (i = 0; i < nipd; i++)
 	{
-		Assert(IndexTupleHasNulls(itup));
-		GinSetNullCategory(itup, ginstate, category);
+		ptr = ginDataPageLeafReadItemPointer(ptr, &ip);
+		ipd[i] = ip;
 	}
-
-	/*
-	 * Copy in the posting list, if provided
-	 */
-	if (ipd)
-		memcpy(GinGetPosting(itup), ipd, sizeof(ItemPointerData) * nipd);
-
-	return itup;
-}
-
-/*
- * Sometimes we reduce the number of posting list items in a tuple after
- * having built it with GinFormTuple.  This function adjusts the size
- * fields to match.
- */
-void
-GinShortenTuple(IndexTuple itup, uint32 nipd)
-{
-	uint32		newsize;
-
-	Assert(nipd <= GinGetNPosting(itup));
-
-	newsize = GinGetPostingOffset(itup) + sizeof(ItemPointerData) * nipd;
-	newsize = MAXALIGN(newsize);
-
-	Assert(newsize <= (itup->t_info & INDEX_SIZE_MASK));
-
-	itup->t_info &= ~INDEX_SIZE_MASK;
-	itup->t_info |= newsize;
-
-	GinSetNPosting(itup, nipd);
 }
 
 /*
diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c
index 4f2c118..49f799d 100644
--- a/src/backend/access/gin/ginfast.c
+++ b/src/backend/access/gin/ginfast.c
@@ -23,6 +23,7 @@
 #include "miscadmin.h"
 #include "utils/memutils.h"
 #include "utils/rel.h"
+#include "access/htup_details.h"
 
 
 #define GIN_PAGE_FREESIZE \
@@ -94,11 +95,11 @@ writeListPage(Relation index, Buffer buffer,
 	if (rightlink == InvalidBlockNumber)
 	{
 		GinPageSetFullRow(page);
-		GinPageGetOpaque(page)->maxoff = 1;
+		GinPageGetOpaque(page)->u.maxoff = 1;
 	}
 	else
 	{
-		GinPageGetOpaque(page)->maxoff = 0;
+		GinPageGetOpaque(page)->u.maxoff = 0;
 	}
 
 	MarkBufferDirty(buffer);
@@ -368,8 +369,8 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
 		/*
 		 * Increase counter of heap tuples
 		 */
-		Assert(GinPageGetOpaque(page)->maxoff <= metadata->nPendingHeapTuples);
-		GinPageGetOpaque(page)->maxoff++;
+		Assert(GinPageGetOpaque(page)->u.maxoff <= metadata->nPendingHeapTuples);
+		GinPageGetOpaque(page)->u.maxoff++;
 		metadata->nPendingHeapTuples++;
 
 		for (i = 0; i < collector->ntuples; i++)
@@ -437,6 +438,89 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
 		ginInsertCleanup(ginstate, false, NULL);
 }
 
+static IndexTuple
+GinFastFormTuple(GinState *ginstate,
+				 OffsetNumber attnum, Datum key, GinNullCategory category)
+{
+	Datum		datums[2];
+	bool		isnull[2];
+	IndexTuple	itup;
+	uint32		newsize;
+
+	/* Build the basic tuple: optional column number, plus key datum */
+
+	if (ginstate->oneCol)
+	{
+		datums[0] = key;
+		isnull[0] = (category != GIN_CAT_NORM_KEY);
+	}
+	else
+	{
+		datums[0] = UInt16GetDatum(attnum);
+		isnull[0] = false;
+		datums[1] = key;
+		isnull[1] = (category != GIN_CAT_NORM_KEY);
+	}
+
+	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+
+	/*
+	 * Place category to the last byte of index tuple extending it's size if
+	 * needed
+	 */
+	newsize = IndexTupleSize(itup);
+
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		uint32		minsize;
+
+		Assert(IndexTupleHasNulls(itup));
+		minsize = IndexInfoFindDataOffset(itup->t_info) +
+			heap_compute_data_size(ginstate->tupdesc[attnum - 1], datums, isnull) +
+			sizeof(GinNullCategory);
+		newsize = Max(newsize, minsize);
+	}
+
+	newsize = MAXALIGN(newsize);
+
+	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+	{
+		ereport(ERROR,
+				(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+		errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+			   (unsigned long) newsize,
+			   (unsigned long) Min(INDEX_SIZE_MASK,
+								   GinMaxItemSize),
+			   RelationGetRelationName(ginstate->index))));
+		pfree(itup);
+		return NULL;
+	}
+
+	/*
+	 * Resize tuple if needed
+	 */
+	if (newsize != IndexTupleSize(itup))
+	{
+		itup = repalloc(itup, newsize);
+
+		/* set new size in tuple header */
+		itup->t_info &= ~INDEX_SIZE_MASK;
+		itup->t_info |= newsize;
+	}
+
+	/*
+	 * Insert category byte, if needed
+	 */
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		GinSetNullCategory(itup, ginstate, category);
+	}
+
+	return itup;
+}
+
+
 /*
  * Create temporary index tuples for a single indexable item (one index column
  * for the heap tuple specified by ht_ctid), and append them to the array
@@ -486,8 +570,7 @@ ginHeapTupleFastCollect(GinState *ginstate,
 	{
 		IndexTuple	itup;
 
-		itup = GinFormTuple(ginstate, attnum, entries[i], categories[i],
-							NULL, 0, true);
+		itup = GinFastFormTuple(ginstate, attnum, entries[i], categories[i]);
 		itup->t_tid = *ht_ctid;
 		collector->tuples[collector->ntuples++] = itup;
 		collector->sumsize += IndexTupleSize(itup);
@@ -550,7 +633,7 @@ shiftList(Relation index, Buffer metabuffer, BlockNumber newHead,
 				return true;
 			}
 
-			nDeletedHeapTuples += GinPageGetOpaque(page)->maxoff;
+			nDeletedHeapTuples += GinPageGetOpaque(page)->u.maxoff;
 			blknoToDelete = GinPageGetOpaque(page)->rightlink;
 		}
 
diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c
index cb17d38..7422f52 100644
--- a/src/backend/access/gin/ginget.c
+++ b/src/backend/access/gin/ginget.c
@@ -71,20 +71,25 @@ callConsistentFn(GinState *ginstate, GinScanKey key)
 static bool
 findItemInPostingPage(Page page, ItemPointer item, OffsetNumber *off)
 {
-	OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
 	int			res;
+	Pointer		ptr;
+	Pointer		endPtr;
+	ItemPointerData iptr = {{0, 0}, 0};
 
 	if (GinPageGetOpaque(page)->flags & GIN_DELETED)
 		/* page was deleted by concurrent vacuum */
 		return false;
 
+	ptr = GinDataPageGetData(page);
+	endPtr = page + GinPageGetOpaque(page)->u.endoffset;
 	/*
 	 * scan page to find equal or first greater value
 	 */
-	for (*off = FirstOffsetNumber; *off <= maxoff; (*off)++)
+	while (ptr < endPtr)
 	{
-		res = ginCompareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off));
+		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
 
+		res = ginCompareItemPointers(item, &iptr);
 		if (res <= 0)
 			return true;
 	}
@@ -148,15 +153,27 @@ scanPostingTree(Relation index, GinScanEntry scanEntry,
 	 */
 	for (;;)
 	{
-		page = BufferGetPage(buffer);
+		Pointer ptr;
+		Pointer endPtr;
 
+		page = BufferGetPage(buffer);
+		ptr = GinDataPageGetData(page);
+		endPtr = page + GinPageGetOpaque(page)->u.endoffset;
 		if ((GinPageGetOpaque(page)->flags & GIN_DELETED) == 0 &&
-			GinPageGetOpaque(page)->maxoff >= FirstOffsetNumber)
+			ptr < endPtr)
 		{
-			tbm_add_tuples(scanEntry->matchBitmap,
-				   (ItemPointer) GinDataPageGetItem(page, FirstOffsetNumber),
-						   GinPageGetOpaque(page)->maxoff, false);
-			scanEntry->predictNumberResult += GinPageGetOpaque(page)->maxoff;
+			ItemPointerData iptr = {{0, 0}, 0};
+			int i;
+
+			i = 0;
+			while (ptr < endPtr)
+			{
+				ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+				tbm_add_tuples(scanEntry->matchBitmap, &iptr, 1, false);
+				i++;
+			}
+
+			scanEntry->predictNumberResult += i;
 		}
 
 		if (GinPageRightMost(page))
@@ -344,8 +361,12 @@ collectMatchBitmap(GinBtreeData *btree, GinBtreeStack *stack,
 		}
 		else
 		{
+			ItemPointerData *ipd = (ItemPointerData *)palloc(
+								sizeof(ItemPointerData) * GinGetNPosting(itup));
+			ginReadTuple(btree->ginstate, scanEntry->attnum, itup, ipd);
+
 			tbm_add_tuples(scanEntry->matchBitmap,
-						   GinGetPosting(itup), GinGetNPosting(itup), false);
+						   ipd, GinGetNPosting(itup), false);
 			scanEntry->predictNumberResult += GinGetNPosting(itup);
 		}
 
@@ -438,6 +459,9 @@ restartScanEntry:
 			BlockNumber rootPostingTree = GinGetPostingTree(itup);
 			GinPostingTreeScan *gdi;
 			Page		page;
+			Pointer		ptr;
+			Pointer		endPtr;
+			ItemPointerData iptr = {{0,0},0};
 
 			/*
 			 * We should unlock entry page before touching posting tree to
@@ -460,15 +484,22 @@ restartScanEntry:
 			IncrBufferRefCount(entry->buffer);
 
 			page = BufferGetPage(entry->buffer);
-			entry->predictNumberResult = gdi->stack->predictNumber * GinPageGetOpaque(page)->maxoff;
 
 			/*
 			 * Keep page content in memory to prevent durable page locking
 			 */
-			entry->list = (ItemPointerData *) palloc(BLCKSZ);
-			entry->nlist = GinPageGetOpaque(page)->maxoff;
-			memcpy(entry->list, GinDataPageGetItem(page, FirstOffsetNumber),
-				   GinPageGetOpaque(page)->maxoff * sizeof(ItemPointerData));
+			entry->list = (ItemPointerData *) palloc(BLCKSZ * sizeof(ItemPointerData));
+			entry->nlist = 0;
+
+			ptr = GinDataPageGetData(page);
+			endPtr = page + GinPageGetOpaque(page)->u.endoffset;
+			while (ptr < endPtr)
+			{
+				ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+				entry->list[entry->nlist++] = iptr;
+			}
+
+			entry->predictNumberResult = gdi->stack->predictNumber * entry->nlist;
 
 			LockBuffer(entry->buffer, GIN_UNLOCK);
 			freeGinBtreeStack(gdi->stack);
@@ -478,8 +509,11 @@ restartScanEntry:
 		else if (GinGetNPosting(itup) > 0)
 		{
 			entry->nlist = GinGetNPosting(itup);
+			entry->predictNumberResult = entry->nlist;
 			entry->list = (ItemPointerData *) palloc(sizeof(ItemPointerData) * entry->nlist);
-			memcpy(entry->list, GinGetPosting(itup), sizeof(ItemPointerData) * entry->nlist);
+
+			ginReadTuple(ginstate, entry->attnum, itup, entry->list);
+
 			entry->isFinished = FALSE;
 		}
 	}
@@ -583,12 +617,21 @@ entryGetNextItem(GinState *ginstate, GinScanEntry entry)
 			if (!ItemPointerIsValid(&entry->curItem) ||
 				findItemInPostingPage(page, &entry->curItem, &entry->offset))
 			{
+				Pointer ptr;
+				Pointer endPtr;
+				ItemPointerData iptr = {{0,0},0};
+
 				/*
 				 * Found position equal to or greater than stored
 				 */
-				entry->nlist = GinPageGetOpaque(page)->maxoff;
-				memcpy(entry->list, GinDataPageGetItem(page, FirstOffsetNumber),
-				   GinPageGetOpaque(page)->maxoff * sizeof(ItemPointerData));
+				ptr = GinDataPageGetData(page);
+				endPtr = page + GinPageGetOpaque(page)->u.endoffset;
+				entry->nlist = 0;
+				while (ptr < endPtr)
+				{
+					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+					entry->list[entry->nlist++] = iptr;
+				}
 
 				LockBuffer(entry->buffer, GIN_UNLOCK);
 
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c
index beaa653..6177290 100644
--- a/src/backend/access/gin/gininsert.c
+++ b/src/backend/access/gin/gininsert.c
@@ -42,14 +42,16 @@ typedef struct
  * items[] must be in sorted order with no duplicates.
  */
 static BlockNumber
-createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
+createPostingTree(GinState *ginstate, ItemPointerData *items, uint32 nitems)
 {
 	BlockNumber blkno;
-	Buffer		buffer = GinNewBuffer(index);
+	Buffer		buffer = GinNewBuffer(ginstate->index);
 	Page		page;
+	int			i;
+	Pointer		ptr;
+	ItemPointerData prev_iptr = {{0,0},0};
 
 	/* Assert that the items[] array will fit on one page */
-	Assert(nitems <= GinMaxLeafDataItems);
 
 	START_CRIT_SECTION();
 
@@ -57,18 +59,26 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
 	page = BufferGetPage(buffer);
 	blkno = BufferGetBlockNumber(buffer);
 
-	memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * nitems);
-	GinPageGetOpaque(page)->maxoff = nitems;
+	ptr = GinDataPageGetData(page);
+	for (i = 0; i < nitems; i++)
+	{
+		if (i > 0)
+			prev_iptr = items[i - 1];
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &items[i], &prev_iptr);
+	}
+	GinPageGetOpaque(page)->u.endoffset = ptr - page;
+	Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+	updateItemIndexes(page, ginstate);
 
 	MarkBufferDirty(buffer);
 
-	if (RelationNeedsWAL(index))
+	if (RelationNeedsWAL(ginstate->index))
 	{
 		XLogRecPtr	recptr;
 		XLogRecData rdata[2];
 		ginxlogCreatePostingTree data;
 
-		data.node = index->rd_node;
+		data.node = ginstate->index->rd_node;
 		data.blkno = blkno;
 		data.nitem = nitems;
 
@@ -78,8 +88,8 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
 		rdata[0].next = &rdata[1];
 
 		rdata[1].buffer = InvalidBuffer;
-		rdata[1].data = (char *) items;
-		rdata[1].len = sizeof(ItemPointerData) * nitems;
+		rdata[1].data = GinDataPageGetData(page);
+		rdata[1].len = ptr - GinDataPageGetData(page);
 		rdata[1].next = NULL;
 
 		recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_PTREE, rdata);
@@ -93,6 +103,137 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
 	return blkno;
 }
 
+/*
+ * Form a tuple for entry tree.
+ *
+ * If the tuple would be too big to be stored, function throws a suitable
+ * error if errorTooBig is TRUE, or returns NULL if errorTooBig is FALSE.
+ *
+ * See src/backend/access/gin/README for a description of the index tuple
+ * format that is being built here.  We build on the assumption that we
+ * are making a leaf-level key entry containing a posting list of nipd items.
+ * If the caller is actually trying to make a posting-tree entry, non-leaf
+ * entry, or pending-list entry, it should pass nipd = 0 and then overwrite
+ * the t_tid fields as necessary.  In any case, ipd can be NULL to skip
+ * copying any itempointers into the posting list; the caller is responsible
+ * for filling the posting list afterwards, if ipd = NULL and nipd > 0.
+ */
+static IndexTuple
+GinFormTuple(GinState *ginstate,
+			 OffsetNumber attnum, Datum key, GinNullCategory category,
+			 ItemPointerData *ipd,
+			 uint32 nipd,
+			 bool errorTooBig)
+{
+	Datum		datums[3];
+	bool		isnull[3];
+	IndexTuple	itup;
+	uint32		newsize;
+	int			i;
+	ItemPointerData nullItemPointer = {{0,0},0};
+
+	/* Build the basic tuple: optional column number, plus key datum */
+	if (ginstate->oneCol)
+	{
+		datums[0] = key;
+		isnull[0] = (category != GIN_CAT_NORM_KEY);
+		isnull[1] = true;
+	}
+	else
+	{
+		datums[0] = UInt16GetDatum(attnum);
+		isnull[0] = false;
+		datums[1] = key;
+		isnull[1] = (category != GIN_CAT_NORM_KEY);
+		isnull[2] = true;
+	}
+
+	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+
+	/*
+	 * Determine and store offset to the posting list, making sure there is
+	 * room for the category byte if needed.
+	 *
+	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
+	 * be some wasted pad space.  Is it worth recomputing the data length to
+	 * prevent that?  That would also allow us to Assert that the real data
+	 * doesn't overlap the GinNullCategory byte, which this code currently
+	 * takes on faith.
+	 */
+	newsize = IndexTupleSize(itup);
+
+	GinSetPostingOffset(itup, newsize);
+
+	GinSetNPosting(itup, nipd);
+
+	/*
+	 * Add space needed for posting list, if any.  Then check that the tuple
+	 * won't be too big to store.
+	 */
+
+	if (nipd > 0)
+	{
+		newsize = ginCheckPlaceToDataPageLeaf(&ipd[0], &nullItemPointer, newsize);
+		for (i = 1; i < nipd; i++)
+		{
+			newsize = ginCheckPlaceToDataPageLeaf(&ipd[i], &ipd[i - 1], newsize);
+		}
+	}
+
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		newsize = newsize + sizeof(GinNullCategory);
+	}
+	newsize = MAXALIGN(newsize);
+
+	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+	{
+		if (errorTooBig)
+			ereport(ERROR,
+					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+				   (unsigned long) newsize,
+				   (unsigned long) Min(INDEX_SIZE_MASK,
+									   GinMaxItemSize),
+				   RelationGetRelationName(ginstate->index))));
+		pfree(itup);
+		return NULL;
+	}
+
+	/*
+	 * Resize tuple if needed
+	 */
+	if (newsize != IndexTupleSize(itup))
+	{
+		itup = repalloc(itup, newsize);
+
+		/* set new size in tuple header */
+		itup->t_info &= ~INDEX_SIZE_MASK;
+		itup->t_info |= newsize;
+	}
+
+	/*
+	 * Copy in the posting list, if provided
+	 */
+	if (nipd > 0)
+	{
+		char *ptr = GinGetPosting(itup);
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &ipd[0], &nullItemPointer);
+		for (i = 1; i < nipd; i++)
+			ptr = ginDataPageLeafWriteItemPointer(ptr, &ipd[i], &ipd[i-1]);
+	}
+
+	/*
+	 * Insert category byte, if needed
+	 */
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		GinSetNullCategory(itup, ginstate, category);
+	}
+	return itup;
+}
 
 /*
  * Adds array of item pointers to tuple's posting list, or
@@ -111,31 +252,30 @@ addItemPointersToLeafTuple(GinState *ginstate,
 	Datum		key;
 	GinNullCategory category;
 	IndexTuple	res;
+	ItemPointerData *newItems, *oldItems;
+	int			oldNPosting, newNPosting;
 
 	Assert(!GinIsPostingTree(old));
 
 	attnum = gintuple_get_attrnum(ginstate, old);
 	key = gintuple_get_key(ginstate, old, &category);
 
+	oldNPosting = GinGetNPosting(old);
+	oldItems = (ItemPointerData *) palloc(sizeof(ItemPointerData) * oldNPosting);
+
+	newNPosting = oldNPosting + nitem;
+	newItems = (ItemPointerData *) palloc(sizeof(ItemPointerData) * newNPosting);
+
+	ginReadTuple(ginstate, attnum, old, oldItems);
+
+	newNPosting = ginMergeItemPointers(newItems,
+									   items, nitem,
+									   oldItems, oldNPosting);
+
 	/* try to build tuple with room for all the items */
 	res = GinFormTuple(ginstate, attnum, key, category,
-					   NULL, nitem + GinGetNPosting(old),
-					   false);
-
-	if (res)
-	{
-		/* good, small enough */
-		uint32		newnitem;
-
-		/* fill in the posting list with union of old and new TIDs */
-		newnitem = ginMergeItemPointers(GinGetPosting(res),
-										GinGetPosting(old),
-										GinGetNPosting(old),
-										items, nitem);
-		/* merge might have eliminated some duplicate items */
-		GinShortenTuple(res, newnitem);
-	}
-	else
+					   newItems, newNPosting, false);
+	if (!res)
 	{
 		/* posting list would be too big, convert to posting tree */
 		BlockNumber postingRoot;
@@ -146,9 +286,9 @@ addItemPointersToLeafTuple(GinState *ginstate,
 		 * surely small enough to fit on one posting-tree page, and should
 		 * already be in order with no duplicates.
 		 */
-		postingRoot = createPostingTree(ginstate->index,
-										GinGetPosting(old),
-										GinGetNPosting(old));
+		postingRoot = createPostingTree(ginstate,
+										oldItems,
+										oldNPosting);
 
 		/* During index build, count the newly-added data page */
 		if (buildStats)
@@ -194,6 +334,19 @@ buildFreshLeafTuple(GinState *ginstate,
 	{
 		/* posting list would be too big, build posting tree */
 		BlockNumber postingRoot;
+		ItemPointerData prevIptr = {{0,0},0};
+		Size size = 0;
+		int itemsCount = 0;
+
+		do
+		{
+			size = ginCheckPlaceToDataPageLeaf(&items[itemsCount], &prevIptr,
+											   size);
+			prevIptr = items[itemsCount];
+			itemsCount++;
+		}
+		while (itemsCount < nitem && size < GinDataPageSize);
+		itemsCount--;
 
 		/*
 		 * Build posting-tree-only result tuple.  We do this first so as to
@@ -205,16 +358,16 @@ buildFreshLeafTuple(GinState *ginstate,
 		 * Initialize posting tree with as many TIDs as will fit on the first
 		 * page.
 		 */
-		postingRoot = createPostingTree(ginstate->index,
+		postingRoot = createPostingTree(ginstate,
 										items,
-										Min(nitem, GinMaxLeafDataItems));
+										itemsCount);
 
 		/* During index build, count the newly-added data page */
 		if (buildStats)
 			buildStats->nDataPages++;
 
 		/* Add any remaining TIDs to the posting tree */
-		if (nitem > GinMaxLeafDataItems)
+		if (nitem > itemsCount)
 		{
 			GinPostingTreeScan *gdi;
 
@@ -222,8 +375,8 @@ buildFreshLeafTuple(GinState *ginstate,
 			gdi->btree.isBuild = (buildStats != NULL);
 
 			ginInsertItemPointers(gdi,
-								  items + GinMaxLeafDataItems,
-								  nitem - GinMaxLeafDataItems,
+								  items + itemsCount,
+								  nitem - itemsCount,
 								  buildStats);
 
 			pfree(gdi);
diff --git a/src/backend/access/gin/ginvacuum.c b/src/backend/access/gin/ginvacuum.c
index b84d3a3..5e77ac5 100644
--- a/src/backend/access/gin/ginvacuum.c
+++ b/src/backend/access/gin/ginvacuum.c
@@ -38,47 +38,177 @@ typedef struct
  * if it's needed. In case of *cleaned!=NULL caller is responsible to
  * have allocated enough space. *cleaned and items may point to the same
  * memory address.
+ *
+ * The caller can specify the size of 'src'
  */
 
 static uint32
-ginVacuumPostingList(GinVacuumState *gvs, ItemPointerData *items, uint32 nitem, ItemPointerData **cleaned)
+ginVacuumPostingList(GinVacuumState *gvs,
+					 Pointer src, uint32 nitem, Pointer srcEnd,
+					 Pointer *cleaned, Size size, Size *newSize)
 {
 	uint32		i,
 				j = 0;
+	ItemPointerData iptr = {{0,0},0}, prevIptr;
+	Pointer		dst = NULL, prev, ptr = src;
 
 	/*
 	 * just scan over ItemPointer array
 	 */
 
-	for (i = 0; i < nitem; i++)
+	prevIptr = iptr;
+	for (i = 0; srcEnd ? (ptr < srcEnd) : (i < nitem); i++)
 	{
-		if (gvs->callback(items + i, gvs->callback_state))
+		prev = ptr;
+		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+		if (gvs->callback(&iptr, gvs->callback_state))
 		{
 			gvs->result->tuples_removed += 1;
-			if (!*cleaned)
+			if (!dst)
 			{
-				*cleaned = (ItemPointerData *) palloc(sizeof(ItemPointerData) * nitem);
+				dst = (Pointer) palloc(size);
+				*cleaned = dst;
 				if (i != 0)
-					memcpy(*cleaned, items, sizeof(ItemPointerData) * i);
+				{
+					memcpy(dst, src, prev - src);
+					dst += prev - src;
+				}
 			}
 		}
 		else
 		{
 			gvs->result->num_index_tuples += 1;
 			if (i != j)
-				(*cleaned)[j] = items[i];
+				dst = ginDataPageLeafWriteItemPointer(dst, &iptr, &prevIptr);
 			j++;
+			prevIptr = iptr;
 		}
 	}
 
+	if (i != j)
+		*newSize = dst - *cleaned;
 	return j;
 }
 
 /*
+ * Form a tuple for entry tree based on already encoded array of item pointers
+ * with additional information.
+ */
+static IndexTuple
+GinFormTuple(GinState *ginstate,
+			 OffsetNumber attnum, Datum key, GinNullCategory category,
+			 Pointer data,
+			 Size dataSize,
+			 uint32 nipd,
+			 bool errorTooBig)
+{
+	Datum		datums[3];
+	bool		isnull[3];
+	IndexTuple	itup;
+	uint32		newsize;
+
+	/* Build the basic tuple: optional column number, plus key datum */
+	if (ginstate->oneCol)
+	{
+		datums[0] = key;
+		isnull[0] = (category != GIN_CAT_NORM_KEY);
+		isnull[1] = true;
+	}
+	else
+	{
+		datums[0] = UInt16GetDatum(attnum);
+		isnull[0] = false;
+		datums[1] = key;
+		isnull[1] = (category != GIN_CAT_NORM_KEY);
+		isnull[2] = true;
+	}
+
+	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+
+	/*
+	 * Determine and store offset to the posting list, making sure there is
+	 * room for the category byte if needed.
+	 *
+	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
+	 * be some wasted pad space.  Is it worth recomputing the data length to
+	 * prevent that?  That would also allow us to Assert that the real data
+	 * doesn't overlap the GinNullCategory byte, which this code currently
+	 * takes on faith.
+	 */
+	newsize = IndexTupleSize(itup);
+
+	GinSetPostingOffset(itup, newsize);
+
+	GinSetNPosting(itup, nipd);
+
+	/*
+	 * Add space needed for posting list, if any.  Then check that the tuple
+	 * won't be too big to store.
+	 */
+
+	if (nipd > 0)
+	{
+		newsize += dataSize;
+	}
+
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		newsize = newsize + sizeof(GinNullCategory);
+	}
+	newsize = MAXALIGN(newsize);
+
+	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+	{
+		if (errorTooBig)
+			ereport(ERROR,
+					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+				   (unsigned long) newsize,
+				   (unsigned long) Min(INDEX_SIZE_MASK,
+									   GinMaxItemSize),
+				   RelationGetRelationName(ginstate->index))));
+		pfree(itup);
+		return NULL;
+	}
+
+	/*
+	 * Resize tuple if needed
+	 */
+	if (newsize != IndexTupleSize(itup))
+	{
+		itup = repalloc(itup, newsize);
+
+		/* set new size in tuple header */
+		itup->t_info &= ~INDEX_SIZE_MASK;
+		itup->t_info |= newsize;
+	}
+
+	/*
+	 * Copy in the posting list, if provided
+	 */
+	if (nipd > 0)
+	{
+		char *ptr = GinGetPosting(itup);
+		memcpy(ptr, data, dataSize);
+	}
+
+	/*
+	 * Insert category byte, if needed
+	 */
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		GinSetNullCategory(itup, ginstate, category);
+	}
+	return itup;
+}
+
+/*
  * fills WAL record for vacuum leaf page
  */
 static void
-xlogVacuumPage(Relation index, Buffer buffer)
+xlogVacuumPage(Relation index, Buffer buffer, OffsetNumber maxoff)
 {
 	Page		page = BufferGetPage(buffer);
 	XLogRecPtr	recptr;
@@ -95,13 +225,14 @@ xlogVacuumPage(Relation index, Buffer buffer)
 
 	data.node = index->rd_node;
 	data.blkno = BufferGetBlockNumber(buffer);
-
+	data.nitem = maxoff;
 	if (GinPageIsData(page))
 	{
 		backup = GinDataPageGetData(page);
-		data.nitem = GinPageGetOpaque(page)->maxoff;
-		if (data.nitem)
-			len = MAXALIGN(sizeof(ItemPointerData) * data.nitem);
+		if (GinPageIsLeaf(page))
+			len = page + GinPageGetOpaque(page)->u.endoffset - GinDataPageGetData(page);
+		else if (maxoff)
+			len = MAXALIGN(GinDataPageSize - GinNonLeafDataPageGetFreeSpace(page));
 	}
 	else
 	{
@@ -176,30 +307,37 @@ ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
 
 	if (GinPageIsLeaf(page))
 	{
-		OffsetNumber newMaxOff,
-					oldMaxOff = GinPageGetOpaque(page)->maxoff;
-		ItemPointerData *cleaned = NULL;
+		Pointer cleaned = NULL;
+		Size newSize;
+		Size oldSize;
+		Pointer endPtr = page + GinPageGetOpaque(page)->u.endoffset;
+		OffsetNumber newMaxOff;
 
+		oldSize = GinDataPageSize - GinLeafDataPageGetFreeSpace(page);
 		newMaxOff = ginVacuumPostingList(gvs,
-				(ItemPointer) GinDataPageGetData(page), oldMaxOff, &cleaned);
+										 GinDataPageGetData(page), 0, endPtr,
+										 &cleaned,
+										 oldSize, &newSize);
 
 		/* saves changes about deleted tuple ... */
-		if (oldMaxOff != newMaxOff)
+		if (cleaned)
 		{
 			START_CRIT_SECTION();
 
 			if (newMaxOff > 0)
-				memcpy(GinDataPageGetData(page), cleaned, sizeof(ItemPointerData) * newMaxOff);
+				memcpy(GinDataPageGetData(page), cleaned, newSize);
+
 			pfree(cleaned);
-			GinPageGetOpaque(page)->maxoff = newMaxOff;
+			GinPageGetOpaque(page)->u.endoffset = GinDataPageGetData(page) + newSize - page;
+			updateItemIndexes(page, &gvs->ginstate);
 
 			MarkBufferDirty(buffer);
-			xlogVacuumPage(gvs->index, buffer);
+			xlogVacuumPage(gvs->index, buffer, newMaxOff);
 
 			END_CRIT_SECTION();
 
 			/* if root is a leaf page, we don't desire further processing */
-			if (!isRoot && GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
+			if (!isRoot && newMaxOff < FirstOffsetNumber)
 				hasVoidPage = TRUE;
 		}
 	}
@@ -208,7 +346,7 @@ ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
 		OffsetNumber i;
 		bool		isChildHasVoid = FALSE;
 
-		for (i = FirstOffsetNumber; i <= GinPageGetOpaque(page)->maxoff; i++)
+		for (i = FirstOffsetNumber; i <= GinPageGetOpaque(page)->u.maxoff; i++)
 		{
 			PostingItem *pitem = (PostingItem *) GinDataPageGetItem(page, i);
 
@@ -391,6 +529,7 @@ ginScanToDelete(GinVacuumState *gvs, BlockNumber blkno, bool isRoot, DataPageDel
 	Buffer		buffer;
 	Page		page;
 	bool		meDelete = FALSE;
+	bool		isempty;
 
 	if (isRoot)
 	{
@@ -420,7 +559,7 @@ ginScanToDelete(GinVacuumState *gvs, BlockNumber blkno, bool isRoot, DataPageDel
 		OffsetNumber i;
 
 		me->blkno = blkno;
-		for (i = FirstOffsetNumber; i <= GinPageGetOpaque(page)->maxoff; i++)
+		for (i = FirstOffsetNumber; i <= GinPageGetOpaque(page)->u.maxoff; i++)
 		{
 			PostingItem *pitem = (PostingItem *) GinDataPageGetItem(page, i);
 
@@ -429,17 +568,19 @@ ginScanToDelete(GinVacuumState *gvs, BlockNumber blkno, bool isRoot, DataPageDel
 		}
 	}
 
-	if (GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
+	if (GinPageIsLeaf(page))
+		isempty = page + GinPageGetOpaque(page)->u.endoffset  == GinDataPageGetData(page);
+	else
+		isempty = GinPageGetOpaque(page)->u.maxoff < FirstOffsetNumber;
+
+	if (isempty)
 	{
 		if (!(me->leftBlkno == InvalidBlockNumber && GinPageRightMost(page)))
 		{
 			/* we never delete right most branch */
 			Assert(!isRoot);
-			if (GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
-			{
-				ginDeletePage(gvs, blkno, me->leftBlkno, me->parent->blkno, myoff, me->parent->isRoot);
-				meDelete = TRUE;
-			}
+			ginDeletePage(gvs, blkno, me->leftBlkno, me->parent->blkno, myoff, me->parent->isRoot);
+			meDelete = TRUE;
 		}
 	}
 
@@ -520,8 +661,14 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
 			 * if we already create temporary page, we will make changes in
 			 * place
 			 */
-			ItemPointerData *cleaned = (tmppage == origpage) ? NULL : GinGetPosting(itup);
-			uint32		newN = ginVacuumPostingList(gvs, GinGetPosting(itup), GinGetNPosting(itup), &cleaned);
+			Size cleanedSize;
+			Pointer cleaned = NULL;
+			uint32		newN =
+				ginVacuumPostingList(gvs,
+									 GinGetPosting(itup), GinGetNPosting(itup), NULL,
+									 &cleaned,
+									 IndexTupleSize(itup) - GinGetPostingOffset(itup),
+									 &cleanedSize);
 
 			if (GinGetNPosting(itup) != newN)
 			{
@@ -542,23 +689,16 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
 					 */
 					tmppage = PageGetTempPageCopy(origpage);
 
-					if (newN > 0)
-					{
-						Size		pos = ((char *) GinGetPosting(itup)) - ((char *) origpage);
-
-						memcpy(tmppage + pos, cleaned, sizeof(ItemPointerData) * newN);
-					}
-
-					pfree(cleaned);
-
 					/* set itup pointer to new page */
 					itup = (IndexTuple) PageGetItem(tmppage, PageGetItemId(tmppage, i));
 				}
 
 				attnum = gintuple_get_attrnum(&gvs->ginstate, itup);
 				key = gintuple_get_key(&gvs->ginstate, itup, &category);
+				/* FIXME */
 				itup = GinFormTuple(&gvs->ginstate, attnum, key, category,
-									GinGetPosting(itup), newN, true);
+									cleaned, cleanedSize, newN, true);
+				pfree(cleaned);
 				PageIndexTupleDelete(tmppage, i);
 
 				if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, false, false) != i)
@@ -662,7 +802,7 @@ ginbulkdelete(PG_FUNCTION_ARGS)
 			START_CRIT_SECTION();
 			PageRestoreTempPage(resPage, page);
 			MarkBufferDirty(buffer);
-			xlogVacuumPage(gvs.index, buffer);
+			xlogVacuumPage(gvs.index, buffer, GinPageGetOpaque(page)->u.maxoff);
 			UnlockReleaseBuffer(buffer);
 			END_CRIT_SECTION();
 		}
diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c
index 5daabb0..a520cbf 100644
--- a/src/backend/access/gin/ginxlog.c
+++ b/src/backend/access/gin/ginxlog.c
@@ -106,9 +106,12 @@ static void
 ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
 {
 	ginxlogCreatePostingTree *data = (ginxlogCreatePostingTree *) XLogRecGetData(record);
-	ItemPointerData *items = (ItemPointerData *) (XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree));
+	Pointer		ptr = XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree), tmp;
 	Buffer		buffer;
 	Page		page;
+	GinState	ginstate;
+	ItemPointerData iptr = {{0, 0}, 0};
+	OffsetNumber i;
 
 	/* Backup blocks are not used in create_ptree records */
 	Assert(!(record->xl_info & XLR_BKP_BLOCK_MASK));
@@ -118,11 +121,19 @@ ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
 	page = (Page) BufferGetPage(buffer);
 
 	GinInitBuffer(buffer, GIN_DATA | GIN_LEAF);
-	memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * data->nitem);
-	GinPageGetOpaque(page)->maxoff = data->nitem;
+
+	tmp = ptr;
+	for (i = 1; i <= data->nitem; i++)
+		tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
+
+	memcpy(GinDataPageGetData(page), ptr, tmp - ptr);
+
+	GinPageGetOpaque(page)->u.endoffset = tmp - ptr;
 
 	PageSetLSN(page, lsn);
 
+	updateItemIndexes(page, &ginstate);
+
 	MarkBufferDirty(buffer);
 	UnlockReleaseBuffer(buffer);
 }
@@ -182,14 +193,48 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
 
 			if (data->isLeaf)
 			{
+				ItemPointer startIptr = (ItemPointer) (XLogRecGetData(record) + sizeof(ginxlogInsert));
 				OffsetNumber i;
-				ItemPointerData *items = (ItemPointerData *) (XLogRecGetData(record) + sizeof(ginxlogInsert));
+				OffsetNumber j;
+				Pointer dataPtr = (Pointer)(startIptr + 1);
+				GinState	ginstate;
+				ItemPointerData iptr = {{0, 0}, 0}, prev_iptr;
+				char pageCopy[BLCKSZ];
+				Pointer ptr, destPtr, dataFinish;
+				Pointer endPtr;
 
 				Assert(GinPageIsLeaf(page));
 				Assert(data->updateBlkno == InvalidBlockNumber);
 
-				for (i = 0; i < data->nitem; i++)
-					GinDataPageAddItem(page, items + i, data->offset + i);
+				memcpy(pageCopy, page, BLCKSZ);
+				ptr = GinDataPageGetData(page);
+				for (i = 1; i < data->offset ; i++)
+					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+
+				ptr = GinDataPageGetData(pageCopy);
+				for (i = 1; i < data->offset ; i++)
+					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+
+				prev_iptr = iptr;
+				destPtr = page + (ptr - pageCopy);
+
+				dataFinish = dataPtr;
+				for (j = 0; j < data->nitem; j++)
+					dataFinish = ginDataPageLeafReadItemPointer(dataFinish, &prev_iptr);
+
+				memcpy(destPtr, dataPtr, dataFinish - dataPtr);
+				destPtr += dataFinish - dataPtr;
+
+				endPtr = pageCopy + GinPageGetOpaque(pageCopy)->u.endoffset;
+				while (ptr < endPtr)
+				{
+					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+					destPtr = ginDataPageLeafWriteItemPointer(destPtr, &iptr, &prev_iptr);
+					prev_iptr = iptr;
+				}
+
+				GinPageGetOpaque(page)->u.endoffset = destPtr - page;
+				updateItemIndexes(page, &ginstate);
 			}
 			else
 			{
@@ -206,7 +251,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
 
 				pitem = (PostingItem *) (XLogRecGetData(record) + sizeof(ginxlogInsert));
 
-				GinDataPageAddItem(page, pitem, data->offset);
+				GinPageAddPostingItem(page, pitem, data->offset);
 			}
 		}
 		else
@@ -255,6 +300,7 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
 	Page		lpage,
 				rpage;
 	uint32		flags = 0;
+	GinState	ginstate;
 
 	if (data->isLeaf)
 		flags |= GIN_LEAF;
@@ -280,31 +326,62 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
 	if (data->isData)
 	{
 		char	   *ptr = XLogRecGetData(record) + sizeof(ginxlogSplit);
-		Size		sizeofitem = GinSizeOfDataPageItem(lpage);
 		OffsetNumber i;
 		ItemPointer bound;
 
-		for (i = 0; i < data->separator; i++)
+		if (data->isLeaf)
 		{
-			GinDataPageAddItem(lpage, ptr, InvalidOffsetNumber);
-			ptr += sizeofitem;
+			Pointer tmp, ptr2;
+			ItemPointerData iptr = {{0, 0}, 0};
+			Size lsize, rsize;
+
+			tmp = ptr;
+			for (i = 1; i <= data->separator; i++)
+				tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
+			lsize = tmp - ptr;
+			ptr2 = ptr + MAXALIGN(lsize);
+			tmp = ptr2;
+			for (; i <= data->nitem; i++)
+				tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
+			rsize = tmp - ptr2;
+
+			Assert(lsize < GinDataPageSize);
+			Assert(rsize < GinDataPageSize);
+
+			memcpy(GinDataPageGetData(lpage), ptr, lsize);
+			memcpy(GinDataPageGetData(rpage), ptr2, rsize);
+
+			GinPageGetOpaque(lpage)->u.endoffset = ptr + lsize - lpage;
+			GinPageGetOpaque(rpage)->u.endoffset = ptr2 + rsize - rpage;
+			*GinDataPageGetRightBound(lpage) = updateItemIndexes(lpage, &ginstate);
+			updateItemIndexes(rpage, &ginstate);
+
+			*GinDataPageGetRightBound(rpage) = data->rightbound;
+
+			Assert(GinPageGetOpaque(lpage)->flags == flags);
+			Assert(GinPageGetOpaque(rpage)->flags == flags);
 		}
-
-		for (i = data->separator; i < data->nitem; i++)
+		else
 		{
-			GinDataPageAddItem(rpage, ptr, InvalidOffsetNumber);
-			ptr += sizeofitem;
-		}
+			PostingItem *pitem = (PostingItem *) ptr;
+			for (i = 0; i < data->separator; i++)
+			{
+				GinPageAddPostingItem(lpage, pitem, InvalidOffsetNumber);
+				ptr++;
+			}
 
-		/* set up right key */
-		bound = GinDataPageGetRightBound(lpage);
-		if (data->isLeaf)
-			*bound = *(ItemPointerData *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff);
-		else
-			*bound = ((PostingItem *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff))->key;
+			for (i = data->separator; i < data->nitem; i++)
+			{
+				GinPageAddPostingItem(rpage, pitem, InvalidOffsetNumber);
+				ptr++;
+			}
+			/* set up right key */
+			bound = GinDataPageGetRightBound(lpage);
+			*bound = ((PostingItem *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->u.maxoff))->key;
 
-		bound = GinDataPageGetRightBound(rpage);
-		*bound = data->rightbound;
+			bound = GinDataPageGetRightBound(rpage);
+			*bound = data->rightbound;
+		}
 	}
 	else
 	{
@@ -390,10 +467,30 @@ ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record)
 	{
 		if (GinPageIsData(page))
 		{
-			memcpy(GinDataPageGetData(page),
-				   XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
-				   data->nitem * GinSizeOfDataPageItem(page));
-			GinPageGetOpaque(page)->maxoff = data->nitem;
+			if (GinPageIsLeaf(page))
+			{
+				GinState	ginstate;
+				ItemPointerData iptr = {{0, 0}, 0};
+				Pointer ptr, tmp;
+				OffsetNumber i;
+
+				ptr = XLogRecGetData(record) + sizeof(ginxlogVacuumPage);
+				tmp = ptr;
+				for (i = 1; i <= data->nitem; i++)
+					tmp = ginDataPageLeafReadItemPointer(tmp, &iptr);
+
+				memcpy(GinDataPageGetData(page), ptr, tmp - ptr);
+
+				GinPageGetOpaque(page)->u.endoffset = tmp - page;
+				updateItemIndexes(page, &ginstate);
+			}
+			else
+			{
+				memcpy(GinDataPageGetData(page),
+					   XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
+					   data->nitem * sizeof(ItemPointerData));
+				GinPageGetOpaque(page)->u.maxoff = data->nitem;
+			}
 		}
 		else
 		{
@@ -554,7 +651,7 @@ ginRedoUpdateMetapage(XLogRecPtr lsn, XLogRecord *record)
 					/*
 					 * Increase counter of heap tuples
 					 */
-					GinPageGetOpaque(page)->maxoff++;
+					GinPageGetOpaque(page)->u.maxoff++;
 
 					PageSetLSN(page, lsn);
 					MarkBufferDirty(buffer);
@@ -621,11 +718,11 @@ ginRedoInsertListPage(XLogRecPtr lsn, XLogRecord *record)
 	{
 		/* tail of sublist */
 		GinPageSetFullRow(page);
-		GinPageGetOpaque(page)->maxoff = 1;
+		GinPageGetOpaque(page)->u.maxoff = 1;
 	}
 	else
 	{
-		GinPageGetOpaque(page)->maxoff = 0;
+		GinPageGetOpaque(page)->u.maxoff = 0;
 	}
 
 	for (i = 0; i < data->ntuples; i++)
@@ -802,12 +899,7 @@ ginContinueSplit(ginIncompleteSplit *split)
 		ginPrepareDataScan(&btree, reln);
 
 		PostingItemSetBlockNumber(&(btree.pitem), split->leftBlkno);
-		if (GinPageIsLeaf(page))
-			btree.pitem.key = *(ItemPointerData *) GinDataPageGetItem(page,
-											 GinPageGetOpaque(page)->maxoff);
-		else
-			btree.pitem.key = ((PostingItem *) GinDataPageGetItem(page,
-									   GinPageGetOpaque(page)->maxoff))->key;
+		btree.pitem.key = *GinDataPageGetRightBound(page);
 	}
 
 	btree.rightblkno = split->rightBlkno;
diff --git a/src/include/access/gin_private.h b/src/include/access/gin_private.h
index c603521..92cdf0b 100644
--- a/src/include/access/gin_private.h
+++ b/src/include/access/gin_private.h
@@ -32,11 +32,14 @@
 typedef struct GinPageOpaqueData
 {
 	BlockNumber rightlink;		/* next page if any */
-	OffsetNumber maxoff;		/* number entries on GIN_DATA page: number of
-								 * heap ItemPointers on GIN_DATA|GIN_LEAF page
-								 * or number of PostingItems on GIN_DATA &
-								 * ~GIN_LEAF page. On GIN_LIST page, number of
-								 * heap tuples. */
+	union
+	{
+		OffsetNumber maxoff;	/* number entries on GIN_DATA page: number of
+								 * PostingItems on GIN_DATA & ~GIN_LEAF page.
+								 * On GIN_LIST page, number of heap tuples. */
+		uint16	endoffset;		/* beginning of free space on a
+								 * GIN_DATA|GIN_LEAF page */
+	} u;
 	uint16		flags;			/* see bit definitions below */
 } GinPageOpaqueData;
 
@@ -196,10 +199,16 @@ typedef signed char GinNullCategory;
 #define GinCategoryOffset(itup,ginstate) \
 	(IndexInfoFindDataOffset((itup)->t_info) + \
 	 ((ginstate)->oneCol ? 0 : sizeof(int16)))
-#define GinGetNullCategory(itup,ginstate) \
+/*#define GinGetNullCategory(itup,ginstate) \
 	(*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))))
 #define GinSetNullCategory(itup,ginstate,c) \
-	(*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))) = (c))
+	(*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))) = (c))*/
+
+#define GinGetNullCategory(itup,ginstate) \
+	(*((GinNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(GinNullCategory))))
+#define GinSetNullCategory(itup,ginstate,c) \
+	(*((GinNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(GinNullCategory))) = (c))
+
 
 /*
  * Access macros for leaf-page entry tuples (see discussion in README)
@@ -213,11 +222,11 @@ typedef signed char GinNullCategory;
 
 #define GinGetPostingOffset(itup)	GinItemPointerGetBlockNumber(&(itup)->t_tid)
 #define GinSetPostingOffset(itup,n) ItemPointerSetBlockNumber(&(itup)->t_tid,n)
-#define GinGetPosting(itup)			((ItemPointer) ((char*)(itup) + GinGetPostingOffset(itup)))
+#define GinGetPosting(itup)			((Pointer) ((char*)(itup) + GinGetPostingOffset(itup)))
 
 #define GinMaxItemSize \
 	MAXALIGN_DOWN(((BLCKSZ - SizeOfPageHeaderData - \
-		MAXALIGN(sizeof(GinPageOpaqueData))) / 3 - sizeof(ItemIdData)))
+		MAXALIGN(sizeof(GinPageOpaqueData))) / 6 - sizeof(ItemIdData)))
 
 /*
  * Access macros for non-leaf entry tuples
@@ -232,16 +241,19 @@ typedef signed char GinNullCategory;
 #define GinDataPageGetRightBound(page)	((ItemPointer) PageGetContents(page))
 #define GinDataPageGetData(page)	\
 	(PageGetContents(page) + MAXALIGN(sizeof(ItemPointerData)))
-#define GinSizeOfDataPageItem(page) \
-	(GinPageIsLeaf(page) ? sizeof(ItemPointerData) : sizeof(PostingItem))
 #define GinDataPageGetItem(page,i)	\
-	(GinDataPageGetData(page) + ((i)-1) * GinSizeOfDataPageItem(page))
+	((PostingItem *)(GinDataPageGetData(page) + ((i)-1) * sizeof(PostingItem)))
 
-#define GinDataPageGetFreeSpace(page)	\
+#define GinNonLeafDataPageGetFreeSpace(page)	\
 	(BLCKSZ - MAXALIGN(SizeOfPageHeaderData) \
 	 - MAXALIGN(sizeof(ItemPointerData)) \
-	 - GinPageGetOpaque(page)->maxoff * GinSizeOfDataPageItem(page) \
+	 - GinPageGetOpaque(page)->u.maxoff * sizeof(PostingItem)	\
 	 - MAXALIGN(sizeof(GinPageOpaqueData)))
+#define GinLeafDataPageGetFreeSpace(page)	\
+	(BLCKSZ	\
+	 - GinPageGetOpaque(page)->u.endoffset \
+	 - MAXALIGN(sizeof(GinPageOpaqueData))								\
+	 - MAXALIGN(sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount))
 
 #define GinMaxLeafDataItems \
 	((BLCKSZ - MAXALIGN(SizeOfPageHeaderData) - \
@@ -255,6 +267,29 @@ typedef signed char GinNullCategory;
 #define GinListPageSize  \
 	( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GinPageOpaqueData)) )
 
+typedef struct
+{
+	ItemPointerData iptr;
+	OffsetNumber offsetNumber;
+	uint16 pageOffset;
+} GinDataLeafItemIndex;
+
+#define GinDataLeafIndexCount 32
+
+#define GinDataPageSize	\
+	(BLCKSZ - MAXALIGN(SizeOfPageHeaderData) \
+	 - MAXALIGN(sizeof(ItemPointerData)) \
+	 - MAXALIGN(sizeof(GinPageOpaqueData)) \
+	 - MAXALIGN(sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount))
+
+#define GinDataPageFreeSpacePre(page,ptr) \
+	(GinDataPageSize \
+	 - ((ptr) - GinDataPageGetData(page)))
+
+#define GinPageGetIndexes(page) \
+	((GinDataLeafItemIndex *)(GinDataPageGetData(page) + GinDataPageSize))
+
+
 /*
  * Storage type for GIN's reloptions
  */
@@ -519,22 +554,24 @@ extern void ginInsertValue(GinBtree btree, GinBtreeStack *stack,
 extern void ginFindParents(GinBtree btree, GinBtreeStack *stack, BlockNumber rootBlkno);
 
 /* ginentrypage.c */
-extern IndexTuple GinFormTuple(GinState *ginstate,
-			 OffsetNumber attnum, Datum key, GinNullCategory category,
-			 ItemPointerData *ipd, uint32 nipd, bool errorTooBig);
-extern void GinShortenTuple(IndexTuple itup, uint32 nipd);
 extern void ginPrepareEntryScan(GinBtree btree, OffsetNumber attnum,
 					Datum key, GinNullCategory category,
 					GinState *ginstate);
 extern void ginEntryFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf);
 extern IndexTuple ginPageGetLinkItup(Buffer buf);
+extern void ginReadTuple(GinState *ginstate, OffsetNumber attnum,
+	IndexTuple itup, ItemPointerData *ipd);
+extern ItemPointerData updateItemIndexes(Page page, GinState *ginstate);
 
 /* gindatapage.c */
+extern char *ginDataPageLeafWriteItemPointer(char *ptr, ItemPointer iptr, ItemPointer prev);
+extern Size ginCheckPlaceToDataPageLeaf(ItemPointer iptr, ItemPointer prev,
+							Size size);
 extern uint32 ginMergeItemPointers(ItemPointerData *dst,
 					 ItemPointerData *a, uint32 na,
 					 ItemPointerData *b, uint32 nb);
 
-extern void GinDataPageAddItem(Page page, void *data, OffsetNumber offset);
+extern void GinPageAddPostingItem(Page page, PostingItem *data, OffsetNumber offset);
 extern void GinPageDeletePostingItem(Page page, OffsetNumber offset);
 
 typedef struct
@@ -724,6 +761,53 @@ extern void ginInsertCleanup(GinState *ginstate,
 				 bool vac_delay, IndexBulkDeleteResult *stats);
 
 /*
+ * Function for reading packed ItemPointers. Used in various .c files and
+ * have to be inline for being fast.
+ *
+ * Read next item pointer from leaf data page. Replaces current item pointer
+ * with the next one. Zero item pointer should be passed in order to read the
+ * first item pointer.
+ */
+static inline char *
+ginDataPageLeafReadItemPointer(char *ptr, ItemPointer iptr)
+{
+	uint32		blockNumberIncr;
+	uint16		offset;
+	int			i;
+	uint8		v;
+
+	i = 0;
+	blockNumberIncr = 0;
+	do
+	{
+		v = *ptr;
+		ptr++;
+		blockNumberIncr |= (uint32) (v & (~HIGHBIT)) << i;
+		i += 7;
+	}
+	while (IS_HIGHBIT_SET(v));
+
+	blockNumberIncr += iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16);
+
+	iptr->ip_blkid.bi_lo = blockNumberIncr & 0xFFFF;
+	iptr->ip_blkid.bi_hi = (blockNumberIncr >> 16) & 0xFFFF;
+
+	i = 0;
+	offset = 0;
+	do
+	{
+		v = *ptr;
+		ptr++;
+		offset |= (uint32) (v & (~HIGHBIT)) << i;
+		i += 7;
+	} while(IS_HIGHBIT_SET(v));
+
+	iptr->ip_posid = offset;
+
+	return ptr;
+}
+
+/*
  * Merging the results of several gin scans compares item pointers a lot,
  * so we want this to be inlined. But if the compiler doesn't support that,
  * fall back on the non-inline version from itemptr.c. See STATIC_IF_INLINE in
#11Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#10)
Re: GIN improvements part 1: additional information

On Sun, Jun 30, 2013 at 2:50 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 29.06.2013 20:08, Heikki Linnakangas wrote:

On 29.06.2013 11:56, Heikki Linnakangas wrote:

I made one significant change: I removed the 'freespace' field you added
to GinpageOpaque. Instead, on data leaf pages the offset from the
beginning of the page where the packed items end is stored in place of
the 'maxoff' field. This allows for quick calculation of the free space,
but there is no count of item pointers stored on the page anymore, so
some code that looped through all the item pointers relying on 'maxoff'
had to be changed to work with the end offset instead. I'm not 100%
wedded on this, but I'd like to avoid adding the redundant freespace
field on pages that don't need it, because it's confusing and you have
to remember to keep them in sync.

Ah, crap, looks like I sent the wrong patch, and now I can't find the
correct one anymore. The patch I sent didn't include the changes store
end offset instead of freespace. I'll rewrite that part..

Here's the correct version. I've probably broken things, sorry about that.

I'm going to mark this as "returned with feedback" now. The code still
needs a lot of general cleanup, including comment and README updates. Also,
please take some time to consider the open questions I listed here:
archives.postgresql.org/**message-id/51CEA13C.8040103@**vmware.com<http://archives.postgresql.org/message-id/51CEA13C.8040103@vmware.com&gt;
.

Thanks! So, we have a lot of stuff and you give the points for further
work. Could you please verify my plan of work on these patches:
1) Solving questions of archives.postgresql.org/**
message-id/51CEA13C.8040103@**vmware.com<http://archives.postgresql.org/message-id/51CEA13C.8040103@vmware.com&gt;
for
packed postinglists.
2) Extract additional info patch based on packed postinglists.
3) Rewrite interface of fast scan. Do CPU and IO benchmarking.
4) Do IO benchmarking of index ordering.
Cleanup, comments and READMEs are assumed in each item.

------
With best regards,
Alexander Korotkov.

#12Alexander Korotkov
aekorotkov@gmail.com
In reply to: Antonin Houska (#5)
Re: GIN improvements part 1: additional information

On Thu, Jun 27, 2013 at 6:20 PM, Antonin Houska <antonin.houska@gmail.com>wrote:

On 06/25/2013 12:03 AM, Alexander Korotkov wrote:

New revision of patch is attached. Now it includes some docs.

Hi,
I was curious about the new layout of the data page, so I spent a while
looking into the code.
It's interesting, but I suspect 2 things are not o.k.:

* gindatapage.c:**dataIsEnoughSpace() - 'i++' in the for loop should
probably be 'j++', otherwise it loops forever

* gin_private.h:**ginDataPageLeafRead() - fetch_att() is used to retrieve
the additional info, but per the definition and comments in tupmacs.h it
expects aligned pointer.

* gindatapage.c:**ginCheckPlaceToDataPageLeaf() - comment "if leaf data
page" should probably be "on a leaf data page" or so.

Hi!

Thanks for pointing these.

------
With best regards,
Alexander Korotkov.

#13Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#11)
Re: GIN improvements part 1: additional information

On 01.07.2013 13:28, Alexander Korotkov wrote:

Thanks! So, we have a lot of stuff and you give the points for further
work. Could you please verify my plan of work on these patches:
1) Solving questions of archives.postgresql.org/**
message-id/51CEA13C.8040103@**vmware.com<http://archives.postgresql.org/message-id/51CEA13C.8040103@vmware.com&gt;
for
packed postinglists.
2) Extract additional info patch based on packed postinglists.
3) Rewrite interface of fast scan. Do CPU and IO benchmarking.
4) Do IO benchmarking of index ordering.
Cleanup, comments and READMEs are assumed in each item.

Yep, sounds good!

- Heikki

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

#14Tomas Vondra
tv@fuzzy.cz
In reply to: Alexander Korotkov (#4)
Re: GIN improvements part 1: additional information

Hi,

I've done a fair amount of testing by loading pgsql-general archives
into a database and running a bunch of simple ts queries that use a GIN
index.

I've tested this as well as the two other patches, but as I was able to
get meaningful results only from this patch, I'll post the results here
and info about segfaults and other observed errors to the other threads.

First of all - update the commitfest page whenever you submit a new
patch version, please. I've spent two or three hours testing and
debugging a patches linked from those pages only to find out that there
are newer versions. I should have checked that initially, but let's keep
that updated.

I wan't able to apply the patches to the current head, so I've used
b8fd1a09 (from 17/06) as a base commit.

The following table shows these metrics:

* data load
- how long it took to import ~200k messages from the list archive
- includes a lot of time spent in Python (parsing), checking FKs ...
- so unless this is significantly higher, it's probably OK

* index size
- size of the main GIN index on message body

* 1/2/3-word(s)
- number of queries in the form

SELECT id FROM messages
WHERE body_tsvector @@ plainto_tsquery('english', 'w1 w2')
LIMIT 100

(executed over 60 seconds, and 'per second' speed)

All the scripts are available at https://bitbucket.org/tvondra/archie

Now, the results:

no patches:
data load: 710 s
index size: 545 MB
1 word: 37500 (630/s)
2 words: 49800 (800/s)
3 words: 40000 (660/s)

additional info (ginaddinfo.7.patch):
data load: 693 s
index size: 448 MB
1 word: 135000 (2250/s)
2 words: 85000 (1430/s)
3 words: 54000 ( 900/s)

additional info + fast scan (gin_fast_scan.4.patch):
data load: 720 s
index size: 455 MB
1 word: FAIL
2 words: FAIL
3 words: FAIL

additional info + fast scan + ordering (gin_ordering.4.patch):
data load: FAIL
index size: N/A
1 word: N/A
2 words: N/A
3 words: N/A

So the speedup after adding info into GIN seems very promising, although
I don't quite understand why searching for two words is so much slower.
Also the index size seems to decrease significantly.

After applying 'fast scan' the things started to break down, so I wasn't
able to run the queries and then even the load failed consistently.

I'll post the info into the appropriate threads.

Tomas

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

#15Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#6)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Sat, Jun 29, 2013 at 12:56 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

There's a few open questions:

1. How are we going to handle pg_upgrade? It would be nice to be able to
read the old page format, or convert on-the-fly. OTOH, if it gets too
complicated, might not be worth it. The indexes are much smaller with the
patch, so anyone using GIN probably wants to rebuild them anyway, sooner or
later. Still, I'd like to give it a shot.

2. The patch introduces a small fixed 32-entry index into the packed
items. Is that an optimal number?

3. I'd like to see some performance testing of insertions, deletions, and
vacuum. I suspect that maintaining the 32-entry index might be fairly
expensive, as it's rewritten on every update to a leaf page.

It appears that maintaining 32-entry index is really expensive because it
required re-decoding whole page. This issue is fixed in attached version of
patch by introducing incremental updating of that index. Benchmarks will be
posted later today.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-3.patch.gzapplication/x-gzip; name=gin-packed-postinglists-3.patch.gzDownload
#16Peter Eisentraut
peter_e@gmx.net
In reply to: Alexander Korotkov (#15)
Re: GIN improvements part 1: additional information

Please fix compiler warnings:

gindatapage.c: In function ‘dataPlaceToPage’:
gindatapage.c:706:24: warning: unused variable ‘pageBackup’ [-Wunused-variable]
gindatapage.c: In function ‘updateItemIndexes’:
gindatapage.c:1182:6: warning: variable ‘totalsize’ set but not used [-Wunused-but-set-variable]
gindatapage.c: In function ‘dataPlaceToPage’:
gindatapage.c:633:28: warning: ‘startI’ may be used uninitialized in this function [-Wuninitialized]
gindatapage.c:617:21: note: ‘startI’ was declared here

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

#17Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#15)
Re: GIN improvements part 1: additional information

On 15.09.2013 12:14, Alexander Korotkov wrote:

On Sat, Jun 29, 2013 at 12:56 PM, Heikki Linnakangas<
hlinnakangas@vmware.com> wrote:

There's a few open questions:

1. How are we going to handle pg_upgrade? It would be nice to be able to
read the old page format, or convert on-the-fly. OTOH, if it gets too
complicated, might not be worth it. The indexes are much smaller with the
patch, so anyone using GIN probably wants to rebuild them anyway, sooner or
later. Still, I'd like to give it a shot.

2. The patch introduces a small fixed 32-entry index into the packed
items. Is that an optimal number?

3. I'd like to see some performance testing of insertions, deletions, and
vacuum. I suspect that maintaining the 32-entry index might be fairly
expensive, as it's rewritten on every update to a leaf page.

It appears that maintaining 32-entry index is really expensive because it
required re-decoding whole page. This issue is fixed in attached version of
patch by introducing incremental updating of that index. Benchmarks will be
posted later today..

Great! Please also benchmark WAL replay; you're still doing
non-incremental update of the 32-entry index in ginRedoInsert.

A couple of quick comments after a quick glance (in addition to the above):

The varbyte encoding stuff is a quite isolated piece of functionality.
And potentially useful elsewhere, too. It would be good to separate that
into a separate .c/.h files. I'm thinking of
src/backend/access/gin/packeditemptr.c, which would contain
ginDataPageLeafReadItemPointer, ginDataPageLeafWriteItemPointer and
ginDataPageLeafGetItemPointerSize functions. A new typedef for
varbyte-encoded things would probably be good too, something like
"typedef char *PackedItemPointer". In the new .c file, please also add a
file-header comment explaining the encoding.

The README really needs to be updated. The posting tree page structure
is a lot more complicated now, there needs to be a whole new section to
explain it. A picture would be nice, similar to the one in bufpage.h.

It's a bit funny that we've clumped together all different kinds of GIN
insertions into one WAL record type. ginRedoInsert does completely
different things depending on what kind of a page it is. And the
ginXlogInsert struct also contains different kinds of things depending
on what kind of an insertion it is. It would be cleaner to split it into
three. (this isn't your patch's fault - it was like that before, too.)

- Heikki

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

#18Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#17)
Re: GIN improvements part 1: additional information

On Mon, Sep 16, 2013 at 11:43 AM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 15.09.2013 12:14, Alexander Korotkov wrote:

On Sat, Jun 29, 2013 at 12:56 PM, Heikki Linnakangas<
hlinnakangas@vmware.com> wrote:

There's a few open questions:

1. How are we going to handle pg_upgrade? It would be nice to be able to
read the old page format, or convert on-the-fly. OTOH, if it gets too
complicated, might not be worth it. The indexes are much smaller with the
patch, so anyone using GIN probably wants to rebuild them anyway, sooner
or
later. Still, I'd like to give it a shot.

2. The patch introduces a small fixed 32-entry index into the packed
items. Is that an optimal number?

3. I'd like to see some performance testing of insertions, deletions, and
vacuum. I suspect that maintaining the 32-entry index might be fairly
expensive, as it's rewritten on every update to a leaf page.

It appears that maintaining 32-entry index is really expensive because it
required re-decoding whole page. This issue is fixed in attached version
of
patch by introducing incremental updating of that index. Benchmarks will
be
posted later today..

Great! Please also benchmark WAL replay; you're still doing
non-incremental update of the 32-entry index in ginRedoInsert.

A couple of quick comments after a quick glance (in addition to the above):

The varbyte encoding stuff is a quite isolated piece of functionality. And
potentially useful elsewhere, too. It would be good to separate that into a
separate .c/.h files. I'm thinking of src/backend/access/gin/**packeditemptr.c,
which would contain ginDataPageLeafReadItemPointer**,
ginDataPageLeafWriteItemPointe**r and ginDataPageLeafGetItemPointerS**ize
functions. A new typedef for varbyte-encoded things would probably be good
too, something like "typedef char *PackedItemPointer". In the new .c file,
please also add a file-header comment explaining the encoding.

The README really needs to be updated. The posting tree page structure is
a lot more complicated now, there needs to be a whole new section to
explain it. A picture would be nice, similar to the one in bufpage.h.

It's a bit funny that we've clumped together all different kinds of GIN
insertions into one WAL record type. ginRedoInsert does completely
different things depending on what kind of a page it is. And the
ginXlogInsert struct also contains different kinds of things depending on
what kind of an insertion it is. It would be cleaner to split it into
three. (this isn't your patch's fault - it was like that before, too.)

Apparently some bugs breaks index on huge updates independent on
incremental update of the 32-entry. I'm in debugging now. That's why
benchmarks are delayed.

------
With best regards,
Alexander Korotkov.

#19Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#17)
2 attachment(s)
Re: GIN improvements part 1: additional information

On Mon, Sep 16, 2013 at 11:43 AM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 15.09.2013 12:14, Alexander Korotkov wrote:

On Sat, Jun 29, 2013 at 12:56 PM, Heikki Linnakangas<
hlinnakangas@vmware.com> wrote:

There's a few open questions:

1. How are we going to handle pg_upgrade? It would be nice to be able to
read the old page format, or convert on-the-fly. OTOH, if it gets too
complicated, might not be worth it. The indexes are much smaller with the
patch, so anyone using GIN probably wants to rebuild them anyway, sooner
or
later. Still, I'd like to give it a shot.

2. The patch introduces a small fixed 32-entry index into the packed
items. Is that an optimal number?

3. I'd like to see some performance testing of insertions, deletions, and
vacuum. I suspect that maintaining the 32-entry index might be fairly
expensive, as it's rewritten on every update to a leaf page.

It appears that maintaining 32-entry index is really expensive because it
required re-decoding whole page. This issue is fixed in attached version
of
patch by introducing incremental updating of that index. Benchmarks will
be
posted later today..

Great! Please also benchmark WAL replay; you're still doing
non-incremental update of the 32-entry index in ginRedoInsert.

Yes

A couple of quick comments after a quick glance (in addition to the above):

The varbyte encoding stuff is a quite isolated piece of functionality. And
potentially useful elsewhere, too. It would be good to separate that into a
separate .c/.h files. I'm thinking of src/backend/access/gin/**packeditemptr.c,
which would contain ginDataPageLeafReadItemPointer**,
ginDataPageLeafWriteItemPointe**r and ginDataPageLeafGetItemPointerS**ize
functions. A new typedef for varbyte-encoded things would probably be good
too, something like "typedef char *PackedItemPointer". In the new .c file,
please also add a file-header comment explaining the encoding.

The README really needs to be updated. The posting tree page structure is
a lot more complicated now, there needs to be a whole new section to
explain it. A picture would be nice, similar to the one in bufpage.h.

It's a bit funny that we've clumped together all different kinds of GIN
insertions into one WAL record type. ginRedoInsert does completely
different things depending on what kind of a page it is. And the
ginXlogInsert struct also contains different kinds of things depending on
what kind of an insertion it is. It would be cleaner to split it into
three. (this isn't your patch's fault - it was like that before, too.)

Finally, I've debugged index update.

There are benchmark scripts attached which I used for testing. bench.sh is
doing following:
1) Switches ~/postgres to given branch, configures and compiles it
2) Initializes cluster, runs postgres, imports mailing lists archives which
could be downloaded from here:
http://mira.sai.msu.ru/~megera/tmp/pg-mailing/archives-9.1-main.dump.gz
3) Runs index creation measuring taken time and index size.
4) Runs set of index search queries measuring overall taken time and number
of used blocks. Queries was extracted from mailing lists web server logs.
So, they are real-life.
5) Runs huge updates and vacuums measuring overall taken time and final
index size.
6) Rerun set of queries.

The results of master branch:

Time taken by index build, update and search:
event | period
----------------+-----------------
index_build | 00:01:52.154299
index_update | 00:10:42.982413
search_new | 00:26:14.294872
search_updated | 00:27:06.10298
(4 rows)

Numbers of blocks used in search (not very representative, because it's
mostly consumed by heap fetches):
label | blocks_mark
----------------+-------------
search_new | 848156708
search_updated | 885122373
(2 rows)

Size of index newly created and after updates:
label | size
---------------+------------
new | 884514816
after_updates | 1595252736
(2 rows)

The results of packed posting lists branch.

Time taken by index build, update and search:
event | period
----------------+-----------------
index_build | 00:01:54.363988
index_update | 00:08:55.291099
search_new | 00:26:06.262403
search_updated | 00:27:07.501142
(4 rows)

Numbers of blocks used in search:
label | blocks_mark
----------------+-------------
search_new | 847591514
search_updated | 883928608
(2 rows)

Size of index newly created and after updates:
label | size
---------------+-----------
new | 421330944
after_updates | 718921728
(2 rows)

We can see there is no significant slowdown. Updates even becomes faster
probably because of reduced index size.

Now, I'm going to take care about WAL, refactoring and documentation.

------
With best regards,
Alexander Korotkov.

Attachments:

bench.tar.gzapplication/x-gzip; name=bench.tar.gzDownload
��8R�]�rGv�o>E��D��I�*Yviw)���H������1��97���*����Ry��O�b�~�t��@]����<D�m����������9=�3ZKF����������';���������g����76����[�;��uJQ�+KR���"RQz]����}�����7��2|��VV�U����=}��s�����@<�~���K~���WV�9�W�����|���J:�
�/��"v�,����
�������!���kW2e+�re�qY%��D���w��p.�,e�oW��l5l���k6s��R�b�X��H�^y���^����� ���MT+k��(<�^�[]!�b��������Vc�4�����
�V����z��%W~!���P���Y������u�J-�R���j+*`���=r����<��~�"C��C��_{����?J����7�E�JF\����������f���qMe��k���J�?�O��L����;���B����]f������V]�#�o��"Y}���p��Y�yo��M�<��C�I#����[�F�����X����F��`(<�j:��_�1J���_
����"��}C	������'�;�|c-�JWV.�~�W���c^3]��f��x���c���|���|���m������[w��m���{��=�{s�;<��1L�H��K"L��W�/��>?��Tb�w���C��T\�_�\]�ix?�����H��Or�P����b�v�e��SHs�&�TKa�'��I���w����~_�o��^1���*�F�yw����=�=��_�PM�?<������Q���y����y���W�a&}���J���h����'��{o&��^1��yg'��L��@K�����ek�#kM6A�b���O2>Oe����k�o������5���.�z�+��M�~����w����������}���t���2��������|��X��]�Mcl����0|r��An�����q#m�����1v��b��H�
!��fM~�k�����x��x�����<1���������6^1���~aq����AV�9s����}c�Ml���in>������qO������~o}bN
��c��f��f��f��f��fxl�����Kk��>�C����S�Jh���_�o��9v��5��#�F>�o/��7�������m�;����D�w��-�&^�b��b��e�?���>�a
��t���E��2���~�������{�����<�<�0~�/��{��{'{�����������9y��U�RTA��C$CHRl_�//$��/���{��{��RUC�/�1{`�p�HA����}��)�����rmR����3��D���Hy����%&��]�VA	�~�gA��o`�7���P�/��.K��<�=�
<Efp�e4-��iI�����m �Dkc!�����W���%����6�����z�m���T�k���<�>/�i_�;�ex)����JU�
}���(e�	��.�i_�����G�vB�\*��&���E!�
A�jh*i�F�$f�d4-fb���+R��S�@3��'0�<O	WC���,=f�p��`}�l}��Z.�W�c��9�g�� H�q����ml���)\7��{Sb;��^���$~JG	=�,W�
|���11�&��=]���0�/q7��B�-�'���iy��L0Y�3��op����(���q�^���#��2t�1���L�K��
S���+y)|�	�y�R�Tw������lXA;`�;4�
 �7�n�ujh2#�N�<I�]�z ����VH
<���HSd�u��{���,�})\Dn��S��vd3!���}20�,�S>�C��!:��P��Ct�w�%X������Y��E�jH�K&+_�c��Y��#W��C��6h:�2\RYK:����$w����373��,������4�2a)oJ�!������Amt�']�W����)G'wBvN�����1�=��	xq�3?5�$��^���s2����9��e��G�j�/LJC`O�<�!_� ���
��q�����%Y
Z%�`�<r���H`l�y�'kt rJ����zz��y�K�i�:��-�$�zX�����E�q��s��������D��]�������C�'X"Y�F�fg��Z�Jh�:���83ASXq�'fL����(���J`���������EYg�	i	���D�!\�-&"3��7�`�A&wd7	:��yq|t��_�`�0��4��`���S���btz��)��u��\�	n�/���J *��b�������������G�_�UG#�'p���r%M���9x#9����2m�8#m$��MT�5�\i����)�
�k������L��NN�w��og��d�q|���L�G�)EZ";��_^w�6	(��}�<3��]�$�>�7Db�M���+���\����l�Y��$�}���!:�M��f��	I�����SB������Tq��L�?����e��Z��#�0#���Uex(����kS���C�������]l�kPc�a�q�����c�d)����)<��P�L��]�l���8#p�����*��k�)BA���$7t�G7�q7%hV`*a��?,���f��,��d��{q��
�o1��~��o�,��,�7��dfg���B1�ehUKm��Lrb)e.]���s�U��~�Ek�M�45��"�"�4�X�[��}A�7���S�r�`��547���
I�s�����rJx�"�DR�$'\)&�������������p|n��Lv{��C�ZU_2<�"���,E���)���q���6Om_��rD/jh�EM*�5&X�����(�1E�H�RF%l���K���T��f�������.`�2���;X%� �n�N`�
�*s�a#=���>��8��f)�y�1W`��L0��9SQ�T���J,���;wRt������}.xsGE�@(��G���b��
T�Yd��U+,�,���]5�Y
���K:`��:��
��z
r	j�`��������%~#�$�H���a#���/j���5����0HYOV�)��M�����H��H��3����0P�9���G!�/�D�"|7B���e1�_[A;�����=����	�$4��&Z����������QA�D1��t
M18������:��'�RNB���4�H��`-�����EK|�����f��i�;��l�J�����d�����=H�"�;�wbI��%~��f���Xj�G�2�����o������~�+��I��v�S��l&�!j�vu�.�
.����<p)E�����%�:�O�������
<�/n�w�9��F�b"?��2'�V��e]0F�R`�'�X��5(*	�@�Iq��J��\b758]
*a���u��f�V�s��8��Y�����)������6VN�)�L1�e��+(�������n���u+��G���b��M����&�}Q�,��3����m)WK)��������Ij�Y�����a[7G��0���������cc�����������M+����E�kh��J30�g����$���#��t���j M�}Q�w����5$�����\��xL��]�B���5� �#��t�����0��6KA2�	���G�
M�a$T���h���9y_�mA�r��^�+��R�8\�$U�������}��qm�Y�;�w"�"����iNX29��������&���rO�;!�'PA�}k�/��ku�L�xv��= }��N��1�s4����;N0S$3��x7��������<?<�n�m�.�6n�cq�$x^S\�Xv��,��2�mV���	�Z��h��F,�������,?Wp
n_����Z�}�d�Pp��"�8��\z�L� 2����w��/<���/����Kf�F�p���~��a'VP��%?
�����_�zBrr�P
��6�$iS�O:��'
<A����EG���O�'`SH&���R%=���G�2���B�
 �
5�=z?l���F����/�_Ar�`
��In�+5c3q����W�Z�"�G �]F)+i2�<� ���%���~����.W\��k���[k����#�~.���y,�l�Z���f
��|�0bIl����y�����R�[7r8���'�o�z�{�y]s�
����O���_����~�b�^U�q�~2��/�1h�%H|F5Q	����J��'i_�����G��>��X(�F
�5�B0�x��R�,�0�EWP�Y����kR��<vso�"p��hC�����X���84a������4����A5t���B�^�-,�c
&����<���NZ]��\&��)r
<��*/"�/l�<i��&`���g����b��s��A
O%�BI������Z$��!���z,�8(�_YR������{2��8nr���1�aMV�S����Gp��$��K�lG�gd�d��P��Zz�,���*eV3�A��6�&hTX�w�U�L�4���<:0�t��������9������&`
w!�pr*w��H8���&�����I@1�r_�v�]�
L����Y%��q�/3�2�I~�d>����q��F�o��]��`M�������K����I�F�S0��4��!�6���i��bv�F!��>�)��)�T[��$Q�y�l(�,J����8T�G8��������?���T\CS�|6�bJiUnx>h���tQW�L'�"���@0gC��x��H�p6ge-�0�/�`o��wr���w	l�i*�'��%��	�	�`O��Io��X���OJ�C|y]\�Nz������H:q���;:8�=�"�����}�M���L����l<�]��;�:y��������Kw|�R�R��`�@�9yE9W0"+!��D2Y��p��{NWo
�*��TyT�<�U��n�.e��#����J.��1K��O���HR4�a
��o})-���o�7	H��n�{��8��i��D���?(�f�i\D����t%$�����pQ����'
UXYJp���4�	,�c�x���<4��`O�6����S�;cls��\O�u���S0E~'A&5M�$�,2OU�i��c�����t��Ic���8OBT9(��j|���������a��Az��B����p���UB�'!J8�=���`j�"w���|�78�VP*Q?�I@Pj�,	X	�>��+0����syX���R���M}K%��n�)
���v�����v��]���|qej���~���~
�[~Y����'��>3���.0��,UzD����kh�^�8E�H�������������!;����|h����d'e~���2N�9C;ZN�Ic�i���	dhYin��H&.���b�`��u8��dg
b~mw������Cd
 � ?���R��,mu���C��a��-�"o�"0)�/�5�8�E�PjR�l]9)��-�1�X>�*s�`]|����n)�����gT��1��[��n��E��i�����0�m��Tq�V����!P��s�p��(=	��/���wo��\�X�
z�r��B��H����3��.�L&�F�����DS��s\�Y���q#���1�Q6S���&��sb���O\�)��k��	��g
,n�M���|�'�}'W�M�0c���{���CX����%Uu�<��&��C��E�t�\�<f(�I)w��h(��q����A~�SI���!V*���*�I�e5�C�9KG"d�G��6(�a��TQ��Y�z��jfH�U�
�;	��}�;X:�&�,V2�2l��� ����U�� ��3��6�o�$-M����_F�u^A�n������@��b���:���_��M�J6dL�;\&�6:i��byH�6/�t��*:b��Qc!HAPKw���r_��ZOe{��&�L�����M(&���cs&�`T���D�V��X5h�SL����R�iP����`�Q�%k����o�I�B�����G�?9��a�&S0���K4���v���"�S����F��EX���rs7�i|�N���S0�-d���]��Q�KX���+�^G����ne
.�*h���Zax�:�}q����qa��o��j��������M����78�����O���%�6.�1:]A��C�N�����"4����2�y�`p%�iBu�,��l%����s
i/O�}��	�����v��9��9�M��������o8V�H�i�:{Y[|��E4�!�=���DE�a���j�w3��{��e1z$�L"C��-K���P�{9>�V\A	Z/�+S��J(EdX��R��tl�!y��
<���� k���_�3���[�=l������$�����'���!4!*�V�������V�4M�7���r*������� ���<$E����1�#��aDx��8V;�=���m{{	;�6�m�on �v/`na����#��xU���������-��D0�ET�#���a��gEZ���/����T��/���Di���@���{Bz��������zMq�XME������|�R��@�"����$BK�)��h��g��}�+�$	�h�����]���!��D��,�)�T�c��B�Gs�c�*()�t��pz����i�������m��g����V@�'5�Sg4��s��x�4�Q�����Hp9g1�o�H��i�vH�*�T�\���rf:=����1}��R�&&��@�f&I��#�&��{��0`��Cr�lI+���ej�q�Cbzh��Z���+(���(sa�+��,����V�S �2�]sR��P��,��������I��b���G����4�cpS��G9���Zy"A��R�����������U`�+��w;Y1��e��$nK��O$,w{�&��U���LiV�:�/v�=)��r�x(���]�m����T���M=%��Ar����d�ku��hu��l�0��9�������b(�Y�@��r�J��3��:�Q�NM���B�ESU%9��Bh��6��9���B�!��'e��{F�F��(�3��X
<���x;�Kp��F�k0��R$m�
 
!�d���n��$�B���@5���h%��Q�>>,�'�(��D�6�;��]���h$��{+�B����������b2�u�sa��!1='k3�C� ��I2P[-���&X��Za+�)r����4�=�������g�B|r]��S��N�����"�IR�3,D�R���-�O���H����zh
a��X'/�Y��ogZ�P��T�jx���+6�Y��m��?��x7r�^�|�e?@	�KW"I�7���M	��+9\�[4A�WY7���t%D���N�����W�=�z�_�����Y��#w~7�����b�D�)�'��N�����"�8����p(�����X�����?%�B�3z>�`y�L��pk�
Jv��__a
SS��kc�6?�&^booSI3��D�Q&��m��f���Ud��9-d�'xQ�!��^=��f����{��._�k�vE��X��?�:�@�{����s����W�np>��Rf����f4~u7���{�<B�2/R��x����S��K��a>)��E�+��ZmUY�So!������X^��#�q=�B��n�O�p�]_�o��7������]!�kR�A�K`�$��RI�����,A��j�����������q��(����I�\'Im.���N�`.[lWD�$������{,-6]���n
���r(�"I���n�4H NC�(rq����/��+R�)�����2o���o�"z����l�	�&Q�S4�R�m�j�p�G`��=y��+��Z������j�&�c
���� H����]{@(0��tV������� ����;�cA�}���M�|���"�h�Ja�{
��(A�<�`eQ�$xx1O%���7��]��&6Q`r?�M^�_�/o��`��H�2l��5^yJEO��i�b!�]��`26<i����T��Xq�A9�t��{2h�%��j�1��	���@s�Z�p\�T���w#�Cjh7;�Nv�l_����F�����#4���8���WDN���5�-�u!Z-���wjj��}�y��a����P(����VN�&x�W�D�D�D�D�D����&��_k"(Z2}�.�$�>?�q�,���uZU��*I���0��F�h�/���F�2]����x-�{-���/����J�H��%�-p=��?��������;O����k�_$��]/��8�:�fu�+Yp-|�+�A9����-�5I=�]k~�I{�8��*v�P�
�s�z�K�
���C�(bh�t����d\8kq~
<��9�A`io67fl���]��'(��3�����������b_�}���A�j��^S����A�
�}b�k��5���&��0�L�I�:�����y������	��^W�j������Ss���<�������$��vxgs����-����-�xOF�4_�
��p%��B2����RXS�
��An�e�9��0k�=�N�kvu��+���?)����I������$F�����}}9��r��],���]@��'������c(�t�����~!����}!��HY�:r�`:bF��OE/�8�H ����������.�+xGEVl�'M���G,�gWDOW2�s�87��������
��%Og�u45���7���_��/B�u1<�p�!e��T�0�������S���~�X��x�"p,W�$xw�X��n	�"���86h
 x���,�Un��I�=��������!�/��&W3��v�����W����F\B)B3�`��
Ku�����A�XS���i�Mv7X�L�������p��>q�Q��=��o��q�).�vc�>��{IrA�:��K6h�1�8�������'����v$�&��q��[��`5����-�]T����I��c3�B�8�)TY?l�^�_����}!���� r�"R�;����/?}���|6?�� 'P,E��T��g���[6�	��.��*OgJ�>�
���0�b`W�-��*����!����)�}�V5�b��
JrHLQ�m����,����"zZ�S~<|������n����H��Ch��������������lo�];@�T���X���5<���
���%1�@y<X(0}���]�lG���_������3� ���G��<�RQ�r�FO����I��,|x�@���?��!������9�8�����O'���M_AO����Z>,����Ss�����rzr��'J!(�k�dw����XZ�n�`�R�%���]�$�x\�4+�Ey���,U%l�����������un��8i��D��{��ag�����2��s���/�M\���O\�k]t/Bu+�Q���=) �E��)�TIk	��{4��m������G�+>
�Uhj����QQnx�|�Kd`�
JvwhY��O�m�}���#b�wW������Xp$(�z���SUX���\*��j��R�jz)x��	�8`y`��x��J&�:�&�H
{�{2:r��,Y�\�
�����	��o���o2SY�O��C��O7��`�u8Y������+����*����������xab�����>�����ndd@�jh��8��?k�+loh�Z,���PD��@R�&��@��9���"��c���u�c�qSA�-�@��$��
%,���R���P�
1�*�]�����j!��JfQ��D����g��S�__����8mg���=��Z+���'��o��_^G�������+� �[�������Q��g�=�H|4���*�%K�SS�@�^�u2���'�������F���K0��#�BY^ ��A��]^�����Co~b^9����{���^���4��\L�\
��1��)��E^��W�����G`��
���+RQ�W�c��L�O�h|��X;F�4�6E����_���M��w	
�C�,�`����'8�laJ������"����$
�h�cE%!�2����� K�2�?M�
J���)�Ja��9�����I�����{5xq�	�*0���Le�L���A9�*C�NE�h�
������x���f�D"we2?�g�}�[iSd�"������n�Y����~������jz���t>����vG�{���(e�26�RpH�&=�-�6��d�w����7A-��!l)�����[4��njSa����':3��B�,"+]L�Y���'�"��\�Z&F�r[���H��*�42`OA�{���l�P�x���[`�z"��G���������I�	�4��Jd*�6T�"(�n������Q�la��S�\�]����c]�`��~����B�J$�/�D)�H�,j0{�0%�����_��N��<+�.��/yGA\��Db��ER�#x���lZ(����E�dj��o1;�@e
����,wE�(�rT����{,����R$�	J�QI�cb��`u8�{���@s�?���{���	�R���k4���(�
��X'�
���U+�\�8:nN���������7	�V�,��?��s�������<+����M�d3�k
�*�u(���y_S�y0W�X�X���(V��OI�~�5to���i^��.�������]"�v��6��]^6���5����|S�*�Y�n�TO���~��/���$���M=_����K#�	�S�-B��o��4����%*��`��1���D��%^�!�m�nfK�b�Si�������o�����JD����I�Y�Z����K3
��CB6Q��)f\��=(����=�?�	��ZR����
>��h�
�'����X5z%8=�!���6P
�t����M�+-��:	t6	�c��r�'$��Y�l�h���d9NW���`"���Hb���st	r6�TQ�	��D:8��0�f3�D�-��
�`*I������~�����:t�$l�i6�-�����������^S�����O>��U�������p�u1d�jk�a�%���b)N��`e�1\���������,F/�I��S�h��=���7:j	l_$T�E��<	���x�
"���`�v��`	�������!����:����K��������X=M�A��������98�aW�Q��d���z[0������z�r�]�4P�����������Q��X�)��Uw$�O�bxu1c
�6����V������|��wl��L�Mq�LB�91c����Sx���5J$����b:8NZhO�}V�`:bn��#�"#�3z���6ivEX[��]	��Lk��������M���3�q�O�"��s���z�������5�X�)���3C:�Z��c<)�����)�j��22�����f-���
^<b����^R�]��r�����^�����7w��.���G>���\����#��`��o3�W\��|�&�%�k�����6��{�Q����#0k"�)���_���
K�6$)� �-���/Z_�}z�9��*
�|W�^���k%����n�$8�ln��\�%�:m�����������"�
��<�����
S�ry�G��-�}b�����+.�<�_c���,�B�r�go���N�ys`�S
�>���������������������W����\�I7.*����gY�w�4��4�'�}���%D���*���7X�Pi��k%�l��!M�j-�
��@�����qG���j	�{��B���KWx��
!���ZMH����:�`��
� �n!��_I�F?o�z��<�N��=AD��7��<�N�=��Zu��m)"��Oh��Lr�k�"�2�(�Rz_HO�2�}����m�4�4s V�	z1�t
�MCp��C��:��K�����������bW	����bc����j�����������BU���(��qk��p�|F2��.��L���{2(R4l#J����)�^���b�P�>�� P���8��H^����	�]`�����)�<_�}!=�o�/��T�� ��;M
 �
�����$%#��S�����m��Z�$�$���,���l����J������{�X�
L�*���L�/T��g~���;h(��H�����f[9������e���a6�*d���7'}��>�������/^Le����K���r�Hs�J���Zx���l$D���ia$�������2�s�F�A6}>� ��/R.���wD_��{��.%a��V��Q�������������n�zx=���� 0y��|�wJ���'wd���#�1@�&?S�=�}x�vE���.�d'�R
l
fO���{m!�o�-L����V�D`���J��tOF�"�E��v;������]����(-�V�+��u��>x�V��<���*��S�������B2���)��q =7an�{�t�VgwYG��D��5��a����h����Fl�d{�i~���@I$��PI	%8^\���2M	�s�4�?�pG�{�����ph3�'� �S�"f�L����B��@�(�H�������t�A���M�E���c�[������	.�!�D�]����2����������2������C�)�^6�jl���5����CAjh
��9vFf�m�����r�i@�� R�����,����e�CP���q4<K3z����l��X���5{`���K�P<�Fy
M�6�Y�Tf[���T�d� ��^�� x}d�rTy��	
�d�3�)[� k��P<f��}4��:��;(����S	��.��.$3����#�';:j4��}.Kd��.�.����%����zp;������)*�9��[a��5��_^��hm�=z��<��/�>����6�"jE���X�Z�&r���4���\Kd��:7�fpw7�+)��S�:���\]�.�:�z|'��;I�]�d�.G��o�	�Dkz.��T��k��Y�
��}�8U��2�sA�1�2����R�r���#�������r�-�z�<P%���O�&�B��f�d��,��p�aA��v�od�'42�@`=�������<����4���[L�-��Y���$ON�N�-�'�����.V���5�o|�h�T��	�#�f����2��������/]��N��gb���2�d��G���R���"AS7`�
���~VeC�C���;���kW��X����SQj~�*��9Oi"0�\%���|��}��B��@��GK$��.�	�v�!K���N?$��|�����v$�yYh�,��{a�������.�X�����u*C�f%�3����-iv��e��Z��i2��%p\v����|��;�'�����C(
|��R�"�x�~O���p����2�m�=!������{'C�N]"(�C����:q~>mzc`�������+(AN��}�?��#I~��������k,��o�\��W�$(���+u8��$*;	��jp[5���H��R�~�54A����=����O�N��'�DD����Z��������2��������H��k�s>�jU^!@��(�\��Q��i
�e�Fo�d�����)�@��;��x8�,����;;6X�4L�gJcK����/����0�����K
�@6����u�%%S;������88|��(������qu��#���iEv� ��T�Ij
R	?��h�`����K���Is5}���e_�#�+I��H
�;�h�Y
N�&�m�+(E����bQ�����8�Mp+8� 9�����gX����6Z�w��x������0����s���	�i�Fx�Y�_������?a$
:�����R�,�K���i���w��t�E�.���������_�$�E_ep0v�>�?�V��6x����/����3����7�|�^��K��B;�i��rm�fmYH��
���hk+I����0�a<�]�`E�B�'�����s�����	n�d��a��(��
 ���`��3l�Nc����\JI�������}z*m�J�pw�
�>��Bvj����p���1tM	4�����"bR~�
���'j���dX�.��Og4��?��P�Z��'�Ji,��+����XHh	]%�2_��@ql��!p�y1v�@B`�3Q���@��S<�~n��M�3-<��Y(�����*�#�.��=r_0�����$P+0��XO#��]��n���Z�E�*�����$��:[	1
�p�����b�4��_���9K��Ta���r(^��e(WN�2�%MM���e0�M�{4	�OR��kSE����Sf�8��{2��`���T�MXI�M�v�Q�=�-��m~�4��W��Bt�UP���I�q��L�Z��CS�	UWb#�<9Qf8EY:X�NS�6����l9��R�sv��A��20cR�G��'K�� R��GK�?��T��G�%g��F�^�����>�
���`�JD�o���U:Zu\;W!�G��pu�>�o��:���Sr�x�f����F=e�B��)O���
 �R��
|��v�����?B_�	�d�g�9F$
��L�T��)�2,|�+�}�_�}~��!r��E\���'��;�����Ow|���.���p�H%8��8����~��E���w[�=.`o���3g����<�"�'$�O���e���������N�~��vwsu����/�-�w]@�@
�l	m�T��1_�`���'h�et��5�*����u�������:}������ZJ��(@��NQ�`��:����7��q]OD�x�
�b�yz���LA����>;C�p6�T3�3=�f>t���+����d�����p���h����+�X�9�������0D�E:���sp��	}��?�������M�"O����d����X>���K?���:kF
@S���\^O�h.o%�c�C����+�dr��c|n��W�7��l�[��s�FEm�,���.�'��=<���dP�dm�d�DK�Sk�=�����������e�%pX�%g��K��m�	���AP�R0*]����i�h#h��&�kn�3�K$E�����09����b�;zI����:�
�>��������_�?B�������x!�ky��tR�P�5���&�X�A`�3����B�@}�4	1���S����D��\7g���w����������
_��XT������.��c���(��Y���	�c��!��Y��.I;�����wX��
����|�(����L��|l*�L��A�j����[��U#�����R&&�B�d���{��&��r��#�$�,�!�^V�)�������h����clvwO�,��3�k�w$�RtfHBPFK�L�(�5���Esb�|�0���R��*Q
-�3}�m���>?���$^�I��"(���.%%�������N�b��
JQpdt;22p��vPE��}T��tCO6�oQ�;���}y��������D�W$sg�F#iQ�x<���P�[#o��;�x��N&�o����C?+F�����������-����6<aGEB,���
�Bs���
hc�����lJh���;�1�����Q�_�
���R�$h>`^�(��;f������N��rhBLF���5�]N��5v/�Zc-�2s�7��C�#����6;������[�Vg"���Li�$GM��z0���.$�W��0�9aBk����c�XN����vs`����v�"Ho�Tz��E�[0E&N,4�a������	��.�_����/o�����7����!1=y��,{���@��+��\�Iw���7��q��X��hFC���l<����#��2SZ�y�h�C����+�� [�.>9�t�0���t��`��JB
eD�F�
Q�
��7Tk�l��d�X;�#I5GR�dhk1vR�8��F��F;�B/�j�x��U�Al��N�,B��%����M�t(��+��;��5�Y��0O|m���fr���b�����g�"os�,�G�LS�Q9#y|�M�(�����J���jD��W�2�p�������.����M��F_"��4��a����ke��Na��)����)3�I�n
�H�J3�����Zn)t��WoGYRsX�]���3K��`)hM����U���vE��S�y��SS@/,��F�����!K9'�����X�O����5���!��%)�w�M�#����!1y"������	���lo�3]������s�l����`����b����j�n��i������ w�����|��t
��o�����Y��H�@$1�`3|�x%|����>�%���G�BFg�Qp�6h����)�v��o��=&��
&����{��Q�0�l�����
��X��O�5��8��suuZ-���}Js����V"i�#�����m�+H�G������`�j���/��
�
K�c�L����Q[-����'�u7|i���|8�T���@C�.9�@���L	��[0EbQ�`��x��>�� 8lgL`��
�����G���'$t;���?b�r ���{=[K���	G��������`��Ls���)���*iT���ao�T���C"�����K�I@���L>�q�e\������?[�������
��Dp�B`�J$�i�i-�tk�MA1|~4MVo[v�bD�F�����P�x`�Rp�m�������������_ jux�V-H�m�I�r��;�FlH�������.���h��upl�C��v����2���'��.'/�"��H�<�a���=,������no��<��S
0Nj��\�<�S~wD�<�(�L���	1�Y��WX�5��}jo�R$j���*�B{��z���Rd8��E�-���"$���zj
�J������o�{s��WM�Tik�	~����1�b	jS54��&7I���`)V���{�
�F@�W��I ��
� ����#�D7���5�$U2l�ZA)j:9�XM��[�*,En`W�H�Xa�r�����m`'{aC�H���
Sz�m�(�z��X)�!o%����NGd���������O4BN��W�h���V�I�,����jh��U��W�k��������
;�2��\
<�.��L'���T�on�����Cb~
�LF�h��j
?)����~"����F?�H ��eSt�rm�+D���:��@�2�5�
���uxO
l�4�����t,�^KP�������Y�`�W	m��7�@�,�@�K�����PR	���RD�����"IP���{P\��?At,��������UvA��|k��>$�"]Wr��(��)�h�_
�>������/�����k����b������������?_8ME'\�IT��p�3�k�?��������y��:�`�G�;������7`��JQ?ld��%���N��N�}Bk����P���:����T������/1:�����~��l�����`m��IQ��NZ���*L����rc&�K�`'��0WG
�������be4�����v7<��]~�u1�A��{Y�[TP�Ji�i�4�)�|'������6���F��K,}�_S@�/_B�,������Q��`�}�����h��1�`MT]���C+x��6���[A����'��SA	�P�<�gh��MQ�f���?OWBD�k��{�P�������'�}�s����C�g�d���T��h6e���q]3���lt���n;VC����fb��k�&�m���h�E�f������s8��E��r\Oc+���	��U�b�F54����+L��8���Lhr[��:'��#���#����Nr#�B'~L�Gj�4��P��n�q_�}�8!���^4�qz���v*�`��I`w�����z.XQR���	���8vf}�!�{5$P�*d3m��zpS��q��
UOp�p��3.�z�w$�u����sRO���]ba���#���t��|����H ��]`���H�ay����o�I�v�4��Ybi�e,�I�Rk3�#�}����k��,�4�!�`�@�����x����^�]�g���?�-�H�I5s��`��L�����)�f��z�`P�YR�Kp	�����9��������X��e�������V�p�" l"����-��/���1fUP���TK���K�8P!]���Uh�-�|D�F@��`�T�G
x�������4�#��&���-]:����xA@n��j6��`�����\]c��LE\�-�}b����8������?��_����������������� ���`�H�Q����_������+�n�9�m�HDi�	&�	?�k���m��l�c������ca����|�����L����n�J0ib_�^�kD�Fq���&�6�B(������g8�4�����Z/���o�����w�c�#���&�"�����9����#`���A����FQ�����q$m��P�����G��� ���L��� @s�!�|��}!E�F�	x����u*8���^���H���c.��������zp���sT��i�I@e���]�2���G�7Xw��&���B+�*�"�.����o�������H�ZNkES	�_'��T�S���������_s��VA�.�r�����RrKs$����P`��-�"�7)|w`o�&�J��������<�V���
���U�4X2�@b�u����_�3�m3����)Q$�U�=�8����6g�iS��������|�3��M
ME��WK�+I^-���+6��mK���Tljs-E�8��35��2I�A��w���~�i`'��������|�;2����Z�T�"�#g�G��
���2I�d=1���K�f*��h�����
�d3�s�����[��dsk(��`�2�d�����>^���w:�
��g���f��OHR;u�l�Z�g1O��?Wto����������
]a)tfc�D���A\As��i����]�$g�$gT$c��;�i�,��@���%�f\��d������})�dw�����������lSA6���6N-&7����~��q��T*��fN�1hgS>)�'���
�vM_S��wu�IwW�
:;�
����{��<������X
l����O�n8�����n./ ~M���7�7��s,�[A{e��z��|J�����;WPwT>��.�P��J�*o$xtNa=�p^����������Aq��"	@�K]��@Aq.'eh���@�� ��''�eY��u@
�:��(�x�
��{�W�,�J�}��Y����	�Z���J$E�)("�H�<������+fsl�������mIb'tG��8e�D�S�j	wE���s�/�=J���N����`OtO�n�����9�}B?����h��=Lz���u�\*�5��K�������n?��%�Z��D�����?aGAQ+��\�U�/�>?����B�i���h���������
�=��HqZZ��$���`��AI[@�@pp�J�%8��ed�M�L<z"���>~|Y�vv���R�%h��
���VZ+��o��4LWw���������]����������k��V�=-�w1����b�]�XB��4y �weS9G�Q{2HV�i�'�������<x��p�:N����5SgP)�w+�qzc�+a��������lGAk>���iw$���%f�^��G�^'����k7��BH�\�uh�M��]{2(4�$F�
�����VY����h�S
X"��k
 $��3�wE�*�s��������>�Q= l���wE�����LFh��-��X|��=���`�J�K"����eq�t�^�d?!��;�cn�?�}?�L��S��t���.��Vi��LN�yr���=)d����R��TG X(DS&$�i��f���%���F�<������
`9�m�����`�,UE?�I����M�S�(ue���C+V
j��M�3�I�}���UJ�T��RX�}��3��@�@	�0����9�G�,��c�Jd���\]^�����sZ����'<��x����u8E�*���V���L������)����%F��D$�0dv�w����6���bL?��A����1r%�'��3L�o��kO��i;l�:���+��Y��I�(;7��d��jJ5D�������'���B �Db{���:I���}!4|���k��@t���(�p�
���o���O�����<�I��l�UV@2��/����Cb4��+�$Gki�E�����F]C��w$�O���v��q-�$J���>Kp��=�Z�X��g���Q�])=8X:�%��q�2���Y��4}� ��|�vpCZG���6���]�v���y<�	K����f�����+l��S�(�����m�*O�"!����X�Be)��e_H���� v%��
��1 ^�Z��`�vOM�MFH�s������jT`���'��"����`�����b�:|�������8�����"I���9����g���*lOjN���l���t�4x������L�&�S�wN��{�;�Fvp�:H�c�h����['S8B��4����u,Do��<�0�����w�t�;��rzy�
bVC�O-�Y���y��]�$�9RP��mI]A{|tr���t���f�2w��9�����'>��}wEP$��(e�Qx��;�ev�i�>A5��(,���(��'���F�D�	��|����
�#=�h���!�����*�-����9� q1�R�����t�{���`��^��}=�|�;v��y�Il�9�y$��-���!�O�z��xz!�Y�f�`�J��j������':�u0tl���0�}��N&��qy4D��^v��Z� {�UP��B����P*1+|���{�������he�u*��:,A�Q��V"	��cM`��X'�������`<�z0B�v$��w����y�=Bs����
����*
�R���O����a~���"ez���]A�'e����5�i��=�F�$��7�-��>�-�'-��F��P�>J%f�l��Dh����=~�E�&�>
K�l
x���<�.z��e�:���������/8h��[���	�������.���z-�F�Xv�i�@����S�1��	n�,IU��j��F�OHz�����a'���w��x��G`�����I���]�e�7>�& ��3�AJ9���V��3��h��9�j�����N�Ze�H�<:��9~WE�h�@�f��a����[���<�)�D���K�~����|���A�9�
�W����x��d�>�W�1������/�G�=
�J�c���x
���VI�r4�_�{S���#��&��6��cJT�L�����	����L��'��@������~q�9�-��O��?�F��g��OtNt�	����'�������9g���c��X����j��.�������Y��:x"z������������s�pWAa�X�������{�T��y�G_r/��I(0����p,����bDyc>�I[����3+�����#�yU��%�Z���O���������������`	������TX�����L���|��r�6.�T��z|���8���`�Z]7w�nx{5p���Rz|��n�Q��;����fp�~x}�-�LG��$xG�H x���%f��9�2�������h��c7���B����W"������F�����I�;��1S8�kWF�4�����D�D��������]��)vp�:H�c�������0hCl��Sqj4�w����&����5��t�X��5+��	��,����)�L�*�VX8������Ft6�F&�c=�#:x���u<D����H� e��;v;,���d>+E��Cb�N@����,P9������{��������eO9Mf����,@���/�@�5��;���O�eW.�����������d����X���}j���
i1������'����e �c�D�O���lG-{�C������!������_�,o���F�:�b���l�c!��W�c��t�
�j-��S����e�/������v$�gZ���:����R~���)x�Fe����/��V�����.��rm9�����w4+�=a��9����������=���
���4Q��"m��Ye�<�.����n!�O�f�"��.�a�,���d
k�@�Z����[���)����c�w%�����\{6���Y\�����	Ty�������/�}�3���Gpve�_�������5�uv��W)C�m�Y�Zs���H���E:<`>%��u{�6}�������z��BND�O4�B�I�>�
Lp�������G�A����:����7A}M,ABOr���V��x�m�%���@�p-h2�J��:���#�w$
F����1x�l�4��f��S6�J�-9 ��j�
�����F�6����~��!�-Gx��������w$�O����!b9���"�R�T)L1��A��`6�%�K1����D��T���4j1K�����M�n��AGB�
B��N�:��N4:J����o������8�BcU�$�V7���������O�t4:k��D�D�w�����h��j��S�5�%QC������adaE��
��A?��1:�����Z,�AoW4���W�v�^��Rb�Y�5tz=����;�Z�9�T}�g` ~�m��7je$����|�3_j��
Th�'� =9o�
�z��	�?I�}��2��i�g�:��`�`%�_s-���wk�{HL�di��G����sV���gJ�?����}��g�>�����G�/�>;����V2����������O��Il+���KTi��tYm<�_q-�jgm���[�L���ls AH>���LE����}L_9 �d�|�J���j��$;t��h9� qZ&yC�T�9:�|O���<�����l
�y��_�|��I����B<��i�
=� K�������y�x����yr���j�5�<�����G�;w�Wy4k�1�C�4�j���7k(����3��@�G��-����D�� �n-�2�&��o/�}�� Ae�'X�Erl�X%{I��]��O��#SCs`��^|��O�k�����L�|1�Y����������������g��}�=$���u�����w<�v4D���*eI�#�9�x�$��TssYl�=�m<�������tpH��r�u���Z>U����TKxS��w��Gs�t.���[lk�]ND�Er�{�PI����I��I���R��<����)�K2���c��������BK���p*��������&	���cl�O��PX�"�;bn��<'f�(�Grm�=>���h�N�zF���be~?1P��MR��`f�����?��LiV��B�������'s	m��.�i�{B(R��f��
�}ZK���P����0~�B�'��U�~ �;(\����;��rH���C����tHW��T1p�)���H��j4FG�l�$}�"���������CKN�R%O<���
���-�t�9g���������k�F��6ZS���aDEqs����@Fs���O���i�x�P�����u�%�Y�5��xg�J��fb���������S�6X���Xt�������(���������,��Q
Nj��Q���7�AY��D4LS��i��q#����`�,0�A�h���X����XVS������x�:�X�i�l�U�<��fcy�@��=.�zz}�wPQ������!J%��&-=0��+���mW���?�Z&`,dOF��T8S�*O6I��c�<5�X�B�z�h}RU�<����]��S��k����*){o�/�vu��Zfxm�d
�y������R����~@X�����������Q�
��G��x����?SB{��\�l6�<�R��&M���9T�4����h�t%�B8�����91���u<DO��Oz8�C�����6�jh�d�$�Jp1�S�]�%�$�<���Q`������6����+���!��1K$A,5�|19��
#a��C��	������v����o�����\�3����Q�eP[t�5�c!�6��v��4�����[ 	(��$TQ�����J�q�h���VN3����:h)��ME�b�K
<��B�Ia	LE���`{|Eu�%����f������}���������l�7h^��d�����n���������W�}!dqx��hS���wX�������������h�xWD/��Gs�yZ%	{���g�]�N���
���rjU�+���E���va�J$��oK��<q��2�Y��>����:x7t_.�!1�X�"z�	�u�~��y��P����/������|q��'���$T{|I����"W���y4�h�vPI�����`�H��O;��)@��aMr`��G��:������t�����V:�3&Q
���g�6�������r`��..G����l|w������'���e.��������
�3	N����Z���� K\�J�Y 86w���Y�����;v�r����g��{�t�.[J_`�fK$��V�(���[���Z��Z��t.�Ka����u�F��@$1�K��}~�GC�[{��I����M����,?4�q�GZ?n�u���i�6�Z�"J�L�Cr���h�:�}rwh��;�v�_�}
��,�#�PA{|w���s��;�����	�uq�]��y�E�,7{
���"��
�T7X�S�'����d��y�$a���G��,�
�hJ�%E'���8��;�3�k����[u�����taWD�h�f
��*;���)`%C�"�R�0��>�����	���	�jn��r	F|kp�<V������Bq�$�9�C����AD'G��_�^c�Kp�+�Y���Y1;������b:�K=�VL<
/3�X�6`6.i�I��? �?-�����B�R������S(�(���4S;��,P6XH���K��Ya�����ho�/�>EC�=82VZ�v�,�<|F�)�R�H�7D#]��8�%���P�Y���VP2!�������z4D;xt����r	�
��xe>����:FN
R�T1��b���p��:0�m��}j�1Q�����	�E65Y�d����kWE������jh��<
���H�$Y�����Ip�W`���'*��h�n
�c5�H&1�����n�?��CMg�9MH��=j��5��j�E�E���Xh�*0��)� �O%����������
�g]��x3��l�����#�����0?���W�~Gs�������0��I��h��B�>[��c���5��,����>���1���R�r`E������k��kk�ny���:��h�J����n��,P��^"	R�t
E�N1��0-�DRl{�]���<��<�`dv���Z����7��r�%�r�
Q�5�
�K$�Ac�
 Af�q������fZ�y��	�	!�?�G�3��`�:,T
9��BN���&:U*<rL�> ��Y
�_����@��C�ZQ��r���h���y �z����"F���M1�o~�����J$�g��j�{|\t����K���:���d�_,#q��\�2��M��pT����i�2�z����!������yF�7���*3�b�CP2���T�x�al�tK��>qT���Fz
<Y�
����x�����9����q��|(,�wO��!��l�1����rK<z"v8�6�6��cpD��"7qd7��'#�P0gp�(�����|�Y���O���w��� f�b����pNyN�Y^�D��_�
���Q�Bm��p�d��"�5��2��\L��M}:O�����h�v��(�V���GZh�_�������[	�|�m�l����
��M�i�S�Qe�%���2]�X��T���(��a��d���q�X������RCQe5s����>�?'�+\�|#
�n���GsiO�_�9����&6�{%���c��|%�K��#��9tt�8��5�{�(|��� X?Xa	h�Prp�K	%P���)r�����Ns?��g:��u��|�N���=��u~c����o �w��X��\���ix���-���Ih��.r/[Oq�Gs�f>xZl�=8�:���Jw�FFM��v&h�r����`��Z��'~>��j_����� KPq�%����Qf��� ���cU�h��As���)� �$u�N&j
���
y�����1��
|���<���h�/��9�,�S�\�����4��Kp>���Tsx���k!x�c��1K��{X�U��O��?A�,���7v�4������+��_e��mq��0��pp���D>�P�A����@�z��+(�}���
� �<����+����}�'�Gs8AOF�4�������5���G�����i�������B�������-�(�
�_�����d�9�n_H�/��i,G�n�������:H!��-�����#h��H5�U���O1����R�}KJ�������A�Jd/(9��\�2Q�R��4�6��B�$��zHL�/����E3��Qu8Au���j���(�G�P+v~w7�O����������������z��q)�Qw@>6]9l����n�����,BO�Ipk��
�n�=����1Ox*@N�K�`7qI4��hN�c!z�C�,'��[�#���Y� `�8X)��;(��1��t��G��6���;\����������wh-N
�>�����wc��p_���{R(��;6����Xi�����`�
C�XR�aA;�n87!{<�~XP�o��!�-U5�uzwv$�:/
Cg�?-��/�R���MT��W��qe���*�������*���+Zs~����f�"���f���/�^����Q�!�Y���@yFE_3�q�������nLE�>���W��,���>J�����������������;�~.p:U�r�����a�cXC�x
O{� ���X���8�HJ�$�H*�,�I�o�a��G��4������!���
�/f<Rf�3�IDe=�#�N���p�$x���2�AS@���=T��P5jw�j�{�J��	�W����[c��{�A94��)O1�[p����!�Z����h��H���3��=)�l��$���6�$�x
�jVB�_���wSs���W_��3��4J�Lz�����m��l��@������eI��T��#�����Gt"�an�:�}r��a�5D�Rb0#FC)V��U"{|�u�]<�u�EA�J$�}������k�0�����;Q�Y&�����u�}:6��XO7��y�'J'J�����s���	��hp;�^^��xu8A�c �Z�H���
���>M�r��P�>��2R���HC��
���`	h�u���%/'? ��O��&7G���G�B��vkw�����wvl�ic7jNR�#&�9���,5x�����I65�����fW����L�L���	��*{�j�x�n�H`!t�����@G�o�9��s=B���W�s��`	v�0���l��+�+WPQy�����O�+�h�m��*�E"��Y$��0�2N��+����z4�\^c��:��U�����Z���"�O��q �����V�o�����y�`(�|�=������7J�e
9���c)�}B�!vM�������*�4��%����XVA	���*�D�M<��"(k�<�kK/6��f�u�V5�.��VF_:������n@z4�5�hw�I��OhMUP�����z��X�{Xa���x9����@GM�Y!���Xa�rk�y�j��@'����^
|�l��_����X�Mqvn�\.��"]������U_3�Z��hL�#�D;�xO������;Q�9��������:u�R�J;�8�"(2#W`b����wG�?�u3��m�eSA��k�;x�}\Y��>Q�wHL�_
�W4s��X�b�`��^��u�m�{����h����'J'J'J=���x�Ov�Ju|����!��{1�v\:���&y5�qRA	|��b�|��9���zHp������^�'J'J'J�jT�k#s�D05cJb�C�c�Ki�/�=^���������;,�T��eQ�����	6����a�H�Z!MK��>�L���=mX�CcmX*,I&�5S_R#l#p�"��U� ����;�v'J'J'J=�t4h�6J�#�g�a$z�pO���R�
>���X�����)�-h�	LY����,�����1�X<�'�����+��c<��,���Lip�����+~�v�Q�t��h�t% �pv���g�@zN��"�HN�IN	I.����������X��	���_$���]�@�=�6X�E/���k�f���g[�-,D�������-��D��,��"�s��`W�
�}Z�E����W���O���'�'FCU������mdP|����_<��4�r�����������h��
��Ln�����Y��fM���Hh;�-Z�1�=;Q����,DGW�!0@�7��	����h�v�����g�S	wL��i���j�co���K4cwIc�V��y��V������k�Z%x	����[���������(9,e���Ebc���H��s��20B��@@1�a�x��g��������I�v��%������tGDo����.v�����S�T����b��0��`�&f*�E�#��2��g�n�\{��S�N��Ee��r��-;����(�K���q������?����	�\|}�.�.����eG!Eg�D����`��$����K�������q<$�����oa������^���c1��h�6�h��H!��Z���{^N<�)�'� E�8���
/�/�?`������x����
�)�@�3
�L�cwHL�w�Q�*�R����'�p(p\d%H�1RVvb7�R
l �aAD�q��l�C?1�w�H����<y��"JL�:$��'�����|{1c�,��P��I��g��Hh�b���d��X�R���K�B=�T����-�@���H��2��+t&�>�)�� �J1�
���-�7����{�v'zNgZI;�6�����)�~J���g��h�vK��\W-
$*�K��]B`d�//������S>�nO���#_��HJ(�+,Ac�u8�����-���w�6T�k5
D�0��3��=�.om��x>YL9n��\��)�h4,�������\�G�n�J��6`�w��g��H��D�����)�m��������H�<����������K"�w��$��M��T�}!�yp��cl���.^UN/�`��_�x�=��5v����v��-�=���dXae�������;z��tLc����i�$�m�3���x�i�f:���f&#:�j���e1<������:��v��L�,�Z2T��I]^C�,�������/����'���0�(\���P@��	v�x�$q*�y<D��6�*�TN0���:�N��{��O��+�e�!�A���9�������Dy���,������L���{��3GwE�O������������!��Iu�j�:Kb��j�#�]F�<�e�>%��J�����g~ln�)x���4��x.o�t�jv���|+�@�ri9C�m&��kc��@R	����\�7w��W��i�%P����N�����\��Q�%f��8
:B�9�$Tai��*B��fU������i���Mejl�I�����d�.���bGC��3T*hOHu�R��)��f��9��ne/3�����8���`��Nf���h��9:Ry�a�F�T��������M�����Gvs;��o� f�"z�����UFc1n{2*��3�
 In�|3�-�&��1X:��(�Ul���F���x�������u��Vu&R0��D�e�:5����c�g����*h�W//���S���Z=b�%���h�v�(���^���y�B,/bG����[@Sv��	���I����{�P�7ug*��#�W�A@����G�
$�������G�=����Ph�e?l�'��t�?�����-x4E��VZ�z@��ys���{h�u�m�)�-�-(�m�3�T�0�dP���q'T�h�4��c��C�&��t�}!$k����j�����t��t�_�){�'U���:��@@��	"��c��d�+���VA�'����~$�mG--���X�fNF�K�p��s#���;��k���5�_��W~w��v������wT�������&��X�
��<�@��*h�o���}�;xD<�4\�����x-l�M�G$���M=~_��HR��	G��z���,�&�g�GK]�I;���N�8�b���@�+��WD��>�=J)��Ojx~��
(����<�����%����_��r$A��#<������X)���h{8��p�<6O�������w���I���B[+ o��*����:����C�z:<-��~������eS�gy�p�D����x&9*D���@��D��x�?��<I�Lzy�Q��������H��X>����D�N#S��<�W#|�=)�@�����n��>����!S{�F�����rz*����H����~{r����RDK�U�m
<)=��Z��z"1kl68A��&i��(��P���-�"^G���P����x���"e����[g[�����}�(�u�k�Z��w�#��G�Nq�h��*�=I���=�`����!D�D�
�3@��%�}R�����Pj �;�,M�H4��Q���g�
��VBI�������O�B&g���,H�<���������-8@v�m���|����-D���"(�WO�c��/���JEh~
�[0�O��}����t���q��&�9�����;-_�|N(��%�`�`�l�*,	���VJD����"r��|�5���i���������V��m�����gs�6�i@Z����gf�rp��)���+U0E������BC��J��:|�U��izG�n|%����Z��f����OH"��P��w&8]��'����6:�`���<�4���pq�7��������cl�="&���NHSh��)�� ��&�/�L��>!��Q=�����0W��w������|��5����\`^mk��>X��+� U�nhv2���^���[>`��Rd7�#VP�\����N�jlzr%��Q�R6L<
/K���L�������?��/��pK��5I,���1�5����?�tPt��d~����������cCM���m�I�*������
�����6Z�b���>�W7��T�����,��Ul�#�R�|��L��y��K��X��i��@q����)=����FxV_����/C���$�n��cV��Z\� ���������\A�
`��^��__@�Jd/������=�C�}5����t4��`@��b��4{����	�DPC�$��@b��H������
�}Z�}b��/��V�)���+F����l�y��0��0���l%��,�;���'�r�[�*�
"�f�Rn��~�T`�����4'KW�MD������O�����cu�c>����V���11����������,���8�l7Tr�{`3�C�q4P87�N��<�$\{��n��&N�&t����+h�%���`{�5%O`�X��{�t��&�����||���[O���t��S�i$�"(^��x���5mk�	"I`}n��[{{w	6.���!:feu���:B��m�^�o�X�������}!��\��{�8��@R�V����R�0�;>�����Vl
������
M\�(�"h�6X[#S$7U�"YA@R��@��
K���~@wt�m��j!�f�%�b��"=Cl/V�c�@��"`��2O��A�����h�UhQ��������s�����������!�}���^O�����A�8�s�FM����>�H��l����]	W���Q��oc��t�E��<�ff7P\��m����	r �$�Ia���e@I������Ed����[��2������>E�/&U3Lc�)4S@	Hq�.|�����@�
�hI��>���-��WkM���G/���%K��������b�7eZ�=��p�#��<PX��
���p*�����>QG���A#!o����~��7�h^�T����b��z��g��J�����w�Wb�F;����ei^�J���C�C�(o-f���@�`/�Cr�����A ���k���]EI7o�l^����|������@���f:J�t�=���\��6�%����,�k
���w�{M$�GR	_�54M��xt���/�B���`�
f��q���
E
v�i
 h�b��*���'|@J�TY�/���H6����6!�t2��X������>��?d����7���?�6)(��������c~�g�)�N/��8��+��4��Rm��X����pc���S[�����,!I��>�����_Z�j)X���6�9$�@�+�?+
rE�2�~R��I���fR>v@���q�(+�N�z�0�ia'���+*�����>D7?b���\^���y`�������up<D;�e��H�}b��Y}�#����d�Oms6U�b��/�q��A��6,��9�}j22�����0�B�U����Oh����{�*(E��1��B���3�wd�]6������p�S�H3%��Z"���b�j��a@�o��������o��_�����������_��_!��Xh���Z%`�|�3r��T���:���Qr�;�P
s1@{UP���h1+7������~�b�2�<��b�#� �����tI��Hg�[-��Y�i���u��:s��h2%�����E�*��y`��
Jq���l��o�@��yk��Y����*�� ��KB�eW������+G�'����;���t���������z����2����FE_x2S+vE�����C,���+�w�[|���D�����R)�x�z
�>9�+s����S�`�d��@sO)MW���X���,]Yn��A%1�:�B6��m�=����Th����'�YS�%S@�}U�����JB�/�.��Gk�t�|{
��.�E�2m>>������+�k���W}���$
��@�O�VH^"{������h��c�g�B���K�l�)�,�x4G���pG��[��
J�s��#��g��)��7�b�Zm��Y�T�.�x�>�,�O0_�K�N�[�N�
J�S���
�i�'3�gS@	i��= �`-�q��Bn��S�~�f2a��WW�O,���x_�yF��76>
&��l��:����<}�;9�lK_4�����Z�����3M=�-�;y��dP�o����`C�I��>�T��M�e�l�U��@����X�"O�6�q9������`&Y'f{�G�����h?<�c�3Pol
 �D���H�t�$��@�'���Q��b�n���(�F|�2_$F?����� �y�n	���'*_��nO|OED�1��+(��o��9�����=N�b������������<,�D���wo�[��8j���[�Y��(;:
=Y'���
J����E�����M���kM���j3N�	�;z� ������g�E�}s�=V�)4�X�����>�����L�un����2*�pS�_�4	��]"	�x�nckL�
�?(�(�O�IRO����m
 h��V��[
Z>�f�z������������w�h�j�e��r������������������^�����#il)�5��A@���$	�:�����Y����HF�9��)]����zp{{y�e�7������gW0_D�L�H�Iq;`��O�$�h4�V"	��@���0�W�k�	y"Je�})��@������Oh�+.�N3<J�wF�+�c�MT�vz6���x4DO�����n/�!UB)<0+}��D&�7��������������Ii'�����2/�c�q�,d��"]	1c�z���h��KB������V�����07S�7���h|y}��[0a��[�	�{tY���^1��{H�f����T������l�_�!d����$��5�&F
1dF��SaOI�����G��U`�s�o;���]�{���Ox�������7w�Au��II�g�RCj� x-�8���,a�_rs���D���+��>O����-��OLi,];��������Fo����\�E0W�$1�B4��'�����
��&o�=��8���p|w��+j��a=sV-�������O��o�J�,C�Rb���o�x��/�z]��L���N���Va	��6���3�������l�le�����rGB��(��
�����?��B�3Oa��{��t$�����5���oKsx����e��m���rf�4���?�d����p&T�p�&f�9�9)��msb�#���<�Zs,�zn���� ju8��F�����	2���-������e
���yJ�:�O�<_]2��f��r�-��w
M�����T]4��l
M�:�ITy�����dFaK����SE�GC���b������������%���1��$�y�
<��A%���A7`����7&3�7h�k,
y��j
 \;�|�����m�r(�hZ��Ej����V��$^�9�d����y��'e���Djt&t)5%�TIi��7X�G���D��avy�/<��jA�I�j�'�F���SQ�j��#���[aWq�#�=�9��j����"`��%���'�r�����'Y��aZ�������6Q:E5�	�V�B]*u8�u5
d��V���	�$�R����YA�'u3z� J����Ta�%Y%����;�<d!��n
��1��HD��@��N������X��XG��
����V��v�R9��wh��=���#/�s��t��/��_G�j
Q9��3��������D��*(�������F��������:�c#/��`*]�}���h��=���}�,�Mh����D>��������h*C'D��x�;Nx1�T����c��9���cvq9xu}3_�� r{2(�Qf�0�yl
NT��W��d;�^N�"]� ��58R�����hx�yNkp
#�[�nj�!��.��\�E�OLl.=��B�O-H�$�H�V�mX%���@>`ol$IC�ys>{O�5�yR�k���J��:" ���yW4^LV�{�7E����
 �q�V��`��M�Hf2���+���.>]�"T��I%��[�'�N��� ���n�����S��Pdw�
h�&^�����R�}J���0�����0�F[4E xjQX�K0�W"��tr���`Pe��V+�9��V��=���{��=Yp�$r�����~;N��y~�`�,���$�Y3K��a?����Q�6��4N{�4_���f�479�8zR�i;<a��	�[0A@�����ux��^���@�J$�^\p�=[���z-����< ���ud�h�v+%T&Is�	L�ha
w�> ��j+L���W?����__a�sv$P������{0&Ub	�H����qd5�p����P��c��^
��&E��E��h�D���rVN��gm�����G���Qt�1�v�vu��i"(�S�1�d��{2�R�RL�d��H4�A �$�-�����m�v��)�1_�d�{���D�����>�LqK(-�,Z�	?��]�+��UaU��;S�BP"����yWP��F��� �V��e;n����)x�"A�7`��|����[4�Q�am^s]!��!��wGB��;�P7A�`�F)���;cr�vB�&����
��^%����n8G�w&p&e�%�@�u�2��'8����g>��V�����lz^9�
�����K�;�h��	�H����`G%��[=���_@����)�s�Y��S�`�A���$�)6FE/�	��a���l����1�����u�b�r+��_�������������_�����]m�;{93����N����LT���OH:Q�Mi=����K��G��*l�s��O�
O.��1��TA{qC�.�X,�d�X�s>�S���\��4bq1�y������{VQ�<�Kd/(9��<^l��<��`��|�4�G������#�P�Z
M�w��[4�5g�l��+�!����0��l�Lk����)����������V���]1�sW��1�������bZ6� ��G`�q&}�n����~�d	���h�9�.��hZ6���{��T$���S`^Q���(8(���u��x
�?o
 p��-5���$kZ�<4��,He��EU!�T������O_�y9����!j��U�X1�?������'h�5���x��`�y�������/6V��c|[p���/��Q{2zW{-</)�JK����-����v�(��X��6�����Sf���=
���N�,���hb^CB�������np�?�s��l#F���"�3&~R�I��>|Z7������>
�� ��h�v��G7��H� ��}+��h�������g�B�<�_�A��U\B��if2�<9	d$&�3�u��%�)*}tZ�����G���������&�����/l
8�j���\���p�qUO�-���������<I;F'�O�@,�h�;���vE�FlO<�;RaI*���N���p;+z��[���JUX��1���	�`�x�4��{�����^����i{HUe�C9�N�*f)jl��T�`C�'N�Y��&w���'�w�	���y�0]OP�|s���u��W�#��6X��4a�C���S�a�r�S�3�\6�*d^��g[���S�������V��_ePc��9m��%}~s=���Zl����*�)l����]��:����-�X?�
Jp�������vksw��Q^C�5�)�$��?���7��~���a��?�����on!�{2zS���
������*��B�*h��B�2��������-zQ�ok�EW� ��H�����������QZ 	��K��$Y!OE:�c���f��1���6M��QxY*���S�:TY�l�#���\~R&A���n|9��jhBG����2pP�-]i�`�	I���s{���5u_K
�7_�C�
`���GC�[�l.
�/���r��4����%��m KNr�5�� ��[��lw$�Oq|�z�O7�X���>���o�
K�}���������Xr/�BT����q��)fpr��v����K�Ns0|���x;8E��6����������T����j�omp�'�M!�O��i1��������O��z4����c������|0��d���o�0������E��Q�O�$8��4{�R�D}M	�������1��<���.�����h��ZG�B���~���I}�����S�!�����
R�����7�Y�l������7�ow�#���BJ���@`);v@�v@
�����IFI��A�M$���o��H�n����LFxA�)�S	���|�aK$�lQA�'��bQ*�7���-������5x��_�B���+�:����<������Q^Mn�\�I}�g�o��p������s
<��Z���^����}���l� ��#6��:}�����<��wlj�t!��7zH�VJcA�6>�D��r;�X��d~X�kOe2��fo3����]}b�y�4����/"O0�$����k�����)����������%v����7?g�Z��Xe�����G����U���l�cI�#/����`�
����^�����'�j3������@�-���:�Lc�xf;C�"�
��7�O��������S���Z����)q�i�r�X;��~�]|J+TI�����Jd���?�x��u{y��)�vWD/r�b��%��UX��c�E{�5�t��(LO��]p-|;��v�r����i��0
�	�)!�J[c�b%i%��q���
��j�����$�M�`E�S���>��lf��4��H�fLD6�8	�ue���?�b���M�u���/�q��c'p����]�T���]�tR6�����mU����as�$��X&5�e���IO;��?���_W!/�#��@s�i9E'JW`�Ra{>���%���WN�����G6�B����������������2��1�Wj~Y�~���*]	��FA�\�J�P�G|�r�g6��S�9fU��H
;?TK�|�}��
���Bh*X�j��h�L�.G��)���r5b�Y
�����������dT
FX�V$��8u�'�o��|������?r A��m��`Zxf'E�[�C�fR>���t��2�2U*@�����	N�Ze�B���,���'��F�MCB6�?���`&0"�S�%�GFM���q?)� &��)S%(�)�S�"�mS�,�k��b��gX.���g_���04ov[l����p8��pS��������!8������u<A�8/@�B�%� ����H����^4���.�<�A�����r����HJ<����	������?�\bm
 E�������G#������;�B���cN�
���Rb]�j�j�N6����S6S�M�1�#el���h������4BB����^�T��9���h</����������^&^y<�J��89�$��i�q�=c��I�?)��k�K���qHf�]�@���H��WD�pXL�y�� pVj�u�-���gk�As���#��*�Ti����I
�4%TL���Hu2]�����;�'��V�4Y�S�Bf'0���
L��D�$X���>�G,���$��2�=�V� j1�%`X���T�up(i�����{��O���8����}�[���C�Q[	%"�s:��GMzn����kY�A9�5~jmX>������=��s������K���0J9�B�����U�7h
��8�	����9���4�r���g�'d���Q?c�����k��3����.���H��(ftT�g���e��\�����c5����TDv��-"�X����g�6w~KG]�����7�>����3���'�������sCJ4A���2�\�����O;�9a/7ZP����K��&K����CN�O�I���s�KwkxzX���}���wl
������g�B������;R�1/�����Ph��ql�����	S�j>�=d4�h��4;�dy�-,"�����=����K�n�CQ���]�d�.GX���>��k6|4w�E�Z��+�i�,�j!�����[��e����������>��IR������>��M�:�e)��E�3���B�����
�DS| jS�M�Y,1Ca���C�c�����h��o�5(^����WQ<w����)*5���{S3����@�0��8.�.AM���9N�N�����;�����B���[��`6X�&af�x�@?LOPn)�
�V ���y4���|��+��h�'~b	Zl/Z)��{~��	%�}jlt����h�s�]S@	N%��Z��5��(*�E�O�@c�����#vlUP��4�����$�b�TLC�Nv��uy�����/�����7 �]���;�O�_�� � 
k�NR�E�x���c��y��`O�
�}bo�k�
�5d�2_K�ZOJ��j����<k��'�TO%���I��M�z��h�J6���@r�q���|��f�����!�f��j�:Z(����r��"�n�{2H��T�'�_�D�y�^:�
���4���B����+������p,^��TO{�����o� v%����������}R���pd]l������%������t�^�6�lo*�A�(Or;1�
��`�>�B��LFy;��6�V��xH�]T}��u���>�����9v�o�T~h#@`�
<���m�I�U��hP5r'�Bb���VjN@��3��|n�
^tXP��?������/?�������/�<{��!��>����f������M�x(E�NBMB�$|�6�:$� �F�
l��L�t)&&b��
K)���XAm�The��-yeNO�	I]:��D�u��L=��	�Lk{�FWMR�H!�%�2���60+�?u�p��fB�C[�p��q,"�?��h�E]����/r4+z4D;�������cykgJ9�|�;z�������D�Vhd�$�j}�D{\j����GU��2�pt���� �S/�G��q^��dy�����)K����'<l����~��Z�@������fK)@#�!����A	��(�T�v��A{?4�Y����m�'Fjg���E��U/-a�d">�����FS�K$���,�m�}(��EG�v����f��_��7���z>�t���?�����_�����_��/���?��������_ �O�z��J�S4���.�>W�g�������a����O�>8�BN���b�Pzll�T��(#����V���;������,��\��$�,��i�P5�i=�]��*�>)����LM�5����8��iei�|��J��
?%������S*fS�V���f��P���o=+;�hn���<^���X�RAO+�H�����r0�BN��P�.��%�|H�Y����,����i7>�]?6����\p���Il�^��;(����9p�c����mF_�PG�^���a����g��<�=����4��)h(T`�v�!���|�Iu�����}�v���Z:�h5�����QT�gpi��p,��Gn����n��/�#�}��
���_C�*h���61_�����\�S\]��I�������Gs��s�����`I4�.��7����l'{������qx�~4���G54��j.������%�bN�-�,y�mm�6�1��������S��KE��e"{8qJe�D�������2bs'kh��O�u0�d�������d��5m
|oJ��,�N�Hp�M"����"���B�|���J���
��8�B�v�.�*�����S�vj���A����Jm�o�V3��D6`�mA��U6��tw���>���T���{����_�^��/�>��������L����6��,�Xi��-�����Q���4w$<��1:�1�T����"-�L�),��IbN�#p��`/@m���
���l��|�as�$3��}��0��%����W:f�o�T�X�$%a�Ged�+�U�%>�vG��PyRa��
L�o�����x��	�?��\���S�h*��u8�F�w�fJ��b���kW5��k�j������T������"b�����X�����{�����W�F'��H8��O?@��*����@OHz�����
��w��8��@��-�f�����? ���~�?�)H���E$4l6E�7?�Yy%���x�u�1�$v��r���.9�C[Je{�Z���!1JM���@?f(l���O�Z,%��\��DS����D���)�k���7X��a���M��dn���0�h�[O��v������z'�G#�b�E��f�W E�{+��QJ�bx>9�������p���'�%\{�S&5,�����6hBj,�����z��< �"C��b-�J$%��2�o���l�)w�c��}1dQZ_&���R�j2��	?k�������{�>#�weG�i]e�\����pZ��h��+���h4�����mF�5@�O
~Z�����9�Mo�c\��	�n��;@�;(��M����C�0����*�i-���i��4���ZQ�<�c�IY<�������xI/��a��yZ��%=��jxw�E�7X���4���9r������D��!�yGc4�`>�������J! M��C��-���3�U�!��n�0�
~zN�e���k�k�����7��R`	4C.�{�D��'�X��Iqs`]Bc�M�Ze�H�<:�vq��h��c�5�q���9aos_���b��%��>����.�.�����6h�`�xS��6��R�qM\��&d�\��1�NKn
 x!���h������x���E�`	�1�5����R���e���g��p4yL�8����5���
���8�`�7�����+��A��9��RA	�+0u�0p��N�O���w`�n���������n8�����+t��3j!�n��I��3i<d�������.��1��������S�uw5t�Q�����sX���wrl�~���d������/@��U���J���5{�D���+�$�������JE����XK������[S�w�5��M��+R���o����R���K���6X�k(��~v��B�-d�����Oj�����,���{p}�{���Q_e��XAO�����@���$�;��u�rp(q
M`�f��T�IC	fD��3�E�
*,��e��I���'��&��tO�	g~y���y�@O���Kd�U��`���,�`;���Mk�'�+��p��>z����U�_g	��ES�:�����:6X���(���0f_H]�!�*��I���D,n�$.?s���qH���C�� ��$F�}���mCM��� �c��,y��!Y�,U/ddN�P�uWa�/�~_���m�=�`���g��}�c��=��t�g!�i�`	��G�j�"���(V�a����h�bt���u�F�ho�����*�dm�o��������@b�s��7�����5`�����~���
�����=|1����:�J�v��ir�/_�~d�&������c���l������~>����W��Ld<���S�T�\
���gk
 {!l�1����S�0R��cK��R4����
���c�B�H'�NVE����i�$7Og��	�[l)��D�DUo��n��|}�f�h���������]=H�����@��'8��T�i�W����$Y�u�[0��#u�yr�v�Ez4��A���^m�:�d�)��
��oAG�Rr=6����dciH54E�����K(E=�
�u+����:W����T��I=��V
�26X��X�^M�W���7������G��yXP����y �`c�:�}r���7��Iq=����l��\����9�M4]��S��^�Hp������l_D)���I��B}54�i�l�@������H0'?���[����&��c����N�9�"z��Q"tjG=��G*]80��F�l)�(��R�&[U�{�u,�d�]'o���~G��~A��?���Hr�}&e�������i�cT�	\�@��m�H����K�>t�QQ�/�/�?�D�K�w����d.�S���H"Jy:%��s8��u d:��f5x��PVL�s0�v$��*I�Z�/�>�l�:���
�OR��BS@��o�,�3@�jhj'j2j��I��o#��p�Z7�h����|�(�9oh�a�&Y���r[������h{����x����o���
X"��I�[4��1����_VO���@�bW��x��t��c�/�w��M�c����|�����c��Y��c���]�/���`��J���x�w�z|����`�M$}C�Hj�����E�H�H[�x���$)�%�� ����4��PouOR����`	�5;�Y����&�A����9<��$��D�H1�������'�'�OR(4hF���:��
���}�������E��m�s��z�����H�H?K���s	k(�O9�\Kp%�v��K����(�����<`��}Z����*O3	�'�qZ��%eA=[0A;���TP�JA���:��z�-y�m[:r��j���U���@��"`Q�:�$ ��F�W��4P��e
����I2����O��`+�'��Q��b��'+��������������7�m&��e�r�QE:��syA����H�R�m�l,����c\����}R�D����
n/!f
<A��V��U�l{�Q�H8����q��9�[-l���nQ�����*�����S���l����-��`q�0�'���p�M�b7`��Zm���~����h�:��ZBIkl���=�	?)��g�[����c��5t:L��)j�����>f�i7G�t�'�Q>�NF:�r%�zV�j�)_����Gg?��qz��
����~�]�)��	/����I���/�����x�j6y��6l%#_��G���O�"����
JvT��Cl�y�wH����;Z�����I����7���������D��2��~j�:sh���n����gO��2�2?*h/��$���	��)������:��R�������KPR���n�=T�<���i����	�#�����k�E�{��U�hN���T(�����`Sqo�\��Es�1s��ij58���,�20�Q+�����~�X3_�K67*�ZlL�t�n.���?)������^��PD
M#�b�b�:�z�a���?L���-�O_S {|1�2����(���&z��&�wnkz����}��7�)M��>[�d�g(�^����Z�|>�bn.�{�?O0�����4�x+m��po���S���m'���d��p�CO��e���8�����Z=�����L���:����bc���D�m���C���_
`��n�.��@�0��H�BCx��4kd7��x�;�Vh��o�3���[�
�_�H33��T��>��VY������N��n����c+�ShI��v3���Y�Vh
�I2l�
�m-��{Y2��m�/�d�%)�|����	n�2�������S��'����#��"�~��h�d���%+h�/��!�Aq�*;�����!�}�Q�a&�I�������%�H���m�'1Mzd)�nYo�"�����!6�)�"y0]0-�L'r	jS;"�KJ9��b��'�h���7w�!����Z�b�=RX 	��H<���>��d*2��m=E?q~�����VX��%����R����/�����������:d���h��?�[����������`��H�ocj3���n��,��]^Z
���qJL������b�M����'&��������������%{4D;�;6���Fm�=q��
+n�qD7'~e���U��]�N79�U^u�t���2z�~�t��b����r�S�Wq������7�����MP��n�������J$UC����tkJE���r@�&I;Ys��H
q��e��{�R�S�M�i
 �h�8�����y~s�#V��{a{�����o-a`��IF�%�GF]���\Acm��&!���������X��3��%��`GA� R�.��v�5���C�*[TE���PC}���D��"�����`]I%!�s��t�7sX��Jn]:����f�b f��������JZ<�����
������+���U�Y�
)��^8R��|�����Z�����wZ�2Ri>���`����f	���)Q��.46i�:w\���:���'�'���t�;y*Z�C�vEP����CC/[���/i[�W��V�D�_a�2v��������D��"=�]�������'}9��X�'���0G�ho���5n��!F�)���e(S{�9�6��Z���9����|��O�8�Q��tT>����|���g�V���D�W� y�+,������'��*[h��x���������4�����
���7w�1���R�
ya���P�	����5����������>�����98Ge��
�,�k���`	:�5Z)c����,�}Z���������M9dw��r.W�FD�$��S�`����i�uMu������o���9�B'������l������'g����
1d��]��Cw$�! �s��I����,�I�1��K���>K�1�"x&�=1a.�HvI������s��2b�ao�M����x����T�������=�g���&]E��LS��gO�����y�x�����C1��@s,���HD
����R�'��_E��3�k���5\�R�	��(?C�j6X
ui2���@��z���9q�$6��h��
�����P���n�� �2����"�$+�}��t!�Tzyq2�q��Y��>(�b�/�)N��5}����U_g4
{I�CLc)���������8�H�I�zvz*����L��F������EY(4�C���&
$��������T�D�)�~����EY������m�dMc&���)��i�GC���3�vEP����*�������������1%��W�*s}OQgf
NC�9�ct�:�N�'"�x,&��=w�����
J�	&b�3�kh*���2%Q��M����@�|����Y")6~'�trw����R�]�D��H���'�DSK�	 a#'H>PY���e��NG�{nD��"���g�k�������Z"	����0����#����s%�,���[����h�F��hp���T=�z���1
�C�$��M\�x*x��I C�]����s��8:Z�\���Xc��x� ���6�:I�SdO������54�GeEE��%V������6�)��r��	���;"�\|22J*�A����g~�]�u8A��Z���#V��+�y�b�N� �+��HUPs�[����$-��X6|}�=���*7�v��@��dSl7�@
o#:c�n�D�"��S�s����d�'x��F�NE��$���,�tk��M��������6�^h�Gc!��z��hwE8
�1�l��1��
���9�Ro�E	9)�= �_�L����x_E�"`�
JQ�������b_{����<Z���QD�38����.F����rp�]�
<��1k�s/3����2����b.��Hk�H0
�ii����\�I�@3�)���K���`W
�����5�Ax�H3�9]�7�}�!�[�����:u8I���@�1��a5e<�T��N{��/�1�`��IS�2�'���+��,3X�z�]��*u��M�nm��C�RYc-�20w��vOH�V�3�i;�xHXOV�*Z��FS�6���`�[���2D��6
��@����Gp�_O�X�4�
���a��m�d��71�����q	l�E���s.�%����`/�s��z�b�3&���K�����&>6�T�l������;�V6���������i����m�/�Vq��d.����?�T�
Kq�����Q*��P�w�FH��W��]FUSv,��90�	Q"S�4��N�6�G\�W�����^�mcv$�O�B&�2��:������Cl��L��.G���sL��I�Q�Y�%�����wX$h������o���p0���x��`�+�� P����8�HR�s�6�D���;M6�\<�����i�� ��������F��%8^��V�xI�L����K��b�������U����
zZ�z��M�U=�>���`��0�D���D�W��E�F����8�B��p���O��D�W%�*��a�����M��:���qO�����)��\����U'o�h��EPF�����d����������Z���M�H����Q$��V��i�+�q�>�=~{?�>�n�eG+�aZF]y�X�yPN�e�9��f��I�|��.��v$�O�����pr}3�\�_a�NwE�x'�G����(�����M���Ab��?t$�/�d��H�H�Hw�t����H�H�����\�[!4�Y�Qjl�|!f\3��'��
�O�N�Ra$+�i%���Ta��G�����LI�^�
�v�����$��|-�+v����	�S��S�������k
}�'��*�N�a/��f	z���]_���)����K:4&�u���N1�;zI�(�g��)8q���V�D�WVQ�$��7�������	u�����[;�����svqw�����	!��t�HL��m��v$�� �t���D�D��Ij��sq���8�������N YM��s-�����3lwD(���WL.��}x"}"�,I������(bx^�aM�+�������3�r�i
��t�R�\1sS������o��^hiY��BP���O����<�S�?��pZ��w�ee�d<{/����gYLb>�l
��i���1O����+*�o��"��DH9>�eGA��J�ql
 p���X$I�'Hn��{=w$��Sp�Y$�[���*�$��6!����P&�d�4vEn�=V}�LOY��&�@�J�O�:�
�������K�(
Z�h��ZA)�tr����Di���`{��UfsUA���������S��$]Z�r�v�v$����p>�_�\[�5S�B�����Cl�'�`_�}����q�w�Ijp�G���%9a7%�o�p:�d�$�9��x��%2��cl�������=����������%���{��,�Kq�@����)�`o�I��H,�!�F�����R�a�P�3�x
M��@���+�z'���DGm�H�X����<�4�'Z��'����������I��Y73�E��@P���D)�N�u��)XK��qUK���+(Ep�C�9�}J�4���]���?�������K��������s`FF�������p4���h��vQ�����WC��Az��"JYjx$<���d��T�T��c�
C�	��Hi��,Je�D�3;A������:
#�e �w$�����a��{�zG@q�Z�%��h4���n�g6-�IY�-�s���`	"D�0�r��d..G��k�t��{R&��ziB�Q�(Z���/�:�����H#�u��R��!�]�<�c,^��O
��� 8�#�����$eu�TPR�>GYXZ����2���0A��oc_���[�y���������B����{����`_�H��+�,�E������)~�So�^+p�PN�VJ�w ���� �G�U(��������g��-�x����"�Q�����	�{*�Ix�i���e�lz\C�.%�h�bln���uPN�t�B�5�����&�:�����LF���@a�1?Q���Rt�aZ$���W��'��fZ�l��&"=-��'���
�!
��^�!j{2�!��`2;G(�
h2�WgFEK������U���=(�}�o���7D�
��xym��r<�8m��7�&�Qa�������h������/�^r�����'�����tO�[O�MA�&QNAvu8���������)���C��o�%������B^�{r ������54M�a��[0�Mj�^���
|�b�yt�M��a
<A���������D�#��s��p��'b�U��	^�Tb�A����5>n���(�>�����:h��c=k�h��68J���r=���Z�
�iO�O��P'\q�����GLz>YL�
_bem
<�Cs��4A�c|��4������V�xIw���t�N������G�q���z��H���m�������g������u���JRmCyU��C��P��C�S���Ex6�2��@�>�-V��S�EI�x�Jn�i*�g��Q��'�by�9����c��,P�#'OH"H��=����I�
g��Tj��l
n�+5�%`��
J�(�1���o���7�B���WX�UO������">����or�����>�)_����Gg�>���H
�z����"��\<���6*���"��:X3�I�c�d���r
zv�x�T������F�JF����*(Y������"�R@2W��/e��z7��BRL��-��$���s���Wu8Es���]A	z���.�W�D�O)	|�`	��������d}*.���o�^�-��aR���~,:\w�t���f*l���������+�[�#P�^y*���� �c�I�Y	L�n�	.��\�����>(�����������3C&�q�=�������3A7vt�y�-6l���������
�y�R�9�x�G���M
���������[�H�L��BF�`,<�i$%��J�F
O<�o&#�����C���D���\�I^G��@�i��Mm]D���D�DD�L�t����A��yyN������qzBk�X�$Y1���>������xyq���_|�����G?���GN	�	�q)���
Jp�m���M=��t�cl�4�m��<���b*y��z��F`�eEz0X��ES��$6��m����CaB]�J���x-G�X�JR�yi����Ib1~�fl;���O��B��j����3:}bWD���������~���n���=Y��oY]CS$�����xl����0�u��AP����p�`��h��a����5�<K�]j��D�I���d�m�q;(�{Q��o��������O>��UP��^����	��b��+(�zy��g�%x��2������'6O�]�5���U��04���o���|}�9�}BK��{���Iu������=Ec�_���d���K>�M@�mf;�b�*,��.<7�vGB��?���X��
���j2��_���vDPe�z*�Bl6P��X*P+��$��01��R�D�$��
���O
�p���	�
.GCv}3�<���KT<�,0?X`N����V��l�JSh����~54�	�����9��\��\�n���z�������k��#�|�ga��Z��	��w�Bjp
�
L���������^d�v���)��4���u��)��d\�*�d���? �������h�v��o�^��_���O���!��q�������l%���`������w�f 2'��&eg-p8����GC�����`�r�J�3��
�P��;��vx����5���RX�w5hc�%e�����/�7�M�|bg��d &p��������\cwF��8�U*&��j�����k��)��n��J���E�1]������7�	8��R�5:�yZ�;����3�x7$Sd_�}�N��B��2L���Ji��0�X��xg������-�b��Ee>V�WC��o'��n��w����<<��K"�����s>Gu�
�DEw�5!#v4��p,h���(���umKTTxa�x��K�����O���z|ws�FN}Hi�j1T�WA	��
9�3���h����,w��q���(P�-�$�E�RL��B�I"������H+���a�����V�=4�����	a'�����V,��h�1�����h��A��i��CmW�����g�J��k��PF���C�Rh�'�O%9��;+�hT�BE������]��[��%_}�Q��7�GgY�Qh���������G�����j$�bS��O���=���X2ZN�H�uv4|�)3l��[q4D]4B��hBy2vl?���/���^L���"��n�i�1��XUl%��}�O�;�I�O�#��iKd��B���
�\z<�e��Z�^��Hk����W��l|7�
���7��R���.%�U�s���'(#s�a!�
J���t�p����P�H����Kp
�����.;��Q��.)���@y�r��^Xw�G�1����V�|�7&�ABeFC���J��crI>�T�JS0�dP���HF3��+p�����r��>����0��_FX��]�p<�;�b�������o�������w�=���h��$CK9���`)�����c��d��H�C�T�-�H�������h�������ZO�1�(�����_��R�"����������E���$�w��3-+�=����H�B�xq�[0U5f����CH�dO��=��n�{��A}4D;�v��oc,����Q�lO���4�$���F�PMl)��	��'3�`������9�d�������c�.<4avWD�$?����]��l>*�����$it8����`�B�
����{��t|�������Kh���$�:�
<��5���2a	J{2���B��V����	�1{5�$�1�x�7�.������+R�r���z�T��4w�)
�(�JtJ,������`G��r���u<�������<-B���W�	���`��VM���d��U�����9�J0��(�UU�(P�g���������3%~%�/��}������>J�7�eZ��t�|��G�i��������X��,������]_� Z9��NH��vrG�H x��#
{�
�
�vf
�>�Hx���#�#�`�~���Uj�%'N�DF"I���^�|P�/��?%����bx�� <���b��%���.|S����>:,[NB��-�G'j�T�����.1/x��:Z�w���dP����^�%��o�D�pV�^|�e������)]���3�v�M�-�!1='�vsH��80�FQ��	E`o����f�c�{d�B������������ �=�X�g$h���&���|	q�q4�-&�8]3��������L�v�����Nr��z�2L>��:���bDK����|�,E��p0���
|�����;_�����!a�o�q@��O�����{�=S��!z�Y�\��4i|���
��7�x<��9����4�z@�A=��6�������hi�B�2�M�
�>���7-J�b����'wy=����������E��\�����H#��IR�����tE=$���SI��[�
��s �	�?_A)�u���=Kh���^�y�5�bVP�����k���Opkh9������u��y/;^����	���9B�4��-ZA��`������Z�3�gf����%�y.M��S4�yJB(�O���I[0���b��s-�pc�$yQN����nr�"(�$�P��'z�^�w@SU�!��8�����1j��jwF�>���o������-�G���-�xb>�]�N�����@o�
�"M��2Q����t��3�`S�2���d	Z���c��Nwk����>�`b�*(Q��l]��s���� 0l�8�����=E@��e�q
Nf���T��x^��6X��k���8���`��IR��X;KX<;���Du�-����^ x�\���P:j��'�a�Z�6
mJ�/�n�m�0���C���b<K"J�5�n�'e�O{�Z�Y�(��G�i��9�0�������<�f�1�"I�I���kPg(�{����o�!�2��o~�W�4��fp��:������I6
ej� ���*v��?��J��tm������q������]+wE��b�2�V�\{2��iH}�K���=!����0��%��X�Rl�����7wXBy%8�^��w��U 	�a�`�G	m��Y�Q�#8�g���D>����^��d�
����(�hnE�$���A�h���4�P�/���,����)�S}�O}���D��\/���x�Q���5_(u�)l��{�QD�R�U���X��x��xv�h����h��s���=p��:>��bx~5
�
���gK)V��_b	�'��2�3�8������k���!T�7N7C��W�9]
��n���t7���/Cv?m���;.P
3[ �%ws�?����<�i>Z�j�HsOF�_���f�T����	R��i�_`�M[t��>�H�"���j�:��]�O^G��+��[��u��9�:��T��#�b_em�oLM1��I�+(Eo2%�vo�{��
�2G�vy��J	wh�VAp�����	t<������?�\��+,��eS�l�����^�������Y�m�&�m�������,'I�I1���5��r.���
JQ��E���!f;���}+v>�.�H� ;����^�W���)�2�Nb�����lI�����n���K��{NWQ.�������T�:���5�%�3"#�����S�av������U\r���
K����BK,
|��A]��f��|=S:������m��B���+��9�]#Y�.���T���5�"����O��������}��������'���%3������������-5G{H�B�,�#�[p?*���2�dup���|��m4QA{��;���g���h��U�V2X$�o�BZ�i����FR��m�g<�W�ct��:�F4�	��D>�G�qc���i)���PF2����jx��0z
<�*��54���NS��^�=Y�����Z��\�GC�H6�]`
|������|1���H�/|%�����k��B)������(����k�C���F�H�/�j��P�T��9�������n)p�*�VU�#,���WvO���<��l`O�����|��v4D;��;F��OtN��i����Q��k%���e��$�j�LR�m���g�J{��6���]5��7��F%"�s���y��q�_�}q�q��2JRN��{��>~�����������?��'�}!��J���\u
|����v����Y���\�~1�����_���>�7��I'�E�������y�"�������}��N��O����:w��Jq��9@�n���Bk�]����x�wP+;����V(,�3��"1����R�b_�}�@���On����{+(�8�ha��Gt{5�.3W<�"J���:��G����}��kj��*�Ebt��H�=8we�Osj�rS5Mm����9�&���$�b&���%�g����d��Q�C`��Y��#�|'�|>"3WH�e��e+&A��$2s�iF������C�[������������������`|ys
�; ����AV����S���8Y�I'}�T,4O���#���qu��9v��h��oa��1�����&�@��Z���<��BDl�� W�'���ga\T���GP��e�@q��x���3�"Nc����OE���b��b�'�E�C�2[,i�
��/� ��8���K�8wGF�4�����k�����G�cS�K����]Ta�g�+�}��>���'���+�}���~F�fe�T�,s��.�G"��5��gU��Q$���E0����/B�
�j�c)TH��'�J�����P����������92�:�@�	���)K����^����|G� ��SlPD$��>[�d���0������[�����cn/sQa!��%�@�d���rsK��$��������.��=+�}��0;v�� �����~��+_���M��o����g��S�����4��>��������k�}����29c�Vo�g_�@z�[�������%����m�����UAiHe!L�B{���n)�4W����������T��P��[��_`�_���} �p��:W~^$_
����J���������e�J���i�b��
JE
��m��m*�z�35c�,^�|.^���1��O�$���2*>�b<O`�L<
/KK
��\^lQ�h�=mo�w/o�^W���0���O�P��GL}�`	��__
?����e�7������z���1�O�|�w���"���f���D��d�-�'�T�n;�(:p#�H��
��7bC��*�OE�-�U:U�;�fx���{�O�Li���V�Gs��a�����>���[|W"�����{F�>�*Q�:�o_�00?��.��(:����?�,��%s��^��@���f���+�1���b>�|��*<b2?�aj��}R3��f�L0a��+�xyrl�a���.�f���VQ���(;(V�s	�,���s���)�G6�B�������d������h����HQX�KY�<��h
����QZ���NXB	m��/f<�v��'~�D�L]A{�
Q�����f �
��W��hg���	�pW���l�}1��XK�\��A���K��8��'�
��������kj
�]+�$����h52�j����B�R�1�o��;!�C>��e����� �I:�T	���{2HB��'�A�
������x���)�������p���E�8�x`�c�J�4�����Xk�������
P�e��6s���{�@$��h����1{�Sa��5[-����G���\�[�<�Jw&�%.��5�Yj�?��P%_~����O_��,R\{�3cV�O�<}���h�����
����1�E�#8�"p�a���� �����<��X����y4��Js��y&H6P��vVP
��csG����<a)s{2����O�3��R<L���x�5�r>�n��T�<��`W�MB
%Er���
�{�H����$3-<[����	=~�]|9N�D��plb�����7_�9-#[�2e��j�in��t��?5<I�jnl
4HU`	zR|sy=a�6��i}�����=���
(e���:��\!�������N�L4Q����<�-�g�B�+���~a�����BH����q"��%
�vl}lR���L�r���
K�^!O��E�p/�9���������p"g��_")rE��rXC�Om�fKVP
R �~�='u��h�e��R
,���'�'#_`�pS@OBV��g��b�&h^t56t�y[�������������}�
����K1���
�=���~pQ�qTo���K�h�O��ws��PE)�8Q"�����#]}�i�G��
��2���Y���G���������g��!�	>��l�-��m����*���)��(���Z�E6��*+���R@���3):�BG<`^���C��D�O�&S�����O�t�@S�{q���x�U���������w�k�;B�o'���������<�9�`{G���H6��h��X`�����a��
J@j�%Z�8�F,d���
��>�C���4����g���5�OpE!H�����o���g��X�$&��}k����2�=!���(�pe	XU�������4���]
�By�xA��[�l�����7����zp��?a��,E^~>�f3��\3`~�9=~!�������w������+�}���a;�hp�{���
JE����PD>�$vXP���8�����I�����o��`,mOE`6���UIpIQ=R��r8��=L��)�	4�#��8�K��v��B����f��8��I���vo
 (���`b��Of��!y[m�����P���^R�|	������	;�	7x��5��u\�l5xo���`���J��\���Q.Xc��
�}ZBk���?|�U>���K�	���J������y����REl�e�i��u����o��xD3�����i��!��l?�����x��*6V��~�6����k�&-�$���>!���3�(����0�R0��i�b4��L�*#C��R�V��<��>?._����i�%����9��,���MB�$��{�������2��n�m�V1�6a��wPN��f�9+<,������]q���u0�pdo����E �����~
Ot)�v���{^X|��S����}j�|�,����W�y���'g[�B�
`����{0�-��n�u{��i^L;�n�����C�zX��:��\�:�� #��j2�4.;�'�~��R���j�������M<��u8M�sn�p@Jo|���k���%�k	6�= �l��e& ����G�#
�����gh����0�`����o�.�#���;(U,������wL9����,��B�#�7�����
����������,T���������,{�@5�!]�Gp�A�$�3""(p�w$����js��G�O������e�)�F.�\E���K8^��S"�z��<IVJc��������]�16Iy�s�Ol�����E/J�1�����qws��n��T���E�V��������x�~�Q��-)b�W��P���I�F��lik��z6aS���q�����Ki��4c��r��.iY��7��ve����\�y���Cnh��4��
Q����$�Bt)u���Q���"�J<@S�ia�����}�\m���=�$�d�'��0��������El�	|DZ��BOf����<9��������Gsq�&n��{s-��N�{$7���6,���/���X�w_�x>y����%�@�S.0�XAIj������x�L� ���1/RO�?`���KY���|����D��B]O=�	���������U0Cu>��]�c���Sh�)�'�m[G�������/e����H H�Uq�3~b[��oO��?Td$S��+��}�"�F����}8�j��G�F��Z�Q����E��w�h���J�V�[�aG���i|��
c-[~o�d�n�/l��-�R&�����q=~��o^�^���5�������%���c�rW�c/6}�0��K��Q4/�?
d��R%�@����]�V�x���B���H����IB� )+����h�f�V`��D�O��'�������)]���3������s���:x��(�(�vS����&�l��w�;��D�H)u2^f�������+��D�D�D�D�D�D�J:�X�C�O�8Ml����2�Q]BcW��|Z���(�(�(�<�'u7�^)y<����T�^�T�-��u`������'� ���;b.�uWD/o)������<�rz��G��~q���)���������;Q:Q:Q�9%O��XU_���q�/N�#h$��f���z*�����5�d��~
�K�z%�������g�(���n�l���o/c�
��wDha6_����3B�GZCS�2�]]���V��6�.gW���u����d_H�D�B�"�����X�H HU};��:��������\G]����B��RA�\���_��)���|��|���`�x
��H���M���L���l*��KW��GX��~�wm��(�&��.�JT��m��P"{|��G�����%l��J������e��O�DD�p�n�$���3���R��:�#7��fQZ�j	q=$������'�TdooF�Ww��������mGB��sn�`o}����}��N@L�d�6��W��8;����U�t'��;����1�R$��#s��e������z��y3�P��U��c�6(��H%�}J� 3��P*���t*���ux�����_��K�W�$h>���cGp�]�
��f�>���k����x��)�����r�y��]��O��A-V+�d����u��v03�D�H)�V��$^�9�d�k�gf�=)�Wog��up���S����-����S��u�w�.�$W���;z���8dr5�����5$x��tfSG1���o�^���D�|��Z�&QN���:��J��p�3�?dS@������3OE3���	^�83�J$I��}I�AWxS���KmD;��[�h�p��Kj�2�R��^���:�}rN�Pf�,��������r���x����|0�)�����,TQ���' w=�����$�-�H���6�fh�p��
Ai?��������R[���������?��h8�;����\��|u7_�\ClZ(��$I�Z$o�������)��D�D�-J��������|~����Q~�N����z�#����B^�RV��L���O@J�f��$�
!�oZb^�H��OBM��JO6�X����0�����������>�/�>=��3�]%[�����e�
<�Ov��9Zy���;�U���O������+6*�/�j5�<���O��h@�w���#n���+�c
M�%��q���:�B�
�cU�JT��w�|�x�5s!�Wj��Kc��� ����2��c-J$��a��kb|CH�D����+�=L����1j������dge�|v������p9� R����.�@�R������R�Hr	�rqMT#n=Q!OR����{gzL�\��I*(E1�����~���)K5��#���ql��
[?����%y�a�^�E0�����
��7p��E������'�(n�7��x
:H)�s?5�
�+u�t���)����� j���|�'����N;�P��h���Aq�g9$������xC4BFK� ����dP�IOY�ql
 K���S8��+���H���|���N`6�"|:��#��{��l![��m���X����q)�����r$I�%���NNs:���������n�#
]�Kf��������[����. v���Y���]����?(�o��R�+���z�_aM��f�����v��a��S]������w��I��k�P�HY�{�%nt��<��@��W�����Zm0p�G�T>�<x���f��Y��T,�H�
x�3������=����S>���E��,��B`��o�0���������`9�>���ubO�&��U�=����hCN'���_���dZ�I�����2RX�Rw�% |��
���B��j�10;�� B�'�l0�#2I=S���[p�p���v	8����)m��'��N�O�ak0g�����F,;Ko���	*�[4�gjc�L����b*R��_����n'X�D
e�g�)��MT�gf��5��E[�p��`��5�L�>}�;����%��L��X_���n~oz)��[��n5/M�c��a��ST�y+��[,���`	�k�~v�n:���U>��`�K@x7b�E����%�|$vIU��M�$�j�	>�\��X��J)i1������H0G�����:��k��C��U
ex2�!�2u�`)�&c��H,=�����48�x[$1�r�����c��6��8��RRS��[�:�.���������J�`��� ������:@u��>�����^����BH
��|�[���M����:>�������?�Z�
J;0�����.�����h����������<���l�%��g�x��q���7��'��b�O�4 ^
P�?����x��������u�	�[�J	_�Em�����";�xT����VQn�;�n���g�r�k��4��D���1fVmR0��5"N��|n:������+X�7�`B>M����l�[X����{��"�4�.�J��h�L�u��%
������|�o �*�H��H�V��c�t�A��Hs�'Yt��c/?y�I�\�X���s�s���HNq����������k������H'WW����������S�A,������.�-w�\�8��D��u���&`�pu�*Fk}�`���(Yj�um��>��7��)�f����'�
T�J$�������D�Y6�+�h�K�ps9z����L��DX�kl�	������(��Jr�����n"�Z���l�	Z���wJE�D-L�>�+��BYE�[x`�S,����`I��g�W��_���m����LB�N���8����gg����h�}	�6=2��W��$��P��	&��i�p�f	'��&��a��%� ��#�����.2���K�X�RA	u���2V�_"�l�^!	>��5�5��t1C���/������2:l\��8�|xk0m�������m�IT��N]�0:�����_�����Lz.Z��*��>�����/�[l����dU �MB���\�-J,B�<EE�!�'����(��D��[����5�p�x�m�^�IJ��o�� �R9w��Pu��_�������������T���l�b�\��~=���j���3��]�
J�����%`����y�T�� ���fe}<�x���u��-���n���H����
-���X��1]���t$B��������H�Ta=v�0�'�y�A���2po��J]~;�B�����'Y�����L�;����7T�Z%"��(/M_c}�~����7fY��l�����>�ae�V��0����@h�'���M�o� k��hAxOx��t�z�%|�K�f�]�`G#VQ��WrW
l�����T]fg��|�ek�AfM��)�-��-�����o��F-4���T�4]��0K2���L�.:>`Z��0RV�?Y!G|2�������f�(<��t����0B,0����g��0ZL�L�$��2�QF����"#D�������5�������@�J��q|�R�gSp��bXu2��MQ�&#��[CIG���l��$��,�rd�(��w�����I��H�����@�F��L��@~��uM���P
�Q�va�9�8���:>=�t�6|�`C��;����F��HNhG��Gaa�m0�����y��>
t��&�?���A�6��g���F�;�{��;Xi��s|�;�X;'W����8=9��w�& 8�`��ci%��$8?�D���<@G�����2e�J�[t:����_����\�����g��i|`�q	%���t���{���6����G%��z������9)�xq>�>=����L�U;w����0��C@i����6���D������3�};����`�T�cu%�e(Z��&���CN����m�K.���p2U&(U���3,~��$�H��yn�O�X&X��NV��E��H��h	��,)~�����E���715��tj�	�[$�����bx����"f?���ThB�����h��-+��'����c�A�(�S!�)�?�����^�b��c��,tQ�.���p_F��K�B��$�N'gXJ�&E�B~���C�����m���#W�e��+�g����f��za�B����8KH�X��U�Q��;w��"ei-��J��4Y�E��:��D���f�����B/���dO��uC@p{���7���/�h`M�3���mTHB+o�����\���cg�5��xBu,�b�a�0���[
��$h����[�����|/����t����v�q�����8�Lh8�"���ShG�IR	v��#>���)���3�j'�c-4���,������mw�IBK���f@<!e�����������X]e���vG���]�*����e�,W������;��wR��t��`��;��i5�"T���vx�b�Q��h�.`�m���B��7$���VQ�d��Q�H
�z�������h%��*����:��y�;�:Y`�kK �T��i�#X�@�vGUH�Q��$9��\g`Pj��'�+�&���6?OQ1�1a��Tc�}���
��WCGp�����3K$�L%il�,#i��6��B��6r	�`o�
K�)������S�����6)���XD�-~�cp�j��!���PqE�v�"����
G�~��`�.�q���%���p��eM%V����Uol�#>k{R9�\Z��,\`��e���J���i
�8�<�������m���B��!�8Oco�@{��������T�p�);Xz
e��g:c�
��S�$7����M��ECx��gz��`���`���]`6C�d��Hk�	QA����zr�-T
%h������M�!����i�����8L+�/t��%y
���^]�tJRC���:�x�B����������3k0�V�Y�(�%+�IA�^�C]m5t��o;�h�`j����-��_���t�m��/���������;b'����{�n�b������S3��48[�
'<�f����,��~|���O�?�H�
Ip���������2���_��\��|
�i &�m���x��,��N�I�tu-�h�	k���R��Rqf�THF���U���vf�P�^��S	%�B/LR�c��HGT����~�0)"[��&����:�����T�	
O0Q�{�&�#�{.�������I5�&V��:E��[�x5>���v2S��O��``������y,�u����K7��r�X�@%�?u#����`:��z������O0Q�w)N�T-b4,�I1"c����TX�Y3�J�-J�����v\����s7�`����F.�Xh���iA�)��P�Y%��<k,A,��7�%Z�O��1�n�^��=�
�
'�����W�f��d�,QSt��2��qqOmn��<4q����~.�����M�u�	V{�vE��hZ\,�@�.a5���fdMO	F��(�8��r��t�c�_N^��a�H�������b�a�E3>��0������.�<��0O�ih�l���.E�����k�I.Z��q���(�&���R���L���k�����t����e��)$�5oR<�4�Xz�xd��'���ljF0L�Qa��'t�?�d,�*�-��=HI)�������WsK��f�}>�?F�pp�Cw�,��[HV�gT=(��x�	�������[��(�\(�GPQm�?����O��j+���o4��l���c�&:,�@x��'���)��w��a.���1UX��
Ix�"��.`�����`��R�c���]�O0>����9���s.��$F��E�����1�N�Q�q�:��w�,I��R���*���o��&��H�,�T�6�����+wS�;�+�E�m���,�8�Uq��2�)��%q�����������y.vwY>��t��Y3�%c��"��>���.��1����7)X�?�B������G��a"�[b�'"���4��S� sU�1?=��������3p��Q�#�93�.;�XmJ\�37w��i���G���(��|Q/����<I����H�����o�Br���!P�*�0�I��%�Z��J��*Kr�C��)�{�8�'�,�P_������	���-R
�3Ui�I���.A�����Y�������:�`"�<���6�$\{��
���6I�����R]]�M �p��Tq���Nc��MK�h�4X���>�������h������������Pr��`��2C�XB���.�����%��hw�0�^G����`ikX�����a�fI����.��b9�X���������jn��Q�`W
�_�,D��
I*�_����J����B���U��=
����AP�BG�����H������e�J�����]�����5`�j��J #�(I���L+��#���6_S�)]�he��T�8���Kt�_LR�����A��L�GP���
�J��8o:)�D2.K����.���� @{�v	��j���ww��t�>�{�����)�;�=pO
%�nD������uV�C�s�u����@����m`��������{��`T������FaY%��&S~�&��3�!Z�F���������5�U����l����a`���q&G�����s�)�"Q�[��X�U	���{pr���`_}!�N>��X��E�H�f���?�|���Q����)����AQ�V����xuS�/����cJ�s5H�$��#�����>�Bp�m�ECy�z�v���n�������s���b���7����O`%���d�c���'�F��ap�M��T�
xp������f"n&o./���� n�_�)�OQ1����E��5������"�z�����EJ
-�����r2�z����E��k������2��?�����A+�n��P=�VY�e|���C��L�$���N�S�r;���I83��5������x8!b��"ZX`w	� xt��������[�A�4��w�������������4E�+�W��\ �3%b��w��1����~#<�.�b�/:��M��M�C��8��XG���1P�%c�kL����p�p�N8�����)]��,�,�d��&?�^�\c~�K*��7�
���:�����`�x` �)*FYE,��^��jN�=O�t���&�_��sH4{���_�P�J�9��OH�>Lvo�	�E~n���s���k��b���9\-D�$�[�i�#A���'x�����H9i,e���}�`�OOr��u����n0pEs�6)��j.�*�Iy�g!��x
�_�o~�d`a�Y�����[h^��
��%Ac��*$������~���XF�"�$e%�����1�����N��t
,�o��������7�d5t$5�Ke�c��������b���R�{{��P�'t�I�>�M
��*oQ���{Q�`b��q�����_��?0����R�m�9��PY��h�iN_����U(�EB�9Yb���)5�3���&!����a���JN��e�=JXu���`���/��J��-|@�J��:���y��:}�:����I1�p����K�!~�l���jM�C/�a�hD��EZ=/��0+���w�&5q�q�bc�_����P�\����\�6��w���KR~}�=rk4�R��-"	�������
'\,Y�h���`������s�.�F��`!������QC	g.M�o~�K��PM����#/~�$�������O?��~�������g�)����_}�g�~���W��+���>�;�}�|B���jr��\�~�MX��Gr����7O���_�|!��[U�e�_^@�>E���e���g�$����wr�j�5� ��w���1�*h�B]��2������i.B"�:xK����������$\�k��+��\��9�}����gz{�}�k�9�p��E�{�w	F������^]�~���[h��{��!4X�X����I�����
m+)'���m�dh�����i~�fX4��h4O� �
!_/���6�q���Q����#��_�K��F�$X/_�T&f:���.C^
v�j���j�|�h��o!����e�g����AX1p�(k6���'��N}59�9���.�d�zr��15���6���-8�2]`��z�����xN��G`Le�����o�O�17y����W�kQ!)k�+��j���D���r	�z]O���S2���D�)�&�`���
�Pf��2�Safx`�v��,��15���/�J:��]C	��hF�Gm8�Oa�PJ �d%��KG�Xdz��Y������7�;xB�H$1U�r��en�����F�;U|[���(����0���0����b���*�������w/k�b�VG�����_���Kq�e��P��Y.g�*�c�����x��y)�^������93Y��L���-8C����_�3�B��(�����nLr��r��S��t;Xh�����&���`��K���G� ��wo�m���\�F�QU���k���1T�����B%u[n�<�kc���9��}�9R��*��|��v]����@=]���v�%\C���Z��	:9����������l�b��m�^C��A��l�]!	����)������g��zo7��-D���]��OQ1�v���r
���{T�X���=�m�����'���X�|X��k��I�!��s�%�-)9g��0�d�|�_e��M�|t�Z�~��1�H��3�TG������z�R�H����T�3Gd��h0�Kpx��W�*Hf7}d���_#��x�|�_�^���M��y�K�j�ak���5��S���B���)�mx�����H�x����Hb5f�a�!Q�'��&�P��#��S(j(�����7�����j�=�+}�V���>����f���x8g���>��+�a���:���qX�*b��(A���$E�3��S�+��L�#P��0KK�a�36�����b�YH�6i;y�`��:���x�g;��O��
T�-vx�Y���B;Z�*�����j����4����8���_C[["�`���k�d�(���t���
q
��������B�I�>6�x!9[��E;�8>�)��+k�a�K��zl��-s���]Lt��6����4����ZV=��a�]��)+��~�&��~����h1�BW$Y���s����8��W|p'�#��E[��|���Z�/���_����keg�h�+;�/{pc��f#�~
��
M�}9g{i*����l��xX���%2M�\MR��	d���>�vX�C�����P}��O�	��y��6>l�mq�/f�[����v������09��b��5����O_}v����b���m��L6�Vp�#^��<���DK�a���E�"U��:���b�pt��L/A]��,��-�����+$E$X��T��@>L�X�?P��V�&���]k�,�{N
���3H#|���e��l��!���C����_��?6�.�CYcY��-<.���I������B���I��b]�j�a%[_����������2����*���?l��
�g5Q/`�<l��l�^���_`I
v����[d��,�`�[�?�Kb��&� �?M�dXi�|
��I��g-���l�F����c��-���`ky� ��:�PB:X���>�g�����R`�o5���.S)��\�6����OZ�
��P�Pp���6��I�����V��v)���*����]b��t{L�Swj�ac���P��-��b����,~��������9�����$�6	E�TS�.�*Y�y���Qc�q���^��~
���cl�`
=���
�����l����_��<���V������^����������+���� ���=��^c��+c:�fI��j�a%B�~�B�9������ �A�g�l�7�0+����%$Q	|���{������/'���V� �����;�e3���5�_�c%]�C�i�9�}b%�',��r�B�~nB�8���P!���B+�KE�]L�i�����M2\�b\�-�����Y����� !k�a%+y� �A����L�,��U�_��++�����,~R1B��B�B�4���4����_��W*4��{�M���n���S=�s8U����\��aE�G����zu	(~�k;�$u�6������������D�I���G�u4^����`RO�B����P�	�*�V	:F�Q�����0��K�
g��C��
��1WN���h/���,�6;x�M����(-�g����L�����l�0bl���JHPY�/�`)�����E���s���
B����dzy|��B-t��]�^�?��+,�����	��D����-�.�m]kG�9h�i6���`���d�P�j>�D1^>�������u������UPB`�K1�J G Q�1,V
�o��	�Z(��\O��:WHB0Q�r�c���W��s���3k,���S�� ��R5t���}�7�7�g�y����������>��s'���MU���i����/��������,gv���gh�I�I�&G�+'�m��s�0i~���j��b�&"�;XX�u����:b�����f15I~��ScG#,K�A^�������5��N..��T����B�X������!����GR���'�@���I�Tb��J��B��9���@c�6��z/0�{%�&W�.���j�������UDw�����7��Q���5��H��P���h�&A����nmp������%��Y)�������,�����T����0���y���x{i2� �j(�V%T�a��l�b-��H�pt�������W�#�i2�W;_��]	M��,���m��2����i�
���X����M��������o�pd�T8KSF^�R	=+O��g���P|d��#s�?�O���Rv?��2?�&�U�	I���+���+�����x���[m��r������H�6�$.C$��0�R�EnDh����/��1UXNZ�$�Thtx�t�����@D	��]=�����*������C4�QQ7)F�b�%���*�awF�%�%l��������w��R�a`t��B�'~�Gh����6�c�a
%<JK���Q����L[$�*�p�b/5}� !��R��+���	�-��}���wS$E��4�`I���+lm8��"���>?Q|���'H	��z���/�������7/&W�R}��������OQ�;/I�����%�
�37�rsI�	;�O����T������R����$�T=�`V�E
�%�3p�� �?����a��\��2P��/$�&��5�����
��;S��R�S�`G#�������9$V���]�$\Q^�,�Un��~�.C���sP�(���tr����W�5��]�y%�V��$]_d��	"���K�%��o�^����O�/n������8���]4��8[�4?T�����K����_]~�$R�K?)���6����g��s/������$�`'�Jhgru������a��9�&]��go�
�B�����^�G�ji�-P���>�������Hk0�Z���8G?�[sB��QXT�x���'��Q��N�o��&���)'8��O���R(7��������$���[�}��~q���h1���s�=AEZcZ]�#|&N�#}v]����V��@-����=�5��N�o. �J C qs��TB	[����N����I���b�UC)�I�N�9��l�]}n.^�M}
d�"-���+�#-�*y�!6�@5�(E,���t'!�6�	�{�O�B��F=�5��G��*������N���J���l�5��;���:,�����f�6)F
��P���j(AN���UV!�����5�_CJ��������d�N�.~���T��E����;��������3r�J�iG����OQ16���S��L�o?�J3k����Ebt��kH�w�"Km]k�T��oq�\k+�	B�*(�:�"C?���?1
�f�t�M��"a����������$�w[.Dx���m���H������B0���	�C��"�h���]-���z� @��u�����"��4�!f��p�d�PB���v�������!|��I�{��8�_�(���p��'�~������-BB�C���
I�A�>��S����Wi�	�GC�)����]G�B{�X�eo�m�q������UJ����s��}��#X�$��Y�%�"Rn�X
V�� �f�lA���_�G�/X5���7��PP-�3�D���6�k�����X�[��E�Un},�oe'�a��kc����\��V.����w��I��HX��^�*�_u�M��&h�
���~^$�(t~�����������-]��������M�|�A6���3�4�A������1M�v�ul�X��`G#�^nqQ���0M��#[$1q��
qpbOh{��������IF���_�|z�����c�!�:����lq.��:�+3
��j���l����0��}EpX���������TlR-C�����C9R��(hN��/'�c�����9kg����b��g��X�m��	�c�c��_I�
)v���2�b���
�H�����=m!Y�g4K��?�����K���Dk��"f����������L(���{o������$D������8��U�����.�8)2\(��������zz7�(��ER����v
et���\aUC
�����`G���Mpi`���Y��nf�8F���?{e��g�Ml�[dq�5\��0�h'E�PY�ih�G�6�c2��	M�6Fr�W=d
U�j����f�T�-g�|5��>���O
�T!�?�����������TC)�q���t��k0/_P���]4�{S���A�#V��T���qhm��& 0�&X	����1���`��DG��D���v	X�X[�'K8�%�E'>�+�]r*��*Y��(?7�AG^	�JM�o�@"�����*�q���/�H���e���b+)w>��6���%�g��h����1%�D�])�4~������L����Gi�b�r�`JB,����%Ca�*�& �=����u����6��P�[��"h��M8zo�/v�Wa0/I����`�sw]t���0*�W
�,I,�xB
o�t�b����5����%*�,�(x�'t(�!�pru29�9=�L_�^�`I�����WXR�+�0�f�Oc��!����9�gQ����% (B�;��S�:���H���� B{`�����������	�@�����R��J�H�����nV�Z���X:c~m	�o�����&�22��h��{
3�6k�������
u-or�/��^���
k0�+Q��f`��,�/7�����m�A��`���V��f�5{Fk��s��@J�L�������>2��G�\5��B����1����G0��;�)yL�&
����e E��X.�%���%TT�@0��L�\�������X�v����� �tZ�}��M�F�������N�K�����V�K'��fq����)��LeUk�W�N�����BK:�t3P��{��6s"3����\���`KSU�5v����� ���
:�����������N��C&��������jNH�������;c��`?���O?������t���-Vi��L�%I�G�>\`\c	���X��L�D7�]%���i���l*b?��6���0+�8v������t�'��d�5��3�
�8�
zV�
]�J+$C��W*^Xt�/�*Z�0�0!��u��1']�(t�R���4]NI��)!�a~�� ���:��5gi�����]���������d��zmt�-�m��j:w��e
��_����69Xb�o��x�R�W�����dj�m�K@Z;��#�\l^�,��()T)��{�I�AqM]W�0��������`	���Z5$��	6[�#a(�` �`���J�M����6��W�����e�h%��q�iV�}e�9mb����"?!Su��4��h�;�_[X/� ��@��|h�zs%J�(�$��3,��r��E��S}�pR��C�*WXF�H
Z
r4+U;^�+�K@�58C����[�30,��0�f�'����^	�B�����K)���
5��^�@��^
�������5�Q*59�����g����X����)����N[����}E�o���O�Vas����d����
�o6)(N��H�X���t�r
���x�W��/JT���Ga$��|���k~9X_�����vS�(oE���y@Sq�4�E�
����X�Os�o�����[Rz��A:a�N<����8hf�������X���Hq}�/��*���3H
l�PcG���_�E��5��b�k4�p
��a����z�1U��B_�7A�a
��i�K�r�`�<J��E��
�,��M �C�`�_�?���������Z�2��A�,A�H��G�l���G$�����F�A�����LZ�����09����
��fV����\I?�Gr��RI���E;2�� #�������gX��
�����V��z���s#-Ic������g<h�rR�/\���uc�$\��>1�j��`�_���������^M�iXa��������[�SSaGTO�,���B2�JaWH	d����P!�����m��-�gw����w�,����\�5������`�_����<�
�B4^O�c��BRJ�N�8`�e:��{�1�A��1%oX�n3���Q��b�k��#��CN�s	j)"��?P���%�D�f>w��������,A������.,S����,������a��L�N��N������t�=$�F��=�hY!9o�����
�qn�8�*��u	8�W8�J\1��b�usu����
�������b
&P�[����/��������_�����5$[��_��|?�_ZHWF�x$C��`r������%�����Q�^�+��<��C-2L�j������u���XX��'�x��[������d�$�{
����goM�|��t�������/=0��B�x;��4�28�F����q9Y W���K
e	%�_^����nMA��.�c��5���
x_�R���!#��Ot��36�hF���cl!���4�u�����{�<��Ha��������\�(���2t@��)*Rb8^y����������������;5A�|k�C?-s��<����i�:�wZ��'T>|����U=6����w/����?lt[w-yl������`�������YG�	r4����.����%8l���X���&�T
e~*c�D<�H��u0_�~��y�����m2FNN2����tz~3��F��������aS���5����$���m:���:yXG�HY�!6^�+:��A_hs��),�U!���A��d��}�6�i]!��[^C���,���I�d�6q����Q��4?�]4�\�4����//���#_c�nv�<�t��<����5���G����
���k,|\IX�	[��*)���T�
�U��^��N�4B��S<�"V�C������.����h1]�$�LP@	D+o�A�����<�[$�z�{f��q�.��m�;�.�'�Fp���x�d�������p��U���1��YV���,�\]���67��%:!i���;sru|s�;qy���i�GaMU������K���W!	��t�:`?�J����u^	�)R�D���`�`�b�8�b���1?�n"��v����
�!Z���i����^�M�P�-�y�9�zuq�
�l����~�a�A
%t�8>���Zr�����v�tR�{>y�"B]��T�_��+�B��*b���7	��+u��}Y�}�_�Ac��^�
9
��
���%��KT�����_>�����[H2#$Dp)g
e�b�l������,���_��a��r��\��H��a"�S/�>��O0���u�8}�5�R�����`Yw��u�9a-�,�#���i�	��T�)�4)5�����k����~��uj	��o��r�0U�W�P+!CW\TQ
���Q������.���E�s5�$��T�����BS����mrP�R�d�1��N7)Hn�aOg�W��Z+�@���70�������VP����2�Sa�F�MB��,:�����V�,QS�@�/R ����p��2fV�	��1�1�
A��A��T*�1���b<���/�<%����������
�O�)�0
3�'C�������Q��Qz������gu|	�nw24�St3�0�|�������x�37z`8��2�M3/D�MK(E(\&�H+�d`*G
%�x���2�+$#���#�)��3���@��{����b�.e�|���MB��k�����Ko�I���]pP�/� ���
�X���#�
�KR/����������:R�3;��ar�n�q���wu�?��M�H���_�E.	�yVH�s�����/h���J�hOK�4��������a���_b�/)��/�0��%h�������=����h�c��pBZ}X��pm��mN�����25������~�����br���c;��Z�����?Z<���y�a��n����������������T��������k�H,���_�%���D�:Z7����iUp�^2�@��*��Ka��vd%����C�V [-�3IN7��w},� ��C$���Rj�$5�7�)��/�����+76)F��:������{�t�A�=��1��
�"�k#��,��@���g3f��,�����6	a�I��[�m��^�|/%l�#P4�?F��5�����?��&v�pN��A�k
�7���:���q��K�B�/�7���$W
e�����V���U*p���rtXTQ�i�l�p������}�-�Wm����_��Pg��8*�DD��B	={����` �(��=H��R ���.�1+#����n0���	�����b��%�,��<V�<�)X������El�&����b
V1j�\�*���-�%"0}}���������%��{�lDZ��JE�.n���@��|�3G���~������SG���2H�c�6	'�*\o���h�	��
"KptK����U�k0Mq_���:���{|3�cH�5x�������D�L�\���g���EC�X�m�m����c��XC����Q.[$�����6)F�Xj���iqL���`���r��9~_>��N��+�cVuM~��:>�t�;��A3��8T	$��`#�9�w������5���h�E����X��H�������1tl)!C�?�G;�lpS�D������t/<A5b�co�b�Ex{���?	�R!	F
�G��=_�
5�*����=���
�-��l������r?�*�������6��GR�$��"�T4�Q�������$��L$���3�|�Lo*��-�)�U��|
�_�@����2l�b�
�O*�Mn�_��I����y+
�����:Vo{��E�k0'�4~�Jw�%:�/�I��v����'�np/��
�:���{��zH��'����W�/5}*C�T��i;y�)�%�����oE�Rp0Q~X�*�D�����s�`Wj/�]nJ�"�"�{����qX�!g����+�a{�W��u=�|,&��� �g������E�+�Et�%���Y�b�a
�ZI�,p#I���o3�cg	�G,-N���6��6��9X��F�/��w���8��7�tu	X�M^����Eag�����x?@w�	�@��jR
�a
�,�W��3?@���N
S��`�TZ51`�0p{��)o����Bn�0jp������0J��"Y��0�
��/����v��,{�q�R�������+cW�j%�Vx�$��t�P��<���?����#�#�xva�O;C���4�{Z��#t����k������jr��\�~�M���G�j�P4�v{n}��a.3?�mS����h����O���~�)�f�! d���������X����������9)m�Y���R��?[d>{l��L�zx�r�������2{L�4�DVh�~���R����BY"I��BF�#�]���fq(L�>�����*VmZSau���f�Ei���J�Z<�V���4�:J��{���~���K|P�}�J)���
?�o�"}�`oU�&d���v�F�k0�������"[��v&Z�dP�m���58]���2�4wF(��D%�[����'����3�������G�dn��W�etA�m
�=
�a��0������n��R�
I(�������\�������-����<��9�9�8��d��/��K���$)O4X���������,�
9����#��b&�f�[�f<2���H(Y��X�IZhR@����&�oq0�����(4X�N���x���B�/�y�0��`
��47���{�k,������_���/������sH�
Ip�zI&}����i�
n�=M���G�Jm���`��%R��NY,�W��.��G�FK�>D�������Y�����/so��#�R�[xR��C3����L�+\���5�|*v��/�GU/��%i�$�aE�����`�o��I|�9:}��	)@�������tPS`���g�udq��������sH���'�	���~{������������`	�J;!�H6(Ab?U����Av�<�,�#�������������\�
��3�^a	7��=�Y�5���}:n+$I$�x�Ds�/���������U:��^�z��@.�;������]4�8<�@'���#�2b:��`D�G^������������_ARnR�����+�XB���%F��������HX%���������}p�m�%�������2.��h�`zX�I��J�����'�cL�4vU*eg�{!����r��,�t����K�e�����_�
`/��L�\��	�p��o���[��� �~�������>�E�7�������k�����Qn�`m�J ���O�#x�4XJ���^C)B�.�K��vr�>�m<���C��o�%������,�0U����Jm�J)���&�Bp������.�>9H��\�%��@B�\��	�r����+f����rN���c�l�p�#�<��2����� {���a��uEmR��-���b�_>EE���W�7�`�5OW�������#����>G���{���-�
9��K4����Cm������a�A-R�j�����xB&���YN�m�<��(�R��{SC	�+�}�whMZ/|�8���=��HB;��=�+���	�����;
m��m�<��	�$�dO+9�8he$'��VE$%�����iR���XC�"ha�NQ�Z�X:��l%�G�bh��7�\�����`�k�R�zr�$��U��A[=�dq��nm�����������b�������20��F|Xcv���,7�`'{�k3[�2�7"�,2���2�&>�����~!�P�=_���.��~!��X�ja����9�N���a��T";�������d��b`"zu��#�!V�����89N�����5�`����s��c��6	���}	�}���K@�o��������j7FS���|���n�_a��7)��R�^*C��G?ZOw�|��	"�������3����t������F�o����]5
�`q�G$SS�&����3o���|�����5���/�
�,7�D�]���&	'1L�~��X{��=���B>����X�_���>Wl������2m����b�N���#��	W������#c7G��A(wP��9�P�'b�aG��dy�xs��p���\����.u����JV�%�de�_c�,��'��L��B?}�i4�r!�X4���<�5��;�����#��t�*�W�c��Gr[{�8���X��
���j"�o�$��w�g��kH�J�M&�m��#I4xs�$Q�#�Q���+���]6�@��B���t%��QCY�}����l�YA-l*��81R�$��Gk0-x;������?�`���jj!��%��������E����z�9��-�,��U��&�(�Kw&,z�Z����B�)O�6>R����R�ef�}����G_~��'V�D?@G�K3{�J �.4\(��������#��zifw�����/rc|����+�S�7Q!�E��T�����E�1�,�"~��`�
oR�)�E�� ����v���cQ�L��b�A�%W������z����'���8��{5���@�����a�����Z$t;��{5l�b
n��������1���P����e��h_����']���`����!-4!��������,3���_��3	�Y\�G��5�u����G_X	WP2��3y�u�G����
^���KT�7h
�&q�U������]4Da?���;xJ���4Q0�@H����\�[��y�%v,,�+�T�O�]
����W�Q�&�_�?��������?���/�����������OH���*���Y��pb��sV�\I�7'����`b��W��E����+Dg=E5��t���{h���N�A��Uh�845?N;���p:���>lu��t��K���#�Y$f����
.�7����
I����Y�@�Q�N��z%&?�^���W�XV��p�+�����B0����hZN������jwHM��Q��������t��Elv��������d�^��=G&$�������4�
���8=�O����/=~�5!!'I��H�����S�J(��5�Mm�O��d��l��������[��m��n��
��J�fDm<#x�=��p��Q�S�B��>����Jw�%:~�f���{M���^���6��{c��
��>���|z}~{v��9*(�����-��u8��]���������xKsM$�=�W��_�WW�������?@�u�s=�5��TH�H�q~rq~r��5��i������F���	�D2���TPF_,��d�$��{3�R|��`����_����`��&E�B�y�_�?/�<&�M���)��i�#��������(��(���Mn`��x�l��{��=X�R 9"��Ez7���jb��8�`zn����W1��n|kpU��H9Fg�\�:���0��4J��xG��o�T��@�KxC�������2�P?M���=,6(���S��S�6)8�X�c�\���6�f��gS��"a�N�)�������8D�����5�H��(������z��pE���9�Q��/&�������v����'��H��?����X�Sq�f�L{&o��JT=�E ���L��lt�<��U�E�����9Y�$�|��!��:P�������b�,�|*����AY�(V&�]���pK}o���i�!�&�_��$����X�<��&�-�4�xN�fh�^ ��b��5�Jn���
�������@�'{R*$'w4���p��������@B����O>=?~������w����H�l�\���,�5�v����6|�6���{��������$X����u1<.]�	��L�(�eh���C�m�@��B�h���n�OtX�F0�����2�b����.�y{
)��u��(M�aM���84����?�����T�wz�%|��P���l�:x��
n����/�G�_�#H�
��s0�F�#�K�����x��m���
I��>?�=�c���-�����*���.��R�\l�
 A����q��`�DNp_�_����d?�a)�i��N+��Ba��'�����RWs`�����:���5�W�i���i��Zv�X���Icq�u7M��f��N����=��e��������znq��V,�,_�%��%����~���}��o����J��N�'"�+-t����2T��?�OZx��92���H�"��p�����B���?��f�%�-��6�MB:�I6���)�b ���b�*�$��KHQ�����y��du��@
x)���eP�[v�e�b�*Sd�����������_��6�����g��I�w\��l�%�����L��r�IF,(.��Dr�����f�L�W��s�*%sU$:K�}����D�F|�k|�]�����fU�+����S8;�8�u����A�m0�D���'�@[^�c���	�V���<}�Z���C�E3�Gq�"
,`��<X�A	�l�I�I,�&����!\�y��;��T�[��
�8B$��)����O�s����L���%r4�i��i\`�}	UC�����U���t�#�u����e�m�����<yy��'3�g/��[Ld�S�������^*�aj&$�@���1�a�$8B��S(��2\�l���#��,�@����(����afb��O01D^�~��3
�5����4���MV������������LY�8h�3W'd���/���r�Yx�B]~�{��T��=���B��z���o-4M4��������3�J4CN=�����#���d��N�
�=�+����
�!�E`�B�/����_�����_��o ��8��"��T,��3�[hF��n�������c�������
<�.��-/�K�B������H�:
3o|"{#���7/�����\��r%��d���_�V��@�H.������E���6��Dm
��ru��������Q����2vMg�����{5-����"$�4�����6���������
$U
%h���"_�`k������[����r�Q42����b����5�k�mF��`a5����IA�s���Jm8Ey����m8#��[��@
��2�`�p�7�3�R|�����I������6���<%�j����dMAH�:����5(k�9�$8��{���K�����6A��
������578���K���I�T�N��c�����������:���9-��D�hn�M�@��;`o�P*��T�[pB���K,����]�%p��g3�s��H�H���8�is+o��:xVy�Eo?��\�<�f�L%7'�3����a���v�/I����a��E�y�7fq�~%�,���k0��.O������4w��z��>�������������dD��D��#��~}�����D�������q
�K@��Z�G����X6��^��s$�P���(YjL�5������pz}�y��`�i����KSF��vm|���_���\���%�:���WIA�^M�o&�������kl8��cT�5#	�����~L�``��2����Bp��`B(���[,Tc�_�pu��k	>�Oq���C\����)h�4XJ�n��B�wk4ac�H�^�\����<�,�i�#vE���f+AU��!����[t)�E����;����5$`
%�&����X�T�%|�T<�����#����*o�G��=8�n�B���a�������-V��"b�q
�nA�0��|����k
�>o�ZoQ�x�(��c]�����m���Mi��j��q�/���(D���r�R���%1M��5�P%������IU�����?������W�Z�,�[P'I*���5�q����z��
K��p��^8��^�U��!z�Z������6,zb>��P���X�����o^��\���7����7�X�{+WF�}�$�vC��"S�Ht�v���"xI��h�wf%���A��UOP=�kzb�VkNx��8{g�����	�j��t�T�p���������]������`q�,�fI�}5�����(f��>8�e�H2.]o>W1��i��}��jrs{u~z�Z���\`y���.7��*I��K�b��^ �<p����(���4-4�������O�@��w;�j�d�P^��������k8mcu,jUc��{����"������T�x��E9?L��!{�i$�8�b)��mzp�A�%\-�
S/�A5`F�l^w��f�+c�	������#�����0��~n�_���.�1+�T�'��'����a�Xg�6�R�>�q�/��c���������9V�����W������� d��������AX��mq��-��Z��]�/n�N�{p
fd�$�����Q���Y���o�R�#Gcm?~��Q���X���9�D�J�L���������:����Iw�tP�i���G�o���6�qA=�A��(�Q|���d4��p�S�������|�S���%x�1%/�������=�3W����MZ�w~W������z�
���Us���E\�GG�x�S��X�����L;x�'2�I��7��T�?�o���EC�UK���5��M������"jO���:+?�3�����M
��:KHlK+(�#`�t[��B�,Iu0��w��/����W�b�/����xW?*Gs�X��!�\����_�5|�7��/S/�K+��#^�A������2�M2
������d��u	F�K?���,`�C������&�(r�0����@��i2Jn<<y����3%v��#�
��w>��+��{��]$�,5�2`������b����/T/�h�x!��1*�U?���� m|�@�`RnRp�36)�!)��u�K��3���S��)��*�w Sgi����I��E�������"�����������h���h�'��3*,M,a��%���`T�b}���n��'j�^<����Uvy����qv��x��%z7�g��*t��o�JbF�K�����% ����b�����[$�z4;u�@����p������R���` ���m0��2��Yu�m�2����(2K�Ns�,tgX���q�2V�^)afO�Y~�����m�1�j~������Po���QA3���:S����G�����cjj�I1��P;x^��B�M��ZYGL��������\L����]��jV���@S��G��R����2�R,����20������:T�h�Na��M���=F~���Fj���������XD��r&q����(��������#-[:������LMC),a�C��ZW=3.��k�	����
I0%8���(�}pNa
%h(���S�����I���Z��lqT���:�H�sn��#�*����n��X�t&�i"w$�|0)�J��r��Q/�-J����T�b>�,�07���UbR���Yb�?�hF��{���S,'�B�Q���
�g8��j���b��r��#�~��N���z3WYEL{���i&]h�Ul�����qu��`�,n�	�lt�k��^�{s��+)��[���a�<����b������>����U��0. _�5�5���f�VHZ���{a�f�h���!������U��32]�3}�h�r�����2�` ����(���o�Z���v�v�o��4a�`�hsC�RQ���m�h�,��rw��������H"	��xY��7���8���\������n"V�e��m�����!}���K�Hs������s�a�H
i�3�G�h
�Lx��g5X����2��7�F�/�G
;������{`�O/�/v�m����$�?;�����HD�����]��
�_!�������Voq�|u�����i���|[��+,}��I�<F�qx�
��������X�"�f���_��O��~W�a��j��~*7�*7��R��.�����v2v��_���\�Z���5?���-������vsTP�a/}��-?�`��!�`�}�eS�3�L*F�k�F�V������B3"J��!�y1�\�Z�=_a6�����C���S��,e��b�U�-F�#IU8���F�Ih��p�<�e
������F���\�A����"����6	_P�}�����FF�p�=���3�_�JT���c���\��W������:}��7lR6~6~�S��lUT	����D�B������A��n�4`u
C%tjz���������(�po"[����
0=�r]�����)��+ch��6�v���H_���/����<�n{�N����Qf�r��D�I���������L��J�"����i�g�!���Z$S�iQ�9�h]�� �1XU��3�"��>%���d�+�8Y`�R�k���xg�����+S�	g.7�}-]a%�B���Jc��e
f�8���&��M
��Y�b��8-f$�..�@8�w����K�AQ�O�C�Tg�+��e���z5��r��:��������,���}�$!
��m/7F|�����\e�Gh�o�������g4����V�VM����Y*���{�G��GX�hgjZ����5��X��~��J"�7���g�U����v�v��3+���`���n|��YI<�;O�tE�Eh�V�(6�����Qg�Q���1�+�����]�S5��T�`O�
J|��
��y"-�|�U�!�����_������*p�Gk&�C��or0�G��ek�m��f��Q�c=
�`�f������`Wo�c�i0���Q��,Z��G6���w]��C���QxS���U	�_����_W�������x�hF���A���6YE�bR����7�
�������FX���X%���X-2��$�`"�.��-f�$�b�������`5H�GI	�v�)OV��M
N�x�2��QSa���*R?��w�j1��i��B���):�����?Z�����`U�[���J�����:��X�y��W�<�^�{�WP-�����ApbGp~N
%��	Wc+V"y�;V�:�t,_��n�V^�]5;y�7�{$b��_���������?���gH�-N4lx#$3Lg)p6*��$P,���2,#�d!���UM&@�x��_���D.�l�j(�Bo�b������(�"sB��������I8,������a� k(u�zX:���BR������&�lq�i2.����S��D%p$&p���j�����z�cV�De�j��F\W��������D��R������d,�$���u��`]0��
:������$��)�dX�9��BQ7�"~�����Q�����*��|�oK8��BEo��=���`5^�����
��q=���d�<0�j����?&�
����>�e`�f|	�f|y���k!�0��}_�"V�2���	�!:Fk53->�f�|	�~@��'8<�.��/��d1�o���u�b�$+��~~��&x2���@{����T�>�2�����m�^!9k$.�&��WX�Q���V[�-�[���$����^��q������D�=�RW��A��`��t:��]���r<{�����%�����:�*��gK !3.����6�a"�������LD������'��K #�aA�H�)$+'���O�\phK����K�"VN'�
��6)H��x�%��N���%����t	�TCG��t���U\B^�54k,�]�fS6X��X$�L-����P�+U�\X��M�	��h����������Y��|3K �I7��Y��R���r�Lo&W�1h�d���!�2u����KA�-���mS���1#ZLc���m8aS�ifUv����������O��J���g������l��3�D������.���f�a�f�u�MB�F��9�����1;#�����V0��h$�r��m���E;}nq�n�������
>-���������<��K0BO�N��}��|.2����5��m�Z����.A�����9$X	d��XT�1��
��S���J5!f8�Y}����8�!�;3����.��m����W�I��!�/a
�������b�B�9�,�x�yin���t�����.�o��^?p�x�f�]�*�"�����"cx�9d�\����*_9�H5v�����$k���m��M&�6[�2M��B���N\�cJ %�e�`��A?��+����Ml��_��������������3���^�����c�B_����3���������,���MI�}����j(�C1�6_F��%��5��Rp/����E���^��l��_����k�(:R�D�E���,� �qnk�`��6�'�fs
g	ok���Rx�����VW��C�,m�0*�S��|
ew�<|k[h���S������{x	Z��I�_���K0��'Xh-����M�{/�qw�������-�5���zpTd�������80
E 9���_�A�]�B/�C,/���J���b![���\��(��,��$���d�(�����2��3W����MBjj��f������������x��
��`�-�����E���4XJ�0�5�J��R�*/X��`�l��q��&)����#c�v�)�v�'�4N�_�`k(�k����/��U5�WX���
��H�?���K /�[4{a����!\��2�x�i
�_��W�/_@b�P����'�TP��2+����r;x���c�-Bq��4�������V�'}'�b�����@�jzk����l�8.b�Eb�e���d�}������F��[�[J��Q$D5�.!�&�_P��C��@�S!��o5��Tf�I6���z_���g�)��#X��)��K�����(�O�Hu��;�`	��02�?a����>����B���r�k���0\�
���o���4���gU��X�Ctu���BbO�)$7Oj�G�4u{~���D�~�5'j�_'��WC	B-�2�7��?���c__�$h�����4v��a�����T��e�,�^������T�+$��%L����L��]`��8�����!���i��i������m���S�� �c6���Zh���;���`B�Kw��������!4t$�l���������8(/@�c3���5�.��|=����j(q�����`�_��L0�������[	�����=�5��'l����!�!��,�`�
n��7m��4��@�����`S^M�o&������i���0n��x)��k�+�b
V}�r*�UX��o��?���3���6	�_X1��A79�9�i�{��&O��Zh��2��]���oqV���N8BO�D�fVHB
����XZ�"K����f��1�c��P��F�.Yj�����s��s�\�@�{��0
��A;lk�����-�'{K���_T��S��P�4�W�K���/�o�������H��Z���,-6Iu4��7)h���z�b�$�1�����$N�E�M�� �2��������\�t����o�J���[D#�b�JX�('�Q��6��wS,Th|2jj/�J�-�M�%ic5`RnR��j�9�E7`��x���m�kx�5����P����`��N.�� \�hKHV;�\�+kA��e���	a��?����!`����*��
?�R>J�:�,`]io���,�jkP3����{�0g��p�������-4����%�:3ud���x�
�MBXC_Klk+$#�%�K�����w����!RN�\���'2|^ha�Ra�'�a

\���6]z����2��b�$�.��[Vc�VQ�PP#�$�����]|�n"B����(1�E,e��#�����I.BR/�Br�9��#��
mQ�`Y9�84��	;��M���]4���i��t�J��N����l�����K����y�����������
��Ha��n�������i��$����a�a%�v�Y�-4����������3�C~ 1O_
e����p����`���_�i4X�Ry�jS�CR�I�0����P��I��w1�/�������,Gg
�_0s�&^����p.�6	e���n+�.�g��!���5XBR��s���J�?�'��f���F,a(m"0��Bj��>�}6��FFrR:h��5���� R6[z���H��k��b�TCYB��*tlP� ��7���l�Q��]
T�}�LS���hN�M2�\;�n�?��1�B��K:�����v{=��*p��3�6����k���=-4A���
�gk�5;��a��E]&��8�S@a�����%�oQ� �A�0��LvV��K�"u�_z`�I2B ]�5��c���4Ksf'�K77(>���������K
r���d�h�����ZxV��"�����?%G�B������B�����������Y���o ����HM���LY�L�3�]P����B����9%p4�G�?��4]��ku��UKR��)�|	�,�B���r��Q�,�r���w.�7���'�,N���.'�@Iwj�6�&8T��pc���rz��0C����a R	L�.U@[�(���VZ58v��M��#������)U��B&��Kx�i:������0�
O����?FI�9�hS����/E��E�y��6]������Ky��n��"]S���C_�������_���Ez�!�R&S��g
&T)o�u{��PA�`^�5��	X�0c�����sO�L={k�)Gg�s�K����v�,��e�Y*�U�*0�����X-2_�b�e����Cxquj��BA��r\7�K]�)�-����}`��^�~y|s��5p�v<����#]��@M9kv�%D��&`�A	$x�g��zg��S�!�I1��8�F-�����Q���q����JE�&�fUXB��%����`��R����B�;4!�=�0���wE�#�E�����/����>D��/��sb��y*�'76 ��IXeh���#���&��wz=
?�1�����!:F��r�BG7FR��������=��+�0p�������!P�����y�p�,U m[��`!���hX"Y;�:�^_�������qq.�O~7y�yR�`��d�)�
���J���^"k0-Wl�@�� �&�_���/N�����&W��<#�����<�H��o��`���L&X�G�	��7v9����rq�`?`��5�R��f� �:��,�U�N�4�!\
��q��G�
W����X �l�����>������|��	����n����t����9��L�i�m8S8��w�.Bp���RZ�X|�C@��e���&�6Bn��l��6�C�g�W$�L���,E���4���(9�f�/����Rq��+{{GT{1�"�]�Z*�nH<1��������jp��}u�$S������*8��36p`CX��L�k��uZ�p��ah��mr�$���e"�}��V
W�:x�xv��
P�zS���%�����d�_�,zw����}	�4�4��T_m����Q�z)�t�PVv�T.l%�pJ�Z���mx
�����f"�.����������!�����lT+��g1���bM������\�x��('mq����u�� n��8Y	�]5����1��}���n�W`E
�_����\����`(U^n�8���P��w�P��T`&Jf����l;�i��!���(P�-R��QF�	�<�[��r�D1O!6�J|}&��$Qf^=�����I�h�v�����"�����T%�`������`�_tp41g*��Y��������p]��J��=������z�5�w,p��S�>��t�y�6�����������.V�q�S�iw	�p�,`��5��R�)�m�i�1��K0�H���&�0�D�a[�M��NY��t���������#vEWHN+#\������J����r1�m��sN|�(+fpS<v2IL�v�kl�b��=4ZCB��	eR���5t$aO -�g`b
e�#e�H\���G���*�����u	)1�2�tX�&z����Yi�	�j�JVH�z=�������j�c���!�[�i?n)�o��#�Ej���$�`�rR���(��	��pF�o�r�0k��f�E�9}��p���BB���Rma����w{���K���u��H�&�\|Y	���`a|��{���My�� �����\9wr��y;2j��1����3%tE =5P�p���~Rn��ycg���������;y9E^~X�}�bNH���4PX��5�p��6��.��y���_bZ��Q���;����X�U[T�u����M�J�����]�h��M
������>#r�L���E���H�J\eaQ�c���8��"��x����%����|<��2�O*�8�����dQ��:U2s�@�&?%����L��o���y��������'h������W4�>�m��]�}���i��������!�U�Y�����C�56H����:��VY�>�K������~O)����s���B�6[����M2��(�N��h�U��p�1��[�(��`~�
I����;_|vd��`�1Sg	G�0��O������.�}Z��}���6�X��$N�E`/������[����/�$t�G|�^��X���)
���i���Z���$�t��L�`�SL��0�q~
���E�*Y6kv�)��M,\��NVh�hx��.�H��}�)n���z#�����#H�Jh1���X!Gp����*}�5v����c	^*$!G>�	3,�]C���
��1'Ue>��E[�����������MS�5E�B��/ ��`9�p2��9��z�����vnq�{k�p�b�B��&I��4�2��(������"�m32Q|}���#r�?X�`$�r=P����=���pk�,�VB�Dg���<�l4�
�3�5����Lp;�L_~�����/��>{u���W�������~��YdR���b���&#������Ja�$]���N�o����;��L����������m�#J<#@7���YTt"����Z+!���k�H����B�@&�
S���
����Z��&�&�J����U�|}��~����k��:���� �A�Mg�\����i)k0�Ywuu��GW")keq����Z��]1$$77�H\~�Pi��Jy���\�U[hF�Y�W*4����n7i-�L�
N�23q,\�,��K�>2���3�u� �C�"V�wn�_��
������;���e`�h��ez%�a7�jx6k���-f�Q�X�j���B3���x�\W��t$B
0#��u�k�hev
&\�n����
�\��[`O��\��l	n�_�C0�L�h1urs������B�L�M�hl�C�����xT�;V1�����)��h��C6+�24`�z�5���\�
���>/��Lj(��r6mR0<x"�B��_�9%���Z��/�E&��;yF��Y����q��&�E�`�a�����;=
�TC!�=i�y���/�'���^���+����k0e��,���n��X����U%�X��z��`��.r�4����!W��&�nr0|���7Lo�Y�
��o`���=-<K<�8���
�`��;�y/K| ��6u�c�\����i+�.�_%hZ,�����KS��q�w���7��cd�`tL6�ol=�w�8��B��LMq�;{����R��5�|�mt��ha�"���y+/�t��P�'u���[�G!�3f����n`�=
��n�N_��\Ab5X��Wn���=3�L����������/^��P5h�M����J��{�`�m����{v�m���Ks�(0�{���V�1��?�z�U������RC��1������	X�8X�������\Oon/���u�{��k��a�aq
A�v�������R�s����RFfN�)���|	~��4����1L��Pq�c!S��g�d,>�7�#L��@����ak�d���e����M�,t$&a�e���k0#�M��Sm�	k����m�`I+����Q{�'3��b��F&�X���	3:W��H:L���L#�f(��zj�����?��G�I�o�dw�N�~�	�y+{p�l����2LC0�VHNG��E�YNI�@S+����)�I��/PAIT!	G\:�k5���>�B����z���G:��
VU�E9'�n~5���!�MBm��IB�]���4>����`����lmx����ni�6D��\G��lP�����
� ��+���gBy���@l	AV�s3T�,����������Q��6z�
���E�A��Y ���R,��I�R�y��x'�{���m�Y����Z�b}���[��9��������m�� Ur��A��7�.J���6(������mF�U1���������p���������{���v�W��<u�hae����g�c��2���5��."�5I'�������k�9,U^�	J{��J���t��IU��%*���X���K��vg���,#^�!��a�����A#���-:dm0����H{s��v�(�=��G����&����A1���'���3D#�ak���{�v{#��X�m���U��G���u��:K`��5����������8=�����d�#�LO�6y�U�7�V^hw�63K�� �.������,yl�����
����\,AG+��\G{g�f�>�~o�q`�/�=�K��k�	�r��@�`�A��7q�+�?���\ {#��>���.'fb�f�*��U����d�.k�,��L�~Rm8��I&�X%p����jvJ����|X�����(W���3,��~��~��S�}��d�g�5��$�|��h���w�T%�����8��������u{=A�����6���d��t]!��?Xu�!���o�����2��>�[��6�D��Lr�d��n�����9��C?�F=�W�t�3kuVI-��,a%��wo�����v��<��%:x��$��EO��m��ti�~y�����i��_h���q��D�Q�zu/�#G�s,��e��������cn���f����W�������9�Br���IV�t�OR	�b�`8����E���_}z�%$_�dx�+FZ�����u�M�E�9�M#7)�r`�,7�����{�%������87���^Ls��7y��`>�r�n��g�%X	U�Na����8T�}Q��G�a)��!����2
#�I�t��TlZ�Q���6y7S`K1��E�\�M�,o�'��"��Iy�/�/�j
=a�LVU���+�%�����D<��hX����7�"��R��`���3��N�zHU��*�_�A3�i����Y���1�����D��� �'_}��g�~��������[�el�#�%����Yz��-����!��!&]�����i
&}*��'��+� ��y��H����*z�(pn�L:x����:�&?c%�,��n���-�<�����c��Gl�,S;h�������aB�����E�;���mWj�6�u��!�&7�W��|��t��G��{c���j^M���L�El�4��]��)���}��[539v�3��4��tn�=�����O!����Z!-�R���,1��.��sk�:����'TF�v�`0�������@�.�V��>��EnJ����U~A�X�_����\\bC�J �U4�%�G��R���LZ�Y�������Y	�;
�v�l�b��K��Z���W�1���G�Dn�l����ZC�q�Kw����<$h	q=�5uH�{��l�R�%r{�;���K����J'�V^�)t��&	���5h0���2z���Z
%T���q��#�P����K�I�c0���/������kH��
(�`���r�"]n���M
�����K�1\b��5c�H�����3"���E����|�o���|6o� ���qf�r�J��_��h��[R�������C�"^�xn�����	_�������qz.^�����^�c��L�dk}�b�����(�|a�o���e��lq����~��L�t�8��[&�#V�����
'<p���p������VC��!��r���u�#�����*;Ka���t`vk�*�Y��Yl�m^��;�$W�b����� !+$��2�Z����������D�f��H�)��1�k�����c"���5X��i�v�#	$
P����nn�:����S�!�~S�G|�u����
�iOnLH�hz�T$}o�������N�Q�~�A9�i-kG��`�`�h,�-P�"�Q�&!�&btU/	�/���mV9Q���!�M��b����%p�m�N�������*.�k~v��	�q���r�/��z�����VX����~�<y��P���V���"�{A�
���0{��a�L�W&`�$h�
��/�w�'��o0��2j
'�fh�A
f�ppT
��+�
l��`)b�"S`Cu_�K�XB�:]��Q����e�::IrvP��h����\`�zM�����1b���@Y�LK�a��6|�;0���[��%�UP�P*gi.F"��u� Q������0��$�T��<M6���2J �e����L��G�7X���H���+Cwj��`'o%-��M
��k;����&'�6��b+�`������g�P�R�{q������z\�:����(*6�@��Pr�s��]�9��������.��0�R�'�&���{c0��$}Du�5�s�Y��h�����2�9���8@�d�$c}�K !��_�_c�"5�4wg�t���H=`�V���Q�w
V���\�o%kK��	��<�����t���x?�6�`���<�����0C�C0b���G_a.�m������Y���X
O��7b���t�&�<���
4<���Q�x�M�S~q�y���'m�P�-<�r��/��yX |7�������Z�U!���u�pQ$�9��l_w�����������������i2���Lk%b�9�I�J=���"v�����/N^��d+��S��/�JX%����]�m8���n��6X����������(�3�i�"�~O��C���U�J�-��;��g���~�n	
x��� {�-r0#�B2����5�0I�?��T1�>��Y�J�4*I�&bNH�Zg�G���@J8v�NAn���u|v�s=��vr~�
W�� ��C8\fX$!�b��(
r�����}v�H���YA��jrz�r�� m���U����Z�����Om��p���b}�,��P��xFE�\��o
el��N�6�����X4�2��6�0�����|�
����
�H�2�1v�n00�,��*�\)�����I}�����6Fr���sI�oJ,e���w�`3
��E^���w�����t`E��)�e�,L3���.������O���p�zm|^��^k,:����m8�["����Tv���!�%���� �v�U�BT�����t��(���>�&�3��O"�P���^
�~���k<�#}{s�4�D�?�&�bO��{�����E.Q~u~*�*���W����@���3��H���p�s��\�Gh�K��yz/���~$�e/��%�Uk`�k�)^�i���*�&�r��r|��1
�	�$��x��N �& ����+��0��tPWo�����=$���/L��*6)��'����m���s�����P�b����'����{g���F�����65n������K AG�X'��N��OD��v��F3���
��VA	�fn����B3�S��p��?4R[x�k�bP�
II8����'0���'"�$�:�<:�$E)�[0����&�v�������;����I����_C}��/ �*$E$T���vO�z�*�h���<�@�^�����`���TH��j����	���`�p��JM��t���/
����L���hU�&U��_�\�sV�tHJ�|�.���c���t�����`G��F�����������[v����Ba��K�{�-��M
�k0��}���t������'T������������M
^����p�}���������;����#���o����P�
�Dxa����erE{H��@��?�\C�A��X	}�������G��tov�h�j��D��V����6:�#+���6p5��YG0�)*V�4�NC4�n������)����z��&�-<���u���#�#Wy|���(p��B��<&E�Y,>��y���z��Z���!(�����K�Z�M?BV�7FG�THB��k��M	$�4G�����&�X�r�+.*s�����Ng?��R5hf�?�8X���E���~o��I�GaG]+C���X����������$
/I��90���z�?�G:���
�o��������Y�	i��n��t���"���v���
�RV�R�h��2~,�H����C����
�_��g���������';#Ho��B�i
�����x���-���`�]�?�o5�go�����$U��#n��;r
v$�	"�����E�r9	O�/��dA��c�O���Sl R?�����&f��(���Ju���������*(���:����������l����~�F�}�a�U��EZ&���:b�#K��o�$�m�^��hK����g8�$�L���f�����d�����u?�P�7�D�W*4#/��:��
k������:�+}�������l�����AP�\���%��}�/s����k0G0��������H #��So�|�MB��XH���a���]
 A�4V�D%��.�{�y��G��'�����Z�K�r�8A�[h�MO���K�b�ca��dX�G��^fh�Ge��K_%�D�<�$��������[�1�.i�Yxr[h�hVNf��y�������9d�p�c�^n	��j�G�jX���l�A�|
#kxCw���G2]N�H�����!�_��oO|����X���#��P�9m��7)�I�k�=�,�����w�X5b��h�����!�*$����x5�a�F�E8���.[�u��v����i9�O�X��%��;m8PB��f���	&��"�t�%L�
�]���$U�p���?�����F���?���X�w���<���]���n��P��
L-��R��:�*$#E����b�0��o��dN��av�:�L}�	=�0u�������}p	;x��	��|�P��W�VW�n��A�?��H��q,��W��`�c�=J����
��toVn`��g �t����E��S�U�����k<#��t��Z�M
N7�$RNKz�4�����'�w_dM�
�BZ��ae��"v�@��9�����BS�i�30q�
g'��o���%�7�l����/k0����[�B��0*fZ�*#�X�V��ev���]B�k����_ ����z%�,�<�m8��%���J�����an�#0���������Z�*��MFj��O�\���z��Rj,!�A|#J+FcOd����X��55�d��jb���9)�4����
���\���p��E���=>�)'`o
�dWN#�q\M����@��}��r���Lw�n�b�v�va�\��f8�fp"�}
�B���Z
����_�G4����e�����B�H�wY�$��C���D�+��{�-�7)8�y�>�fgM:cb%'K�6�"���.�!��	o�G��7�������g+���'G�*�\�k0�`�X�.%�G_��^���gXw�H�(�/(eO��s/�R��B�����$��x�i�'`��.����IDn��W��(Eh����q���$�����������e����0�@��N�J�
SH���(�����WU�=�Y��,���P��]/\�{��b$�rT!biC�v���H���I�sE�%���`�d����8:,��@�����"��v=���<g#��d�fr}}�zr�����H���
f7�p�t1�j�������9�21�s-3<�fi&�{/t�}"�St�hL�+D"��=:W������~(��X�e�
h
�_�;}�	U���� �����D�3]�1������~�D���8y�e�C���t6���d4/cv��	6)>�����B�����/m'S�"�$a	dt�	"�!$�����3%,��nRP�b[��c7�%h-�P���p�T�}�9/�..������8}%&?�^�`�n"N�>��#c�i#v��:�C��
�����:��������������y����5��%"Sg����H��`��a�B�$�=x�vN�B���W��E
�i��TCG� �V[�H<)���_�%j�.I���^����X�t��g����Dz0H�z�*����	G&�t�������}��`��l��9jl�b]�^Or�drysz��	����������
e�S��Cl��MBi6�C��*o�Gl��/��E���t�9[
z�[:����-|��]w���J��u$l��.C@5kh�B]+�n���P_}���a�`���b������<�/���d����]��M=�+0X�`I���8���Q�_8�� �� ���n5��V����UaG���t�����t
��6Gl��!/�s���
����&|�m��9�Sd������i�>$V?:�������Q��'s��pj(#��W�>�#�]j�f
t	�"0_��.+���������v���~W���I�������&M�k��ZAG��e2�����a:��*�NZ3�%��X���W��E��4�BK�B�x_}~�9$X�dt<��>-!���B����:�����6��}T�K�����/.�u'���E�~���K@X�,�&����7Q��%�J���t����,��G����`���RUXBzE~<���6O�;S�����lP<�;mo��AG��=�p������Y��-��'V������$���BK�x����#{���J�M�P��`��&E�B����$+p����5<�i�A��Q�CH�
I��,���
J�2��!�������(c'V��M
��FXJC��_����@UH�ikG�����&�ju�x����P��h�����g�^�sx�����"�q����]|�����u�j�k�����q�]����6@�h��&v�����Pp������wN��xI�������<o5���B����
PC	��R�O�$r^�����nng���%"^b���U�N���&���x�,A/�K)5_��l�%�n������y��D���P�:�S7,#']�����i�=d�(�fa���<=w��F���)������������P�����rO��j�J
l[�$��6V	�l�Y�)����hQQ�iW3���
g�T��9k0a����Bl��h��Z��`
7���9��|�1���/��oM��\�9����M�6}��C_K����K@����[utx��PB	�����������'g�/O�_����o��!�hD��gg�n0P�r	��]�yk�g�n00j�R���4X�;���,T�-��T��)����s���=���#������e^�h���8�8>�)��
��Nv�g��u�`�`
%�����X�y�]����d���|�5o��R4@�����:>��gg�����������0]v�o�__c����TL�@{���d,}_�~�L0e\�^�EC�`B!�t�L�w�
t/7)��Q���J ����kT����L	����-���r�+(�-�9�*t/O_b���{���UM���#���w���`��
�q=8Y�x����	Q�e�b�|
%��J�I1�K-��5�w�g�����2�)�h~a���MD8�Z&�'&���Q7X"Z�F����C�Tf�7��e8����7��\8��
Ef�e(uZ�����<�>���D�^oL�.�B�����@;Um0<������������	�4��A^Ia��=����_��si8�*�<W����6Wn3��~���["c�Ng�|�6���`������e'�gf?�`���1L%��l�at���a{�_����R��|wr�S	�+s��@F���a�_L.�����_���>;��B�r�����k<�n����>�����D�|��a��&��^���m������uq{������$�
�5�^��6��~��B/��$y��x������"�&a
���41oo^}�$\�$�<���X%��{���Z
���l��oq0b�x��K���b�*��p��#�.����+�\�D9��/�I���:� @q�8�^1�*(C�u�9�J]k�w�pj7�D���z������K���4��n`����T�+/?��S�K�M2:w~`@'J��H{s����s�k��P��G��$�^O��ut�J����8����X�-��8�b� %K��U	�2�����,���r"��Qx��?�.�R�K��D�HL)�&�
����4Q�F=��D��-YB	B�1��aD���
�����j���@Q��(XB�/�Y����Q��6�)h�y��jr=������������}�H���:�q��Go0���X{�)�����������]����Y�Z%il�]���������P:�$|����<�N�$� ,p�b���E���\�A��**=,�DB���L��'�����&���BQ����Y.a���oP�	�JL~8����XT\QPa��$��Zy
�Z��	�:K1����;���-3/���Ki�#�L�+ ��]�J�����t�#�~����P[k��OE;��n�eb�EAp�`�W����t�b�d��*�;XF��>g5�"��T,���~^�FQ��r��X��l���>������`y��J-�O�E��^�)�O0D.|I�7�����O�V�B�6��(����a�"�h��#G�X:���%�u��,5�b2w�f����,������Ad������1fKl0�B�&�&\�	��8���l�d(�ij�x���-��o��XO�\4��*���OY?�f'��#)-t������s��`
f�-��ys{s��?��A�]���7�X�>z�3�w}%�=c���jP�L��mjb���������9^��������ug�GWY!"W�������+�W��z���T�`��Gp??�
����#�
0��� �R���:�o��B������qg)����|�'i�hS��+t��AQ&�4C���`���X'�A����A����QAy[i���AA�� R-\�}]J'%�
Dr�@�Cj�s �,��HV/TH�W��/��� G��j�:�z�HG[���s��]J?��������W2�
���)I4^]c	�h:p��<��3�?��?�&�Hj6;�pO�4��X+�dY0U��I`��F�����
9���*��7����	���I��d��(���@��@W���l�B��,M,��R��#`J���bZ�6	��1��r��\��T��5������jR���B��u�M�:Kp7)��<�	���h�T����`g�6|^HG����N���/��1���Rs4���2<����9�CrZ��[�y�����>�!���!���
�IA��e*���X%��k�%����M#��4��J��B�`	N:/��7��#�B�����G���#�(T\���5��6�JN7���Y��]�U����U�y[?D7FW�����5�{�;qR���)\%t�#�f���4�0u��h�:�-�����P^��@�n�[c5�����'�BnR��=H)�bFS���[�X��Y�^����n�t(T���5�����(���N�RI����I58Fc����X��(v����`�����x�p�r�;u��FI/�#(v�y):
��R���>���h-�d��F��+&�+j������T��E��09����������h�Qwb�fq�����s�k:�>��D���~nQ�w�=/69[��b����������t����br��dr��`I�}

Z�:�s���������"�}��B7-4���������{�A�X�����#�`�6�(�"���4�7����|/����PV����S'�����"�b�x����l(�$o$\�C�����G�����dn��:��;y�p�����j�I���L��y�U"����`	�&�$����T�����dx���:Z>������������!I�� sk,6��}���<�3���Z�QX�{��Bg�H������I���+���e�gn�)y���A8�8�gg����[l�DN������&
��$��=	3{�j(�"��xf�7XB�9�u�U��
�T`Y
-cN+�;������e%v��L*��Z�e<����.oqp.�S���"kJ�����Q�y�%��>��|B��*_�J��Y�����L
o\*c���'����"��3��Z�7e������V=��#8g�ho�!:���n���L�N�!E��4v�
����.^������[�^���������������B�$g2iDzp{�.A�^�^N�n�'W�t-4�k��M�u�������K*o���!�t�v	��&�7a���$�:<�����Y%�lq��n��h1u��o�`Gu���u�7�,���`��+St��"$�"��I���d�lq��R|u�Y�Y��/�2�$�^�
�0}LWD?Z��[����_�������A_�\^�����#��\���FQ�P��!�\���M��"�8�����<D2]N�K��A��T���+�H|Oe�m��Zz���-��Y0��Zh�h`k����5�<&�"I��3
���4k��6t�a�,���q�J������5�".G�An^�rK�Q$��[��#,��!�%���`h�^��P������
+^i���G��k(!�.�v+TH�2c�a��[m�k	���H�>��n!�SRZ��-��8E'lq�����/'?���+������w�`%����������`�J�����v����o�r����si���IA]C�d����<�4�RPw�[L��x���]j����$�}���k4g�,�����u�Z6J���\�5�&��\������o���Q����	U	����"Ts[�G�R�bZ=�h�_'���
��f�������VL|�Y�����d�
:��8�I$�.&m8�^��J�y\k0M0�)zan�-��6�I@/�s�aOU
��Bb�������,u*R�%%�?��K���:z��V���!x�����Y*7��l���*\�E�|(L��X����.�}y���6�xF��P.����8��:�
��r��+J�����T�}*�`��7W��4������[1������\T(�Hx�1��X�s��#hw�T��f��������Z|����������g����-f�I���!'M��yB�^>���b���o�+fq��~o�{#��@��
E�X
����?{R~59������V7I8��^$U?����E�d�dA��� �S�F4�������j�G��=�����Fk�2��e2z�Pn��"���s��p3,!���i�%����?�e�9Z����o�SQ�9v_���^�,~[|�FmE
���k����P����K+'�o�q���T[�GM���+r���t;c}���o�ct��f���{ �16e
��}���Hr�Y}#����O����&!�����}<����ce%��\��q�cZx��p�}L����w���!�
��R�*�"���]0-���N�=�����W?-���tk,�5����P�����hu�&Lmvp�l�;��4�p�bL7����A8:t��C#��lb�������6���(�t��HW���������X-t����Z������or�����wa��"~_�)!C5M�|���a���J���h��������j%� ��-8��B���#�>y����6��E�j��"P��a���� ���\))\���/���M.����3�nO�P�}j�.����o�68�Ze�����V�e����n��/�zpTT�p��m�H
"�h���D�F�Wl��1�u���\�����z$�<�5b�-����,�S����o���M��,z�e%��-���Ni���!�����}"��B_K�`mRI�W�w�����M�7�V!)gMX�����D�j���,�~��g�-bT�k���������#)�����Wbr:�`^2�U.1%k7���T���2��s�Vv>�i���9������9f��H�W7���u }p��.V�Hj�)/����\�aY��odQ~���&��>�
�a���C��8]���zX���&�*;_�&���[�@^�%�h�o�b�� ���.:�����
�K�U�!�����day)���p���[�I�)4���)^� �������������%��[")9E�L�E�RYb��X�{#�����L�?OR`��z��l���-V��[�I*�;G5� ��:K���
����{�0���RV�LzG��F�����\��`��KHAUDVe�����fb���%�h��W��� �������fzs�fr}s��[�m��E���3H��H�Oc	�0,��\)'���t���;-��t����G�Z�	���M����wg��� �4�@3�3VI�/A-��,���������[4D�����%zg�&�x�|�`�t,#5��%�1�-\m���:��fr~}z��pm�����7���?�F$�����|���$�	��6���*	 �j�h�*�-1���<k+������k�m/��=�]d5�b��0��.m8!������c1��\3����y���A��k�}�N��T�]���������o����\�v~T0	�`�����s��*�=G����a�^H�������/��G���D�$�[����]J<�2��! \$C���� ��7������X�di��-��.n/�lr���B��.X��D�(NU���5�����k�{��6�pf�%S	��"q�H���Y�>M{��J���t�@}�/���iF������J��.��I1�l���C��P�Z���u��Tj��L�+���p��#sp��y�r�����h�w�qp=:��,��L%��%E}�c��Y�p)�#����J�u
5���cO�h��������������������	I���p����H���p�b�@X���*o5�������hp�_�-�.����,�+�dY��-8�#�`�����pq~q#&���Y<�m�?�b�X�7��VsL���w�(������@%�H�Y����������rRr��:��������]���`V]�����9�?���#Qe��I�i��Ob�j��P��^�X���h���-?�+�69������$\��x��H#p�G>��j<�)�\H��S��[��E�b�$,p�~���_f?�~����0d����3��1j(�vv�*���\Ai����76i�%����g0pR��s'�{�0���'\��������.}�]�r��K	$*�v���*��8��q��j�/g�����i�-4�=����7a�&�t,�3��`�`�L#�#�vr(�N���2�f��"����o�*��&�_�E�c����]���?\:�`�}�I�N��M����]�S\
o�G%��Ua%wY��'��U�Q������i]��|}u|�e
WH�����P�ECs)4ml|
-�I,������s�0.����;�i9r(Lx6�*���X&K
�_�����k0��`����X%��^�O{�����V��;��i�&��s�H"�W��\H�:�B���im��Scm��Z�9����Y!	"�3,HT	�(���p��#��O"�$�������7�o�s��^��&7��LmRP���L9:��A:xFQ��cA�
�L��!�����'y��"�m6��I	^�����t���r�����$V��lS�y�f�3�b�fqV3��<��F1-����&���27�E{���Y����d�6ug7�tx�n���1N������s�d�w�L>��U���B�or�z�$*��,5�` �:*�����xl�	��Wb���5��^�	��C2kH����@�:���}��I-4�^���3�g����	��\��*s��0�����������������Z
K�����g�U��*����!�6hR���
�\vY=]�������v�+m�y���;O!���+��Wh��M
FO�Ar/|k����2R�C�S\
%(x`���|���(0���)1Y����`R����g�����%f=������|y������ktxs�aQ���:����{�����P�E���I
��������:�=��W����M^O0w��d���O��_>��v	�+�����0�������P�QRC7T�f#�.#����+0�PAY�'%������
��5�8���pE�.4��,���m{@<IFX[8���TU~px����q�%k���s	�C����8��3G���{a�Ex�`b|�/���Q����2�w���p9�x�THF�� �`�I�B�^�`�i��A��L���z(�	���P��2�sE:P��0��N��~*��4����iO����s���]w��"�`o>�H'�"V�;?�k������`=�n*���=J}O{�.���Q}.����5�F�%f7Q,��?2V$C���h������X�Xu�zQMf��V3<EE[K�U��/�]<�$X	d\��
@���� 	��%�����-���������G�|�E���k��m�=�M�����f}����v�E��U��!�ih��M�.�M�)�B����p���B�\���g���f�_��9��D�^���:x�xW������18��2:�9:L�@��Q���I���5����'<��(.S%����g�R��Du�5��JH��X���\{��G`��u��E(������/^�Z��������p�(�z�t~S[Y[�B�t)b�dq��0)7)�P-����.�HN�.k����������$���j��,9�d�M
��pF�L�0�\�qM��\�f{���I��{f����g?��?���
�������M������$"??��?�G���.�'����m��O�h�to��z��mPn�$�s*X�V=�T����%��d��L/tV��%`UY������0����
���@�|�O�o�������b���a��W!	����
9�wsoT�P�B�����z'����,��>�5����r��h���2P����j�q���N�{3�>#�#��j�O;������
��H�B���S�=�|��-e���+��*3��.�g{�_k(�!���58���4�P���Ao��Y���5�k��cH���~9k0A��$U��s+��>�x'�,��j�h4������J��c��C#V2�`}�Ct��\��
��'CGz�p�X�$��O���9����_��%P	/���x�0���M�\�B�/��L�j���0�fQ�9�`�E�\H���`��`��
I�_c1�KZ)�)_
���������
���"�s\V� �����A"?�^�Y�����
���=��{�^�%������K��1�{��b�`���"��_8��	�%t�����r���%���`Ei�hm���Le��b�_%�H�x����'%l���:���@X����_X�_���<rt8���<{M�X)
t�7��TQ|���g�lkt��-����*��m�}�{���q����<�����[O�"���������J����!����i��L��*��:��hN�T���~
��4�u\z����xq{#��B	�,L�d�y�L��@�����R3`�����L����P	w����T!y~����mS�)����?�n�&2I�u�Y�k0'4�G�5*gnUHBH��R�c����`ZMp=��h� ��}&�>�3��+��U Yk(��H�;��!�5���LV��|�����~*,�i]���]�#��Y[hZ��\a�6��n����(��o�!C����C��f!��S!�Q�����J(K(��l�)��\m��\)���iO;�U��4v���\W���[!	�a�C�zs�
k�/�+�������e��%er�rXz!���Sx��z��^�e���{hC����|������8F��
v��\���p����o�%c.�M�������^�����l��}
�]�lj�����;@Xy�p.'������f"^������[�<I��I�B�"��,�.�
9w����@4���*�������;�b}?���m��j�YQ(���A�%�	�ZK��D\�P����b�C��RcxH�
�����D�6�2j��P�'h���4y�L.�b���g�tH��O����������t1�
-;��R���Nrz�keX�~
eTr������\��P
�_��QVa�~�-4�I7'#��7��&\K}�L�{�mPp�0�*$�=���X��n&rmf�9�#]&�]{&�%�t�&�7�o��o�'��c��<_��[o�	��D�H��G&��!60`�\����B�:p��7xMA`�
I�w��a�&ByAz��r��t�77���VG��TH��=���d�I���7��X��l�%x�r���a������u�x��b}��rT���0.����
^�
���g5���9��jK���JEi/��_^M.��	�
���Y�'6X��{�����5��^�
S�5[�i�	[�M��w2�Y�����z�A�6����mtpv�$�����L�����4#.a��`q�����t
��wNPA��N����`df���J !�\��L���kp��M~����`�J�e�3�����m�}��_�S<�����8VH�Q��g���"a��F����0������K$��#��7�q�Zd����r�����i��&Q��G��*��Qj�[�����n;-���%�d�Qk��Hpg��x7ut���4;l����|+�Hn�����b�j����y�����l�m�g_���Xc��
I��$V��@�.���cr���l�<�#���(�n,U��$�$�L������fJ��4#
m�[]�3,NZ9����n�Gl�nS
�pc����S��kl�\����q:�m������h�/%�?��[��`��x:c�^���,�.�m��^Y���RN
��-��3��
��53-r�h�=:��PCY�J��������&��`\2Ld�n&fp��,[5�j��PN��s�J���
��0)�f�C����M�\a�|�$��M�*�	Wc�����#H���.^�8��*��t��a��m�+�����/�/,�?^D��Y�����$U�����-<�?���'�P�����sM�\���������w��H��t�������
��i�9Z�7�K2���U�C�������`84�[�{t��B�����5�V�g!X�_�P=��5X���������n#
�����u{������7���s	��pF�*-
s(�U�meK;=*��GQ�-v��dn������,��\���TH���#�<�����DR�G�pA��8JL,��������O��^3�$���,���,����3
��U���pS���K�������L;��b8��W�2=���^<����w_�"����MCjl rC��h*`���{�^�S�A��
6�a���Ml�rh	�d�M2;���0�1%��"�����(�`�-��-;fmR�/���P*pkp�����n(L)Y��I�gZI��Y*�
�m0�/����K��������-<�t������X5]d��G�n��l�<�K��>}%%��@�x�m��z���u-�����R'.�.N&/os�a��h�c{#����1��L5�����#G��]���:>����B�W0������#���TX.o	d��x���Y'�\�6�����THJG'.UP�:�0��.��u����B
I
Z����}o��n��@RK��&�HKc����GW�o0P���M�,�����L�����TQ��7x���^Q�m�f�P�z��������jq���"V�������D��d�������p��� L�����6���$��e}�I��s�H���Q\-��XD�Z�9�|0K�B���		U�
Z����.�V:��!X���\��SX�A��x9t�����f��-�-fd��Q��cz�4Q�*�[�kq�7��Egr�gf��s/�a}m���)*�MacJ��T���6".e���]5��Y
MDxfK?���J%�Q�xO��
a1�m��Gn,�-<
h�B��?���������e����O������?�{H��<�ZK�����3tn�����H�gu|v��ruq�yc����{}u|����������X6Z��_����<���� �,�y��$WA�a
�����c��h���P��Z�'�`�Y	d��(���\��7Y�����2����eM���t��EMY�g�'g�o���.�y��-fl��k�<_�"�����3�#��m�;���_�X	�C�LH`)B,�s����TH:w*t����<kS-�t�J��-K���|L��z��`�/Ck��u$�M2N���Y���m���Q���~�����g��#E���S|:4�n\x3.�������qR�cW$�{<����R�8��}���<,�����]�v���
�_��ose���i�?d��O_Ab�� ]Li�����w�k���Y���^��[5-���D�vsm����N�o����AUu;����f2���o�m�S-�Sqb���G�}
��!�;#��\�cp��	K���z�t�����]9������Z-J,��Kqrq~}su|
��lR0B����T�5���?1/�u�T����!I?����E�E�3��k�#���e*�a�l��`%���������������A�a�1��3����m,���S��~���_n���"��7cPr�-WV2~D��`�_��������r�W���+H�mNq�`g�T��L��W�`�<i�CF���c��9����&!�@�H���������_�������O���_�w����C���!��BR�X�q�5�����2����������M�G�'������\�����p�������m�����&�U�v����Y$��&b%��^��aNx?�����}%�Ih�1:�i��MB��%<E��R��pQ5��>D3�w�.�b�v�WP�
mj5P�~��[����0T�����rT	X����������#�����e���%&n��^�,������K�NA���^=3U�s��P���az�0�^��,�����)V�����������J���md�s
<��g�;���/���������/���{a%\����*��?�L�c8����sS���!T�
�llq��EQ��f`A�6	�jK�
�h�lW��\.H�J+�2J��N��9�J)����Il��8�h�Y0�d00�?���@�v|�E�4]r�Gmx�M�h���3W%�"<
&�!��4�r^K$�?j�*�
��vh�/���% ���x����U8�`����Vz�L�U�^�Q
X4���VPN�������-4�/�My�R_�S�V�mZh�s6������
�2"}����J���b6%������c=�K ��/Soe�;�0��.��px���FSp��
��X������f��(K�126����p�&����+;��h��J���qo
�S��3pqt��T"�U���`�����+8,��x�n�(V���_8I�])��-���/z��^��,+��"�y���F<t����Y����G�w=��3I6KR��WA�UI��U����}�A��v�P?Q��`��N�����l�����/�Q��r���2������B��A������^*���������6Z��E�JZbf+�����	��WhB�%�����-�n�	��Z�#nR����|�������5��������Z�-��-S�$�$��\�
NH��A�[��`	�
��R����l�	���u���p�l
e�6�E��-r��_7�K/�3��-�m�>c~�]<<q��d	f��=�n��$<����^__��������\�/��T��6	��Sq�%E'��X{�����	�����r���B���pl.��r�\_Oc��b��_�o��,�CZhb�!v,�Ma)����<[E��@iG��T�����fK���E�_h/��q����[�"y�:��',���P�������������(�i1uR��Ree�/�P%t4w}��^��t��?p�x�e4+������1�?���->M��o������u	h'R���:x���Y�����&f(�t�b��v��/������!b��U�L�"��ie���+��rq��ZN�E~�����U����
����P���V�^�w~]mR�TH��>��>�7��aw��^\�����h���>LM��`��������g��%��o���D�>��<�K���eK��Jt�SE�Z�������t@Uv7#�66�����}�0��K1�:�h1-L�9����ia����5�p���K����F?�
��w�T���)���x��lCZC)����&R��}�w����F�<=~}~q}szr
����HH�2/2I�ul@���uU��^�V��4b��a����r8��w`���p�&�%R���r]��^N��t�=v�v	�#&B���PB608�@r�r��?���������u�q�
N������0��'o��/����C��@����
[.�c�s�s��%[��91���T�Y)%��O Ic��&G�8�v���mE���z�,�o�����gj�|����J\�vF����LW�����D�|a���<� ��/����o��>�s+�[�\!C��X�G�f���<��1��\*��#v
�I��=f�����,�g����8F�l�q��	BR��UY6`�Ce��1����W	�}��������9��9����c�bt����Q(������M�g���,s���38=��\]O���-4A���Xy�z���
Khr1�:���L��������/����8�=;��[������#H�6��7�#�������+2U[�J��T�c/����S�1I�x���6�_�>����E�:x������`�_�������/��5;�����L��1L%�	�PZ\������_�oo/n&���������X}O�(FG�6XF�h��0+,!����K0�b
�3bXv����+�d���JR���c\js�-qfU5��o����_���_}��������_92P���u���L�'%d��.���{�&�_���W��g7����[l����.��Z	��s�FrNiu��'��#ca�
�.���"�3?��P������`
�_���/N �J A�@+�Y����UC	�B��Z�$��7�i�	7T9�%�%`�^��������t�T���@��v	F�^���9i�av���b�o~��9*�%�L�
���T�	�(��&���H�k�xKo00��-�$���7�y&9j&���IA�9Di�`��[�����������������7Bx�J�9M$J,�4	�^(f��1��?�����������m=9��|�gZ=x	8Q��������K0�t��E�5�*���:���.p��
XfB@JK�U6����g��b��������6W%���f�R���}-,Zb0���S��������	o�����;�%t�c���[��
���2�ID�%�'�%��E�ic�
Z��|�i���0��fmR�)����|�kg�)l����M]���=�����o33�t��Y�` \3���a��	-	��s����a��%#�&��R�{p��6�����e
��M_�����_y����`�+����`�t�=�PU�������"8����/*��
I8q��&wf����Om���+�Z���X���`�������"#���!����kg���������9ut8���C-��/�����:���� 8�u,|���p
&��E���gt6/Qk���g�?4����[��������gm�_%k�����!�������WW�U{�M
����*o��#��MqM�?G�Y>�;X�5����SH�����{��1��Jy���e��T��4�_�>��mr�>���|��|�^��{�"�M���=(�;���-
f�9����6��i�.�T#��ZVT�#���g�l��AUs�*������a��Jw��T���R-���*�V��]CG�~�G��.____�:=����p�����.��~���:�9?����0j��L�@�>�e-4A�T����,3�v����t����H�q�+1�u ����<#h��X��
�gT��[��/��������Sq��f{$h�g���B3��]�`��k�H�d����7��4�;�x�WG_
��L$��$�.��3{W+$g���w���������HR�AZs_�>�l�)��2��z�j��]f�\�:�iK��@���a�UH����\"Gc	'im���r{YM�S�k����,�//�������!�&"%�f��-rV+8��f�nq<��g���+<_}v�u���q��8�c��kZ��ukt��-b�Eb���k0g�i�_�"�lP��=�g�K�H��s,A��3�K C ������3P��������p{0�i`������5I��W��_���������+���^Y�Y]�E�L��*�M-������.Ff�7
(�E��� 1����@�?���+��@S����{dU�Sc�#t#3��jf��~�{��'B�-1�c`
��t�N2N��A�rBF�������$6��OU�J��l8(���������P�����f8B�dnc)����[����^�`y��)F�}���-F�E��u`@�A��i�	�?��{I��?F�(([��yXf��\����_���L��4Eo�
8k����M8�s1�����ir������Z����(��M�p���f
�N��8h���Wz���6�W�&���.kG��T&������z~����?�T���E}������7?�������R_���Vo�����T�O�����8����+��&�p[�	��{�m��26
%��CO?�`w��g'�������'���
BN\���@�a�\��YC���l�Pi����l�5�`��8��B�������K� ���9&�jN_=�l�#������	�)�[���|��0���&�y�I��58+p�53��C�`�&#t�	��.���S�)N�a�W��o�!�p�@
���}�+%��|����h^ft��6��3�F��9���M<G�k�K����
`}���+��)����-��A�)��TC�Iq���X��0���j,+� B�Y5��~F���BSJ��rsZx�G0�3��
��X3I:)��`�ZO[5���>��McUo��iO�A���OHM�E���:�8����|u���a���$���#
4���R��C����������vo|==��`�&��Y�]R�7)������u���mF&�U/Z�9���A�;!���E0+�j�S���^�B&XVG	$���U��S���:����g���[��	�q��v��v�����D�5��Ly�4�iVc�f�%���2N� ���	YB	oV1.{�*(�.�'��N�h[�����b����)�tB]���������8<�8�������S��������	������V!9e
*��5����w��p��-d4o���������8�S|p�g���Y�,���m��(M����M����sx~q��Jk4/�)����~���r��j�D�E,��Z�s�T?�;*t�G2��wv�L�1��T�:�db+,t���d��������MH[���gY�������=�`t1*.��Qpx�B���~�U��8i������#Hl	�*6�����V��J�cqv�;��BNI{�s4���^�������HBn����m���xO��s|�h3V��,�����HT	��g#����+e�rg�9?FI�9^(0�Y!!�^��Pj�t/��in�a=6j���v�x�������7
��@�:�(��|�j3���[�K@����:�O�6I�B�`�������w��q��?C�*��z�(?���ZC	�p�q�q���'��[mOg)>y����'��J���a@C/E�Ud�5j�(�������&G�TD�,Z�p�3:3�����2���&���Gc��"�T�'��,�Q�d��f�e�P7(����en���2-����������Q�N^��`�6��Lx_a��T=P���x�]�J�V��}4w�N��e??<>�4�@�:v�|�_��G��XHh
�^�?��$c6�^���w��J����8}��p��x=z1���3l���[gW��D�
r�Q}�������7�N�Cd������j��5���na���M��R/A"��9����l�r�M��eSB��s#}4]���WyGp�^�,b��$d�5W!)�;�iG�n����
�_Z��|��43`�m
��4Fb��
��.U�0D�w��i����D\/8/~�&�F�/��	�od���z��+9������B���l��>�`�m�&�^K��>���&!���h��9�I����sO�Kzl����m9^*���|���m��xD	u#�q�Z";h�u�'%��px�%�!�Vg�J�yj�� ����Y[~5��^������Gcqx|0��&�^�wz�?�����{���3�������yp���Hr������_������������������Y��5,���
o!1;e��^����8b�#k���|�L�I�b�m(����D������)�����4��!V�a���w����P��}�-��N��
���5u�����BF��-|�fx������I�X_�e`��
K0Vs��k�Zx���.���Wp�V�j����NOm����g����{�� �l�����5�Rx���o0(*yD��ND���+����\���<�K#(p�$����C�����or���P^���/��Z�k�,�����	����K�.�N&F��|5��n� ����A�����"�i����S�c�N��J ����T��-<�f�8��	h���M�B�������������b��K��f!�@c�.����J���m�s�vZy]������Ji�
���pm�y1�m�l]����[L���=�&�{y3mT0��%(2�c0�p7�O��3a3��o���|A����zk{�k��n0PnwY,Ln �*���t����#q�L�.����~�F������kpP�[��hs��ZNA�q�����M�"p�a��1�;������I��<���H�6��r|����[Rc)��rk
�CV@�{����������%������03JM��i��'�C�o�v�a`|?8o��&��VBuW���!�U&�c�������F�i�"��+�WR�	N�WG����5���u0�f�;������auT+��r�OQA�R����)\�?w���!����%��B��^h���w����Y��	X�Q���|����$����Z,�2��w��>�v>��$�|_J��4��6����0*�����g���G�.���^��
���0x�����:�R^��{�
Lh�Rt�O236�9�e��^vt��TF)�v�F��K�%JF�c��w�D	���Lq���%:���v/*�����[S�mR�� ��N�Y���
(�@d�??�����m�����6A���w
�J c�0K���
�����~%(����n�3~�e�Q�8������a�x�s�8�f�
b�|���3HS��^������@Fz���`��
����V��>N�-��ek�+#�����#x��N��'�u%�����1q�A�F	�|.F\�wE�+��w/�AO��o��
:QU��C����zC5R�:X�
�����5�%J<��%{�"���a�2��K��s�����l�0���k���}5����P������
@�,X�d �o��SC	�yQ�eY�����8]� I5t�;����}�K(�b}���]����P�+���.=	�~%gg�B�
^Q��$}q�VXJ�%���r Q�*��[�%�j
0�����Ob�w��J?���D���M0��b3���<`�9�M]��5���C��^
0��M0��2�����,���5��t�&`�I�wnS����OH�m�&)�`Bv�[[fO����9|_�	Y��%���0�j�,
�?D�P��t�}!U�hW�eWPRj�$��l��&`<���>��X�,�o�	>�X��Y��[��'�i��a����y	��A��J�����2����?�����o��I�YIE<��Uj/�pu�&��
_�)�����4������Ce#Y����U�_h&o���
������i����k���d�k���&�{q_���_���������G��W�Jal�����+�yE��}�����,�6�S���	��H��o�v�%�[�m8P���>����x����v
 ��i�%�'���[4��d6/�����`�h7JZ���5^���/DI�k*��"�
��l�����`�I��Rq�61�M�H�Ne��`��
��rK7)(W��0�$hmmRq��o!�/������O���N�����|n���h���R�a7{���^�g{��>�V��G������������T���lR�TN�/^��/�gX�J>����V��p�` �yAR��HM0G�0[��i�$����Rp,�{9����_~		�``�qW
sT��%��=>�#����h<:'��q~qvx�=�a��Iz�gh�;�!u��'93c���?���8��-�m
wM�T�
RS��KW�k�V/�-���`��&���)n�)�f��A[C�m
}��.V��*J�Y~�$4�>��<�g`��6	������%�xA����V�!�1>w��\��U����D2��`FN��]\�����WK��Z��DGnB=�����������E.������'���M
FB@�+�!��������������P���a�����d��Q��
>��7Y�5�%�����M\�F%��+�o�p/�M���rX���H��K��lqt/�����������M��
��m0t/q���^ 1O}�+���9m�&�N|��s�O��c��.����s1��[!)�����:�-9Q`��Hp���h��`~�����D������������q�V~<+�P,����}4ut�g ��>���i������%��r���w��v.�D���;X���w����/�(����Q�p�M����U:'�v�%:����
��:���xbT�����M
��)���CO���|��3�����8�����5���'x�k+#���E��,�K}��L~N���s/�\�g�<4'���l�?����@[��z��tLK�g���-�jr�@���y;����3�%/��K�
�����=`����@�y����j�,���k�R��Y�{����h���#�'s�$�h����WR$����	'��#u��x�����*c�����\F�=��'��}�GX����d�Lb	:�hB��
5���<�I�K�o��'x�`������`��>��Y!��&�����U<t�]H���C����-��=�m��>;��n���;�/�qQ	����5,��:<>G+j(��K��v��^���<�[O�1?H�4�WXF?�k	QI�������@3B�w\�8��l��T��(��T������@�G�3�����iDX��:�����d�VLe���\s�**d�v�_�	k����
O&����v3�SIb��WA��\�,�YA_�
Mw��� ���gT�����I!��t4�W��8yD�8��if��!���@����wQ1��(���2M8cEc�L�����:���k(���t��l�9�)Qb���?f�A�����C�
�
�K�u�Y.,ek�I7�+�X����(?�L�5�Q�dm'���^|����,���B�%�TB&U�a�5���Q�
v����K��C�%�Q����#�ux;�����v��NeKe,���A����u��]������W3*����|��h
1oqt/s�I+p��������`�t�&�opPR��[�(�k��\��<�G��i����FCQ�B��^�$�W:�P4�y�aX����F�7I([�X(���&�qU���#�X��	g���Yg���nr��j����@3H� R�:���q!d���]�T�����9 q�$�9���5��j/��8x&�Ybn�ip�������P������X��\c9�8����R��p�[�p[�k�T�
�_%�����
���	��2���<��e_�:M��&aU�L
C(p�!i��<y���\Y���g���q+	R
�HJ(����a�U�qZ��>u$>��4[���^�6�5�B>4c,!e������f��h��P{X�Od&|����Y���u��r2f3c����"h02��`�e��W�J�x����%Q�����3���
�(��Y,���r
&D9������C���D��+����lr0��z�P>�X�R�r���'p�rc!��������S!	��s_��u@h�9Y�.--��,�I��Wt<��q�I��{�<��g�%�����p�f`���Ht:/6)(�y����C��yH�OG��n�pF.�w�a>�Jy�xs�5�",��S�m�	�W�3_8<�6W�x��	�S����cg���aJ(a��`���.�M����.��8�D=�"����T
ed�$�2�N�Q��G�[�����j������G��~�A���RY��(��>r�-���^����HZ	dUM9�KqJ����n��!+��UH��^�*$���O�!�t|����KH�
�q���U�_���sC����a�+?@�"k0C��2�4���J@�N$Q�����f>|>���o����
4a���MC^fa�M���A� 5@j(AT~�(."E0&n��{�'��!i%�A���A�=z� ��N������*�g����.��Tm�v,�P|���������A���GsHC���&��"UH�.H.E�M+_aYh�j�)[���{_���'��S�g���}�H��A���w\�ot,��
M8���m���l�
9��~Y1����I��M�Dsy��lq.:���8A�u�$h��5x ���LZ�vd�4"���E��n�E`W���6��������3q���.��<�$jn���]<�v��Y�u3������qVn�&"���W���s+�I4Eg�fd�NU��VPF�F��R�@F^f�&X�P�a:l�	�k�� ]�x�
K�8@�����\������:����}�[/w1|usW`�e&�X�r	�}�N��[�2"Xa9�����N��D���� �^��x�`?�&��E#����E��=����0g�`f�4B���3,2�2��-��@�=�"
q�����^�[e��E`f{�4��=Oc)%;y��;y��#;�TX����3h��"�Ir�
v3�M�p<�4U��|a�rJ��j
��+�v��5~9�N�6��U�!��D�~}>��8B'���8]����ZxBU��-=�_q�*���� ���uG�u��Yl;��t
&^oB7�I��{��J��WX�%?N��4*���&�&`|�u�m���|��I1�[[�ZWg5���& �g���-�"7��hv�e�^���d����mV�*�/LTM����&b���xb�+K=+����T
+�*���2	j'����8�o���;]���\�,I��z�%�&XJsfl���B��<[h�}�9�I3G�-��8���h��%������?����a3SL0�PRO�6*�"��F�����.)�h��"bef���&����C���Z)��[a������C��@���F�Yi+l�����g{{{'���������|�v��8|q|r����t�R�c�lo�&`�EZ��NO�m;�`�^r�(/��#@*�v�N�T�1�&�w/���g����9�]�����>�{
��5���|n���7���z/�JzY�%�PVEl�b�F�����(7D��,��lY$u��������I�o6��0�h��c���en��@���0�vm����HsK��&a�.��9���T��(���c�cO=%��;��m�t/����UHZl-�j)]"k5�\���b�����"�������~5������?��������ps�f�W�_�>��8<9v��^snWX"R�#di���1��]A�������,����G:
o��F�C��M��/���E��~�g�m��yDA�c�m
e^�Z�nr������i�N��8x�xfQ����$|\�I8-|��n��@�
\�r�y9���@��k��?�-�3$��?�8�u�&�U�AUh��{���Z�	�2a��%��8(��B
%v��s�*�����%n��jp��l�TA�5���
 ����u�mn0��Pdv�F
���!���|�.R��mm�������B���x7���Y�?N3��I���\�����T
4�_4v@��N�|�H�m�y��$#�-h
TH�Z�����K��,��]4��1Fs#c,	�������L�34
g��_:J�IB3p�����iNi�#jZi����k0���xA��RK$�>��p.7���{�o2
�c�$I�de���M
�Ha�u���!Et�_��O�M��PR�P�z�t��Y��+wQ�b8=���qm�w����8�vCe�0�r����m��c��k0#�q�US5��Y�hs�
�����X�/��L�
�D\����?�(	��
�T7(��dbt��6�$q:3.�*8��,�[a��`������N�5����X0���'5�`�g����� 2�����Z5���|�������^	�,���x���/f5�Kb��
�E5��Z�,�F8n��h�����<���/k����[�-����YJ��\9��2W`
���c������JU~��zF�VhB��']H�l�i��_
4G��t>�"G��������#�����lk�)Q,e�a�W����
S�g����l�VH���V�kN|�v�4����,�pAe�9��C>����{y����=��sH=�
���8X��qL���<}a'eA�j(��C���m�����l0t/17G���H8��@E��E���D��L�}!���s�Ez��zpL�.��Y6�C�G������f��6�Ljd�X���A�uID`��LZ���c����0QtY��j>�kt�� �s�N�z��=bi��52H�p�M�� T�]_����Y�6����@�K`c�d�O�<�D��H$~���B�h�yLb��A{�E���su���S�Y0��,lr]��I���y��yb$��I1&�q��a4G�U����M<����_�`���A*b�5�M���� a%��abFD�bil��K��\���?9��X	q���K����_P~��l�
J*o��������Y_p/����\?C�eVX�95>�z|�G�����yjG�F^����f�9���8T�Q�D���5�{a}-|-��������(h,��I�#��|�5��p������N�%�����J��j���&E�"�����1��A��0���s`5�^Qcj'���-��?��K��-<A^0whx�@S�.�hHh�%u�`���j����!�7h>�oH�����,��w��y.�Kf����)sL�����W�I�d������]��Cld�!eJU�{�4��0E'c����f�d������\v@VH�5��2��6a�?}���G�#�4��O	���8�2���k7�+Z:�K.)�>.[x��i/�7��L��%���#�Fd�C���F���;���~������Dn�v�q�����T��S
��=M8�W��~[��p��p^fx����n.�_6)�� �Y��q)w������VXJ����'n���������G,H�"�J)�s����VL8�w��>�;�;�|"��H����w�2bp�kA3��Mj�"�i�M8#~��)���V��r�hb{8z�u�)y�iy*9m�Cu���{�=����N����ws���e�E�|i_MR�`�B���pci{Ej/�������C:�;�g����v>;�NE�������i~w��w�"������:W�l��'lR��_~��Z&���w/l+����v���~u������7�W�����i����5>w
��@tT�
�����S�w!��$�U���f5�r`�U:)�_��s������J���50/�l%�B�]�[xB�S���WI0��"��lr6�`��{	&�5��;�pi/�&`4b���D��>�14���o\�n"���L[a�W���GG������1$���������E��P7)M������D���]|w���U���Y���gv`Wxe-�R���w�`"Xy��c��+����`�����ltx|!N�������<��$����������S�kN��!����"��q���y�mBY��bt��u��t�������c�E�8�f�,�m���������[���x1���#���z?�]����EG�&T���[xFn�R��sH��` t|�<>X��
�H���8��
��?<����w�s����X�4O&�m��������u��oq�����O?���G�?}<�������=y�����/�����OG�^�,�H�O����90���5�������
��%>}��>��O���O�^<��'O?��e�tOF���*�7��NN(n}������__����Lo�g'�h�t����~���g����O�(H>z�*a�po^�o4�����N�e���
M����xbV���-�.��cA�U��5m���~������������<����>{���O�?y���O?�h<v9�~27���l�!(�6��2*FB����B
�`"�N1oO��}��Y7X�"`}�;�!�T���A5�V�S[DQ��	�('����_�GY9�mc;����
MhQ����v�.
x����\�c�v�M���*�^�j���M�������^�E~����GG��-���e���_@�,�R�^���64��@��y�=YC9
�V�����p���\��^�X
D�c�b$����EC���I��Y��P�S�����~Xu�E����]k�����_agzZN&�HJ'�}����d��h���l}��v/��'_>�����}�����=~�����&�~.,�o?N��7C	�q5�������8�N������i���wq6:>�_�`�ZxJ���v�0�& ����E��?����x�<Gu����������Xa������`�t�b��I,4�n��SA	g��8�h��=8����{��y���t���r���&�����I[xN�h���8���[x��/^L�Gg/�1+}��T���p�R�M���IU~�t����!�N���A�
|��^b�F�#�����.+��b</����|������i��&���5����5+�{{{�����M��n���Z�s&���5����@0�t@c�{>.�V=+��CO����/�	�2��]��X���1X���a�J]"�������4�i�]
���q�d(��.nK�AE�`����P�x;���S������n�-<%���?�,d��A�5�&OE����N�-�_�{�-�4j�������O����wP����{���,�7�d�����tT�L����Ls�	{�����K��R������+y'z����=�{x��K���-�����S`3>;;9�B|����'��6���L3�_T�	m��#�Mq+�uZy��i�a��C���\��:??�C-���.*��|1�N�&�{yg'������V�7����C��f� �{9�gX��G�K�5f�X�CH�!�������M��G-�3��V�p��G9�����~N���KQ}����5���fN�9��N�
��a�c [u��K��Y�4/�~�����4����a��#��������/O�^b�K�%�9�`��E�(/�=���`������Z�~��~�z�	���{�J �$����(5:����g$p�p�������]����DI�-&�L�T�-���&�,/5vw*�����O������TC	I,:_��^Ro�>5�%J\*lR@N�l��N�]�����v����������0L�7@����>�^:�{)*HtX�9,��mq�D����������I�Q�,�Ce;Xn���o�RR��R�,�d���-��l/������{��� 
�`t�}���aoY	�D��v�h�x��a�u����P=}�������?������T�h��&�Y�������*H�a��L�)���#���B2{[����&�d?�[h'��\��;��n0����H����������9Z���8A���m��=�����A(��r�������39EI��������������;�	�3�d����q��m���2.�������f������=~���}�����it����o^L�����G}�q����>?��/.�7o�$��z)�po^�o����K{zv�hG�o��wu�Q���E��Pqr4>x.N��
|�I��T�n2�
;�-��u}Q)uP����b����X�g8������v n�^���$�$��Z��6)�q�P��b1�F�lz+t$L~�'�WW*�1��?���~I�pNz��g��s3���v���w/nTt�s��l��R,tVCi=�����A�����E
e��Q���������~9��
��D"���Q[�J�����W�u�f�:�Rj}�G�q~���W��%��_rZ�K�������%d��3c���7�C��rDc����������T^��{�E���x�p�h��tOL�{#��8v��&a�sI���������Bp�n�	��1��THB
����'X�v��T���2�!��|
��DE���vtO[�qd�9����m���?%�On���;XR�����*;�1����Q�
JH3��������`����P��!�%8�d���rK�&�^h~c�{���� l\9�&K��^�#02Sa6�4������m�3��`F�&��]�Bv/	/�+��5:_����c�''����
�s���*� nMj�%�r��d�+g��
�x5����t��/��v/�3����c�V��_��'�a��M��Tr����#`��J�4����?���'���y�C
�O��(�&�g5��������?�A�Q��<c�Wpqm
%x��TEi�I5r7����X���W|�-<�E��b��5�"*�����z��d�Fg��b��5�pL-���4���s76(G�O'�	���5��Y������l]�[��N��%/m.��U�MH��������F����$�WDO�|;�E����J�@���J]�U>+,G�i�{sE�'�$+���������G�>k0O���,e��;���"\'�Zu;��)*������w����xY`�����o����&�+�f��	i��Z�"^��9�wP������������b9W��M�}�('��T��$��W+,CV,��Jd������t�� �����������\��Lzx�?y}�I���)�[*�Gv���]��I�>�Py���
#�	s�I�d�$�"]5�%
���@�o_X��
L�&��[�����Y0���B(c��B%�0��������"38������Meb�1�NP�6������s���Wj+����5v���x>�]��FOn�n�����������J6��K�������|����z6]������LV��=_��A]��Gh�#�gU��>�X�+�_������K�l���ik(����c���Pd��km.e����&M��@� ��"__'N2�8���Z<��m�j��Q�|.X�!�p-��X"]N���h��������}��x��������������k�Xai+��:2W/���i�'O^)#�`ae���r[�m�i�O=��
#[��Z�N��#�_6����UHB�b��X��v/�*P�6#z����-�Le�����m�����6��[[�g����~gF�6]��GGG���I�zCE����	lRb���5����`g�6	%s�\���h�4Q<*7�5�{�Lfa*"pGo�������������������������?����������[��_���?�����������������������������O����������������������w_���[�|��tM�/���P�CJP!)m�������|99:�f�%����F����x���_|I����|���]	�y���A��;�|�M
��VdG���/�=k0v�T�+�ne5����JFn����<8<�8�ox��5���h���(���NE����L��1����&^
i-�����yq����vCq���k$�N�������2�12T	�N���
>�&��j2�}�{A�S�Z���;�|&�r�A/EM�.�[O��s�nR�����������@d��cu
ft��Q�|��Nb����E��(q��`�}._� R�{f���c*c�%pnV���Ib+,����@t
��_Cz~M��&n��[��+�mxa���x��?�[���=;5{������9<�f�be2N�}{�L�Ar)�����w��\�%��z����m�Q��8Ih'�EB�&Y�V2��������k|UCY��C�AY�'���Fa�B��T���0�D$��
�$���[Q$�a�x�g��KaT�I�	�(b�g���g�����C��RJ��	�CU�ZH����Tc�w�����M��i
3%�8��9����:T��%�~������v0�<�x�/25�v���6��gt�?:�S+,�*�[��J�^���9����I�l{����`F�G|+fFc��hBiI�6dj�9�����'���7���zO���_����VT��N�&�^�M��~��Y��
qh�����Z����E�����������i���<����C�����t��$|�kJN��(*2q�
�!p�Fh�N�z�>L��6��l��s���U����:I��T����&o���>��������=y����'�/^���|�w��'�O������za<?<Q���J�g{���n�����Z����n~���4�|E�m�-�J(71F��2A)��(�JM��z���]������o��
d����"4$��������Pbt}�|���0S�^+�R��AX�=�N��k�}j?2y*�L�w��	�;X��*DEa{y� ��$�
A}dY�E� 	����iX8{��3�d!go��r�%���@��'g������o���'G#���L���7�'��	PC	?<��4��T��6KkF`�FOK�rk��������%
���'���
��+�
;������\�����.4����B:��6_�`��xk��������X�J��\� ]`������\!	1��
�m*{	u���!3p��p��WX�2z��,����(���)�mi���g����xb������srk����^r�_;Q`��
K��+���������X���
J<��^�}����|��c7�?B��5���l�i���q'Gcq�RVC�5t,��@N(@��p{���+��RM ��-:�g�&�V�H���LIO�_W��]��3�,k�i6��l���QV�	�d�\kf������a�~	%l���:D��k�����,
�?���t::�8x���v�|0���u����w����(�[,�����6���Jx|j�,��������bS��O�%���Sv1Q��F7�5~p�o�=	�5��m���P��c]�K_Los�&�
8#O��6"�/��6#x�	��2A���+k0!�#��;�/�u�e}l���V�����g��:��$MW?"K�"�%�%�QK�Q�6~1��iz�M*\���S�d�	��P��Sy��S-�VW��B��������S�/���<en���F%	�5�M3���rJ!�Toa���_��?���a\�"��V�pg2�,��j�G��f��q�y�]�:��I��6��Bw����x<�s��>�x��&�\A{giR���H�����w/�����b���$Q�K��J�m�����l)����I�J��:Hv���_��8��)��������Z_��%B���P<[H��0���������1��'����w���O'1V���|����]@�p��=���{���r-��k#X+Y5��~J*�x���O =%p��C<���
8s��^�����)������cT83���n�Y�m�����7�h�#;�
t�'�&!l&j)�-`l�	~;�]����3�������)c`��	g���;�/��`�^�,��<�
I�&WC$�<a�^�8+3��H�B�	f�`�J�x}I+p��3e��X�Y���`fu	��� ����
�m�A�"�|��,@/�
8��3���*�_`�+�`����Y�%�pz������"�Z��Dt���\���
�L�"I3?����'O!��hw�b.x5�U��t
&<�&����B_���b`)�B��D��B�0��Tju�D~C���/��
�gb�����F�?����d���
mn��>����b�7B3OL��N�#>{lqt/�nC���-l���!��|4����r�g����������^��(�������j��Y7�q�����Z,�6��U����������l��O.��4�
������U~2�����`����No����\��PK�<`�����N�������QQ:�KK[�7����i�|#�����.�{�(�0K��c�%���?��GX����o�	.�����P��<���N�j�D��k	�����?����
_g6NU��)w���E���%���jt6���E}=:����v��a�:��l�o���HX�U�%�Z
����G��!$l����n�����eA�6(�>�M<�'�g�nR����\I�v8ZsPR���]��{�}����]������>�~�g���N�y9j�����5��Z`P��^R��!8.���C��n"�93Ip���������^����/�Q��f�Z��I1�U��@�
g���w
��=�������[D_coEoz�F��k�Pt{"���
<%��!a���dsx�H�jvp���j�F`�n>������UES�ZTM��_{�;y�(���@|������B
�oqP���J���k0a���/���k��m����=4!���,f�a�*(a�(k��R�([N���4���IQ_�
��`��
9���9����#���;��������������={��QD����O������)�uJ~M���T�k��2�u�bMq*$!����2��������,	�N2�;+>�{�����IHN14�t
&�q5h��@�fmt��mr�oY��4)�V�I��������I��v/������xt�-���>\�d��>�.��r=��^���Ma��������<���z*��|��gct�V
e�v����������e�n���M@�#���Som�Nm0�|���:n~���2N���I��W�M�����V-��m.WT�M���?�����+4�]Bi��.p��K�����Dnq�e~���mJ������Tz�
lx��?o"��o�������I���-�oY�`��BL��]C�	T9Vx��&�a���N���X�)	�~���l�;�3����L�r�5�P�Nf��>�@?���]
���t�����Gg�;�k�%��7�����'��}km��F^�TAg�0�
�6�N|[�
������M�M����d[o1E_�-����l}����
4I.����+��p�g�
Oh�P��A����X��	��m���U����Zj�����b��@���-�p�����K
%��}�k1T���C��n���������3+S��p��]T��[pe;l^����h�{����TJ����q�}4P��RW����,��y�J���@3j� �+K(�}R����������>
H��&��	��E6��q��k�@v��?y��T�� K�H��Do�Y���nk�Kin�J�������[�7�\�3j(�#���ub���v�&�^�\E����� ��[4',��h���Nr;���������::��d����z�����&��{I?���J���������7�����	����at���A��3�	'e�g����E�����5cFR
%t��������X�O�3���	�����[��*	��^��[��!M���oi�_�`}�*$��K)��W (Q�k�x%�qa�f�wxe���$���[�E�y�Dr�+}j�(�f�1��$�=�W9�w�_�1���}�O�2�{�
��0�Hr��a6���v��AiW���%��	���/}�eK�oZp���0�"�!N�m���~?��'-�m8z�C\�/q�F�D_])�jr��`��RYv���L��;Y��NM+�85dW��2+�V`��%�V��N�-��l�����MD�IV�[hO��<�U�F����������48�b��.37�V��%_��������YY����]�,��R\/&��&��Yj�@��{w��r�=+d��N���hNTO�'��&����&b�E��IM�{�M8!)���n����]I��CiRQ; m�$~����[0b_aY'�����"�Kp�e����WbX����.��z��pQphm���������yO���z 5{Ae!8���2D	U�%�����y��#���G4hNm��-�l��cl�V�{�������^�aE�5�Q��=�gl���S�D����NQ���4��%��Sy��N+�&���Q�bY�E�G�M�\dl�nO�N.����������6�PS��=��dK�������z�8W[��F#4
4oK���m0$��y�`��&�EG�p�%h��l�L�����$��BL]�$l!�9��{i�����"��T!	����WH�$7No��wx�����,eh���]x�pb��[����&6)�	l��p��
��������1�����-]�������M]���a��d
B\~t�%���A��������B,��d�,'����Y;X��G�rD�@�s�./�g�M���N�L���K����E@�4FcVr����b������O{��D�X�$�O+���R�D<q~	[�����QV������	�Y��-���hm�Z������Z�6�8����}�%k�������'�C�j(��F���:�=����y�`�������E}����H2��fW����rC�h�2U����w�p��N�J���m!��\��u��$���`!����Y����$�+��~-���
�VXB���,����w�f�t��nq�d����L�,��B0���6����6-�\���7�����Me(l'����M����"4=l�����Y~2�����2�O�zL��\a0�i�Y�B_��$3��x�J.�����j�q�o�N�����
I
�:DC)����U��2�x*���h�4���&E�"O_���'�O���8�-�r��b��|w��o`��{��;��
VYo��[7��u��%n���4����v�=����� �in����HG��m�}�K���
:���$
Ro�������{q�����L��xPmR���Q���8K'�\b���g\��[�x��Zo�����v��MZ�4�?��I����B��l	���Q��t�_��C�������Qi���=| �OE������E��u\L�w+���x�`��x��n��sn�Z�������Gcl��6�{�n���$5���Z�LNQi`��
���RQ`4��j�l����=����l�.��J�>� J�I��X�M
B��d`X��V�a��J����n����u�n�z'�w��z�B=<�^b��
�7�>��������O�@�*�6�����p����.{9���<����^��D��>�z������_�����SZ`�>����^�,
Ra!hM�~�W*��������Im�� ��2$��6��[������d����m��Q��]a�����SHR�ct����h>�3�����uv�>��s�B[�7��m�L��O*l������������o!mm�A;��%��)vd6��$�!,?/'K�9M�`����:��BFv~�t�W�6���N�LMyp[����C�&<��I0�2Ou��Y���"��%�2�E����e�������{�&�^�\E��/������� Tb�����'�J���=�]����������M\�K�0���
�Qzo�����`���j�`���lr�Q�{�4;��E�y�nZ�E;H[
%Pv&8�#'_�7Y��A�& l�'�l�-��$�k0���!���||��N5�{Q��]��#u����E�@P�@��
����(��$��'��S�]f����5	��p�G��C��8��6���{��'� Y%�Rs����KO6j�������'����#�4����{i���
���T�6�����{dk�	������b������`�x�e=^x�d�Y3��h��j��X�;j,�A S9�#�
4+�"��;�W*<�o�a.�G8����T�y:�B-<���m��6��}�=[<�����t����Q����zd(f$mRt/r���1��U��%=?�����@�j(����� �h'Q��*��?B��
���1?��s#����q��-�a�Z�����Fafx��^�Kys�����uw������ �wr�]�`���x9I*M��� ����C��X���(��'�����c��5������I����
$��b��kJ	%x����4UHR������6��Bn
SdQ��������3���m�������9�C_]N7]�����"�b�$hw�����Pc)}�q�N��	�\�;�X%%�$�Z��5F,���_8�hB�*����&� *�<])��!�;�5C1\,sV��7l�����8��,�^�	o�m)]�����&�q���r	H��b����lt���={�oq0�r���/�`���^��+u�0�n
%����Z�7�&�{q��'�'�I1�L��M�������'��p\<A[������pM?���{���d��P�?6���.�?���E�
�WZ����Y��v+H�]�	�(q�P`���j���Z�!�J��3PC9U�p!���,R-������{y(����'�w���%p���.����2v�Lj�����a���s<j�����xt�����So�m�P�����wrQ�F�o�
K;m�;����ys���������V����l��c�M@h6�t8���ea��n>m�@�*P����B+,#��\����m-���l.���j@��>d�q��9��'/���
;�/����
g�;�W��%]��$}�j-���`���
��j>�������l����X��E�.��Z-�^+����FVn�M�l{^c�q0&�����-�`��k�D��u~	K��h��p4��{�W��e�����v�JY���R=�����/����H�]CC��\������P�M��.��\*3�>�
�x�����s}����r2a���'i�	ae��9�wl��S����%,��,K !`�inC�����
�m<�
�b�H�^�EX����;��8X2��xnqdf���r	�:l�Y�_/G��l�I�F}�pB�����-L����3B7���Vl�a.�js�:}�Z����@0��7�p�M������K����d�s0���j#.����t����Y�L�]�t����|g�f���%�nL<�����=8������7�N���P(���vC,��+~��-���1PC�dLv������]^/��*��g�e0�l�
���"������j�\�}E�0�������+}>~qxi���N��{K���>��6?��N]���{��b,�|}�qx��{}��_c	o5���.d4W"�Ir�
��y�����-�Rb�?t �Z���U�� �]�w�
���*Jmo>k��M���'�;�R6ft7f����GO!=%p�%��^�Z�Yc�~=�����T����V�������K��&�
�����
��������w~1e�����Sy���w��^6
���d��6K�Il���]��M�����Q����#����b
79H�k�r��3�R�k0A��.�,�L;j���K�{�b�bi���
4�\/��Iz�g�K��?�tY�j7�q���Kx7X(I��Y�~`�:�����A���\�7�w�%P�	N05����+���%p �/�v�^��(Q��c���^}��Vp���+qz��oU��p����+��� 	��JN������#��6J��W���b�%r����\8'�)�L�g@���S�O����||�/A�u�e�W��R���v�P*��5|1i��w���
���w�b[=������W/���*�f�&�9:���E%)�Jp��������Em����&�^���$q���h������g[ci�D�E��/�r/�g"����w�EOo�-�����+l��>��H��?E�x��k�&�k����%��!���	����n�(�%�Y�)�b�[8��\���'{��7�@��)A��u?��0�JEV�S	a���.J ���E�=`�\O���� �������)m��!+�[�7�CE�4�:\�`!��\_�����������X�43����fDa%����������~��O}f�r��Qq����7���Y�%�����5����!xc����I� ��O	�'Agu����O�QsuO�2��g��s�5_lp�����!���1�Fi��z�`��2��Q�j��a>�B�^��i�D�K�E��
pF-)��2���-�|��t2�%����m��H��5x2THV���@3��Xk��h	%�2��2lO���G�?���R%Q��������������!d�	��kg�|\I/wM8!W/��i��qCj���mB�5"�Y;X�������$��:+,CV�6��������(jP������T�� ��=m����PE���V`�u�\f�����<��7�[���A�	]h:m����]������||v!�/N �-<�����w
%�]`�����r+C�6}�e$��f��7pp �O��/�F�K�9	6(P��<����m�>~�z|��U�nqt/�w�_���������1��>��r�DR��{ie���P&���R/��v��������h0�I��r�`�������J���
�H����^�$H���b�&k�F��_���9U{�n=�������mKq]��Oj�Q���Z����B��Xa	���e���6����w���(I��{LjN���`	�DW�����_�[0�u��o������N��_|����L��\����=�}�-�;��om�VG���@���m���A�.r�$xF�?��%�����v�i�����n�O��(5�a"%�
��-c��*K�H��V.������'`�����(��HD�r
��v�\l<����-��k����L'6���y��c^rs�U���4�����p��h(�4}��R����4+,��r�yn�S��3�������"�4���v���&�yh��)v�]4�o97^&��<�kp��N_�daz��4��&���0���<NAz�����7���(��{�_����>�9�Er���H�������������\~A,[���v����e`�`��M�����SC�M�����Z�����:��$���Rb����1��vs�T�>�,��4:vH`h�lz:��W����SPgN(�C��X�nvKHMa&`��K��L�>�2���+%kt/0��]%�{A�g��/&�/ YM8�+��
LhAq�]?Kj�s���0E��T�9q�I9	��%���:F:6)[�$��VX��$C����5� L�����>���	��U6W�r6�n�I�m����""t:�%�����N;��B������U���;Y�A�]��)�WQ�~�
Bk����b��
9`'E�b�i?[��1����jh���N�F�cq1z~�}�m�����1Y����*Sd�;Ln�Mm-�Na��WX�9~���(W�X'�<�Z���>�{��������������w�
�kHE-�p�}?���o��{���L���Y��5��@	��
 ���%�M8'�
�����d6�5+�`F�\{������4������{Y"���2�?
�k���1X�e�Y��PAq+�t�����;b�I_�8�w��E,�\*tZ�N���������WQ�p�6)X�����}����f�-��h��%�AO�S�z�����(��roN����R��I����u�e<�Py��`_�5z}X�d:U��ZC	E�2�$��$?n�I��H�)^��]���u�tq�B�I0#��n�ZO�	Y+,�����F���r������O�� ]+,�cn����WX�j�+�zx��XXa
ft�	�������z���pRTN7�\���7�iN���&�������l�:^�C Zx�M6����}��e�A���;�(���1��9��L�P`EC�dH��$��4:���\��x1>��m00�B��R%���@�h�-e�]��`"� ���O��RYX&I���7)������� 
����6	a/��I
F�*(���h�\�I���#��F�k�Br2�o����Ih���WZ�|}|t���Y�@r����F�"�S��M2�5�7���eN����V
�#�@F8����k,��|n��Y��E\w����8��7)"����$u�T�I��M����g���!�U�B�YW�6����s�p���:�H9��-<�,����p_��������5�����D��Gj�{�J�����!����:�z����B��	����& lQ~���i���	���
�2V�V�+0������s,?a7�����]<ce�v��6��������R����oP<�l?��=;���w� ��M���}�����1�`#��{�Vy�1*JQ��	�^������ ]r�_�}2.O��H������C	��U�vo�O�xa��^aq�0t�%�B��'C��x~�5<���^��DY��[�Y������<z�)��az:JRc�
���C~��>��f�����L��c|/����x_�����_�1���)/��T���}��^�
���P����I\��P&����*������IK=6)(�5�Dsk~I_5��.��nE4���y0����*JM�����\h��i�#��Qv�K��!Y����w��2z�e��}�5��������M8!R �95��b
3�+$����o~�+�������O]����'/�l�����N�V�	GP��m�����e����6�*_\�����AF��nc�v�:�$h�]�$l$���r�x�/+�����@V�N�/U��{����A�
�{���j�Fj.d".v*��YFy�`O�	��|�|��3:�W���#�^�^:�{��|�)������l�j�]d&	���y���,���'L�-�6�*���Z(wQu/z�`��7������q<�Ky3���9���`���:Ncn��6��9��l`�=�@�`
g	$<�b�s��1`�t��%�����L�n�x��p-�R>
;����68a���
��a��W76p���:�=�+,M��2�;�[Q�������-���&!*�IY(�(5����X�T�S�2m��^����P��lVX��1I��e
PK� ���2������AI��;6W������i,A���^�����_��W����?�������!��hiQN��!�
���,s�ZxB�>rH�[�����+O��5t�7���k���-�r�a).��	�����x�Q�^v�YA�W�������N��Q�����{O������9�'�Y�S�BU)�,���w/L���N�C�Zx���3q�L�������q�U	�]L��U����Dr�}"��S!	���v�h�&�����Z��ps�gT�FS�X{��X!	[li$o��m�!�����{��99<���_@�p�'2�L��	
4a��$U&���~P+W�7��$^��x�^��.���:�D�8��UAv���>�6qz�a<?u�]��hVB���������k�sT����\Ar��������CNn#oax�(�f�����0�����M����m;#�����7J�I����v�OZ���^���Y)��[�]T���f�tl��U/5J.k+��)w0
�D/��2�9�$�%9������.����	���gDt�8���|o��e�E���([N�S�T����m��j�9�LPC	�U�U���u
*d�T�{xu�Ly�q]<Y��EQ���� I�A��A�|n���hJG�C�T�p���,'��o��m7y������K{�i��������w�e�`�H���Uk���o����/$��Z����������=?���mB"^w�����[uo��:Q�����187:���'�����Zb_�c�dd;�*9WBG�n���]d<�]��dW�0��S������J,9��f�@,��f�J��t����2�x�jL�X�'t�X����M��M��)��6����{�Wv&�@��� I���W�������{�6	�r�d8�E�k�Z���6a�P[�#V�|��2-��Z�������:^���\<%�Q���q�P`G��w>`O��&<��������1�Zh�����tD�0X���M2��/��P��C��&#[J���hO����$���-:���3�����eU�H�2�tZx�$,����A�}s
W������~=��y�+���E��`x
�
�'UC�+g=��`W���XUz9��5���{q6:����J������p��M�7O1p�����\:$�HVbN��`�
IH-��eT�
K�ht)ed&bZ_��Gy7��'�� ��v�Ep�h
�B�3+�
��"�s�,�8�����������������)]�R��n�����t{������
'����2K���q���g�\*�Zx�����wX�5'�E��Yp>K�f���m�M�
&�-�7�s��Q����~�ims�,��F����pJ
���?A��(1��,��|���x)����*H%������WH��oZ�NQ��0�mD��T�)V�b��������������`Z�08���f�+��f+��[�S�~�����Wp����}Ek0a�l�v,�UC)��2ASK(�Msy�H����������V�+V)���&�]S����Ta��v�������w1����})�Rq�IVv�s�DR��@� ������K�U�3|�VX�,PCLE����p��������P�����(����ltq19?���)$�M��<
����
��'^����&�z:��Q�M��|.[b;�
K��;��Y�J����=���(�MfU6�C\����h��h�m��8�C�yI��9��3�-[�s.,#��<
kb��,|�`�.����5����bG���B� ��L�,�J��o�ydx4�Y��0*��T���-���~�O=������D�	��Y�zE%�^a	��7���aq
&
FA����iP�&�@E�~�w����<�5x0�m����N���@���
���I��3f7Hh�S�����=n����"?��������Sn��G���]�1����p`Mo������9���X�P��T&X��<���0q6z��S��H�(�^6)O��)��2�����h�5[�g������s�v����
?8y�&���]������r��������v/�����|r���(����B��8��]a�H�#<����c�$Y`��%��Z��1F�2�km�$�����4�������.�x�#|)+� J���-�D-��{iN�c���v�<	kk�	&Qn��2���k0���rM ����"M�
�!m�	�F`�������G��f��n�����4t)v�``H|�����5�����])�����m���y�����.����	����'�y_�������=�����|]�&{~��G:g��"��
���af��\�t���`'�LK��������w����}a'�G�R����A�g�J���Zx�I����:��k�)�PQ������o������8y��J� <��B�9UH������J�r�v�s)��-�0����+��nh�E`o�&����]������qo��"mo���3V1�3�(q
���b*��py���iIs��� y-<K�p�'X�z:r�h`�Nk�9���w&|�O����������������
���+,�X��20�k�9����M�2���e�#�*~%k�):�	����D��	�p;��`��~q�(��p����B���{����.�����I������'*����#��h44U�������"�t���[�8�X�g�<�6���s;Y��H���mF��e��r����`!|���&U�@��'�6��m$��z�rK�� �/�o�T�*�|�u�:�H�!����e����k-���y�����5-��
v>�������������
��W�	g����^���>�P���\
�[xVJ�[��-F��g+�n����`�����h&�d���Y�	����R�'E�
�:�HqQ�/��m�
��-<�([�f�&E�"���<Fc�k0� ��N�gs��H|��d����'{O����;��?�S�~��8���e��N�ZI�f����5�+�97F"�������+h��z7����E���"5��l��mYF�31�MR��}�l����t���{���!HT
e�3��p�����0�?�$UH����+�^����QN�=�5�S�����-��`_�5�p<G��&l�e�X&r�R:Z�y�='�'��������"?<�i"�Qv.�2W�3mD��G�.w"�be�6Dk,�T�nces���hP��$��$�����m9�����d�`Q|
�^���@���~y	k�i�+EK��?2xc�����w��1Wz�MI���f��=B�iV��xt1���o0K�E@���I|oZ���;�Y����9v�*���r98�ynq�A�5_C9�R0�WA	u�*=G�vl�kt��w/�JzY����P��e���7��Ra�m����X�z90�����ke�pI,
���-<��������$.OG~aY�S�ZxB�8^y��\��L�+tu�a �d"�3����D�^a�����c��H�_a)~��K���Sr�R�U��
�LqW��J�
]>��]*��:�uf<0��MB8��S��5�_����I�$�����^��mJ��%��
�5T�X�m6v�t/������Gp�������"�Z���Ra�������d�^���/1�g	����&x��w2��TH���A(M�b��&|P)���>:;aVD�$�s� JR��\������
��.�3P��UN�y�h�4��M�������.�CJ %:�_%��o�	Qs��{j�}��PO������(�_.Q��S���������D{nP0v����`xg�.�x��^��G�Q��]C_��_���
;��t!�PQ5�����k,������&�d�;A
��k0�s2�����!IF���98cM���|���Vn}7�Y��)I��UE���-��:Mt���^�P6��o�5$�5�;����v�}�������������yk,��/{4���
�����S�i��'�IA	�����
(c�������2V�J�C�j(��r����8������,q��6������eg+�6a���������us[3�z����� ]5�{Q�99�Z�@F��w#)_��.�����{~��9�L�P&���AAz����)A3�2,�H�un���
M�-U��'v�/X�����Z1���u/����W�n�������Q�m�5{��p��������������T��k��T�e������H�y$C��	�[���{_���\����������3|^�w�����Fx�q��l�
J���>����%�po��*q%7;'+���s&a���"wq��N��3�9��"������;Y��
��h�T�V�������Q+,�O�3�VC��}o^}���D���T��<��uW�|�m���o������Y)�8A�6����M8	|��,�-7)"ef����5�q�t���o�J�g�M�ZU�����Z�v<���;]W��e�N����6��f�\�@�8hi{xM~����*��`��5����`��
;���>�$U7��
��*(�Y��I(<��+Gn3t/1�kHX�c�p�@�K�����!��b�^j�Se!���3���P��&3#�K�w��y��[��3��J���{H������_�l����iV&a^�
�k����
�[��^�e���D���-<����A�
���Ms�p/�{X�^O�+�`��H(B9[�������JH�}��0[b�	'�)�����=��WXF�������w�
IpG-t��{�r
2��5+��a�VA`�����3�N�`���d1���j(����/I*��7���^�u�[�Z%�zk
/��C����H�O�%\��'Oz�?�NU�w�rJ����xO��H��b��&|h����a�pFZY��hO��UC	W�9X�4���?>�8<��4���{:��
���VLj�,L��-�1���g���hVuo,�;��s�~`�����GGo����_�L�o�O�O���$M8���_��%�����6K��P��"�@�g_������5v���#�_!�F��Ru4��	'|�����_���/�����I]-�`{���G_v\;�#���kt/ptt�+�=?�����zj03�B��2�g�5x
&|3OO]a�����������:_����H\|{:�/%r��~{���+���������#���,IA�d
��%�wu���$or�������[��(����/+,%8e������-<����At��g����?����6��N������A��P$i����f�^��/�g���g��_c��M
�:����/eAB*����Hei��a�L"����������`"��p0���@s��bW�G����aI:wQ�������L��s������l��L�W�;YCG/���k�
;��W��	�����G	����U�&X�5E8�,�^���f���e���2l��G*��]4��-�(�$�$��?3� �� +�.��!�Cp��rcl��9I��P�ow�#jRz�}cU��?�M�Z���(q�N������-��D�NCsu�U��P���W&�g�l�c�m�I�AC
p$6�vRL�+O�,��o�o�@�Bl��7��?���6�{���#|9>���Ad���:�]�v������VH�S&y��.���a���XhMV��������|2�t&4��K[*��V���������^�a�h�#0��b��Lr�lR0�y��WHBt�����0���'T1xX�[�#��'��1�B��c���u(����^�g{��C�*$%Y�J�m������m2H-�{���p���YP�W��-$/Xa.�`��%����v/�X���'G�������-G���q#��LZai��,q�U�����fXzB�d���^`7�
�z�^-�1uc�V�x��j�q
��E�@b����}�!%����c#���tH���?�M�2���k0#�0��j@�zf�N�U�$Gg(��61�S�55������?B������^�3��^�����Nl����{h��������M1������c1o�L�Y�k0!�S�)��:��=�"<l���/��F��M��u	XZ�p*��Nz��X�0�c�����e�����Xi��`�yO�p����pF��2^�(1�N?��rY��@l�*��+����������U���o�>\M�[����C�,� �B����e����L�j�ff����P+#/p��;.ZM/d�����������������b�����7Yh�+�u�2n��~yl������z:�]a
��=����C���Hm�a������h|1������8�?�������z<�8}[�!X��{�������G��
IH��f��-�����6��p������{�R)��V~o�T���
9���O���.3�
@>�U�?B�
0�W��ll�{�c9UP�������BX���8:|~px�-�M����Xh�T�}�?�,���kWc��U�7�}�\*?@�@�A�W�!�<a�-�`v�^�xz�ax:�u��������B��qm�(
���	'����n)��R(�Q�<��_�m���;�Za{�<�,�������1�B�`�wy�K)�^���������/��1��&��W��-/��������Q������XSw�_��vx|~q�z����X|!r�������b,����0N�e:y������w��u �/�&����]a�k��p�M(mD��j0G�F��`B�%[�"��)�S�OIr��}�^�V����y{�U��S��f���Hek������KO���\I������,��	4������AZ�#�+;<��5��I������o�<���fx�@JG(�X;�IA^�m����4���6�`G	��N�#�n�f:��(J�$:'����������va��o��#���X��L���Z�e��
O�!v�l�8��)W���7���� U^
7=����O/�7o��%R-2{6)u�>��@�G��2H��Q�%�ul�t/�����@��%�,]�[;�F���Gg����&UQ���6������,n������,������{a�o���6
)k�iXK-Be�Q�6�����Lu<Q�J�4���O��:pI9�39����gg/�^\5����U���p��}I�|y-�I�6l���w/����A$�I��9���`(������=hj����k�pjW��1����8�~��!��w/�����=
4AZ�`��h�	>���6������N�W���b7�;�rs];�z����2{�j�	�����NrfK���M2��gF_�C�VXFy�S*$���7����& ��;Q~��D9W���|�Ow��M��Zb���M:T^*fF/�/�HH������b�L�����$��\X,y����"�u	|�}O��)c=�4��=_�8��,jj��a���e-I<i���MU�-��`n��R)�	r�BQn�J8��'����	'�#�Was:���5��o��35}�c����/r���p=MJ}����:���>�5����KH\�X'Ua+0��B�'��������zDx��&�q������)^r�}y7�k���8��/l[!�h�l�����I4����~g��"�}�:W��9�4~��� �bj&��\WXr�{$��39@��
8�tX(�2��k0-,q(l�]Oku���R��M
�����h3�^5Kl�7��>��6��}:��o0��Yz���/l�Q	xoj���;I���m�9�d���2d��n@Y�v�����9|��"�^���_��W?�������� �����M���������M@H���vra���o�I�7�G��f.QM�����J#����<���8V������Pt������l��"O������U9��@��T�8�2;�
������&V&c:�qr�\�T9e�3Bj(��e�2pX���x�'��",7�	gl����2
�0��B�4�G�3%��_�v�D>j0���H��1o���g�������	����[C9M��VU$A���~�)p����!"5t��� ���RA���lt��U��@�?�@o���_��v���|k�J�
J��_����G��2���[��Nt��w3Q���KQ��h�p����-p�<m��pN���Q7������[/�{e��l�[�N���E��e!�����o�6�%���)���@J}�}9"���o��x�������������QB�R�Q-���L�Fw/-��O�J8��7\#���V�SK)�9;|����R��Sp�E
�Z�^����!PB:�Q����`�g;��9�\5�������>�o{
&��q~��:+,��Dn�`��
K�����M0�(]�����K���H��D�r�X �&H�MQN����������El�����>�,�}�&XC�B}���/������/q��U�I������9=�Cf*,�}�&%��w�0�a��%�t����9j�	��E�G��J�iE��V!	�gTD=l��F�xZ@/ml0")���z���B�7%�e����)�����3���.���hJ�q�
[a�������������U���X�	X�Q��`�����x��*�c�w��"
�o�4���jn^��F�	X:RC		&��{�m�&���h7�����o����rN�c�w�A�nhi?���9>>�.0G�en�Ks��4��`ELmJm�ppG�.�_hr#�����m�k4����	m��S*
J�4�O�I�i~��5�� ����@;|
fd�]�A�
I��
"���6o
�����V~
p�SNI����c��E������E�$7��>��������l��E����U�	�x0��.�%�{A��=���&���������H�.���2D����A_s��!����}=�#�E�����q���������}�`��`��S%���@s{�-��>��9l��P���x��z�&1Z��@3JX�t�Ti�����nP7
���h�\��M�:�Ja1�j� ����I<�"�����uJ#�d:E3\6)�����
9�r����Sq���1Hl�i����.3����@����.�>��`������������p�h�8i�c���z�������l�H��,
�����&b8#�o��rB�L�����.*BV��E��b���k�gj�UH�c6*AGw��$���)������r@�F�c��G���Q��c��
s�4�����z<�Q�6�#kG��6�KA�[�;�(9(�kwmSZT�d�������A�Tt���"�������R�x��9>�bK�R��1��Yu�8��)6w���
{��$�-;�L�8��7������g�9���R�u���$�}0H&W��k����e�ie�e���3���B$r��S}�8��mw��+t��)�e�!�<���o����z8{p���'�	V�:����:��m@�he
�����h��UGb|��'6X��|C�2q�~7)*2�`��H�W����[�-�����q._� aX�I���-��^���n���wqq���$��Y��^��ZxB�;
6�/��"�(?P�L�`\6��D�)*���;L�%d�F��-��z�#��!M+,#�6�Y�;}�_N��V�O����HF{����\�7�2�^s�L�%���.��|>�����)�4��Dy	Ya	��J�-�N�k0�(�i�,��"�j)A�`�f`��{R��/��_nB�E��p��w.f:����t���v�)��`?|9k���������n	�����,��q\�@x
�Z�TM�MZSmV���-����A|������B�U^v��%�C�g��	h��m0�_�y*I�}�9���2a�"�X�_��Pv�v�����Cb-���m���vY,��;�D����{iQ�`�����y. .��
��TY�����b�7���l�pBQ���n}'M�	AY��l�d��������6)�"�%v�,�#�F3r�v����,�K3[�������Ve���������?�H��		�<�p���+���f�7��2��&�a}������q�����Ja�Z
4!
fG�����u�oR��U�������4�?���� ��A
�O)����~������������;H�&�lO����p��q��0V����vB@��,���,������������3�d�7�$��N&F�`��C����*Mdk�����"���q5&	�|Q_	����?�6\>�Q�}�
��Z��O._b�V������6�]aY��@�L���0k0'��le
g�p�;YOn��k� {�xa���Rm�W,xs���KU�8$��AFJ��,8��R[�
�bhBc1aDY=�:zy��u�Q�����ivzxq)*�I��W��H�v=����j�������,G��������7���n0V��2�����a�~�+��c
�M�W��'��8����]�|.����Y��!��� ,���6��#:�D~�@@��K[��3��i����x�z���k��_,�!�4��S����M������E<�3���qf��xZxR ��Q�o���mqPv=��i���� ��%������imt&�t������;����2����v�� 2�u��r���J�����0�O
��	}�������?z��?���}��~���W�F��3�L��2v��6:����W��_���]�������j<��2�w�L�,N/��m���s�I������]^a��u%�|�j(�D���RNW�0�TvY_a	{a�MA������f�����IAp����Y��s&l�a�X�,U,Q��1����������rZ�������%���K����@�[�oRD��;����E}�l��(����9�Vv�!vV�HN����{S����H�$�d� ���J&I��lsb;���gXh�Dv/�\I�a%�5�{Q'������b8���D�Q3e���d957A�����)yI�d�
�I;�3����b��`kp��l��d�#�7G���?�H��u/���_P�&���j�o�,���^�����V���b�:]�	�q������M��
Vz��@��3��+WC�X���3��kIA~��:��]c9������=����U���v����Gh�C���f����k��>��A�W�p��L:T��8��Tl��1�Hl�����j^��dx�7WX�����S�f�����;��I��3A68\�V�>������R�\P�}E���Tz�`��-�_��T�8�c����Q?�LF{_�����Q��r�������o���Z�9�`Q���G�O��g|��E�9�w/���:���.�A�;�OFG9%8�|�^������.�|w1�#_�����n��<`#��D+��1������G������=�l_b�c��&�����M0�b
_�GO��d,�{
__G���s�	���*�99<���@R��v���{��.�M��9�������	������ZID`C�5��$��%���&���M�c��v/J%�{���
~)�G���e�e=<��v�{r���!��D��Ka�5v�5�O�����6��[�~���	�h�$�u�t����l�P��@����o��)�����%����=OG3���=�)}e\�]S�=54_VX���-�s�@v/�;
V��@F�N����.�"���}C|�.PGVe4qH�������C��}}x��VC9�-��WH�K�k�	�P�`2�6���n9������,_�����u���v�d:U�0H�/�w
���k���*rk�M�J/�������������54�8X�Y���k�9��*M�[-������y���
K����$�`�4�������l��&�@�����U7m��n����
��$i�d�\/�������0��/!7i�@�����<e����
Z���0�u+s#c	f*7�������������xr��������,�r7�����X%�a
��Q����R�ugsuO�����nR���C���Y;/�B
�V���������^
�����V/�����%:��D����I1�m$�M�����J����&��[d���.4����������P���%:��I@X�,�h���h�3S���,�v���S�>b*��VPB
�2���/�iX
4�y��7����|���'��@�V������v�@�]+��#����}m��o�~Q��������b6���b��J\��>�]��9��5�CE.\��-�\{|���%�q|��d��Wm����q�:�G��=�{��c��&�� ���~<c&D	|��c��0)������$c�e��H.��Nq��YU+,�����}�� ?�����E����;�@B[/;�k�U"���:)����D�R����'��_C)[���p�n���\nDY��N}
F���H���Yp#��H��P5�������WI)�J�3�*�C']�*?��3�*�e�]t���H�X[��t�j�t/��=��]�Vy����G���&	#�_��M�&E�"=�CHY��^�?OA�������G��f�b{�q���'���P{��I
[���(��P�W�$5��a���,��M�V[(��Y�Cd�9Pu�.�"��`��r"G�4��f�h�"��f���w�u/?����7��L=�������T��Z0�|	y'a���X����wo�c�Gh��f��\;����	:�q��R&*�?\R��1�.�l-�����}�mB`������p�brv�������L�n"�a����a����/KC�����^������!o��R|� Q�^�_�DD:�&�����u�w��3D���,����4�}��!}^h{�5�$��c��A�"$�J��]-+F�Y�����F,U��9�NnR��h/�zD�(�a�������WC|�y���77A<�B���4�g�J4rx� �Y�]����X�6	�	��O���	�H�.�����W�����
�	@`�*d��^����BR:4=JT�&�6��k����W��DR��b8�O����&��(�6)8"�5R%�|������w4�S�c��9���k�}��*����o�`Z��NL0������!<�x�w���� �L��D�;y���`%�6�@��xh~�GJ�x.��,2����;���a<R���EU����zd���F-����-���'sw�k�s����R��S�������d&^��R�6��[�j�����w/�Z�K_b����Q�?B�>�&�[M����m�g�������!Wu�Ah���b��]<���N��/<���2����^��R
i,��*�eM�r8���M�*>�{�����q/L�!��gX�n�������{�Lp��l/��+��il�N����#����&$D�NFG9%�xl
�^�iYls��H��&�Z���A��4��?F�(�i
��d68���������k������s+�!���'lQg���x����69I83���n���6�@�qI[Tit�_���BJ<��	V�4�S7��`0p��=>��C��m�p�P��P7���#�;�l|z4���v����/b	��&b��M�����|��<X�C�����9r��*f>�q��I�mn}�v����%�����cl�u
���'1�S�@s��Ez�q�&�`d!h@���PF��Y�%�^m��t��8�+`9�?�ZxB���/�(i��"��w/��HX���4I��tHB/�o��Y��hl}���j���6g��sx�-���o�'��(�C<.�&`T~D�)h��Y���H��qZ�)o�*��b���/L��B�����~�@�P�En����:���e9�"��5
)j0��f�e���\�#�3�����i�����g����z�[W{�`����q�-��$IH�ER����Al�p��t�~1|���s���6q��&!��b�B�5�&�E������`��w0
6Aj�|���
;Y�Fy�Ra9�l/����;��s��������E���nRp
���	+,�u�����m�8�uA�����6�x�y{�XI"|U�~����F�
���l�y��NE��us���j�/���n�M
^�����T|\��e�M�-<�}j���+,����E�+���5�6����}n�%\��m{���+(���d����tug]r���*$��B_+z�k1_/�&���5��B&4@����R��;[$\�]�$�,�ha�XQ��=�-���Iqh�F���7�x�z����%�����H��}�r����E���lreT������3U��R�*?���2�������.��-�����XT�BL|'�����|��<y"F���S���d�(���*���^u��(���M8%������
���)j���������fWX���RQ�S+������W��#��}�������$i��/8rm��{�'�G�B�J ����.�i�#��~�)l0����[�K�@R�����R���������~�D��w�s$������8�����Z�
��3�_������-���PB�������F_���+�/��CE<
NO(���ej[���������H��k�����,��=�
�D��Ca�E�d�����&-\�`��N��F��������<���^�)4�,��e��e��E��_�Z����(�
�����|������f����[���`'O�ru�"���xJ����)��r7����v���]4�Qi~�bk���|�Nm��8X2���	��	+,�Tv;����L�9���0KR4�Xco�����mT6���h�v7'w�E�m\�&p�r�����=�	�����<.R&�S�]������l���~>�"�K���qR�/����~���5�%�X��&�s1�F�G�n�[hnqPe�J�4z���aW���j.+F)j��%�%�cy;x8�p�����S"zg'���S!���t����G�l]9��g�%�T����tJ����/*l{�G.E�;X5��[��8h�
B.f��2�Mx��Xfa��r��|U��wx�$����e��_���:����<���N��H����/�'�
6�\aYkU� I*���m�Vd��x+$#�0���,+,�q��Q+,�
sl�"X�V.��TY��Z��>�x�C�9��l�1|��P�9vCj�s[��v���`d������g�08g��!>�r�e<@m�/b�=�����I(�j���+�oK$���G�~��������\����+,!�Kg��86���	o�P��N>^u�������BH��M��u�����"`�GK��N�X���� �}+��s�^��D���58��BR$��(n���K ���������{���a[���Fa�(CP�f����
4���=s1K�D�
��|}�qx����8�
���Y�dk�V�������D�6gmU���_*��c�����rv�������U�M��@'qLau7|_��I�i��L�*Ag���o^/��a�[N�z�M������`�a>vN���l,w�RNK��W@�q�2k��%e�Z�Qj�U�,V�����^��<��?�{!�<������ ��`c�3������2uhMK�8��0=�2$S,��r<��c�N_�F��d6���)�j)�C��!s��K]���a���-�X�InP�{�i��������l����s��~6`b�.���.�B���.���^�([NA�l�������[3��">H�}n��q?�i�,T�6xW��������5�� �i\���J$��(Q`�FL�gokw{�_2�c{Vc�K�}�vpHY�*�����
��n��x�>?v���
��2X*�@32��7`��r9�Vop>��(���n"v3��v��` $�����H����O(����cW�&|0����R����2j��w4:~�z���n��Io�Q�,Z������5���HY�X$���2����	g�:�=~�h�;����{����?��G�rW�$���%fjo00<�Bx�D�Zx��
<��H����U�����"��0S�C%�Z&����4��C3Wi������t���Sj�Fk0�ARo�{��L~x.kn����������*�3X0L��A0�<O%`�de����kWqt/������@3�SVP�PF$c���u��R��v��..Q��E` h
&���e���C�k0'#����� u���EP����o�N�X`v�a�XJ�����E8e
�4�(G~���}����a:�69����
�����������P���V*H"e��e��x�F��F�-�<f�`�6�����$�
9��4����]!�z��G�����$V^~4�((�%�<,��N.�F����HG.���~b%8���	(����--�m�"t���C�M�g�r,;b����)���"�"x�����kq�m��F��Z����lk���^���
4�u��!�}]�i�W����%�U�����#,h�&`���a�@�H��oAc�������H�C�H�30��B��[(�
t��^����_r0Oi�v����aw�Py��"�"�"H�����}��+������KJ7�g_z%�4��p�w�i��&������x�E]�kc
g=\��m���	��3��*2W��6*[4����\��8s�LMy�a�w/�����f���w��*<�T�/+�`
=���2�^��$�Q���f�����������^�<�.�{Io2�A	d��|ZQg��+���3����i�<�1�('�:j�[X	�_�%h��
�89u�e�&����o�Bk�(x��R�X�/�m���%-m��R4�Fg`�p��Sj����6;�
=�Jl��FG�3HT�dX*�C�fA�|�J���Xe%E_A���
?����62J��K��M83�MK��3|�����������X�s5���0'�Gk(G��smD
YE�j)�}���/1K5��p
&l�q^b+$��$��Z��
<�@���M��D���MR�~P� me��B�U9�8X-\D��?���MB0�5�	8V������s��n0�0����B�p����M@	�,�R�i�?!j���a�-�N��#�;��7o����|�9x�h��|}-<������Y��@�&��]���I>�������u��m|7)���C4(��-<��n�6�������z����P��w$�O�N�(��	(��{'��TH��S����M����g]\@7X����P/S��_���/�
���I('�cB��>�����5��n��W[�K���[�(��<r�WS�r�(���)��IA�e&����l�������L����:\sc<�|����4�^�h�����w	�:.���Z��jh��N_�
HT
�����6���k4���=�����|Q��+D��M��z�f)�������w�H�y���;Bo{G�{	k��x�oM��q�|��Q	I��h�u����2�7�il�	�N2	<�m���@%�M������*�i��.��~��>�TG�OF*���R���;XW\_M������3���`=�
;���\Nlg��@��{��R���p��x�-z���$���_<O�
Ky���2[�������w�>�Uws�2�j[$+�^��6��v��
�����
mf,�%z��D)�����,���	���"�#x���5B��o�_���9vYYa	}�������=5v�]N eF�(<[���ET4��*0k�v/h��E��S��mzw�=_������}����K�h���cH�3�`L���^=�{1��1�L,U��>X���p������
8�T����pJ�H�� b�ce�@%��C��������	���	_��%X!����bf�;xo0|3��o����=lXQ��_��EZ��Ca0��8�_�@s�[o��y!ex�R�]�X�����c$�6lu5�95��2����v
&�����0Y$lK��JM<;{*�'�^.%8:�'�����$���������U���L���T���E���z���FY�{��+���?��
��(��%�=�s���j�'���@<�	�pnp9����G��=�{������%k���:��5�;�d`J�c4���#���|�h����Xds%d��Q�Ya)��Zj���O�&���.�D�J0e�9i1���_C9f��z5������QN	�X�����b�+HU��^�� ]�W�C��*�=pD��[����{D|�b
��(������	6������<�������v������������_�������Dn0�I6���}�� U&���H�gg����O�H� ��.Us������	M�dr/���
KX���/�s�K�,�`�X��	�.�	��?��9k�	�%�n����=;�K GPQ������4����^(�m��{I7K,�P��.u��?�3,�UcY��z���j��n�l0Pvv;��`���;�|y|�����_j�`c��H��?��He����-�O<I5���PB5n\
������6�8�����(�_'v,|������������SHQ�c���V,��H�/���& ���+�VG`����r~�����WbK#�u"�l�L���Y$�'}a7���:�u/����@a�M8!3w5�I�]���D������H�������Ad���1%f+��!�w�\��`��=��<����mF��	��GMkx����p���s�UHB����_x��Z���4Y�`��
Kp����H��
<����Ax�x
/oaD�2[
���v����!��Fg1������<������ ���P��m��jC,�������^�jc{�>]\���~y+,��v���YQ���/WMLs�#�c��bQ��$U��98�k��QU6��VPB�sc�a�@�88e�:J��4�M
Zb���E��e����h��&�b�OVb���b������"�^ ZAH��i�G� ��|
��J9W��L��#��R� �	'�5�m�������nq����'�AT��������H�M����!1w�%���}�$��S:3�`�K��-<a�������M��
���` ���6���7�g�{�NRi���bJw��C��[?�C�41s�����BO5vMh�&��2Dgc���/x�x�7[B��Zv������SU�Me�;����%Q7����m����?��n���r����2�.z8U���%�I,�`6��1IM~p�n�Nq��z�?c���!���@�����2��m����w�W�j��8N�M�����}��`����R��:Ck�"e�&e�������r���8R�u%�-����4Y�^T��N���B+|tz��8+�A�Q�7������<���M�<��!�h�k[���n��xI�:r���$xQY�#�|��&�&o$��B���,��u�$r�c�oe��92e���Y�B
;y�����~��RW�(qN0��B�eK��F������3�XN�D.cPZ
D!C�]$yOm�dk��}�	�^�[e��E`f{�4��=������u�u
t�����g��JY/�B�&� �{�5r*�A����3A�
�=f�Re���m����+e�����1>���r�Qqn�\�\ARg}v�����������&��n�����R��_	C�c��������)��Ey�K�X����.�y�}@�FG����#lJRN8e�(�4������"��h�+f���D3cK(k�\Vlo��'�������MBj�����6�����[�4��4W/�>���6��([?g���@�Q{��;�)GhK�+R+<��������$b,������G���?I����w���E�P��xi�����}�WW@!#���	�����LMb�f�
����A88������B��I��5�i����.�7�`�������_+_i��An�)��� �������;9x��*����<u��Yac���Nd����s
f$K�x��2�h�O��^�G��}��}5����m�n1Ub2
�D��x�<�(O����r,���u���,�$zpX�%�O��ecm�ikwtl��78�BRW�vk�����h��B�b��,pS��D��w��B��b��l6C�Zx�mt,�S	��p��%�{c����w�����nU�'�o��������e�i��*p|�[xB�hTL3�4
4�L���bz����E��-B��C�O�E@�N��&�n�G~�G4Gk/����L<;':�:7)��A�G|��&a�>�Y����v�?�����:�w���b�u�	a��7)	s�0�[������;�oR0"1�.����������A��	���pw������������
�H��<5_�W]tI�j�_����b��&��Q?B�p�|����i��)���������)�,.�����}:�K
^@w����*H2��i��g��@�����H�;x�qsqk���1�NI�>�f����m�q'�m��.�UQn7�	�;
:|�
�A�=x/b�[�[�QO��U��K,c�Dr$a=G+$�,b�u��:�H��!l������{ig'���WH[�*�v(�f�����/V�)��6� <n�&�m&�������
�M~��[�.�hhn3w%VF�L��4������4�VX����0��`�L�v��`���D�b�z������Kf����3�r�c�K �� 
4�<x�`W�&�{q���*R���:%�)�t]�y�J����MB�;�7)8Nq�P`��5�Rlg��E����M
���F�Z�������1�\!!	V���
4!$�fA�����8��$���Di��J �F5�5G'�5��O`��R�~	-��^���ny��$�W�Ja�
I���F���Hg��a��.B��������c�i�	����+X���T/���c��6	)KO���|��a��`R9+�Q�FS:�����S�@�B<����k��w��H$i�!�=��16�`���<N�nWa��������J����2��l5�����!'?d�n���L
iS$�+/D��v k�kH���!�XBl�#\�����4�K���N5��A'�<��j,��B�!�:!��}�,C1�p���'����B���%�����D���Vl0����v�b����-���`�N���'}��'�<����{O�=y����=O.U��+���^���H�E`����g�9��
�<�j��s��O"����-�p�+u��w/��p�$�2��Y�@���=��
�
�KH����!{%��F��*	�]����(��!�k�	g�sUG�W98��Q�IhV���t�e[JU��R��G�=Xq���g�sjM�I���cu�}%�r�B����*p��~wx��8�]�_����M��E���Y��=fK�1/;XHYN�k��!kJ���s�J �� ���a��
�)?��3��
��
`���v/�ltx>�'��c�u��@��������:%����]����
�����m��2�4*���SX����/�FE%�bl/���J&o�r����qQ�p���I�7�������(R!���������&�DI�)����0k�v/�����7�B`�V.�0��[���T��h���x��.Z�����*�f`=p�GM�����,��s!��v���u��K���k-��Nz��!�������9�z���?��J �&��,�m������M?w�����?W)l&���@��0'�J��?4���9��mR���=�6���i�i�` <bm�����{������B%Mf~�ur��	%f���&����&H�D�;��l���=�����6��N�������_���l�����&Q	�\s���9����c�Are���E�$[x�<��l�W;���PFc�P�q�^�T��5����2�&H@#g��#�SR�lw�&����=~�Q��g���q��,���^������,�� -�x��`�^
4!�XG������^�!WE�i	_;�MH��blZP�c��z7{$������Cw�6���Q6Ic���>������5\a���;4��)��a��D�������$�{���Fyh��M
ZFV����6�A$�3FJ[S�%���s�2��������&	A(�h!9i2���[���XJ��34�����&o����7�
�)�Qj`7�>�`���%n��K<����NSB�����g���x�&���>���BU�-��\�L��(Il��-9�������r��H\�Bg��M��
�_%�	�p���X�[8����.�����FH��c[��D�����`9��S
������{�
�����Q���.9��D;P���u.�����6���#	������;�S�������$E|�.O�b"�����v/����@z
\�r����?�UH�$XK��	���{'������$������L��z��/��(����V.���4vc� ����/2/����Cnq<���h��-��;+,���W��j(!�S���	���I��.H�,�d
%����K�2�B���
�xx���	���l8���r����EhZ@�d��F^f���[�����!���{Y=�D�P`��KX+������.�.��D5t��$�T�uA-<-�!a�E0�,�^�DT7�6��H����d�B'�g�#��HL�73���&��^e��f5�S���q6b���	�d�6A��*\.3�K����~��<,���+�S�2����W`�K�e�b���1k*��u@��:}eT���y*�;[7)��mk�����_��T��8#�q-�c����m�:��_��U�;y��0�0�s
e8l94�{��Y�u��G��=�{��J�7}��u�IF���K[�&�������<�n�5����H����8������Fg�����������������y�g��������C�����|t��"�R���wi�	!�,E��l�	�Tn���P�hhb����m���imj�sn.$�r,Z�����@w/�/��da1���\�B_[�pr��B�^�J���x'�����xRDY&��84���Dj�eBY��7�jrt/s�X�Q!W�i��cU�+,)D�9fSO��Y#V��a3��@���M���5�{a_�[k�$�^<}U�H�HFI_$r��[,���Rs���%{�$���	�!�n�����A��^(��BRR��O�[�	g��PK�����H&������ �6����n��5�&�^���.����;U�����x�{)Jz������]4���HW��eE:�M&C����3����s`X�e����D�������W�ea�(�g{��>��5L�����4�o�6�l�9e�V:I���6��v�U�*����;�)�t��L5fo�<$>��'��D�����O��%�ECx
B���6((�@s�w�&��!����cE�.��n������*4���t-��E���Q��A�
I\?�ecI�U1k4��Bn|�E�!������t�����q�LZ�!~�Us���x��76���l�������A�8<�?9>�I�Z���Re6����j��y���N���+� ����2��Ds�*$A���^Uf���^:M;o�9��d�"{9S�+�7�M2�o���>�*!J�V�w�bi�"��Fl��D:<}��4���?r�nR�D���?m�����9�����8b�2�6a��������w�t/u�a�(�������lmF�,���M�H�A��+�@��������Yb��K��~'���x{7��^e��������Y
<�������v�c�H��=�?v~�L{����g���������'�N����Lv���v��Af������O�w��h�i�$4����-��}�F�����,�Y��:^bw�zl�y��z#ObW�
�#���i��af9,(s-�M�"�~�	g�>�8V�7�M�����Y���������=�|�������N���#�xV`���W{������'F�f���k�� YF(���\	}�L(���6��?�3�-�p
��L�m/����<�;X���� I�C�	'�;UE���{i�� um�����Y�.�������_�������������������������?���������
��dn�E�$��Q���{���T6�BI�i�
w"t��mx\A�,-+��"��.e�6���������ju��RV��_6�����X�DD����D�����*5��h�&HS.�O�~��z)N�������i�$����?Yc���a������b�d�������j��� �r������v��?�:�s�/�v&+,!c�u	��6����6�
�1�&���*4!]��~&1�4���a�PR
ph��@0�<Y��������;������k4#�j>�3�Ahp��i�X+wr4�!Y5���5R����h�Q�
x������`�^����b,.F���{����+Z����n�jX�5�]�A�������=��2�����E�jt{��7�=Ol�I�L��EC��9k�Y�z:*;�M�6k8�	c��4��RaW�����7�j���-B�
��PZ�����=v.��X���k�`��|�5���r���c���V��'b��5Xd�MB�*��
�N(���4U��R��e���St"���Y-���s���,��� ��u�)V����������43�$B����S �&)����v/��dttq�r|~1zy
��� �'*�\�
8�U�:�_����l�#HS�cT�Ip����K��o~�W?�������� em���K�����C�VX�]at�i*����S��A�^J��^C	�d��&��n+l��>�����!Q�{I���Fs+,����A��/����P�|�k0I�j1�^Fm�E>�GEu��6�1�P|Q�����eX��v/*�K��X��?Sxn���J3���Eg��P�yx�V�Y)�"�kV	�@�z�cL��x���h+����0�yMh�ux~qv�<����������f�e7��8g Qk0���>�Av0�� T��#�X������_����n-BJh���Mzyw
"_������\t6G
e����O��L�eTVMl+���.A_��`V������@R/>��	'��������(��v��%X�V�4�����Bv/��!9<�
��h��K ���f����8�_e�6�������B�������f7)����.b\�P��k��)3�@f���:���2�J�VSqd�($�B�2j��[���-;T��:'G������cqa�PS#�]�'���N�&g':M�k��V�����x�N�&���mf|�QhBn����z��	���\y�����/��������1�Xa/��b[V�I��o�nv�<��c�R�� ��pPN3H�%k��A�g}�i^u!p�i�&t���mMx���������d��� L��/�=��sH�]T?�v��m��u�9V��3\52�}=:z=��9�P����S��2�������_XC���[H����2��%j��P��>7'@c�M�Z5�2x�e���E���NvjP���ZoN�����LO���K��"l$����?���
J$Y��'�`w�6�N� �|�r0�����w�v�fxh�g�d�agDN�
�s��}����"��piA	�������h��Za9��`��9��3=}��|2W��*P�����mR�,�i�*�F�C�������-<���h��|�%hQ�G�2s�|�V�����#
8A�23�����	��F�/��a��Tm?64Ud��{���o!e���e_��n-<���u+�x�G�|;@��m��-�����y2K����VL�d�"�`�T��r{��F�`Fw��P��v`��>�Z�I�-�`��u�1���rC�����M"��kfr{���������E^���I6Ms-�D�&������w/���������~���������������]4�S������%��fu���n�L�9�w��IgQ������T�s�dq���H���� x�����\(�4/b�c�kiu`�%���SZD�����.	�q���vP�	h>�Y�Ep��-��_`�~A]3���[��U~�O�km���-����c����������&����������(����w��y���j�	�h�cyj�@D����o��g��"�����{y7��
{��`Ve�CY���7��p���Y��UXY����{,�j7'ON�#^��t���9h2���6��rS+@�-���n�T��A(?H��G[$�w���P(81�[�P���m������l��� �S{�%��ny��r����<H�C��m�:g�������T�zj����N�-��e~�o�:����&.���m�0E+�v
��L����8��x,&���h�f�d��In�B7��4��3�+(������yR8�m��Z�G�4����J��nk(���	d����~��?�[t��
L),��3C�W4HP	�lW�A��2d�X��8;*��z7�]�R�Kp\�
;�_�;Tl00I_H����V���9���#7w��}*��U$����`�������}��@�h�4\�3p�a���k�[�����1�v��:p^�-�k������<~����K*��L�7����mR�Og����t��y1U�*,#)�SX��B����b�/J i����O��	'��	�o��������xF'z�
�e�� <�8H������m0��0C�W�PV��C�����K%D�gx�&�&��_��ft�Q�4J%�����^�wh��;R�Cf�_�g�-,��`|p�L
����%]9=>��l;�&H�p�T�8|�` e9��/y���H�����E�J�N����\�9�6�+#���r
��V��8d����u4���
M�&R4�w��{�_�I+�s��jD����R��w�QR��5��W^(�g��d��vb���"
���O����,�&UH��������&�����r���K�g�l�O'g���g���&�)nr���h|1z~4v��b�^������)�k�&u]]W��McCJ�`�2��1!������+#s[(5���`��`H��2\�)�z���Kz�i�?�Qt�	����:���T���������^��/�g���g��_cg�&�����=��@��k�`����v(|m�9E�Iz��h����Z<����D�r��������\�U���8h_��Y7���_!"��tay�w0u/���Ym����3�����)��Gl�W�?����h��J�^�}Y_����\`W�MFB�5x&WHFmH)�1J��V�#��n������MS���y�/4����������5-�e��TC9I��7�����5~VNrq��y#T{*�Q���F$��w�7B5K�w��6���x��OX������J����@���{�m�&�����f �c�A�-4zv5��22��d�^?�����9c�:�i0��ckh������__���hk0#Q<y���+0��/�� �$�=9x��r{h�	]*_T�ut �����;�-U�` D����{������5�=��_�1�5v`������ �4��������v}����W��Ln��E&�^.%D���D�;R��C
�yKgf6����4X�)'%��f}�f�����5t`Gw����X���J +��-����/T;�VXB�1�%�T���l�"�����i����\P�OV���Y	s��	c���0N�4���vrh��IA�5��v��������]��^��� �M8��]�N���e�����3M�m���a
y�����V��3�WL�!VPFU��2�"_a)���Z�K�T��c��+�Y!S��U��$��a��&2$ni��E����'��p2�f3��������%���Bn�z��	�w	�~X !iL����
���S�9��h��a�:���-p�����O�8���8��CI�/E��	v�lqVt�X�w���#�K,����5��wo�	�Nu�^�
�W�AT'W]�&.m�6(�*
�P!�Ce���2��V`��$�i�m
t����E������~�~Q���R��[�&�����~/��G���cN�[��K�,�0�q��&�E�@��-�v�qk��d ��A5��B5���;�h���Do���;X������p��I1�������`�^��E�G����"�L���6������}&��M�C�h'|	g�s����.�.V�9\m>���x~��H�>�,'�'����y�~	�h����K�������|���/�b-�>�m�U1O�-3Z�.Y^�$������@L�����6����eZ��U��/�i�Co��e6�D�8��J��������|�w?�%$x
~X���i��VV�~���OFGG�����f���{ig��O~�M�����:<��}=������w�H�<���T���X���&:���m�u��0����,AojM�?>Fq%M�[$��8��9,��*���F���~�c ��^�2����e6��K�J�!�q���Gv�.���e[�^�*����T��8y���TPB�Pb�%��or8lh������*S$F�������Tnm��EnT�~�T�B���g%�rQ�����v/���O?�4UHR��	;^�)Y�A4��'xk�-��u��������AAp0Xb���IA(�A�[ea�v�X�B���&"��e�?8E���U��t�
=������swr\��JE�"U�C<����F���K���x����[H#�-gG~+M�!Cl ��"S�<*f��k#�T���A��+i�j�J���m@T6��4�L�
����@a�XK !�{r|l��_�������}���c����Q2��b�G~��Ur����6�M�3��F����>��~��Hj	|X��%����r��B�M�b���(M�ha-���6��4��������"Y���pZB�C��%�K{�^�(�@�8�Kl�.��uS],��������a���D,�����3�?:�	5V��I�
Z��Z�A�&���J���LpT�L�����
f����E��G�B8�h��h��#R���F�!g���b�qxr�j�	7����9v�-��K:y�K�+k�rO��+l������<��cu-<�M����������[3����$����&�{q���9|
t��>)�����D��(�h$&����K8�j����<8�lq0J���+�*�`W����%G�d�	���X��G�
g��Y��KLZ�dC�^�==:}!�F���'OcI�Y$Y
}�Zxj���,�
�X/��"���7����o��$�� v^�_�����&�P�����&	����`#}�42�3�3���QH$D�f�����uF6��Ac��Iz�it�H2�
��h&����/��%3���"W�lf������o�
�,_7/J����Rh(K���#7�RZ�F��2f�9W#���P���f�6l��+DvH7��.Y�kD�9�z(I�i����v��3��
���l,Q �W�����x����B�@�x�;�X�w�
r��%
�o<��c(� os��g��p\�r�=��}�����?C�-�S:�b�	f$[�>M8����]�����6��3������p�b��b\�iL�tz+��}�/�Oq�&�@V�r-�N[�.���]�%�DjZ���71\���D@�E��A���uS�������D(Vm���	L~��p6>�xR`w�����g�����l�����{����:����>����t32nZ�����k�]�-Q�<��q� ��&g��S-<I�n���4�!�2�,F"���@��<:fs��Ws�h�&@��f�SS8 ��wBk����1�o����k'����y�E$�
6��M�F:)x1��#��q�E��f��2�"�i�ZC����
��	r7�
L���m���m�����&@�=X7]#�8��N.��Y���	�2uO�~��}�	�
��#��CcO����9.Ew�RL{j#��
��hQ\�y$�Dwm�(l�E�G�Pa���r��z����!;JOY����B�;5�m���
���t����]rz(���M��-dh��=�~
���4R��M�G����)s=���a7��T�������L�(:��X���&|��]����z9$�R)Jx��Uk0��k3P��L���5.W���K\��Au��dM��j�&��b����P���3\����:4�v"�a������m�@��YC�b,��
���r�5"�d�S��D������Vy[����,b\s
P}V9r�l��X5���,S�`��Id��6
m Ocn�[���s��>@���a���&�_K�`)��7	(�Chm�I�m�'��<�Ga��s�!�D���*�hP�	J+�q���-<�������"����sRMd��+��"��5z$�����|=�J�
nT��y���9�x�N�Q������s�Ynf�D��(!~|�eRj�����=��dk��f8����55����<S//�/�8u��$�C����$�e^�~��&��8vcN�i���@��������m4�g�]�*,A�2����I��j��!ZL^&A%��9$fo�U���S�@S���3�
q���-�����a��=k��Je1�Hko����"u���T�]Q�Il��G2�m���T�G��$@vp����k�7��O�Y:BN#�������N�){z=��NG\��`��
�J�&�yo���-��fZ��q��
K2�1�I!2���li�����*,M�AP)���fdS��n5U�	��M��>;�n��9�)���	�T���C��!K������'�m������m�x�<���FB��eh
&P/�4o�o�����������v��}�f�&�lm��;2+��k��=}�r�k �~�k(V��T� �b��Vh���:�*Kh�r�0WRdn�e�g��M��koI����9[x�o�F8��G�@��DE<�w��j 6RK���	,����V��y���Q�}��bN�Q����8�R��gr-%�|
��-<U:���qB�����g���LW�w$8]��6f2��q<k���j�����E+�K��a��xt�jH��;�f)��6K�:��9�U�(Q�]�(;�YU�N����sKMK��l�����F w����gk��w�T���R�zb�F'6m�	t!q�i����9-��1*,YK���\&�#*�������l������&:�x'�8���;r@�PPt�c�<����W�:(��L�
V�#��,�L#-�5�D��D��!7"��AbG�R[��V�.SeN"�����n�[�wd�����p58�����[ ����7�5��g
�K�;S	�iY=�"����bD�S��h5��R8w�h
�:qF��������S��*�i�K����%n��mh���S�����g�7(�<rW�V�i��rE�2�TR8�[��]p�O��@���'�B�L05�D��y����*��V�P,8��T�C�c�����fy<��6��p�K��@o���������������	?`Mqf�%
�gq���mJ�5��;��L6��T���'
4Q$>���~[�2��
]^GE��MYO����qL���������p���	�����|�/��*s_i����.R��:@	��D���Gn��-��~��D�Fh��M�:��e���
��
-����=y�3��_����)��24�}J��P���Gz���������������Ci��l�]7XG�����+��z���\��yVo����b����*pTe#��w��D�Nt
�������$�u�-No����;�]N���Vh�����'g���^�������"I(�t���J��
�,��a7�V�1�_�M��Al�#oo[�P>�t
P � �M7%�::�g7dRf���{��4��\	�U�3d3��;%4lu���� ���,g�e����{����D���QW�-���0Uf���<S�������'D��K����Dne�N6�82n:@)��H�NLd��:�2�[�|�eb��p_p���Y��2d�!�$��Z�DS��JUnD^�����:�����s�*�,S��xWh�	�[���m�����G�%:W����Bn�c�&S��4�]�|�APT�C��)p[s���g�n;@�-M8��[iT�u|�;�\7�_#V�P�;l� �
�1
_y�D�
y2���Tsy�L$�B��#�q�LG��H���
K�������&��0��fZ�%���� BR��@
��<�c�mk0A<���Z8X�\\.�d=%�`�1h@���
M!��<b8���y�n��Yp��������?�������?������������������P��E�v(R��$>�d���WhP�8��l�W�	D��C���#�X�c��
�y���
��f�{In"�%N`r�]���v��K�:4W���
�	����Q�������nT]�@��.S��a��Q ��{(����'����B��xg��|?��:�/�D����s�����Z�,/��Z#����Yew6�-�.I�y�b=�<r�,=)s�$O���d$�'��x�b�j�F�p~�Hf���]�;�y����7�����g'g��b�7�d�b�i�}��������J����(���G��f,A'I��4^���;���A��b	Gn3�Da�>�K����2��{��H���@�}X����N� ����	?���y.'���S����2�����`G���J���[wT5����IN �����$��c���%J]�s��hl� 0������$J�aAD���
��{Y�K#y�����-�a��tV,x�(d����(c%e�U���H��8��#w�m�)T�`T�I&|-���&���n��;�
d+gU��N]&Ae0@��n�)>,�v����l���Lu����Y���[��Z:$�j:&Dh����s��j�w���"T�l��UBiY�r����}�g�ZO����%6�r����r��o��7��\
��7�E�L�g�ffS�����(���'P���u�b��s,�������`����D�(9����HO�{�KN�&�B�2E�qj����^���������Z�uX|-��D����;�)�*��=�`$�;�uk�I��������������{f���[�����e�S��Df�r��k�S��4�hq����$���T0R�K����B�XT`��'I2��D�ZH�w�����2f$�2�h�

� ;����4��L���u�������V���"#�����A#��<�;8�����hT[�T���L!��62��.Z�eK�2A�I�%2E��x(�T.4Xp�x�n�����J�B�lr]��t�l��T 
�?L��~;T/��v~t�U�n�5��N�.{���\�$v.��gQ��'|��V��e/��.*j��zw�Y&A���`��niO�y��s�2�T�����9�(�$��c��hj
]g;������[�h���E�8��:9c�r��3��s
t@�B�3�����R:B&��@2����,����Q#�������Mc�K�w�
�'-q2�v��"�t�t@?b��0���@����NH+i��6�����M��R�a��H��D��,Q�.�@o����7�z��i0������$��[�����)��D���I�4�
��x���X�wW��lp��/z����K��P"����@a$�,��j�7��?���?����?����?������������?Eq���Q��	�����Al
b���{%�Q ,K�$������2r����2I�[��m�S�mm����M[��z0AF�;�/,�����{��T ��j�n�������t�E:2+ t�Wh�L.��H��\��0��Q���Y �~�'"��Ta��]�"-�g�����p��<9<=�}�%����-���H�yEc7l����=N��H���/V	m������R��
P�I��k�P���Hr�g���)��-�tI�7<1p��.�F���=J��L���z��+���j�}tj�k�����?x�).e���Mb��L����o��V���[��y��j��]K�"�	��*/$N~i�7�\��7�P���/6����~�(���u{�o����_�:�~����IP��x
���$o��E��k,P�U���$
=�\�����	�qt�U���C*K�=G�E; �J���V��Kd��*�tB�r�R&���(y����R$�I�k�2���a�gT��	d���V��$2��	�1G�-����%b�!��������Y�O�d�>U�D���dlIl��|'��iQd_=y���'S��Ob������5
E�,b�6�JfH�;G�	V���
-�����7����e������W�.{g����U���b�o������[�(�>��-�]��9��v�����T��$I�G���r��0`�1����S��S��!���l��XN
��
�3X
�<c�2�{m+=����BW���!���V��yN ��Q��!^�:U`��0'���CN5�`H�C�G92�J�>{������L�)�T��D(�[�k�=um�L<�m�+|�,s.j>&	��{�#G�	�a��:�u��#l���Y=>����0t���1��/p���'q3�(���i�w�l�(�Zt�K�j��p-���K$���tH�C5|���a�g�1q�g��'F`f��3�RLcE���	��<[�������U��{�=�qr
��P��B&����'�����N�bGI�c�4�"��G���4�j��#7�h�	,�j�v���;�)sHy�39x(]PZVk ic�oq��*���a}�g(��``��F&b�[����[���g��Q����&��uKe��r�l�l�M�q�t^����%n���,I
�fW�(��*H
_��f��.[R/Q�	i���x$�b�S�U�O���<S��D��9��aR7��:2uk(���:����%��ThY���k�)t�o���HU��R,��R��j�y�X��b�E�>y�����O��!S
�Kk�l�6^S��Ubv�����v���5�h�s��J��
�Ls��N�����H��A	�nD����~�|Zq[��#C�Q�k�����H��#	F�O�����T�}���X�z���u�:��P������J7�m�+���u���uIg��&�R����I�A�S���G�|�e�]�}��V6|�s���x������yv.^�w�b�#)Xzrq��*�	;�P[�d���[)k9��x��������B��TXK�VYG#B���K�27�#!�6#�&�L���i��8�X��<[_ �+A�9� S��i5��l�t<j�)ZY1��.��Kt���(V��r�%��N�M8�L������M�.��'�/d�G�dBJ1� �Utz�H��!��4��~g������A�;�3E�y�^��o��O��%j�$��J$> �����T��5�D��-�����Te��Y�H���_��ssq"�k���,��<���F��%y���3���3?G�U�J-lf�&����"��q�������j�1r�*H�C[���'���;�v�M�DE�n36UH��~2(l����@P���K��P�R���6	�D^���s�����vNu�vP��_l ��p�62�2V(�E~\G��5n{����bbf�;�<Cv��th������B�@$m_�I��4jU S
;�O��7���>�2�K�5v�\�A�f�s���,�Rr&��X�h=!����K������x����A�0��fFh��;�$��N�H����T�v7���s>���o��"���V3��"G����bhDo�:+4v@�t���������VI"t��xA����t��5����,��q�RO�R�����k�7������_�c���m-����}�r���B���_
�[v]\l�w�{���W��+��/�o�B���`~a��'��]G��
���R1����������f�*Eh�������<��k�_�H��3���-������s�B9�f��������L
�%b���L���+��"�py�<�oD8��?��=MSw������}�F����$��$�(������!���<�\W�fe^����Y!C0IM��hkS�<�_=Z���,�"-|K�R�~b4u�#�:W�2��8�wb�iQ ��I�E�}�%|�B�X'�	kg��R�'(�P�<����x�b������pSR�*1�c������p�t!��;LWc�������
�q������xH:ny��H�+s#�u�&k�~h��Y���-S!Xg�w�U&�~��C:$��C�a�o����[�E�|*�`x�Z��c�;������).e�

�~���X�-��
�U�E���e�����o����/���Ypyxr6`��/{'����=�>����H�NGE<�a�g=���1E:0�$��NvIJ�c!f]��4��~"x.X�
�������
��&������������i����I�����4�����i�t�j�	���F�_8$�+���N�-k�K)eqTu���G��Y���IP1��3����4����Z���K/S1��-*�A��d��������ka��9�����4�MX���<�/
��J�����N�Nh�n���Dp+��@bx(G�����6��u�@��nc�f�2R�iRTY05f31S� �%
;��a����h}E����QM
����=q�����y�N�������M��p����v�;����|�cp���AorP�����2/p�Z�n�������?�/������d�F�:�������qs�cm�����2�.q�n{�2�:g{����Js3�	�~M8%s�@�O���j64��m_�@g����k��ud,�vc��f�&��������u�S��4�
;:
���w&
n�����L�@�(4���6<��g8O��t��	6u��v�Y�m�b�N�l�	��%
�&p������Wk9� ��������M`g�mp><~sx�b���}N�������Bg���;WkZ�N�{�5��_�T��!dB�)N_�Bc�l^�W�g'g�Q6���ud(j�s����E�N�>-<���9n������
��+2v�����'&X ���������X��k�b�r<��i�F�h�%y�#��j$"n���!R
6�fmU&	N]�����[y,'��P��DzB; AK�y��vJ�T9B3��4V�8m���j�m�d7�7HS�GRy!S���S5z���5�(�dh.v`p����LL���=�N}Vq��#�cC
'jsF�I�{���E4ekp�E�nR ����7�K��|+k�g28�Le��r/�.nH������3�!�M�(FA���SU�Q<�N�$o��b.�����D�9l$��
��T�_���L?(��j
G�r�h��B�����>[�8N$�N�&@�PY��<.� ��������K��(��A����T>Z�w�o&�@�Fs?����M�M����%%�-�T���	�J3���d��.��*-�:����	�����������������9��L�I\���@�X�v;�w�8F[s[����f�#���x]4�b"�C�&*0A���\M��*�Q�O�j%�%��<���u8��dr���F>p����������������.;�^�x�)�)2��G�R�?~�o����L�<�f*����|=)��	��v����p�n����ma��^>���C^�Fe�
����m{+��|�B��.�&@`_�������ghkS ��j��r��iO��va�f�B�������XySq[`��� �������f�b���	�]�;YPmca�����G*��7��;� �u�93�#3c�F�p:��a��$Rs������l���>�l��sw���$��<�J��_���%��*/d��SXKgG\��.k8��!7��Qo�m�w�b��Ry ���4��g������/Q�(�\<1+�0[wp�YCe�����<=��%`��;�aO����D��-��<�nW�������	'�R�-�:��E�����D	F"�$�J�1���D\"'�{(�D9<{�K�b�4�]!pK�
K�:�n�L�ws�Un�B��D5����p�<H�����qRQO�0�
fq�B�$XU�����h�),[��B<&�hWa7����~�<��`nh\X�A�����.� 
��i�L��&�z��[%����)�46x��$f#�f�%B&�b
��z"
s>��T0�b5Y0-�%�� ���|<����'���������&B�L����g���7��J |�H��duJ y��OD�&|���"?�RX1a�*��A	2��r3n�k_i�I,��t�����
�y�nxT���-�(#O
I���o��~�wW�3$c5�b��1���'_#w��@�R��D�	��3� ��v�l�QLy$��a,]�@27v0�7�+�j��!��*��%����4�`�������������p�b�M��+�D�O��R�%������o��E�EOE&�T4)_��K����M��M'�i����(�e���c	��q�~o�D
�05@����05��6"G"LD1�}.
�������TKt�iM�����:�����zBT����6(E�av��Ni��_^���B��*����M�����
��%>Y-�s�:L�LD����Ot��L���g���cWh��>���e�2���R`��zJ;����/u�A��b/� d�k�2	:&���HZ /�`1*�j�o�w�;"�R�iah���<|j���DF�W������qz�}�X�%
:�������3�������-���:���z|��n�T�#E��)�:c����!0�b7_��}������X�qk�p��q#�	���G��1�iVV(��j�;b\���$�0�������������]���q��$�H3^�\ �X�OQ��Oc��PP���{���W;��'s;��$�v��q��@�b��E����L����kM�)��$�9r6^G� ���s��8��%��>�$��N����e�lpy~���X��:��.��
f�f�L�$�)�H9��$[�m�����M�������#7��=�bog8)�M�����%L����Tv@����(����jN�D�^��\`�E��:��7�$V�m����78~3<>�:�����S8p'B���K�w&N!�K�����F;����&kO^p��F�y�fB#s�z$Am9c��C6��`t�����LaSD-��<�v�B�8��Y�w��g�C	$2������
������4���%8%MM �c5�dy�]���?�H�B�`��y��(E�|�����}���l��,����2�f*�/_�(��@����>�C�}f������4u�^�L����mc�6]OZ &����q���c�|�A�@��m�m�"����NJ�6-+46���mOt�?�:�Y���nv�G�Y�@'��B�p��Y������/���*0�}1M�-$��)#&�r���`����&L��,�21IM`���XT��R#v�e"4~��9]C� �z;7���YF#7s�P��g�F"��f����B��M�6%���E����T��XN���qf�8��V:OCza�
��[�����.Q�������\i�8X�)��^d�8�L .D4������*�s��e��#F;(��e��?��UD�R�IcH��I�K�v���1m�����-�$�E���E����c��e�"��C��Sk����	=����^�
8Q�����$����Z�9<��z�b)@I
3�����@L&62�9@T`��.���~�e,q2����u����3U
i$P�oQLU�'�,���F���BK�^�:�6
[K��%n����}����-IK���P2'y��x�!	|����2������>BKC
4�T;������l�H��las�FD�u��|1�Q����������7�,��u��E�J���R����H3����8�\ S�UX'4���#w`�ra�"JI�a-VJ!�#�|���S�Q���7<)�2t�}����07�L]~/��[43����A$���b�����)��.*
����'[Ov[m�!c�C����3�O��?�������^N�B���v(���Z��>}z�Hp�tG�4{1�,��F&b"����2/�F�,�G�t��z�[��<{�/�AQI�S�C2!��(�h��a9����I6��[C;�.��3Yt�X�XS&C3���i
&���&�mJ�q��#�J��%�>���o��T.�q�\N�9�����9L�8�2D��&�Om���,�L+�Jg���Y}y8���9;A�$-<MvtR�(�����e�������]�a���u��4	<��q�������p;0-��<�_�����[�U����+�����j0����9�� uk��|^��%��_�������E�d^���&�`����KD[a)D������\K#\��!S��0�����i�[�@�-ngb��v�85c��T]!������N"�_�|sr�{��	�M8�r�[��ed=�`H�S��*2�FD�CL$�k�	B����r����b*@	����W]�=h���iO1��f���ko������B� '�%;0��[6��	�` �.�R!��
���/��$[�Ie�%.H�w�m�4��z���e��[����fRn�]&��5!�V0$n?�&V��;�QL.�2��D)����n�E�^2�#�;����/rM�M����:�����&�2�h�7h�I�,EF�(A&�l�^�`�5�p�������Xg�N92�QN��9�~�
K�:���"@���<��"���.�n�G�)X���L� ��e�^���J,������0�N7���\F�>�z����Xb�s	����ro�B������R	�#,c5� WH1~�.U�C�%.���������r@�,=����|���E��~n����g����g�����HB'
s����x�8��@���J�!N���t�������!.9�

J6���# ���<*��:V��1�U�����u�-��N���4H�Y��~J�C5��/�(���J���� �.<�vD�lr?12}H����i�MB�/��&�(�4,o�;J?��a����\R3��#$���cM��>�H�j�#�b�E��;��� �,��nHTw��L:U\�E���������
dm���CG�6�;�B5v��6��3�u���b���`���k�P�B�D��[��dK�.�y�i��Z��7_U`��tRr�����S�j8%Yk�[�����:���<��T�N���$6��U��u�U������D�����Q<C��<C���\��%C��p��{�!r;�f;���������M��O�j����,���D�����.�7������oT&�6��uX�!�(��rV���s���7M��C���o�����Fn�-o+,�@��Mn�����u�������?�?����������������E��&@�����b���1����H�a]|[x�Y
�z�n��S�8�/���4��Z��.V��2��)3�P!�b�_=}���d�E�r�����*�������>��l��i^(�?D�t���%RD��T���.�X�U"�BL���F�-n�YKg��8U9Tn���t��2	����G���<�9���S�gg������ f�Z{5���(h-� �X�����Q����:��&@��������[��EL@�`�H| �*�g�-��c-���d:�����D��JT!���Ld��4h�	;4�L�y����>�\�*��6l=f�D:��#��:�mm������tm�s+���I�F<a�A�LH��*
C����lI �2��77�7�;b��7�������\X?Ev6NG�V����Lu�h3��H�K���������.�`�(�����^����3l��5Tf�1���@�H��{�b1����s�:2$w��?]��:H�*�t���LgzR h�w����C�$��\��D)��Z�
K�_;�����<��.�������*��-���:�vq�h ������`�����
4���ol7���6��}\��e45��F��3���b����������a����'H�s������-���x
;�k�f9���;��P#1��j�wIx�LbG�H�3�m�vG�n,u�=�[x��i��7�#	�G5O�c���{/-�~�b���Z��y6����S��������H��8������
md*��/��\O���o�v_�*�Z�%
;��(dC��:My�A��i�z��%�Z%B�����GR��d��8���o���G1��$bO�.�I���|��j��]�D���m>�'�4�$Z�~CD�u�*�z�:�K��n���5E�P�]��6�����D���,��?C.�+4I��E45-�Fi�Im_��L�H�����8�J����f�>%qm���O���F�$�*�O
I�dQ�)��,b�c�4p���}@��<K�/�lpxt���-��:�l�@1����x7(���,Q ���������9��M�X��.�J�$��2���&@�������n�Q�����PDZ�y�q|
&��m2��V3��R#�Tk�h���>�G���W���
�T�5?�:2Q��|��)��� �����|�M���]H`��d�k�uK��Da��a[��|�}PH�?�$E.R����9Nqoq;��u������e�q-slf���h\r��Jw�SWhPe�B��7�$n�C�]u&��2�(��d������S���0t�n�)\/��fH��%���?.Q���8�``����HO�{i�
=	/�:�6��7[���gG.,+0���� ��e������d�A�!S����x�I�v��
�5z��A$�i����c����������gm�o�f�eV����D�@hZ�5���M�m�g�����v ��%LE�k0M:%ky����6� ��AZw
4�Hn/t��=���BT����D� Cn0&�����C\m%r�5T�l���a�R1���u�Aj����|,J����!�-&�v�J�V�X+46����g�n�����K����&��2�"��"D1o'�TX���Zu4��]�+��"��`����XM<��?��!:��	��A�uRG���MU�Y7K�zBD�cC>�y}6����x�T:(���eS�6"�9^_�1�6�%z���@�c$�A���:;���BWh���br�������p�y������'H�?����H�/�H�pM0�����!	L��2��q���V�5i�*�$2HG��Q@&������q��%`
�D@�>���-r%�Jf���$�(�<r�,52B���#Wh��w������2w���H�\
'[iu��U"�0����������w]�?���]��Z3�,�����
�r<�			�����Ae<���7������N�H��T$Co��@��@�Q�HP���*�����
���m$N�S��~pY��yO����������7��<;9{�b�J���8#{\"�.v�l�3���WoqZ�6*w�H���$�O{����*���*>��

�6D�QH�q�
�r)%.� ��B�	����g��|���NOQ|�`)��H��M 	�|����z�������h�.�F$��r�\[ 
C���%
�g�wk�����Q*l�Q�P2���tQV9<�W�����`�P������E�&P���*5��p\���*M,�8���a�4�?6�
���F���������C���C��k��8_�?���6HP��{���T�52��S�ma����6��������Svq~r��[��s���<ZNh�	"���Y%Dx��6��3���3H0����q]04gKY�����f&��I�����l����L�`
��X�1�
2W�EW�l�Q�0G$�e�!:V��y4��b�5l���F��%�bSR��R���+t��@��:�v�b
�������H���$��H�h��h�1u�1��>S��Px�����DQ��
�*6���ipXl�{G���@`���}V����R���c��2	�Z��=�FJ���e"f�3a�mV����`t�brx��6���!u���i<��#?$e�`�^&A�VL�\�1v��&���uR-.��Z�X�5��h�h%#�
e�T&�>�Fg,��Xrk�����
����V�v�<�igI�\�(��L^(-���U"����:��!r?����!rYJd?�H�5����(l��9O����l6
4i�v�n�r����>RL�>�&�����E���'�r����Y9<�@��/���et�����j�����?�
����B�D���edCK�������iA����Y���)��U�A��~�	�g����<Y�!U�3a�6,?�5��\1�U�RLL3��;-0��& g~y�3-� ���]D���B�jT������d-�c��h�	fQ9���&�������.��0������>Z�g{�(���=�`��2S����&�#��WX�Vw#�p�`f�3d�!�$�����Xa	�q������'�J�\��(���A��e5��T�<��GN��{Sm+���!�&|�b�����Z��3sA�NQ��&�z�	���+4�|v:x���,H<��J#W}�bLc��4F�)�z��#R�]�V�NZ���
8Y�nY"�$6����J��6��o����c1�eRX;<��udv�����0��i�_%�yF��1��H�dD
�%O����S��[%B�:��I��k�	��F��Pa)�k!3�l�5tw��9�7�X��-�'��%g����M�C�TN%�Yu�b�p�O����i
RV���uH��/���0�3��s+�_��G��������&��'��N��Mr>�e_��%I�+���H_
���D�k�Aw��1v�!��;D����Cu��C���\lK��k J5����`�['�y$�qeks��-��a��B��c�e*X�����8��ud(jUiw���J�F�g����|M�2�DU�K����0L����`������g���&|��������_�P��������F�qq���=>���; ���nkM��Oz9����H�����^e����I\m� �T�,�g����6���V�Z�����X���J�)5g���T�����!�Y����m��{(��D�H�����Z
h�	�Bd�y�q��U"$a5"��J�j��U�#�RQ�wXO���V0��.�Jc��(��}cmVM8�
����w6N���������*}��J,��Q�������9�;I�
8�-��!����8�2����tH+����%����P���aY�)�,Jx����@o�5��/����9�nCN3Kf$��\E�`�w��^�u3nro�7�����=_H�vY}�q_��@���O�6Gf�t��3����W��Le�t�P:s�u�c_K���j��}H��cu��'ZWX�p��
��`I���l`y��9���B���K����}����;Y(�����e�;����%�����><��G�8���'����C�a��]:X��8���&�4��#T
&����G]o,1BRz���*�y�H�!�y�X��d���P��p�'����;-I�4#&s��
4�*.GV���15��<I���L
��=���7��
V�EZW������-���V�S���_v��������)k<�������I�����jM�6��j�A�`H�`tE�9K��G�H1�#wV�u��Hst�m���M�]��m$�m����EfHB�5�`����+:�!)������}�u�n�	�_��>���2��i{<r�,]��n�J�g
&0�&H�k�<CZ�NY*nq�������I����5Y����V��#�:��mT!�]�q��r�����,A'�27B���/����Zg�����
����`X��{��e�+��-����yV!r���Pm�7���a�M�JCJ��x��.��#/�kl��6
�g�"VO&>����hV��B�i�^�8�����{$����}��A.6�6eA
�Ry�9Vdi�	�s�$���g�����T�%�C�p�L�(B�C�QR<f#��4�6�e�g��Q|�����h�����C��I�H.�`��Ru+4v ����%O�H)����S��/7���5��9xq�udAO�)��M�f�k�7��+ ?I��b����VX��}����
X*�!����&�@�MSs?N���;���oq������AU�����B�qCW�4p���NE�������Tu����I$��W��2� w=[��H���L����p/�"w�\K������D���e*�������;�`s4�;��_�����.Q pD��=����Z��I�:2���eri s$u����Wh�#�����-��p
?�	r��4Y�$~srI�PLK�>d��E���K(�2����@S��s�2����2������N~{~��`��sk�Iuc��R����bO�L�w������+\F�M����p�J�T�7M<��k�T���!]+4(�9�X����J7"'�#I�%c���?��0���uJ���c���;n�A@B<�y�9������P,(�mB��L
$(����HPx��t�?�/Q s����z�A=���jr��e��,��A�b��G���
L��^%���Vg�RI�� f0����8�����������\��q���K�2	����������5.��FLt�k��n�A���07��]���u���kl����z����D��\�z$�H�A���|��j<Y`������J���zBO��k����9�{�#Cf!���L��OZT�<t������f� �%
d�������@�)��I�@�1�/N��@�||���x��daW/�z�3�)���x�HY���.fc��m��Y}�"����!�F^����}
V���������}���;�5�$6H��������Y=yt���ib��7H����u��H��H!�@���3t��\E����5������Q�$��!M�����H���c,C�$�1���e�G4r�@�{��e�7"U&1K���9eZ$�f���q?�������~�������8G�6�X�Tc�4l�WH�|���9�uj$J��
���t�&p����)�lfI��!
r~p@*��.�4���x��[�R�ra��H��e��.��f9�VU�����L6�I����`�
K�V������N���Cn��w�]O���DM�#dt�Z:4�hv��;������S��6��3hoDq��~���$��	�2�����p�3��/2�U��]dI�`X���t��(e<lw��c���H1�����ZxU��S�[��-$G;�S2c+nhq@���-$�M`�^�{�(��_xSo��j<Nd�yx���s�Z2�[�0��,���l���h�w��oS�c�}����A�0��:(E&Ufl��d�`�e���
Q�]���$��9�h
=�y����A	>'N���6{��4F6�&��9�����������������#"vp.H�y�N`5�v�f���N������#�0GoQ��$�fC��E��M�L�J���T^�	\��'����z���T[S�E�fb��QYKr�Y3��Ho�)�n���6op��EJJ-<M��!:C���������n�	�<s���S������h��Y�B��x��.h%��$�yYL%:}@����Ct�Y�u�9�=���6�`���do��BrG�;��0�3>�0��X��2��i�����kS�0'E���L[M8I����L�������x
E�K�ag#	��i�b�����������.x��wO8����6!��;^S�;���@���l,E�9h�5L�.��,��c�!Tk	Q1��SB��\�;�X9�u������V��2�R�vf5�!��������������(��\D��������y���v���~a���O�r�����\�����+����_�I� 1�32�Z[������h��f�h�*Cz����<�_�?3����*��S��a�<���Wg'�����>����.����b����ZV]�C/��p">����y��/{��\��~��W^&A��%��yC
8��	:��N�}4iqp�����T"�)i��3I�YI9���i(��H/2dF��rj���m�<�_|�&������	'�!Sl��E�a�>��@T��N�&�����o������;Ia�R���i����D��T6�����t�$
m�)>-7����$����tp�>��a���I���F`H�����	�+�!�-����`*x�m�)��������r�i��h�`�����X��.I���W�<���l�Eu��j�&|�kq��[����"�WTN|����cH��6=�8G��c)�7n��n9-�P!�2���[7�j�$%��t��4�t� �!]���&���Q��?(�� �%l�\�y��f�S����*2�3t��qxb�!�L��L�B�D��������������|���	'1�dL�Lh�p����Cz�8 	C�����0R���!F
R����<�B��d��!���&�|���������2��#s��M�����#7�R�68�G�@�g���%�7k��, ><����	Z��tIE6*���L�(�f4���C�>��8�s��Q#[���v�����f�#Itpv���\�B�L%�3���p��D(�i��i�Zx�U����5kO'Xu��H�^D�\FI1g����(��f�f����Y�����Dh�����v�Ak��v@n��J���M�I��W_���
P��bmb�y�N����/>��������C�������?�]���I��-"$!1��6<%�N��
��]���0J�s�0W��Q0���:T�

%�v%B4�$�]�
4!k��\O������V�w��o���"53k�e�	�0	�����`�Lb�l�\cT����@�==r�,�^��x����nLcFKm��"���8����!d�'��OWh�>�27���o�-";�MNO���O: A&�,Cj�=�l��6!�!��������|&I�b[J��R���#��	�iU
�A��|�U�z$IpN���"�#�����p��kd��}�d���������7s(Y/�d\�A��t8�n�]a����iZ��^�4��!r�K_�@�x��+(�\T�w��:�y#��rM�N�=t��jq��#9�$Iz��\��>�D����6s���U'�*
�feRH���C��*$k/g`���z��!�B��������\%B�B�;�(MT:6B�����TA{h��p�a�&��_��A��.	U�3-�B��IWhP�&:�"���hI����<�X.�F����$�R���5�`E���p&p�g5��^���U���8-�{�6�$nx��tg��8i���	��^Q�sO���������l����^,���6�r�%�|��t�#Yx�����f�����tv0df�ybf�
����I���Y"��M����j������fS���4���&��<�����}��4.����F^���[7��t���J��<��nX^G��Y�f�A�&fY��+4vP�8S���K<��@�c���:?������S�%�*l�GR��S6���\~LE���$��"�v����}�^H�C��"{�knFo�S�m�s��$f�*�J5��i��v-���������������oN�z��W�o/{.UD�w�M=Y^g�x|����_��T�,(��Y�f��
k�1������uD��B ?8 I�q��!QJ�OD�5GW`���i�,|��,Wh���k;M ?���[��������y�(I[�)�-�P�<�,<�bM�Z^��h���'P���
����s����X_�6��3hD{�sB�H���Bs�N:�`�W�`�,��Z�����B+��|k����.�;�D�T|���.�X���l����s��[�G�LI�w�n��Z�h�R0~yx�������1N�&�K�.��:��+4����r��u�|�C:jU����9k��h�x�a��
K�����h��G�o�L�`=�Nzu@�>�s���4,�9"i�q��T���rf��T��Ix��0&i�b"n�,��i�IVp��\E���Zx����H��C������f�Ap�#:Q���N�Hg��y��O^������38�9�D�Ta)d4d�N����T!��%�9��8��#	�h���\c
P��lB���E5������"���"�x�)�����

�zi�]�6�
���7��`�4?���@��	@o[1O$R��T��J3"��t��M�-+[�p��`�����/�ay$��[Q�bh(8r���b��4f����Kt<�y
��"M���-5�r<6s���<E�d��'p���1����H��M�&�Q�F�%����y�N���F���TN�"E�M<��K8%��lo��0c^��N=���g��
����6�c��g�E`g������Y���9|���4�(��p��M�$u#4:q=!B_�
��y�L�r�Leq;2�Dr���$�[2d�D�5�)�<��J����y�nxT��`��<S�f�6�*]e��y��cX�e�\gz(A�.��P�wa�&@��:56���)��4����FH2���Op��@L�cb����M`��g�hP�UXe�H�����(�I��dP
�V%|���,�3���?�0���o���\�)�h*o`�k G�6	"�y���a.&�M����t�4���N0��n�w�%����c}�4���YU
4A�H��+��h�YMd�1��

��L!��y���D8K��u�.��-�����<�Vh���.i��J��;~��a+������g�x��4��F"�+��d�N�������J��y3����
��q�O�=���������G8/G$�l��Y�����v���� �C�%���4,%x���	zM�T�~����T��Qi��yq�q&�
K�c	��u<t�s��[���0	,Q ��;��X�)��!�7$��/�_�������[Ht�^���h Xql�f�o�Oq����������B���P2g���Bz�.Q������������5.�W����8�b�12���Ef��R����v���|T�G<�&@a��:Gfe���)R?�:by�E�72/�n����C�#����Z����^Z�g����uopx���d��Y�L�;2M8AK;�e~�ry�LB�L�b�F�4������ EV�@�<�
����hj�Dc����DXc�r��r����lm-Q �ub��������21��)%[���
��(�!��Y,SM���{�6�
�8���bbf����s���*�g�12I�c�|��)�2�����	��J\�[Gf����;������-��������0��qt@�=�<�7,������y��!C�l'	�
2�"����U"K=	����m�w64#�����i�)���8���%s��B����>g����<E"�E�UL��@FN%S$����L����{#X�d���\�K)R#�Bc�lN����m��aKt�K1�46Ri�)����$�e�y9 ���U��J���Z�Z�*JF'�
DvH���if�p6�9	��b��<����46�O�LoT��r<�ad��N��&qxR�p��6
_�()�uWaw$�f+��hUf�$�5�@v��F&b�L�������M�T�w�����O�3�b�	�4p$�q�8-gBK�:�	�<s�^��<�EG���3i�y�����nY[�J"8��)���)R�
P
� Q�z
P�sY�H�f�����`U�T���@��$I-�Y�\B��Vh�M����y�Fbha�����A����~�Yh�+�����zI ��nS pSz���c��-<���R8 ��K$�\�J"a�s�A7K�C�����>� �L��Fh��e-2Q)N��;�������������?��9.X�w���p�b�	�d�#��R
�l���n
���z������������C����s=��3<8����a��X�U}����,A�)p��*F�'���/���c��M���QWG��X�d[\K�""������Y��������^]�N��Pl���� �R�Kfi���8��&�
L�������/�I|�Q"�k���P�����8��e[[>��D���4%���}�h��N���te�x�aw-"v�s'C���7�TR
��&�$�X\"��VX�:�*i�[��A���)Mf��k����[����M���b�s���=;-6�$��R��p�b'���?g�� �����$��\
��z��.}G]�����|M���8���D��\�w��mmM��jA�����$c}��-Z6������~�����O?���������/��P:�������z?�?�;���rw�	6�I�s�uc����Lc5�h�]%�yF__��D1���g�
��C3��+��,���7TX�e�"/nvP*V�;��z<U�!���@^1��*������;�"�cW`�VV�N��	l������9���b��N���������gGO�K0�.�s��j.��K}-Q pn<��.q�-@i�;��w��;������+D�=��Mh���B�%�F�����������G���{wnY-m;�����-��6�1�h��R��Ib���NJ\b�e$����3��n����80rV,2���r�;�ZB�g����?�#��L&\K��M8��b>n\�@�9����G�,g"E�r�c]>��2����$3��m���2�z$cv�2d�5dH��ysVC��C�(�9<j0���H��=@I��nBxB�a%t,���lW��0y8�� ����������������������<�wB������b��	�b-���P�)���;�%
4�l*�L�9Z������L��T�`)��*,�FM`�6������zB$c�#b�s�����<Y2�;F��!C�|@���4a=�*���
��+�6	����g��0�p��26�N@�<��-�\3W�v����|�/�������Qp���*����*,[�"a����`,��
����J��M�'�Q9c��������ba�R�)�������K��Y�p�LUaw�-{���utlG��<{�Fc�y�~e����
K����7�����+�(SdN���$����
�N���$��DM��Tj����Os:-g#��@(
U^L�x�>y��M���
�~��G��|]KHXt�lX���l�i��%
;"~�ePf��q�]l��9*e#���#��*�L+�L96�������{���3l
T��y�mpiB�8�	x�X�G�.�W�������
��[�T�����nQ��)@�|S:��P0u�&
g�H�p*h��a	7Vy��Y8S�����!G��%�����l���Eo�iX��c��Kdh�)�c�E6��c
�49:���R��a�O����
��P��c�/�����
4�_�R��(@)t�E�S��[����o�=�
%2�f>�9���b�������^Z�g{�R?����}+,����6����$(��� s���{��i��D�OW��@H���X��f:�&���^U���U�b�'ub�M`�I���p��j4�B��.�TS�F�DT��r��{H�2�q�pv�%aJ��R4LJ%�p/�����N��2��d���v�.��m:�g7Uu��0@It�EeyN�O*�������]G���e�3�����'g�s\�$�^�p�KJ��%V�d`�:gD>�v?��8�*,[x������d����3�h��*��yh��n��+4(�Z>ni���;&$}eO�����I�
q[t�}����7�=��y
���"��,��Fh����'P<�kd6J�	W��(
%g7�y!#�?b�,��������,�5�w@�����w"�����s����<x�������P
��Cf%�|JZ��;<z$�K��!�eB��Jd����J2�B�%�JH���.p����+��[�_����Q��+4����1�c��ai.���yt2+5�l����/�����[\�QN�q������b�h�$���:
�G �)����
�.+�ud&8#�=������x����(�L�������6��0Z"=[Vhh��\���R�i�������}�-������6����'l�M�'��@�������d������6�r����������������n����Z�)"��T���	'�[��p��2
�X�$=
4A�
���5��*F�������k�<�	�A)��Bh���5��_bb�	v��`fS�b��{�.�Um�@���<�r����;)�����[N����`[�N��5Tl�
�����-\&A����
��Y{TQ�b��'0�������5�*���u��D�I�]�F.�E7��%
�g�6��Q�#)�s9����R#��#�yf��D���E�����[S��;�,��J�86��=���,S����Wh�Hn�Tp0�T��t���\%��������8s@�8|�/��?�A���m�+,��e��	�k0���z�H��T�%�9�e�(�O�4�Z����
�t�%N����N�	�@�e%zU�5�u����1�!$����zMSC6���5�5�p-A�F	�s������<;�(Ry'r�z����[WJ0e/r4W��b]�4�K�;�?�;w xM�,�f�Lh���
4EN�|��2��n��{(Q�*�:��	'�O�I3V�q��9�%�j$���J��f�����KlXO�(�4��{�h��&,Q�<�g�w>~�S��`������-�t�L}���]�����Tlt`�`���8|������6+�2	�4?vm�w��3���j��������Da'Y�������F"�J
��!�c=D�"���.�rG��[���I!tk�y��m���`e�M��D�,�
2�p���][�fk�^���84����N&<�w"f7<)����7��G�����^���m����2���y�?��6�?�����z�$QO�*/���"����������v���p��V~VX��\]tu
4�G���8�4�m���S�����IaGw���8���������\K�o\
�<c�2f�����F��W��0�?��� !��,�"1�L�e�����QX�����*$R�o�IjwS���f�d����4V6��y#���m�G6��[��#���F*�
��HK��

"sI'g�%
;i2#Co�4�6� ����������6$N�]&��L��LB�V$��#�#Wh�,���Lc�GV���{J�l���5���#���[a)�s�0-<��2�I�h��g���w8��A��������lpxt�C1y��3����
�E�<C���O�^��U���5��%
4u���]y
�'Hw�1+��(�<�`N��3-��R����|b���|��6��@V�L$��#-��
O|�W,o4�����b�o��!K0p%r&������������}�~a�+�:1�S1�o�ZXCCG>[�HA�/OR�*Y����2G�nh �Hd:�����#Cf�����6�";��������J������������dw�[k���I�������I�\6.
&i�l��S2���&J��dM��Y���+��������C�8?G���)�y)��_N����Vh���l����Qk��{�7�D1'h?��dq�`��jp�x�g����-<�g*��"S=��
������S��E����a������/o�s����{���o���7lp���YC��I~>�4*���'j��K��#|���t��
��m���|�����*U,.�����#��}��O���x&i������J�C�{���7������<[���D�^(U�8��(u�}P����G���sd`��	L�,�)c'l,�j�5T6�������I&h�H����$�
)�I<v�<����MEt����Tv�U9��&ne�T_,Q �:�6�;��	�1��� �vL��"`��X�x���N���������`s�TXI��Uf��SS���U";�h��E�����8��e�����*2��-���"��j6I�-�7��aF�Q�%.������r���dl�/�q�;[�����W����)sIL����`�[d�9Q$���Wh�d��o��g(�����l�R�[s���y���I�s��Ta	�4dn��|�@���2
!^e��C�Q/�.��c���D7Aau�
4k�l�5��O������K��g�`J�lm+�b�n`���]��(��~)������&@�r��
R�j�����x����s�4����3�����*�e�`��X0�52�z��p���)�W���'�{�L��7����H�IY���sqIY�i����z;�R>��1�_7������(����@b��_'}vvuz�Fb�o�*�;��Om�����U]�RD��H��y�����`�L���}��SO��S�f �[��[MPWb���%�#]K��_��.��n�3�' 5Ra��N�w/����M�L��[���9��Yz�����|Va	�������I��s�nI3���"�\S��-�!#U1<[
4��o������3�Gl��>&��g���Ic'm�6�!�@��)(o���?��a�����*E���C����2�������B`�I!Lg����3��)�n�V�d�J;��k������C��3	Ik���)|,��fv���5�d�+�����A��Yv*d���R�K���
M0��"�����?�A�������:�~��
���E&9 A��������&kq�s"N��p�2p��+wK%�5��T����%
�L��)�$6n��R����9��8S1���K��i���F�R�h����K��4�F�q��6���8�\ w���:��������<.�|�U���v������pg���D��DN
��Y�%����a�S*�����<?y�b��,c��.�;�B�"@�Y����.����$���G�������?��,$�-q��{�����v� ��cf�}iZO�����z��Ci�x��v�e�-�.�}2��l2,�����%M8���wCn 0�`���>W�
Y�B-�kln�
K�-����0�n`��S2��;�:pF�T9�sUa)�b�bTl]=`���l!9"���N���SGXn
&H�q���v@"/0q[���f���ZV�#�YZ����������y��-�_]�N��~Vh�Ez�Sp�j\C�������C)�W8�������.<�
3��|�z��p�E�hR�X-�h��S�^�s��i��%=�P�m�t��.WXW��w8a�	��������7�$0�Q�c�#��55���(���,R<9� U�Ib�rRj����%V�]C�"	��"f�V��K��j���%�_��/�-���V�89�c�-
����������^ud��5��kd+�����c��!q��:s�xr$"*X<B:sTh:�:y�/� Q�OD1t~-�N�O��"�A-�dj@��Wht��-����c�I����%]�~�%*����'`��q�3@)���R��1�{�	P���Ld:F*�Q���
A���t�M8	s���
	�3Vj>l�w#��',/�X*��w���qv���/{��b�/�&L ��W]ZJ��������v�����B������u�c�u�}�[l�h�%�g�[�9 A=�����Sx�Z7b����&c�c�lu��^�@�������0���`���4[�m;��nl�	�*�&���K�����!���w'�}7���;��5�l��n���� u=��\�X"A�����XFT����aw

=s��,�bF5W���
K�����0��D�`Mp��-����"Vsdm,E�.|M��K$N�v@��,U��v�J�����<{ce��I��wn�)D&�HKS�%��2R�p�
K�����raU|'�a��������Q���14F��'��97����<��bq#�!�M8���m[���e��j�	&�.B.�t;-���'O`����`�z23>�e�����O���x��)}�W���~�p9:?s�����S��X������
P������/�?}v����G8��
�����\�A�*2�<�,R��+���5ThY��%��1;qN��)�)�p��e[���xD����A~�
�3�����#S���	��-��8S�����]�'N9�@��R�g��NK��*8���M�BsU���K���P3Qh��V��Lx[�>zG�&��C&��(J��|�����M������~�c��M���Z��e
�H�v�����<���<���}�N���A�K$��It��1�Db�L�]�&\Gq����V9��F�P�I���@��<t�L-�p��dk����Z,p�Q$ X��"�J��u�L��f�5�8�����B���u"R�Mo����Ts+4HF~��g2���xt-�v���H\a ����9�q�EaGl	�r�mD��!P�c�CM�6B���0�rf�
.(��n�������e���Sv��x�B�����7�������6�2�5����q��?9{���r�g�uJ��(�+^�W�g�����'P�cS�S���Je����
4M]�)�q*5�&�`��M;�2C��	���������������V���������\P�u��&���\�����P�,�p|�	l�����g�	�#	4��I�8�R����+ [{O ����X�������a�J?
�����Cr��X`�R�����5���O�	'pT�8r�J$��QsV(�(3���[%Ba�� w��H�Ws��j�>���u�3.� a�t�y#k'��

�<E�9e��0�5vd���:|�~'����E"S�SS��[[��St�:y���{,��a�;��,�q�$0�fe�C�q��6�N��	-<���sdH�R����_.�Z�	'������
��2=ylJ���LIdD�2	�T4
)l; �
}�s�J{�V2Ud����(�O�=���!w��oi��������i��9�2�Y��t�vL��8A��C�,�����|�t�L������
;�������<�"R�L'_��8f@m���\��`��t�(����2~����&|��x/��������?������/�~�W�b$t!�}���&H08�<���s��9�/���A2�>�-�*,
[��aJ������r��I(��L$��^�%P`E�h���m�iX��c2g���i�L��&@�T����N���g�Q��#�KY��)s��U7�����������m�k�Lh2c]��[�s���,�)���3�Tj�_�%#y��28<��
�-<��~�3<��:b�#r�8<���>i��8m�n���)9��Rrne��x4��i���:L�k��\���.n�����	KTt��\"�,Q ������	�����l���,%��2��F��F�a�?���>�A�T��'g������C�vM�����@��
�ee�>�g�l�	�~yR"�t� _���O�#	��W�����J�T�����}vv>89��P�R��4����in�5*9n�[�#a����J��fN�1����`0Qsdt�R��I�)3�os�:����h�X&A�$����9��FN�)v7�L`�)�Y��2A���$(�_s������Hf�/�*Bf��H������dx��������w8�����)nm�&�3�A"�!�Y$gH�A����M���������r?1�Y�?�u�h�B�B���"C&�������[x2yG�1��M`�k�KU!��-Y^�!�H���[��gO K#�����;���S�zB�v+�����R�$�����<�[�
T�����]�+,[�"f
����FZd\�x�f��	dD�:2K�|�����Z�)�q��������
w5�F���8�_
�1��Cm$�N��H/e�nxT���X���k��p��l��"��qH��1H�Q��He���P�v$��Q
q�����O���`����Y�6��d���[Gf�����{��^�y��x���66KR���k�I�e��$8���2�=~�G�mM;��`���������_"7[&��L�����&6����c,C��1�j�������tR[a)�Th���&� ����op�pI��#:C����{�Cx#pO��J�|��cX�	�Q�_��N:����VX"3:�~N�1�;�������A���g���������z�@���K��@�i1�oG�&@����O�N^a)2!C4p�}�U4E���y�
�rH����#��w
�]E����� �Aem���cz�Y"���
�����5T�c���-�N��2�rO�%4��.�Yk�D|�����$UO�������
|�;E�3a3c^&�T������B0�k�4+S39������}��J~�|��Dy��{��}��;wK��J�(���6.e>�N�%����������{i�-�~��nq�$����X�=\Zx
kvQ�4g��X��K���H��������3�]���dp=�����i
��2�������h��.@���Q�������?@��d=����Is5(�����
s[x"��B�h��{���f$��r=%�h?5D��*,������P�4ts�Q�2R�s!F�b�H3H/�&K�2�F!�zr��_�?�a{��&|��^-"��!�J"���[�"�J�����)��	��lUX���oqAU�����m�dq��`����������G1�4����f��p���3��T�)�q��{(����tCv�l�:����>c_������	P�����bL \c�rfD)9;�]-�)Vo���:K����	���L�*v�l=�J
-���KB��]L��F�i��)n��dz�����y������*�AY<��B��D��.�)�N�^��C������M^`S������S0u#c�s�H�!��w\��K���i�-n���]g�\f�R�X�0��_�%�w|
e���Aj �.�y������>9w*]�Y"�y&����S����(Q��o-���;����`M�;���	�fd�u����`�I��'��x�$����I>�Z<	����$��Z���R���,��d/mT>y��uQ`M�+4(�1l�;B��.Q �zr|B�
K!J�R��E,4N��B��X������u�eF�-U�n)[E��x�yvz��X�H�"s�����Nq�j�#q�-�d���L�;~�_��&��"���3�����)#��*0�'������'���!��S\%B�;�����V�P0�2�'rM��@&���Tu��/��9<��z�t�s��35�
���H��d�\!TX*s
��l*O"G�-�C)�&�\�h*��LI�8��Ah�������
�$����ZOi����Jd'�:�:�����X)���<��OpKl��%:���^��8���5��R]5�4���-�cc��(t�Y�4�X��t0���C�J*J8r�
KaL����?x�-��p;�X����M1���O<v�������qf�S�FpI����y[&A1�%����;��f���R�q
&�z�2E���^Sf�c\�Z�@�t�3G�ls��>�8�rO��]�wX��sA�8�`bR�Z�a�I��������vf2���L��I�.���������s����6Z|f������������*�^�<D�"b%/y����%6r�Ea'Y���D
�J��4CZ2��&�p����1S����4\��2-<M�9Ia�bt��
O!���J ���)R���&�EZ�[�r�{���p�^Z���3g�0]��9�����\��4�k���=�V�W��[�����O����>������h���v��_<{v�����������/�e�����%dp`�_]+��kus�}?t�g�����{��B��;��1��R;S&�_�~o�Len���s��,����b��P��73f# ��V���h`�x��G��Q<�'�3��T����H�_���G)�g�X����I�'��"��,����1�.�Sa.���������B�s�k�2�
Cg��i���H�ElhY.s��?V��*S�N���UTG���}��g�Y?Ve�ra�pr�O�<uTB�i��N
��@9lR�n��K��������,/�cY��Bb7����X��kCn�J�
Sc�n�po���6����*!�����f�����*S�iln����zd���o�.���1��2v2���t/j��/��4��y!f�����F����{�iP������7��f�����	�6���9W���}52�W�?={4�m����M�����OB[����e[���a��
���]���F�����\A���1�����R��y��>�{�'L�O�?�6r�8b���W�f���7k�Wh���L�.����z�U���{�G��~������)�`e*��+���L����-L�d�l>Z�23��f21K��������@f&&�E������K�5P���(�L�F����JaL=@ajy��R�������|����}����3�:9����c��������=���t��r��F_�Q��+������e�UZ�]�y��������Fj��`V��MS���!�v>z)����,9�.fZ�o���]��������Xy�3�U����3S�=�>��`:�C;5)?qY�]v%���^��>��T�G��8j��?��BO������'�_�f�|��s3��q��x�qS-�B����H0�|b����������?��(Le�t�Z�&���%�����S����z;<{��ozg��K(:�ch�~f�0���d)�T�
���c�|j����o�H�����fF�u�D����u�Aj�hWw��j����~m;�����2�`�#)8��?}���������TdPO��}v�
a����	��2�H���/�>en�6�l��c3��)z�VcX���Ten&���9���\K��C�������>6-</�I��?��L���=�m�x;�
uQT��t�I1�>|�+6n���� �l]w���`��<������?�2�:��)�h0**����v����T��L������<9�HA~�����~<��_/�7m6����e������t��4c���q��q�o{h���i�F���c��5�A�'�7~�m���HfS�������:�:|�����~����.����/?����������h5~��}#�9���6x����B:�9��?<{{tgf����#Q��uZ��sl>`5���A���<\��24�?����D�C������P��g�d�S#`��v��@;v�/M�k�GB+�8|��^��}p�GC�b�����	�6H���+R*M��##P�4�����>f���l3l$vI�����n�+�9+����cQp�a�s�0F��L=�'Z��{=3K��>!�������I�p���]����J�o4��
���7���G��.�>>�8j��e�~uy�cW���=����DV�oO?�.�
��r��pd��}�x}d+V:���>������A���5�/�>5$>�I����}Xc���w�3�T�N���w��R����)��������?,�!OU
B������������bd�8LUjk�LMU���0����0r5t�4Si��d7��'��y�V>�_���^��1��O#1l�	_������*����i�Ss����=�����2��s�m0XU����?s�W#�X���nI`k3|fC����X��'U�eF�T$�R�f�6��*��M���[��m?D�U�gE����g��pk�"sZ�"#���eR����q����Y��fiwd�v�Xg*�R$�v��w����h8k��C�
�KZ����y�����Au�AD��Xw3h�N~��F�,��g?|���\m,�kk���%�-M���w���hb�z�zyCb��
8����� ���Jt94���V�W�d,�K~���RX&`Fvi��d�g��}C�]2WL�
���!>������4�j�*3J�)�����S���;�
�#q(Z������f���?������f(s-�{m�fm��������A����d���i����vn���0c�S��O� �Oxn�����T������v�'i��n�P3��B?|/y��s�G���������le��e�����f���t��iih[���@xY a��b�bC�2i�k�������\�\&�%,�A���7)3����o�dp)���O��)�Qx�y�S���7�ZY������t�9���e��������3���KV��<3i���/��t�SK~��q��3���`&N3�q�����#x�����Z�����/
��>�NO�D:����(�Q�%����Q��g�*����:����g���y?5&j��L�7bgy&x45��I���O���1��i���}�7]�%)�a��OA�P������?a0@>f�O[��\[{�o�AN�#�+m��[������L�"�V�@�}��[k��U�d�?t ���~��AP����`�k��H��d��������@-�q#���]������Wc��p�]����������c�x������[�=������O�e��{o��~����I��u�/���,�.5�)Y�2�\��lS��Zb�>�����T��7�2��������m��9���1�8����p���'s�ln�S)�8Jn7��H���O;������N#�Ujnp�Y5��pS��xm�O��q���>�Yk4��L����]�����������>L8V��gqk)��J�a�Wl���_u��5?X����M5A"t;�B�����:�>����}�&O�|�_[��o��:��f4U%��e6�9	*��n9�����o���N
�K�}�}�?��|��k�!�T����J�a\z`Qb�bh�~n�1�(���_ av{n[4Zwf$�O�����,<6<����~��=<uU��VB���=������
���&/)3OM6�OE8�Q�@/�.�����.��rS`�,�h����Pf4Mk%R���s8"��P=�Y���j�0�d�m��"s����f;���|��v��,���{��pS�MP�VvFx�k�������t������lpuvrF���H`���['����v����
G���Vz^�����m|2Y=	�z�g����R��AX�43����5�
#w��OM������\�_��;�[�L!���V����Y�e���M'��Z����g���a3����47���/#n�j������!{��W����Y9,J#�����y����2W@O?}��LJ7����+��L��6����x�U`�Ej�����v�s�b��{�t9���{(��I� RZ��y�7�.-��L�$<�W��Q�%\�,r�<nbsm;���.�KG���^������g�O�{E����>�7+�}��9�>���g�#���p��:��hs��&XiT��CqYZ���.)�,����������:o��6�7����]��`��`44
$I�(Pk4���z��vY�p�
0�q�������)��9�@���<����r`�R��pz��5������1���r�:�$���s_��|�P��D��D"3���0�V���v�����AN��#���2/�����[������]�Td�M@��Oem�~�	~��M��<C�l�V�o������jf�����+Y��4XWY�e��8k�\j�}v���+�Z�����?�(��O�������y{�a����kzCe��9g�[}���V�x%k�A�� �*)]V(m�-K�����{ Y6k�O������=�U<���_��U���A�X���|>B�+S36����c�>��	3�g ������; ����j/���z����pi�(t��J�����m���(e=�ll��~��@Y�xG���)S1o�mV�����X#�r;�0�����5U���K����5-DE0R�Z�������W����T�Z%��J��j�~�
_V�����HV_�x�*����|C5�;�68.C�~�v��BA���z�uw���VX�9��!FX�w5��r��������Q������K�=+�����~���#n�\�:�q�+Xj��y�H&��o>���V���_�}�9��&p�s���>��������������������6g�,yhgF��so�1�IF���
4��[����:����;�r����K��/�~���������������	�����7��n�+���~��2�f��f��F�����Bjj������m��OQ	��j�c�x�q�Z���U3��F�H������3��j;sx�U^O���>���E�T�e�P��*����p��z ^�|����f��U:�4��F���S��^
Xw�e+�EQ,�e�L�1
���)4�y�T�}W���q����G*wC�_���N���$��Kw�`�k;*����2�����m�1�g"�5���^�+z�Zk��34�Ks�����Z4��p[���3=Z�r�b�`��e���q��7�������201�V5��|��V��o���|����Y�dx��
jGl3n�{np!iq�4.���v�6w��;|xM`�q����F�24}�Z�����>z
2u�R�����=<�<[Y�}���S�f��m�+hD��0�q6�?�U��_�*���os*�:�^�,���*�M���V�(t��p�!p��,�L��O@��)��P\|&Zx�WV��.�u��@��a-_}+�Z�:�c	vx���'D5u�A
j
���P�gY
���7�Hc��:������pp�����<v
�''��c�����j�f��4xeY�0YHod��{c��TPI�$k�*w��%o��T4�|��o�z�bhU����{������Ea�F�5hy�kO�kM�d��{�U%T�[�JpjOk�������3�lZ� nETj���7�.Q������K��./���K�&	�������j�����O���}��j��>i�m���G��T���ZK�iH9k�rpz43@=F��&��~�Z��{�����e���z�QA���<�������nm�g��[Ph��?�(�~�\j5g����Nt�I��dq'�4=�u|Z�9,?�*����?��)!���>;�x���P;�Aj�xk!����NS�����>������L�p���~b��?�k���|�FU��'k���u����I}�b�k���8��I���{�ix��g��p3����W�:M��I�l��c>��h"�W�Q��3��$���LV����G�d���VA��������a�i��p�H�5N����P�y��{U������W�K���T5�R'|��n��U����k��b�u�2WI�����������p��>�Z���d=0����./%�6C�\ �&2��	n�n9>����&��2��Z�����D���~0Y��Vt�M�7����N��3�����'^K����,����`�����Y"�l�=������rvK��zU��
����������F���Vpn��������pf�G#-ndeT���u?����Q�gp�97\&.�&����M�I�oX��"Y|�Uz�"����a	��D�����������VT�"�$.�v�m�R^�O\x���q�8_NdQ�Pa�||��'VTx^i4E�����[<�#)��b�C�R������w}����|�y�;��?��'lT��^,�d��K��.�C����W�W����/�ls#��qry�<�V$���[r�r
� "W�Wop#X-�B{������2���75p{���7����p�W�H�����W$���d?�Pj�_�Oj5d3�����,���O�	���K�"�����,]O���fo�_���)�`�\V-�h�;����Q���"t���@�W�[{It��Dn���g����IP������������������X-�l�X]��������<E����6�����p��������^N�NNO�9^�@�1��F��UW�	������AG�<��t��u�V�XT���==Z�j1�C�#1Hn�������T�������7f�p���Y�fw4P_U!��x/S��d����#���Q�00�����J*�����U��XW$|l'�<���.�zZ�������9<{yJ�I"nes7�
���0�����7������uui�jX�����<���X���I�6���k�R������e�*�Nr<��������5f<��NA�j���*��KY����])@O����~���������:�3�}����'V�9��/��I������bKu���3�BF�!����a����C��4��?8{���Kv~A�4�0��O
���I��	��Ci��^R9�	�3`������������_|���3�������>%���o��?�����|����v����??{q�������K��3��_�����;�����_>>����={?�X�Re��x<���N���6�������L����PI��Y6-�7���^����rp~z������7G�����o��������������1��J�	<��1g��'�Y���O��A1��
I����>z
QQ���_>5;��Wg/�����=�3H}6��+v���Cs����{3{{�lb(w/�e���>�������?=������i`����>����PE�K�g��O������w���:���~a�|�>z������3s��o�WF�x�����A�|f���~��o/��)�2�}��Y}^�����M�����?�p
���]'�]'�]���������*W�:��:����'��z�m��6�/�����Uu��o�������L��m}s�vf���sL����'�KO�/�����q4�����RE��HT���w�'�k������_�
sO��z�w�'��'|�����.���8�o�ZxS�����.9"� R1���qW
w&��
m�>���U�L�z��u�������~[�m�H�>~�$�7�8/
��T5��[O�e�:����\����,����n���[��_�R�9/�848�.�9��������n�U�\Vw��:�lp�k"������6'���9�}���kN��@T�*N�/�|����[��Qs��8�7?���W��a�z������M��
7�.�����(��5]T��;����o���V��mu���Q�U<UwY�Y������&�C����������U]�.�����9�~X�"e"�����H't9|h���q�Z�+R�3�\�w=/'S��, )�����!g��"������4u����K]���]��y�.�f(_
�h`Ek�UX[n���4��}����������s�;W6����g�m�:����)��$���j��P2�?W��-�����;#;�B,�;f2q��gj"����r��L��#w&�^��{��e83������x�T87w���L��
��=������>����j����{L����%)J��pN4�(�����	7Q�8LU�3���^in���{���r��c���������Wi�+o���/������at/
��4�o��z������?e���,���N4�r�������p����,�c�-�i����c�n������S�[�<��
l�P��R�Hns���>S�Hg9sFo�������1K�'s�����������f�H��{+�)	����� ��e��8����x��It�sb�F��IX!0d*|�X�V����T�E
b^���Z�f�k���
�+���N���r5.`��_���`���b�KA`���y���`_`'K�o�r�g���+v
n\���jS�����Oed�`~�V��l�"���G>�S/����1�
����~}����V=LU���e"��Q���K������_
�����������������!����/	b�)i1�����Y��
�uL%�Ng�~��:�4�����������%����8�� ����\�����������|���
��6��m��S�v��l��}3A�����������6�d�5�g�m}K��B�@��}�$��
d>K$>a�(<��v���|k��O�<>x��sI:������FD{I�4135���wJ�t���W���~���5���-{��O?�t����!�+;<�9�B�uu�W��L���j�Ww!��}3�5�%��L�v�t�����p�h���K{9�3���D����#SK�h<���{8Op�z�C ~�`���?�Qs�|�?�6��i$s�p^q�7��v?J��5tb����y����G����>2C�����W��x��jRpA������Gg_?Z�����w���h�3��_?��Z�1Xm.�[�ON��4����3��0���}d2�Z]�=Z@6_���c�m������\G������H�b�o�M��Sv��6h�M}D3d<^��b	9v���n������XZ�a��G��W����?b����_1��Y��v�U��~�R��>jw/���s��k�������g�������x��65/#tp��6��������=7��?�������s�w�����@�?������;?W������s�������j7����@�y��0�+6-���'O\��OE�d����b�<	"��c�}8����<����|t�;9�����[���o���uW/����\~��K�������������5�/���Lv�/=^�����v�/�����������7k�V?���^������ ��k,W������?_����^4�}���t������ud��?�o�0�z�j��F�{���jd�3[M��x���P�=�{���Cm������~X����v����������~u��r�r]W_W������/W/V�u/.��Z����m����r�P[9y�1����l���*Kk�}���<�R~�P}�Pc������Q�"{z�fX9
-����������o��4�����5���:�������C�*:��?���jF�5���Z��C-����r�����v�PK��x�/�Pe����]��r�
5^�r��u���|���u
t�|}��N�_WW?:�-��a�?4I�O>:<_��������c7<s���:��*\<~�x�����u�;�;<��`�a�z��\=�a��0Wu���:��C������g~.���P��^>���]���o��/.~����R�[��������~�/���|�����7k���i
 ��%d��{�I1w��^������5�W��$5K�G��c8d�0���zVt����D�V����C�*�����OP�:-�).R�W~-�����>����Gk��������z�WW���q[c�^
���$����X�O�3+���@V���D���� ��R�����,k5������#]�
h����H�2��	���������g=z��,������]��ESS��|��;XG�������B�Z�o��]����7�N��f�E���������X���vl����Q>�4�G�?vz����DM����o�-�q$��n_<^��j5���y��
\�@�}���K���j����L��}��+&��x"��I��x"�������O��K��l`V����x����?V���9����Y<�~P]���V�p�wtR��&����t����[Uh76��|��g����*�q��k�Y�J0U?�������>���o�����cw�������S�y�_��=�X���~����n��?f�X��d��I��������,��{��?`Xm]p�o]{w?�~��Ev*G��R8u?��oC3>�?������_�^����-6/�����[_n��\�}X�Ys��($U4s?[����5�c���Q4�H�����j��n���f�~�.��>������e�����P��T,�������K���54��0�5��Z������B�z_3�~[?y��p�w�����������G���{g������������A����lW|���q������O?���=��S������������L�����H�{s��������HnD��B������p���e*��r�.)�h��p�,����N�b��3��/�y�?�=�0����O6����u��
��{%�c.��_�_p���=s������m����8�.�?��8+���X��g�O��d3������{~%�g�eZ�x2���6F�=����=#k�p�W���@{�z/���6����x�������K�����_f��9����2��a���n]b�S�����6w���&���{��g�����!9�x����g��75�=p�0�v>���d�K���6��bX�l���
�����;�����6_�;����^�:��������������t��x8���x���_<u�_/~��!R�
��c��&K?Wn�O��~�_��!������g<$�=�����>����0N|��������>{v�����O�����IV�=-�p8x�������x����E���|����3w�9�y���sw��y��|
�O]�3(���C�sW��_���P����?����;2�?~���}��o������O��s�x���;|i�o.���;|e�x���k����Wp�����A����������b��5�9���S�O��!ra������C��1�w//���7�R����'�
�����7x����`����o�M�[x����
��o��}F~��i�����������cD?���t�w�w���O�"}���p�cO6.����'E���v���#t,D(���:z�t�K������!+�e��)%�j"RWJ��G������h���e~h���O��*��4��T8X����7y.S�H�r�w�����B��2�,�(r�������)������L����E����y]=�#��I�(�)���T"sW.o��_*����p4�G93�-1�������]��I��$�j$���)�W��p��3b�~I�}JsTb3��j�y�8�����m�sCb�p�q�n2����p�,
c_�Q8)S^���i�Z=$I���c�V�h�[P<
���U�1���N������(�����U���wTgR��X@�wM&V�8�	_iPU������2��>SyN��-C����ShO���5|��\�����J�*5N6��P*dd"P@�*��������q^@8�9$c-mw3������>�P�{k�!2�
�*�sy4]���Lx&�/��q<�a�J�Q��N�
�������k�/w��a@�p��
*2���2�r>�O=�=tb�p�t'f�<K�n��;Wr���U��?���.��'���S����p�P��p���Ty,�K��k[F���7i�eu�w3�A�_�j��_z�K�����L;t����a� W�
�������~�����x%��h��T?�H?�I��n,����J�"�l�&��:��<d
wt�G��G&y�o]��L��?��n)��H�E(I���R�\���`V����2w_��uK�z���ZN����r���__����y��e�\~o���������J��pR��p3�����(|A���$��LY��0Q�}��{\��q��?zziuG����� ���A���5�
�ELw���Q����������(/�I�������x]�T(U��%�������CeB���?#'�/
�L�U���522����E4�O,!������x���+��~�+�����?f~7�N8:A1�J�����<����4�����u������A�Y�U����WjJ�D���?�>�'D��k��}���p�o��������dk�(��u��/���9�u�Y�iC���"Y����<o<���7�&aFZ�K��3� }+���-G���nk�nO�e�(K��(����s�.	������F�-���+��_w},���4Vn2����
��P�={�E]�U������r�K:=����.S�3ob�S��'�W��T����������a�D��0R��������%� ��1��ntm��V�.x�dj8s������/�g����p�E�<mq�i8��^��m��(�QP�)-����;w�5wb�4�a�0�r��:�cj��11��p�f~�
M��i���\��B����E8�S�38�wI@f
��u��q����j��i�e(�JIl�r_����K����'��E���g��v��X���J����IgU���cN��6��9��S#��|����)��J��g
������UGT��S�o��l��Y�D�������/W��Q#4
8@u�!?��)U��|�{Q:��^�e�Pp��E�UrC�V��2��aJ3Gw�
���5��-�B����M5���v�	��vt�P~6�q�0Lfs�ZB�Y��P�/r?���KU
l����;gV�3��M��4������s��g��W����CA�BN�����Z ��<dU��-\A�{��?VK��]1P,<�N����Hs�����B�H���G�}x[�O������Q�*���f1���r��L����+����D@�s.��*D�����S��|l��s��z���v(�Uf���
m�2��|�~�J5%����(����g� U��zo;��U�c9q�H�U��n�onrC�l���r_vO�Uz��r����zZ��L)��g��w33�_�#�L�"w+�����fF���r��u����-�f��%�j75sY
��Y��/N��vZ���G�����:��nf���[�/J�0�bUJ���Y��=��6�w������B%U�>%�R�>�el�����r�@����j%�����aR.��|9���;z�)�p���R���DZ�S���_�~�Wt/W���'W���XI7�Z���7�u�E
�Ba^�����kV�1(�#_([F���;�Sa��r�nB�3�K_p��/'
����������'^��PJUU����n���+��x]�M����/#m���H��)U���S��2G���r�ob������K���a��~�!���^}5w��
�U�:eU�2������p-t (�q9�X!��J�����Q���EOH��h�F!�F�K�A�LCu��f���������C#p��?R=^�C�-���8�:-|��s�r8����9h5F���}9���P.u �/�v��~5h���h��:D]+���1
'�1�j���A,��2���=�����|f+��^U��0�
�*��{T��J��?tL��X�d�y����?uT�Y7�y�a��W�A�5Y?�
Ca����o�m�/L����������7V�^k���SL)��))7jj�'����0p�R�hE��E�dU)�m��8��-��D]j�����IUCe�r}�>�ndT���6�_��m����6��X�Gen�C)1�JM�	�����Z��UA�^&�
d�k���^dS�.J�*.��s?��������W��S����o��2�����W��_e�!��Mv�QV�����w��'��D��|_�f�>���T'<%�EP�����V
���=����Q��DUj���J^�@��#(��o�w*�3��c^���O�?��)���Y�Oe|�<M(
�T�E[��l9���1wS�-�s����R(L������x���|���/��u�)��7�����"���������0��B��
"�{��������8����RR���(��O��C�2��q���~Yl
�����&;�8��.+�����1m��P~�Y�����������	M����������4�?&S(X�%�JB�8X�`Nr�<���i��u��5�8p���.����� �\�+3���JF���.h����Gh��gx\ t�*��\I����w�����5l����-;j�.[Z�o��H_[��N�B�K:(uR�i��g������p�����4y(�U��g�H���_��������&"��z~������c\�/������!��k�[U���Y6_��[�j��*��g]Y]�c�9����F��!�M��O�:��0|@��*�?Uz��Eo^����f��sz**�}�	��[��n���
���H��;�pa��a,�e]p��WD�"\)��<�1^:���q=�/a�S��E���~���{�i���Gns[����W��SgtI�)�����2I(h��~$���o��G�B����k���-VZ�|�Y��>f���`�b(��W��p���;f*���/��`8����W�yh���!�$���7�����1����[���g���g�L��*������p���<��W����S����/\�uX[6��[�Y#����T�Zx���e��	�U��b�/��p�jP�1��P.�l�C��-3�u�?�;G�����<������'�/�$����W����������D(� ����Yv�6.(�Pue�f��|>[�Y����m�������h*�"��~iT��,@��������"SH|�7��"E]��s�l�[�D����AO�������2�q?�wy�����/�p����C�*��S:�V�UZ��Pz�lOe��;���?Q�<�NT
���r����vB/���[����sn�.+W�����E�(7o�
����oU��RV^.����p�X��uIT%U�<i-�l�������:hS��U��
\4
�Z�(�<����V�����K��q���%^��dV	A3[�r����/������+J�U13#����jM!������)`���YV����{[��{��J�w�����\Q�q��d]%�t��-�D(.�����
��MC���~"���8��x+�����3�;���������m�7j������k7����,�Q��v�����c���x�H���H�If&�E8at�����#t�Oz��;e�wN�{W�7J��:2��������C���������?������{P<~�wtrn������N
��~?���.������7�����}nh{G���}8���kx8�����NJ~@���
VmJ��N
GnE����~��4�k\$N����q���#3o��mGES��8���_f��G����(g�������������#��&���v�1�|gO����6��VF0%P�p����C����;���`�3��@h�m������)���7�� �����I]Z��v��s��A�.|Q�c>6kBw�u����S���$#��������$q�����\����Lq�V�$��J�p>hb$��}!�e����h��;�I�j!gn6��p�}p��;�n��k�-fv���,�Q���4NCCI#����qi�@�41��(��})��i������t�����f����J���ua�e���T�o��"�!��/��vT���sVFK��/���5j=zr���>�G�s�b�&�UuG}�������k�C9������p��
:�@���
2���~t�d��G���,@9��l�"}�f����Bm��$0���+x�Hr_��E(����SX �
�=�A�/��0�����r��&^��Z��T�G��k����eV}-tU*�B(I�~�O���������`�5_�@!�k�p���%���b����P�_~D?�S[F$/�R(QU�4�Kn^�Rx�?�;�a��-�[�4��v�=2K�N���k�S�������0�cs.���TU��^�O[���*�������?�+����DUJ�3J0����8D�=��7���6�V��|��MY�~�-f*���*�S��h+?��R�J���)�o
��-��0���`n��[_��a��u�g������}?Y�����/�K.�$k
�s*�R�t�T���.���a�z�
�1Rw���c�{��-tPN��<�r����������W�K���\1�U��*��R����r[+�%M��i��,g�����*
�i1��+o���h����#��w����O��;�+~��BQBI��'�f7�?�'��f{_]SR�Q��M"0#�����;1*G�l����MC�q]E��&�6�����S��F����;H�a������{
	����E�^���������X���>R"[����R2�� �A��wM4�u��X�|�D�(�	(���=�����JiT��Sh��t���-K]��\�n|�%~.4�9K�oP����5kPNiX�>��a{�Hr#�y�N$�;%�4���X	��-�x���?���������YD�Gz�e(8iWrs��%W-�i���[WV�\�b�(�F�����g
�.��H���p�~v��M��$�9Sy���B$��K��-��^Rxz�g�����
(�p���W��D����}%l!7�����_��W
/	���u(-|=V$5�w�  ��A T4��\������_��
�@�|a����Y<9�t_a�`n�p{R����liJ��L�u�)��l.C)��S8z��
��:��
�PP^�e�-�6~�|�����/C9<�H%w��To2�"u?]W�b������	s�6X_����!7��&?��R���'�e��.�PZ��4
���m�i5�i��A����>�����-(������Mh�P����U�U�$�,���z�I���GOL�<�^`�Y{m!���X�H�������v����|m)�j[����I���GO�.�T�D��?~��oh���M������!&���~L�!�%mq�K���/9��P���DL�$[L��w��nS�g�o>�9r?��b8-��:SU`Q8��������o|o���0����*6n�'}K��_��Z���Y����Wq��m���Fu�����,��]���PP��d6�d���t����p��������C!	���h(��-�v�C�����J��2�^�#����=�H4�u���?d�I���pt�f�+z�N�D9�K��W7]��������K?�I�9�n���5s���_x���x������`&���A%��+������#�����$�c������H��U��r'v����N��^Mxt

���]�������lJ[�s�-�.
�LY�p[�����1�"h~�pV�p�'������E_���* �B}������'�P�S��_�{Cixps^bV�E~��+�0�2�H�����&y�8��9���TM%	mb���_��X���(1��O	fM�I_���*��P��"�eUrOT�F������*�.��E3����J��
U����(l���&6�{�@/ov�P.1�=V?�*�%��Nh4%?.+?��0�������L]����`�\QfmEN������x*!���_9/
�vP��J�B���B����x�-x��x�'��������#BA��_L}�Q�_n�c����54y�VBP�,����y��Ib}7����pN������)���r�%,�L�n��@����R�y�(�m���W�2��t|3�C�J���R9vaxPt#�2��tG�nR/�B��;��^p~��G(�b��/�|�U��lH���R�<��s��O;A�����m>8
��k��BA��T8��k�����M�9�� �������N�����O���������)��r�R��p�L9�K��T�~�;�JUc��!\�"���{��s��H�Jz��e(*O���SH��Ly
�*o`��#u���jW����g
�?���������~�RNU������������PyqV��o5�������������.�bnK�����F��)E��b�&��V��)��b�����}2q����[m�U�+�a���J�6dI���%{����K���]�;�_�C�
*!�$��lU�u��3W��F(VW�J��IUJ����I�K���
QET���*��P�,�BEnQ�]r<���B`Q}E�t��Z�C��9��lQT�Z�����*����|e����6�%��jgs��yq�-�!/��2[9�"8��%��GW��m!\�����cKy(�p��g����T�%����J�c7���C�������sn�s�������L���>���(�MU�����SG!��-���%c����dN�0"�j������U)�����-�4��*�yQ���C�6���+�+�����r�<V��$�}[5���]�#��U!��EU(�s��$Q��M=>���
���/��b�UIU�W����|����]�������X�z�)����rT��i��)�e��������eYT���0Oj+���B�_���
Z�
\p����E8)��T�RQ�����C�]��W�B�m�P#��'��1T��L��4��	J�����Chq�/�MAx�
_�4��}�$��w�����^`�*�~5�n�p�~�k��������P-f�$_O��dQ�%B����h���]�:��)��N�a��$����	_
�0J/Z��u�J1��Z	�I;��~-g�Od�lnK������T&�o���oe���w)Ag��(M������Ea����:^l��B�N/�C�:#��{����w�����4X�{G���(�_V�a�q2��H#�Q����.*e	8��NR�y��s��1��b&�:�	J>����P������FN����6�~-�cn����A�+'�+K�y���)���
�Q��"]��me�M�vt]�0sK/s������I0����K3:�g&���5�2)�b�0�d�r�K�A�[��DJ/!w�2�k�������K��MsN$-S���������@��tGO�C�/)��1�2
6��
�fY�����N�A���;�Y����J�0G�4-����ln��w7a�R��Zq�^�|{{p�X��:���"�UqQ�g�^�u%��~EW�� �0kJa�*�*�,_��'P5@�����n�(���Z�!f���.\�������">}!v�x~	�����o�p���sw���x�P�����c���C��c��������wz|���������3�f��������{�����j���^B�����������������.�������^�3'�i'����8;3���9~t~j��+�xjn���?������
������q�<�������c���|dmG�����YA����y���]I�R����t��b���lYw_(���"���6%���M�����T]��L=�gS�s8�.S��W�����s>r�K�c�Bp��}�]��VMo�j��+�����TT:��8����g>��}�&w8��1����<q�S���#�?�x8���8��H��u9)�e����4Kx��|AT�|
'�����s�����f��*b�������o;��?T�}��~P���&{rrl�Q�~�xl����g�/���7�09�����Vg&�f1��k�V�� �p�@TUf�N��r'
_�	
-��%@���B�z�������8���L&���\�_3�f���f��r�E���B#t��/����,�����x�?b�ph���?�[G���\�������	�}#�Y�5�J�����YU�j&�L�eI��D���y�������h���uD<OP^�t�HQE�|�������KJ�LSCT�B��95,�	�����A�DR��
1��o�u���+;��m�+W�x�A������:������������c����g�b��j=���|
��s�=��o���B�y��C�S�w?0��g}��"��waZ8���I(5�CC/��?���3�>�d�*�����������U������?��R�y y��W�j���w��49��B�?$��&m=d=������-��:����9�:������HAq�r��{������X������5I��c�*���[��@�4C��	�b�{�O�u�o��wN%H	yR`��<�YP�<�@i�?~�'LM���� ^m����
�U������/\�[h`2�
l���T���=.���N���@;�bo���
�����0�S��*��T0(��X��s`���Kl1�
�3X�	M�LaF��<���AU����]x=�\��=����"��p�)���FZ���X�T{���������(Q��%�o��������&��q3Tk��WC3J�#��r	��]��a(��X�L
�!R���o<��0�O�������'�qt�s�����������;�c�f����d��������|?����n��8��m6��X��;VMi0�s�9V�5)P��B��S�\�������_������[��X]���.������YR%�����4��#.|����aL������X��X��kS����`>�/����8�u=���3�������Nq[�.��?��
��;����^�
������e�4e���O<���VK����+�o�������ZXa��
&�cT��"lPa�&��QL����M��;��z�T������V��
;S@�]�-����$"��m����\W���
�n5x8���5�J������z>��V����s����5")G[�o�;���o�=��7�Zf��a��"�> �O��
,eU�ZZ* ���x&��O�&\��]��M�������D�IR������R��DA���]"��&3��wM���#���@�Tqd�9dRGluq�Um�;y�M�0[������2�+�����q������!8���i���q:��f��������M�=�;(lV�
��t,��MF.�T�����ET����H9�/�C�w����9��~�I�:F>������4PU���X,G�mw��=K��P��b�f���L#�����K������5�g*!S�|�0`�]�zn��:�x������a/h�^<K.u�
����������1?���J<���(U�
�l�4VuJV�f�;�j
s4���o�x��%+�9�d)�����h{�����W5n	<��:�[�tJ�T#l��U�m�Z2��Z��*8��P��b��VS���*�f&���2�l>�.�Z�u(K�7�X|p�{�����%����wwZ�;�5�����`��������
E����:��UC���F��/H>�@c	�P-�[u�����G��93lh�Xv��D/���Zq�L�Bn(�]��b�@��+br���^�%'w���
�-T����J��M(�
-��!���k|h�9s����(�����]���b�V� t�|����N�#$��ir_�rL'�P[S�	����2o�WJ�]����\z)�$�	i3V'<.�^���nK�_?��>p��U����k�8��������XR�lh.�]\�R�w@��1q	c��t�o����	�q4���~���L������.
{Of�9|�]-g�t�Z������p������/����j�om+S�?,Zk �9Isn�&5�����M��K�ZZ�����q}+�3N��1�����c�Ic
H���F��7�u�lqPR�����S.ufi��\��XF��eD��$R����%��F��� �������W��.[�u]�W�]��mt	R�wz"������h���"��M������:=��V]�1���X�����	>��K��4�|���U\c��c �.���t0jg��G'��J_gn�i��/����/.sM�1����r�Z%K);|�]��RM�i�Fv37����n���_*�{
���
�Ms��u	��/�9��.����nv����P�I�+BpO����f(N��� ��1�}���D�w�U;�/�T���4�t��_��[Q��|���C��_�KW|����J!u�IwHn<T#n�7�%9H�i����cp9���)0����`B�/R��L�q��{7J��� ���)���\�Q5/�\�v�Jp1�2��ML�"o�4�Z=��q0�Y��Bk!4�S�A��$����5���t��H"QjHHO�D{2m�4S@6������U�L�YK,Q�M��������cl�%���J�H���Buw��6"�n[!)�0a�������z(��<D`�v2=$����r�[�*Q
$W�,�az[v�[1����fwt�{�S�7�D�t���6Q��Ij��������������s��S�����R���e>*��2��. ���]U4 R�����v
'�6�&�i�$��)L��C�)�*��a��;�D��<������<����+C��
=2����w]�G����mP$)!�e�L�nY&�*W���Y9�����'�l�5��]���L�
��Q�)o<�}Zf~��D$���q
�f[%���G��
.���8Z�}n*�*�����sL
��!���]���Nz���B�	�tB��][D���QKh� ��
�!5�0�>r�.��7{����_�_
�2��s(��5���9�
�=���?��K1������!]W�E6(��?�c^��F�7��X	C�b��T��i���aE�I�0;��H|:Iz\����W�2��M�4W��~����*�� Z�I��p���!t��S9��
6N�>�t7:n�[=�o��5�=��{�(����/��~�b���S��@������X��t��(�.��rp��T#/>�0��V�y6D�a��T�7��}�V^�*��.��1;O�J���]�o����{�! F{]`�w�l�"
�E�5}b�8���z\���QV"�c|�L}��9��h��m�x���:$�9�0�	��X2���d�~,o>R/^����k���>�D5�D���--�<�W�x����:;������R��C�q6z����:�(�n�eN�}����%��U�4�G/�	u��b�>y�s�2
�X������D���j
��z�[Scp��M$�\��H����"zKJ�w0�;|����Y_�f����R�Er�D�)l��re����<�8���8�����7/}�x�6A��qa@�V����
\=l�}��r[t8
:��>P`�u�,��e,�r(s����xbN,�
�B����q����>���!P��B���>��j�=f�h�t-�6�k"[_N�Fu����\o#�m��H���s���n����y���^O��7�z�}F ��1��4�u���2���h���^h^�b������:��s��sd�l}3v�������-B����f�7��+G.��G��[��!����r�m�{�����VW>`�0��T����qE��*G��`��
��k�����-��4d�f��k��f�.���i08#_���s�E@�5~�pdZ����1���s��M;���]�7=a�����r�+��gg
Npv��bL&dA>�)O�G�zt�m#])b��A����o�t����.���,:w2���{�A`�X��s��D��g�������z���b���I�Z^-��VJ��Rl��Ow��������!F@3G��o�ce;%�w���b�e�|�~.������g������"z�_�O�n%�]�_����_m6��I��@����*d�2`���U`�h��`���e ��~q�@G�L}��T�����*�:�<�Z�l1��T%��4D�t3������z��S'���
��+�F�`��5�z�x��BC��T!"6�gN�eM���O��	�^)�� ����V������~V�������[%��~�
��,9'���1B�����
�WXV�qV��b���b�q����n�[��T�k�w��k��b�
���@������G�*�Cmb��Q�I����;m	�HZ�K���p��A�tV�	N|�4�t�#��O<�G�A��n��S	�~Mxy�~�W�����_�fy��d�L'����/��7�������;��^r9��D����
���\��,���e)���NZ��$�����r�y�/��w�=�s?���{�c+�����0�F/�z/4��]���>��Oq�@dlds�HNy�����
��-+�����U[j5�-�����!�b��Tj)�F����~�d%���<����8KnSf�:2��q��|�Lp�R�q����Vn����\���8P�S��	=��;upv��!��/sZlIE����p��P5���i�KO���ET�[��:���8�+=�����iaJ�L�h��Z:��������~&�5�m2zUK=TG�z��@��~K*;7�nl'�E0��/]��z�U��5��[>�s$��_c���c�c����#��C������KL?!�3�[��[�_��������oDl�[WH��\��X�P"�*�5k�i'���F	�4���0�$T����5q��A�
?��`�����-Y�y�9k+_r�}xZ�Hgmp;���@���x��#`�X�"��2=���@��P�`#Wks�V�m�M�����bH�B!4���u���5K���+�*l�T��;N�����_�=�:@����o��@M����K<�C���q+*2]z��4�;��_�.
,��x\�����i�/����y���u�������"�jH1��+��P�m������B��UC`�04*�#vJ�����m��y�K�#jF}�B!^l���f��CA�2�Q��v�	�(��js�E�,EV;����E��r`���
%��c��S�^b����+V�W���p��xD�O�������D��BLC'��Sd�F���(�fF�������v�J���`+�����]�j��@����>�,\������}&[��Q�;/���B=FC�t;����������Lb�;�M15p����t��L�t�������t]FKh)Y���5����-_�Ts1�I`�[���h�P���JA�at��������@|-SM����]����_T	ve�z��.��w�A�e�����5���d34&~����&O����e:<�e~t����\���-Y��K4�P1���J�yq��������#�\������"K���`��/vm��W\K��|-Q����h2��9�:��D���]���\�]�C��l��2�����$���iU2�b����mT��S�&[�(P[4�i�����;�	}[:�2�;Zb�
�*�	*B���e���Ri&(E����,ma��jM8S*����mw��\J��m�0�63U��0��~&(�T��U%K�6"j:�0��r[���;�
#������&�o�%��T�~������e*/6��$]
�[K.�Xz5������*c���'�W�6�H�
}��B�iYKU<<��R:8����W-���uN�]"��7�`���X�T�B���f��'N�.}v}Yf��ev}���ebc�������kc1�(H�(��3��*�����u�o(���f�
��CA��w+�f����%g�E�F�W����C�]��_&������MKT{��k���	��F(�y��	23p^7�3������J$�����V�`@7������`
@�xb���������#�D;K3��p(���QFjX�H���#�.Q���:"$��)
P&���@����>P��$�=��p��<���U�3�"vt���jWds�g.��]�A�����k��ZZ@�kb� ����U������5/0g���,W�:�T��mF[������VBG����c���@���������m��4�d,�!�,l�*�k�^�_��F��`'�a?������r���	�lZ"uc.s���
��m(*���H���h��K�=;�k*DdG'~�<�|(_
�����>�t��o���_�#�ro�0��a����������snTt<��4�uBzM'#_u`lA����Q����D4���n��0�!���,��WT:C'��X���OlI�*�����MH���S��|>��\�FK{�?�����[��nS���^\K~���jy��������U���j��������Q����NO^?�%Ob�,�����������X�q%�W��J���X�/�_��|+T���
i���X1\W{�rm��k=�����i����1�m��L��S,P�&��JI����d_�I�?WR�_Wl�����X�E����!PD�R��{C�]W�e����V^�)BG��Qf,�=�jQ�
��:(��8B!n�h�_ot��"��X�op
Mq�]��-k^o$�K!����'Y��.
�_o��,��T��l��5t�_����5������5���@����vge��m����������yw*���%�(UhuP���V��'a����a��&�-�K���m�{����y_"wt����I�����fs=*�����@� ����<EQ>��x:�u�0>{�����g���J3c��z������\�������DQ7Xj��V>_G+��������3u����Tcxy�jf{gi���FU�����~������v?+����v�������Q�8a��F��]�����$�����3��M	�J%��8���{�.'�	c��u���0�6�4�R;B�0��4w�m�;P�uC5�cT���q���f��|#���&XONe�;�~�b��H�A��3�����q���s�C��\�Y4����������=	���I,u�/xt7�e"�~��q��"���o�H��D*����CZ���<�^���z6�n�>������/�+z�`u�u�q6O�+3r��r���N��	��^�����s	h�&�D��G5�����My;p��u����dO3\�F����6����qN�~WBh{J�0���~��=D
^���p(�z�^D���G*�n�
*]H�.;�nQ\�<82�Y�����ENt�g��o&R["���!��Af����_����~�i|����P�y���l�lWT@�v
��E�"��3���J�[�V�C�J��ml(�K���r(W�B�@�:l]�|�zX��������[F�mU�n+�����muys����o��
'����"����������q����6�
T1.�����]���Sk�Z����P��-�1a�Uq��3Yhb#����w6_AM='^w�@t��Z�)���k��n�^�0wp���@���;o�*�^�wT���w�8��n�1JX�Z@�]��D���:�@v�PN9n�I=4tM��:��������������\�p��_W���=]��Q���v�}�w�
��][��������t(��)Q9Ou_c��u�tf#<��4+�����n�k�4��U���e�`��6�R�-w]���q�9�k��"�.x�s�[��c`l�]:��=�L��dUth���W��7�}v��s[.j�/u�0)]�����T�1P|�[-��i@����"�k��z�#q����go�?����
�3��Xvv-���T������=%I��m���N�kyVkj��D�������X��V�/��Mu���g:�z�1
�.��o����P����N�$���]'���D4c��5��m	E�fCib0,vM�'&+��P.�����e���:�iZ������(9�s]�*T�9h3���EV��k���q��2�R��L���}(��;�Y+���~ZhUI��E����/$31i
���f��)�k�(�dk
3��0�,�`Sq���z�[�3�H�^U���0��R!d��c<`�@�!�[&1+p��F��q����:pH*��r���[�8�j&�8��C����M�����R��
0��y�!~�
[5L[�0VT{����h=i.l}�5Z�����G>��k��B#oPy��]\�.�!Vi��X5��uo�+����#Kx������d{t���$���:��
N��2;��J��	��o�����k�v�fy�e���������p�_s|�(�=���k�z}�������T��mUQ���)�ZJA,����5(�����7�;\O�]��D������+���n���%�}!)f����E��)�C�,n�����Y������q����Z�,�Olu��f��N��x�?7/������=?�����_���������yq�*�V�z����.n���������c*�y3�Qargs�����D+�tX��	��Ex��pWo!z;�y4��Do*:�v`�`�������#��Pn���8���P[��9�T�j�8���������(w��#28����
.�M�	2U��Rg
����6��)	d��@������qc{4V\�:�w�*0��TSv���?j��+��*������N���CxS�MUb�7z4}�������g4���c���+w^��7e��M���n�A5�k1A�:����T��F��-��������������W���a]��o�%��cFHO��z���*%?-�34mKS���b�e���(~D2�r �?���r\��s���7���E\[Lw�VT$�W �0���A�<�I�����7Z�������0�B�adm������y�K������g�8�c���&�����S@8v��p�9(�[
$������4��U�o���^�s�m�����F?�H��]<��)����b`��;�����k}������dD%F��*opp�
�0u���\�z��X�=���8u��V'���yW���&+�8S*���.�
$T�+Z7�#R��U�7n�}�	�����pSV��������`k�����	+�����E!1d�/���w��A���eA�H�2r+�f-T����-$e��0���ox���k0����,9v�@D�����I(iKW���|
�G��	�
{,��S���/+��^n�P���O4�:<f[1�����u�o��V�w�-t�Z�Ud��hq�V��R��0����P��O_nLkJ6N�*k;�gW�
��o$�8����*\�.-�%O�5(�8g`��m��i�r��L]O��_l��a8{\��������L��<������|S����_�g4(q~ 8��I�9��������%�`��&�����<E��V��87+Pu6��&
PN�:�&G5w��L���3�F4
�-�>	Q_��`'��L=����.����B�������7�4J������OB���*o��w�T��4�������5����t7zU���M����M����U�b�8�IBN�����8��i]9�}��Mi���p�GQ��}�C�T�x��p�%S	���1@]g�s�����caU��va@d������
��^��Vd)�1��.F�}�
�E���Fg�j�Yq4xH�XHu��r�����P����5g�A���=C!�iy��X 8M��w`%�?�������=>
���������~FL���J�o�>����(��
�8�gq��k�Ux�[����e[
+�����)��O��������V�J����+A>�UL�R�1tL�B���u�
�T �5����*�_����37��}���"��nG/v�/V��aX�B%������j6J��.M�>���gj����{(yF������A�� �V��pD�M���79�l��������v��q���j+�}NH/��CN����x��e�}&�����M���<Fd�<�`��|��~���5��J�����������Z�.n����rq{�������w+����}q���dN�������h��
��O���u%���������U�d!�^������j(��M�"P���[=���,�������K�r//$gw��m�����r��m/�Ae���W����M������P��N�+�i�w���[
�6[���i�Q��N+��T����F��R����$�q��8T��o"?O��4�@.�%R��5����N�PB�Z� �V
	�A���[�`x���V`���wr�'7�B����5��S���������u, ��[�@�t�m���y^�-k��
���*
nu��N�M���r�@1���X�"8f���-.������gv+C���-�����g���+��k���/��fp�1������)����9x}��5�Q����c�+��o�^)��=
�GZ���kIn+�����d��|K��P"1*�a��@��s
K�Q�VU$VL���f��1�2���������*�C�����<.�`��9 �����tD����s�G���(��;�O�E�21�&��4����r%�QOH3���V�Hg=x(X)a��a���U��5:����jj4�M�m��������6q���t��@W�l�b@��QD+�5��=mw��i�A�J>^3��SS��v�kou���;�
^�n�K6]b�E�!	�)X
	�\<P���P����������Xn�����&^Z��0�1����:^��r�����z�����hw����� /��$�G��~��������c
�����wG
���Rq�)�pS�|5LN���u��v�M�w�����g,�"��H������-��n�^]et�{Fl#$U3^\gF�N����cuHx�����,-�p���������~q[3�T�(e�4�.�m
��"���������j��]1�ZWj9�C�>�:
���B3����(�� ;�]~M��JD����Vx\k�������U��v0P@[���;|Ua���N���y����'�(�����vA���]�I�aF����
�����Yg�q�#����"T[B��M�}N������66��]CQ��E��e��bti�� �����b���i���B�����o�Wb���4�����N���s]A��� ���6�2_���8��*�KD~�R��9����<��k���vK�j�HL`
	��8���P������|��RH�F��==��`��N�!�X�[�S6�����
�����zY�aT��(�C/C7�S�knFU�)xE'������-;h
�����U��cvQ��.�N�#�H�>w�.0��7>�-�#a�(��}�:�B&�.
8p�}��6x��E�=mY�(���j����hr"`��@�ki��t��XW�����M��oH�3������l:{6��n�qK,�e�*���i��<E��yf���S3K��({�M���]�#|V�&m���'^_0�4�P�*ne�i<�-b�a�.5��E���r�$�Kx6)���D����[y��$0�e��\a�;�\��_Jlr�'�_!�������B�v�&vx����y����nG>*m��GrOE��!��2,=s���eQ�z��IP:��	w.pNLQ�����kI�bJ���]��'�QOZ]<� ������M�t�����^��G=�V#�s�W�MmS/���-�Fa
4��r���D�u��r��X��<�L��n@����1;+��m*�,lP�'�++�l��W����^n���dy��/��k
��?�Yc��#���#���������$��*(x��V�E�1'�a��w���}pX�8^�W>��<�����a�C1���
����YU�!b�wE��L�0L��l��fK&�0{T>�R���6L�X��=\]Z{�/_a��"P%�y��-O�0���B��W<8�P��8��Df���6�
��������G�������5,�X�����o���t�P^�����G'��}:x4�a�o���Y�8�#L��r�gq)��S�{;B���Ny���)��<�Bh��}����pbO>�o�_X�	��<���9m�M@���bht �"1�n�n)���Qb�v:c�KZ:��M��TS�DF�Q��Mu��:s5UF+�ns��2�N[ud=�=���t���~��]�����[I�����ng��r;6o����-���m��D�F{�FSF�����w����w*� "���E?]:��6�I�^�I3�W� ���|��Gt-�
�IC�{�o�-QJ���_������f,6��
Wo�]�����Q�K�i@&����<�v]�\�C'|,
�B�0FP�����<��FkAJt'D����rq����^����]>3mHTCw�-�OI��a6L~�3F�;��E�:����GFO�[�A�Ho�����N������Z���=��j�����t^��xQ^�[��,��V��{���>�������uq����M��F�[�/�����].}].�4Xw�Z!b0�����Z�1����������>���2=G����5)��rh�Nt�x���w\���b��J�w�|K �]_jx�s�w�z�U5n�p=@�C���"U�)"%���w�>x���{��o��(����[�T��5VQ����=|�����4���[�Z���0�������]:)�����&9���2��7S��Xhp�/�V
%���Q�pL�J����xV�����_S5�#�>�8��G�\���o��T!��eb���/��z�G����5�)���;��������$!�p�j��
�n������c�t�����p����������!������"����H��w:��l�10Upt�;vY��
�� j&>���:������di��.D'���� �;��(@[�������o��0�� \���4U:�c��=g��j����<=�m��e�a(HO=������BU���	����+E�r��.�����7��!�3�� >q�xq�o��������%�FV��%��Sy�#�W���4���N�p��%P{Q:�,K����J�
N��&�x<��`��E[�?�9x����5�#O�U�.y=�^�H�������R��}���U:>���U�U�����U�X���w���?�i�y��]�4E��
.��'�n'�w�`>���N�����~��D���R�;s�9�$���w��<o���>��LBA�0�4���K�_Xl�aqC��b���b@�����������8|���e�]�7m�+'�:A���Ei�Y������v��`{~;l����I����6r�]������Zj�|��rp�G��#:��M�`
W������(�\M�]�%/�M��Z�@���n�V-�reO��K^����b:��\3<��V�}}��0��2���~����w�Z@�)==6m��}�f:�C��h�c�� 8�&��9X�`�����S�������~���o��0k�w:��e(0V3���>�wO���P��;H�A�+W�����L�����T�Q#�y��x�0�m����P(������������!���-�)��[~x�������k��;�+�B��O�9�:|�"��ZP���o=�(�i���?&
U����j���=|w��=A���	���M���moM�oP����D��C10�*�8�=m��_�/�~����T�.��i8��{.��9�����O"�PW����;>��Pb��������\�qT7����q�
�6��o�]���������Gg�3�K����W��`qb���;�A'Wv�����h�����v�S���U�x��y�=GwR�I#KR��R��M�����0���c�#�o���g��r�������$u�4��no3���y�t�'4����fCe���r9�����
�$�X0����-�x#�S�,��t�jU�����w��9>u�ml*';�K�<��Y�^
p��1UZ�t�BV�)����yHY��.��sjj�C���LZ�F�f�D^�}���Aq��L-^���8l���0&���������s�
��G2������,���5�a�J#��AN�Z%>qZ'���a�������%@
�k4�ET��i�Cb}�'q|J$V��Zj�Tgq�?�d1�����FlV�K������t/,bR���Jz�5p�c��|��Ai�����4����7�=�~��{�h��Ua���Un��Y&^���`��G����Ac/���Ic���45i�z@�vNyX%7�	�jJ{z}v�Z�l$���ZC
4�D*G����2C)4�n�T?����fud��7��M&�.#/5.1,�o�M�%gQ�x����(>�s����i:�w�&7@��|4�1vz�	��w�i���
u�y'T��^���>�m{6�d��tf�OgQ�������V}���W#^4Kb�l�2V
��<x2�^��<�]�!�y�7��N����*��t���;;����\=Y�#���.CW��	��@=�
��%I.M��B)�P�(��V��&�<6�.{�*�6I�E�jr����Hz����;<z�C�hU��D�����k�(F�(��Hwv��8S"J�C[<��2'#�"�Xn6�����$�gd����e<�����g�����;��R����)!�;����������.{�R���_����F���:W�u.���z����k����c+9�o����mwf�l�o}�����"�������OX�q�V*z��FA71�Mm��_,O��NH�R�F������\{����?[�o�i�����<��++W��uq���aq-����������y^���g�{���������w��E<x��\��}V_�����^�M��w��4��w5lh��T���O��/u_m�a�<t��������{�*�p��=9��*�%\E�i�_)ul�~�~���B�xo���/rz��l��,�����V������:���b3�.�P
���I[T1&i�a��0U�����J���3����u�k�^�5��.��j��]�<��.�h�����{ks��;�Bqo�H�����wI�?l�K�2b��=���C{�=�����h���#?Y�d���Q0�	|�h���-�j�Pl9oy���h���@�~��|o���/�|���}��U�V;,G~m������[J~�,Sj�#�~��:�l���!:c���y���u�]Y��}�����3�_f;!(�@�����Q����}��T������;�4Lq�����*g�av_v+�{C�T��_����P}oZ��n��(�@'�
x)w�Ih�wcG_;m������f��Rgy��[:������������P��~[1v�L*E���;$���?uQ&��-�E#��A���[��9�k��C����3�������������tB�9��u���������G��c�����J^�����������/����{�|w������J�Oo�-=�Bo�h��#j�}�����|���s*2�W�
*��s��:�v��F���
,�r��I����������o6��pC��6��@U�����c	����������>*(��W}�a8�w���`�X�t?��"#��Kpb	�R"9X�
��1`c�)q����0$������������.�������{?D� �+���!R�������u�f���xd��ei��c`D�}��4��x���f��
m��,��E��i� )��������Q��N!�k��F����I8����V����b���L�gO�g7w�m�1jAu������VB���>�{6��_�;|������j�e��r�����/�_�	ZM���2�TZhV ��})������/s�YpO������`��Qq�A��f0����B��B�wG���?�3��7K:�������8�������C���d(��<��x~������g���:����B�n.\�������Jz?_*~�-\����j��@I��"�3�J��[�`c�������6�V�7�0!u��\�-}AX�G{�S���2R���C�G��_y������)�J�[Mt��S-]�[������.��D��j�^�+��<�����g4g
4ML����������f(Up��d�}�~m�d�����ey��7)>'��`�d
�*��W��X�/����:0����N�#|��.2�����r����
��~_0\%"�)i�4G����T�,n{~
W����aN��j��k
�a�8CU���x��B`�	�B����X�6}<�����@���u9�h��H�6���?�E:�[N]�L������V��0�����O�L#aN��b(��|q������r������.&H�(V#E���JV�}	6����p��������(�lX�"d]��NC��sG���
�	�	���I�P%�����3��m���q2��J?���^�����2AiF~	%�;�	v��z������?a��������x���Gv\���K��@���`;U���4i3���M��>�^�(1�������4����E
O���������APZ%�;��+���z����������9��,��B�m��N�����DQ����,����@D���%��T�3�b�V��|?�
&7�����H���[�i�P��@m��mN��8w�$�b����og����J��C1��
��F��K�j�/z���60��HPp�
�����/TS��('���_����u�7` H�	/2��w��r�/�1�%��KR5_��6�W	JkbH��	�L�,I�:���)�)�/l�s�Y%o]Ck���E��D�
�i��v�����{
��)h�a�R�At��&��-�<�RS.���
���^�L`�}p��57�S���=@�~�5��0��,��*��*3���?R����`t��tV�JZ�����s��xr��l|�_�Z,u�g��yAw�3��)�U�}�T���������|�2Z;+�E����E�@[�Jdj��d����O����i��[�������[�i�.K��
���f�G���P'�"?\V�m��E.JL�
U���r(<�L]�C?��O����B���"E1W��/9W!i�����y6�_#��q�M!I���px�Q����L�O�I'�a�p=�*��M�tF���Y��47�f&��],R�"0d��� �/^^��7U�R(EK�y�;|�y�*i��P�s����|�]`��-:|�A������_2B���*����^Lvf�Ph�zq�\/��j,P�DwX�+�&J6`r�}H��A�]�$at�2����\�b��*>z��������**;�H�}�n��.B�!b������k���D�#�5]8�B�E�x����@�����
N|�����_�d�E��}�t�x�c�p�xX^����?//�����j��c�PU����Z�}4��qc����)D���b���B}�P}���t�weu�CUk#^�Mt�������]��_!>�_|����6�*��2�6��!U����)?T��G�(��9%��.�����i
(��/���0��V��K:.!��/�w�3������^��/��n7�U��hCm�4��"�4���G��������=�p�[�@��W�����������'�`X��Ct�W�/��ug*�&�kJ�4��
#��H��#�P�z������w����Mp*�*������������J��-)�������L�P\c�r�O���G7��	���H_������P�*
�5m"�e�����(�u�5��lM|�J:�;&�����D��O.�g����t������xH������MzoR����3
�%�{fd4��"����2i`�Z�x���~[SG���f@�}`R��W:$hF�XyP�cp�1�z4�~�k����������W���������itY�
\��PR����NGo�������T,�&Z�Y�}	[�&v,������-?�h�*���NdI5��:��=�����a�Q�'��e�-�{�2\�<*��a����$��8T{��m����9cj�
��a&O.��j_��\��V�(���xX/08��Aa��Y�X$:�
vS�.�CA�6�������'Bp@^�]v~�N�PAw��H���X~��1�_�e�K������'���H�y~)����W/�t<��2)
��������~�s�Y{�"X���Dh�=	x���cxU�a�P��Bp��!:�lz�q��5����:�F���A�������_��U,����K�5��,�}�R"��7{t�i�7S���t����f�	�!�������Rs����(�	/����3	����l�,l����28����9���
!��t�����)�+��K9��-���.>p���/{����`��x��H&+O�GO����U0n���G����a���`��9O>���@j)%��"1h�6��N�6h�������\W�T������bI�6`��`���C�K!�:
����G6����T~����	k������}z��m�h]��8U��Sx�C�B/J�*{���� 2M�zq��E�{9�y��J9��dg���N��|��~a��A��m�:��az���Z��]�H1����EI�f�3^�"yD!��RI��]�
r�^���7H�:�D���h�B,9�'g��z�^,�~s'��~��>�C)��j�����e�v���6��)�x�}m�|4�<DFL��-r��l��
r��	[U�?����<S����Y��@����)8��8\���l�9�E��U&����u2:��<{y�Y��^P�J�g�k��L��_�����,���K(���'�q��{K"�mGC�p��������m������[�d���U��
�F�jM�
���nx-I�z>��O�b2��]u8@f��m�7to��!5]K��Yl��>�p��C��
q����rl���Iy����o_����-F��	���r�����*��6/�����R�s2T
��@y;m�-�{H��v\M����&���u`������eC���LOIm�;)�a@�� {z�{%�Z��d]��`��:�l�E,���h\"ZM���7*�8����3nD����@]�*9<����H<pF�A��y�y{�g)8K��c�����z@�%
��M�V���0�!�j��<UM8�]b(�$$�����1B���d]9C�r�h�nt��]�J7����`�6��>��[�T�EJ�`������a��#W�=h;���@�
@����x��J	�4��@S����@���h�5�����1^���j��4�e�>�-��eH��T�zvU�
���zw��U�C�Y.��/���k�2
��?���6�x3j���0��`�C^7����Wcy��7�RZ�Z������P�j�X)�����V������*9jn427�>
����H�t��'�!�*Tk���GWF����������'
���L�s�j�&�dz�PG&�s'��&�
O>&9Y�o��yS������Mg'L�N�
�q����m����|�4��� ��t\<~�����_����-�_p)|���}��yY<�G���\~�]<������	�>�K=������z���",;��m��jf����)�_��9���
��.��S "����R|�|�����~��TJ�v���X�1be�c�QM���N8�M$5l;Fg*g�|P�h�Mu�R����"3����;C�YZ)�����@n���F���Q�
c"��K�MZ�Q:k���H)i#��O��P����x>V|��
��YZ�����=�6�$z���G��
�D�R���W�S����|.�T����C�v�����U���;��S�p�����P�������1r���$��}���6>V	�-m�N#wg<��	#�`��)
�GmO�-=��s�M����4���;�1������>�����e���=U!��=r�^�����-�~���MeM�����kV�g&]$�������:�p��G;��Z�%�+P��P }���m��������Z��:��2
��?�Y4���7�t�@
)b��V;#'{F���S[�q�'��7�hdB���t�0C��h����o��Lv�L�L:�g8��&�l�))��6��e,`�h��!�
G���Cu�p`��k�>G*��b�<Z��b���D���O�����f���'��@�OU�fF���M^M~�����';cL��~��d�������C����$�1����.�|�#W�=���G_�����F����W������*x�K�ftijg��HVCC-�����n�#�f(���xs,R0Y;��t���%o���{��0Q�c�>��^f�����\]��Kb�%����(�P� �2���B\w6$#������9�]d���"_6����9"����[���+q�00-~���Wdu�=����]$v�+���b,w�����d���U��]���6�.'�����]��7�j�<E�>��s�nCI�To����J�P���?"��$�����S���OI�HA*�2J���H���)�.���r{=�g�G���/�wK���DN��6'�KQ��C��090	h���)R"��O?��{m��
�e �Bk�E���@rGl���+V�=��v(�<=��3Ai������+>rv��gG9;�r��#~�,�Q��������<F$�c���F��CU]8���|��R	oN��e����2d'_m�8�T����t�����L�	���������p��v���Ao-��4����L�����y�r�G.&|����b��\����
�%��y!PM�!F]%+�������+���%n���J��D��0Z:�6������a(�(��B�_�|����O����o����|����Zx[�Y(G+�W��moM��3�
9��~�x��c����������<,�T����
>@����V���_�'��
�+&���W�Q���x�Q���r�*{�a P7qy�J���5����G.�3�������<���
�c����F�#�������|��J���]n�<�)�R��F���>O����3�G�^����	%J��65[����'��C��>[T�Lh��-��Q#�1
5�L��@Q�����E��/�e�K��}�8���Xg.4,�?����<:d4.��4��[T������y�Z����������x��Q��$@���+����J4s�J�n����/��E����M3�v���]	�1~�GLE�+<b�JEp�L/�����R����S(�T�+�����,?����7���iI��+U'�K$y��#t�<Rs�c��z����/�{le���t&=|P6��*V�n�V&$��F.&�T|h�<�0�!o#
9�������Si���\�����Z���v�=�����qT������b����c}��I�\������b
������f����0�g�"�b{.���EJ*��z��J�U�H��T����-c�[�����s/��E��O�M���<�<���Bd���(=���Lt;���1�[�;�%��%��M�%�d^�L�%�B�R�R�0��p�B��8�JcJ7��]��)�.G��)�B�@�
Q�+"�3��f3c�dj���������,�D0&��~�h����W�����0��,��:K����c��	&���hL;�E��J�����*����������J����5����]���j�_������G�2_i��D�*:�}�1� ���-�	����,�����g�z�=mql�����7{)�?����+|�>>`�c�����1�d�G�vO����2�=����x-���v�
�6H�ynj���#�7�xAa;�\�H���F�"��dU����
�<B��@�7V`����%�(5g�����N�F*F`5�t����/�����M�MU�`�����n�J�o9!iM�M<����ry��y1�(�
Uq>Bu�#��	'M��~�G��T\6������J^)���	��S���Z���n;����~�[�S7�x��	�'��i�-����n��6%g7��[=}��c��Y�n�u�x�b���{u���������F�oU+���y�t/bq+_��^���*�}��\�g��sT~��5dO�R|=�,�^�O�&~�-�z%�X}_<�x��o������W+�����kU��j�'[��D�YOEe�����VCTm>��.�a�T�~[ro��B��Z�{�	�����"���M�����Ju=�Dy��J��	����F�kU9�����S%!�2Ea�b�]��O������&���;g�L�Wy�=��������xRh/b��	�O�^�b�g�FS�K<�p�H-_y{y�C
�e 0@���e�1��V~0�q�d��T1��L���zS,�b��=�&;^�':���'=�������w_
&"�W�	�t�
���A����Q��v���~�4$��;���Wy�v��B����Q�^�E�n���=�+@�P�$iw���[��]bx��t�P�)r�RP����l����"����G4�����f+c~������c��c,�*�:? �4Y$���bI�\�'���%9H/O7\<�g}S���]���l-����#C���nS�3��!jc��\�-K�?�@���:D!�
?�4���������`��4R���Ap��k��
�a�#���F�;%�f���RIJ�����p
D���t�S,�����pO<���Tm�/"8��b(�oj>{���'=���D�X\j��{0l��X{R+�q��6�e��)8%�dT�n#�������"�.�P�|��}q�\���Ah��N����������"�9�7��M�@������H��G��<�t�yqg�M�
�jb�6���:3d|H���BFX�
�)eW��Ty(u�A�Y�2Q�(�=��E@����F�%"��K��~P����U�C����a�������^m���P+K+�$
����[H��kw�����8�1���'�)#0�?p72�SG7���'/�[�����^��h'������?�Hb����Gx��,�S��/-�^]��	�7YGJ�E�����@U(^ �I��_��S>
W.ne.Rv�q!P5������*P����|gB�
t�I�*���� �x$�o3��k6�������+x���l�X09y}�.8\p}y�����[.���X������pa�RNh,P��.��;r��[��t�����O�����"+��?}�����\��CA�%����2{\�����&��'�_��I��f�����'�sl�]b���_���~�74��{���g����;U�`�r���������8(���mI�%y	������S>��=?Ev�/
7�eE�nQjbE&�_�{��=;���d�}��i��+Ji�8R��i<����#�j��x��#&Y�T����8�d�_��z���������?�����SA+��}p�����^v�\/����{���e���X|v��zI
��c�U�/���1m8��2�fr;Xl5���`�@z<xQ(���|�]�6%`����\5��SOT/g2zN=o�s��K�(����@(�>F�UC��V��(��>��c���<�U;V���
y�C�jr����E�*�����k�����X��Y�������8�x��S)B������t�(�����.���W���S��f0���9��.�����4G��C����_�|�f�� �P�����B�x2���%
R��J�,��i���%�
�G�fuUu(8bk�PR1��r��b�yd��h�}#�R�i�����bV������i��m���G4g>�6��f7����r��va2z������8sN
u�#����/P�zX��c�'���
��,��vf���s�R`���G>�:�Bf�����E��bY(r�1�V����Uc��|�Ph�f���
��j�3���[���EFw�x�n��p�+�`���w���K_l5$C��|��#G[~��<3B����-,&�"'��E94��o���M~��0W<qZer�DA���0IO��������v�FA<3W������O7Q�����|�V�'n>��k>m�����U�v�C1=t�8��d&���r��M��)���L�J���&��Q�[�3Q��������Od���K���f�CY�a�+�P\�U(��,����'��uSW�R�]���2�.�s*�is�Jds�1��m���_����'���6�������H��=Q�h���~�c�y��*Aa�y�>|�)
}���F7h��mGa
��N��|��P�[��
r1��y��!)X���!DD�k�
���ow@�p���tTrP^�v� K�S������t�*�Q�P*�����b��c�D9:u�]�F�<���`�)��Q�S'��D�7��}��}(o��Z��PK��}������j�#@#z8��$�s.��Rx
�P��=�.=A�{����B]����
[����zv���"^�Y�B'�;����W��x��"������D�8�Tf�Bi�2d+Tn�KKnq1C��f_�Ga���Se��1��e�s���9�O`_� 0vJ*�6���b������=��WG���`���R@��v��������������x��W�@
><kl�<�*D#)_���L�k�}�k(�K8r��#T��@	]����Gm���M_�������m��1�:l��5#F�F<M����7��M��
���$zx���D����K������9�c���P�+�!ob����Rq��,�j����P9�et���M�CbU�S��"T�x�m���+=H>
��Q�aww�����3�����Z4l��I�������,(x������s�Je?kc��V��+P�����@J���&��C:'���.=���[�N����\!i t��G�d�4�Rr��L���%=z�}n�
����
F=l�L�=�3g;Cf��[�U�5��7O�2B���ETX���'+hv��	�����nN���'����zH��t�G��
V����N��I�
a6\��Vv�Mln�����P�Bqf�WH�|���������}s�"����v��{j�����N��#��3I����7}������M�4����T��-7�����:Z���Dn�@]^0�wafB���PaJ
$IS�����nO}=��d���'�)&����d�����iU!6����}IzU
m���$�}��\N��hq��������_��Y�-�.�"	�[����pK�Pi�Dk�8��������S������HE��9=6�������P�Mn'��e~ht�7U�y�
�����	e���AA�;��[��S��`Z���"�-�G���MWl���0%���z'��ID���}���zb�I�.4�}VDe�[�Td9��LCr���S�	�ty�Ldr��q/����Ge�y~|+�O�4�4�v
$����a���.���4H����������eyO�{_ }�8;q���|�-��-�����_�O�s�u��}��%��8��5�����Y�w�l��#_��q�	*
���0�0*?lF�j'�=�7z�n��82�F�{�K"�`��MT�����!�#�?�J.([���:�"�
<�O����}�.H���T�mZ��S	�u-)Hz�@���r*4��N�F-�T
����}����C�����T/���R[����@���E�)>����i����7����k�R����dJf�K�d��k��i���J�F��~U�?I��W] ��l��R�;`�����W�]������5*�+:NcB���������B��������*�y����@�&F��$�K�r@���6W���h��D���I����#��1����7����;p�+��Nm�^;A�WO���>��]�&�n��D�w�!*2�c����\-��7��>J�����@���$e��K9'������\LvZ���'ij�����v�i��/w�1�U}j�z�����������8FKZp�2����~���$7I�\�&ROMyJL5��H�/#�6��"���lo����>�"P'��R9���w�$=��U���'Fe��~��e�9�p��W�&7�l�����]ng��8 ���}�X����o�6���%����a�C����������[�Dz�b=��x��l��)�{���e�C�Dl��R	�[9�f�/?xC"q>)y�;4��2}(n
��H�c���T�
#)wE�u�sSd��5����B'�Z��kN����<I�5k�z��e��bAy.oyff8{#����=mzx��������h����Wv��B��@����	0D
?P�I�N��s
Ld�[L6^!fn>����<�
G#�O������s'D�T�n1�5����z�)c��J���a&�H�Z����3��Yd�R�������8��{���@(�J:�~�/6������C�m]:����6�DUb1����r����P K��rCAf~�=���a8%K����Zx��}��e�&�<���D��������mZsa>C������t��b�s���$}��i�>�p������FH&��e�jK17M==-�����+�aL��1qDt*k�&���9�����&89�7�����������[�i���z�y����/i�v���x����U~W���E.?�)��E�����,�W�/WE\}������-����������������;��y������������&~��/o������gy��X�m+��}��m�,���������<���Yc���jLH�������X#S�
����t����D����g4��v�)�u�FkL*�fUF�bO��T�U;&������b����)w�D����
~�ok���7����/�U{������&L����KwD7X��\�\>{�x���-�+v;�{������������?s�3W��L:��.Yy������(J-�;��1�,��
o�E�ZQ�R�����A�u����t2|�#�iNW5�;.l�&�g�WT����h���&J�3V��b
��b�����+��[r��s�qi4�O��>���������*O�����Q�rk����K{b�N���������lI���z�K��h�G|�:Y�:V��9P��{|�cb${]���4Mv��@�	�`��sD>�1���u�-�[���A�������_(���P��,0� u�]�S��<�'y6�&��STX���X�,9v���[�������"���
�d)��n[��z����<W�9| ���L���xgc
����J�q��<�.�������������������h��K��+
_����:?�P�!����3��E���*�f�[���LZjp~i���a�|{�:hW0"��0f�0�)G|���}�g_��O=�omk�:�#�:kw�H��1�=���g�����g�Y���\!�0�l��
��.��*������ ����g�
�Y+�f��4"�2�I=31!C���`��RtD��28bv9��+�J���8���8�$&�M�N��N���l�J5$\�06O���NA5f�(��G}�,x�`��}�=75�.OH��Q��C,R#iF���}#8��Yg:�w]V��w�-.��������:�P��:�x'�tS���u01������|��@.�PL.�)�g���������J������t��1��Pb�Cyv�ZX���YF)ik�"0�X��R��R�DI�������`�26b��Iz�s}���pW��fb]���vL#�y��nb�n��a���'}��PJC�<��Z�*{�W���mxy��E"�J,�Hj��J}��n~��<�����?�l����u����[�8�g?��������8���6p	
�)�����(��r�k����x�^���-Dii}����+�{����
C�0f�[�#�5���j
�{H,�\a����R%>�N1�l�Xl=of3B��H�xw�Wf��	�3����/�n�9�D��=����+E��W�^�g9�CG/>R���=j���K��\��1��-��zpZZ���Q{c�}X��r��#��:r����9��O
#�AZ�-u/��V5���U	f���f�{`.8@d;f���Xc��E^y����X�:	��c1&��iBV6�'<��e���(��?�����S��R���r���z��E GoB7�
�oC�%+Y�F���
Z���Q�8Hw���[iB��&���sf�;�1���wX������I���n�]u���
S"QX����#c��9Ki3�n�0O�L�J���_~����\��3u�,^��G�=/�����U6i�WY����E�����-/�/O5~��u/?w���fyw;%}����\����
O�r���th�E�|^-^�X�\�-^��'>]�����(�_�~':"�x��xy����!.�//Z
��^_-^������>/^��O�}�w���3f^�=���5]x����_�����H?L���hmf%s����
��K� ����_��z�l,��T}��q��3��	\
m4`����������R���f�/g�H]�T���i�����M�U/[f(�`�P�����yq�9/h�E����G��b�]����'F�Q�������m�;%�c�h��1�����v$�}��	I�������a��Hl�e�5�"%��.66^���Pl�R#�EXI���M/���:��+�{)�|/��{��F1H��X	����Y���j&�{�7Q��;<�������l��������	{e!8��C�h��5S�����!1+4;�D�����C����#�z�����
0�U����;���&/h��4m���'6Q_�B}��w0�xyj��"�*���d�B��B�.$Ki�n��",��6�n���]<$i���l� T�
2��*a��0���(�]P��� U]�	�t��tPW�bs����cy���)a��
}��RF�����{AO�c%*�����B'yOz��GB������Fp[���.�����:P���/�:|���
�m��4n������Y� �`��g���K���Rj�����QDX�{�K%X���A�����|���/?{�RI$=J��SU�����!�P?`�^E� ��A����s������o��^���Fk�����6~{&��Tgp�3�JQ���M���~��xQ�Cj`?2������5�����h��_��|�e���d����K���>�NS���2_v�H��e���j���2����e�Y���^���	/������W�8�L �q|A��Y;&�4������/���!/C����$��Q"<�)53%P,W#S ��x���/R1����Xu��D��Y��m�;�����/�?�`���b��A=�/�u��v������g���=��OoKQ����.^�3,^?�����]���������+��k�jvW�����K�\�)����k�q#�.^���_�������(�|z��x�{^��&��Ml���[�O��.6���8��jL�Vk�[�6�'`-�Wh+~�5I���?~��q��"��+R��k�w$�^��P��F�+�$��n���c������T������m��:I�����!��V�4p%��
��������aI���l�=�,(H����T�F�B\����M��Wv:����}s5 Ft�}�b|T�D
=k�y��2�|��Mh|c
���'n���f|�60�[�~a���{T�"y�����!�"hG[���v�d0$���W=�:��~H��4���
|j7���`���3���
��_����.;����TheH�C��W%+���W����������WLO��u3/��������TJ�
B�^\�<�W-j�,Z�=�gP��U���Sv]%�Z�����
�k�gm<�������C����5��Tw�B��xM��P�,
N��j><��
�Q@�D��w.6�R�$F�0�#�}��c�(���s"�U��[�C�LHX�������Yb��H�s��_�*
�������7:�����sdZ�	�;��]�o�.��_)N��t�������]Z��F����
�����������Rn�c��P����qql\�@�%�b��|�c&,nNe�k����������!������:C�jUW��X\+����8Bgk�rj\d��lk����\�3u�	G�^���"�W�A�\ZH>>X^��(^�["Q�b���Z���\<��� ��_����7��rC�k�u<�S���������w�F�b^��a�4�HsC1$�g�Ph1(HE����iS��r{�]��P��{y����e���W?��V����^o����r?���1�W��a����{3J��75
�F�
���0a��Z��������os�h�*u�c��+CtyUl6�	���l{�^u�5��qF�h��:;�r�#7#EE�� ��*���l �f��<�-�j|e@��2�7�=4�F=�M���=Y��0`����N~��jJ���~��<��x
��x�B)Gwb=%d9	��O���e�!�h��L�j�|���Vd�F&�q�)n�iF���@d�4XZ�B�W�/�_�
����k� �a�~_��{�B�&9/6?������ ��i��MJ�k*�e'�cUl�p��`m�z��!������t�~K`k_��M|�#;dB��T��D?�"F�����[y(P��0c�i�nb%��b��?���u�X%�A���������{�L�i�:.�.����"��c0���%���f�
�Q�2��0���A�D���k��pj.,''mW;��Q
�U>��`�l�78�����v��-
q��"7!��%ga�y�W��@�������<ipa��N����=z�T{'��5l�����X��*��K�k��Jx��Ve3pu�����s�z�;�.�	l���/����]u����m0�o\3���U���)J�
MEo*x��0�W����^���j�W9r�
�/"6�<"���Si�3��M{���^U3�
���8Z�Z�I������������u���F��V�J�^���=!���}BDU#=������JBdr��n	���y4�����S��7��F�(4����&�j;�����C~�]�����-���UT�G����M�k��Be�i���F�����P�=mw��/i�m���-�xM;����7�������&E.�y�v	��/�0��� {�J	�^m������j*�5���b���W�}��1]��\�a�:/_��O�TO-k81����V���PsY�����f�s���s{�a������{�Isn?�`�W���?��2bO6��LX&�O?�N�G����� �w�F��R#3o��i !\���8�?"f?^���q���M���t3}�&�W���P�x?%��Au���p��k�S���wei��������q����l�W.0��
=_U���c@J��d�����H+��V:���
�^m�����9{�J�D����S�FV�X���7�B�}t.�	}uD��W��H
K�}����SV�T���sB�:�^�B��`����o����/�5��;��ZzL�F�f�f�n?�Z�n�(0�� �ki�|�
�h�wqol�{)��_p�����vf���i��
mW�og�w��F���uc�^�����?�z��T!�}��������bxg�����
i7H��xed��M:��������,����=�Y�O� eq38�b�����f�~��u��:���H��w�-���Jj/ty��Nq�R]5DJ|:��� 27\���2�a���P5�@����abc.Gr�R��� 
�@����Y�6<9ChO����__�[����/�������,�������@����
z��vC�f��s���
;H�E�dI���{k��vc�� �,o��4S$�Gj|B���5sp/���@08�M;�dcU����9B���^'�CO�����x��0Z��#�rA�7��{����zN�4|�	�~U������_���	�\�)y����?�X�y���z��Sl��-�/�g����R�jH���j[%��66)�g��j���f �`^�Z�%X���-����I��g��:llw��1���OV�����S��oy�x���U�b�9�fl1Y�������.G�U���k����/����T,3".j�e��������
���gN�Ml�&���������?I���q��W��Y���'x}�.?�D�����r/����d��g��/7���$��rA�
�-�V7+���V��_���Z����e��&���|��*��)M���7���N�n}�����[�Jf�. *�S^��U�1�����4�y��<��A�*�x��[>*
>����@���=0�	H�zy���CA���O����v�U
z��6��"���(�6!���/�H����jOOU�
B���9����7+���L�v���{����o�������g'ZY���R���?	��)��6t���d��c4���j
8��0[un]�EbD)1�:&��}�%�E�):& �vU�q�/o��������!�3�q�VJ~9�%�rw����pU�R'��
5��b`0w)]4��
X!
���������)���.(@��5C1����#���h�$	1�g85��'-(����?9����b�R�Lx�i��������\.��6����t%�L�g��cDLC].J� t����iO�i�7�-}I�-��7W/����[)I�i7�`������5�N+�b�+Z�(���j'G=8 ����
��b���Hvj��-��v=tI	��|{�aB^��-l}��M��R_�_#�y_�����|���Y��#�G�A_�#�"�g*�����G�����6$�G�@�l�U��7����t���}ug������d�Yd&�^;�<d���)�>>�-�{���q�9�F(j��0v5S0qtN���N�U�_;6���H�����7���Y�B�����@C�m�B�I�Mq��u�t=/����>�~G�;r3�m��,��g��'-�������oX��""~�A5�2��9��+ma����!�"�*��
h#����"d��������U�T|E,�{y�KIU��`���;�X��$���Y�Zo�����������ZKgd��9��������8Y>�����F�dq��?\)�4��},��[�������
��F:�|��1	�����ON��NH*�+�va@t�	m�ZR���m�b��Rc1�H>��-:E*�6!�q�����(�t7b����!�0F���* B
��\X�(TTi0X�l�J�#Ig�������}g_L�Kr�\��Fu�z5����(����{���=0��t����G�=�*�
_:���U�/�b�����?�MwW�^��3�;D96��DS����h�%�e���|�xS`O�&���5��Yx���%?���'4	D43�
���������"R���8����:��=��>�h��&H%V���F��a��=��r������`���Tm�l�W����y:Q�����u�T���3�J�ep@�'4�f�������m�$w����:��On����0�4|�SL�sY9�q�K�p0��c�-0,��n�e������KC��[b�CE���*u�\��U3���a��E&Q��tS9|�F73Mo4&��i�{�;��_t�?�P�'�;��N[�����'��=��t����q_�,�����
S��������[����o�=��t�g������������RuH�U��zj���)���MFU�6H
���BJ)���<�T�+�����"�f�G>�Z~h!��
�8�����*������eo��C�1�`$rw�A�zV�;����FG�>��t~�151�@��J���Z���/�&f�He�"���Oh�2����
h���~�2��L�+�Z,�{��X��R�d r.��7
��/���R���+���`���oX"�E�o��)����]J�������7h>W�f�
E�s � Q���B�adR�A��N
N�L~��Ts����.���<3l��%l#����lb�{:B�5C(o��H~s��9���Unj+�"��c*���;�-��
��y}�����G��)D�������\�q��
������2p�~s�6�h7��i*:��[�%Gf��Tt������Z�ld�V���RFwQ�S����G~�.Uq���_�(���>�o��W��y��'���(�Vn)�������^G6�x�-��8�|���Jv8����c�.�L��������I�s2JwGb�N~����,F�cE�ue����>�R�6�2�0�{����U%�nk��7�m��j?{E�Y��b�Z!�j�T��T�����~5_�@�wk]s&r���oP���m?�[������z;'{���Ch�16�������"��
[2�����-\��Bp���aS{�#�@C��}.��C[U0t�B����O?��a\��t�G��y�a
�
KVT�b�}�,�[�����s�P�2��#���\�lF`�d]��]�A#�����}�&v����G&�j~�)��P�j�����,W���.?b�yu-?b�C����+qx��_���'B._~�_�z�X�/��������;���i�?_?���b��X=�-VO���zz]���b��H����E��+y�����Gor�
��X����P�.O|y\��~[�����#W*�����1k��#
�W��3Y9@O��/m�_�)��^U��� {�j����b�D�����t��u(��"m��	F�T
�q�a�;U]1�
p+����-��A�����"k���U`+(�]U��OD�����
q[��3#^ZR-�e���H���B����{|*��&�K��b��%��#��
��4�!�frg<7aU�p��DM����g��2N9�;Nh|
M�/q6��j�0��jg�n�{�A+�����M���/B�j����{������8u4����?�2��q��Jw����WC*�D��X�����8�Cy�6������q-0����{����d,�^q&�$=c����U����J�nS`>�s�����f�3�/�3x�*�]�if]�g�_`LH�C�p�����LG}��D��2��-��(��<"�0���8)�i7��t����-���yh��jm
F&�~���n��7J��>R�G^�S{��i��1!�<�cU
^�ER3����v���!�$!t#���/G^�=O1���c�S��{������2p�d��@�
S�+v"D���]C*�S].�AP����8�������X�+���(?Ff4w�$����1M.+�'�f������K����������*�a���+k	l���Ev��ca�tza��P���	��� ��V���*6��k��+�>\p���
w6��t�:����H��W��*U,�F����Rgo�f�
x1a O����M(���L0�������U9���������O�
���W�Of(��*w��g�xG}
�K�f����4f��+6��8�V�����C��Ss�{���	
J���`�O��b<��C%X����4H��x��)2�'5i�������������1�����6R�R����������#�L;Ja�3[(�M��(�W��1�
�?#�1������0�,3h�U �&{i�7����`Q0z�]p�A�26���E��Oi��1=������)������D]���N~�5�;)q��JW��V��8����bN���;k��z����UX�#�BN��A]�RI;>x�-}Jnt[���f�7
;���R���\/�
<'y�e+��P�����7+,�R��/�5�H��Y
e�.Q��T9o�� #���yn����+j�R��l)�+���|XR�W��K��I�F�F�����s�Q��i���V$1�	�����b;�;���[D����?���2���7�U�V�����jj�����k��������`xx��n:e�l��j�p)�A�.B;�('t�8#\h�0Z�U����'s(!�xK-xKMa��h*+����b��T
���o���p
N�u���*a�{$�J*+=�<!���)���>R�����c��{s"L�Euy���������I��N��j�w
b��B�Z]}bB���H����C�N�b��u�DL�{��7���`ATW�����KO
B(�%�������D�K;	�.tf����f�����D#K
y��0��c	���A�@���|v��Y�P{�Xa�����~�s>@OW�������Qp�nfG0�KH����?3��{x�w=B��S��9A�sY9`�� �mr���c|��������2b���V\�2`�E(M��6iD��#��B�p��yBc�:|��S�Dc��b����yGL_�'��R�%,sP�f�O���JN��7.�;�h�����s(x!�����v�#���m�?P�<�j����Pl�w,
��%��l+�_�������WK��2	G�n]��e���%5w�U��N����8CL�*N~�S@T�B)��mWm1nR��H��R>"J���u��\g�t5��>�A�$~��$|/���aV�y�|�w���%c?��J���{R�sd�Z&�-V��j]cBg�b0y���P��JM�[��P�}��S�(����[�n�K�xp��t|��F\���v��E�Hy��Y��'
������r���~�7��LL��At�)WhE�'P� �:V�Hv�����x������M�����S��/M��&6~'�rk���/��>]C��u�v|����1�c�K�W��[6�"K�h�P��~?�-w��tT�����.��������\.���P��w��'Y�E���R���2�Hn�T�����o`-d��=���I��/��b�M.���M���T�(Q�1�4�R�����|�@��y��k��|�J-�)90��C�*-T1���e�#���G�����c���m�r����e J�]W[Rp�����Crw`�t��Nr�����,����g�N3>��u�HN���$����{&s�����<�d�;*U��6��x?���X�Fo���=q�����{���SYz���`��
�
�b�6�k����/\����#J{;������Z-&T����,��b��Ix?��!m0���!+�,��54���������b9�I/���s�_��u�
i�����)��:@M<BD
�6a����tou]��m��l!���jy�������$�����wZ�:���nB��K	�C/N���Z���*m��n�z��4]�+���Z;} V�	#����JP���U�+�4Y%�:�����D x�����[jy��*v���t��|���������{������8y_P��2���$e^�S�_�]t3�
;��&�@�Dx]`t"�@!�D;S)�*Ac��@����pb�L�LLA���:X�d\��2�n1VV��p�*��UoG6+S�������n�d�������7M���5~��J��h��)r�*M���Vl�
���j��NQZ�*?|Z�P��z`}y���l!:������8R)�1f�P;�8�@g�����:AA���#&t���F��u�wM�Utk�e�H~}(�����Y�s�*V���j<���ku�=������ �(9�q{H{w+��������4��"���48�w�h��E�$��:��>������~m����?��w���1"~����!�t����"G��vt�;����_X:b.Wj���C�$e��X�>D�����jg�O?4��b��-S�`��q����V6������x"�n\��h����.���b�S�d���M�o������<J�b��Y3�He�
�c�}xq��=:�|�d'F���b���>*���&0L���=��(�|��(/�F�	�U1 �)c���w�F������S����#A��iy���L�����20��pL�(U���B
���z�(*�VFH����|i>�<��sG��+���E������ks���##��F(#���8��������YyL|h�B^E�dn���K�X�k�)5���i7y��Xl�,���G/D��R�P����.c�����9�$,��jz%]$�r�io�a��w��	C��z�����6�.�0yte�bq`?���7��������L^����^���&�^�o�
B:m��������\3#G����j��a�Yu9N}�������K��,��ue��Vy��>s�Q%�z�����%{�g\����%&#5���a()�p&��X'�������25�ya��qd`#P��8A���4r�����n���9��@����� k�����@��m9]k������'��r��\���=%
�,�H���
����6���?�����\���o���,)�BC�g�LyUk�f
�t�������b�����|��A����@F��a�>��z�wH���g��|�Hd�������5����Ct.��K0�%�:!��#�=��A/+�j�n]ak�
7���
�V�m��m�{��\�.�Z������T�J����������r�O|7�8i���$�B���Gl�`+1t�i����;/O����5��������0���A�im����.(�0�:��V���>!��N�&���}����f=��e�n����G�&f�iV��8�6���z��y?��1���o�q����q���t�]r����������'��u���?���y�����w�����/�+�]��o�On��]-�^��"��,���������]�7u�M�M�������x�?�B��TT��le��Bk���28��&H�]�����<���Bq����g��w�r@_����G �.t$ g �x-�i:�'��gp#��y��.C�J�������d��C�v�oa�X�j�7qS��l����CQ�<xG
�������)��_FPZm����3WJ�XQSs��C������!���;�aL�P����T�'�������M)eB�<�;W��l�iN)n0�!���N���o���
�N�N�w�L
}v��q2�
w��P

B�2��!��>��-_K�E*�����^�
�DW�:iZ�['�*D/������w����!uL7�Kt�������T3*;z�8�N#Xz���
�T]��to�c����3��C��*�I7����P����L��
��8d��p�R������h�S����~�.�PD���
���%����~���8��S�
�2��	Ntuf{D������Ld[^wh��)#��{�X�����T[(\��3�<VO�Iu��?=��>��~�J9�:��p	V��X����aSK�=Y��Q6����wD9tm��(��@�����Q�*`>���;�s��{�h��|��z�DF��%�V�����0����p�	����n������X�����}�h���H�f��~��u[�Oh��t���!�Q���@(����2V�.M/x��J6��eF���

�/L�n$�6���H����P�|�2�{*E^�_���y,���
��~W������Q@U���d��dW�CS���=��S\E���Wr*����n�ma�,Qa��$���L�e?)�����g���b���@��#t/����g�C< ��~W�8�����K��-���]I��6X&���B��a�b��GT�q�����(�8����tG�v�hz��8��a��&o$0O�
��PQx���h���hA[^�b2i���u�9�X�+���
�jh=�XC����i]�O=�`�� ����+X�������X�Kx��K�/2U}���9[�.���M���)$��U�R��[��a�������4#5��"�A��)b��,�)C�k�C�E������"�����������n�S�*�B=����`�	J���Hn54�b��8��h��1�
�*��x�4
�u��
���dp�?b��D�nq�7�6n�63c��j�c�sO�={\���4�p��<��|�����_Q>~�7�
)Fpt�����(���T=�����c(.��@"�%�s����El����Z�F�`�]\(iU��+(�H~�\���y��2[U
nTF���{Xf��K�<���lz/���Ti��e>����6+��;�{�Y�L���mQ)����e��OFp�z�/s�Y@����S�����=���G�r>)B
���!l�.7�l�q?�}?��BWb!��-p5�L,�5�������
b�B��?FaSmx5�=��<m���;t�=k+5�X����b���(:D9B�>��F7�v�e�w��a�P�������(�=1,���|�����U{Oh��=*���;�v�~J.#�����,��E��f/�K%��I�g�&n]|G����E|Q�*���+?T��u�u
��g����_a6H�R��=�Z}O�J$��t�*%������cI(q!�l��1:ps@�,�W�rPg=oD��:���B���?Y��R��OAz�5�=���X5��=4K����y=���Q��Cv@(��G1�����6bps�#����O~`A���������b5&���4����2%F�����^'�\�`0�K��I�1}T
�8��vt�y�����9��x�ls��X�<��<P,����z=U�i�UqtO�#*A���r~Ty��}X7\�#]��=_/P��XN���x�)?&ox����K��G��u�<-B31��1�e��3%"Xif(�2�u�Fa���s}P����x�>|�q�>����No�*U`~S�m�j����f��B�GDD���7�1��JT��B
��,���65)0r��[}���"~���;����WF�qr�I�L�&Bt�nx������
6�pN5�8���uf�����X/���5��!J]Q��$�<p�}��<z,�����\I$�z;z�=��h=��
i,Ss����z�xx���L�LQ~K6�x-_����snV$|�������2]���2V3Y�$�������$o�(�b��{������=���<�R`� ���i/sa��.%
��6tqv�!�������j�(&����f{=�8d�/4��<g�]u8�O���t����"����l�}�%�	Su�:�%�N��^�w�$=�)���S:4����k*���8G2u>9���,
�C����Idj��9�M��Ot���>8v���__?�����|_|�2�U_o^���w7��������v���_���zu�"����F���^�����mor���g����}�:���V~�z�����Or�J�^���W����_'7[|]�x������)�}/��.���j�%�B���q��1����|�__w�
���j���q'����_�vIS��}�����R���Um0#'�|m�����
�JLV�����
�6�����
�q�6�
'K�5���Vs�m��PO�������k_�#��|_�8�2�bCh�lnPh�V�d������
"N	��Qp�xu@�1\�$���%�X��.��D��X]���~=p��+����+�����W* ��]���!9��6��r�+�>����W�8i�R���~�(B*��
�-2w������4�TV����'�* Jt��i�j-��8:N�_�1�ud����"���� bm����C|Mb���-����&Y��g�{��w���/�R�������������}_|��?�A��ow���{�{���z�/�o�r�q%�O+��El_���g�M����� � �v�"����d�B��L�����0���mW�~-W�1^��n�K�p2�1��i|��?j���
�����������<S�lX��SE#��0�����I��:��O\������5����x_��������C�2�#�U�0����Q�Da�~�����7v�!1
t�i�������2�3�7.eR]2<C�+�D�qV���m����j bL����������R+�r�t�&.^2��j��8#��h�I(I#P��t��m�m��������t��Y�����$|�+������M�p��7�_i)�<��p�������!(���(�4�������o�pK���B�t!#�������A�*��Nd������\-�7W����8TFm+}�\E��S�������s(��������v�N�QI_�����C�
C=z��%����!
Q��8;�Fz������
����-�^���P
L��z�(�_k�Gwy�:��]����`�_��T���b~BB��7��Q8���'��q�����@K#����F������b��r"���T�qH��Q�x��#����h�|�8��������T��|�������M�=�h*���9&B�4���o�`��@��\1,4e�
����J��!N��L��RC��M�o�3ldq�8�,N���o11�:�d�c�M��jF\f�4lx����/I���OxUT"�x�F,�U���h��\�q�i*G�:f�������o7&
O���@^��:���h�Qe���'�=������9
f�K�"��U����\m���B�$�<�bw�@	;M�%������}L���dG����'P��X��.)E.z4m����x�7����n�7������������B�s
d���������QTX2�m���]���O������J��?����j�]77��w/����������J���w�U����#�������v�������R
��J��~��-�;�5|�>g�)�0���v���wl�^Iqb��w�fT�z;��vV�w.�4	��}9RI�*��W��U�}�SzG������s���+0 \��~��H&�Y�?@a�o#����������Mjt5�0��c����@E����������'���y@y�$5RT��F~?i��DP<N��������v�F������2F�@�&�w�gE�-/`y�w]�{8���VW?�43"5Gi
�����	�p��{�{����7|���"��������+J.x��bY\8"?��5��b�����G�A�WE��4ac}���;�kN��A�&>����gz�uvM���V������G�������~"���&��m&t���R��y���T����N!T�yJ����"��
#i*��&�Ut`@18hrXc��P]���c��-x��1j�n?��"t��+\����@�w���1#��\ao�#��9����������3U�i#�`3<�~G�N�SR�����iy����a(�
f/"B<{�S�X�0Ar�hP��M���+����lo�}�������iw;����L�A����i.50}�n���K���Ja�`�n]���%-��
j�X���E���X�e��[��5w0)0J1���5�4�G�}7����[JA'<k�n�7w���of3P�����;��7_�g��R,�`b�&)�*�	sj8���$$��]�G$EON��?�������J,�Y����F]�cm���)�Hju��n��KpM��j�D��7(������-=���uC�xw�{NT���KOg'�#���ry(��t����{�����2Q��RGo�`�����=�vVwDo�E��m���N�r_�+������)2X�A��O!�&�%���c)Ez�.�
��i�����*�A���JOy `]
�/7�K�-f��=;�C�L�����8�'��a��W���T6u@�!7����6��M���e�o�v�m�w[��Z��5��%?Y
�P�����<�G�{�Z"�5T)����.-�(����,������B�)����`rH���?K}=���Wp���)=�)��Hq�,���(k�#JE��&���Uj����E�����.����xT�����R�j8�aVk���2B���@����S�U�8�;��q��O�~2�$���W�Em�Zr8$>�O����&�`��h����g��3�m(�\*}8����'C�t��=
���&H�	��jc����@����+5���ys2�8*���|��q.X�E�xZ�BU��,��z|!]��'�x��2������Is�L�|P��x���JX��]�x�\]JfM��R=/����G�b|���]$5!�#��%����nf��,T2��n��>m$�T��C�f��\��7���DM�
��*x����i"vv}�F��
~b�9��������Z]�2:�		�-- ���I������h������I�_���Q����b��.�������������*�7�U{��Q��_�Q���BQBz��nWK��7��W��_�?RL������y��T�!�0:�8S��8�O��j�Vs�����/�p�����J�}rO,~HT�x��,?w���m��}����|W�j�o����?��d[�~���'��4��D�&B�^Y���N�#��D[�0�z"c��>��c��gMN�E�L�g:�kzW	}�?*���kg���#*z�'U\�-�LJ0J���6[�
�+~hc�d��f�����5�������.$9���	��
r1��}�XedR7�������u��6��D�����#L�?��Q��WR ZBc��x4W������:*�-�@����&$�X��#���#�;�NP$�D!�6
�@��N��RV�{~$���H\�"���2���0���+�r�F0����'3�"^���"�#e�!�n1���:���GT��e��?�8�|N�h1)��!*,>p�'*��?��7tb�@����;�����#�$��)��G�#����-��o�����U~�k�����S�>�>����*�f5��}(8��l�rO1���uI���r _%"�g���u�U$JX�v'�Z�*�q�>p1���[7����`u�����OK�i���	���]����Y���?�;��������.�
�
et���"��q�/�%?U;X���?9L�3��+��?y��O����59O����h@����Om3X�J&lCq��.���Sol���`j�~bw��z����j)��������$q���ES�Su5S��2F~J��k
�)��jm:����B��g���O[G��G,)3�G�����c��?1���������k�$��������z5eG�8����>Ul8�=��&=U��L>��$�>TgkK��N�![XU�Yh���xa����n*{d������U��m�Z��j�1'z������)?��o�:�����
�y������o��q/�1�oC-����Go�o+7Y|��P:���8[��qL��Js�x��������je��6op3���\�������-�4��:��uo?�H�-W���������I[|�F+�����m�F}|�7����f����V��U�����7����#����VuW����g�n�5 ���BJ���	��Y?smG��������)��tg�|m[t����������}}�+h�������O���W��_��ZT������+_���$]�����%
x�*�����y��&��:3���TK[Z�]�\j�4)i�7y�ed�������7�����P'�s*�?��e�me�F��-vk�N��)/m{[�h;���H��p�"�~������<��b��%����[��K�P�����R:7����@��_�7�7A����Z_��&�+����U�_�% *|y�������j�s���`~c(�KA����v-Z���!q/_������}QE�N�c��ks`��?�x��3(��2�=Kk�F��0y����K�j�lW5;����^��� �l��k�V�{fm8�;�(N�ho#\�}��3��Z�2��P�E���c����i��n���&��Wf���~��P0�%���q��3����	�A{}�����s]9�vQZ������_��z�!N����<�|6�$~�a|��P^�����s�M�yE�����N�����^�
,���7(�`��2��e�{�/L�{����R���>QL(V:K�w�������&S����b�bTJdc����1���w	�����NZa2����'[������w���@�y��5�D/�[��|,��������2��]��?P�,���_�<_}��X[��������������2�K~ ��.p���vwu�V��h�P:���OF�N��������=+Z��g����
���?!z1l[A$#�&?W)���\���EuG#Z
�2�����8o����@�rP�#J�u�q�����c�?&�,S��H(�����7��K�8���(�8)ZG�1�����t��������q���a���&SJV?�����������(��8�}��1e�4�"������w�����
mO�A�<�����/��M��u���
~B��:�u#��2��3�m��HU��4����Qw"��2��<������ZR�	������o�Z�Jp�gz)�|sc�����0����x�JY=�JdI��))�xs{m���d�_{��M�}-���C���>q�&\��>���K��5�UR��)m+[��R.��1�n���L��qK�M��_e���
6z�Zfm����3!86�_�)!�����a�Z��o7���lBaZ`�=R�vB�=+^�MI��,���9I������>o'�����&Z|���L��g<;zc-uVU��O�:��T����%M�nE��\o}7��8�iwq�
�qT�f���@���s?��9��N�h��;������M\ptOtl���� M�9��^�cpM��k+%U��\����e��*��K����*&?S��������_�����)��Z��~(2�Ai�<����o]����#*5Es���*�H�7������G��8�PQ������j����+a��l�G�R��� ��M��l�����T
�8$��������6e:�N�,;���V]T�M�&�����_����?T������JS�G�|`�H$�~2��FcM�$�]#��Ke�~��`���]u#�%�����;&��Ci���_��-�L_k,��������1H��4�0k���N��~��~�5*	v�<��5����^4��j������������I���	_�����wMQ="���g�b2��~n@|�?:��c�X���i��!�������;R��<e�Ab���0%������n�����o��Wd_��d�ZB�[�B6A������B�?�R"/y�����%[�]]�
^[j���O��_@;��"���>��]��y�Z�W�O�"2��4�����@��BT&x���$\��_�x�~�����e������Gz��3��	���qf�D�n��t�p�yI ��/�����l�g��-#�#Z��K�R�V��/@�O:iA|��6��U�������l�P_�@�n�9�|����J�o�(�	$)�P���]����W����~\������G�R]H���j������@��{�|���aj�����������L�p��S���,RZ��
�!���`[z}�u$�����,o���P�Z�����=A�����~n��J���f��7,������7���Y�L.��G��&q�Ij7"M	�7�#;�-�}�|-�c�V{b�,L:��l�[
H����(����N�T_�3	c�3g!~1��i���@j3?AP)u�������pZ�JM������K���6��=�d�m_����)��{���#��F��
���id�$sLV�'����T���)!A���b@�mj�6��~*CU�����7�/7���P��Z��K�E���8��o�^�������ZFl����c����8�/v��q�x�
��V����]�Fx����f>5�������j���vS���4����`3f��]��W7�7����K���(���iGn��Y����S6fh�������?k=V�19M�����+�'`�u��zS9r���������X$<SB�pU��+3����5����0���LE^1�W��
T���(5&QK?)��8QtL|��&�����������
2�:B��������*aR[��A<&�Kr�6��"h�N�s&�4�L~j����������G@I��n����dc����s'�/�����`�������������T��>������f@�Z{��+-��M5uhj����0f#4����~b>N��@�5�(S�+�P!�~{��������U����\D�M�8s:g��k�s(�����)L	����Y0�Yp=�����v����[~����d�T%(|/<����&	�����M�J�	-����S\�z�.w�����_^���W�Sa B	�D�,�����4��������������aB��6K���ot�&#���(�?�Vn��B-2<?w���Zc��� ���z�B���E���Q/#��0�	~H�]��	*4B����lv�|�L�+�8����3���`3��Y�ypm�z��Y���F$�B�0lq}����t�)��R����mkT����������A���8`_�#j�L�����d2^"�2�nky�Q�����6iO1=f���&��IX�@>8�XR<3�g|#o�8j;�����d3��*s1D6��#�0��p{�B��_<��=o������=����|)3f�[8��� ��Y��oh��96�X-9h��f��.����y�0:���PJ���>�L&�v������]&�?�U=�O��W���9#��3t%wg,�=����������ZA�8K�|J-7�:�j�b&�L������Q�G�B�ps]	��K�e�������:�y�r)��b5����r�g���m�?��
������8F�����	����
1=V���A��]��LT���-M9�g{���hx������1��Ow�X���)�+cd�}b6��q�
hi��g�^s�����"�q�Lc��0���+&�~8����
�w���a�MKOy���5�/[�q`����q�Z�[Y��N�=�4��c���+�8DH��]�nI���Q6W�x���������Q*"6h\�����-S��~i0+�I%���F6��&��9o#�����>*����!��v|��~D����?
8nm�p#��Q�E�K��	�E�����r�����yvM�L��1���������|�5AX�hG�����_x�.�L����v�r��[T�e
.4R`8	6���xf��%�^�������	p�
��+�>�M��/�eZqw_��v������R��m�`^�`?���Cy�N}@��X6��sC�1d�n����1O����z�:8<�����`��+A&����8�i�
<�.���e�mD��0�E���N������'�
��D��������v��x��0��Q�b�Jut�{�V��r!4�]c�I�4����������k��:L�7������T�=P6��y�����=��~��+^>�ph�VED(�C#Y^@��_ u�f�)R��
��%�|<�j]�E�`!/���2;��:��FdU$U���
�5�
�7;�W_5V���%�Z`]�������;�����{��Rt6a����^5{�yY�[�t��q
��m�h"��@Hd�m���'��B��i��u�u� �.�2]����n��G�iud6a#^E�wk�����d���������1��|r��[�����:8���d`�i<��kI��x��V
�����Ib�0��!��5���*4���oe�]��~��3D�H���J���hk!��#���F�W��������yY������#�$*6�Xh��R��o�QQ������83�
~��GeV~-*���&�_�z�q�������J��5��H0�h:���A���R_�8�Z��
��;�k���W�	�P�v	�M������7�����c�	�W�E@za������rw�78M>t�#�������Z�
G�fp?�����R�NG�5<��Z~�������D���xo��p+���m2��I<���^�T�$=��:E���80�;��=)�3�O��t�e�����g����NU�^l\�`��l�����(n�JM��Bh4��y�+SVg��X��['��QJtORp��N��y�G��8���e��
���l���.>{�W��Q��S/i�������n�QC9�6C��][���$��OT�� ��9�kF��K�_���r���C��^�&C����7/p���`���n
x����b&B�l
�y��w�J�r�|�z��=�i���\����?=���T���d9+qJ.�������c�u(;a{������Xe+jVH9��r�lY]pXbI)����E=>) ��v��&��� �\�`������2���~NO���S�`4>����E�������z'L��
5����>q������1���v<2��<mY�M���������s}�f'H�u[)Z���CK��UD]
����sX���_���qT�DxG�r3-q���P�U2�q�����S�=��e����������U������B40���
����,
`�q�	X�SP��������rm����������2���T����2T8�M�9�]M�8T�u��d�.n�Q����W�!;��Pj��
���A
��q�eQ�Wj^n��5��H���ox�\������6M���1��m$x�a�����[Y��">Sf�����yn����;��(#����>��)��h��:H��<0�
���p��7B%��C�U��m�w���np��%����Gq�����t�C�Ko�����4o��6�;�"|�e���+�~����������e�l~
�������;i�X[� ��?��[�w<��4xO%M�YgV&��A�W6z�7�N������"�Gt<�V�+�� ��!����������	�a����)(�F���d1�������7�D�%+-	7Ai�n����2g�.�* ���MW��w�I�+Zp~������-W�w���?��s���\dk�eGM�U��RYN�/���;�� ^$�
����%Ql%��_;K��p<��g�f|�oK<��3������r,���
g���f�j��S8�G��1�p�C���
`��0��[2O���1$:7�������d���{Hd��~����l����J�L�pDm�X��q�S��,Y��T���<��������eG�BiJ.y�� �����Ima�+�~3�"��f�W��1G��&������w_�9�i0��E&D�]�n��I���\���27�Dkh����>+?����V����_AXex�����fF,���0��{���Re����[�_�����zN�w�<�c0����4����H���{V�CS�7]��{���
��/����Ox�������8�oO6/�����A;�#��X�;��{�	�8�X�|=B�{	�e�Ny��]}����O��o�9f�'/e
�c�'I�S�G{��]��#pic��!�>a�"�p,B����~������tUS2��l]/���d������=�7�1����/�v��r'[����o����[jF�E���V����V���%����&E,�a!���������TN��b�%���l���Y}�/1�����'ls{,I���]m�
��8�����t
/�S5�S
:�/"�U{�H���*:x:U+�@."����_�����+��u�*�ZZeT�Rp2�����!zP�s�Kfr9e���{��{�Y���<n_���oj(�����a�����
46�����jA��`��s?s�'�:��":z��=�W�1f���GU�9-;~T�:%:�|#W�Yc8�f%�8��
j:��(%���Z|_��}K��>	�xT�g��	�(����E����apA���9f�����
z7V�f]���}
����+�����3�q�C��j�d=/�)5_N�Y)��kXM�\�NHY��Z�J�N�n����5I�����mxRzGb�))�� y�?�^�S����	��
p�y���;,}���+S\_���	���T����_������|?%��W���_��]@���[;5b���*���������y�pn�V�m����7YF����H��q;'�~��������w�T�+�<�M�Ms���;����3}���i~�K?�{o�y��$�*��sD�/���[��9�B@5�����m}[$hnH����
O��B�a+�?�$���C*��8)k|�����-��~����	Vn�_�TOT�^"u)l��
��}�s��#�_����i����)B�|�fhE�Ivn���!�{W/���W;�,c�����+8d^5�/%yE�x�����HZ8���� ����^V5���y��w'���m��gzz�u9	g�����z�>I��A��O��d-�C��3���]�u��'�2���tB,+U��rRO�fz"���g����w�Y��Y*����j���hmK�������<�{�c���B��:x?�v{A���i��J�S^��f�j��~��T0�=�����]��I�C� �_����^
�~�u�,P����
��ZAv�e8���q���79+>������	�Vk� )����W�` U��1�X&��"'>g������/EKZ����|33�v-���8�����s��
!���v��[���B�uln��sM��V��2f`e�wi�i�
��N} &������W0��xY0�p�!{x����r��L�)��E���,(Y��Wq���L/�n/���  	�%~�|'H^.��vN������c���L,@[p�-����n�re��V��ian?b]
)����T*t x����i"x�<d�X���b�@
[��H��du������`��z:
< �����
���p6&Mg{�~w	4���1��~�P����n_�d�:��"�~��C���=����p����A��Q�]���u���w���W2�z��c�P�����Iln!)uf�c>���C�r��~�R5�2�-BI~[�����u�F��,^������s���#E����1�i�xlV�v�������&9+d�6Q��2��[*���T�y���1`Y0�������������E�
���O_7T����7	��&�uAV��O:Qnho>\�T^
D����GL�f=|�y�45����n�x����Y��������U�����S=%������I�.+f�R�f�2���u���.!u���-�E��F�q�4��NV,�	s{N[�N���U��'�}�y��B?}��F6(UUa�/��L�&yT���$���+
Oa�e��4������$�7�~rA����0��g�"X��o&>��p�)	{�O7��I����)I��5�?���.$����*m�
�h���P(����)������$;k����]Zxe��{��s�T������M^`��0]#������1�j�P��~�'M�a�q`m��)�R�}�L�r��$��cm�<���Nn�xQfQ����]���{�>5����<�
i��$�{K��\i��]�=����rT �b$�
Y8��� *������9�v���q��>S���a�*�
JW����P���������1[B@w�Fb��,{DZ��m���|�~�@���c���j�Eh$�/{H_��
!a�0�����*�����k���=�������P��;����h��"I�g.�f8���K�tH@�Z�jA/yf��k�|9ci�|n�W�0���9#l]\a}P����j���"��5��Vg�����z�q���K@�@��({9����W�����&��nR���nP������mEED��q�y����9Z�\c7K����l�}�Iu���>]�s_������l��U�x��q�Gz�R�+�a��3�����UK.������!y�P��pq���=>���X][������9N�|a�D�Cf�Jwq��K"�S+��	�bj�d�FA�X,������[
l�?A�O���� ���i[����ir���~�C}�xB@_�~����U��=?1�yq/q:��S4(-G*vB���v�����S�������	�C@V�^��u�s�>�M4��E��6Vj�4P���KR�����0"V��eM�����b��n1GngP)��w��9��.����Aa���kCkX�:�1@��������|�/�/����?E��8�����D���u����O�9Cb����Q�((�[?"<Vl��x������I�v+�f�8]���Q��.�!�2��CQ|�|\��D��l����q�8Q���md����2��
�wjvpSt<S]4]�����A�X�z0�j�������$��I�c:�aq��vFSdWT{��������J���!MG-����ce7 ��+w="\�����,0@�.�ufc"E�y����$�JM����E$��|������	��Mc�Kz!�w�;����n��W����V,E�H��&�
z���eDl�����E����K������|��	�f�O������[�>"�����6��0|YX-b����'�Y]OteV��L����h&��$�������Bw�Y����]��	�����i7�O�d?�TpfP��u��"���r�������M3������
�5w�F��-�VMG\o:���Bs4�����R8��$���(3�r��6D��p��1)f$�o�����S�4�bZ7�u��
������@f�1�M�)�g�����y����c���a�t���������o$�]b/�O���<�euq��F���_"n� �
���c��F�����)�M�*|�HA�2"Qg���K]�v}I�D�-nn~�B�)���Z�!��i{�s��SZ�C-u�����4b��,R�y��|���1��me�M�R�=�#��{�'NK�`�2��l$G"8���>������S���$���a����v�njB~
K����s��$���r1����t�AV�J��lV�c���+���i��SW��nm�)����}()���3��!�f�;��D&d�����:H�/��;���O���O�|��u
��>f���5UmB!��b�`�E�Ex�|e>�|���B'I��0V��	��4-�� �/�t
B����3�n�����sN$�8�LK,�l�j���N+�s�H6���?��D��#�5��C�x A��o���:^`6f�I�+P�5aM�*t�_{���z3K�f��g��S1��#�s�c�����O��@%�}u#T����X��(������9��X�rH�h�(���q���	������3a}t�hZ�L��b���)~����-q�k����\����GB���q�y��+b��	6'0)e��"qb���n+�8h9���y���D.�m@,y��(�},����<�F����
�n0�ZM��\��OE8v�_����k��-�|��"1�c��/$>��,y>
E�i�'yE��d~��IZ�mA:�K/o��I��3O�����S�[��GaS�F]��c!Y2����fK������qf���G�-uu�A7��P����\������%���T_oo��YAn��
+��^�����/W7��L��M]0�j�w���IzI����K��w�'Q�;G(�H����f��P����y�Td�����#Z�Y%��e�s\#n��D1�~�������x������M����2�9����n��T�R���v<���1n����F�y����\�@�c��g�Z�Rw���rP���������bC�>-s�7����"���x$�����I���K�y�t�����g|����r���K�� x<��GL
V?�F�w���.M��d�f�{�R��z�YT��������/x��Z���x���C��%O����8�f	R����f{>.C�����k����dD�%b����m|j�X%���<R��E�<]�- ����F,�%����0��|�{�7��D�l?�#s��k"���2J��NE���C�r����dQ1�i����[�!o�qx����
�	���<m�R1XIRw2Ka�A��x�E$:a�X�ivfp����O\�~����!��d���*Iu y�Q&DepB����������c���NH�<d�H�9�:�~u%^Vd!�)�{\�h��P
G�M�S�Z�a��	��*��i{�}�����2k
k�����(�a��
����h���0��q������L�5��+l+���W�
�C?vo�
pa�����L`���m:��P���*-�T4zJ[(V��U/��_d�G<��`���y����NZ7�'��lfa�)}��?�]�(%_m�Y���Uy���^�t#!dSa��"��m7d����2^����b�s���@V��@�^�r�abi���-!M�(���S�ExkR���p��^:,�_�!��:>+�^���,�����~��2�����Di�Mi������������SK���_��������X��2������R������������?�v��q��v��g
KF�x����q���^A�x-]�����;{M�l�"�t����q��'��d���Zc����`!e�U8�I�0��%�&�Lln+AO�
��������H~i�K�P8����v�/��~�^���]���oW7��`�����@7Xz����R�o[!�Q�J�������� oB��	t����q�P�@��&p��������1���
*�#�A,���b�CU���m���v�����P��ER�������/|u��N���o�N�F-���F����F��@�S����_r�����/
Tg�k`��f1���c����W�l	���
�8����*��e�����U��^8��C�@Hl�_���o8��E���"GoBz#�r�o[�=]�O�PO�-������L�]�.�Y���<m��G��8�u�W���5�\}��������D�������udP#�lK���i�+���o��1�H�6k�n���
K7��/	�<����>j���j�2���|!��]���~��2�1F$qiV�����}�F�y�=b�2����8@\J��%���>I�2G�)�+���y`x0OW��x
��|�o�x���X�~�����\�#����N>����LLV�[�x�q�B��P��SL�Ma�C0���F��B�Nt��+CV���CKa�I���%���$s�{O��|�� ��7{_#���!/��6�� ��������(���\�c �B$�\g=,JbB��@�������x�%�QK���J5�C�����������^���I�R���,������.It����_�^I�l��k�nF�^wC7z+��E�n����;�{T_U�4��z�J	�J����&��Bw�ox�^U������p���p����$�d��%��u������tq�&�/�w�&Xq���2*�b���j�H1bqm�x��t��
|������>b�
�2>:�'����Z/��}"\�o���3��2"Q>Kx{)�N��������I��g�P�[�]A �pf�dn��M����{B?������n�!V'�����8���4���7-���Vh:6��F�mw�aC�m��$rNjT�&��$X��C�����������;z�k������O�^�Fl{��������Q7���q}����[�![���.�����^���W�F5�{���%�"B<a������ ��n�w=&��)D�a���UT��.�a������ !�]�������/�Ib���|U����MP��>�c���u�2g�#�	a;�]�b&���L���8 �����S[{����8X{^��<mO����K�s
���WOO�P��.F�>�������'y��+k�gu/}�'���%�{� S�`A�^�4�����v�	
tOU8�J����sT������z[��������e/��U�lsh��L��=D�]H��`g���E��O)��jK����US*�P���N��8�/<F����S�7�=����b�SW���!�WX��\�?D�+�%~�)`�<{���,$�/#V:�^l9�����g����},MK�B�������/�*���D����5��!�n���)��T�����7�������$�g�����m��C��(k�P�Z@9�)_6Q�2����I<��s��5TF�>c�N��P��+�t(��O�9#��������;ev�@��71���d'=>5���Wnu.��tq�����M�B|��)�#@�2`�0GX�^o
�1����[;�wB�?Q?Q��'�z��"��p�xM�AQ#�I}��}�&D��6`�xV�*���?���2E�>��N��;�#�0:�1��4g�@�?�����db�	c�����]�h���G^^L:��D�v��,v������3��te��Xm��2����qJ0�m#���#}��uQ���yS����lyQ���<��������v��}�w���Yms�$r[����:R3{��q%d~.���?�3.�
\��q�r������Y"�����<�v�c�B�Sd��M�6
T��io@<f5�r�����pt9]�Op|�	��w�br9��X�!N�t�"w��q�+1e@���YA��*����L
k��Mjr����?}V�S#e��C�U�/7��	���=!��R��S����,�����,�O/�{�'%�n*B�A�$������*hU /M�7����y\#W��>��������S�T�4$��pu�[j�(]?j^���=���W��L�Q%�:~�x	�-��Ms�oH5W��&�^�-���������;n��	�K�j!H��z�]�d@��uF�q�"���o7�hZ�E��8/O�+�!D�i���Lf��i�K�M�������j��hNu�|:�OZ4B��G_1���\��92�b��W������W:GRF
N���67�6uq��?���'X�����vy�q|��a�^���	}QHo�8JQ��M��S�������-rp�BM��;."�1_�E���[w���t���]�du�Oe����?J���B�-�B���QI��H���N�{�k��_��fS��\"E
(P����6��U��_�%r4��h c/�#0�u�r�-8�D�����]������a�z�x_�I�6����r
�C u��������`��r�3���e����|�}���@�A��4w�:�*�����o6�����5�h@�(w~%P?����l������Uk7����\�$3e����IB&mh��>���3!�������zb�n\�]z�o7=*�����+�vV�'K��Z�2xjx(�'��`��\�C�-�R-���Kh_JO�]������T5|]�0b-�iq���;X���R�)��0������=�IUD�p7W��IVyF e��!�iZ�����*~�o��};O<*���m���'3��,�y�a�G�qmMK�{�c��1�'Y�e@���0��YSU�������)���c�O m�[F���<n�t-��)���/��6���0�kx�&�[]9����K5�O����v����:�-7���K�W��/%��&I��dD���p��3�@A&gCM,49�4���9�m,E�#��{�w��b��Fm��.�nP�F8������M`�C�~��g���~=c��G
�.����H��}��dD���Z8@����!D�2�-�����<H��Y�;u@���7��C��-�>>p6�M�7p�_.�"���bc��Y�R��:,��D�>�]�'�>�ai��E�.�FzX����{��G�z�a]_�s�QR���4&�XI��M���L���E�����aC>�����j����8t��v�mc��<���#��������qJ�Yr������+�
��Z�"��k���h�����W�v�@���:��w�^<���}����KO�b�jK-:+�qK���I�������}��������u�
��{!�k����;c��m����=
��M.�����2
]���y�Pu�������I-d����`>�k���]���(D���$B����%���Ok��9�%�edq���[]��95Ac��] �t��RfU������j=���8����������S�rp�R���.�j��fs�	����d7_�i���S���3�jFt��M�pi��I���)��E<��os�BP�,~����9�&�)2)�����e�0��$vqPYV3'D��k���V�x��u��!�U{���B�nuk����2����l����;q��7�M���+E��H]n����������'�LB�ih7�~��_+����<�<����2�j��0�,�}�K�C���	altD7��9�'6��@qs��;�4G�"�\�+|D��A�L����_��w!�1����'����j������4��N���cv��+������i� �+
q:;��.>[Kq#��m��F�m��G4�i��F ��e�+���#�s6�w��gZx��a?#���b�v�:�E��3���h�y�,���V�q���G��uy���y��n.s���XH(�rg�bO?E���b:*�����K�
U���W�G�'�X��!��`��.�����D<N������.��"�]��������:$xjl��{�������b�no��n3�[��o-����i�B��F"V{�7�a}�c@����XOtU��~��=��������8a
qwC�Bl���}6�O�����k�6��,�G�-�"bL��]���k^�^m��N+��p�@��S��9�B�-||�h�cn����e�����s��[l1������*0IT+	=������Z�/�������!����N2������Z9s9��H%��&����/��=h��c����Km�����r�S�j�D�=rX6n�����yQ�n��|����=�����s����
pF�*pu�����k=��v�e��I=�8K���� Rb������l2j�M������@M7%p��n��^���5U:����������R��Z��K����qw������Q���Z��U��w"��!,��-���:K|\�0(�K��j�@��m���v��|)�o��y!�CT�M���"��D�9���]������������*"Q}<�n���MZ��KX��)�l�'-,!�;����D�qh�Y�]�s�=���N��cmv$}�||������X�$�W�y��C����^�-"M�A���t�k���?{�)�/�{�[�����w�z~��/�x.�����<�C��U�g�Z8M�QD��G�3��:����gx�������]�ia��3<���5KU�&W�X� ���=�}�x7j���V��}z����)6m��S�Sb��^���T��9@U���p1T�i|���q]���q���3�N/z�w^<��ey�s�v�GC�O;����~�1�*��K�8-�Y��6����:��t�n_*�������V0W���(�Ib�8G���=�in�*��!c�]�3G����g'#c����z�pa�E��vaz���z��mp�\_���{M�N�6e�-x��\�����n|[���=���Y��d����)�?4R{^&����d��$3�?��I����M�9v�����[l���:��Qvj�����N����sgO�e\�����BN1<O'����Dx�~j���u�T&��'�Bx���R�pOI;?u�R���(�h6D�����B�w����
�x;������~��H���XkwEt|�~c��A��,�2��P��Lo�����c�*��i���p,��������1�����������!�|��N��0��zTy�����BQb�����/�Y�pi�S��L�:L�:�*��D�](UDR6[�I���8H|�����=�7�H�y��"���G�G7�Sv7\�	�O���I%�N��Enj�&��{��
�8�������J��dYD��,�)���R��	f,�GB}r�[�������E����d����@s��dV	�����Mr""�,�6���������V����=+�i,\�&����	���c��7&q9�t"��R�h���'z5��=��hG��#M]�Y��W%��oww����Zs,�f�O��?��=�@������Wes��P7wvI���hiN��u(&�sf�L]5a������/��N��gj����d�7�]�����3��m�w�������)�ak"������
��7������6b�MP+A�h
�����N�.�':���e4���3���l[sg�$2���KK�)��r��mJ.�P����$�#��^b��;4o�ao"���$��=�
rvq�������s
 ��8�u1�x���,�J����z��"��T��0�Va5J���h�sh�a������Lu��H�$����x������~��U��[�	���el�����;L6�a���!����_=N
1�;��{�� ��-���Vk���_���?-S�N���KI� �S�"w��2#E
����5��������w�l-7:�]�@�@Z����+������"����ZWS�w7e�a�0���	��l�}�����H��0��&	G6 �������I� 
C3M�D�FN�D��K~?Q9I ��?uM��{g�AMq��7X��v��-
��M\[�:PG}bp�]�.G��#u�h����Y�@6p������Z �������0��%�[��7��&���=��4T�r���������zU���>Y 7g��2����B�s�R��af�~;��$I��D����@P2*��2w�r[�R�w��84�c&m-W��3
�jw���K) �����hiX >���F
x�F�X�h��2��^���#Q�KS>���A���-�6Zj4\m�eS�-�D�E�y�tSh���y�����&
R*�Q
m_��r��A��}]�����n�����f��S���4<���9Dz�)w�*�.��z���pdD>g�:����l/�g��(N�Q�^K3����v��]�s���	���1��c��O�/d\�$��.n�F��,R�K)���Y�,T�T�|��6������!E��)N�-�`[�r����r�����GW����+����_���4�����i��6
�^t�����jA����!XX����O�1�*r,���a�=�vm�	������FJ����@-*3�2*�S��_��v����Q@f�������%�q�dZ����D�@���P�EE�F�i�����P06l�W�p����(0>- ��d�1�����,��G�<Z��a������/8��P/���!�%
+_���������&�Yo7��G��j
������:7�"8?��ax�W��������C���DP�� �o���@Y��������������
���n�fYu�7O���+$�
��������E|{b`b�bdI��"��K,�A��=~��X ���0x.�\��g���z��-�������7�@�;��v����mN�����\V��-��gz�=�0��]�rn�����aK���+��C�O�E��������U�+x�3�5,#�/\�������a�Xn7��m���	{��CO��0�.�7����r�9��g�j��M�V������WG6x����G2�iQ�n�R	�{��-����I�~A�}�����B��zQ��A��YG�+�Y�"����B��n�$�d��S;V�������&4�J�~���U�%7	��/�d�^
|�cw�E��
���E0��
���p�!5����b��g2bO�)|��Un�H�Z��6��w��_��
�8�&�r�	$�����\@Se�S	��F���c� Q�d��g7�a��+���8����$��s������[r�v8[����k'��r�Q]t����(���o���1{MF������s!����f	�M��J��m*��>� �%�{�x�w�h���
o�-�_������43�m�����8�[�����
���P&����qnn~\��"W,����@I8���%6��b���������2o��*��\�������9����Y)���
�p�I4@����'�S��n*�2�cO�MR��,{3$���������)��2�e?�n�e���$b��+�+,��_L:�W����i�N�#!:��#���4�)3.\/v�-r�#�/`9o���{_�������`�<c����a��8^}�
8	��-����I��H�?i���C%�z�mu( ���2_<�/r�A8���A�6D����rl��D)����Bnxe�-�7x�Fq�m�?���{<����]|���^+J;m�������C�=Sz���$���O�^���Gz���!<�Irz��x�).��,��B�X�2���U�@��_9�����S�����=>@<��V��_���c�Y�1���e^v�9Y�/��^���tI���%G�KJ<e���F��U
4�����-�Kf2�B��^j���!3'�*
�<����5�M�E�^ui��!4,�Ys�@`G�<%��G��q�������#�F�-�X��F�����o����k����m��m�PZ3����M������_�����6�ce| ���D�
~�!$�z�R������;l'Y��w���n�-0x�5��>or�Ll%S����#�X��	��D�2�Z��8jqo�Q�����p�GxKg�yY�j?�$���6��F������r��^���6��
��{U��[�����jC�g�'F��6�[����C����?��bW��0��D����J���6�W�s���V�z
�;@�@��:|A�h7���(����o�:�o��=���D��[�����'����00����E�]�������.�M���}#�r�Aj�����t�����)"�c���e�"q]hx��&Gn�x���������!o�B'�A�Cd:z�~�Z�
���Y��w��9L(`����^���)��j����g�V{|�)�����ZX���f!T�V�T�8�u.Ij���#*���������.�_5��c��|��E)��%���[�x�U�q�f?P����������|V���\�8��>���>wr���J�>9���6��[mN�r�n������.u�k�@�>�kl�(0��Q7��T�Q�o�k4o��o�E����o��n���`�NBo����0Or{m���
K,�����$ ���K*������Vp�U�����S'���O�k�d�~�����������%p�|�p�����)�Az��Y�����M]T�|BO�����@Vgl��
f6g'S����m���7p�������ZH�uJvY3�X=TV)��J{�O�@V��f���0������6�<�o����^����-��66��(,�8������H;o�b�:>
%&�iT���q�T��i�\���nO��8��bN��s�]Fn�}���q�2P�7���"�+b��_���owb�����RF�/�����:&	��I&�R;�$x�(�a+����?3��_9�	L�~�m�����40W�aWM�
�
]?��2>�KA�v�X-	&�H8��+
�J�@���|U�/1�$��4����J
 j����|<�z4���d��^�8��l�d�'����,��he]�a�����U�#T��e�d����^ivG?xXI��D��9K
��N��g��
�G:4����T�^�Bv),n������{!o���z��������.����E�s���6���=z�kO3�(�Ej�E�{���/7�������I��[O��U.���
^�s�1l������7�����������+��f��F�j��q��<���~L���c�u�T��i$�KB �pD�J��Z��H�0;�Ew���Zf�� ��"5g$�\��/.��D�2[�M�);����O�oK���5�g���e�.���R8[��+n�����'��"�),����emv��/�e�!�
 �&N��2ad����@d[F�)Rmnc�T�
����i���Y<}�����������+������8;2!��.��)g�},�/�������FB��kt�(SU2��#r��^��_���3����\}�&�,�F�7#p����	u���z�^�%1����!��XT���?�~��'��@gn���\���@�����2�_�e����EKD���������G�N�7�m(�~��g������=Y�YP��y���������XXnlzx#����L���������'@-
��n?8��T�����R~L�r�M7P:�'�d\��z�/��G���#P$�������=A��[����cvF�Vo�9.�3S��e�5�ZWp}���h�g��)0��<�*'p�f���@:Z�RSV�};�/���Eu��>c�<�Y<W��7�i�'�@�P%����fO^Q%Q�[U�W��AiN]�r
��r:;V3`HwV����k���^K	R�t����:5�rt(��{O�������D���*�+
�����w�0�����u�K�?�[d��YA�=��t=����C;�m�Sp�u[0Q��i/~���L�).|q�����e��r�HL�7�d���2�Xk��a���e��W?4$G��B-	a��X��H���k:�g�d��z����R�*���2��sey����Y�F�V�G.(>�E]��
�T]�:A&��	Z��C,�.K��\��|P�M������V�J������Ex���2<>�����b���)g�%�9v��BB�o�G.��SuwdX�+?�s���^�+z��2�����Fxf�C�Wr��
<*9�-0m����^(
|�y5��\��W��������3��e�>q��Riq>���T����dbLv��o��Y�r-R8g�x���Vn����ulx	�|���z��h�b��'��o������p����sB��U���@drf1eP�T���]��=`���-����f�;ZU���+�D_dw�Y������U��h�o(���%{����Q��=	�3A�;���W,��p�;W?�K��X8�J`����vV���Q>GGB�E�J�i��0D�D�Ap|����P�i7D8�E��5������D�����������q�#���	�gx����F} ������h����pR�S�!.p���^�v���p�h��Z��8�������j#\Z�������F50�������/�d��ybu���%��r���K+G�� 4�R�������U-*��c���_<���R�%s~�-U����������q�s)��D�f�NTb6P�g�;[�O�a���;�f������+�������]������r�6:AK&�y�q���I���|���N����x����5��0u�#�%"�m](�#�6���<�_��f3�mN�MT]p�G��O�9W`��nn��J��L!�a��J�X�;�Ch�`c6���P�B���&��@_o��
������#����g���Gk��M����L^��m��yn����Y6��u�C:F����a��cvt`i2f�����!>P+{�����D���|����������p��0-�,�c��E�7�\�"v,O��ivD\�]�-j�="�*��6���2wwN����6=�����k���G��5�\����b��m�^(���T�r
�d���5�����`��}S�8a9�>g����J6?�V��$����GW6h?\���8��cO�v��;���u�sH!�O��
��S^B�"��h2�$-]�&��&��2�np�z*�g��y�Z���Hi������m~�Bt��=�T�����L�X��?E��u+w�B�����M�E��
mwk2��/�$���p87�#�*�.}���j��V�6:�����3�������NW�i�~�;IXZ�>�Qp�m|��b�e�Y"���7*�
[N1��+�{��_5!��h�dP7���_�q�W���U/��Ev9O���/]�~�t0��/uR�0��'8g�1*�	��p'�o��<X�(�XzQ>�'��R�f�f��8n5!0.�!N*Vz�����)��!�4I������c$X,���RTAOg�Vd�?o������H���y��oC>IWQ+:�����
�?4e�3L�3�����u,_v�n�$g�DS;�;��)��	N�����_�<��}������`�t��:���X��q'���#���.g�9��`c"���DU���\?~�(����q�v%�+k�e*�p�1���$zA.$��}�`�0��������}��H��y����\��"j.X|���\!���L'M|;��hz���R�`�}_F]�\�d�6��`d;,�����3�����Y]��IYkJq����m%�d����|���a: *OG7����@��*�^� �V�g6�H���Q$����|��2|�V�>T�A\��s��l���n��#7co��R��\g����1%	U����6������
�O�<�h7Q��^���~��������4���	{9��)I5��%����WV�i����\y�1�j~�"=�������#u��x�9 ��s�2`q��@���,H�:�#a���z��g�"��&��$iEF�k�+��r��1P����2��"z���W�h���1&����RWBv$d3�P���3�����fC��f�������lT1�-�)l&����AA��$�����9G�p>/e.���M^S��S��������]L:�Sm�gL�#9�/��.� � �8��t���$��3�V�g����u$�WN<�YF,D����:�6��g`H��\�=G=�b��m������Z���t&`-��;�:o5�r��W/�s}!ey�"��~�k}�-�����U�}��x���F����[�"�/��p���}��&�L�'w�9�%���!O��PSx]��� W6��m�PI8�m9	�k.=����`�s#��_�-S���cw�������=��&���I't��(��hc����3����:�1]}2�DmS�M���GB�{�
�ux�G�/h�2�w
?��k����5\����z�Ss�v�<��t���y|����<��%�YD=��Q5��G&�{Z'�M#��w����8n\;��9H)J;��s�c�R����l�C�b�=���vd���X�y��3>o��a��Q���o��'2r���b6������D��"+�wT	�LE5}�msS�dY�x�D�'�#=L�l�\S1v����N���P�����]�t���4]��ZN*�[4���1�I�\��7�/���;ch�t���D|����&_`��h����
���K�"[��[�c�
p�������#��$��
���9�I������jy�"}� ���1�����cT�3&_�	t�)h�@7���|������^�E0g��ic���<�U�����d!�`��k%I0[����]�*	��d��0��8K�6��s��Js(r��"�����JO�FQ���yX���y�c�R��Hm���V���c�p�>��w�>��:�^��^�Y�����2YP�?�4�V-��PM�����������[O�qK��
u9S�w�xY$5�0�o�7��Y�"<r���Y���7:�u�4q����~t���R��^�T����x^�%�P��P%Q�-F����rCV�i����8
o��)���q�EB d����&��������}�#7
����*��X(S6]-���
�I���&�~��+h��d�I1�k��>zZ�N�NEPs���XF��h�p>k�K�� �����~�k�j�?2[���!�����
>o�������>��D����n,w������"��Q9�-7C��q<�	M�~w>�[���A��3�A�f�ks�b&0s���X0
@X��l����V��C�G
��)CJ�i0�q��)1����n�����1UU"q[����
^C���Az#Kbk5�S��9<o&���p*����y����jwpa2
G��!�@��M��m�%]�n�O;,�����j�(��#���!m�8�I��p���A&&e�*�#��#���N��bUf�']s�>fZ
�c��,	$Y�H2������E��YN�x�:(GS'���<�������������cM9Ry�\��c�]]Z��t.���p��gvm�}��6
pK�����Q
���c���8z@bl��c���C�Q������=W>&�8�S,�u����8?�2W����*a��K��V���5�"�Y	��!	>�?&�����E^�0���7�wIs���hm��]E�a_����j.��D��JD��������[��c�A��$�m�����O���i��]��$�;^vHo�wj.Q�,.�������l��+
������V��s�$�W�����4\�jvZBi��g�R���U. l�v��|�O�8k�O����E����=��F�~iz��������'H�fP���rl+�$���P��;Iv1�����hsM�c�x�>'l�D�,�)��-y1�_��<^��{7]jf�=��+<��zG���"H��"nC��
�������0������i.F�5��)�
��/4[�b8M��`_=��Xm��k�B1�M�\�D�0�>b��~U\�.0�[J�j�]���C@��k-�"����=�Q�T�|��(�]����<���9I��;��.)���/k���k�,���n#0����'�9J�b5S�yE�������:�����x�|�X��`
^���E�=/��%��s���&��?����>1���'���cH$~��v��lk��
�-�����C
b��1�W��m�z��z��]V�N�xp��K���������iy��FP&���m>������2��?6c"h�[���s�B_;����*A�UF�;a�\���Z|�K|a���������B�����&���E0����!�w��*�@�Y�?K��s�Q��5�R�vq�������2��~i��u����6<sg�F�a�������J�pu}�+Z���@��ZP/�V�(y�h�m������j2��T��3%��`��H�� >���4�2VG5+�U��L��_���=&X�'�hE��z��5�0����9A\�$V�i�����h���E�q
p�m�mA�����>I�m�%"�����}`��t�G;��]�����b��z���N+!���.��l����,#w��.���&aJ&�V�$�JY���$�O����S���r�.�������@6g%��;������N��>I���r����4k�y=4�k�UV��{y{n���������@V��H�e�(Cn�L��������s�8x"Y�4���}8������>j�u�F�8Ci�Ic���F�'4�zJ5
�i�g����6C��$�@��c��pXp��=U<�����y���>�(<�$q�������5'��>e����%�4�}|�y����r�Q�$����4������Q���n,�d�} ��?aM���,QV$f(L��"��X�h���j2��	]l\�E��^U�?�d���v�	������!���f�	�QB�,�O#CdE����-x�J#|��>�1���$4�E�(��6�����1b=���h��z!9b6Y����7����)F�#��A����6�4����v�w����q�*yW(�����7�f�7��ei���4@6O��<[����H�8iy����1�>��%}�������CP8��?��_;�S�Cqr��BV48JXF/V���������cL����iJ�p���_���#�
�2����Q����y�Hh!�f;G�3~���R>Xg
�s/�����I��@n\�#�;�G�����:����g�k_\.�H2������m��/���c���y	��'G6%�����0m�<���>�J-�(Cv�����!1f&���������G�a��mh�D��/�����*i�L1�!��M�]X������M&g�����N���m\>oui|��g}$L��h��5
��<�<6�?}��Uj��v�g�L;G��[�����S�r�����J�Yb���<��S���k����$>�����/(���HZ��f�h1�s�SKu�V3��L,����K�U%'�`m�hw��c�/Q���Z�d&���4��4�k��0^��
��[to��LxZ=�.�x~��i�x{�e� ���y�6~�����>��_���|������}u51\n������+�c���"V���kwCfhBr��y���n����*xv��B��CP#lcR���G�}�s\����=U��inn��5�����Wd�-��itW��S���W/S����=l_��W8���~�4hl�'��%�u�5���u�k�[�N0��23xQ�%�JZl�.?O��K��p���4r](}��=��$?����j|Q�Y_��������YQ�&���ztj��}c���[t�7k�^�X��\~��8��5c]+��[zL����e����D��78�2!:��9&��c����q8��]E���9����c����hO�7�4.�x:�ol�A$7S�[a7�y%�s����?���\X�����>�����
�u6��5�Q�z�bex�(��t��j���&�!g������Q�5n�����
����X�MkC)i����-�K*�A$�=�*x���50��!�����;�aZ�
$-��_��hg$]J�"�y�������	�\h�0�����B_��`9���ax��3���]�����l������`]����'�#�0!�(3��=Lu�,$TO��.���Zf���X��4J���-������u��q%>Q|������q������A���o���F��1�����<+��&S�5��M�X�5��j�J���A�������P
�A�38�l�K!-����Z�1��M[j��X��SU-���H����j	7n��8������4[���X, �������K~�/q�X��������
�>�&�M>s@��1.�e�P�a�MU�.tS\z"c����W6��o�K���GGe~��nB�>^`z��Z��g�\������j�� $���%B�����q/����F���v�%�q���qyy���y�L�\-���������9[M4�.��Kt������/�{��h�����2�K����a�6(��4����7A�b�b��l��T��Y�y��\t	� +��:�V�#�2;�"�ckd���T�o�'
�*DM�x�����g�::�/#H�:��r&�����%D��J�i��j�������H�;l+h���
�����]��s�����F�)H�.m��#z�}��� -���I�q�Nqj��*�;��u��O����r�<+j}����zU.#��v�����Z~w"u��r"���BL��C)+D.�
=�XzzlS4md�03��"�
��khE�c�`�S%��aL��*�2�wa
��dQ$d]I���>k��"�k~Eu/B���5�f����\�������kR|���n����b,D�1���ZJ:7�9sJ���Q��x�+E�LI�'��R����z���:��a]�2�0�@��m��6�:M4(�8�rL���{���S�U5�� �����<��0C��pTW�\~mmj�_8�C�P�N
�w�/Z
/`��^�~y�g�]��E�����j���~��[�86�����	�,)��YE�����J�%��+�=�e�F�����
>��u����t�}�����=]�Y�?>a�.�"�����J������'���n?�8O|f%�,����!7m�Lo�������;(> M�d�J���^�;|�`��a���W��g�����g�q��rA���4�N�(�6�r]h�US���
������8G��CaJ�����Z����/��ON�R<G(���o�q���f|�J<�h�P��8-���9�f��A1��$�=F��"28�H�o���������������2� ��&:�6��j�B���c>l^�)/���?��V�&qT0m�����G�]������x��zXh'��)/I��8�.�W(:/�q�������f����:�Cm���m����5L���yF��v3(���^C)O�r�
��d-�4���N�x��Rh���~ �w�P���g4���w�����E�w)f����4qT6�Z[��?��a7�������r��F{�fN���J�ml�8;�&�''N:p=�J�}
�Fn�=+$�����9[7����	rQ{��������?���HR�R�6|]|���B�g������N�I�x��&q6�^Zo��s��[����Wo!�%�m ���u�����m�=��N�"lcu��?������Z/@�2m*U�����*~1R���6����H�
��}U$\�6��f�������j[Xvcc����:�=P�\�hD�A��bd�d����w�����d�9Q�����9+&��E*��<���5ie��yM��5�s�!GB=M+:��M������#y>n\+��?h�*%�6lw��4<�p@+��
�������U)�JiL����{�/��}w&-����t�}���N`���i
�P������y����:�c���9
�����!��a��%7P��z�IR�A,^�"k�N�����.���6���������f�9Q7��iX�9N������8�x���h�����-xq~&[���6=	��d���y����"�Sg	�x�����IO�������6��
6	����� =Dd�0������u��1qn���>E�R�(�e�n
��JAj�Z�S�Q_����
r���z���h����^���I���*C�+��%�2kB����%u�����`q����Q�C[���[�� -�vUu�-����I��Z'o�w��S���Z�;�u
V��u0�W��QG7�zs��8]]��N��v_7�W��p`�VF��eh:"���2!�������5l��c�H	o�����{�a6p������@y�`%��W�P��	��5����V�� 1���`������w�v: 5k��i�Q#Ag6�{���d`��h��?���b#�a����+��h�.3�E^�H~9P'`<��U\@��v@2<m;��A^�{��q��t�'�[�:o�����C������M�|_@U�a�Kv�X�v�6�H\B~)���\Hi�+�"�`�������I8=��sH�]�6����6����@�Q������l�WQ�m3f��t�_h�<�s@���)�9�*��I1�6�e6��Y����0������`�0�*p��!������'B�(G�d��I���.;�7����={2�=��1�:�oz8��Ug�m��e�����!��Z��w������|`U�=��+)�Yl���:�7�������Q3���<�
��<��D�H��7�A�o9�������x\vu�C��b`���<���v��3�������wl�����h����]��_��Q��{��'iC���za�����	U��hx��������Sl9���q������\����9�L���AspxL�	@��ll��b�('��Xy�<
�$^��o5��������}[}��'$�'��,	Y�>�����|�_0�����n������O������������c����H�F~�%�����		�A��TC�N�r��&\�������s=~h��H�\��
��}�	��f����x6��X\�7�w����$Y�MUa�x�mmD18�B�\�b��v�kf�G;:x����.#~��H.��"����>u���'��|9���+�O����x��*�2�9���6�A������~��IQ��G���!^��DD���d."��������w�� �b�|��
�b�_�����>���C��{�l�]2�8E�Z���H`��%y��X�bq��Y��*���g�bm��V��fS
%��"�����v\��_�6���:�zf<��k�����	40^VeN2%T�5����+o�K�3��B���a����������7]�M�����1z��.Np����E��UQ-�<.W��N)awy����ICV���U6��1�����t���?kJ�LV���c��oF�%���M�w����#M���,�}]t�|�~!��#�?�1H��4D���d�Z1���~�U\$�=���K�pq�"8[r�����(,DZ�f%��,A�ed����h�������O��p���1�vH01����t��f9=�a$�8�P�Q&����;���~���o��-����(��&�=A-Q�/$�c�I
I~s��M�wm����w5����r�<�`1�MN����x��(��T*��H�V��tS��\�R�!�`
z��I�/c[/3��������(�
�o����|L'A`Pq���>�����dV�
X���4U�Lmc��>&��	���r>Wq���r���������������MM��Ce�o��K=!>>��:�z=���p2�b=A(�S�&'�������l�@�SI�{���[ou��u8($�eSt��$�xI1�$�,h�J������_5d��in����2���D{�1�<}���H�!(�,�@B��_p��<�����8�W���B$�#�l�F4[o�m�I�m�Xf�[�����.~���������&�V�S�^�����`2uR�����e�Z��r)��o����*!����O�����g��;�����D��\��r6(�&i��J��g�w
������O�rz��^I��?GJ��B�Y2Hu����&�u�%]��N�j����Q�{��9�!e��^��	q&!0����j����p�U�}Z��hC��X�����EG�W��L����_*��)jb�:\�Tkbr
��sT�	��PZmj�����Aj�Z�l`�!	x�A����N�y��,�� ���V9���#Y;_�
Y`�����E�q�K�~`��R������~��|�j4:�4Q�U����u��b�k	g����L���@�2:��F:`Y��o&�����OD\6k���Z��O�r�l���)�a��hTZT	+{���c
zb����S��C%�+'<�O[�C
^�����e��j���A�_�� Za��*bI|���1}r��z�%ZNaS����o�bqG�VL�a|�T��:vCJ�/z���"W�7��pi����U&���dI&���vU�Y�2�i���M������?u��;w7f!��J�v��un����4�*�������(k��~�P>�|�JI�-���/%�x$������h/<����P���=C:1*p�U>>�t��������{���jc�{R7X��������+�vUZ�:nE�Q{L��i�� �
Bg������/��_������������_�1���C�|u����u���7��~
j
����h�g�������'OjhJhBDpn�0���L�C�	B3��h�����e&�����D$Q*cs�<��'��T'xjW7�o��:������U�	C���S���-e��(�����?��v%i���J
�Btp���]�W�Q�jq�ct��#8���#%��e�[���u)���nZ��`��Xt-w0%��B�N	���y�w+a���d�69����]���%q\�����M�����J�l$>����3/����2�����F�#��.��9�*'������_�mO���gk������M��w+�{��$c8��]�
�|�f�"��������*�U+ +��ET��I�}*?
6���U���V����a�
��#+=���$*Mr}M��K���[���f�]R|q�(����!AA���9�%�u�b�u��P�%��D�i�6��.��Wd�VkJ�&���A���2X��C^�m>c"�,�����jqB�|�M+S�ow]W���V0��u�!�G{���^Q{E���]��n��_�O�����NC�Wv����O�/�X�4�]���>�[F�pK�����n3i�|�fU������h%�vm��	���bZ��Y�r)O�y�6�}s��\�(�A�������p�(��e�o�m*_]������}{��x�}D�-�+����:�����
/���-X!�\W��F�JW�F_i6��h����o�\�����}$j��	�k~$
 ��~�A��3��T��8�2
U����)���:�,���I���<�z�_���o"
�&]����?$�7"-���1V #%+�3�������:%��4��	-�C��X"4���P>�����������
w�$�o4W���Uj#�e��VR��z�Y��
l��bd�T��j5x�������cgR�a�m���r�WB��!�u�H�*K�S_�E�����~�v<�����n>���IDd��i'�$����Z�H�J����a\IrH���E����kz��f/��-����w>Ju�X�h���H*H��*8M ��5����|\
��rr�0k�8`>�p%��O������3�;�
���c��Z�W�g�j!���w�k����v��r�\[>�� ���0���+�-�C�Fyh"�"p)��eAjV�	�������H���2X\U����������x��_����:�9��}ES�>q��U�(��G���a��s3������z�o] IW���]����U���G�+i��c!~�+)fu~m�3b~���V3oWU�[�L��5�w�"F�^4"����6�`9�!$P\�`Pe>l��2)���0Q-��g��q��z�3(M�6��]�/d���"�Ke�/W��l�a��s����W7?�K�����
�1�E-\fl�*S�fBH}Zj}ZQ�����d�u[ix��	V!����z*�h��[�q���:�����K�pX-��}�����{���ky���3XXC�dA4�,M��v���*�M��/j���	U*�`��k��H�*�NX��]���Z.���Au���v������o[������rk�&zHX��<im��#�A������W��aj��hn�9Z�)>���%���*i�
��6�L<^��h}WH������O�������]�:��J�
a���k�\+�tZ���G|��w��)�9��,Y��h�"�A@�����n���q:�j�5�������}�b�Be>�gl�uI�����*u'�W���:���w��bCj�
l�����N��o
@4{t��������P��:(�M����P���!bF�Z�H^�
�{�%;�s�[��=D�9�	�*���NaWA_Ey%��������Cb��B����H�`I�)�4����QMX�>/uGB���!�������*e��'6�Y��DW�Y$��l������O����Km�I1�`oo�W���L�L�9_w�<��=5������d��%G�>�.�Z�u�(W���y�P�����IZ�	^���+u���e:�H�]��� .`����������l���������k$����Qi���w85W_c��I`����n:�j_��N���\'D�XN�Fm��)�����a��fW_}T/
����mIR�0[	rs�6����M���7dZ~P$�F�h��\@�S����q��=i6��\X\'���ee�UbPuz,+�������]Pp���)��:�#
��M�k3��������y��m��o'�Z�Y���������t{�U�2h�ODB�������C:�g�d�z~d���2��'�;S.���:�����ns�+VY�)����*��V�YlUp�M�"��?b�g"9��i�j�a�����6��ab�������~a��D���W���<�XO���))_����{�%�+�?]�!a�o+V��yX��3+|�m�o��#����{�H����Q��&��C������C_|i�U����+�z�H��%����ow��:s� 
�}xd������]����MV�~~�����@���Ux��^h%�\�KDV/���A�1y3b!��N+v(�E^��x�M��Y���"m�c\��UA������4�O��{�o�%Y���C^W�R���4_g�������M�nm,)�l�R���W�X}�A�o��gOm..��R��UJ�����P���/,����I�����"��L+]����������~�����w~#�����2���Z7AVwjvUw�J��POs�� c�����Y<�c��]���
�a�����������)�C�-�.N����J�/:�����L�}�P�Z&�n���J���5?Y1�+���|���~�Z�cH����.���B�fMk|m~E���\!������U���fB�2�.5@#i
e���dU��~��y��[�������k��*��kNv�W/����V_����t(��x
{�nM�}�)P|��b���
�����[�J���
	�<��7���mH2Zb9��1���Kl�P<�!�X��U�o�1O�T�����w_n��N�GM�VR�2tr�G����]����E0����0���E���0�����(!J�,���U0URT8�;�V�����:�/e���	�H����(������Fq87>�����f���LN��;<�������]f"��x��)�=f8�-�`Wola��R>��s�]�N���?�M&��|�������q�Y�|�4>�'w��������������y��v�l�a�������XW�.�ne�,��^��=_Fy���;��s\���]>�{i"�)1'���'�/�B�#U���N�������1����n>P��Y�G,�~�$��h���^/�������1�I����Ap��{�>�%H����r�/#�/Ic���6���ws��t�aF����`�/C�L���x������29a����+������"��N��6�<�b+=�:8��2q8H�t�N0�9��q��c����x��"��|������2/����?q�!�+���P�v/��B�ph4�|�>\Q\u"�:x���?Qg�[������N�8��X��g���2���x�=�����P�D�`����m*W)�s���J-����X�1�U_�V��9sS@�Wr�z,�H���fu�&�����2�V
��W�0�O-:;�QM�@9�������;�5���Y4�q-FS-�P��o^�!^�����T�]{X�pB>p�����qt��b���=Ko�lnW	1��v����m[�u`9����S`H�I����3���t��"�n'���(�����Jzx'���V�C��Y��������$d��s.�U�\��$i
>����8_��*b�yD$������N��ef �^��;�)����Fg7c�[���?�'o��
O�|��g��f��!��&�a�R=�jT~G+��f!��m.�NA�U��L��0.��4V+��x���:tu*o�����r�Dck��@P��o����O�m����	-��p����WGd�H�ng��_�wz�i��/O�!DN�MI�@,s<�ZED�J;���0oC�	���]���3B6F��g���;��^rO��R�\�_������k����d���dr'�!,f2���R:��p��b�r�m���x�MW9���K��
���c��� }.������;�0�)�T���������9VP_���.-�B����>�|�fB($�}
�J�8�C��c���?�5+���+�E�3�y<����"��U
�uG	�a�JJ*U�4�"����"�V�:��Y2LI��NX:9���.p|�A�.��>�Y���b��U&<c�m��)����xp\�����5-��)�����tR���^�bB�!"1��7[���%5C���w����G����o��q�Y�{]�%e�htN)���W)�n�����z������
L_�+
2��k�y�u��������k������/�K����~fU�o
g�s�X���,��!.��{����/�Y��CE��xxwQ�B����@���]�q�s���j���n@k���}��(��z^��3z53��9W
!��V��z�*0������-���(�"�`M����/R��~�#3S��??�a�`�P�>�>��,U�+��*c?��O�`>�lB�(N����h�.X�=���f4��)G���g>�a�A2�^�-����~����\��Y�J�%��_��"��2@�)�7|�W����}Q#K��5��b�:>��`���&��qT!���T��fl2M}m2��\������t�7s-�H���c^�;mj�r���\^_���p<
z��`@:���0}.��?4����=E,������s���"��o6Ry��+]ogx;�c����]�&*�����[�#���t�����z�7�wx�yxiR�z���-�ix���%�6�B��|������O�~� f)mz��	��?u� �_j.�[.�t/C�����������f�5;���2��;�����si��"*�K���	�g����Em�`H�dc���G�2B���~��q�gt�F�B���U�B�Ngi *d�y�GP_���s��1��5����0n��%�����[ ��=����y�����nL	�ZD�]���d�P:���_a�|?84��>��"�.�HA�x��8���
�6f�4 �n�����0��N2��P=w?�����h��!���@\\�8�`���j�����|$������H+8���S�j1���>O�a]��hdV�����	+�"��9��% tN���j�jm��s�����p��Z�����9y���&Ed{i��?�������Q8�~���V�� o����izD�D[XNJ����_�����g��z�����N�oSXi��T ��]��8�D����&�w79EM(B>e;�����N"���r��
�B�~~�39�f ���O��f$�+����:����L�\��&W~�g��KV�� ���cS���s��C���3��=�\�8�K�Y9,�H�7�&+{s�%��T������T�{�2v"
u5%a�|.�e2H��Yp�WfKGv7����8�e�,b�t�����*�Q����Zs^�����FsZs�Y
H���
����D�j~���(�h�y���]�D��*�9����o���������������(7O��'j�4?C��S���~�)�Zv�hs�K���
�u�jk��$#��i��"X�Wkw�C��d��D.cCg#ll�{*���"�"h)tDR�#�]o9�{�(A����R�v��}�L8eO����B&�z����R��A�Ud�L���<��9���)5!�J1�)}�i'��7������V^��Z���1F�`�rnW
�[������f�`q��n-��q�����x�f�n&�����&C����v�J��]b��k2g�u4k �o�>V��#�n(����J;5��C�����S~@|����d���`��y�r4Nb�7	F=c�j@P��-�����&�J��&�K
=�5�P������6,�����!H�����g?#�Z���!�8��+�3��%q��qcXP�4"�\f��2�yv�����1�>���f�$����=yE �RH�(�$%�S��zq����'����(j��t�t92�-w�;<g~���pJ��i@����9�)���a-^��g&g^��f�~g��%��1^�TDx��l�GiI���"��b�^�g��6��v�h�*0{���&7si�%�{`�B���r���6j�Rz���iW���=m�� ��[�)o�����iZ��^9x[Em-L�h�DH��7op"r�~��#����������mP��V�����g�vu1�+�p_H��o��h�������@�g�j}Z�S/��Y^���p�]g7������u\�S.����;^��V,������rz��Vc�P,E��<����K�W�)'����V���G��W�&��%����e��zP�/�Es���ki��}Xr���	c�����0,��6>����(�s�������a���\*�5/O�'����@`U��Q���0�Ps9K�/G��l��r	 ����G0X=j�x8��%���Q��{��x��s�z�Yt�j�,J�L�-�;�#�ixB�]���������=�$����e���^��]V	�����"[>��G�7��y��-�k��V�.�y�*��qpW�<�V��,,O�^<l�3uqVl��}�6���1�D �r@��u��B��[N��[�>��;�[��?pE��,�~y~���i*Q&�r��@����d`��bR��K:o��������N�x�Yd��oR��
c\e�c;�bN���	�W9
�l}�|)���If���p\�������r*�y6�>�
�	Q( J'�����w�o:���O�e����e��a9������#��0b}iu�����2<5�����o1��Z��}����A��
�8��A/��(��F����#���� �����%�����6�K��;TV�s����8{|W����.�����������q�E��Q	����BF,2�������.c��~�������$�@�{.,v����j��|����D5���C se��y�o�zZ����8�L��|QM8Dr�[RU��� d��-~mw_lu�._���P9]��>�T��A� ���>���v#x��
_���!��s���SG���E��):*ai�	e���"��??��PK�c���H!�����'��JS�l�����5G4n�t��!H����.CN$�"�*\��e]���.&_KO,^	8-XHc�j�-�o��<]���_�URO,�?$��C!���^���.�U�0vF���DBT�WI�������1%B/������aDVe.�g���1���F�_�������a�-�5� ��	��T�?{_e��`r��$�gtpM��Nw'0z���1�PL�6]��i!/�3�v1>��������\w�-s�����]2��h���;{�T�t�m&������%�S�D����;����z�����[���h�a�a�>��axy���Y�w�)~:3��p��\���^h.�n�x���l�8��p��M{nh��GXpq?7�*6����c��d����������������`�QhoC}����y����$.��s�"��%��@s.�'K�D�&�u��G�~04~�~H���Dn�)8g.�s��=��2Co�#��B���$��2��R��R�%��S�-x~!��������������mDT������?>����C�&t�����\�6e~������,�����\��_�?����Ev�_���B��S���(2�*�;�������4B������v�J���R>6������k��;���I]�P)��^5C/�'=?kAq��b�O@�����C�An� �e������~{�T�K��.����j��
�~��Yh����c����>_n6�j��P�
���>O�2R����-��'_3�����7����z���?T��t$]0��0��� ��,��?��\�A��B�YA�nN/Q������`o;��O�e�s(�0{�F���QS��q���_�����#o��9�S���9A�j���*z��r��F�X�_�DLBc�}�������<�#s���B.�/��tp\4�sY��;p�gl7 h!(�Gt�.���%�3�9�K���D���qP����������|���:#�Wf	_����r�pqs�PB8N[��h��Bycl��W�����7yA(c�& ��0����0:B����{T�t���"������u������s�"A|.�"��\�`�@��FZ|�x��u�	���y���p:��Q����p��
�%�����{+xd����.A���;��tZ��',O6�Y����M0��fo6�D��a|�"�����u�^f$����J�����W��m����(��{��Wkdt���x�i^}=���oVF&�/�������F/��U{�������L�*�/�T�u�����,e�����y��������J��:����P� �LK����I5�������X�J,`���
�zt�������%?_}���o�\��������y���t_��`_�����:��P�������[,�3�0��c�WF���c��z��a�`�1��`,�3��(��;����]����%�I�Y�h"�g
���}��C�����X�E�����\�d��@7�bD�]-A7Wo
������ ��A�6�g���&���������n��M/q.}$�1��=e��V��\�+xl����/��d��u�an�����H~�����i���t�z�n{����4�("�W�p�
vn3�i���U#���tV��.��iLk��V�{="��NRE�e�)���m2�����
���BW�cuW�	��L�UT��wHt�"h�`��c��".��-��+��GF�f�m�,��U�����;���P��0�qa�&-���hy�b���<�*��M�,�6g� �a~��I~����Q��e���nWP��]���=Ln�M\�a�H�z��;`��P-��Ql&V�C�����~�.�M�t���\Y�R����vu��8Cm��I
��
��1�j�r!�t��7	#cu� �Z�\�)����15�������T4�f��>iT7�nw��mM������8D�l@��P�N��9p�p��!	N��u�T����z��5{-6������vM��.I�����Oh�F���,)�*����3�|�{����4��L�(K\�����g})0'�,������������F7`�lTl���L�U�Q��������:i������D����n�*��_0��0�����'���R����r#q��d��+e�T9�j�]�����?��@��x��8����@U"y�b�k���Z������y���3��F�O����Ym������\����� ���QS���4����+R�i�w�jY>�
�>B��d���������Q?5���R�����G��U����\�Nr���������L��	�X�,��H������&L���v[��x�@E��:G�g��K��p[@�H������A����>�!q1`�`�7����?#ZA��",��q�v�9e�%bg��fW����;E���RC�$��tr7���Hd��>S����4����ePB�s�Rg��=��f��0���y�.{����g���#�8�?�SB/�����3c�]<�}��`��8l����F���o�����P�����h��U��I���c�����=.�-��^�+�����Z�x�����`�D<��������k}�dy�k�?��!��k��4{�n��<b�(�@C�,�v�%`�n])w�a��G��Uap�p�����g	t�����fmM���|��s�|X�:�p���y}b)u{�A�wq�)>����DA��R����Vd��j2W2�U�
���s<��7+OF��e���^j_i:{��� }�� ��I�����uZ_�l�9����bVlJ��QZmM�?\��-0W7��]tP���[gj�
e�SX-��h��r����Q1�CsxL��2��*�/����_%�3N�C���iwh���Y�P������nz����mbN��w����,E<>�	J0��������y�|��rg��z�S{��:���}���cM+OO�^�[� 
zjj�N��9t���7;
�?a}�������nw*�������)��v�0����eR-JVfy���5��R��,� \��%Wr�)�-�����JCl����\���F�e}Fu(Y����4�����������&�J[�!KrUnkB��������U��9���OK���GD�'���+u����%��	��-U.=-!��.��K��LgZ�i?&�0A�]������PZ�["�n���[#!�����{�����=���`�����_e$��b�aYI�=<#a^�R������	�7
P��{v<��*�Q�W*��#kl��U����@�k~�PJ�x��>�mX&���U)�y�U;��Y�z��:�r���_�����������U�L��t��7`��a?�)=����P�s=p�u���Ye��{�W��
��KW��Q��PY#-��e��g
����J�~�J�Wq��0��']�%��q��K����R�B��]��������P���M����8w�X�mR����a�-��<'>d�L�nL,���PJ���(!�<��)q�����j��Y����nR�HhlH�n;����e��n+�����C$��	7�9�8�M8/�X)��2�U!bR��QJ����)������nS�%���@�V%i�	88�L��b�93�Z���{g����y�bh��^��U�Y�ay����A��#/�^���'����G2��M�Y�lq-%6����*���{]M���v�m��F��g�(y�W`�yV�G�TF������Id���m������KP�*5�pxWm�3� 29NB�=�&G�m����1y��W� y�v^Ir���x�;��)Q�
�9S�v�W�����~,�Rx����=��X� [_�)��cR�#Ch?��*���kJ^k��bV0A7���0����_5�Y�`�b#���i��a�������f�_�����Y�@��O�n]�j=R<3D�o����
iM����c�O]����|%��B�JVu��B@8�1s�Z����0�{�)"�������Wj~�O����HI\����>�"Gc���k�G��_|��~���%��*���
JY���Oa8��z�J�Y��s%g:��~�$����`?�bv8�c < BN�U����j����,x���$20��'�=9�9���<+��Nj��.Dj:nT4���i�>,@i���C��N�#��C��n��#���D�~��(����&��W���q�U��+�f�i�e��M�>W%��<tF#�!��p)O���\t����i�_"���!���ZC8/"��w��5��k������5F����`��^���~���L�h5H��{�$���y�������a���&����}�_�$s���'��B�N���Q��"E�����G�������������o������{��*�~���bZ�0�I�XEX�����q���YzE<�:�������jza���M*<�OLsx�g���lV�d���Yey
�;�����k���b����V�!b�gm���A�;�;���rv$�[�`��t=�5���g�����nm|b���H�
!�����2:��j��b��z� ��+�e���H�a����1��6]�>|}��D�BF����P/\��_W������j}3�s�����R��*�d���=jE��{H\�����.L�#}�8��^�;,A�����H]������a��_���������C(��C�_�L�'.�����w��vo�s[���or-��v����o{;�)�]]�m#�2
��������C�C@Rj2�7�UN���Kp���u�-�kB�4�!+�\U�^	��S06aW������T���9i�T���3������nt��J�A��M�}�eu����LbR�O�	qmVc�����`<�2���������&@u0�6�W2������xl�1��������`���urA�!��*�>P<��C*�n�].Y���w�: ����n$N�+���c�"�g���$�_z��n���Q����>z�d�R����p�{��wCA[ �k�����Is`����f��0�M�"��.>��,�y�\��K�j��N�y+�O����Q���7V��uF��{��]i�u��:�"��"L��]��i���&���(����nW:����=^|������c�k�yA�nq^����Z&lw��E���������VJ�������yv+[�;���	�e�����}��(�A�3�v�2p���`KC�1Zg��=���k&��V��A��x�L_�|�fVD( g��xA�o>^:��"~y�8��|Z;;��U��GZy�4��'�v�W���H+�ZF�����ZgQ��	U��NS/S����G���B����Ol�����K\���`q���u��hM�#��3���a�������Tg���U��FYD������=O
�^����p����@�����lL`��#�r���V��Y�,\���[�U~�
;D��!�U��M��]��W��H��x�X���u7G��|I�b}�]cd�����9��K���Q��W�����a$��!���V���)���_�E��n����6m���}���	���v5�j��j��!h�wWDK LE,T���H!*�NQz���m%�t"��n��-p}P;[X�����������?D����pkq��u�-���fu���������tHm�������;l��=p����Q4j$Y4('h�akS^��8^�<t�2�<�s�}�4������	��{��U,��I��N�>O���)Z]AoBT<�$�=
��b9�����+
z�Q*M\`E}}��"���H�0��R9�Q_�7��x9>m�H:���j�p���v_�8$`s/I@vQ\�����+��!�G�7;Sy`�����9*��cx���+��pN��H��Sm;����.���Y��[_6(���V ��Ds0!����g��&�H��JPU�s�������V�+�-.U9��O���'l���2�8s����X�O��N})�`�i@\cG�=�$[U����	�)6�UQ�HR	���D�EfR$Zs�_�J/�F����W��g��U��T2����&���
$��=��0�k#�"/{�����}�[�qTC�UC���@�@�(���T����U �Z`Q5�,��-=<�"���Nxy��y��J7;=���;��/Igzg�*%�uX-|��p�?��.w
y�]��@�j'o%%X�En-����5����C�k��5��&
%����4���,��o��S
nS�5�����Y=sw��v?QH+���j�"G����L�T�����wnk����]v�.&�������f��nbC���Mq��ixZ��u�$>{l�0�!?
6j���2�
���A�H����9�&�#,c��7�q�0���7���������R�k�>B1�J�k��wf��mh�,�c��>'�����I.2�ic�L��?�%sw&Rw���=��,����k�0Xz��7{��:6+�pL��J9�L����M�Z>��,?5��iQ�,���R82�SBE�JPW^����/��cq3�?
UiY����C�"	��d��O��J���A��_�'�����?l�g|.]���*�3���P}}GW�������v��ot���t<_oV|}z?�O��O� q��2'����`G�
�(	����o]:CKX��p�%q�X�X�����C����(f�!��������A���( ovt�1�)�T�����W��+�z��G�C��r2���W���_1;�G�W1���W�7��8��Z�(�A^���A�������@�#��qHjm-����V	�����7Q���=5t��G���������^fk��	sF������d����eB��=As�B��T�3|���.���)���\�I��fo>Vs ��|�sc���N=�Y�\��v�d�e�-E����Z��1y����w�m|m���o�r1�In����X%\�<VG����p,��t��������"���/
Gn:�6%�Y����
1�
�=��������175������5�O�/>2+,p�W_m�c��H��w��IC�����GY��F�,)��{������������������������������#5.�t��f�����M=p�~�V|f��$|*���1x�����^��e�y\���kk�"%���r�@6�Q�X������bo�N:�r�b��������
S(��%��
yj���=����3�|��~%�+R_m���j'[��:%3�,��F�Z$�eu+���*Y�FW���3X>�_��d�EqT_�����D��F�y����J%Q�����H���\���Q�wB����r����.��(��g)�6���������d~�_��z���A��_I��	 <�>jWWM�_{�ry�#�z��GOB@��a��'���h�7�s�5[�=W:�*L�M�����
�;"^]�>��}��kS���UZ�Vl���n��m��2�����<Q
uxR��r�����W7��b�oA����@�j��.�Q��_��.�s,�N�-.�K����Rji�S;�A`U"<	����4uq�<��H�[��ovRK]L��sk
�1�g�W�o��]^��0��nI���M�����*�%�j{�a�pk)R��;��H�O��b������J"1��$��,@2 V�h��?�rk�] }kR�*���L���0��I(����)����_�<�P�@I��pc�m�T����:���9����l�u�����!�
F�/%�5Y{A�����C�.����|����W���k����������1����B\�����oQ���������
mPp���;b2����@��@	��+j`<�����'���X�g�`tzWb����P���[�k�:e8�Z�Z4 fa�\rE�<���G;A�k��+���5.(�q�"j ��y�'������O�>��T<��t:��N���q�4z8��6tW�~�C������,����96�8`:x�QV$���L=���qp3�!�����������]s�����f^���b��M��
��$�`z�z�p�+0
��g=��H�����2��D�%��f8�G�}D"e�����c���c���c���(t����3 @��Z�y���������M:�t/h8��6���D���B�?t�%u�\6)s��!X+�i��b��eN*A�z��#���F�C�y�"�V��jd-�nY���
�������z�2�F20�
O����*N�M�Y��i�4H���<��%�A��K�e\�Y�A��j5�l�NX����\��e����]J�����T��f����p�����_�j�m`���kA]��yZ��p����OQW���st�z���a��Q��^�'���6�8�>���S\`W�Ds&b7}9��\��s�C)1T�87g���������y�
��Ha�pD} �^g8��d��i��gZ���1LD�Y������L:mc_��m�oI�2�kR�u2X��{b����1 ��i�hRD�"2����1�����K��Ry��1I�nv�x���n!&���9'��c�T1��	��8����&$c��6����l�W"�K�6��-O��$��.��LW5X�q�����Xq0�]f�Q���]%�U��2N��|�t�]AXp�vtUP=���6�9�et�X�n�uH������hx����M~�q�w�7������l�p�m��O������P`���b�a����r�E)��#�*�<�t���c�{a���A����?�g�3A��P�`���.D���$?8uSM�mWsI!vc� ��!tv85���8�Z�|�����w80����>�K�\��Cb��Ku�;�sty�JV/����oo���MU�}�:��n�.���K����zC�m�pOr���B\Rl"8�.��\��q�$K���Cx}�t����a�^�m@x���P����	��G��,K�l�b���<N�%4~�C���8Nr$��)�G�r���0n#�
�'�D�QI��]d���!����V��W�C�4�>n�m�@hD>�%���[b����
5K"!�t��K�9o����R
	����9<!`�������QZ�����&���P<�[���Qr,}F�0��������
���yr��;�=������~���fgv�f�y���������,	��.��>*���j#>�F@
M�$�r�s�$�s��_�Ke^��c^)��J?���4�S��}Xr����4H�<��|�6���@��4R��O�=ud���^�f�[�9�.��O����s�����F$�I3M��X���j�z�'���p�>�����e�(4_��wo%����r��f�l���e:wm��<�����g)0'���z�O������x�N!���>2*,q�	���m�8���oNFviTi��&*�"Y<�����^��q'�)!��-�fh�I�a�R��C8�1�.-�*���\�A�����P)��=���de~��oN�g�e�����s=�l����3:l��$!��:Pt�}\�CZ�f��I�S�"�S�}�qO���������+Q�
A�����;4Y���P�zaQ����K�=X,{9g�-�D�.yJ�Wy�,G��X���H�,C����yQ�E�0����)����X�����S5�,�-P������n��0|��n��� [p���2k	.��$���"�>������x���Px/�^���o�)�.�.�.�zq��@��m*s�
�	��]�����m���,�Y[X9����~��G��������h3������'��Z���n��.�S��5L��Q�[��+�dc��zXx����
��y����L�J�O����t�����?u"�����s��b��84,��\�1���IHBKNr��hi�7�"8��1��5�7��,�/@�u9��c)�ey	�]A{���wD9�.���������#�n���Yu�{LI���J{�������5	u@<���<,�^���B��NO���B����i�M�����sQ�6���������,X�algX��[B����R�?Z<�YE�Zh���w�B�NHu���%��E��Eq�p�Tf�"��F\��b2`�H��cg�-������g����(�K�vC��rr��A�v�������{�=�}����	�P���k$Y;����-l�z���w	�Q�'�R�/��!�,�1��/#�&bP,SX�/Xd��2�8�V�#d[���M3W\n����+K�o����������fO).o�x�Ro���������[��k	���C�P/.Q��$�_�����������*&J�0�����~�1r|k�lJ��%�-mH�P�������h0$jO4W_BWz��K���/��b�����N����	^^8j\�2��\SHSMaVB/k��#z�1���4�Z^A	.Nc���Ie{��[>*^��{��[�7���&Yx����e:7E����k���Ero%������
��������-����Wk�j
���>
{�"�+����6��������t�G��R5����|s�O�n������l�Kuz��_Hg�+�������|�o@8Yrj`�B�z�n"��he�b'����r�^�	���o��
���D���J����h�
�63�q}��X������m��$�NK$���NG�;��N����]{�~�X(��c�������a�}����j�myi[{��P��,�Q�T&-&��I��TD��^**�	�c�q���E��Hq�&��$%4��9����#�b�}����bt,���d��rMG%v��T��]\/t��u
9f"�?�������� �F�~�/>'��K'r����W}Q�o����R��1�1%a���vMTh3U��"��e�`
�p���x��!�%��/��|����=��o�E����������6�b�oHMN~�������|q�yigM">1w3��dpf��#�����X������`P��v�K��]Wf������&�����u�?=�A�J�F��T�i�A0���o����m@'M�c�z�f��%���c����t�X��h�?�S_�&9�cs���uM��T�U���So��YuS~��m�d��O��_�	%���P��V}/�;�;-])U���p>���(����[�R�:�(��w�j���
���.;K����_���2|�i
��|�W�$g\�P��U@\_�����K�������z�Z����"''B�O��./A�H'���z��=|�Auk2��F>\^Q����������P��}&�����)��Q�rh�^�>"@��7�r���h���J���d�JQXJ�\x�^Z��8Zp�#�4c���b��}�_�m�������X`@��S)�'�Km��+k��������D�]X`�����_n�g�s�l�O!���d�D}�>�Y��:QIt\qV��l�u��d�V�/�]K����������Q������/
XU�J{��Cbw[_
��~=�?;Z�UMo�`IY,$k��Z��__�&���o�|z��g��}(���i�������f2&�?6����HL[��i���I�����i-��Y�N%$����Hw�?�q.�������t�J6��y�-�A��	�.��������i��D�����������7��it
I�q��Q�@}����b� ���[���e���R�m:+�����s�HX�IS�P_��o���z:�����4������;���P���&lp?��N�����`���*'�r���5%��#>�s��'��I���?�m�������f8�+W_4�K��Q��"��`�,=�t���A8�m�x{y�S�9(�"��fi����]@��7��7��d�O��sf2�':���T;�mo���Cle����N�a��-��?��Z"�F-��=k��@� I���W�F_�;c��
�����4����~�����@7����=
~E�.R��'����4d��z�����/"��2'�}�ii-�D��U,	=�Q��K��������{ 
@�����v��?��8!+�����dH�d��	�����o!%OF4��6��X=[�������>������f X����A�
�i]	@��I��G��h���Y=��I���H6�9sL������C�W���A����w^��\mU/?�\�������7�k��%�����we~:�q��
Yk���w��Q:4/��<:qY��'`5�����9Y�w��Dq�!����3p{L>����p�#B����$f���G?�OH_}&����I�9�t�-,�F%"���S��V�����S��fK��vJ�K���4���������r����h,
�5�>a�����D�����d_���aG#�1����FFf��|������DWL|�$p�Z}�FV�Os[��p�Vw&,R���[8���D2��.P��v���w2u&�b&�{J�j�<�}��l3�����5�T'�O����h�(L�4���*��G�u+s~6m��5�k��+�������s/Xh�+���r�E�(��M����c�s���WDM"����
-.�lt
�Yf�|���Qg����n����
���G	���T�t[ ��N��9xx������N�(�f0�f���|���3:?��s<�Y:�>d*��0�$����i����U	.���8�)������"&�X4?b[�(���L�H��sF�J�[RTE�K�R��7�;X����0Y������t7���dV�
#��z���2L����}��B����9���$I"�d#�w�~@���Dr����J�Fs,�e�s�`��a�F0�D����C�������A'��YT�i����� U�O�1b<��T�s�o`Vn�V3j .��R�
���eX8�m�&6G�������76���mZ�:�FM������G~���g����� j|��Czx�|C���U���s��m�k���cK��Z�����
��S��E6n�W��F���:��S�������>@��Nn���~_H��d��(��*@���!���fh{&�H�J���I�j�@������i`��6I+�c4����8>(D�gZ/�<�Zv�gO]4w���n*	�����&`�J�����>(�����gnrf���;C�6������wU��.6��W��JLR%c���c�1��OT��5���/�+�~9O������S��=�c,��Z�c�k�VD���w�=�����."8�]�p��2N�i>9������_����Gb��O��Z+|��L�rX.6�Hbj���O��\L�4���J��	�pt��87C�/yN�"p�W����Z&_�&��O`q�C�_J0��J�"����s��9���5NlGW�TU
���v��(Z�������<�2��6�lxQ0F�a����k*r��]����O�hM�]4P��6
���
�R��xA�W��4�w�e�����
4��J\������G�����s����i6���dq����2��M���3�l��D�%��G��������c�����l1����&�oB��^�:��Wf%wR3a$;���W��N�>��C��L}�s����0,��3�t���+�-�ag��-��j�Z0�W;���G�`�z+��bKt���j�j�8�/_$����9�K������������	�J0'��~ ��=���*�kt@	V�E���(;X������3>g�A���c<���j��{m���k�7@*���em�)&����Oq�����H����[~j���i���yB��;,l!�k}���X|A��fp���X
����M�o��t��l���_�:�[��d��)
������D/����!��d�
����.r�y����:S6%>�
h������H��y
��u�	��b7�=F\���$s^	O��� %�k����/������t�R���K���N4��V1��V���&��G��+q�|�@�{JR�G%�g���J]�������y}�b�ZH��#.I!����"�L�����z#�@��6i�1��\�Q����FR�;�i�O����/1������
��m�z��v
���s�>���8�����^��5��������aAX�G9H�`g��1�JRI'�?	
���+'��{���<�_~*�m����n$O��>��g�U�E����4�;�u:�Up���>��X���d-u�T1��Y�To�C��7����8O�o.��Nz�,��miN����R�,�8`�`�FY?��>(K���,��;��jaMk@Nz��~}��X�<,(R�~�cp@����K-IX�!{9L<�f(V��o��p�o=@	Bu�kB�0�����w4��i e���XZ�U"�m�x
�k��2x�Ti��p���K�����p9^�dz�[-�3��_�����E=<��E�HL��4L��~qh�?;���.��S�I�Q�S�k�>��e�a"�/:�	�X���	��;�hW�-�!��!@�[5�y�~�������3����.p=�${@5�Z��������xx���z��K���1�:��g�l�4s�w���U^�<S�?��y�uG�Rv4��
�?
�3`y�tY~��1����y�"��3���	:�~6?��zmP�'�<���-6�Wz�,��.��.N�Q	�C�1�0��XBn{�c�^'���=�T\��f��'�[%�DP�5��E�z�����5�S$$����A��>o=
��)#��������"�vq�����3��h�Bz7�7��~O���7�ag��dIY�er������U�N��+P$�oq�Xq�qp�J����y��!��%���s���8��f���h�Lf
0Y"���� �gDC���K{|��r�W���v8��^���H���-�#�|	�o]���#��a�5r��aV-�b�"s6� *���|x�K�-�1g���7y���������:gG&�_(z�3������� ;�|J�������K���!s��x����f��]j�i��#R�OQ�tW-HG� Y+A�P�$z1�q����i��L���1���)�'��*Q�)#W�~&��
��]rB{sB���� �i��h�H2ZP�4��)g����qml��N�����W
	���j���u�<��Y	8����0+���6n��$���z���QJ���:���p�0�.�M1*b8�1��f���W��C���[��P���c�t�E#f�"po���,��-�����7Q
W�R��R���#��?���;���������}��0>BK:AL��>bV�J#�rh�J%�7�	��@ZE�#(���n��#�3����������BpK�p��=
M�������LE�^#r�*�x0��iy���)�enh����a�y=�L�����J�7�8�q����qT����K�6l�o,��	����U�r�tk�z)��m#�,���P�?YD�/�����*��)���L`,�����f)�lr
N��
s��a�p�/;�S�!%/���WMS����[8
Z�n��Mpw;V	����dt���s�:Q�C�.���	����XO���\���E@�8e��>��|t���1��<�z$��6�g���~���'9eM���������)��
���8��B�{o���B���Ka��o5������A%���h��Li0�Z0�1)��� |��G��0<I����e��&2����+�qIp���wp�y&j{"���tb
Y��+<W��q���f���i��!+�$����]���h�O��5���<�W�q�������h,g,������F��
K����#��g�a
s�������e����'��,���0d�D�|HM��#�3��bqoQ��3A\�M������s����9�X<6:g�96@�	�������b����Vyz9��P����e$��VkF�I��0�6����)f9��uv)��#z1��Z}�1��
20��)��O;����A*���(Cv+�����L�����"V6�1��6�2��T]����|]x� 5�f�pd�y��l��S����q/��-���eJ��>Z"*fN�3�����������k��q������B +�c�C~cK�(V��Q/��)�m��9W��!c���%��&\�^���z���R����=�a���.�`�x�|l�E;>~���������|i�/X��
�g\%dX�7���i]����l10��^{��	'��{��gwYxt��dW!���i�E�����<�m���g�%�T���������t!����%u,/����Z�y������{� �������<yI���,��U5/�jsD��nG�������!\�d�sd|���[�����|o�sj�Z��6�T����6$�x^U�P�o�U}���#��z�B�������p�s�q|��x������Ge�D��hg�w���_!�Se�v�
������;���JN/?�B����~���'@����
��i{�Q6M�!��39z����ZdK�&M���5P*�t�s��-�U�L�-��EEI�w�w�Y,|��D�N���V��zK'��R�T TO��[1[�A-��.tr4��l����7��b�?s�s����*(��I�P,�j
_n�D���q�8���L�lM#��F�a%�G����i�\��Fq-1.��j�Q��d\i����X%U��y%�qZ�0����M���Tg����}s,zS���D� ��x�����3 ��qp3X�P2m<�A�W?8^��y
��i4��V��A �WRH�E��o�AL�q?�Ni��  ^���e�s2�'���3.l���u��v5�)$��7�v��}���O���m!��p��o1q�(UKuF������<���+�q���g��3'�m��
�9�]�����4C�|+SE3ci��Y��$�9`9>	�����$���GJ!�A�Jh�{�������-��X�VGH$����j�!��h�\���#
;q�2y��<��Fby��p������[g����+nb��
�*-Rb�$�Y���cg�E\����KMc�U,U@�,����X�����Xjs_\�O8*Lp=�?�GM!�uOg5�#�*�k�\s��������Y�t]�|H2��NR�ja9o����`���L���c���&�[����oY��-���U�o(����"��)�P�?�Tb�����&9��S��{n�6�����0��z��/��f���W�o7FM\������|�,���<|4��K��-N:[V�;�6�1�#Mraf�T<���\�/��=k�xy�����(�wZ���~�D��!���I�>���d�~�d�
@���dsA���U3�)�����Ma�N3�1� ���>�_��)��.��d��w@
-��I�������9�4�|������L��$�E�DeiKe�r��o��
�8J���W���`�����x��,���P�DP2��w��w0��,�Z��1���M�s/���4D�l������s&L�VkL����)\JII����]HP�n�+0�U��:��)�~-6�a�d�K�x��~���#��L���meq$�+�� L�h?r@NV��\����"��p��:��"�c�o���-��(���.��/m�IiT�8�f*��?��f4G0����i�m��j�m��g9����2�����8FM���A�pV�6S�~/�,��3m��-s���qa���/.UQ��j]�|^�>��UH����4.��f����;eMv���-[o(Q)���ry��Q���/��q�p�!�g��T�_s��ZpdHhK�AWC��,IW!9��C:<���"[5���q����:>��G���������T[��=q�1��l��)_�P���P�qn��%~���S�$�����G���`y�20v�=��>�]����T�?�4K����x<��H�cX��"+b���Z�����w�g���FG<�����������F�qj��V��1�������2��Ar=+��}�%������t���n������e��A0�o�B����m���������u����7������e����S���>��e��Sd�Hr�'�N|a7S�K1�Vy>����S�OSXmx��fO�M��	X��w�M���b�����{d��������*�3��#M�?I��E�m��������_�}�:_���~59C_���3�G�ej�M\{����n�V���s�.�T��,���r%��F��W��H���� ��:��z�E�C@i�F�4�k����������N%���W�N���q�+[�y[{o����$��uz�K�G�T�jw�d��x�r������@�'(����<����s���0L��9C7���p]r�}'@C�j<��	��sK����{nS��_�h�Q��v��
_��#��_K
_+���f�.>���?�x��r���O��{b���K�I�6�-TlzW����*��Dn������-}kB��m�*���p��!�>}MA�]��	e��1��~��a��lm����F1P���./��tK��9������9�9��-�������l�u�	�n�jn�z�����TE���E3g�QQ�&(�__�tR
3�������A��j�b��u�W)�JP1)�NM�S�N3"�W����tl��H~��?�:��������6^�`�����\&t�$����Y�����
�K����/����A���	�=��yj	<]x���oja8c~���������XV���n�����Ue^���8����%�l�&�T�3�M�':~�_;�,�oJ��4�����"I]�w]���@/0J(IV��?�LO f$�D����3�.\�����<���
�)��`�m�V��0�	6��n����4�i�\;�����b���9G�������i�����K����[�-���9�����v�HR�)�eGu���2����5�z�bhF�|����_\�G+��<���I<��Sn	G��?�M�'^g];�?1�8s�w|�x9�Q�Z��B�#d�����:�Ar&�oh�eps��P�8��������d�u�q9H<��W
7)�7E��	g-��pu��;�\�Y�������l��Ym-�K��0U�*3<5�I�����R��{����	
�t�Pg���7���3����/k%�jo/cN,��!*�t��	fU8RL��"���ss,��D����S�tC������jr�`����
�"v�Q�&-(Uk���1e������4����{��x�7��G_�9Yq�L��k�����[�Fi�Vjl�'9��"��n_i�E8�U������(�����	�E��?*�J�C�������a����0M]:H��Hk�&�����<#D��,�V~�����}�$���+������A�)���� ��&�J;����IX����P	��/y103  'o��1+�L������� �^/K����l��x���W����:W@>��T�4���.g;���a�����I�@����o�������u�YJE^f��E��B�����[(���gY��R�q�SNJd�Zru�	���W��u���b��J���S���M�Y4�L�E�)m.���8S&������!1���5:������`K���=�����vS���=�a������1<���*{T�
eg�I~\s�Lr�Nl�$�5I�we^��^�(�7�A<A(��c����O��?��j��@��b�"��/��D�&�3�"����`�8~���S���FT;T����l��.���0�ps������A>��Ea.��]t?���ep� a�Gm�b�1DY�S���P��a
<;uk0q����=���y�S������p��-&/_b/�,/;�XA�3^_��!Y�E��6SjV	��-iz��8�������?o2��j"���<����QeVn�s{�w�����y�.����-B��z�B�����2n����'���ZK7��w���H��������8J�������:����M�]����n>I%�),�����w������}�r*�����xJ�	�[?��
�Y{��R��+��d����]��J��w�i�}h���hTdsS��`f��>jS��&��&��8p��W�>Zv�X ��u�R_���R�?H��4�-2�����G�O9p]]NN�`8W7b*pX�5z���$��������"��-n+���Ak	@C�	B������(9������OE��i#g�M���I�.w�|�7�t��b"wc�����AJ�����I�{8W!q`�D�Y-J�����w1����Y��*���*��b���,�����
��NK,e
�j1�o�������g���M���N�-��i|wY]Ixa_8�t;'(����{
��������?p��I6�����H����(6�_���:E.X���I��j���w
H���S�D��f�p�����e��D�u�[:-��1GdyGX�K?z��c{�^���r�����-���z�����S����]w����/��b�et������?(;�����*�y-��}�/������?��f���x� ���et���w��SO��.�yd�v��H��sc��N�2`m�h�	f/z����E)x�������02-��L1u�	�_F����7����?Q����{a�� I@�	s�v�����n�.
�e�f����if9�����nG��7.M��Pu$���qIr/�[�v�v��y��C��^|�T-�'�'�Q&�w_6��N��u���*d��'�D��E��L�������,5��-V��n������[#��l0���pB��6�~�{
��J�]���N7�6�3�)����/����6����}?Q�\�]	CV��l��c�������W�f
���b9{R��.����r�5,�)�X>��h���C���9�u�c;�-�o�N�F��@��HGy�,��-�������02���i�;tz��%���T��L�7�L��?1������+���a�����=2�{���+t�����q��eB�,NT)H����x�0a�4���
t^��I���4Z}3w�yUM�+��d�.�Ry(���p��*sN����Y
3IUN}�p�MG��cv���)m�W�$�vC��uCY�����{�L$N�^��@p�0z��K�ZR����uB�pw���z���f��?b��������Z��W�Ow���e^U�/����|Z�����b��*���FC}�>�(`~�>f��u��� 	v�:�c�����M�����A���#fg�����n�gR�{��2�����������cpj��W_H���,!nA�2�����'�8����}��x ]���"�1�l��c�d��x�1����s~z��e"�>�vJ�tt���.��=u����R	�W�>��^�����xR�	:*�*�����������q|����.���j���������MF@��r�W/�.�=��|L<=G���;����;���'���X� �w��x��m�J����M.�I5c��)	<���$����z4�;����6y��Z|� ��D�W7��������
 ���-����9����P	�!�6m�������4z>a������)�WH'7�/��Z��;,����G�9d>6V���k�����>�F�$�q�n��!g��~��P�#|�m�������K����]�����Kt)K�g\���=������:o��_dc��qT�o07��x�*L�VjA`�<�x�@�������)}�`��	����Q��_��G��SE�^*�_����= �W�����v��#i������"��� g<�kH�D����D�\����{���{M��J�}�p>��
0��^�8)��hi27+ to��!?�|g�� ���E��?��K��T�8DT���P�7�2�S_����+L��@i����J��������z��gD4�:��4���Q��"Ksl��H���$��[���$lG����R�>zF�n1�Rx��?6�{I��d"�SIE�U��Y&�oD"s��y"{��,��(���X�eTZ�)9O���I"��t�8��I��o���X"Od�3�R�2^�X����C���3���{p�>�8�r������������b_�[��'�EyK~�i����+H+����w��h���Y���M�^��8<$��}�'Pb�/�������-�>�Y	��0Fa��!LXsS�����S����H���%��[[�[i�Xs�\_��(��\��_�`z�r&,9�{���
�7���,����`��;_P���on5<�k��v���y�9����.M���B}MB}&p���n[�C�,��om+m!0�{�}{n���~�U<aX&pvDyTuTU�j����T@mnEmyD��@Z�<y�8�n�(pmf�u	������p��	x�l5�wJ|�R�<\:��8rl��VS���|����c�k�\=Pn�B�`�R� V��H�m�^k99_A�M�t(%�5�l2>�M�X���N�Tbg/����J��8�6(���/� )���m��`)�D"�CY�AQ3�����S���N����`H�~�[p�zH�����\������:J���H��cQ��+v�{�_�8v� �OOY:n+�����OO��mtW6r�,]$���C��'�@�}h����H�M|��Y���Xb�
����Z[�/*}`��	f��������=}��0�p��B��
!U>�R��(�R�H5jEl�h=�W�X��M�[�8E�Ki��MT�'����G57>G8���@j��2.]�Gb����3�H���z�����{
U�7�S�	J����X�I���C��p�'��k�k��������2�U�K�8�'��qc�c������- �be���@���9���R~NUp����.���Ue�n��W
meuZ��bO��?�X�8�T�&X�>���W�<�g�Z��1B�K)*������	�am$����M;��������`�@�f��(�u����fEm-�is@����g���L�]�����jL�������MO58#6�=���b	����X�-��;;)�b����s��^��^��U�|���p}�jqZ��
T}��WS�������]��N�r�6�������'��F����o;5��S�lUJg`~�Hb���I�EBm��a������7������e$a�����&%���vC;���60n;|��]i5��4�TV?��%�<�w����2bg;]4���Gt\{��c0��0(��j��������k�e�og�3�����'���;�j��\�������Ev@>'�����@�Hp�������[��K��j
���G��v�}��
��y��y��X%L��U)L�6h�6A�qh����j���>Z
�:����G��\Hp=�~���4r��u���Q?�f���7d����C��8n/Lg�BK\����=��X�!�B�:k����%����S�3�=��/;�4~{w�-H}'WB�` ��[��������19�A|��v��\���?����<I�W�LHC*���l�#�c�Vd�l��/��Yq,]��#Pb'o�jI�PO�s��S�5�@��a;�`&r|8�*�����c��Wh��A�)	�#D�����,6]��H_g�~�������:V�)f�I�mv-�L
���j�������J�����1�Ab�Z_����?�{S�5�k���m\ZO�'���T���m����h	\��dw?�.rR)j�Kbm"���5W���u�#|S���v������]f�B�����.�����S�1���L�v7�����'-pty���wL��c�	�����T�u���+t�����@�5u�����e�<��t$���enJ�S���L���9V��������j����9	>\'2F?>���������DMIS�x������2�����5��qp����M������b��a(�5��/be���8��1HU_����PB#�u ^;���]��^4{?��0l��i]�36Sm� 		�mK#��w/I[�Se���?mj.�k�:c~]_j��L9oq�-6�@��|�:��������	��� �������_�	.���!�9�WX\%K5|������8=�4]uy���F,���S)��W#���)J-�����g�^��8��}�����1���F�G��6,����s������Ku?�9t��0�k:dP�1v
	�Pv[��p�^��������e:���������D�x�xH�L`%y�i���q�!�'��>Hy�Q���J���B�<tK�d|�7����.��#�]dhmW����L�I��`�����R�;}�1�h����$�5���J�l������w������T��s���M��maZ
�w��c��d�/���s����_���/��&��.���s��5Y"0�2�z6oHWr�1����,?��]������X��HuJVAd�9�W+���37L������+����^�s�v�h�-Q���p������2�b5����'2���rx�����*��7�������a���S'0��q��������
85d��7�t�f�"��qfu��AE`��^�RC/�
����M�)�Ro�
��X�M��������h�����������(j���T����r^C(�������s��$��<�k�]�����g���������b���bnJ�����_d|�s���q�$������%��J;��*�\6����S8i1�p���N�c�������%��r���;���)�+Sa�/-u<�
���K^C�sjoO�����_Bmp������[����������iA.~��|�*�xv��R��������b����es�!3i�������3��
�����3��z�}����$�iy|�(���H�[Sf��V�h�9����F5�j�^��a&J��nab8�:HN��:65���6��jBW�s�g.���)`P�� S~*�qcoI��p�V����e�����	��E
�$(�QRx��M	n�����v��jV%\2�tjU�	�������������*�?3�d�iqJ=a�'�y��`Qz�������u��_w�0K,���8�q6u�W���,7i���R��0���c\�|�xKe�`�/�Dxj�.����#���
����b9��.c��v�������j�Kv2d����BB}�3�W���Q���i~��#M�e�H���u��\q�!��C#9��@K�9��iI\l@r�!�/# ���K?������w�'�>O��_�m:�bm~��~����n7�����~�=@L���������n�}���}�Id��H����%�IQ����B�j��iXN���������\'_����z�|�R�D%]s��=�@�\)���������D1����V.s���9�M1�M �VO]��r.�����P~�g`�)�J�����)�K}L�D��@c�|�4��u
�S'��7��&a�/��rt,,Af�`QV@�cO�,+|�x���|D�+�w��������B��1u����L������`X����[�d�MJv{�(��t��M�v���BTM�^�FR��/W*1������G�]irn��]�����C	�Q�K�
��
1��X��,��To�����^����hv�������4�q��������O�!V���'+�L���%
h����^J�����W���*�1%(e�i<���S�>+i���'d_�����RV�r��sN������
��kA5^�j��i�z|v"�T��L>]
�����#[��9�R"��:PJp��x����	�F�
T��I.���4��f��J�_��rcX���4��r�^�o{����i���A`P������L]
&�1��u�� �+����c���Z��y���������L�(��}G�v���������3�{=�oK�[����Yg��l�5��9N���N 19�J��W�ag��6�����1+u�S�b+��
�#��]�_��7].>P�\�X�@�o�������W��rD�I��k������!�����(�zn�/���V��_�������PJPH�������/��(/���v�>,��~���Wu���g�B��r�G����O��'�2[��O�cG��L�Q#�\���kI�*�s4�.�*��|�LY��@Tf�IRs�?%`��VpK�����~��;���b�'�=�%�:$�dk�	HX�3f7������nB��U�_�Xe�{��H�s�V=�2l�����L���?�E����<{Kv�9J*�q^u�q�q�+�=�7���#];mK�z���+�?���:]��k���"��a{�n��`�S+hbV8��)�i�&��[�4;���d����+��2������W
q�Mqt$V���u����Y'��]e	�F�d�4����Dj��}{��q;��T���	��Wv�X�V6����@�"�Rq����c�KbX��p��	��n���}h�������������_���d��?7n����>?�����������to�J��<{��79��Y���9F$]i��9S�Y����.������u���x���J�cH�"�?���������t��_%p-%)�*���r�������C����?��c�@�5����7�����s�{^e&�P�PB-F�����m��	�=���y�F[�;�dg��@z��G��k*4Ehe/�����pp���f/��������=� a��m���������oF������67�l����L�5�9���v����8]�`K����=�.��k�oNd�rH��;�h��M�<���^f�o.�0�~��l!R�F����c_�_�+$�����Y�\$9����O%N��D�{_�.Hj`%�4������L"���md�*�d�@�I@o��=�$fb0	��LiP��v$ei3���%�g��|bLGLlM%�(��G��1���S%����zrl��N�?��)��x���,����"i���(^��[R
u�`��G�+��}���qv�!����O8��1:n'q�����|�h�L���0�Jy��U��_@�w��tNS�X�S�hp�%2�����qMw38���J���C�S�i�Ng�Y�a�+N�IQ�NQ��"����=d������T���������M��5��kTR�G�2��]�>D��U?t�+�]n��M|%�/]��0w��~<� r"^*� L��	/F=���X0D�)�x7�A����>�R��u���*H��)�Q4(0������>n�	MJ�����h��\u�4�&F����ZCn�Q&U�,���$���Wt3��/�����F&����1�&�G}��y}g�^�I��{,��x�
��<�<�^6��	��'zl���������aQ��������,^��ZKW8��n�%M1���_��\���!�9�t\�E��,�#��P��������z���K�f��@o�n'�3f)vK@�o
�J�>���5&��pn�C`es1i+�z~h��
�k��o��C���6��h'�e�U}�
�r��&�j��DJv�o�����\]��*�Y��']Y�k�B�����K�?}t�/hk!*�>�B�>��������}��&��IRcZ�%k~�>�
�8F���{�K()��6�6�(�'|j��x�=�7��Z�Czc�me��h��f��#�N��>;�T����o�G��k[�j��%�f�>������(��Ai���h:���.+�h�m�mN���f/�t�	�*l�^���A���i�@��#���[����r>{K�=A;�
�=���~]%>����������������I9�'��AB���,�����%�7U@l�Hv�a�,6���� ��[k7��~|��+�f[�`�PQf���?�gye*v) r^m��L�q�?4�aM`LrC?t�dUr�7K��^�q������-�r�=vU��n������%���z�y����/t5�g��	4�[.1���i3�3jA�(���&��|��7X.>�a���I���8��q�R������������V�y��������������bmY,��3k3cF�q��0p����C4����gg�JXe�9`�����e��
��MS-�C�Gr�9�!q�j��Q^	����q�.��q�?Ss:D�)�$�kI#�5�-u�Vuk#?"F�p|������%�H3��
���:%i~�8�U�[�I�S��XI���[�))0���NPs����Qa��1�lG�;*m����b��N������&g��^�5_��s�k�������5�q�t���V}S��*/�9@�v��53Z�Ml�f�����2�A)��4������$��C�'$��K���L���Yx_�k���Y`��VA�vs���&�@LL��m����9�m�=y/��������I������Gu���*2��&�����O�$�`4!��[���K*����'0W�tX!s�#��) �*1
�6�����R�x�37����4'��1��i�c���|P0:��Q~?�&������� ��Xz����%��
�JU �j���<I$���Yi�o��������D�Q��n�2a���LJ�I��-W�^mW/k<�L�+����Pj8JK����Qx}���Y�
�rl��no������� K0�J����6.U��c_��xT�$����"��E�����$�{a�����A�75+�l�4����l���;�z�@���\��3�m	`V�
G���elto+��:���wS^F�&:A`�L��$P�N����K�~���Y8��Z��J���NJ�d�B�,��e�2���
>�X��]V��%������?�D��3�^�:��mu�~Y�~����Qv�m���s~�X��}f��=����#�]�����N�����eu_�E�%p����w�}&���K/���p�;���W��d���Wx<�"�g9G�O�;��=�
-}��k����y�]U��������v��l"o��n�W��?dU_��20�)�A���I��������WkJ
�j��"2uF�.}�n���{^��]>\����M��_���r��������6tj�;$~,�|�Ws{Yn�5��K��C�j���G����W����<y��d J@w����?k�J��%����~t�	�=���$�h��s����RY�����K-�:HT�NvY��J�����!�y,A�l
�=$$E!�.��b$��_B�
j+�rp,�f��<���F(���_+0=��k�T�(�6��������m\�����&��1�����'�&����+q�@��$������"�N
�����%����[a�
��}�Ov{���J]|���<����/����m����y��K�5�4���p�[X��`���Q�-�b��p�N��f�����)���V���jl��2P�VK|Ar�Y�X���5���	)u����--4e<T��*�v�r��x��m���>�r��h��9�����t���yM3�4����4`�}#�����;6���	�c���&��hj��\���G�X�����������%)#�
�#$
f�G@^�aN.���9Q#v�Q���=�<F%�#nS�,���5=����^�x%���
{�[���/~����9x�Cd������g���)�x���J{z$�{\����vN�Q�iv�D��jx��X(
JA����y��S>m�����u��(�1����!J�?$Mc�����|����qw���>���S�q7�l������.@`����V�L�s�1�D�sw����e{?����=D�o�m��2EF��P�>DdpX�����s�4���O4��[�"	<���Z��i|�z
a���q��I�0��j7X�PnP����8M���c"�Y��q|�(����q�xn#,<��i���y����,\�e	�z�0�E����B�	�#�p����PW=�$�����23�g?�&2�|������qp}�k4������O������ic�:U20�Y ����)���f���'�]���������S��!���.�\?T�v�6��H��C���=�m6�`����}�`>a�*	���8	���$�pFj�bH�r��;.����2������L�G�wZBc����%���&�F��r�1z����*�������|}�@Ib&>�*&9A0
$+4d��(�����6������"S5���7Y��We�$]>����U�,`�>��~���W�Z�0����

���35rH��>���X_�|����%�be_,,���A�z��7�������+~"�h)Ni���o�6W��b�'$j�$b=X���N��0:l�Q�U: W�����[�u�7�������n�����B��S��?��x��,���"��X��*�9H	�A!QnG�a6;�Q����s�o���;���	�\I�2���kv��@�CY�����w�k	�qsOa
!]?�Xf��!8C.�Z��$��@���"��	�ubBz�7�������bL$�K��J��:���A��b��; *��[�X���� ����O�7�!G�?t�>�[������\��e�TU��(��b�ahN����!�����>!�q{vO�M��L��@cj�/���;�����o|�|��z��Dz��6/��9��q�X�S�Z�X���`n��	���J8����zT��6L���sm*����1V�L�f(�AJ������D�?�3qw��������zK.|�F����wy�B �3��}M�U0�������u�}�/��0�,���������m�1?�6M������0HN���.��K��%>��n�������g[�vNcqKRt��&U��ni����r>�
���?��L/�	g*oq.��%Fi������_Y,�b�q���SK�7���t�#�����P�$(~b'8���~���*�����Q��1a�AJ���n�m�c�j�W������yP^b�����G7�W�D�[�H��V�D4iCY���i�k�L0�- ��mv����&lk�`9�[j�:�G����3�����_c,���,�����9��R��P/hj����Y�������l�.�`��5������`�h��2��<�6���<&�q���}�UA�
Fk�������n�O�GV��,x������kc?0g�p�D,�g8JJ�x��j#�����x��Y�xq{���;B���p��[�-�J���L�+���X��=s����S�WB!�����^���:�F��CH�� T���4�I�W�����Gt�*<??�U{��L�y��PD�h~��/e��[�����O>G1������#�~�W=�*����9� ?<����$f��7"�.nl�}n������e#�z&l����l��I�l�B�y\�`,���t�3/G�Idn'��>�o�m���&q���B&���D������� ������ �|���*V���d�$C'����g��Z~�J�,C�P�T�9��u�{��J'Q:��	m4�O����e�=���rUC��,$��?�Z�����ym�>'��P�����"�s����D�"������1����x\���]'���U�7�=a)�hY\���{!�p3��l���\#�koSs���*&�u��J���pNKA�!�{g��>����kY�X��O��.�� ��~}L3���-���~��fJsB�f�����z�Z2em�9~�h��p{�OO���V�X��q����s�|�]0G�'eB��������_1��X�_�8�6�����'lgL�1j1��@�6�4��$q�fq��&���pi�����m�!���?z{�0�'����M�L�"����q��!�l�Y$"�h����49���X�U	�	�k
�[.l'XVEW��������:"�?��;jSs�#�P��KQ\���Y�����6p���cQD/��z�� �I�g�,��4�`	<��?HL��3� ��Ar5\!��%8��X"^Z_�^�����]i�����6����=^�K>#K�|��
(&�+w��w:V��=Y�e�c�n�c/�gG`���d��d�������):<�BNmx���������T-�N�jc~=�lC�#@��R#�K�c��������q�� �������������������]	(g��8�_}��F�
jC��4�F	������D4�9n�Fk��<�ae"�1�����G1�nzk^j]��6R3�$>:�k2��M�|Pq`��:
�&m�k����LH����P�a
uk�Bws&���:�ud��{�::��R���0�=�u�����$�1������sz	G#��,F��BQ&�<@�S�[�|��3&%j�os���O�������i:������fP[?�f��&A�t�,�Rx`i����=$�k���6T�v=��sU�3+�Yz1g-�03�����p�.���~!��4��5	��l����:�����n��it����F�{W�B�E/�+y��1���8\|N���?I��y�v������<uzG�o�� �_>�
7�k4�=��]�a�0"S�d�O�R1�)�g��de�Ucl
W�����-�N�g���}�&a�;h����"�l�P6�=��G�{�;h���Nl�������:�k�e�b}B3x2�����S�����M���!�C�.�@�:�#��W\�\�aF��z�E��-Z��:����2����|fSs��A'+��W>`W�w�������������/-uC���r�f�U�� [w&��|;�n���]�����vcD��$�����iQ��+��M�Y��
}��� 1O��IY��d8�+�}�|�����=�)`j�����5����q�n������������g�H����&�x�Y�z��BG�W��3�7�P-���X���uK�.����J�]��U��z�t��^��\�0��R{ ��ZB[�~e&���5������Z�#}@K<��p��S�������9T����;��%/V��F��@�oH�������
%��[���-�f%(�������\�9$"�*�	������HX���E`����5�^����*�	a�y�������fv�<&Y*�;�2q/q���P�e�����3��/&�D��&��7[�6�PN���j8I�1�l*���%������lP��{@��`�X��#���
��@�����I����VJ�m����q�}� �9�z!)&��P��qEv����g����d���8�n�s(�O�p���O��R�����:�U��4Q���4H�����C��a�K36|,�c�V��va�t���7�����1��_����AJH,LS�0l�s3;`,D�)	�������r��%(�|�����j�}�+��/�q����\gV'������*�wv��qN���"���!�~G��@\�<�����}�qM�c?�h?P���%-\�����N�����>�x�s�Q��.2���>���P����C�CB�+�����PN��)����pq-�8R�B�:-t.�r������TU=`��fD�0L�I���tJG���H�����4�:NaRH,��]�����������0?U]�c�H'��X���(��2[32v���*SF�8+�H0Z�;�A�R@Sh�V7L��;���M�A�;�� ����"�v�v�u<�C��F�)�"}���1)�1�����I�S$U��tU�'���_���X�0����m�����<�G�)��4�������� 	M��p����J0���s��p�*����T��=u��;�M<C��,H������U���_�LyTE3+a��8�������W���c����{����K��E��EC[&��p���`I�q����E@*��]�|��mcn�A���K�t��Y�.%M�H�y�h��gx�|s����J�~8q��)�C`����R�i��KX�3��2s���$�xU �'!��NP�r���p�S{��HT��,$�u������m��X����E]De4Dt<�~I�C8�F�\�>^��Z\�g��w 7:`�1��7&h;S�����}�J��78b�=d_����4!(���Sc����j�>���*�����F@[�tV�G�!�UA��.�[�cE��u�F�j]h�D*U�u��8r�����e�f���{����^#O_�^tC��f1��YZ9F^hMl�EE\���J>L���7H�97&���&��On�cL�<�p��;�<�)��o;�6�C�9`�g�)70����I�aksw}�l��z�H`�6:�_*�_UM�9�����T���`������$N��$
,�!���\M<�42�-��q�&������ADK\�������u��\���Em��q�����C���kB���������Xk�HE���&���(OC3������N�1Y�$��E��)��r�O<\c{�xN��'�0f,�>q <e�=���H����K����L<���)�����Qb���R��9}�JU��?	�v�$�����
���m�(�^k��{P�*�p��`]�M#��+&KZN%.Y!�p�ms��kz�<���m�}|�j
�O�����mA/��~������
��oY�&J:z��zG����X��p0^'��,,���F��g����c>����_���aZ�Fs\��0-n�S5�������~r&�n�Z)�93�������R�}�����1��ds�(���!	��# �x������>#�E����?��!BSZs3���B�N�r(�(;�D��H3��c\�g��
�	�pP��������g��R"��B2�-q�K���r��r��+�H�b^[;�N��=&�j&���3�GHKml�`�j�6N�]�0G���	D���8�
�F3��v� d��D��3�� �9T`U�	�Z�iC�(�q��/c�Ja~,%2&����jw1�����f���
���F�B��8@��1��km,~��N(Z�;]�,����H���������1��0���!\�_{N��3���%�6�"����h�@x�7bL�"�}����2!������5���A:�����1�
/��_�N��0m�����\�_�����B�m\�S�?�S�I�IU
�p-
l�B�2,Y�M��__\�$V��k��,9���G��������K��D�����=�WP������&T�hz_E������WF�����b���y��i��{��M_1�������N�|��HPEX��-��$����x����y�����Y�<v}��6�6�����������Y��N��w�1UZA�����������6������Y�<6�+�p���fT�������C����E�<5�	��s`5J��Bi��4�������$�4�i�ONM�����d~x
�N�qm�8'-��)�$�I\2Z�w[���^r��1��p4�ANrBv�u�v��`*R�R�D��/�������|�����
p�����!�,���(�'X�T�e3C}g���<������F�u=9RzG[Y��B������o8�vw]���B���u'3���V�,��O�Y��Q�u�L�
r�%��J�R?��hxV�iLo�n`�������<�OQ��S���}�E@Y��|C������G�{�n��S��r������������U�����#�3�H�nw�[AN-�yh
��Q������_�+y���H���}�6�}~��E�=Y:�6�u�+
���M!.�$i���f�FI M�`�h�~������('a�O�Z��{�7uR��o
�K�W�����4�w�����>o��B���������.uP)it�UNE����]@]h2��n��w��v�:���Z,�����P��z�k�M%t��0�w��1wn��	�<��.�T_���J����.�Y�	��g��4��i�Z7�4TAu��F�T'�����Cb��eB����#�-8g>��4�D�����J����JW���S���l�YdJ�:�D�
)t�_��s�Jw��=��`T�~b����N���p�,~���@�>���T�����	>����#�r���nX~
y�����I86�px���L��9��~��5����zG���t�A���ZO(�@P���|�	���F���<��'��\��j�n���2��$�xAy��;]�2��c,�u�Xs�>\'9����s����������O�n-�����9F�q:q�;���4�7C�z���4��S��!�y]��)T�c+Uc�^u�m�I��h��P��H���M{���A0��V@���d�>��3�s~�d�n&�dn��z G��-5��O�Nk��n�p�b�3�J�*���UR�r(��7���B0/��:��t���R�#�Z����������G��~���q�\�	�I�F����\����>�87��@�46ol*a����x��`�d�.��i��T
�
2�s<u>��!����G�'c��6�;
����8T��-�cS�Z$c��cC�:�q�j����p�'�0�%�0'��i8��1qt�j�I��\�A��y�x�s����9��C����#�%��7���Q�>b���� /�`a�=�����:���F������z�{:$��
�>��.��\&������u�k��=D��� +YE�H%)�������*��Z��u���[����ywy��
����F�Q�i�]�	b�?��.���mV�D��B�1�����vC2<�q�
/�� ��2��W�Q�D�~|�Dt�&!�3o��V�������!��/��bSY��cXI��N��.��2��%����`��'(%<�T1����c(�	G�t���w������pj0M
���p0��X� XKfK<�:�<#�f�)���i�R�T�S�f&<o��{�N�a�����!�Z��}J=�L�.!����n�X?P|�Z�Y~�s9����>�����8��8v}L�i~6n����K���7�q�	%`+���`�\~��_��R�2Y�Cdy��
�"v��
3�E��,Spm}w��'\��R������)
6����6`n����$�I/�g����8$��L��0�g��7������XKW8���f�
�������^"|l���-�d<X&�k_�O�7\Y>B-�$s��<�y�V���a(��U=�N�z����#��`:����Hu��L�w�|���	M \�%�I=d��R�9��	a)���6�:�*�B��9�A��0Q�w�h�Z���LIBb��1�����
ox��t6���&�����Fb����w<�x,�2-�|�gEv��nP�R?�E��
F��)��x�IFC��8�k�{���sk�[zTr�����C��I�N:�k3�\t'�HQ�W�to�|�9p�G�^��d~K�$m�����H�i���I�b�m�K��S���`<?�)��KO#����LC�L�����{�5�=.T�\����8
]�����i8u��'���,��/N�Dl���0N,�`+>z�i��oJ^�%���ZX!*�e��R�D#���)]Lf�8C�Y�f�%&X��Dv�Q�)����9��W�H�@��Zh�]��/�l�C:�����;L�%��PP��
s��S3���?Q$���L%���X�8��*?AT�����X�H��L���X*'���9y�X�h�<��-��
6��� �����t�<��K�'��|@PY�r.����`+�����\K�j�����n�1��IX����]l2�t�7���f��w�1��?�'�k��I�G+&�s�!���(���N
�z�9�^���K�85?#�:h����LU�-��]N}l�&L[���3�:��(������kc�5��w��0D�m�,>��IH�*@�1~u��$P�J����L4u"<�`�V]o4a��H�iN8��2���+�-=|\����H���@�;(`�����.~�f�`����	��s�&]mM����=)��Y<1o�
�F��M�����,�E����M���00��s�e6
�=��'�I�c�!g��d/9�jd��:���;^��_b�Hg�nD��%�����Z�;�_3�g��-O�����+�����/��������jnt�ehbn:��.���Cz-���J�+��c��������>����q�)r
��Un*�\�Xi����I�LL���i�����(_��{�D,`���;�,���{����jl���0T�����#�>�����}2�������&��zilS�}�?�T����N����<a���@%�`����B�^j��p�A�w���1�%����d�7SX����-������<c����s�TM�G�������]�WYA�-]V�"���z��2��M����k��BWU	u�.��20�)���>��)�O?��>8�2��l�1���$�z��e�`�n%�Q�e���Z�G����mV@V�$a&q�`�������+��L�����z&�}���M�t�������`l��i�&Ru8�O\������.�',�`\D��9W(4���Z����s����L"`�H#��y/SLE�oP������'�E�?��?���1!���������:��k��8�����w�T�i���������g�#R���X�H�����`)�)W�i�u"@d����_�a�u|���"�V�����fK��\qI8�xV�������?��R�s��4�5R���Y���,�&�-w]�(�xa�c���9PG�(}/%����>n8����'�D�����?�d~�MRH�S$K��A��	�
i�E k���������L����S ��#	8�#6�Ph{����X������>h!�x�y�cN}PL�*�[�{�q���Cbv�0i���'J#�[G��dv��~J��kR�y(O�7..�3uGjZ����/R�
2�� ���X�=4C�/E���S80�xnk�����'�����V�`D����wgV�%�/��BoN����9r*2����o�������@,W�vp��w��EB�H��EDi#�B����}6xu�����
��G�Aj��� �	�h�{�	'�X>�+��l
x�� mM�����Q�!*�v��
�R�q���j����%��67�}����v��6	1�����nx��Q�
�\i��V��\���\R1���1�n�CD��tN���������'���y)��}+�^�)��;�|Bc�R�)���Y���t���Kh��|:�i��E�7��o��
�)D��%�w���A0�H���z�n�m�!!�cALk��3{����~L@��o��1���\�������������1W8?h?��|�F ��7t���T�\���O�o���'��^{��IH�e@�U��:��b������W��'W5n�*�_��v2�^�8c��O=W<R�%�����G�L�u���u\;�E�H\�[��u�)q��q�o�)��8��G�������~H�yj	z�k[o�e,�����$c$�2]R�~��J�	�s�tH�V
�%�,�mu�%�T��6O���_�Y6�t�g�k*+\FB:F �����E�"��9�I��`_��m��n+����@=��;:�����/5��3d--�������)�������}�����z ������h�]��|[��&�O�
<V�v�+Z~�V����L���~���4�B[8������r+6��<L=����;�d��&���[6�_����t�1����`M�!��y�N��x�/�~�]"�����m��oB@b��<��v���kc
N�IJ�&����1W�L��{�	�"K=B���K���U�}���u������s���������>��p.��E=����EE$;�
��7f�xr
]W�6Y����w���&J��HP�R�������m�?>�$�x�_`Q���� �B)���v�-\C�Bd��is����F�u��p.S]�#��j��a�����\0��D��lk�"�R�?+����fI$[�����X��Q����R�(^bX��v%$��I���k���5UV��/m/��l��[��%+x�y�1�O��b�}�UZ�� 3�Y���6�9����*d����������������yLd�" ����ov�~�<Y���V���j_&��M��~_�ws����U�]~��\�c\[&G��1	s�����������	]���N����~�Do����&���n�#���c��&��E�M�o������_�+�I��p�S���;�,���<���C����z2�%)���q"�XH��m3�St-�G��$�
s
A���T����:�D�$���}������Pu\�������n�q&������[���h�8��%c���%=d�H!2
@�So�U��V3 �'���Jxv����6-�L���T�;4&`&;��D7������j���%�w��+�R}�K��:���Cyv�g�:�j*���0O�[�7'i�c5����K���������\��M���ur���������u'������eI�6���$��	?]�]���%T�����D�R�������p���l�W*���",u,�q.1X���$g�����|����iWW8}����~�$g�<�n���Z
����2����4c�H��E7yjt����>��Yd,pxW�n�����&g�u��p��7�/��?QFA"�]�E����uU��5����-n�)��]n�a"�g���AQ���"� }#d�*���W�G��G�/�*�i�v/Qi�NK�>5{�_-����|�4�~��m�yn��1/��ICg$�+��L��NO�k��C����e����9�L�Z1u������sNA~S��|%p������\�fu�����n����=W��+��_n�����������r�KmJ�������H����R�>��+�n?F�-�8W�.�R<$u�,k��������Q{�W�U�Q%��8�(b�U�����D���oR�Y0�s��`�\KJ����V��������l>����E@������>���o�
0�\E��JFg����a�!�1��4j���S0��H=�5����h�h�����Tcm��U.���>_xfw<��!��W%�5��BJ����/�W��-���p�Q�
$�����-�Y��F�S���W6��{�����.��J�T�Z��8GcCARx�7x�n����Y�u�]��EE��U),��N���I�r�K7����;-����D�h��*/�=��RabQ�/��������3G���X5������s�<���dN�T���<����/�����B�������^�PH����9gLw��9��}�������4�#;j��u�%��a�)���O�������+r@�!�~�����:@Ryi��e�-�+�����60��i��.T�Hf�8�K������������>q���4O�z�����
\?qBS]g��c�?!<�~�+h_��R���m|���������u?V���9N
����M�����-�Ao�������f�������Ov�\��s�j@�W���������i}7��\�Z]���f���~���"y�N��.s~ ���]�����^^���,@,��q{��X����6� �U=rJ3/ �L�9���t>�����������%\��4�B]�D��QOQ�����Hz�F���3s��$���6�� )|����)+i���Mo����TB�#�M�M���C�;�[�*~g�k_�
d�VOud�$�^�Ph���)L��fbiR���8��)��8)M)�,�/������3��C��J�a����9�A����VE"nb���W��r@�3Q�����L����K�g45�b%������J=�0����/��!�9�z���u�-~����hA�	��\��q��%� U�F����#�m�����V'��C�BAk7����M�]�7����~��������a�o����0�7�)W��@SI�c�a�"�o6�����u����8�LQ-@��|G4/]  ��j�sm���G��tK6��K����:h����Pq���{�m����P��t6Y�
s�y����z����c��|�������&�m��:��2�:Cf��I*�._4]���f��t������~�o���(Hn����`���AU�&/O�'�Jv|�3f��-M��PQ�z$�J��N����L5��?��]�y���SJ�>W���<.ag1��jT&����LZG�q�^?�9�>�p�iy8�|�����<�
��;���vZ�p���w�@Hr�s*��:�9�J|�)�2���+�3��,�
�o4J<`�
�
)"��&9I|��-��V-.7�~���1V-0������b�e�0������Yy��g��==�7g�u�2j���Wf%;�D�)sr����:q�vXl���7���Tm���$���o!������G�a��U��A�[be�������_�;L�����5�no�wX�`�.v6�f6a���X�������{�e�V����������0��*�����C4���Z��:��`]Up�U^)�_3�l� y��%(G!�����n$��c��RXy�C��q�e}�Y�!|d�B�
���<�<\����.���o��4���H���
m��%� UJ��oX��=��HY��&s�p�:#�0��������n�90���J�UU���/Uy�h����7���TA�n--�OO�z
r��q�3q�]:��(w�rq��?i��[���*�"F�1�K�s�:I�Sc`�3 )�J�I��b�������e����v�7��VE�'����6��8X��`��c�8�<?>����g��F�/����u�9�n|��W�PT�����{�x���IV�	\�����<��(��6eu���	[�94���K�4U-9Ifk-��G�~j���+������&nB��'�+i����
�.	���G]Y0�,j�+��)�����l	���1�N�$��3PdYK�w�U����L��;�:��;��WBV�+$:>�g8�.3�4�Ml�1�5�2�1P�r��0�~yS��x�;�\R}��f-8r�g�'vzI���>E,�B�Y�8Z�(�� ���E���[WR*R%4�'!^r
>XNI��
0�D�j���xc��+2�;���C����O�"�`o�y��i��~=lE�BU�b�C,4/(��0�G���9.M�%u>05�kx�:�$hc�z}�Q�SB�/1m�e\vq�a�8x��^y]f�}�����Q<?��^���8��c��i��5Wu�������9�	�4!`T�}z1���Q����C)/�����%�������; 2 �s`?q�q>�����R8���N�e���t4`H�{�i*Qlp�iE�
#���Y#����d!����b��6~=��$��	��G-xf?	Lnf��J���I��90]kA����*6��9q�7�jH�����*��6���M��*��d����;Z��OJ�;���P�����G��T��<2+������c?t������b%.~`�`��]@uC�{g�����T��_f1,j%]T��Mf/m�"�M��?5"l.?��z��R�"�j�sBL��� ��H�n �����Mr�>�Y�5��]�%�n(v��	��1�k�[x�Q�t��2],�A�v������t���nt���X�W�by��o�"���Gj
��;�Ok~�M��G����������j���*8�V�ALJ
�K�j.��E���@2N�c��SK3Z����J�v��Sf�$#�����1z?��[4�)SV�����s���*$�X~�
�5�`��0�����@��ccCj��.���h����\�[�r40�}�LK�((2<X��JS�����aI=�,+>g��{7�S��"H�x�I,lj<��!�����C"�`��G#n�#/��n�
�C��
���[t����^��&JDe�a���5���3C^T��X^O�1���Q����N���������N�E�fRJ��:Yd�iY���?u����S����3 ��Y�Y��sw�v���
u����.�f�s����")<n;�g�c����K���E���f��$��zhY���]&�^k�~����
�N�	����IJU>�I+a�[x������M��4G�q���}R��xX������fA�"���.M��)���D4�6w�7���l��]@�l�U����i�EK�������nG��>���X��4w�u�����N��r�lUg�e����P���,AS�d�HVF�4J�py��-h�_A��'���n�G	�iz��X����}�Y��i�D�L��S�(�iUhS�0��`���1�-<��VA�3���;��'�\��?Q_������[�Z���%=Sg��W�e����H7d�5�(�s_���D��4Q(cU�%SW����L��,���9
}K�g�kB����_=�Kc]��yL\��^ex�8 o��`�Xc�I^�+t�/����A��$�>z��Ih��,���wMd��-�����%�K#7
�FOfc��\�Y�J��s%8����h���������UP�������m8�[�w��w7,Z��t��H!Z4�8��C��o� �����R�.��a����4����1*��m&�������6w����l����;g-��g{7<l�H(Kf$b���)��#�LK�E����7����7W�����%H����&�`o��8����Z,��Q�i���\�}Y��lJ|n3Z��f�S~�d�$�����Jk������9��L����e���u������;UHUQJ����'������p���4����%���U�������v���U��S��w�W`�2��R/�*�3?�p�5�{}�j9_���t���CY�eN5V:E
C��#Et�bS������W������������|���
�x��)�����>������ZL��2�Ql�����N$���J��v�b�b=��8��������'���N<M�{�@0k�)Z�����r�@S�����4�<	���j2���Y��J��/��������u=r<MO��W�������{ot��������)�	�k^�8m�r��_���>���{,���H��)�2B�l
�}������<�����y�� �������s��4u�N��%}<�-���v�]��w�u�WPU_,�|6�+P�����8��\t�D�}(/>�X��#������.�rv��j!,�$�H�V�p�Qrq^���$���OC����L��-�;�-9���x^}��,������C������w����P��0:���e��OI��k�S^�T��/�����)9l
.�E�����}����c��i|/=�(Z)U�F+�u���4�ym�4/���e���>+]-�o���k8�Tk��&�s��H���S��N��!�W=[�Y&��z�c?��]������*3��v����p�Y��*���<�#�����/PGN����eP��,�t������
���:���c�m����0��*U3��r����J�$i��i)��]�����K�/[���uy����8&����*n��-���Kd���7��x%h�o�����H�J!���"��Q���8K_F�ut��r��u|iS���U�P@��6��f��3�������[��-��M�S����c�{'e+ �_�q��?}��YyC�E:O�N�s_|���'�V)�U{���e��,���0
j�6�P�9�sL��Mv�|�����B��c��-����(���h���BV�{��;d���i��S�5s����JR�/���/i�����Y�c��,��W���^l��7��1VH��X)[�m�p�qY�!��4c����\��H}'� ^�"J�S�)��	�[>�u��it�H�W���FTc(�~�T9��1b)�����j���k^:����*���1��������#��ini^��t\��9�o��/���>\�����>��o��J�����A]�z���v����f�E����w;�6�]��Dk$������{���|����o���
p{8R���@_j�h�3`��]�K9���������R2��X�0>�]D������K��+�������f����ue�����X������`��)�7�V���	r���|�Dl�`�R��&\mL���1���e��3V���n�=�V<u@4���S8���]eD}2)�CJ2N�U��
(��F�I�����!�(���V&
fM���p#��K@m�}�hr>��N�<KN��`�Sy�1�r�=v�AIrVV%&i"H�nj��������'T������ �6"��:������vI���$�U�iw�0ZM�g�G8vp,�CO
���|�U��8TjT�\lt�/���]^�x0O���p�G�g~wT:�2�ga�8@���8.��OCE�erOs�����j����pX�'��
�����'�P��	��N����k�.��D�p�uu����3=�8y��!�W��wyws��rs"I&�~�d���h^l��8�TL	��P~P�l6G��oq�=wb^G9�N����d�#v��dm���eS���1�L���C�6}>I�b)?�w�N���B��"�l�R����{�%�01�n�c���
���3[����|C���	u�_��.���B�s��� ����� ���|��U32��F��:�x�|&��uU��r�AJ�MG���m����`����.�]*�{�1����P�������B�*��+������ �7���������!;$W~��YE�5E{�{�V�u���0�)��myG0��Rm��������m��f���{uX�����lx�i�����T���F��&����|�����$^��%(��h�*=
T�h7������dt.����s���g4�O������(_XB���q{�b���v���1�����9���W�s��8��_~�JC���h3��c�$����)Xs�`�R@��tL��	ROVf,w%y�F�A���@
��@t[D���x+�p '�����H[��������x���8���0I�pv������(��6X��k�?}��4<@��	4����B�,{���dK*	��D�6�G�w��� m�~LQ����<g��
��-����A��FW���W|�\��F����m��G��(^F�z9�[h����$������
���c��e��Nm2�=��X@�+��/�l�
th�g{K�W("�����i�;v�k����#��I���n�{
�<���
��NeO9A�R)%P{�oX�������u��?������2H'��?xAM�����T���V8L�yU&�W�Q?����e������c������7������o�G�1Z���sGe(=uv1���;��Lz�$���?������Qg� O
1�����Aa'81����'7�>���u���''l��d�=Z��&<1:m�lP��S�}�g#��?����=b�Z��t���J~]U������c1��s��?~�N^<�C�C+�<�q��g��9��_��~�/�tH���~EM��+��+�i~�-U���������(���t��������x����^���BB���C�C�o��,/����$ ���������`�{����uuy�G&*M����������F�g�j���Mo~�c�`wq�N���N�m����
����'z��u����#�Wn90*98����t�gp��4�~�3&5�I��,M��/~u���l�%���L��(�[f�dH=�����`��
���|K��%0���D�3�����'��5R%���s�������yQItt�.{���^e�����/����������;��:*��QvVk�����c����Z�?��I��!�?������'��'�1�#R��,���{�������'��*�����A/���DY��Te%�S�&6�|�K�3���Q0r������,!����I(�e��^���7�d+0���o�����Q��L93���1������]�N+���U�9:���Q5��v�{5Q�E:�<����h%_2�f���sC��}ds��?���������%jI���/'��6UJ��O����&�b`��2��I�����y��W����*��x��G_����Tq�EH�Z��#�8'��^z�� >�Fn�.���'����RY�(u4�k��^m�D����F�Z�H+�f���-��I��ST���	��
���������XD��iD�6��������d���B.�$P+�����C�,[!�9F3�sx7,m���*|�v;&�L�����~cw-���g�����Z7���������\S������=�)\/>���)	B�$N�V��;�1������u�~[�FN|AVs�}A������#��d�d�3a/�����Wb������d�D_��X��^�?�5��
�����dv�
�����p�r��rk�Wxq��}�|�Xk��\��}��v������:��*X���:�f��
ZR\��:�A;�_n>o��6���r�M�i�(�E9�������r�����x���0%�+����TN�,>fX���:�6��(p����+�0j���k[�U���t��%���g���S��b�*�g��0��u,a��BS�������tQQ�{�UJF7_6���\y{���ca����m����C&S��LU?���sf�=����J��TT�Of������\ab����4���X`�-�?cW���^}N����4��������xn%��j�.�s���S��@�������*2o���`c����ii%Wn�����~�[E�y*�w�KQ�Idn~��a�L�(1��}�J�~x>����tj�+�I���<����������TeB��AG�iZ�4)
�y'��i�������
�����>���3�M���Z�yn1����A�yu	2\\}�����eH��z���c���G�	����R�s����qA�yn{<)��b����J��`�(]N��iI���'�Gl�l]����
�;]r��#�(���$��R����%����79Nh���@�I&��+�E�Gtow�78%\:{�m{�x�|���Q��i���>����9�0�,_�A��I_y����O���w�8_G-@<����A�i���N�%����
uG�.��&zs�!��m�=R>6�Nb�5�s��IA���
�*�;�$��t�tw�$�MB�8x�.�mye�t��K����kC�w��2>��D�^�S@4Lh��A���fn*�L_�%}���$���%�k#Z�f&���&"��U'�����f�]r�'Z��g��n�[W�D��J����~�SrQ'|4���;z)p��S, �{�_01~m��S��J�)�1������=�Qw�
��``��PB0H���;�������awhqu�*�;��C�e�!Q*���Xh����L2���;b=�!4%�u���������`Bz�����qyb���/�������Y7�jzu�����	w:��d�)�[h
�c���K)���)�>&�</��k8�}��g��n'������Y�Q(�+�$^=w�����D���yj,��:�u�JGB���u�L)K>�"�+��'�\�i<�0I!�,n&^�1ihi<w98�>`�����p��a�x���Xe�E���i�e���>w�]\�&M����7o�{�Ly���������@.">�������B7.�B��D����C��I3R�
p��FD1��������}6��%���	�
v���I��Z��l��e�Jb�\K8�=F3��I��	�4�-�_�pwI�����?c��n��P��QAIP�a��<{3������8��u�_V�Ak��!i�_q�����Q�C�y����{^5�\|�\�]�$i\�+���6��������]�h3��%�
c��P�aG��+K�������n��5��G��	z.�y=�������o�9M2�
�����X��/	�a��W��=i����dB��.��3�`��R��N=W��GxE*�C�������u��+�47����\��W���
G|��z_���OI(��&*���Nx�����+�����$�0��������1}�t>�X?���/�k�-%=����%�]��
���_+�X���#8e����73&���T������|��Z���U�r.�.-�����.
�n�,� ��t��?�����r_B�]��	r�5�����u�kw�/no����M�X��3���
�L�`��z��E�(�A���!�S;#c�.f������<^�������d�6���	����7�Q)��?�g�&Q�j�=7��.uk���	y��V�.}t�gUE�^�$|��#�R����~}�l����I�Y����5����eq��4.c�bTM���$����js}�����>�s��B�t�SqM]�*�]d������*�]�&^����S7x���������o
i�o���+={\����{����=Mr����o�[���Lp��I"����Is�_p�'��UH����_�Lc
|T�$�`�����T��T+��3s�����R���F�<>b�������](+�0������u�����\��qDe9��;�#G92���Z���\m>{�)$���c�L�5	��uw�:���k6mm�����s����x������S>yP3u9O(�;����_��Qxj#SO����ZM����E���Q��.!��4ks����L%1F($�t����������=����[�;G�\ ��*Qgg:����~������Y���I2Y&:��R����y�8l�.K@$|�)�#_AN�$	���>�]�:������i�!,UW5��,B��	�q�1����/n��3����z�E��b5U>s� Ai.�k/2��~"�a�7��NZdS�nT7�
�vM��x'�,��q���Oi@��F�i�f!��cID���X��2F���9U��a��	C�[�7v���aC��C���6A���v+��
�c���%�)�c��JG�X��g}�>E==����yzQ/���.��3�X�"�
�����K��YM�jNc��k������^��Ua�
Q����T_�aV����f����D���q��=��3 �x|�1�{E��@���S��!�^���H��h�]�3�A��%������|�u*�2�@�
K��j�	w�2Y��q��2�y
RW��}���o�7M��-�����b@��|%M�d��U����.��`��o�F<Ys/A�LX���|'D�^6�������W�X��G�<:�/[wJ��?\|���H��s���"��!����2�����U�GT���T/b�>���,�Ub.z_�=\_uEv2�����vS�,$�Z���,���M�MD8��b\��mR��Nm����H�+�Y�8^�X{���S&e��Sy������A���[��,^c^Qka�]�+�7����D�����(��\���aX��(�6p�_#�^�W���^�#W0��t1�{���b�"������4�n���7���e�5�A�D��y|z��[������^���BC��]����?l������U���'�X�L0��u��E"�<��t>,xjq�@�g��Y���z�����g�:	tl���R�����T��h���\��c��Zc�u�t��0�����5i��q}w��L�����6u������( q�0����F�oh�';	E3H�0�N�SW��?��;�D`�V�L"��H��6�u4s��<U+�h!�oc:�����e4�������5������"�;]`<�;OO�����9�L�+�0��S��qD��(d��!SN�TR2
�� �@H���4?��������$�5���C�{�|	O�������������EH�]�D�+6d�n�=����gB C��__mL�>����_"�Z����w���� �M��C�
R�g�c�R���nH�nS�*
���gQs�U����8s�p�W�|Y2�����V�24�����1�r����owV8\�c�}�9�'w�RcH
�- +6���C�Qp)�U�������P�����O�~|���4��f|��w��� ��,6a���y�k��t���	�,.+?	F�?�Q���[2����������<�^���tS?�q~��#��d�*���fV%]�[�)�o�zu_�D�9��H!�)O���>���z��4�G?B�i���S�c�y^�����Nt4�����	�W�lcG8U��{rL$/z�xl$��� :��sk��:0���)+�{�!:�a�Y�����	e'-R���FT>t��=#�v	�p��	�:�A�A�����[�M^:Y�#������yD1� $��>�%�dE���T����	<M*����oT���k\�}�21T-�NS���K4������.3/��~zti�p�q���h����9��	���[�V���a�ra�Cr�*@O����J�[\�`Q������,2�����D���r�����8��@�������������*���S�o��n/�5D�d't�lw[3o�1D�������B
n*���YQ�/]�F����m��K�F_�v����X�c��ZV��W-��o����o��U�S�#K��b�?��\u'�_VA�|�!���-P7K%��t:��w���El��}j(]�a���e�W�l��8��s��W�*��I����,�8�9�����>��b�T�z���>9�E+���N( 6H�:.��m��B�E��G��Eqn�]�v`�j��#�kP\�/W�X��;(�!
O�	�)	��I<�;�3�/�y���`%���I���v��Rxe5�f����%;�\kJ�}M����6����-�K3W��97y�W������4��v�U��u
�6�
�
���E�!Lyd*�����%��co�-$c��x\�������:�LA1��a��%p�	�f�+���|���xr^>�s3rw� '��.g�&&�pyC�sW�p^���������%V�}�G��] ��DXS�
=�h�)�J�����^	���Y0��8*���>e�zB�#�[��O ���~H�E��
���Tu����.dO���q}w���.���1>	�i�k�|�3r��E���ty��z�iYS��������~�Y�L����U����/�s~���a!��o�����.�H ��rY��PT
���x�X:�l}Xt��8��������z}�����U�����!������^6�6u|�BbN��������h��9����=<$2���%+�03�g�By6�-5aS��8��c����8Xz�*���������`l��WBO��]�w���U��1}S�[G����~/tuX��n4xiD|�����LH�������)��D�����x��T%���e�:��th)��KB����Ms��cPPd�N
/b�8����}^���d^9~�6���s���cj������c	��H��T�d��|�MnxV����_1��r��_/����9*���0D�Yc������Ef���}�����<��R��!�u���nL������Y�4��NX�#��4���J�a�����tr�Mh�n� ��t��=�?���O����3�������R�����@��K���B��"��+���S~.w�p��s�,0�P��NN7����?���u�9z����n����\\�G�^=���1N��������j7zB�������iZo������c��8��q��&\�)=��U����[C���������Gb3��Z,��V�Z�%Q�%���8�
E@|��L�*� �
G>�~��#q����#\9���6l�������*ov$E�7�r�v������;��@xt���1W�o2��G��*�����RY�Y������P"����	�������bd�\�_<~�����]]_n�n?2@�KHO�4�����L_ U������j{����!�R���p�[���OKD>I�>�9I�Ci���
�~�������%����gy�B�K��:h/���7��A��`L�`\o���]� 	k�@�_Q�����`<:�I7�L8J��'�>�����t���O3B�����$n��BB���b�KT������-������}qY[0�X��}!�q���3��
�yM����l���B=~��Fu�<]�e<v��
�������RHn�B�(�:F4�
7B�g�U��Y+��q��.�������2Nxv�������g�u�q{v�D-�D��#��blz�@��<��g�����j�g���}��3ns��>����}98y�����J@*��c�2��=n'��f�s|[��T���Frt����]�H�Z��S�tEs��l�6�}�(^�qbp�U>%D0��������J�c�$��\s�8b#��|�>���U?������R=h�0���5��G��m���?����a�F(�ic���(��'7hl�����+��d]3�3�:����q/��I�g���x[Bc\�������F�������y�/]�����Q�(���2�N���yT�$.�.��i�������;c����0�yv}�����/}����4�����M`����u��v9$/�'r�b��9��=q�f&Z[�<q�*�&��6��m���~�=7��C-N	/�A�iX l�t����{m���Ol�����0�#N	��	��
qMG����tG�������Ty��]Z�#-H�6��0���tj]����H[�� ���y%%����#�C�+CS$���Z�<d��8A)5��o��iBge��9�x���0�����6��u�YIC<��b��>b
�����0a�F���Kw���q����=f`�:�oK@�Q�3���X���~�W�3�������p���.���/����}9����3K������+��VT����A�(7$�_����|qyS�LX�s���dV�������]1}oj�n��z���i���-�^�7k<��V~�l���Q1!�5�-|}��
��R���n�t���#88�r��!��xN��~G����e|���,��f�.�4�M��'�_��O�/���|^�J
�Z.� ^p��Y��	��I��������^��o�i9�>����k���4�*;^}X��n#��Ud]h���GQ�U��+�}�z	6J��Vo\r�5������9u���X�q���EIGx�85����W�:��2zIe���N~�����8��"I��o�>s�Gx3���u��q���YA�h����z���=V��i��H��[XiS�S�u&�o�}W
h���@�L�����v�v��~�����S�:�=�����p����w�2E;�u?7��X�����3+9�e���"\���C��	4�0q�`�W&���X�dW�z+�'�M���'���d�!�c+�����Ekcw�����a`�;sf��������|��+q|A�F�P�Dr��~b�,!�����AK_��ZcY�)4����3������A,���M/�wtL@Y�
$�7�����-�b��B?�#��p����s���Slx�'p+N�h
��Lr3M!o�-t��=��94�8E����f\rYUU����;�h!��p��s.6�n��bc���gM�h����4Z��~�������.��[�:t�G8Tp��\o+�����6��G�*�gR��mu;9o[�����xw>�}n/����w[�G���5�*�T�6�e�v��F��������<�C=<������a�;a�o
�0���`1>	kX9�rDp���x�a��6�j� y�N��wB���@;M
C�����_���`����l�O=��q��8�'�9�K�{��T�G^n����c0{6��+�jF2���G�;_Fjd������pz�k���lj����1E�������/��v���<4X^ ����X������6�w���Z�/��MWa�a�w�U
��c�S��)H;��R	v8�L�(x�cx�F��Z�Q��o|_�p�`|�6�����n��h�'�M# @���1������5*��.�x���G����:�MOX��5���#�3|�� ���pj)��G*?�<9��?�'-	v���[c����W���I�GD�������lq>��~�������rl/L� i4.H�]|���%^���� W�}1d������]�����e�L�2�S�=M����)&9"cN��f~8�rSj��ShI�M���b��|r��j���C�*|Q1
��i�M��?�1��<U�"gA����������C35?�b��l8p�2����q�:�]��~��I�V?]�>Xulh������o���{�,��y?J����3�n�X}��qsM�.�$.���Q��1�Q`�A����b����l!����BG�D��>N������2�����`�Yj��t�U���3/�f�T~�S
����3��������V#Q������C��p.!u�3��I�����Dy���m?�n��gb��G`���9����Q(����������C'�������]�P��'����?�����0�����Q�#�
L��n�O��i���[��s/��X��0�H�`��/�����m!!�2������ky�)���~�'��I�1����o/i�$���E"/+*�����N'b0d�A�A�5K*:N���y-���b�2�}I���[�����3�Om3�zh�����T��`�?�Ei	��4�h��b��B�du������E�W����H���VZ��v���1P3��K�JS���S2�R*}���VBi~��Y_;���m'>n��:�|w����|�4��P�����T$��@c���l��������Zp�a�����5���9�����7�H�3����������I2R����/.�S��m�� I�}��7�rQd��1��t���b*l�(8���Hlzlh��:kS�?�X��M�B=�DdS�R��h�.����M`���.��O�>�<%�������i�c��JE`��/N���%���o�D|�>L��g'��c�+��a?���:�v�'C�/&�YC�5�W�HaaR(J�2����x����us�
����W�L�����8�{}��M��%�-��s�u}�T�nD��s�Ok_�xS����c��S�����g��h��wyb<TVi3s2b�?�����E���k��zI���3�AOd���q#���K��A{DZE4�YL��G�V��,!���47'r�s�+?�YB%	q���
=3��3J�y���#�pu������.>��,}���2����B�@�V��6j���L�A���1�. ����� ��r>}}CwX����<h
�G�����<��S���E5���-6Lqv�h;�Vw8�0���a���@�0o���D����$Y�����<d���`�:�Gwz}��,�z�����p����[��?|l&>�G�L���r����~X�(wM�l���B
�m�!u���n�����������.�S�(\�M�=Y�4Z�G��]=q�7�����T��S�c�h�V�
,����R`bw��n�f�����`�N�R��)<�.���M����������d��y�6 �1����)'�����Z�.�����{��0q	8�I�-�d����'��F��k�@A�!�/���Ht=�LK�E�=�:7=���}>;�m{�����L����t�����]��R��	`V
��\��#�.���>�Ebaz��B�����q%}R�n]�KHt8J�����o�o�����	�b9q��KJ�y�m���B,�y2\���v'y}�Fa������$�r���]�i������n��5�w��4?k���.��E�w����-D������FUy�,B���JO��x#j�m��>_��~8
��#NUBo�)lO���|������)#Xn�~�a�����5�+��"n���z�q��+�8 [�q3�
� ���BJy-E�	�51�#�2u�����$r������Z��9��Xsf�Ix��(;\�<Ei�9d����uz�?J@��T�f����;Z��h�����[�]������h���.e<a_V�!G,y�QJ��x��9	�����
��{��,
g!�q�yA3����I���u���}aY��F�t*���ZW��W5�����������N��>��Y�X��0��^0O�V=��������B�9��~��y ^b�4��������$�,�C��\`�����vq����D����.!Q�?��,���=l"o�g����dS����z�]�+JyK�@|�o.�r��h��N����G��,}���o��W������P)�_IX���V�p��k=,��*�����k:�T�����]"/�ky��WQ�t��9�kl��s����t�o��������@m/��uN@�8�<����������e�;��E'���m}��o�rl��9��U��F)8S69k�����f"����9��z\=���Z?�fQ,��c�z���F�%�kI�y08�����I�%Q��p�a�W[m��Z�g����64�|��)�S���1vo����D�2��!����/�c��%K�����q��J�@YO$Tn�!�m�	�p� U;[��������V�kJ�0�nf�">�1�a9�*��s����E��Q7�b}�����1��m�0��a)�����������(5o�}A������n��)�s���D�E8/^�N��'�U�c+�w\����p�\��Xp�)��
u95q@�|���v���L
:u��]1��&�G��p(^�g�A,��L��s�%���1G���kbY0`�8,��$��L��)��#@���,���F���`o���o
R
�^�L;��,>a�&��N���Ez4�8�e��}��e#j|DN)H��nLby�`[*����W'�+V}�G�(���g�B�RP'��0�D������Hm������	]��_�Z%���y���	��}K(OgGZ���3�]k9(�L�����w� �LP��cY�.t[x��=mO�t���t8�2�I�W4��S4b%Lp<8[:}��S�S)]i��]���A�����{ny=p<��;z��=�q���|�����*�-�0g��hwkcZJ�w��q��6p�R$w��OMN��R"1-1�G�c���>���]�lL$!��r��������������v�$��c�6z�W+`$�=���^�nd�����F�.�q�T�>��)Yq���G�r�<�\������5Nm�Y�����P����]n�ml�~�f�a��������`@�jI�������H���|���������#�dvZkj�.�l\��
l�>'��x�����OI(W<����(1�Y��	�W����G�����~��h�C�+�AJ��]�e��y!�+N1`������\����+�p�n����WE��U�)uX��q�����$yE�-�V�C.P^t�Xl���5�GJ������b�w�����	wYN�i� UJ�8��I�%'�f�������>YZn��S��##��x�����dbw�5FbMW�O��,O�@)�>I��:��%�"��j|
2O�gZ�.�3U�^SX�t������F��my-��4��l���;���s�
��=ju�w��yk��<��P�UY�E��vr�\�i�)@�$��[��#�������.��2��k���Ym���L��U��X��ynal�fi�P?)��9�u6���%hV��s5���cS^��|���r���ki���IA����mf�,���Kt�L'Z��e��6�n��uE���2{H�r�C�n��h�
�����R��<�]���.c���������_m�������|#�% F�������M�����/��N	�"�����G0'�D#1����s�}��������>�P�`NIh��di�9��.�\`L����n�����M����`��il/.�/�x����e�B#�6��@Jn�lS��u�$*�I�g�v����u��G�Q�b�F~wcto�T���>���y��d��`��8�RX�23Z�c�d�������|;�8��9e��=�H������Riv>��M�rV�x��M�9��Ng����"�5cE,�j�g�4�e��Z}�"�8C�P�z
���������fe�D�8�������������w���,���Y%Cv_q�0
�]�����q��OI@8�ng�V��:n�������IO��������ek�k_k79I��S�E���D���`&�H ���\�{���������g&kE���������w�]MjJflx��si�A���b~	Z�'F��{m���e)v<-���]��	o��w[�9p�P������s�;��)��'=�O2{�<(H�����_�:��
a��a���h���c:�1�� ][��(�
6erZ���)����#%���|���	h���Q�}O������������^����9��k���b�F�&��-V�W~�<O���Js�UGi�Q��"��|��k;���
�� _n���k�!�^�����Q���i##�v�����{������V��k��I�S��t�Ybq[h�k���O�t�@���������{��Zv��.+�;�"C�Hu�;�������v�P�oT�ih���M���yA�E�D��|��
�����w&�K��1�������.�ct;��:IPa��D�~C;=�8.U��~�_2�������J�)�e#�a�r&�=c
@[��1����;�=��V����3��$�5ym�l���l�M�������l�������q=�w8!.C���������F�]x~� ���c�	u��*�����T��`gH%1A'�|�0:$���b���$f
_��T=|�
7u�Y�i���vaD/������7y�/q�t�����
���==����ra�v���F���X�1��k�HA��*}�S���l�������,�B�Hwy�S���N�c�g����8��/v�i�{������i��j��.#yP��J�C=��tO�����z�(�v�&3����2�r�9�>Z������Q
�����a?�G������+�.H>�c��R���&-m�;G�|��c,Pn��]��"��|��Qz[ ���Z$W>[��q���^���W�O�~��m
�v��.���|V����]���sBS8L<yV�(E�����k�1�){�0z��5Aj����4?��K�~�� A6�^��)*|O���X���{�^�oi�4G����>Pt�$�I�>O�{��(��O��qi��>I�'M����{�h����� ��J�R����iHB�����2k�S�j^��;�[�C���7�69��v��T���l��=������xk�a���&�@�����p�=i��.�C��S�*������E?�)���gA�����V�J�L�����r��!�_l�0*�2�Q��>
�Y��7����d��@�F���X�c���X�\�r7Y��#�(;s�O��;_�gT�^�v��f���9��Gh,]$6n���������2q��gpnx,���R�
���PN���N�,F���,0��TO'e����x&X�~���N]�Mr�7r������
lM�=+J*����1/�O���z�f=w.Q?���i��5��t���)���p�N����.�}6���6�E`G�tD�[5�	*�M�lV8���q��>���s@�d��+M��3m���������L��eP�T��y'�:����q�����o�^Y_�W%��C�?�^	�e;{�����/���	U��� ���VjVf�\�&'�����k��8���e�f!u�g���p�0�����c�����Y|Po9�������8��}�����r��VR;%��VVt�4$���L������J/T�
I j��^���Q���%&���y	Ar�o�}~��k� �=����F������?�Ei��l�j.�}������:����Y?p�Y g��D�s}�7R(;�^1���8�|}E�c�z�����s�;AD
��&���o����+=H��$���� ��O�6�����d�����$���g���������N������2#0c�G���cJWd���~��9��D�&W��Og���6m]���&[������p{C���B�hA6�ot��}A=t)"��v���^���<k=�x�z{$
�A��j� �J���n#bBNl�;�NY?4���|�/�@L�
f��l�]��EC��$���DV����DD�%�%�?�_�Lo:�8�^��U&�����W�5�������V	�������2Y��`!���,0P��
�>)���>�����d�/=���I�ub�R]���	� ���������B��0�������f���sZ%0j�<D)������-o�'LY��Mk�I�-B�!J��#Y��sR�es���Nu�,�r�/A]��}�+-[�����u�z�>���jJ~'
_�P��K�����#Tht�C����c����H`G��%���*6I!Z���z�Y6��A?�o�Y�:�z�9D�~�Y�����w��=�{����Q:�rj��?{D����s�k��
�Iqu��fG�����V$FX;����yO�qV#����8�H�������j<�n";���������"�#�##'�����m�&���xv�X��K��o�}B��!��5��`�RE���Z8�W�
�����s��7�.V�5I�� =�?	cJO�Q��m�)��V8!
��g��^>�����;!���a\�]��KO���0WO�$$8&lW��N��H=_ �g�X��+������?�%A��A=H�b]������T��]�I>�{5y�V�A����e�/���p�&����?�&x���������HD�2qA\_��"R����rL:(����a]��5�4�����������!&,�nW]����w;��>r�w�M�(����S��ROm����)|��9-?g$u,"u� T�x�
BH|�G����W�2m!r�*7M��-gwz�H�#��o��.�{~�CKY'�Y��]���	�]Z��Q�B�k�*�9��;	R?<��!*;��'	���O�c�PM���8z��#�M�qF�uL"e���X��3�1~i�@��
�h��5��D~��	X>_�D��M�p#��h�������W,�����j�i.JD������K�����Y������W������u��W�_�C��D\���z��� k�^`�I�p����������`�XY�g�Uq��%c!��q|w�5��9$��\=e��;��"�g�b�������1�4Kr�?,PU�2��q��tv�b�NB�V��W���,�*��q>���SS����g�_��l�"��h���b�����i4|�
N]����z��������e�p���	��fSe����zYpf��*���2����
L,JV��i�"�XM_}#2���d����L������L����a��3qK���^����,8@}�\"�*�
��I�x���������Zk���W����p���]V�0
4����c�M2�Q����
�a���h.��?�"r�����d%>��6�y���2����{��t�bk9�\��/~!|�`������k�?�c�����i��Ra��(�
���O>9�er��Z�j�������|ZO0�&�Icx��i�3Ph����>��<-F���e�D��<�� rr'���0W��I���n���awiC?�x�����H7�{��������2qg���9�8��ZW�����U`��E:���q������
�-W��BM��6���M����*1�����������4G\�<���3c��������t1������������������P�Ji�~X�Y��%�B�-Mm����I�������m�����f@�X���A���i���D4Rm� �p�4�����S�K��� 5�������)GF�B�1"�hi��W�]��o�!��b��3|�>��p��Vx����|�02�M���l%���Ujo�*��E��9����S�U?L�	�:�R��%T4�JE�O�;_�cB�W�R�T����t�l�H�|�+�dt]�\�q�� n�1�?��8^���	�����{������?@�p�4����l�j��*�X��n72���:|��W�{��Z7q9����G8�X�I�-zaZ�_I��/�z?��/�u-���{ar@����J�oW��*9��E>��Ha������"%J@	)�'M!E)S��1����v(�2E�bZ���
l�v�����U�yzX��*:M!.��b��F���;"Y����7��N�&Be�~7�h��nj
N$nZ�����u7�������
F�vA��&�b�RD|�BN[����5�K��hs��SI����}���X�~�u�7Y�m5P�7��oX�b���|��x�{�������[�S�Wr|*-��S�B��K�D�������<F
[�m���&�[�n��/�#?�hM�<~�����Q!S|#/�,���4)J�8�WZ�dY;!qD���
��
���o��e�=w�t�]��z_vp��L���?Og$��mzw��,�M��_�>��KS~Q��_��1�������::�D=%���gyAT����3�������k��V����<��E�7{��A��NN��)(/����M��Y�>���qi{U���T���(�������V���5�6����xI���������]�-��������G�H�p/����2�n#�iM�0yY�r�O�;W����P�,�)�fV�!i�����j�#�Sf�Mpf�0rJy�l�)��(�3������4�4�e�3
�����[O(J�[�
=l�Hi������y��kJ�9>g!+���h����.�����oq��E������E���
7�.P�m�}�CxZ%�j�~���g^�&v������y���G:����M�1��j�S�`�@d�l�����$I�������##��r(i��BUc�D���vvV�6���k������>w9bx|�vo|g�DX�V^](�P��+�ZO��s)b�Rr��^�����u��swq��(I�����s�EP���'{	s��F*�����8�P:���s��/c�W��������#tW��$?�����/��t���K.��J���_��g�������q1!���\���o��]�@��	R2q�d�����Z�2�%����M���2�N��bM)�'��X�vMc�)d�%v�/���#`�J�������AD��9�&P��8�x�@2k����iiki����@A��e�+�a$ZL�����<^���B���o�&��f�@KFC��/=Y�����;����@���)H;(LXttz^�2�TsW�/A�C�a.U�?�'_���#�-c�i��^��Sm���X�'#��E�2�f� �K���T�/���v�����U��y����@�M:P����
�=�Y��F�D�!�M\���~m�	5t^��"�����z������T����"��W�?�������.|*	���\	<S;�C�y�������>9y����s5{?�>�k�����e�<� q�c��m�V��3��EO�,k��������\WU��5U���#����Csl1u���y�vr�R�Y�\<�LB�h��.9GR���3h|�_��	��S)�����JT������o������/��7O����I8��*��	��S�N�;~g�qxi
XuJs�'{��y���J���ZH/���dK��O��9wq�
�m����9�%�	" (N���w����a?����\�bp�w�R,�Ieql��)���Sg: ~{�&zqaI�+��|Ca��TxU[�y���Mw�.�~s��N�YvY����3^4 �2�E���n���WH'�}N�
}�����6ni:z��f�GV*�	�q���N���R�6w�2m^rY]���0���OU�3�����=����w��s��7�w�5��RaoYqr��o&IwmT�i�^�5�=r!��>�v�}���1XCV#WO������X���\zD��� J�=m�qi}zG{��y}f|�c��)������ge��J`��kB�.�V�WY���IIjX�l@U����/6��Xh�o<�z;/���qU
�jEO7\���*T=�#o5	�?�x��{�{o�,`��^!������%6����q����6���j���!m�p�W���ym\�_��Jb2���8?��t2�4c�^��}��������/|��`@�n�U&�}S:<v<�)Rz��[�w!Og:J�@�����CAD��"��Z�aX�p����[�"�]�����M���h|u�>p{�����J��`���J���U����C���������C����������c��d^L���c�$���!�y��nzy�����5�^����$6���I�3�h�[b1UW�J�����[��TS���&���������6
U�7���m����������]T�p���Ft�dM��n�t"&&8�sG��uIj���������WT���	��+{����WIk�$�~���kS�g��?#m1�'{q������+���w��C�M���]S!�����UD�H��I�^��XnM��	,�<����J.��-���@�z���p�W���R7Qq���f����LaMw���1�����d/O:;���-���m�2+A��&�/=`:f��2�������v�Q����0����eJ���A=�S)���}��Mi���KF��z���pJ���O/���@�D���	�X
��3N��/F<���������%<f���qD��K���Mj�_��D���������_��K�q��������QZ8S���zH��p,=L�w��n�z�.s����z�+P!��U�m,��\;�V����/����prh�/�����"9��8�V��I-��z8*$��b}�D!��q>��&����+?���c�4J����;�Z=j��������3	�rq��D�e�x����ZB)��>p;�^������D�(��#������.��eLW��r�6�'T>�f��k�?�����-|9�s�=�*��'��m�cHo���c	���vGH�o�:)�|��������dXp&�&������5n?�OO����<�c�cR�9�h0o���/0)��o�s��~�};v�Lr�'q�\�]3��,$��I���t�0�
f3A�Y��S��Q����/�^���XK�����s�����$-����G��ce�)R��r�
���o��g�kQ��K�O>P��Z�T�� M�������*�O���@W��<�����X5n�(X�����|]��~������U������0�����yv��=���������1`om�?$���fz�� ]�f�(���Ov�w�p�(������� ���i�"��/l7f����V!�����6o/I<��y�WGH�0+���[��.@l����~:�'��iX����f%��@�v�O|�w���������sK�^�p,��Bg��Z�-�J�a��GJ��P��%z�
'=)�N���nGp��,�eQ���s����I2��cN�������mtC��m�k�(l����_�[�i`	k���}�S����rZ2�|P�0��%��m;��uJ;*�(�x7r$#�yL����7v
���{'X�,p�u�0�/����;#�@�'������a��
�z���2r�quph�(��^��Q#nq%��QB�������:M��nB��M9��p��d�6�	�7��#�p`���:��L�x�
G;1u��j�����J?o�/l����2?�� ��J�=A�2b!�y��=x!������_��}t���[/���c+�Y#:�6���&��1?SO�M�&�"�!X�~������c���"��S&�4�Or�
�VY����N8~a�� �q���Tqy�J��<�_�-���{x���1�������19b���
&��:	��c��lv	���J�\;������'s�Z�O���3���L
����������*e�K�� �F:|N�A3����.s�"�����d��I���	��b���jY���/���������`�m���FN�u!����a]�U�8����iK��X��?"'0�H���t�|��\�n���N���"Q���-Y$�ed*�Ry=�G}dV������J6E������,�l����Ys��J>o�m|�����f��aC�*���N|�MR|��6�;��@��qv��1Yt�F�Vj�9����������d��i�`A���
��Y?����5��5�eJ'�2qV���&P����BV�<�}��6��mh�cC?;q��d�4s%�4��j�8�|�(o��t�g3�:?���*��w�����&[�8A��@�D��"&������s���)����w�R���k����� <�G�W1NO�j��YMa��|Z��7/2���'�wz���#<e��L���O9�0����y�~�|�{�DEn��?!:?�~����:�}?�}�����\��E/���^�y3��`@��1���v���f�����i�}��������}�^J�2���u�m�?4�2�Y2��_e���!H�NN��Ik����K9��%\��'���E�z�X�|��o�|�k��P��D��#�����6�)�~��Lz����I������6�w��y�%G��M���N?�q�����hz����_�C@E�(��Z������|�dA�.������q�o+�C�8Rt�����K���AzRD"�"v2~_�~��b�?�uc/[�y�8�q-!O59��_��g1��O	|�a�]N��	�����9�~i�$F5�&����-�����������S�F;�Ef����)QS�0�=.�9��+a�d�������8����|��E�}�3k�"�n�|Vc�]�8������^�����$�b�~�������YW~�����j"A��]���wU�)�Y�zT� b�Z�G�JK��������iyr?�p���&�D�v�3�g8\���!9�\%��(	����p�k��k��8����9��J	�/��<���:�	]�XKz���}���9����w�����i^U�H��e���|������i���������X2��6m`���7m�����K�!�k*�_����q�����x5��>���)z`����5
k��+L��\Bh���E��x<U��<Q��b0R�Q�����_��N-�m��M���A����\�e���R��i+�V���mL���D;��r�r����Pz��RF�M�C��G,@��W���nv���V�����1�Q�GM$n�W4�ZR���y��T����r�2F����	��kk���sm����5�����q��p��������=�>�+f n��3x�w}���*��*_�A��/'�}M���k����ZDE$���:lj�2hXW�8���\�B������|���]j?�A�����x=��W����mP�z�)�*���K�7�R��V��h0�f�1��@ �����D���z�9��+^v@�/5A�|��d��V�]	��c;$��v6X��b8h�9k�W����=�(���m���_�=<V��q�S�#7ZW�V���yX?�����]�N��$/�d�9X�;5�|e��>�^d��"n\��#��}����p�
5�V��u�S�T	{��	"���Si�u]�4��t�G������w������J�����8z&��4�*������T����7��NV*���R,_��6���"p��������0L��9T�6�F@a�\�?2#�r����pu#�9;�6����
���l�S�����Y@�#�,W�?�I�B>"X<E hf����7_��s,{h-|�o<�b��
t����/��`���rE\�r��k�Yt��Z�Z*G2/=��,����
�m�A�M�����d"uh�m��^[�����o��O*�����Rp{���Yt��R�,r�3R�x����"	Kz^N��)sU�,��'?��a��H�a5�5�����H�`�c��+���X���*�o_�<]�j9�/�*���9^��)�J���	�o��d���a�6]��K�����}���[���%��w��{w�������d��&^���~��J�E�
f�)��e[��R�/^���5A����;�w�H�A��8-_�X�Z	p�H�8wV&�����A4~���Gm�YtO2�������*m��~�N��Z�r
u�2:;<v�E�o}�q�	�"j�����|[F������>�3������!�@�.��{L�K��vK3U��oX�"	��\�d��G�@�H>�I�{����e9���IV�S�l_����j�0u�Z3Go~���+Y6�;���H�)�G�N ��d����e�-����m>
��m��V��X�L��
����Iy)![�,�
G-�����6�
��hk)�R;p����`�58��|h��b�����A9|������S�gU��eZ����A�e������o7�����k�g�9��=�)����,�|�[�K��Y��*}A��2A�<:����^�Pw������I���q��r��Q��~~�*��2K5�;�u��S*.i��,*r$����p,�O�=+�vr�WdO������H�k�	�����~�,0��-��*UB��]�f4�MJ��4����:��D��
��,�Xzk��rM�y��~��s^-��{OR��Te�wkX�6���q����� ��NC�/2h�)W�?������q���]��r���+N]�0��.�������/X�o�'�<�BF������� 8T+?*��qZ�~����Y�p����]z�a<��a��}�Awy{W������@�@x� +~g�2�e����`x��j�Z2
�+����[��9fa�Mg�U�X���3�:W����
��5"����5���i�Tuw���}�(Y������wE���CJT�\���X��4������K~U��M����T�)u=�2����c����O��������q~r+��L����]�e[y]���N�V�y�� H�WIU��[i�oJ�vj�8�[u�8+��K��p|W:��+a|
�[��%"�������7���[��rj��2�[�l��	��������8r�eh���$~i6~���!rT�~��EX&b<�7��>�|����N�5�n�u�!�.��������M��CGP�����GY����5�^#����)��k����z�����V��o���)N��=cz���a�C����?�lM�Dw��]��f���F��.e�z�m/�]
F_0Q`
:g`N������~�wB�4�o�������Lo�����U�'�s��C/p_:��k@)�xr�����g����&���\���X~�n+��e���/��|����~vI(�O$�Z$5Y��Z�X�p<����-
?R 5��2�c��z3z��d;�c�)���H�d��
�����f�A�
q��
�5��\.�WR��Q����{���
���&r3i?�a��<6���)�T��$?��3&����������J2����;K��GfogOC��&����1���)�KCB�v����w������C[�*��X�y��d�6�c������mY��TCc8�lN����Q#Ry�����n	�N������v���> ~�<NF����O..xES��eZ;�!�?0O�d�E��rL�n�dJ�VUHu�L�G��j�,�����R�1�:>-���
�,�������(e)&�G��M)���H{L�l���"(���,rT�HY��}�(�3��[nh�x�^����n�99���R]/��5���^�1/{R�K���X��8�o��:��QCT��
1}�j��,�no0y���)>�X�*���y���P�� �9968.��<y}$�q����Q��08��0?B�����'��:4�,��vEX�z����}��;��9���,Z �\8��j/��tA��]�f���{����?363�=��xl��&1�xb���/�:��T���R�O��U�����r\�O��V�6����>@%��������������3�i&��xr�&~�+Ro\R�����g(FB������������jK�ak�fq�2�!�ly����kv������X������|Hl0��E�������0�{M���)��,�M�(tt6E��|HRxR��~?�����D�Ut	�����bk~9X�;
�����t����������$����?(������b����_�M[��N"U*�6-5�������������������?�D�m������R���~��_�(&|��.����V/1����%����8K6���lx�k��	��tC>hu�c�8��WI����z��K>3�2��)��E�y��6mYAm����S�bK���r�I3�A����~3~b�db�Y.�K��������KKp7��!�B�_Md�?�2��g��<>��#4��cGO%�h��#b�����z� z�IU�����4�|M[?cG�
k��L���qZ|�8���t���7��"VU��T=Xj>HdI�w��\��
B!�H�l���b�I�3��`�K�?s7t�w}�"�]o���1�����QK�n�P�s��?_�r!N�~7�.��@p�����Zq}��>L��������"/_��$#����$��2�B���&^�dY�G����~����Z��n����z����H�Y���^����&�2�@%R�iEhTu���p
���t�����gsl�[f$*��QqHO��}���&�y�iQ��C���������6��|�,����Q���5Ji
� �LA<�:�\S����:5�SuyY��2c�O�V���7������}�0T�����6l����� ����s��X�
����������}<i�����4v ��5����P�N�{��fW��$_,����HS)������2}�C�\��4.��%��k�*��l\��]9��s8�5����<M��� �i�Qk���>�JF�F�d�7����	���qSnXJx���+��u�C�+IC�9�w�	y����$��7�*<G��0�����a�/����Db��4��'�L����W�'!D
������O,�x����y����� ��n@���)(Gd x@�K*�a�	6���T��C�-��������p4������eV��;c����T��p�6�����z����0^"A�=��*/_��}��������\"3��x�[Ax`hY�@��4c"lw:x��3�.t���,���qPqMg�q�v�����v2Ed�#�D����+Hoxws��,>�����
�U������T��q�;�'��=�����$��
�B����R�*�iXl{��~��e�?��j��u���_� 
Ad���E��c�2w})F{�63�r���Z3��������9*Z(���z����fU�h9{�
������,X��YG�M���9����;�w�"�(���Tj�N`nC\��o]��'����S�s��.�Ly�7�W�����*����KT����k��S�
�/o��>0Y}�q�����7�ZJp[Uzl#"���S�mB���@[��������+�h>���m?���{K��'����7��eaz�eq:n�9^d�c��
_E>����xp�H���DRD���L����*�I6}?{�&9g�JQ�B��1�����A�]D3�ma�G\)��r	\?/�;e���!�	��_#P4�����j'�F5�b{��
A�������$L6_s���-]8�}n����+o����r|j=?G�}�b��yZ�k��C�,����t�\Z��>W+WD{k�D�x+�=7�E*�Vf���bL�Q6�G}�W�A}�2X<��u_����a�7�L��s��Y���!_hx�� ������Fu���} 
C��2_�D��%���k;�9��n���u�7A����J�^���CCbw�dK��fl�h8����~u�nXv������!���y��f|l����]��6e��F���y_�-��l� !��a�R�p��.�mn��w�F����cV���.�>�2d
'"��N��2��w�6�qN���b���g�&^��:�BA���V;h�/�����
.�5���vd����@#�Meq����[���v�0��n���C��C%�fk��ow�A�b�k�o�D�S3F��V����f�s���a�B���	:gm��n�&���o������s����0g���Z���
���N��y��@����I���h��Y��$8�v�XP������1��s<w����=��	6��svi�]v/�C��,�>����l�IQ�������>*�\�VUn6�IrN�;���W���V��.������eD��J�K���@��+
-��e��+]�����fz�U�l�J
�|���d�WD�������6R�x�ns�N�S����;��F�%�f�,��7�������@����uC��Jl�����IXD�>{����)��o�r�O�����w�(>,Um��#�Z� Ev��������_����'��T7����!0!*���Q�5Ov$�q�4n��vt�45�'�t�v[�������T��*�Z�U��|-������	���8��q��i�qm���P����ic�	F2�m���J�������DS+�������FO���PV�i�����11Z��i���q.��4p��q��&3�	�3��.n?�X�Y���u������t�����������)��J����oX��cM,��g�E����9��I-m���m���;������r���W����qjT=�)��y�aJ3���?�*M/%������T�)���Ncv���'�E
���UhF���h"�'��9�K-UL�������o,O�}��9��rB�����RJh�2��'�Z�6����}�v�-�����fX�h��MiF,�����$<�^`W�"���-�.�9��������4Y����y��������j��*R���n^8nN���J2���������f��*k�5�E���&o�x�Xf<��0�JU&��N�����u�W�&�	V�o���u\L������[�V�	>�c���Ze~����0�����76�v
�����%.���y�����F�������������{�3Y@�K��i��FX���(���������E���F+��3��!��|�#�X�{�!�l�{��	��3�j2C��L�|�	��;{����d�y�2s�����������������O�>�N�'�����)�X�g��x�����9ZB�%�E������AS:����m�������c�RK���F��o�1��
g�����|!+��M�>>����'�2� ��;y?��L}�owFnNV�Y�M:a5��N�u�Y���l�s�v�|�<?2���Jg�cg)���;$�{8m�7���B6��L�x�f��C,��!P����8V8A~�=�`71����NY�{�bN��_�k�Bv�5��_~8pD�^���uK1UXo�X�4$j��jp��o���@�0-�@�3K
������+�3?��2�`�d~uu��H����cX/���[o�bs.G.=P�������q�0�4�.�2b����>tp+0�����u��	��e��R/���AS�:K�._��[���4S$N����_Z���~��S��6�����8���7ZnSb~��Y�<�������(��,
�y��|������bx����J��!���'E�QF����_�p��J����Cw��f�fs�.�i��J��Sm�<zZy�&�9�Pm&]7��tG����~���[�<q^���c��q�:��6���?�hGdpH�b��Sk?UT�������a��4d��_�����9�3/:��-����/v<,�n�����������gDf�����kW��j��
_=}�t`'�����]p���s
��!�N�������G�J������d}������LV(�.u�~`pj@h�]��m�R<nu�@��}K#���$�������o�
k�[��*�ad_vX�s*sh�qr��B'@�S��<49D���VG7���-���SNg���\*��+�A}C�i��������z>����(���KCy�O����'oR���~�Do��9NG�x}GH$���W=y�����uV����]&�����Xu
�5��*��&E�/��h���y�����(j�I�x��D����������5��4�
�������G���
����?���������#i��7�!����<X����u��N'>^��i�v�&.�.d�|���H������q6=[6J��k�`�_�1�����(DU������*�D��4�f�T|a\���m�����W���e#��,u�X�t-ADR���:v�S�Z(���{2����'���w���������}%y�<*��t�,��EO����4Ign�M���_�����,R�p��@��p�Y�96�x.jw���a�����~?���p�y/��`�b;q�UMDU����l�(����*!>��T�6�/Y<��?`���uk�n�t����l���
��8�=���V�)B�F@�u�9���������H������XKl�����,��|:��O���&���]�Q�U0e��`�&O���_<~��f/���D	��52&Y}l�C�'@rsyu}ob�D�q#����1�����8�������vxuGY3�Q�s�7{��8=���|l�����2/M�(���'������Y�o�e�~���i1b��9(�����).1a���m�zf<�3Ok_��M���L�	|]$��uC���=�xlK���|t!
��n>��6���K�fD,&KL�a�����������^�-\	�j��C��K48��V��`�{��0��+�{�(���g��������7��/�=��	�w����9�8��k��5e��B���W�Y1�4�ICn�G�V]�y�CC���R*�
.�s����9���f�yy�s�3��C�#�9Y���������X�t���^�����D|����A&f�������<u��A,����r�	Q#�����j@�k���j���07Y?�8���V����-���*n�6�����M��&�[R���M�������(ii�<��&�G�I�7��0�v��AD� �<�����Q{��"��j�v�;�(���0�'O��Gd'#�:�|�C�:�����s��
��#0V5����n����^�����aB��i����\f��a�v{u#qs����bi��a��P���c�?/'?��DL������lnS�1��M�o�V����o}0�I"u�S�����E�9G�,���1a���7�SK�2����+��7��=��a��7��g:	b��Q+;�3���E����:���pf��!������"��1o�����r�f�z�����:�1{<���@�)�����|B�����~�������� ��C�{������-��k�H���o�xo�Rp��eN?6v�|��������8k��M���;��"�C��HtQ���}�$��8*����s�PWM��`7���8�xl�y������.d!G��T#���'��PD��������}&����vS��&���9��+�����K}�&j�"%���Vg���s����$YC�Xs��fu����/���&�	v���H������f�fZ��A�R�U�
&���`���,���E�a3p��0h�� v��js����~u�����w����g���B����������1~�(0?�
NN,�����;�������?�o�X� *�J�������6{�g9G'w���eUGh{8��gaz�]R�v��Tq�!<
��#,������J����8>��Y�����<��I��2��V2RGa�,����^��Q��!���i]�f�<�+6���5��]���SS��|����:WDZ�vj�I�^[vN��|�����XUH��KG�J�l�X��9��B`�����~>}(�T��������e�f������bM��B�p�hU�U��O�l��:��,zJ��v�Y���(��g�1�)�t���4��~��(��`�$$K���^�G���\��k�z$��\��Z�k�M�7S����*��'���e��J�D(V����4@�F���i*e�f~�}�A������)s.�2M�Tj:<����������d�X/�n��)s=��kxF vA�6���aI���<����N�V���'|��b�l��(��!q�Rl�zT���������Svn��F%��d_�}yT?����i����3m�
G&+�����F��
~�nC������l�E���0�-�������FG��;"b���S���x���h�X�m�>�n�{�4�d-��`<��<q<���`��\]3����z����q��Re�,$6x�*���%�-��sl!��[�
~����U1�f�P�W��������'~~�g�����&�H8�U\�dVnmo�4����o�]������\�kzK�a�A���Z��b�%�$��K�8�����	�$�T��@�s��?Q:���5gY_���.�S-���]B���_���
1�X2�.�\���l����N��-C�LD�`^�����|����������KF�I��Hp�F.�X����rs��I��<�9F�l��7:�20a)Wa�c����E�3�U3`[e=�.]mTs;�"�m��KR�/]�0p��C��EK	�3���PS�A�7n7Q�m��Z6$���/��	�$�mh�����MFD���3~9)�t�����������Ye��3eq�:VI��j�zP������m��S[�
�YE���<����>�L��t�����3Xv�%���B�N�U�DtiT��������UJf���a�� �$�QN���zr��/BH�R��_�y	���.0�p����e�9v���X(wV	�:!��y"V5����n!���v�yR=�����j?��kd$�O�]���_�nju]���������t��_��8:?J�U������L��2��!���9����u�5�
��^���v�������.�P��QM���v%�����"����D�,qDp��������-�]9M�tr�rLt��CI�,
����Tqw$��3{�����/��30��Y�=�����w'�����a�o�
.4@�������{k�+(X��A��Kf�/�;z�
�z���(��'�;<�����b�@��s]���![�6�g�>BU������{[Y�A����In����sW�nrK�Y-m#!/7[�@)��!����b��\�^�&�U��p���DC��V���������a�����f��;�I��
�Z�['��<YJ�1h$d?����/�hH�C���.��b��4|���g���i-�-r[�OF���|Y�fg�W�����<��b� ��������Y����AV�Wt�=h�9��y�^��_|���8���]�Z��������h�������7�S~1Z��:a���E��H"%z�3<K��������mO��W��c���~���{+M����%A�������q�7Q����K��<�b	�A�Uk'{m�4�EX�U�,��������*��f%o$�WR~,��7u���}-� �|����7���!,z>1"����6Y"��xE����n���Y����,nj��������uBC^��������@*"H�*�����-�L����4�x���������X�0�?���i�o�G�E7tWDu)�a?���W���0n#/s�bN'#��G�M����lp����3��E��5�m������o������Bk�&P�QrYb��yx�y��?�J��fo���7���M��
c
$�(�e�a��e����f%X�&\�k�j�J�1�8����pn��V;{��{�H!�����L��Y�-C!����,	k�c���el��E�
/���o>���yk��oT�P�<Z>������d��if�
�o<��/8`C���b2��]��VGY�C��q2��8q�!�����7�!��m��6���7�f�����@V)�x4f��
�*��:����	��.�;���d��E�������\�&^�;���M��0���6�����@�XZr��h�	R��T�Do/��@j�9o��>/���&~:w~��Cq�S&N���y�[��A�q�o
��M�����%W�C���'����7^�������..����<
�x�]��<�t��-�[��p� vM����.Y���U!��N��L�S�z�_Z�����A~����O����s.������k���
w��TiGEB�nh��;m�<O��
R���;���[����@Hi7��8���[�~�����(y��>�����W��,����qw�b.��F\�d�qOB���������}e���0~�=�[{EQ|m�~��'F�s���t�N��W&�-)�+�@AV���u�`��V\[�08|^�3��RE��"������7��L��=^)�^�-����r'���a��l%�������"��.W�bC����SvM�x����kX��-��Is&u��3�b�����2f���E��q"b@����)�$,����w��M���!��qLQ\�sz�t��snYX��b�`����F/�Z�����e��t����������	e�b�j�Pz/�a���:~\��+����#��5��AA��&
��<�OP@�z�p��j.��I" �r*��*0��������C���.��9x�Q����*Zw'�������e��<���yV�r�?D�.!�@o�n"��!��:`��0���68N1;h7����>a�r��|yE������Ba�(�$�y�
�)���� c��
�
��5	�����q*2ved���4��%S�+0g�3L$�i�%W���r�{x�q����D�F���;�L��������nS��l�~�\�����j�o�Ixl���yR��Y��B����T-������q�{����n�6�H��
��������W"X5?"�y�8mW��@��pW����,��plk����j�[3����9M������c���,S��[�O������8z>*XKn��&�����cO����
��0Ab���;oYm��#�X�*������~��>"�FA�����)�����R]��Q�/
����&A�J���t=�����Ky�)x9��g���
I�[I��n?�G��������T�^&��z�
5�����������n�
�"�e����������O�mW�"i��w������cK�3�p�v�pIw�]�����.�� �p�������<;�b�Ov�_��~
��tI��e�}��T�]�K�����^��jt|n6�\��weIn:Y����-q(���M�p�����C��-�����/m\�B�[DY���!�;�0z����{:�h{�hji��+���9�cy}�^_����	���G<���y�9������m��;�����w�����<x��=��$B-�a��������+�O���0v�c�X���I[��\��N����0ZGo���3t��w��K{Bo��V���X$������@��l�M�=���n"e��
�����re�:�H��
F��v�������������a�����"I�i�M�������$�0\H�j��I�����4T�a�Nt4c��?��m��g��S�"����M�a�0��H�d�(�����x��#�p����L�s�(b�|�%��1��mX���< l��WwH�R�U>�U�����F�F�.���������?�ce�f[���k�|����G��b�{�������������)z����.�`��%
�����]MA��z�-�4���/�l^�JY�\f�rA�4���*9L�������Ov�1�������op'Q��^���L>�>�OF���wqm0��3��T�(�I�����������`���d(��f���	qoX��h�"a_N4�y�f�p���1j������1��F��"�T���y�� �l�L���$�k!lS9��B�����������jC����.��z��a*�w�����_�.�SE�%�7Q�=��5+�o47Z��+�^<q���}����.���kn_B��mb�%�f��-`(s����W�ICU�w*�������:�V�,��C��%/u�Z���-�6�������1a��!�M�o!�(����D�������>��8���g�-�����p����^ ���	�Y<p��m�`�
�[8���Y�l������Au;'��~�����CAh�\j>|�K�8���f���w�hNK4����]n�tI�����Y�g�I����<�	�3���#���� ��1�n=h�)��vLT0~}n8%�b<\u�t6<d���6�N�W�4�U�|�r�}fB1����l8���9�� �����1���j�x���<��T��nR@��$�5���W�h�?���@>���R��L��
���}1��Wd }�F
�xR��B*���5��~?n�������_�=��4��D�5�����7xj���K<�5,��G��hk����������QA�i��Na���z����&�M{�k*���h����Rd��&���,��"@�c�c;�]��
����q��e�A�,,f��2���]Z?���Q���Z���8
]�n�sH�TL U�e�=$�Y���ni}t�����(|8�t��D���G����;?TW�0��
�����h��/�e�W�yt���1
� 1�M�������-L6���G[��*@�� J�)f���������@�A9�e��=����~c����'[��;�0/��QF�O��p���
���g������������/s<���
����y�S�
���p���G���!����X��'���a�L�R�H=��l�hN��ED���+�c�&�7�oE�@RH���~'��8��_�<ls�m��i�����f��������Y�>�������7^�
,�%(�����]��z�!]4��2QH��p�L��B����qW!pQ�7H`u�VS�q���&c���[�����I_����r����)��h�3�	QV��Z��=���a?��Xo�MYh����Q�k�C���s�O�n�M�A���A� �6��	F�:�a���^�L:W��Q`��������J�����q���k�x�D�5�c(+��K��(����
V��{���.���&�:�uM5(�:���x�V�����<LK��5�t�o`"���d����Y�n��f��Z��+���v�#2�����������������a��k�~Y�p����9�25�����xn��ZYq���&C�!C�o�"����1�����qv�d��f�(��6���4�-�f���&���8�c]YtX�x��T��E���4�#��Z�f��a����J�=a��dnm��_�k������e������m���������"!r�]	������m������$�P�1���:���d��p�L��s�0�kx�O��P`[�{�
���<���{Q���;�����;����f�}���"F`E��o�M����W$���4(X�6��k�U������>J��~����F�W,����������$�����7�� ��>~t�)�/�S�8.$��y��@�$}���-��S�$����U�-��a)����4���'����<�N"]�87���"�Yv�xX��s��-�{D8���6'���G����X���f���&�{�����f�yl�wOo�C�scyr8��v���h�c���zz�E?�4����`����������sq�� �t�n�����I�l������!����z��U�I��l�2(R�t��!�xA��6�)���1t��p���@��a_2Q+�s:D:8�������+�i8�(����+���r7972i������_�#��/���+8T���{r9h��~�W��n�e��.�[|�yjt��0�G��I%�	� �'}h���#�yEv+<^����j0gS���b/�}r�'M������U8��b6��3wY���w����W-l7P�?n�SX^ba�6�h��!�����N����=�X��'�/���1arv%�X���x���q4����t�g��
|���1yuu�9�l|�q������F
�Tu*����S��
)s�;}�1��l�@�]�������M��y,�p�,X��,�$�T�
0�2 �V	��%-������F=�^$����+w�w�q�[���c^�U�	�	��an��e�Xmm�uVt����"jH-��je�)Jm�]��z���IJ�~&/�s��)���|��s#jH�3V��J���y2�~���&+e�Y�".�P���?�V������{��ZQ�-A��/X��7��<q,��������`1�%����n�W�B�����<�xmgL	)��Ev&��@wbCl;. ����T�N�����o��F{��|Z��F3����t�yP���X�{�������7�w�d�s0�h�\���8H0_n~n�=?���=���J��@G������
�M�$�O���
����w�ru�Q
]����'���KR��v	Ve�i�������Va ���D�~�r���G�Z/c�x4\�G�<�q�dAM+PZ�Q���j��z.�F"V$�]��L��x'�gr%�0��E2��L�0z���s�P=��:lQ�m�����Vk��-����>���o����M9��s �>�s���.��7���:�s���BK�0�<����+.����v~�
��6h��@mp��H^)5<jh���
���Wqi����x	�l>��
E/C�	T��-h��Ak��=��t�$^9�v}-+�K���{�v�``q����������o����:M)����*�r��V��`��o�v�M����/p��BN���!�6�+�U�q5�#������*�����7{��3?����Bsx�.�T���z*����]IC����d���U=/�L���xs�����*���g<�\c)���/ �D�}��kz�y ��<�l��6sbk|S������x���������igS.�'�FU������E���s�����ycw>�Y>��e
�>2q����������\j��]��f
���C���9��#oz�K����dBU4H~{E�.������w��g���zPEXe(p��[;r�a=;��������������.=E�X�����<�� `���)l��o���<5�t�->j'�23��@��%�����"��lP�s�+��Y�+@�Y��`n]
������c�H��B��+pe����(���S��*��Dzj=��%$��|��oW���MM�5�)�L��bW��J���P���o��'$������Q�d����:�H��ZC&������k����z}��%6���8���p�����2���[��n�)��m�/�F�8�NU�e�a�r�K��;dy���������h;V��G�v�Q�L5�3:B����v
��O_�6���<E����3]���V����V��hvd��wR���������a4�i��`i`us_��FHv�,�&�*�����7�/{8���i���hUH���pi�~D���Q~�1��|2�L-�dJHs�!�_uG��Qs�M��v��&��Aj��������Z�o������,�u�YJ����q�����:
D��p����K:����!�*�?D��u��lS�6^|��(e� ��R��5��F�p�B������f����q�}����z�o�e1-!������}�!�x�������\@�8�,�Z���ZNd~e�����6o�|;�M%����=�0��^K�u�7�[�6���0N�Q���ta58G��Z4y3L&yK����������-��9����|0�of!y<�}��Vro�+���q�������N��Y�Y7J���������."Q�3f����r���c�������`dH�U�'u��7Y�r�];��v9�;{&����Z�d�A�}y���F8xB�W�8��Q:���Yc<���u`�&�&��$���;�/���7\�Mz�v���lN���U	n���<����^���E��(+���c�����2k�Z�B3��������<����0�q�6��J����^�n���-�G��py�05>'�>���%�o��a����!=a����������o.>�+"�T�>�]�����`+;0w��y8�<�,4�A�����=`�|`�j�#s�"�I��*u�'��������<������b�g���(�����H��]�Z}�r�������H(58��9��Xq��A���� B>s|]7��V�g�k�:�������Q�t���7�R���H#3"���&�8nP�S�s�!�7 ��4��	����6/����4�	��.OS��T��T��U��h�FUr��!����R����Kv�����cJ�����:��CI����d�3]�1��	��_��-��b��G|Z���N��:9L��dN���x=i�]���y����W�T��b��5R����(������l_��c��-���\��t�y8��R}5>F]zd`�C,����9��^�d���{S���s^<[lJtz6�"�n�E�_�|86��oP?���u��Dc2�A�_f���V)9��CyL��4�{�.����G@G���,�~uG��ZgZ{9����j3)@i���H���o�4��;K�\
�~����SA����<%�V�����yh�^�#�|������tm���6�3�R�I��d� ;��z��[��z�_kY�n�2 �Fa\��8o��,����G{��I�h/�7Ij���\_=>\���[�����<P����`k%W{��=���P~�6��^�p�c��������V�y\-&����?��Z����XQ��n��z��gI��tY�p� ��=���n\}4�?�lD����;�I��GX�KIu!y.!uyb����v��l�m�3e���&�$���G�������$?�*�Wa9����
��y�s���s����&B����b��m1i��U�j�=��^�n-�i�(}�����e;�grl_ku~�8�'��?o#�kjt�k�j�fEqm�m����<�M�,���R�T���o���f�Wu")����w7W����(��j���V�e+S����8l��Ow_�	��cJ��b�F�����Z_H�SX�7?��e��6����.�&7;��V%���^�"W����
��X2y?0a(W�a���2������SyGlq�
Y���i����`6p3q���`�=
k}���6��HY�B��
i�>�������8YS� ��7 �t����S�}Qm
�a�����&�&����\D��Fo�c�
������c��
����"!�`�)�g���n�Ash�S�����L�;���W��6N���iM��nE�SW����Y����k���� �����Y��!pN�����?|H�uR�hL�u��d�V������ya�iw�@������I���nO'�����^�GM��H���\cs���J���5���{2�s�4q���p��&f�u���S<v�W(�]%�BT���~C�O���$�23q�\&���cb6�L��H�����F�fG�?��G?o�����ZH�d�R�����?����)�s���w���������O�e�F�KR���i���l�Ak��tq��d�>��A��l�"%����+X$Y)�l@��p�a��d�x��D}<�9�w�\.��X)�T�z��cx��we��Z����K�@K��d�xZ����!6��|�cC�+*!�i�1�"���ZC+x�.5��utZ���������^����y��p�~���N�H#��jQ���@axu�������BL'���'�t�w��ca*!S4Gk�}���f�Dx�M:��s���p���F��_W���Q]|���.�T%���=�����U��=��}6���Q���g�����]�q�2Q~<m��~������z�%����Y%(�%C�E���$?Y~����C���� ��D��;�����5�:n8���/�C�dFhIg��thr�=��n�����[�t���� qq�j*6��m>����uj��W���u����dC��9��[���W�1����I$���<�3���o~����Ds5�$D@��[m��XS��6s�G��C7�l���Rg���J[�|�������@���z�2K6��6�|�m��q��kC�6�y�2�AY��w������$��#<�_~��qXGx2��25�yo��� 0���7j�S|�	Q��
�d�"x�����E5���^5-x�j��f���L��q�kU������3w����a�'�l`&�S"Be�J��!y����h?�Xp����~bFy�"�sz��l�C�,K?�����qg��q�0�R�4U�L�RI���������}�W���.�G����^���&��|���QeIW���s~
���B��_�vd�^�E^"T�-Hk��R����X_Q*v��������I�:��.����WZ�rJ�*���X3�a_W����z)X+�k(�^i(��J��V��	�">W�/}v�Z��;����?��rf��U�/T%��s����ZB|���-�)���~��0cV��^���857���S��^i��x~F�Be��4��-lO/�6�d=~���y�
����P��[�E�q9|��Z�sT2�������N���G����[���(�{����]8�����+����5n��Pf�h^t�v�� ���������������0����}LGeqjN�������J��U�p:OrvFi�P�a���>1`���[M�����E�DN���t���+!��;����4�����v������`�T�����s	�������"	A�����W	s�|��%�8U��)O�'�(D#6��v����t7n����!A���j�5��K���j��}��FNH�V����t\|������/}��H�����!����K�$�����FD�t�NJX=x�IS^���4l��}�!5�k^�W���J�P��`JX����e�N����39�8l������j{�`.��������.6��h���g�����+���P��_�)��(W�Y��YYiU�U��"�,�qt �>���
@��������y����>��M<3�E�0��/�r���%�w�������[{�%c_Q0�"�����Y"��B��4O���Q���#��CT[�WM��������1�Bw���=�=?���ZZ�_�*�������^��1F��NG)��v�l��p�\�Y^^P8��0V
SR�beJ�_��������T���yy(�R,���q�^2��x��J��Joq���LfA����<�)��8^|��p��U���ks+'4T]V��a�k2���=Z��6Vsz^QC��G�C!f������x��KH�������a�
h��;{u]��"���?+������Q��v[�O��I�� �M��2���z�����V�g$��b��7�UW����.���7�,
']|�r���%I���K�1\'��/�/}n(\z,Q�$u	�����*�D��NM�����]q��f�"��$-�S4+�&b�k��i����W��0�^��}��a3���J��Os�wJ��#��Q��(;���H��"y��S���?X�e��b��Ov`�#��b���S�����!K:[$b���}�W`M��Ln`�tY������6K$���s�;���AK�{*�EN�(��)(��V`n,����&hl�L�� 2�A�YQ������h{�e�3���A
����D+2��G�6-�������������\���!*-�X��i�K������F�����f���RS�1�nx�	��I!(p�q:�q�M5�Nhg}��f�-
�}���ETD��a�����F��|�;i����2s�S*�c�C���������U\&"�������zX]z��C���]����x:�=������_���6�M!��C�wx-Y<�:��b���/\l�xP�(����`�g�3�l
)��{�5�y���g����g�K�8e^kE�����$�N��&����5r?�������IN����^e���&^��-�L��9���y����O������s�w������aE� ���R�
��3<���mU�`��ut�?eUS�l�A.	?��M���Z
���3��O�cs��~�K���%�?o��$8���)����=DB����v�k���v��3�����5����o.���Z�M\�r��a�oe�6�qw�"���<q(h��C�P�a����� ��H�A�^���L�)��
y�9�>~�����~��oW?�/��fW���������z�M������F�D�|�7���d�'�����t�6��������I��y%����������##|����sD�{��������XL��y��D���+��^�h��q��E&}�u�wW�4���v�����s
~����7u�&���������{+
��bQ��9��Q��C�_��+x�D�S��V1�)����P�6�4�
6�=_��t�so(�G�]����'ENF�1�
�����-`�����q��I�E7����E{	��9��}1����t��^@��G��fL7�I�S��(�\����~#H	!h��.>�j$`���y��/��i��L:+��R%Wg��&h�icl(	�2���G�W�L_|���������NW��f:����^����������b
��_	���e���2m�]%m����0k�l!h[�k��,�����p~|���/�Y�H����X_�(~��A�R�F�,7������[$/qF�#I���x]��Y`7G��[Be���Yyk>Q}��b@�O��x�3�K{uW��^��
�&l}����a?)�����J\U�>��DY�QG������QA!}�v����2�g���\�$-�|B8K��~��.`	�9������YP�|�+��u$������_���Zw|���B|O%w!�TZ�~�$z��-p�1�9`>k�@�cZ�`���/sG�f�������7`3���M$U�Ydsv�����aa��9�����[�������'���������Fx��e�����w)��"
��&A�MT�`�B���8Ys3�� �0q���V��#��5�v�$���6�����0����zq���m`���Mc\��_!�uY��"&��0�"q���
6��(�P�����V��jfBf�a�H��O�)��o�)
����A�����0�0�<�>r�9�D.Z�mS1���M����>��_���+,}0*L���0�r�O&hz`�����X��u��Y�f�z���X%L��.1���r��<?���
�'�X���t,��9�D���_q6��:<i;��%�Z��+XsP�7���H�,2����`c���O2����m'���!6�T;�0�M^��IT�s>oRUl�J��N������8��^3�$�'S,?�d��&h�J�D�z�Y��<?k�K���k��0�����s,Tc9g����o������,1x����.Wy��{�n\��-�j�{
Ut��#�ej�y�w*��	�5��B��{�?��aq�^J��Gb��m��Wf�_1�=������Y-M��F���*�v��S�:���|�'��M^�F�%�a����N�����"R�����a�'�F���H���w���9mp�� �u����O!�47����m�����QN����NQ	d"������<"'/�xwO�k_�B�/������C���;���j�O]T���������a�K�Va�[U#"z��7=���e�������I�I �We�C���R�Y�:Qy}��sW��������t�`�x�}��N�p���
���
�_�H�9`���R��X���#�4j	��%�c���C���Hh4�]=d��2���q��
��O�}&qRG�!��~�='x�,�5�R���ZVvD�{TH�k�*K7��%�f�����_j��'�8w�I����������������Q]���I��OZ�v����� ���[��i�mO�i�����GN9�r������w��E`�(�W���@w*�$���Nfm���:�,�#�K�Z ")!����������QM�FQW�M,�����
�:�R?�����������h��NO�8�=Nq�)��trg8e�8�S_?^}�b����
��������C�*:��U�}T#��<L/R�����/`�p����1�����y*���5�4�&EWG@����`p�����~V:_��e��>�����#����*e��'d]P\e�^����k�Z�	xt `;�e��G�'��>���=G��3��Y|��J+3w.\�mVd����BS+��la��K^���Q��M��VN_we������������N����k��N>���U�^1�b�;��6[��
��k�~�����������^�����!$�����K& =�fTp
|rp2�n��������_��Z��T�{���{(��f��/�*!��Ww_�bG�	�������.���}�r}a��_�<��|��Kp�Y�l_�W[�E�C5��;�����[������(q'}�*���J�u���B�����R��*�g6�f?h��C��M���@�e����[��Aq�����v1�+�>(K5��J�!��.��+��s� AG�9��h�*��K�T���s|���Y�z��a��o���d����(_%�����A�T�g6�+�Qvy�_��Hb�{enz?j�
w��!��hb@��<�!�}���X��oo����v=i�>�;���#�A��&����x]����J.��W�|����<�������lm7xHa�HW}���
��wvt!a=v���BVJ
.�X��\%p�m�8�#���RT�IO�	����+��f��:
���W����������n��k\�x"��&�\��0�mz0�l���ll&!KV����dC��v��n��x�����������so�J��B���}%z����X�O	����EV~
%]�x��:E�<Ga%�g���4��h������	s.yvp[:���IX��5����)7�����K����Bgw��&y�!�����$&���8k��;����������?�3;O�#�_u�
��6i����by/v�S�
\/$�|�x�pE�\(c�������c�!�a�X'��|���Ot�w�O*��*����;�qW<�#�|�L5Z�H��C/������=�N�M���S
�Q��+��X��G(G���D?��K�-r�3�U��Y���3������m�@�?WP�-�%Rh�����@�w�����������~�@Z���=�������:�q�@��f1���������Y�L3����G������3D��_|�yCQa+g�4�R#���J?��%����s;b�F���M\q��{�@�c<s�R������$�i���~�	���5%����;�J�l��gT�^�]�|��������I;����v���	$���t�L~�x2'�r����z�VP�J\�12���Y���E���HMH;�������~��mm�4�C�{4���G�o���w����__u[�S�*(8���������W�'#@�f�P�szu�)|i������IX�
pvG������+���Z�n
�jCZ����0�m�-�hy��A�,�Z�F,u���:�.e�Q�T�wo��Y���_}��S�AC�;��JDM���T�u���c����A9��)\`h0k���H�@?/?'d�)�J�}q�y� ���oF��K��IA�D���M��"�Wq������_=0��kH)��KM���s�T�="(����
���4:c�����e�xV\
�2=z4r����2"��r���,��.b�A6X���P�f|DB�
�c��:�F�U��������4	E>T�����~���-�3�����u;�1����H�H�e�ZSh���(`�3a5�g��3��/+����j$	c��3JNn�s��3<z_��%`�8�q$�/?��&l��F��uJ�K4F������W�2��X��K#v���t�&��b�J�)�D�.�Uo��3������A\9���Pm@(��PM�����y��� 8F��t�~So\����
�2���}E����l��]y������E�o��.��s����T0OMj�������O���)��="�A��h��Ml\������!s�=�����?���;���Y.�q��+���������������&���I��"��a�f��@�����"(�v�W{����A(���j�l/���+6iM��6O,���	�������?��3�^Ot�S������G���I�V�S������E��RP��(9����?*��X+�������D���r����D��	q)�]�Q���i=������!i�1����������M��������j����!`�5�[�����C+.�v�s����	�E�ns��P�Z�j=��8�X�������Z���].y%�Z�.��!I�6�"M��e^[�YFB4)VwvH���B����j�)\��=
�c�o&�
��V4�����/�\j�h�C���B�* w�k������H�.��*��x��ULx�s$�|�k�]������NxV�!��W��YE�6�U�E�W%��t�h�"L�&S�c]u$�dU��D��S;ma�c�s9��`�C�O%������+����L\B��O��9���9�?�d��;1b;�JC��7��B����c�����Q~� ��t����|d�b^]�#�|R��\����i���cs�cn�p�Xd��')�o����?c:��	f����U�����T?����{��H��z��������@����h��JnuJ_���5��{J.[����W0��`�(���Wt�^0�����`��e�v�k����%<��Ti:�_E,3n���3�U�yO��������I����;����5[`b�q����)s�&�z���<z��k�\t'���7U����_��_�%����+���1�������>��IB����BP�+0Z�1�B[X5��&#�����T|����s�
W������T���_���B�	;��<�eg�����W�S) lE:1��'�u8��;�/���
iC'�{$�*�	���	$P�<a9[9-(2i��4��6+��x�������
�^���1�������|B*m���)�W����&�i�S�S3�e�a��&�>Y)1�V�8
���&� ��!X*�*T��:�y�%���~��26��)�F5�fX������w�a�
~�2������TBtzO������n>9N_*�O��j���k�
2�#��gU��+�Yk������c�W�fMRp�����R���mq����i�=Xt���.�?���i)X6P�5ExB(����4���W���qC''{�����\\}�����0v�='q8)R1��v����;��e(�*�v�VnM���M��lT<k��]"�������d9!R7�~ygkY5�e^EQ1�N?�U�	��o�_�ZO���*�kv�}������u�����~�h~������u�kv�EM�f6.�f6�O���O=�pXf�����n`����*�����5L��������N�|��A�||���!��o6��O������)���	R�M��O�x���u��������vU��hZ_��#�cb&Z���e��`%�tX����C&^}�p��?�N��Sb����X'-�8vR s���
���k���
�.6|�s�9:H����9�(GY�
��)@O�P(��a���Wlf
4��O����^�2�sc@
�$[�x�`6]��9^��?F�7��|���w��w&��E��k�F�CH�
�j����d�c������z|��}�b��1VA��NP�����L����
7	�<Ra��]�S:k���s��1������m�U�\?��<L�v��M�v\�[�����!3�����/�;L�Y�.N�?o�L���a�t��d��Rx�p�cE]��D3^ |&���������,_��],h�zs��+P��)z�iN��P�C.�OU��7L��c�fk���u�;�g�hh��l�E_�&�7�hE��P%g)���aW���Cw�#�*���n���y�����Id�y�~�����s|�e��8���,O�V��A���k�Gh�"�]	�[�2>o��x��j7�,$�
�b���L7����3t�*)���������e�����*�W�7`s�Ak����������M��'��LR�O��g8|)k��
^z�<:�9D2�r�Pps�_��S�k��4��Q~A�����{�E���Y�`����Z5@�3������Y�������
��?���G�* ��l�0����n�2$����7J|I��3q�jG5�3��JF����'�Kn���F�����,o�����yy���}p���y��������2Ezi�����O��y����X*���k�� S���<����}Zk���&��w>�+,^EX��^�����`%�����}�.�7���}�kC�^|�y����)�k.��S�-0&���������*B��Ml	#ut�����t�J�O[xh�_m5������=�X������M�3��9�n����yZ�N��k��2�@�z����J�d����X�7�4��t��e
��x_��{d�/�Vo��g�����h���j�Y>�5��_�$����L�n	���������+���q�����W�����,[jj��*��7~Q
���i���V_�Q�+���)������W�]��������/P��_�����-M��v/��f�_�;}co	0���S�5�4��91�NE����QI���X�����p�������#m�H���h�z���;.�$>��`�Mz�k����(����M{sxf(��[nP�m��S�-�t��#�������|���
��|t�����O||bi�� 'S�Y����xX�6��n~>��W���z8��cE.1AuV&|��T�����6%����1p���Wh
���
xKs�������k������] ,	�X�	S�>�-����{�����BGA)A�NX�@p�5�]�����@:������Sn�e.$L�Z����8��.'�-l�y`kj������d��x�E�����������o�~"}��s��T����*	�X�NV�!LZ��F�z~���B�=h�#}Q2�K7l$�O��C��~�L<w�����j�Y��7�@�e{�T-��'��=�1*��AH����w��D��������)��0�pv�~aJ������lU�4|��z��n�0�8���c*��U��'7��c��*R�X�G|�h6�l��YrZ�X�c��Z:d����
Q���	$2�G�7��HM[�5$��\�/�-���*Bv�mo�!t��0� ~�0g�%�1�4�o�����KO��@�����Mj��}�����T��o�US?O���zO0��X,�p<�vZ�Z��\~uc��8��[�=M�+�7���cK��5���m�2^������t��N����������������I~7�{��8D.������1��?f��9S�J����������k$7.b�C��+l)jQ`c���<��4jV���!����������Vf/-DX�m�=�j�6!��Eh��|�ty��.v�0���������A[)�H~Yn~��^Z94�����>
����y%�c�>���,���p�6�Y��
��3�Q�8{�������`��a��41��#�~��NnxR6h4�����O�����x����i�H� �����89��F��8Ux����(��Nu��8
x�
�NZ��K:�1�y���a�j!��wb�8/�l�uP;��G(���l��-(�
�
��bwC9k�H�����1��8pw�����M���edI���Z61��G�'1�G��������_;��%3i�^6�}��C������!b�|k�#�KwR/��G������r�y��q�iL���+�o
��J	���t��N]���p����k5��[x
�<����1��y�l�
����K~��c��nP�;	`�1�~���q�0�����8��zN�Lo!q
��#;�a���6VU=Z�[��Uf�	c%����Lk�N�B�����0��ZZ��N
#�q���a��>������XZ��	������q��5M������Jx�nK�lT�R���X�LG���^GjI�8
U�<�
4�tsN��A���B�yo���&*u���{]l�3���>1:`�?H��CW���6f��9>�����p�����d��3H�_�������Y���'E���������P�,H���e����P(�v��N�L>�)+P�O�J��?�����w������	��}(�,X# �d0���Yq����^�A��w�w��(]������R�I!v�
:_��� ��Q�Z�{�a`����g����=�i��!�>SS�2�M����Z��RH�.E��.�-����)6�or�c}�7nndgS`v�oM��z�j!6���`j;`/F��H*�Y�
KL�j,O�TV$<F����d�fp��E2D�%
@��;r&�B��<!:��������Ie��3'-1��#����C����3��p*���\��ci������.��Ci@a������~����O�:���4^�3��Z�X�Zr�}YEN�0��s������*1;H"~u ������I�r��OD��g��������_b�ni�w�`�ZG�������������Q^[B�P�����oO�K�i��BUF�I`U����B���4��2`��w#�]��p��;��2<��4�_���@���qI�w���C?�Oq<E�����j�S��\�s��\��iY��z�CD(���1��")�s;��bj�1{��sK��1�i?�s���G��������_(��|�5��q�*�b7���OD�"�.~'��1�����M��g��v���e�P���
��W�Y� �`\��dGt��up�e�H	�08�0c��~�����WJs��yk�5����>]�F�:Z�u���7���8~�4]��J��y*=��G�����JBV]m+��Q��}��#�����q�S��[8��6=p��E�f�
��:A�~��UQ����Tx�
����w���7�*DA%O�������fR�V�+����`�)�8����h���k�9�,�E'G�39�yLV�~���ElZ���H���qN����Jp��tL8R+ ���v�,���7�Y: �+*�F��Bb�Z`��M����L�/��y�����R=��q�
����e����9YI�'�X)H�0�oD2�����s�U���_@
����������x||N8�z=���Z���<��
|uy�AW��2�k��w�>�	\��Q{��fL=�Hk�7����mG�����Z�Kz�c�S���((X6=�!|���:`�Z�����.�U^�Ek�D[|iY��������"������r�E��A7��56����������(��&�`�������L�v��tp���&�y_k�M/pj��6NQ�
��@�
����<m^����P��Vp�����n*��j�Q��F�BJ3�@���[�Uw!�����$ ��+�Z��C�kA/�a�L��	k"<����������&;���
�>�z%��\�9[d7�"J��y<��9�T�*w��h���Z���]��dY�����[����qG�b����N_�����q��2H����)C4�c���.���>����8����}.(�(w�)��<��E_q,�WKDc�|^���U$���Y���4/�'��~H��t������`�A@�bBkE�N�y��x������{�x<!T.����g�b�q/�#�f��x����������ey���:�awoS��w�0Gr'����C*�H����_
mY�N�;���L�
NN�� o-��s��;�K9���v��J'����vx9E�����V �B�T�����u��l|��A��)��U�X/�����Pp�K3���-�,��<�?��'|�fj��N*���K�oI��������8�v��c�M���]��q�4� =�q�E���l_�����!e��<���K7f@]nd�n��+N)����
}�QXUkFX�l�m�w� ��fCqc��������g��`S�:����/$�b�%o<�n��:toA�E-��2U�@3���Sxq�0���M��r����S������ -r�Y�����zn�d|K�j��FLk�q�����n������C�O�*�7���R�\cY'�U}H;���xu�P,����-�xq��&��\����?V�5Y�[�����p�tw��*��������Hb���ry�7@CTP����a�fb�!����������S$�h<KL����1��e����r�,�`K��^��w"�G-�GC]�ML����k�_��?>�J~����M�o:�;�B�Q����9![���{�W����%�[��8�|�zud�b���� ���__Km��7{��
���0o��Z���U�7��
�J���i|��c��5�������9�D�����������
��^���s��g��9g�gfv7E:>�Fd����Y_nkF�Fm2�w
���1n=���,\�]S����,m!}I�y�|k>�X�����:�����i���f���l��jR�����#<�p���Y����G���?u��2a��:���������G����8��"
]���8BL�0#�������&��2���O����By}�%��6��^����f}�2 ��`U������D���QfN��:��"�Y^)l�lO�	@�s�.����S��w�y���=��}��.>nG��"���5��;�'�����>�@��@���OQH��
����`��d)f���J]���h����4������A��1{�;`�Krv�P?�#���Q�U�W�9;��K�O����D�N�1�.F��Vj'a�������y�9N�\@��&���lnRr��	��O��NZ����L:��R�����n�n���3\������VM�7�k�xBg^s������������]
��a&�w�Qao'��t��x�b����0�b��K�����#�]sl`��t�s!}��
�r�����������?��q���&���L7T�\~e��)���Z��9�4��p��_�������u�8���NY�&����)����ih�E�c��q�����]����y2����Q�
|n��;<y���P/�7�����
��������X�������R��}�3{p���O�9����a!(v���d9�Eb�2~��o��z��Vq����������e����m�G������	'M��?W)����a����D
�@)^HB<q�V'!���TD e�~t��L8�(R��L�;����>j��G�(R,��T�C�60��� �
{-E����7�x���D�'=!I\2nsX�6eh����F�7*#���|u#���:�H7�[]CT�7*������+�r�0�����Ta�{�w�����`Q0Jb�1m����������}�8�$y��:#����au�XH��������O�gF+��T�s?:rY��z���U����x�Z��f�J�y��CJM���R?�>N�
"��C�	�������wV�:Bu��`���m�/��$��b	U�)W�z�[�[����y��.����DW��A���[$�n�]�{�/��p�NW�����F9vs��uL�)���+7�H���������5o�Fl��q�l�=9+�N��A3Go�k����afFs@�����,�������$&�~��i9�?�%���
!���y0�[�I5
��
�����F-C��[N��ka�!=��3�\�<������0�2�||^b� ��`�I���b�0�M���>t:j�|�����zB�55W���M$�A-���
m�r�`|����Y��uz%�[(��� ����W^S�Q1u�l�|E���G��}���+*-�?.~�vsh/�eo(K����k��#�*>��w�Q(4����&����Yhc���R�i�B�v*��4�>���K�a&N������2�O	WA
,��H��]`@�WF�A/�?��H���k|���s�>����,�����oA���k���*��l!��P0:�q:|�q�1�e���������	���)���Gm�Pl�� �GHE���%>c

�5&�(�*�@l�1�,��5���#�"F7�&/
�S�n(U���c�L������������a�\���������rx��p���0Pe�����H��������V����o�4��zUIs�o�9���t����<�5�m�:��H�������q(�/��<���"\<�|���C`��c`���@�^�s~��X�D�+��78k�A�P���n&�,kN�����m��x�%��@��m�0��������fJ_�i�m8��y�
�S��^�s��Sj����q��|��� n��sia�
���������!�XNxQ�:,c�q�6��"�����E����!(�C�������$��L�%I`O����)Ix��21�i���q]�
�a��mZ���&�����.j>x�"u;tJ���F�<�:��4�X5[�8�G��k&��!S�
���l1��^}���y��4��5t��w^{*>�����pJm���=�����N���w�`sj"��)�8
\;V��#Z����pPS��2��)�x�m��������$<�����OA��>���������lv.�&l�2�S��i*�0��>.������X�'&�p�)���y�>�9b��$��Z0��L(���~�������Ts����bu9z�_�����tm���r�������!q���.�=B���A=�W�E��<������:(R��aG$fj����%
�����a��1���	e���c����5�����b���+��~�����|u�" �7D���zt�E>~���q�b�!��WL��n7?�O�����W_�P����d��A����}a<DTR[	C_JT;�.C
s�"���]AK���
|q%���{i�=��W��?H��=pm��s}�gZ��&��t��U �� ����?Z����w^�i�q�>��j�j=-.9QF���\�n�
���qS�g�6���_�-,��y����l�l���N�H�.j	H�>v��"T(-n�v�67&3����������n�|K�l�2��c�<��a�74CD�o�o2�d��8%��c;<��^��/`K,�;���0L��p[�!�n��i������D��=C.�	��_>nnE���K��C�H:�
5���S�*��.��n��GrW��=����9�����c���|.����,�s�X��<b��"��
�z��iZ
���X�h���>�,ic��L���9�M�������A(;!v��B���-K�5����5'iL
�&e��	[����u0YJ|����cBJv���^M�H����|���=9����OV�1ykuv����������:%�����:���u����U��MF�)�|�D�O���0[�X~�iI�P8gp����X=fU�Q��+/H�}�L��,O��Y����-�b�v�2�3%k[��Z	C���
��8��`��yUa>}����L�}U��H@�X}���
�`��W^�����Z��fh�J����q�����4a>y��9�>l�H_�@���/�_���)�_l+h��c�U�������W�3�B��
��o�_��+��Na)lB��j9A�au\�����6�}0|����$���G)$�F��_�������np���C|:?�a��|������S$�
X"&9�rI�E �.�7�S�Q����`(�20D�>�d���[�����!O|��np�:��3���������xS��m���N,h_K�M�~�����CO����WwY_�m/���@Qc��02��ID8Q��+{`���c�<�X	@H��xI������[���v���|��!����~��NP�V.�3��\�,Ec����D=�@�z��1%����A���`XH�h�����|�l����	�������c�=��IHRL�\@��+�)��b��m�T5qRV���;z�Ys����sf���9�T�M�#���Ys(4i��[R��Y��kCA8�}��c�0��bm�+g�#+O�S#����.��8�[�H���5[7�I�wV��C�%�'�r�`�������r��oF����P�?d�@7�H,E���[�6�r�1`��b���
5��fk��?�wiM�W����s�{���=f�J]�����svU�s�h5����_��\���%��1�{_�K�K�2����	���/3�)^���r�P
�����������ZR��J����ace�
� ?u�4#��6�����`��<�|����.dV�����9:@����O���F��m�q�Tez�������g����/���A�p�����,'���y��^bg�%3�E	c��s&����m~�������f�=�J��U.�p����&#������c�Y�Q��5��:�	���Dyu�8��p��0�S)�(��V����_�g���a�F���lty��
�s�e>��jQ��u����'���i�^�����V���#�Xhl����%����"_��.���uD��r2�U�]�cdvl6C���c�!]�lQ
�	�������r����W��
J	
VZ�.���O���7����&o��
��t�}�5U��e��*��k
+���Um��9=d�����u����k<�5o��C���z�C����r�~h6���P���}��|�-�d�J!����������b T[l�6Q��|aK���p0{���������;o������5k
�$����\����k��W�.u��
�a\)�I��k6�phZ7�v�O>��^<;@��Gh���w�6�6�������96����A!2��������_
{��
H�&O��������U�z1�,i|���T�7�+�����=�1*����$����o7���~��]D�cAp�����	�_�P���Q���P?}a�#4�^x��4u�/=f��;G&�p��
��GG�	�T�[���Q�����D��
�g���U����s�_�Z`����$n
f������hrgo -x�������`������$|&�V2$4�Z`uN��I#_'v�SN�\�M�b�c�����x���_|6���`�\DocC/�@ia����E��T�K�Cc=��0��J,}��B�2��YFob��������5�������c��	Q��(-��G��b/�����*�+7u��c^]�$�G}x����6�4�N��RX�4a�oO��1B
j���67��7�	����)�~����c�e��g9v��`�cb���<�e�d���? �N��_����
�����!�����1G�{�u4����g8�6�>�ds�]Z�s��~�-�d"\��2=�?���M�<��b�$C(�b7�"a�v�i�O�&#����0t+O�'�������A��Y|8��/�����g�q���� �����=�91��!��n�;AZ��@�_@�6�Bj?X�DO�2IZ��4��EC|��n�{���Q���_���	����v���[~��/a#�~"�p�%'�����&�L�E	��C���^�=^3�����_�$XwBF�)�?���_ne�Y`z
*���m5�o�I���'J�DP������=P��Q�o��l"�B:+T'�H��p����m@�[��&����]�/����vf�`�W��9��]&"9��0"��n�%1�������{�Zf`g���Gy�����"��iq��H����-tc�	�,���a���/O��
���4S]Zi~�o�{��$t�R�����J�x�&�+n�9,9����~��Q�B���]�"������pJ����E��h��(����>�fz2cY-�����en�.�e��G�P�,s:m6yr�,1��i����/��l�p3�����?�����h���\+�9M'��������V���]���K��OZ�b����z���i�$�iD��-�������A�o+��3��NK���3p*�@8������Y<�������@X��~'����DO7n�	��b�,#V5
��3X�Z[����Zp�S&�s	t��-���Y9�?�������P�L~�]�Q����5l��XC�X�sF����
�"�h��-��^��
?������dt��F���x��S�P��Mx�.���E�� �I��'�d���t
���4�R��C|E�)�������Q�3[y(#*c[�,T�w���.�����~������_�Lk?�]~�9��sb�?4��E��F����.G��� j1���%?l�9w#R�ME�������B�
�]�4;�J��A�Z��|���`�;���F)��a�ql�@��D�V��j��@@,V��n�^E�������jt�l~�����$�!�l�R^�)6y,z tAN�*�`=W�i�Z?}��K��"��@�p���o�3�Ms�c�6Zm�������i���Ji�E���G�f�F#��tK]�M���]R
u?L�V���&)k�'m��F�������X��:�/<b�t���o��ft����z���W�'�D_�h����	S�>�)��t�d��(�{$����L����/�|�r��%t+�?k�.����N��o~��k�[2�����t���������e����|���B*�����C�z����w^�O�����>0��H���)��jL���3��������s����2|z��k�Z�Vu�F�����lg����I�&^a?�G�c��b{�q������z��K��	�V@#���v_�c�%��C��>V��>����)����|
-_+�[<e��I��&j�����_>T�e��'�~�w*\}����w�H�Q�1�<����Z�6�����
M�B�RxO)Gi�m�(�n�
y;[E2*��������B�e���H�Ll�D�����/	a�zW�:���L���$N��|����t�j�z#HH�D�������9T�#��h�/�E3v���l������=�?2_h��5�}?�kFb��k����	���=-(
<�a�AmEQ�YF���F(�$z^��Xv��	F��R��-��h�J��^h����/����%�a��p���%6��4;���_���wi�Xhzi��F���_l�w0N9� M����M"��kY�"�e�!=A�$����t��}�-����4�M)(J��������YY��Rs�8$g�aL	����P1C�D����D$= {h��4�-�+�������xM��k"/�uG����'��@*!�Z@�E�x����`���c�Y��'K�����M�c/�!���_�pU�;g�/�����T���^����DO����
=�B���DM1
��f�9r(P�O�Z�qe�!^Z�����:}^�t;�e��V�Kh���nO�4���+��E�U�k�9�.�����.]>�Z���:�a��p���'��;.��s�X��+6������N��/g��{�����Y �N8��S�i!Y�6Oq������0$��m%�w�:@Y��M�S��.w�M������@l|_,$ur������1R|m;@\���1�'����o���KAi���;��I��N
��op�����>Ut�������i�Cm���-��c��L]t�]���,
d�m��t��#��E��E��2���GJ�T,�b������(���_�s�F��&n��=�!�������
�.��^Q��C��rwVUw�T�������3b�#y,��6.W��b2�q���9�U* g�9�����`J�A>��8���!]���J��z�����b��������������3����H+���Lf���E�j]���
]��y�e�������+�]Xw�!$o��-E��1e���jI�����w����LW�D�h�����	m���o������<,wmv(�b7XWS����`����-'�t�2�qbc B���r���0���B_z[vX��7��S�EV�j1�����!��K���&���)4�]OdG��@|&P7������vZo���y��<j8�,+����������.Q�$$�$�Q
)��&m}�QU�v8�1k��]��DG3L��~|6DQ�r�!������*�4�X���e{wb$�����������b����F��s
n����J�J�B�[��u��`.�cz|��xY���.�%`��#uzBM�yM�G��E��p�=���YG������*������!�F��j<�����C�4��E�}�����o1z�|A�n�z���]�D)�����bk&����SH1����2k�c�-f����{7P��1%�#�a~+�x�$D3p> �?�	���,$��m��I���f�����[�R!������1�q%�G�S��M�1�8�vrwL�J �����_��vl��P����	��$�&b�������6}���;������9*���q���#�����_��SJ��jpd��4��)��8�3=��,2�Q�C7��CF;�p����\��g�/����(�z ���P�������x@�g�n�h����8��0d1�E������RE�-;;zU��~�A��q�����`�;��I�+�G�D��|!	���q�c�1�:��������kn�.}T$<k#>�2��-O���o����3=
^ �7����7������Z�N�N3��Q�8�����>)�wL���H���UY�2
���N����N�q�����<}`_�@rL�?����.m��4�=��c<�mO������Q��/�Y�
�lE
��w�����z���x�Wo����/��/;4��M-s����f��$��5([
M�@��0���d+)�vW='u�l��je��C�}�~��U����^��Z�N~�����B�@������$������K����pN�/��K����P�{Z�\�?����7����(8����@�F��te���=�K$��;�J��6�b���,�Dks3��G�>ly�F��4x�
'y�#]����r�i����:?�����o�f�LAr
���e0)�6����P��\���#A����7��m���m�W�s�/�v��
�����L��]���G�;�r�({�"S�7�W
���_}q����������vvIX��a��#uR<�:�v�Z�?g!O�����jI�����^�U�cP�1��1��1���|�1�r(�J��~M��
P'I��������>@sQH@�<� oM�a�j�!��!}�Vz��AE5(v6hb����|�}$#C1����U������J�a�(A���/x�V��<�I��K7���i2 X5�^������I�b�$(� c^������9�k����;AE�K�D�w�����o8�.������t�m���n����kIT�R �f�a����F���A^�IW,-�����9)�E�}�e���k��m��%�n8��B!R@�Ul�-�g?�����#y��	X�ZA�|����f�bO;��e�\@md�3-+G�������$��s�(q��v���q�,�
����v������5,#��i<2t�f�Q��
�v���RpD*e��
[w?x�U�
L�8�?�'s],M�2q������+��C>{0�|�f���]!�V��fun�	��������8]��g�D��4�u1{C��-1��waB������W���f�o��Z�FWJ8_����)�r����i���n�{Q�e�P���+�7!xE��@2�	�&6��@>R�m�<x�PP6��A��dz/�>�w�Y���E����N��L����(~�|2`���/�w��i�A��!���A������Ld��~��>r����r@��"Od8r�y0��~|��%~\���G��������,G�,[���Wl���+�D��}��2U��}�
2K�\qD8"|�#��?��?8��!'���c��PuG�P8j�P�)U��,�ann555U��4������}w���qZ��(�x�a�J7��y�$���XT:��5��TRK*������e�f�;����h���]��f�N����
'
�q(P�E��r|�v:��L�����O&`�	f�~����G��
[�k7S)9VMw<f���:��c��x����P�3
.���[�
��8� ��>0��x�������n��I��C�x�W���bIzV,w}�!�}��/����~�0ZN�`��������8RrvYy��R7w��&lR}�HWN�P���wH1}��P���MUh#��>��^`����Qy������]�6��&������0tK�=���
�g�����v��o$.x���&�����,_&o���|�wy��.���I���A����;uA�VB�r��%e}n7�r�;'@Y�t��b>������i�M�p��X�Kb��|��]�,t�m/�l�D����/��e0�����4���4�?cx��!�S���L\����(�s����EpZ/��^W�^�*��q����c.��!is���ci=����D�aUpC?'��*r����a-�����!y�1��uQ�/���q!aSA>Hp'��E�"�a2��UZ�t9c�C����[n�����i�uP=�k=.t�{��B�K������U3l��,Z/�:	�.>r	�;=Q5�KOp�(�D�#��V=���T{���|���k��PY���]&b�JB-������y9	�A�8/%?�\X�M�<��%�h�<�H�&����c�8{��u�F��t�w[g��B�cK��~��!��g���,���$,�+/�
�Z^!M��nCvv=Qw���yJ[�^�*�
q��/����|���l�}�&�'�q�����J�.���Ef��N,P_�[c��h]��AGk��{�����|"��b��I��������fA{�_�WQ�����0�Iv�(d�Eo��^P��o�3���G�-B�v�N�T�;�v�QHg��Z�OW��
����������R��R���]�t����A�6(����9b_o��N��������C�K�����j�)X=�2/T[��
@������}h2JnPH
�3}�)��+����=k�D<�Y��3���\z��QLM������"J�]'S��/���#�����#�6���[$l��]�
���@m<8$nRh���������+���)r���!][�\�)���w���2iu������b��"���/-N�h	��h����=��&��f�
�D���8
���>{�Sw7�\��>�+�
�� 5z�z�������R�����p�8b�����e���'���3?�t%A�E�)�==<�<5�S:h������/��}4�s������!�� �4�tc���]X��}.���'��pp)��	KM��{���Z���<�oU����=:jO}�}�;�~�44���C���X��@F�]�r�����57���$Q����>
�	V0��;�fUu�M���D%h�z��T3��0d��A��}�>���o� d��K���������%
;�}��:;/���+�0��^3wm��9*��j����|A[FF�
�%���XZ�I������>=���K�l���(�	���1�����s�>���PE|��~���{����ieN����.b��`��
����xy�B5�#��r���?�����?s��A���gZ�������|��U�l]
���pt�q+�"*�p���%S�YD�fJd�
%�0���}	�]H6W-Y��6M���d(���rh��SQ�������a,�zf�"*�P>ml���O�~�4b��4+a?6:�L������)p����������0�{7�r�<V����i,��]�7*p	E+���2��+p+w�$��a��j�<z4���JQ��W�q��v����s_j�4d��bjK�i(P_w=_Wd��B��k^���m,j���F�{d� ��;
�kb 6c(~��HpD�j��{kMs��4k
4GZx�e�pU��.�pzD����=����>5���:;����O�C^1`:��O�B��A8�u��i|�?l�Q�!L�	��xy�a���H�WzX��T	�U��m"��[N��^4�#���H���O���]��:�8E�^�X�����_�$_u��������%���2��3t�*���$t#�[S�{�x������@Iw:�W��.D^��_���I�A����K>��.��gv>�����>�a�:#�����_��@�hmM_�O�	��&ZJ[t�'�P��Vy�h����:��Ur��Y�n�#al���k�7��=3W��_j�rx� _��,!y��v���� �����8�}����C6���e����u������f=u36a����(�W�q�Ey7���k����m��0/ ���������$��	�\���0������J���\���v��O��Q�A�MY�
���T�q�v�b��? Q	���k�|}����>q�{k��A�G�@�$�s�QDa��J��2�m%����8�3�3��D�[�A@&����p�sZ.*�y8�p����,�$�R�#[��V*u���%���s�f������*���Elsg����?��4�T=��0��O�D�j�v5Y���/M��&�KC#7�����>��?T�=`�Wb�Oj>�j��\%�z���S���.\�v��>����aE_�DN�&7#9JNj<���Lbo�i
���_������+sT��TE�Qt�7�%�Gsc��bX��o��8��{D��)��O��~�6�j����e~�r���0���)��LE6�t^>z	w�������cm�{>?��+���S�����w��}8'�"=#��?��Ru�q=��\�1Z������#�u���K�]t�#]��'�|�K�����V�b-�Tq����%�E��KA��D�k�1��Q����KAB7A��i�J[u���T��f���/[�a��p�_9���#15�����k4vf�b�r�p�0�,��@��E��8a'����d�4��������j,r.��b�����b����O���L��>�t>��o�j����kq�:�*���������Hz��F>�K���%��
�5���t��(`���Y��l�>��9��S��c3A��9Ny�8��k��!�>�#�U�\��IA�p8����P���;6���?���F
2�D�F!h��������;�n�S
�9"����&��a��1JC&^S,r��;ld�����1��l�(�����O��+��'uu�64F�9�@v���@�}��^�e�K���>��}���d,�����ex��������k�h�!���	]|���3�w��s�������K��W%:�m��z��`�����N?�#�9���h3� �^Kg�J�H=Y��H?�}�#��0�������>�
?D�qu����9���C5./*3��q|��Q�R�W����j:BH�S�"���xT��U
��<��>�����T���W�Cv���BM���&z�?�9la�?���[l��ra�6YjF��E�j�#Q�	��tb��5��}�zuK*���U�Ts���W��^]��]ZY���yki�#�v�������|�}\?���`!�b>�G���a>���\p�|������9
��G����6�����E���.?2*��qhF&�����rYz�����<�����7��6���6�*�MJ�{X��f=c���O��~����JYa6l8��'�uc5�Eg��wV0��L�c2��i���������U?��������������2����2�+��7ys;9G�%�v�6���wc\_�oo������bX��t�A�o���O|�5dm��.�{���8��L�f~S��j_��oOu�j)�������)��"v��a-���J@�a���P'g�r�e�������������>�F]de��/�,�5GD�`mYBR�XJ�0H���[���p�8.-c��IK�~�N��M^��8���_T:�,aC�)����z�K,������+{W������r(��J��)����X�%���o��������pHF�/�n��+r������������������k����1���y��d�[����W��u\?�KX������!MNS����?_����<n�m�'�e>B�6��Op���Z���'�j�)�^�/��_�Hp^+k�)��^,Wv��'F�&n2u���I�c�\�B�>�j=N�Os�
6Q����<�r'.�}�O��t�{R������)��L�J]��}JU�dM_�(����r=��kB�����r�)�<�N�����0�t��}��O�
?m��nX:��Y@���
%�6���YK���:�\�O�N2����z)y��� QJ)�i���o\xv;AC�Qt�8q��������y���_�2HL��
I��T�-�eh��zY�i�����������]�eAb�A�.��.�����������e��~�
�Sx�8��u@�a���n���}Z����-u$1\�)�fq)
gE�0h<�!|�ph��4�f�r|���T&=1����z����,D)�F'�k�����W>1'��f�����7](M\�v��f"���W����rT@�]����G�����9}���p��k�IA���/q��9I!����~4��Qt��MX�(���y���
�<�C5�bV���`���:>����:OT�z4�����p��I�%����J�E!gyx�d
��.�1:>�LK��r+bw7�6{h�1��R��j�k���)�Mt��SOK���S�-�|�>�_��C���p����'�[��U�&�_�s�����M�7�f���oI��}�my��s�RJ�#S��J��	��0��c<������4�g��1�t���������_�X�	)��5NAx����4�0p����w��!��fJ$����#�y>l�����Cu�����e��MG����W�7���C���H-E{t0�<���N����a���	���{�K��t�W����q�.�Y����K�V�
%E��D����u�X�7;=������=SZ��
����D��Kh%+]%"��e�xu�a��V��;�MKn
#����
����g�e6�+�����I�W�J��:�Q(��Y�����i��'k�$J�p����E���8Kfc_c!s>e�]�F����n�/o��x�����2��Mt|�c�������iV��q�������B�3 ��r<���by\7�b>~�Dn�����!�������2.I�<�6>^��y^f������q�3���=
������@�%� S^�������9���th(���9�
��
�]�[z�&c_K/P�Ts���nV)y��E��2>�������
^�%������g\�\e����&�W������A�~�S�~�B8
���Ze
u"�r^�2W�����e��t�`�1�����^�+_I�A��Nj�pc�;}��
~��'�m���m&e�H�s�m�y�U�������z��\�Y������
o~q��-
��������'����E���	]�
���+x���4��������@j���e��r����&��EZ�:	
��mBmB�B���mc�]�����*��s��u-C`I����cC7`t�s����T���]��������.
^��'�s.���h��EX�p�:9.!�>�x�[�V F�d����a�sN����3�'K��-�{6{o��W��i�XS���%6l�%6�G	M�&�fVl������6}�p��h������
���9�sS�����:����yNMr\�J�s���X�;����H��|`������`����2$����MI0��1!`d��(d7���j��fZ5l|�FH����-��M�V���26��\��rh��3a�]������	]��V�G���4�4NIxt��Pv��A�&W����6S��w��:P�yZ>R��['��5W	Y��65�\�i
����!���
��%�k�%���Jc����m�z�{���n�^���N���:���x��j��S�����33}������~.Rs|��~0������W�}_
�piS��_]'qoX�|P����(�*�W��O��R,W\:�^�'��:>�i�6����I������n�w�N~WA�[�;nBe>?�����$,��`~N�36�U�%��-����}��/��lH�8,�H�C������.x>AH�
��k������o��7������mr�D����p�#��#�Y�^�Z�������o�z�G�Tq ���G#oR2n��7.���~!�6r�mcG��tt�+�:
���a�
�T����Ut~7<5S��LLS���?J%�U-�D�\����P>��K7�eDX�*>d�*7��F_������Xy�[�4�s��[�:�6K�X�����S�)=G�2������L��'H���z���$�u���m`�C������������k} C�T{e%ht�`����)����]�2���`8X3�!py��8t�BtxmV��|r=��*�-��d�^~il�����m�������
��p$Y�2.e����^���/�x
7��;bG�h9������+l=����20�vp1}�vc�$,��S��?��L�75g�������u����%�Ntxg1��"Li�	2������L�\�e�N���\n@�Z-���:++��E�R8v�D5���j��o<����4U�WO�}�{Ue���kn�O��K��s6�	��pD�Z.��?�Z�\���B>��E
����2+H���_���,~�]>�q�<*<��A���L�3�X�U�e���9�y8��]P�0�M~2�w��I��M,"�T�;C.�z0�����0MWfIa��%���L��J���f4)D|�f���GxJ�_�	�?�WY6&{�'Ads[�&\�=�B�-B�fq��{fn^����&����i<tn����y��*�����'���,U���X�3����g��8�Z�;�1����l���n.��/�XX�t�s�CC�g�j�:
�>���w��_��;Y��
��#����U��H#E����O������|��tIK�����g#�P2�*����R�Ui hf��)�>?c�4���F����k�o*���g����l@}��qI��x������"n�+�H�(*�U,��`K��5�X,H�JX$rV���a���O�-5������b����=Jf�9����/xnb[�����9W/r�6�����#��u?*-�"�����}v81 +��2������<�����@xZ
�}���c9@��.���%
9\F/���x)���2��Zfn�}x
�0����r�T�`T�v��i�W�6'�Ol�e���0��vg���w�E2Vi9���^|�z�P�\>.\�j2��CL<x���Gd���x1C ���dnV#��I����\;�Yf��]g�K�����iA������R`���KV'����v����g��*���vE�!|!���������������	�Q�F�.���\m�f�QJ�c�y)P+��M��a��a/z�c��VLq/v\6�C���w���z�|	��$,���X�C;QbN����Gg����U4�#�
�����k����u9�S�9���r����6����	%�S�%e2;�Z��L���$<��
q�5�l�a��#�<��+�=��{I������.|)w����X���������� 
m��B��G�E}�$Fw���n/����$������p�z����2�_��"R4����~��A�#^����c�iI��/)���K�@�[�K;�rj��d���z�f�Q���w�
��q��#���?�,� ��%���!���mx��o�u>SqG?g��#��}�S���\�$��u��>�G���h@�J���%���U�:sV��%�k�o��1�y�x(���>�w���B�t�`E���o��yZ����V-�*����i�<g.H���i�����F��O	����S>�<�����US��]��e�|�RdX��E�����'��M��M��<��/�XLC��F-���%������UoD�O;&��N��\
��x��)�L������W_���Vp��dP�������x�L��3�Fm
���SV7_��}�T�Co� �l����,��!>��ch�{zM�t����k�	�H!���x[�1������C>]_��/��H����s	�.�-���-�pU��B�j�F�"��E�{)�wM{��w��_������[�Q��4g�����PXTl���Y^@�9l��>!3��P��nJC	4��o<r#9���@��� g����[>�������9`(��u������5���&��:	�!/�Ur�X0�R�7<�-������Lm#9�{�<�`-�h��iQ�
����rV������<�1{g?�������2G�fAMr�9�z�a2�]Q����������Ep�7"�LU�&d��q������K`>�����p�lZ��=+�AD	�!�%�w���G������JZT#Hz2d���/W���
���CDA�oS���bsF��H=T�I�|q�jUp���V������y]w���yi��,�W�NK�we��8t�#D�f	��NP�Hq�V�����1*�]��p��'ys�,��P=����r�K������I��6��^$s'O�����^�LC����H/+�G��O�A�uS���8_��2.$x7�!l��u���������_�+�MN�4�';:��.�����)������'{�9�g|�S8�9�s����
����u�'���y�i��a�wJ'@mhu@���d�'���FK�I�E��<�fK}�����S����m-'G�<-1jO�-O�Ut��0����i���c02���a�O�vz�1�^�:aO�K��&%MvWt�2�w-R��|Pus������i�9�����fg�=�g�l�N'�rxJ��@��=|��g?�'�����@H!��
XZ���#q�P[��Bg�F�Owt�}�M>@�>�xyT�/.�~WDx���[go�D��$��`��J��A���u0�R������p��������p9���u���T�BPJ@pzs-Q�vB��"yO#�������D%	�����
G#@��'x�����_�Y�9<5�=��)�Q����J��t9��2�"�$��.�g�����m���w���Dj?:v���-�'���
�`�X���4C��`��o��e�z#@�R��O�X��6g�����jM��8O��V�]
W
���	���]'FF������ay�B��{b���8��|�2��p�W�>A��,0\���g��^�����g�%���*�%(7���Rk�e���CMrK?5���0d�����d�M��+�$0�����/	,i�\���)D����t��)���9�?�w�*���/�m�#&��i@5%�QYAL�C�3@s��R	����x��V�����$AH�P!�G"�MO]�bkna�v)y�L+�/��l���g�dz>�.�@�\�/T�t������8�����d��.l�7RET�h�)�w�z��:�oy�|�]w��8�(�c�������u���g���W�2�h�n��c�	��x��x����|t������fR}���W��LQ%U_o��B��)�h�	���w��2���~vp�F�=��v�	��V����Gl�������&.���q��s���������%@�C�t���[!�X�	���.���e:.����9����4���:��@�P�p��J�'3���Fy\����V
+=P���"��H���z/n�����Sq;�9����y�v���A�rf+�4��;���q���-,���e��$���������vl�.��I�����^y����/h$��{AXA��n�P�p�@#a5_��!�i;�LY�(������w����0��IX�91��*I�@v�S`�i�8�=������r�T-�D��R��K@�`����������s�
�?��� U�U?$�����:J�U�Y]�"o�p!'el^�N\`�����M��jh�Q4����-hx$�m�uB`�!|Hj?��7������t�;U����;vl&vi{�!<�Qm�����>��#`�	JADm�
m�����|h��=D���=b@���'�ps�h9>��De�����8�������el��I��rL��k�^�&F=�{����A���������[����m��o�=i��+��b�]��4^���xm�?n0��*W~���5��{@���]�R��x��SS����%2�S��b���{@	�]�����q���.O`Se�f__���U}�G��3r�Z�C�(����;��lT��#��5�>{��A�����u��������1��*u��!���jp^�[���im74|�<��]8`�v>A;�NK�#1�,/S&����J���x������o��m�>�2\|��[��r0>��%"Z{b:EN�#�s��B���Ha�V������V�Vj$�Yq���)�'�'m�v��G��kb.p�f��	]i=:��c����f��L����|+�LK��1�u>�I�t�*�+T�w��%i
�L;�]�z��C��r���$�4�c�v����d�D�(�M�����%��3P�F��mpC�a��N�w<0�_l�����
�mt�C����u����\�����0r������3]��<@g��Y6!b�9����Ek`@�i{o�������\��\_N��4������Z5{D���7!F���!�[���p9I�F>�8:bO�����#�s�Y
i�G��C��:+�E��$���"��b�7*cRm}z6lFC�e7l�){r����uuo��u�5	 ��M�����#�K�����}��
��Z�m�m-��O���(+�<E4H]K
g���S�b[�s�A����T��W9�bQ�|���-z�%���0���F�3�a9P����&*����'�'��=�o+y�G�����^���������`yO0���^z�{c�����&�c��	2$bz�
@z2�_|�y��r+��������dL\d�(�O]������c��@Nt�����uM�$�Y.=+t0�����6<ef���`{���6"��	�Cyt��0��C����}T!aa< ����^�5��������W�QNI>�A���Z�7�G	�^.;]
��O�|7��������'~����<Z�����.,&T����cJC����u���,W�r�M��J�j���]_���wOM�&�>�f��Y@��z�U�����k�����$�__Z��_������x��0K6�w<b'�b����c����$�NS���X=��:;j,5������}�M���V�����E��+�)�,��%BwL57�b8bt9�m$���h���J��%�&[
_G�hp���#Cv]�����~9�s���
��r���r������H����U���f���Y�o/�R7��Z�%���*���zZ�(�xHz���s��`��t��>m�����L����^��Ofp��~_�}$(�;/�W=�XQT��V���s�rV
������������F��������x��f���\]*��,o���j	dn[�Ur�x����%S���2���m�pc<@w���OL��Cv���~��v�<������������uu!G���������n��a�e"�NY�?�+�B:�Z�$�|cK��8I�WY���[F�Hx����%3�.���:��XrX`�����	����~�5�t���S���O�_��m!��\6>��Cb#�pJ���s�P�<T*�r�_?�X��T�3�n�Yb:��H?��Y*�s��<\v'{k�t��9	�'��>e{���w�N����C����-���;']�3
�~������.4D
g����lI��
����9������BB�l��eTh��-\�������������������
��L�k@G������U�;�c�Y�����Wb�~�~��Nl�d��"���d��'�|�Q�J��_�^��2�����QZ�"��F�����ZA}�,���:�R'�W��.\`oo�`{�G�]�����9���������F��8����k��p�%�Y����n�p�����8ix�^~�`�/�,2�Ozl�����y�Lc8`����p�T=�.�f�����2��o~���6
&����U6�m3�B�^hO`���d�H�")T
��#{s�
��7,���f�
uuS9��!�$�T�n�*A����S�_%)����9;�Z�X�[}��Rw���aw��	-���-w�k�
W�qK,,'��m$������R�����A���-�]��@�L�cb
/Dw_�(�u�1L�����G�B�v������T���qB���NXf��~����l1:��%�"��`	�u�F�i��[��*�w��(�ozJ��_�����h6�-����s|����4��U�8�����:Hv*c�����3;�.9�sQ^V��Su��H���/�`fh�ufi(�"\r��y��M<>�������7�d��,Qz����j������)�6v�
�r���z.��'��(�\���A0��C��z�r�Y^vq���L)Kf�C�����;x�:h=5p�������#���
��)��s�c�E4��vbH)&�h�sM6��_�]�K��j�e�C���E��������������`'-hb~���-�C��<=����r.h:���F���ay�0�����������hZ��=4!�<V�X���P�����W�����nO�Q:<w���rnE������]k�A0f^-���f��J����K����b�Psw���Z�w%���Q�u�>6�8�O��.�a=g�Ew�0v�m
�5�'����P�/����I�9�'�t|���i�FCw���c������q����	s����!��v�6��K�Uw7�5]��m������g8����������������)yH�kb�"nU��J���F�)�� ys�:����"���q.\5�1TL��+��Z�6l<fj�10��$Q��Vw����v����L�s���!��to��
���m���O�zV>�
�Q�:���c�0����D����X���]r�W�qt��F[�/�a���00�G�d�>h���:�~�$�h�
R{���1�����K���!@�e5���m�&���c>��������xl0����D����������~y	�-��-�s������on��YG~��x\�^��T-T���l3d3f��8.6�Dr�H	"�	�pB!��i�$0��7�O2���D\'<_�Uy%U�J���W�w���^�������w, "��F����G@�3�=}��Ph)py�B���KUat�`O�d��X�7���l]J��3�F��>x� ���aYr��\�^����<�6��I�I���xJ*6�-�5�fsy�%2v�h����0��(`p���W���GcZ�ja��/������|}w�l��w=�����
+�^�x7�X b�e�c������M���b�\�EO��P���GW�A��
LZ!��X��<�XVz�0_�Q�fvl	�(���P<;]�2Z ��(�'e��-�*��Y�I���G�|���D4��G*�	.~��c��
�^��e��7W��rlp��������N���8!�����u�)�)A�������/�T~y����#L%����^s>M�p��.����^
q�n��x^�Yt�^��#w����C�)���-��������.M��N�?u���M�HeI�y��~��:��OQ�Hd�oRZ�)� %La��,�����	�S�SZ��'�fL����!�)�|������E� �Wr�y�vm�)�F=���P�������g���T"�q!��xn�XZ���L���K,S7������X�P����z�x-���:Yj��A�E�9u���D��8{�A��{G0:(c�{�r|�������T$�t���dz���O9�&9*\7�M�%����oR_|��;gTW@����������[U:����B{���`�&��LE:�p��h��6���?���Vx)�B�������b�o�;�����4���i���^�i�F�~��d^��M`��at�R�
8�c4V���RVS�E�Mb��,��Q�3��f�P#$A�O�F����8A����&Z>:v&{\P����������U����a�<}�[�=7T\*�c���	��?
�vI��.��t	w_oC����Co>%�N�������&�Z]G/A��f���78n�=�{�0q�8>w��+ZHs[�R4|��J�@���;@i�%�r�t���e�An��e�yx�A��-��Dv��4�S�`�Z�f����"���Z����n�.?}� ���{\�|��i��#Lh�r�0)O94l�}��^�W5I��&
����ze��z�hb���J������@O�������o��Ax��m�����5���#+�PS��#�v���U#���6���#`��\NQmt�X6�^��E�0p��3�S���H@��:JgAl����0����+S�F�Qg&�&�������X7qBTi3
���&�M�ql�����]
o����;�w������r��R���b�����X�6V�4��T���u�X���:����"u��v����hE�PMD�(��.M��l`��K��h��eh�hiO0m�
���x����.��E'��(�t��K����~@W)*���(sa
��Mv���hAm��e��h����t.�U.��y> dlWI��j�a��M��\G8���]~t�eH�Q�x�����W"�
m����C���T�
���V}�^�P8�����jU��L��p8�.���'�91�K�Yr�-��C���]g
��O�]I��x$��Mo��h{�W��5u~�C��N/�M�����3�2O���c�`��Fbs%��8Z�kK�����)=��h;�B%�i��y�W�g���ac���0��?�|���(�N�l���/2�Y�[���F?���8��Q~=���/)h��	,E�{Hi�B��_|<�	O�NmrC�zw8/?�2���6Q)H������������*V$?�����V��� ��v���L�{!���������rE�	e���D�����*�!��������(
����������o<��&�C�fB�
j�xtn�Fg�.`�s�|��zs7y
n������N�3wl~`pq�,SrX0b���+c�6"���c������5�I�����+!�-���W�$q<�]����f��eIP�.��	��������1� ��O����h�WH�t0�'d��
���Q�j�(�#�~�SS�m�7,�����E�8�@����<"�yC����a�����u��:V�F6�*8�����u��K��%T�����<�$%�n�d0��;����&pd�fm��IL���(J^F�M2
�H��;1�t������y5^���S�,�i��`�]��;<
���z3��>��%�b�/S}�5	��M�����=���a����Mq:�e ������yH���Y$q^z��������+�a,3s���-Df D�kA���~����T�Dz,`9k7�b
�S���������M�p�+1��e�<�K@��>$���_'���-Z��l��hN�A=_+�M��uF[*�>Gg�p�������lO�@��)t�-,��M���gJ��x��S'���/K��J�����R=N
z�|��Q��6���FO�
NGo#n��e�r$[b��d](���^��`�j9����
%�����`4S��4�?��c6��cdY����y���9��/z��@GpS���DgFJ5"�������7OE� W���������@�q2��K�}]�~��L���Nh�N��9mAT>�'����g������5�����9�ur����������\��s`!�������;����	G&��o7a�ZZ�o��
x�h@ �y�r�5E��|��WD�~I��|4������$U��	�����OA��JxSiG�Z���f#�P!�����+�r�Y*Dx�m�\��!�������,����C�,cF��W���z�������>����v��rdt-����, :��$�w\�ts�/Fw������B�Q����DX!C/R
���Vg�7����V��pd�S���{�A1 /�/��5��w�`�Y.�����i����sx��<��Y��V_\+(�*������/il�q��B���*i}��W;�j����LQ<$�k](�d����=��a?�Z�$��M���b���X��\%L��Im��.%d�?%NK�B�T������� ����	Q^�s���$D�e2t�[n��n�]�Y��?�${7*)������z�S��
�S[_Uk0����PH�w��;����=7�C����',	���*�zW�2%�M�~��b�����>e��TwK������K������r,�$SV1�'�y`lY��;d�?��9��m�5�2E��k�+J��%!�"�nh�
W;"nE\�m5���0E�S�7-��iI�Z�lU���o�V�Qh�&��o����_��<[�������q�����*�5��4�T����U�']�.�ya����<@������Ub�7`���" |����>��E���j]�/��9vK�eb_�����J�\����}���c�)ZQM�T���*!��(��6�\���OW�$���U�R���g��y��t���36H�<�?��]����y���Hn���>�=������w@�Sn�Z(�M\�����|3��������}�^�T�}�F���$,IB�D�/���]���`�G���x�i��F�A��t9�4`r%^����B�����^� �&��sm��]z��N3��V�]��7A��hAg���u X���z�N-��$�������C%�M]
BI��m~(�3�Ep����$
k���`��B���K��)t�*�A5�����]k�������?����_��wj�:24��c�y��0�p����,���c\��z���[���P{z\�h����I���eIa����CM��k���\�cB~���$#Y���k;?��P}���%$�d4M�������s���/�h}�1�1�tFB�>�Q�b=�A
�}�4��C��K9_�)�F���~99*�oFc o����6��_�ImG�N����	����B�^��>���[N�2���Mu�p,�������n�T�;M�;�4H�
��$��\��}��O��6O�r��� ���f@�%,����������c�����O�T�|D�'"��ar���\-\���]9����j�j�@��
���m�%Wy^	^s{���N>y����i��)�,�]6/��Mxu._���cGX(��2g�o�2~!�M�T�m������K`E�p����`NG	��'�����=j��r�x����
�f]�x/����������\�w��|��JYx�����h��B��4���H;J�^R����
Q'�'4.�ur�A�J'���_�H�d4��N��S���E���wG����x�W���^!�"s%f��:	7�\�/+�q�C�\� (���x�-�D���`���'w�q���1n�+��b���d����~_�-|$�����n�����;�k����2)��������8����f�������.:�>�:)���g=�,���R�b�6HV����������?5C����Nc��"���G*����K0�Iw�=��
Q�����.��!�bq3EA��~��a����m��$��k�M\e����b/6�a��y�_4��_�e1��m5R;%;�W�BA]���-�k5C�yw�-]�:����8U�A����y��� X����4����6����{/�����p������*g���u����((aC
�fWP�.Y,���~��[Y=
i�0���}z�1���BG�������������w��2���:t��>T���Tm��������KL}�-U���U9�r�u�����z��g���������M����b@�#m��t~��>������uNq@��K)A���J;6/r�,�,��������kT�b������
�As����9S���0�fN�n�
�x	]���\���Rm	��C���z���0`[�[��\[�iD���$��9nV����M������I��9b4������c�1�`�+^p�=@��$���1a#V'\�c�j�&��/���p�hx��}�7��
4X\]1��I��#�Jq��b�s�)M����E�i�x��87S�os�6��d�3*4t�Gm����������j�_�LKT$�_�f[������('��|G���N�r�����(���k�m�����7��O�������C�^Y�q��I,��$^�6�`�D�}��?uc>kp����%�|��Q[e�9#���=�gG2�QD�wi�0KX�-��>���\��i�+"����S��_�m�o��?����O��������L@�_�c���+�3u��B*����>+�4FJ
	�9�����
��R[t�t;7�s;W��gp������

�)��n�c����(����3���������gx`�����Y�=K��CK�Q�D�	�B>���--
���A)��v� �_
6[�
�(�����.�"o�d��=���mr��p!��������l������D�v�[�l]x�o���.6������:~��J��@�������u=��������������K��6�<��=��b]N��
�)�k���o�k��w��Iw�'v�c���*2���7����1��B����<,;#����l#8��f�M���Yy��2+�m�|�;M�.�1��
��������\��a��u�<e�@��=��8U�(0%�rhL�\&y^�9�����o�`�W�q�YVLX�Q)-�[#�	
�]u����B�<j�@�� �s~���u>��������Ej�kk���_�������c�wD��+�����Bv��^�Y^�{L��srP�)�b�)KD���VB��9R������&x:i�+�I[��A�sr����N��v
�
s��+8.���SF�,(���F�"HRN��X=�E���N�st�
�o���
�>���E$���{��� {�<u}������9;��E:o���Y�$E.�P�/���������V,a��c�W�V$��+bM��gd� �����Tu{8.�`�#�(�Xg�E�����9���+�M��;h.�Oi���>B��]�g�`�
���n�����^N��������s��:�������ye�������������ye�kf�@a$�9V�hb�M�Ya#aX�&I�-O���(9�0�%[~����WC9�^�{���}�~�PD����;f�����"���������N��]��$�1`��~����\�Ri��_���1rn9G�pB����/��������W�C���C�Z�"}��"dt��l�NG8����J�oe*�I���������U�OIz�wi�n
��G����Z�=��,�JB������\6�.����e�hhGdYr:�_2�Y���6�?D%�6��EloUb�����K�O5���{����F]78�<��E�
�&������f�e2R����V��^c�����S��0��J���lwtKT�fS�in���NR
��;G�����2!�������-+����k��|���&=n�N��x�fQ!3���2������,�>���Q�86��"2����~��4�nq�Y�2��Q:A�"C�iX�A&�����N��}���k�q��[N���
��:��a��!���ja���C�������������92P�gA
k�1�o��[Z�@��a"{���Q*\��Dx�X>,�`��
���lwyL>@
��o�<c1-;�$�-�r@#(/QV����U�d@�A��I�"���a�}��,���j����H@��d��9��
���b+���ny�Af�U>�����qJiX�X�}�:����M�,v���&C}���5���z��l�����)�A�wC��bW�i�FQ�M���hQ��	��f����m��9�=���V��TRh���t}��	���	@@}�a��<�\�F���?�&bC��'��VY�F�& 3�j��9��'�7����[�4���c�:��&�B���s9��+2m��(I�]��}��!;��U�&?S��uL��E��:	�G����O�>�u��[p���"��K�kJ�#�0��2y����<n��&�pu�v�����+�
�;O��@}'�����9�	'��up{�"��(Z���|�MWM1V��N�!(�{��8�f&�[1��?�>�����( ��0x��v�a���n��G�z;/�j���96c��;�~+���M]�d�������JH�Tq��(�i�k~�b3����Lx�3����i�m�
	O��"t�������
��jx��fXj����
_{��U&@��>���_'Pv�[�5+�[��U�r�
���K�!gj~���Dd_���m�cT������pd��N������j��.�9��L���B)�GQsk�����_A���{(�q���O��k���4��L���t������*�+����fy�>|�o(C��������]�f�����f��z��#�V����
?�S������������q�|B����ag}������,�3�u�0"2_�U�A��eQ~#�W�U?�L@���j}�l����j�f�4������^��|
�%%�w_�Ue��S��7���*�^������$h�W���V	���u��FQ�%"A��W�]O<�U����KXz�]4�e��6�[�%g�{�D'?.0��)a�a�r��l��%�)3k��(���w�MIq�k��ah�	��gGA\�'Dw�	~���N��]�1i<�K�,�V"W|��r&��$��f�$|m�gTaE�?�IgVF��l�2�o�@���_JBX����)�=�2|��rg�����wN�m��g�N����b��A1����ME��
^���)"�%G,-pB:�U�T�4���4��w��
����n�l��t%�Wh��;����M�:�t�D�p�E���iC����sL��r�su(	�'?c'�f.de�}�����N}�s���D����:�r8�G!\XMYL�m��	B|����	q1�]�'�
|���~e�^���Z@Nt��$�sQ	F��JU������M<��s8��;d��]4VjLq9
�L�JH�U�
vm�u���{�F�	����M�0�������9F��k������Z�-Q�"�o.
d�Z��]��R�#3[~�f#����"��L������.�6���%��A�C���z���
c��(C�|���(j�-�����_���6�F`��+�#H�����������w����]a��Bt~����6��+����'�Q�e���K����D��Ad��6��C�
s��[&,o~���3�����h?��,u���xZ�/�~5���^�YAt�>����d��4�!��.��2����NN�07�,�R�?�F%����"��f���3���c�+���T/��M�`��'�&����e�����48-Q��e�4,w��Bf�:���P�� #�P#�������X���tpn}����m����#��Q�y��p5���n��!����P?��e>9��3�0k�j���Y��bz92��(-��/���vZm	�P���|����MD�~��7��� JwU�������M���1���C�w��Kd�T�]�����N]��{�8���<���Q|"z�;v��7�g�;V���:�h�(���m������Ew
SF��(��-)^��Q`O���1�������Oe�}�2��C��>���@��d������������O�+H��?(ry��JMH/E���@����=JO�&�w�m�j���'���n�������f�4Vh(J� R�{�,�����c�W��thY��H��K�rO�&���.b�P���{0[�5���������8�����1�J%>P������1H�/m�V���b}��!�,4�����{=���UZM<z���V�|jxa��h�B�K������~�����,mf8��Nl�r4%n�=�4��1s�f��!%�����i������}���?���^��q��m>����v6����xu�4���}����
R
���G:U�Z��e������W���D�@w��L������Tm���k(��R�*GK��K��n�7�W.����HH8T��:V��3s4?m���lo�$=��R��L�CN��u<r3�dy�r<�S��$�*U
aR�N������,O���v���;2��
��"�Cdj��'��q@�C���YG���E<��n��B�13b�g:��b,
��E��
_�v�����TAHQ�K^`"��,�L}��-�5E�T`�b<�����~i�7I�eOM�nW�&r��9���Q=�^��?����0pM�����n�"?���5�$�W�m9>�2-��Y[nL!���W�)�7{���4���\��L���N�Vp����P=����g���Y��\�[���.�
Q���q,YT��=M�0��;,a?�@��|�~(��t�J��@��@����Z�����U�H���	{8C��Xx3��������<:�_��x�~��D��C�; ���C�������������08���4� �Ms��N
���������S� ��U�zEt��E�+	]y�����Kk�����|����)���,�j2z�+P��S?be�	�x��$����M�+��*	P�>H5�`]kup���s����x@�J<�\�t���G?3��h�=�$�Fi�>���JA131����?IbBwPNup5��7.����Vj8M"�d�P�C��^v���AV�lA����^q���[�h��D��l�>��-����A���,z�v7��NV�3����G5�/t�N���[s�6y�E:dnbg�^��&�F!��3��HC�b�����y~p���V�	��q���q��, ��G����G\@�r�N���`���6x��B��'��w���8n^|��3v��r���6n��P8�{D-^*��j_"3����C��(��d����y\�f���*(��P�1�?�[���ck���G���<�?���
;���������J���'}���&�;��IE�P%x����'������Zmb�#��2r����9	���B�Z]��F����'W��}U�!���t�\�E���4b��0�������6�_$E!�Dv��]��e�*�a�r��r��k���:,�cc0[|��������\�>�|���|���
�L����V�4����7~}��%����h�k��VI~J�U�*x��@Z�\��v�>\�>a�/��N����������������(g�-��uZlt��t�������?Z�1�7�E�B���y!�H<��jK:�-G<2���#���&�x��@p<����������}E��v���Q����.����/E4��-��U�Y.�rSg���AI�|���C_D[�r�*�!M|_����jkI�K����������.S8�������:��M$�&���[��UF"8���/h�s���q�)�i��r�y����B���.��+��7�;E+{0��o"�F�-��}$���4����s9��|�N���f����Y����ZF|x��*	�R#q��|���������I
������_t��aWP��,�[�x���.�����w�n9�#��MY����d�y������UU�e�W��3rw�3n�*Fwd�C��t�B^aW�������_�wp���M��zu4��j�����(�b'6�]��%�/���+�9��P�?}x�C�;H����AGX+z��Fz;�N�a$sc�!Z�.����u�w��y�<��jkf�����j^�;��Fdh��	gJ��G	�Zd�� G��������	��=�c6~��������7@���A�.����`�i��?�?J�PA8��R�S+Q�V�o�����A���4�G���M�t5N��(����M��+!���p��km��^"���I���2�MpR�u�F�!@�����g)�8�ja��q�|��M�E�����.�=,�U�v0��Wf*��E��>�Z���5��8�;.��m�h�2��R��C�2^n�A�T7v�W���(���HpB#�}�I�+Y�4�A����D� q]<��U����E3Y��	���p��WA�����H��FO�g�3�2r}D���@�"�y&Y~��2N��a�EH��c�=���t�7�bx���D,"�ar���
H�������c�l<I���wAL�h����*4l+w�c��mv\D�����	��@�������2���79?7�9`p����b�qoe�&�g������&
��b<R�l����HIM��d8���Y���)�C����U
@����_���M�$����p�E��u����oX����R	�)����iG!z����x��w�R���(b���-Tp�#�<*��b�����x�}������d]�@%2�����N�b���H�a���T���&���{z& �e��������d�x ��ql�a����A-|��}�0#�K�t����������6�h+X��!�~�16F�u:}��xrJ�=1�����{�;u�E�M�K&����5�!�����XW����R�W��<~��Zb�A�"��������+�o�����p���L^�e����������Q�_�&�T�}%�$1_'��x�~o�i�B��<�G�fU����uy��������5�)h���
��	S�CJ�z���W�-����3v��	�G��i��47��8v1��!=��5������a�k��2������,9����������5�,�����yz��Y)bZG B�Y�m����b^�#kSOD��E�
6�*V�xwT,�CI�eq�Z��rW��J����C�U"����>]�|�z��R0�C(���)�sF���=�>Y�,�>�3Rg3��(�?�N*a�E8\���������`�5�
DR�qdM�BW�A��w����6�;;7.>�����.?�cGn�w��3�r����bP*T�����1�O�����`�M&��n�����a6�"���+]��
��'���>����)(;!�N,����IO��-%tt@Z�]��&g�3��x/�Q�+���l�R����`�1[�?T����t�X�A5�[T������(
({���J7����_�_��������P���R�O�d�f�E5���7�!g����4C�
0�BI���I\���A���n\.��Xy����s>����9���_�W��UZ��i��+7MTqT��
��te�Ns�5�8���N�3��Fm�\���_�=@���������PM�~�qw����P
�nlQ��
��k�X�����Z��YW�3�M@&Oc�A}-�2�����
���e����y�5\�0z�"u�2F����2��c�oj����h����4�A��+�!�D��w�>��#�EH��D����P����%i��p(,���&���8L�(<���a�z8
�N\Eh��������tJ�~��������>�k�u�E�x]O���h�T��hU�?��r{�'�����pi����_\�^��Z��0;o�����8�,;�W����GM�/^�
��\�y�(a�	/���.��������rrU���}e����Z7NA����h-�*��h!�H�[���P5����������A���x��9\�p��������39�t,����HZ�XG�D>��)�����g
��O\�^��M(��'���*2��_	 �m}�Q3�l]>�V9I���������+��{�^
�����q^�V����r)R���h��J H�>&�����Z��^��n��>n5��
��	d���\�������i��!�c
�,�T;D|�|�����8KQ�!+�R�ZXqB���'X��F��k���	��:��B�"8���,kr����M^:��"H�m������rS�Z1�
��:�#�Cs�-�B���)��I�d��]���`<�������)�0,q���t�����b���D�M l�^Ew?��_�xbE��0;�zv����S�n#���
�U�k�a��ZK[���D\�"	%xm������x����`�W��4���bAIE�_������,�}8]|�z]�B��<�},H������=^/�g����p������`y�(�F�<s}�g�w�Z:����|��"���#J���
��8��Z<��������Nf��uL$�3�y��Y����YK!'��[)�O�z�~E J��5O8�d��{�\��C�O�<���	[(i�w�"��	�R�����IN�	��Fp��
�v0����t#����O��/G`� ���p�/,�X`/��K=���r	�����^P�?)���������]��Q���<��.���3+rA'�B����j���O��'@��F��A��W�����a��L"C����	#��)}��W~�3K�=�+��Z;�i�(�;zi�N���-U�.+�G�r������G�y�C�jc�O���J�|��
��t�p!4��f���kB7�c��#"v�r��Y��T���`p�"g�.�xU�`�Q�a^E:l���C�Tk ���-xd��t���j�D��g�����\
�U�['��1���r��O\���C8���^�uq�EUw���z�*��v��N�F�(��9��@��Vt���DNW�:tG���W>�4��p��i�,$��s����w8�K���
����� ��	�� .�|*�Q������Z;������.p���F'�z$g��$�s�}�Sm�y��Q�'H-���T��1��k�����'l,���t������tKu��#����������=p9OV�sl��=������-�{�O��l�t��x�_n�}
63��.U������I%�9���e*���%:�Bm/8����c�+Dh����KA�LB(#�A�_��H����>�YC��o_�m���c�s��cL��kVA9
/��p��)�gGk������+���QxZ��N�=Ln�,�	���Y�]i��
��1x#���@��'I~�)����9�A5��A���s+���V�t_�x8���*p~�N �
�%E��mw�'����[��(�Qj���z��z����������g��vE<	fB�����xl���v����+�0e+��%���k�:����#�{��r����qN��
�D7+2Oq��!�`�=�paQ��Vg���
������
�?��?.n��*�`����?N�7���Q.�3��a�Z�)���x<c��h����z�K����'�Yg��`��u��P^��e�?m��^��z�������qQ$W��b�-��`��>V��������\hZ�W}(�f}���p\0�_����1�����G	b�1BOv����C~���%��lzJ��^�����)"Q=%Y^�<���-���8='�'�P~I2���{���c�#�C�M�PW����&�q���	����t��]���m^9*2�;�����k'��'Iu��{�b@f�������;==E���|��s]O<b_S�F�&�*������b���~����W��/k���F����B��/q$�_� ?�
!��B�V���x���m�@����"�����/���[nn��$hj�w<c���1k�����O����WO}v�: ��%2���
����a����s�'��'5��LwyR(j��\oE�_���H��������������XS�v�vi��tJ���������=[�����h���:��������.s��Q�����x�����g�����]���~����f�xfF��lk���;�
��w��-���~��/�?�r<u�3O&|��
�q����qT��A�d9��aC����+����)��lr�����@m�)���S �^��P'ms?�pB)���z��iOg+��+�{�����I�2��I��L����CLW��,�}������W�/[�1��4��
��&��{���e��9��F�����w�2Q=�k���������.o��������-$*AK�$��9$s$E��Y�\�_��t���^Bv��Y���6�if�E�-������_��q\Jf���#�1	f�dL4��t���[]�u��}4_?q�t��y����L�U��y(B@i���FP[J��WV�����WH��q����l���1�F�*��"!#�3/��\�x@���GUu*&��x������������>s����#WA,T����q�����#��n+F��a$��3v������)a����J���nP%��������n�ck���5;�h�]�$��� �Q���b0.�V�P^l��g���H�Xh������������ml3S?*WO����������/�fL�����Q�I����F�#��D������KS"��)m�D�l�����A-0���z c���������?���W��$�Gs>�gH)K^gNK����K�/���T����j�qL(G}���V�9W9���8��w�eW�����n�Q�p+��'���s��b-i��!���X�����Y� ��n�k���wF���������Cv����	q��G�d����Mv=�dS�r���'���U���;:2!���;�u���s�*��<������5�����$r���C�"��5	s���L|�v��fK��B(�o��oS�w(<wW�K����1�XE�
s�;hF�����Aa��Mt7MJ�
3q/dY�y�.��jP�j�z�fW[�S�:��Mw�e�!���k�%�f�j����|�f���{�:�*%�5��D����n7���k�!.�x�$p��c^R��5H���gG'����U���	�(:���,Mfk%)?jKa�Y��:���^G�O9- ���Ye�TY�:r�m`��9����L���r�N�����B$�����O%m�����9����R
b�,����jp=_#�WD��79�!���2��
�����=���l��|.n8y�W��~ZO����R��,~�T����]��F~|���1Q���R2X���fV�sa��%������&dc�d�o�����!�J�p���&�����%s�P�	J� 
ks{rL/��>��C bO�c���m�ET#�D����_����/��%7F�w��;M
	W��&�u��F����-�Qx�u,���Y�����M�z5���
�;�X�������x�\�1\f�
2*�#�r�B��x9��X|}��T��!X�bBH��>.��D���u�����$������	����c{*=����9;lY���q�&������P�C<�>.�*I�]��	c�D�mx�����A��,c�7��XW����J-�7#�:������,��/!7#;N�Z�k�Buy��-�,�r����C�MS@.�1�C����+)���6����w�3�����M��#�v��#����Tp|�����P�����$�%���E�������A�j��
=�+���Y���� �0�T�H0�b
���%

gQ��r"�PJ�!�c=�y�K��}�$M&��f;���o��)*����@��<�h1�	a|�7b|8��H:�)���uO�,��� ��@����]I`P�����Q����y�v�u�����c�����h�X�Yh���$�����T��BT�ac.="O@/P��Ka
�<�@O+o����{q#�;������\hyS:��>�;<I�GL���������:*Ei������K���!�,t���
h���)l����2,,�g�_���/�(:�u�&�22�
?n�=�(�.��(��|A�\�S~���F����;�9b�BA=��e���u+��qV�`m��y�
e�y0^
��r�z�l�1���"�r����v(�M~�V�J���|�������x���}�xq�c,�S$�oRH��	,O�q�AM� /h���4��0�Mp�6������El9x���G�����/���wZS��������a����a�ww��]�I�����7w�F���Xd�K�h�v�M8��R~�O�j�K��8.�����n�2�J�[:�I�B)1�i����C0�!�B��l|��*l+�}�]$C�{������������I.�tx�r� ���T�&H(0V��(*��aZ<%�o���;�����<����t�L��g�K�7�&3�3v�IZO��C�]�&��]>�J�H��%�B��FC��>k��U�\��G.��T�q$\S���
��la/"C�.�w����Rb��e��
dw�B�vh">I�tP�?z�r���uz�H��GI�������,���dK�fy�b�=����h��1�Z��0��3V��)yyw���VnE�}�������s��R���5���fM���>~�d�W:��-���#G]Q�OR��'J�=�#��#�~�l�l�	������Wv�ee���Y��yt;`�ImP|�A��TA0�X���V����g-K���F��Z��1qa��5�����?���x�:5���}z�p�d�����.Y��A��Kz�6�����88x*ogr�R Qa��a�N8�4U�Y�~�`��Z9���������l!F����Nj�9R���j4�:xg��Vl�E 	!g���

��8�Np��XI��wg����^�{��Q���?���q�3ZI���4���6Vi��f VL�?����>�H���L�>����6}(��Y���^?�R?����X�-����?����)������#��]z	����_���p�����*�m6��r(�xu
��D_��1q��@1�&�//�':)���s���`J�:�suP*U|�^�3�4Q/�*�������u�P���#��024�������d�<
��}�[�<?k��Y?q��edt�Z����U@���d���Z�`�����������
��{��Wvx;��..����$b=��U|I
��'��4��z�Avl\g���!	Py��W��
$J��a4�tS(����>o�;[G��^8�K��7F���;�%aik����h���q�-��l&�����o�O<P{�
���34 ����:9S;y���1���]�o�G�z�n������xQ*�q�,qa�XbV����F%8g�T_��#���}�A�Y�0/���/�n91�W.���C����2R�3��U�G�v	S�3]}�99����,'`�������\2��3�z\���u\2�=��;cN��f��+s���]��.��-p�l~{������L���pj�.��R��?�q���K\o���\pi ��w_�
�y+������6C8��HHu�XZ	�(�7��)O��:4��V�����r,C���J>ZY������_K=���o�O(�����������S�[�eV�����j�[�rjv(8\F����@:��j�� Wf��8���#�n?�If���!Tf��Wv4�zk,"���6Vo�8Q�/���� ���r�{kX�������8�|��M�YP�pxjJ����O����A��T�"��`N�����p�kv����j�F��+}�����`��v��O�q��(��]J���>5u��������	�]���p��0����+�����'�������$��y��?�n��������5A�������(`������g���������������wG�����o�����o��_����o�����_�������������?�����oF�����_^�"/�t������������������_J5����c[=�����_�w�����_�g��L�I�R�����������V�wl��������/�����qY����w���/�����\���o����;����]�v�����y�_tU�����o����D��������~��������~��������~��������~��������~��������~��������~��������~��������~��������~�����������F
gin-packed-postinglists-4.patch.gzapplication/x-gzip; name=gin-packed-postinglists-4.patch.gzDownload
#20Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#19)
2 attachment(s)
Re: GIN improvements part 1: additional information

Last version of patch is attached.
WAL is debugged here. How it's actually working.
Also there was some refactoring, commenting and README update.
Benchmark scripts are also updated. Updated version is attached.
I did some benchmark comparison with different count of index entries. See
results is tables below.

event | master | 16-entries | 32-entries
| 64-entries | 128-entries |
-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
index_build | 00:01:50.042658 | 00:01:53.79182 |
00:01:55.647561 | 00:01:52.677095 | 00:01:58.723898 |
index_build_recovery | 00:00:19 | 00:00:06 | 00:00:05
| 00:00:06 | 00:00:06 |
index_update | 00:05:18.215707 | 00:06:09.404842 |
00:05:49.015441 | 00:05:39.987697 | 00:05:38.723376 |
index_update_recovery | 00:01:48 | 00:01:51 | 00:01:48
| 00:01:47 | 00:01:47 |
search_new | 00:25:21.481699 | 00:23:23.59775 |
00:25:13.943362 | 00:23:58.633514 | 00:22:30.763075 |
search_updated | 00:25:57.622592 | 00:25:29.867388 |
00:27:33.683614 | 00:25:17.565714 | 00:26:29.333003 |

label | size | 16-entries | 32-entries | 64-entries |
128-entries |
---------------+------------+------------+------------+------------+-------------+
new | 884514816 | 417013760 | 421240832 | 430350336 |
450994176 |
after_updates | 1595252736 | 711368704 | 719380480 | 735682560 |
774275072 |

It's probably an option to select 64 entries instead of 32.
There is still some regression in update speed. However, there is also room
for improvement patch. It searches item index entries 2 times on insert: in
dataLocateLeafItem and dataPlaceToPage. We can save full results of
dataLocateLeafItem, but it require some rework of gin btree interface:
store not only offset of item.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-5.patch.gzapplication/x-gzip; name=gin-packed-postinglists-5.patch.gzDownload
bench-2.tar.gzapplication/x-gzip; name=bench-2.tar.gzDownload
��T?R�]mw�6��g�
4��$;�l��iOfF���3���r���9*DB�$���egf�lw>�����e��7��,�7��\'��J��I$=�pqq������N>A|m�������s��[�S�v�w>�low�;;�;�O�:;��O�������|r)��.��m����_��>�q3��Z�:2"��������9���f��������Kc������_ZD�F�d!�8"��H}��%��|�����������_u�<���7�?��2��������������G����S�{m��������[���M6�����[�T�s�~e#&�M'�z���g,|_z�������0b�p[_���O�xG<�< jE�'8fMypR�}AFYo##Iu���c��]�H]i�[-���p���O���	�v�F�nz�r��]�'���W?�����&��qDv��*����p���/���������%Sr�OG.���(v�?z�8�{��z�z+�l���-{�Z�d�r���r_�����e��N��Jg$���*��_���
9.?<���>��Q��l�����f2*���~S����P�}V�0�z��|��u���>����E�E7o��w< ���U�~�������G���c/h;��_�zXQ}Ui��~ �����9#��@}���X��>2���S�u�V�wx�M��vx>����S��}WRW|�;=�?��������^@�Og$�&�"�tO.z���#���z8��k+���b�f�����g�����GO�|P�5�oW��~F�{�l'�s����Lr���v~�6��Gn���Zy��V�K>^��dz4����>����(����m�/�6�kh#o�6��������o������������x�{�A���z���g���R-%�c����V��A��I����t�\�����}����o
�O��#WX��2p�Iq���<6���^V�?�T1�(FJ
��Q��w�;n�������+�tj�,T�o���H��{��_fP��e������`��?dx�5_L?�����������k����zq~|����C+�
�!�L����ed��
�������������QY�#Mt���,Q��:k���j�����|�Kw�F�J��5���:{�d���?����J�������������{�Vh����oom������������w/�����n	T�r��������aG��LxD~C��h����<[N���,��G���G�
+���� ��%���e��S6"�G��R�m��� �0��1��1��1��1��1��1��1���O�0|��a6>GLf�����_zHZ���U�s�]�n�f�$�������>^�?L�w��C���J>j�k��������������������>^���k�^�:��n������s��6�����?����=��ww����{y�����Y������+�=n�.�������_:����������������w��]���_����}��@F�k$����������������_{�z�?�_����X�3n1�����~�{�T-��0
��r�����N�Q5j���Q�O��%��S�R�c>�������������.����W�� E9�~Q�IJ��r�%	J���������%HU	]�4K�y����������E�HY�_���]��W���t�f^@o�B: as�K�������7�|��z�~�=�s����M"����g���1��b��pX	�h���
�-��26ro��^���-���,F`~m��w����p9nG#W8�����~�����%Ha�_T$E<rY8""�Np	\FS�X�� u	����)��+��>aR'�����X���2�(���pZL�Y����a������%<���8�9Pq%4�M��2�!f
I������� Z�E�P))lu����W�����9a�*��MU%8���b~��d�F.��`��-?�%��HW�|�����4��<mo��1�/�m�����1cZRy��0Y9�1��o8�}Ko���-p �^R����$S��b
o�E��%;T��������k��D��������k��#l6��
0�-
4�R �7�bv����hF���E���f�@����K[!U�~�������K]�A�rfO���r���!�	!S���'S�f��������d��'�C�{,�">��?7p��S�/����T1��X4Y��6��1�=uj�J���o�<����WT��(�����HZ�����{��|����8�bf(oF� �D�����V	����s��D����;!����tq�����%8���4v#�N���x<yV,%4(r��~���Cj�����pX�]dA0�K�0;�B��}q�=w�~I^����O.,X�`
D06��\V%h@���%{�sh����L�H��PGw���$��',�6�v���z� ��J�����~��$�������j���[���$���"8��,_T�W2eX��
:�h+n��
�
lc� R�NaE�K\��������8
�H��x���D�!��[N�f��o&���M&��]%h���E���5t~��1v���B�!?c����������l�� �p��p;]N9�����]��x��F��8�l�#����g'�B#�8�Td���ZH�x#)��,�e�Xe$-���k�\'��b]���U�#l[�z:���@��<�@c�4�a�F�,�4C6vG?��[%�(zv�-����/���1u��!�=Q%@��TR�e�
�e����hN2������AG�a�,z�R�$��B������M��7d�j��5�{s�����c��G�5s(ZU��<���&��<�x" 
-j���*F1&��nQW�sLN����30�G>b���������p�f���5a5	���N��u<F(��&�
]���!��|�s0�0��?#,���z��YL%4�:C=���*�~�!�(�S�}�"*������\���L7|���.��j��3�I�C,��������v���������
,N�7��,���p�Vc
�_P�M��b��
l��Fz�$*C6CRl]����L9��"4Cb�8,N8bL��O_�����_��r)p��v���zU����_�h���,��~#�NYD���u��<9�~Q��bx�PBc,j"=P��"�EEa�34�4#eX�V|m�rk(G�8�+G�?�JP��	
a�e
l\&���t+�"D���	lT����`�$'��������y��E^{n@%0piF��9SR�T�\IeX��K=�������V&�~Y�#�;Rx��=&���X�m�?�P5pg��>��cd�hB����S��d��V�c��h�K��� W@m/N�5�P���80	!"8���C�u�?{M�O�zoHY�V�)��I����H�#�}�0��c�c�(s3����Er0��sp#���_^��ksh�BW����f�s����fC�������{C�Dm�2��C�D`��cp����qu��N�����9����R ���kIf�����-Z��k[!-�4oj&��<|C�.���E%~�_�j�>�����e4k�k�(b�?L*3�m	���Q�����������_����X%hl;N�S�m&�!j�ve�.�
.����<p%E�W���+�u�����m+x_��w��>��D�r"?�mK����e�0`�R
��NNJ1���`Tb��3$B��+�����x5���
�75T���BXS��?�a�J{
ML�������mc���1 �#��0_c��v:�r(���9��eP��Cx����.Ck����}X
�Z��g����]��m%W+)�i{��9HS�D
��Y���\��n4���cS����#��"B������'V	�Q.�^Bc,Xdc|
,�����[�	�~I���R��C���{���� Q9�������`2G�c�L�%,�a���d��o_���91x��)PF4��8�-G�d1�94�h�o����; Y	���c�1��i��FR6�-'�_��F�6�<�Z�Z��/�<z��s����I�/:��JhDi�P�c����	�����Z��+l����y�*�]�?��>O�'�����MrE-+��.3��� x7W����AO}�����qWe7��cq�D���.��.;}�,�� ��c��V�.�z���}���)#��nD��o	F��?Wp�_�V��O]�����e4q��;�dD2O�I�H���!�/x�c
�_�����D�
��� $w��i�N ��QK��a[)��_�:����$89@58b8�q8J���|��R�#H�{��(�C��"�)����`
�P;�H$�����Q��7��OA�R �
��=�~���e�@�i
�_�����0�)��:�!����+(�>�&�2��`t����/"2�\g�$� H����p7�����+.�tk�e�{ka������s'9wUV��V�&�Y�76�$���.GD��fW��p+��-�Ay����wz;�k�!��d�?���?��~��XlC���j>.�B��l*���PMX���+���I����$�����������:Q�,���58��u0�X,:�"��8�m�����a7�V.�x�6�=Z�4�j�C�)q����AK��J�7���_������������U�d�TXG����\�B�S�*x�URD*Y��(�`�E��	���1~�������
Jx,y�P�;1�
�YK�(��z�$���F�+	�t�q�%|�z�J�
oBZ��"X�����(�8�&H����!�3be
��P��J�Y�3�eU��f��
er���c�x����f`������Ow��~�=�X�=�4��P�1����]H����#���U%4�42�-���)u�j���1By}[L�Q"�G�2�,#&�M&�=cB]KL����mI���8�K�Su�eW���F	����:�DL}�o�������l��4�2HO
��5��D��X�#g}6%!�j=E$���Jx���\��^���#g������Kh��DZ�)-��
��(m�m��n�f]Ve@����h<C7$E8	�3�����xr8|�;?�����V�8������D��I���'�n���!F.��I��o�+�I/� �0�'Nu������1W��/�k��5��h�g�L'vK���N^�����)�!������2�[��o����+0"+D���d��!����e8^�)�W������Q
���Wt�t%c,.-�]����I������)�t�0��0��
������y���U�d����������4�uB�qR�e��4.��_lZ�$0������bQ�3��(�cQdIFm�ET%�Pt`A<�WZ]��c\1���O�9#�Yc����U���%o`(����I���f`a��+�4����,���U
���pm�q��rP0�U�(0�m�'��l;o��!�����R�������V	m�)����j���M��!�s����m�E��U	J��K�@��kh����c��$�
X�$�b���t}K�G�n�
���z�n���z��]�W�|v�k���z%xRB?�[~Z�������>=�P�bC�/an�y
�������.��J*�St�DpOrXNp�����Sr�{;����_������8�O�qc}��p�M�f��@�,�����8�d����\@-X�q�0)��������4c����!2)A���*b���lu���C�����
�"o�B0)���5,Z���T�@���"��6�b��
`���#(�U�*���;J�����;IFut�u�p��-�(%4N��Y��9�McvIJ�1)��c�4
w|>���������e4
�����<$��]��aP��)�m*1�&�9�	3��d=�Ob��L��)\�Y�M`�F�C���!`DY�X3�����	|b��L�om�eh�'khpgh�m���=���X������i�?��~
Z�� \��cU�OB�M����H'��7��c�c)J���\F�Q?�������'�a:)�K9�J%�PQLz<�{Y<�P;&������z�����1V�u~V����A5s(�*�
�;	��}�;KX�f:�,�<d��$;G��e�������M��R<JZ4
��~%��yE��R+xyRa�e8�/\�_
3�r(�(��Q`v�t�it�<����0�<C�mn������F�!A���+8K]e>j<��a�6!g`�������Q?R"�6l�7Vk�W�x+�U���)&��@LJ[�T	0��|�}`�Q�Ek�k����v�q$]o�-�f*�O����2�Ou���T�BR�T~��6�p��@�ag�����m���^�N�Mo��������[Xw|�IEf>�7(�XwU����C����~���&�}�7��G�x9_^�c�&[0��H4����Z�=���T���Q�NN���e\���Az�G3��`�G�./]�b���`�f��Dzx��B��)h�U����^ax�:�}r��{�U��H�6�/tm�h}H��	o:��Wq�
];����6��
M�����z���S�p�'���XZsX&�+�/�$��8M�N��SP������}NA��Q��"���`_y���u�'� u�l-�Q�7��C��IpmW������L>$�� ����<%��0�
�����~�����!l���H�-� #DF\�[����{yXV\A	V/3�)�f%�"�
��P)�X����<�T���@�*��5%��;s��e|�][01��<����}!�D�6�&$D����@G"�"*���L�0w���-�A�Ca|c*�O���t�4�	KD ���=!=�da}Z�mj���W�&��"w���Hv>[��I�sYE_L�%���d�O�����>���H�G4J]A	�������bT"	�~��H�����}!
��9�1z���m��K8=cOF�4_��
�_C�6X������E+�������3�����aV<r��(��XVT$�����J$M�4];�B`*b.IZd93�����^��>SA)R�Te�N������y[�=�M���!9T���Im�2���8�!1=��}-�����T�r�����AP�����+�)�T���9�{B(��yp��cls��$�}1���B���q�V��1�)������b�<��W�)dT]���l{Zt�*0��������	�|���`	��X�'���E��*��l�4�Z�Z�����Eq�E<�e����6y���*C������\� 
�
J�n]2��:�z�:Z�T�b�����h�`��1�,A g`9K%X�sh���z�&��E������
�}!4Nm�t��J�H��i����z�=�s�[e����po���_�<���%�}b#�5�\A)�6������K2fOa7tpC!��E���S���(C���
��p�j���`�.�wv4�����@�cgEBsP�~SL1�����0{�����5��![���$(��l��E��B������`Oh��njC�����O!>9�.��)��J'����L�$)��T)Ja�����`�{��S�o=4���R�������73-D(�*U5<��M����X�6{��F�9
j�o���� ����+�$����h�����.�-� ����j�y�"J��N�����W�=�z�_�����Y��#w~7�����b�=D�)�'��N�����"�8����p(�����X�����?%�B�3z>�`y�L��pk�
Jv��_]a
SS��kc�6?�&^booSI3��D�Q&��m��f���Ud��rZ�O��FC6���zx����A�6�]�z�@���A���u�-�t����W�./�A9����|<��#��7����h��n8����#8x�e^�&���U���X��p+�|R���WF���$�����B$��=7+��j�G>�z��"J����D������
o�	q?�~�B(Z����.�
�� I�{��dm�]�7X�&?�n�5�	���5��>�9Q`{C��^�N��\n�	���\�����I������6X*Zl�NVQ�@UM�PJE���%�.i
�@6��NQ��P�_�V��S��
�e�W�vE�$�xO��8M��h��b���������_;2z�`;W:����	��W�Mh�.>���A��/A+���P`�
�tV������� ����;�cA�}���M�|���"�h�Ja�{
��(A�<�`eQ�$xx1O%���7��]��&6Q`r?�M^�_�/o��`��H�2l��5^yJEO��i�b!�]��`26<i����T��Xq�A9�t��{2h�%��j�1��	���@s�Z�p\�T���w#�Cjh7;�Nv�l_����F�����#4���8���WDN���5�-�u!Z-���wjj��}�y��a����P(����VN�&x�W�D�D�D�D�D����&��_k"(Z2}�.�$�>?�q�,���uZU��*I���0��F�h�/���F�2]����|-�{-���/����J�H��!�-p=��?��������;O�/��k�_$��]/��8�:�fu�+Yp-|�+�A9����-�5I=�]k~�I{�8��*v�P�
�s�z�K�
���C�(bh�t����d\8kq~
<��9�A`io67fl���]��'(��3�����������b_�}���A�j��^S����A�
�}b�k��5���&��0�L�I�:�����y������	��^W�j������Ss���<�������$��vxgs����-����-�xOF�4_�
��p%��B2����RXS�
��An�e�9��0k�=�N�kvu��O���~R��	��� ��WQ�%I����N���r���;�6X����4QO�����9V�P �<��]J�Bx����B,7��u�n�t��'n9��^�q"��@p'F����Q��]`W������O�h1�X������d�-��qn
�I���
��,EK����hj^'ko��M�V�^�,��bx4l�B�����a���W+I��\�{����@E�X�I����B��JEj%�q0l�@� ��Y�����'&��{R%�/l+�%�)=�C�_��M�f:��]��w��7�1���R��f<��w��X�7���������2��n���*/l���/>y�2��}�v�4w{����	��lS\���:�}z�!���8��u0J��l��
bnq�}!�#7:O�'��H�M,��`��H��j*���[b�"�M���fZ�q�R��~�����>�J�B�'j�EA�
 E�w�*y�_~��S��(l~�aA$N�X��k�Po���l�] )�U���}v0�+a~���d[p/�U`���Ca�mS@��j8�<_�������K��Y*C�vE�����x�^�Cw���+�/���mUa��u;�{ys�9}7��h�v�,�������!�kx��!1��Kbz��x�P`�\
��
���m'Z�,0�QA)��9f�@����Fsy���d�\���RE���9X��~����C���
=r<xq�=a�k�N(B���������y'�|XH=;K��P�c#����30&N�BP�t����A����� �T�KF�9.�"�I2���hV<%�$0�}u7X�J����	*������5����)*q�Lc�
Jy���'���=k�eFK��y_
���%0|���*��^��V���=XA{R@����R����'�h�s�����+�$�W|���$���k���6���F�<����(����o�����p�-�G���� N9���9���HPX���+���T%-��T����-�X��R�X�Bq����9��Z�	�$L�u�MB�.���dt���Y����d!���E8]���d��������i�n.��,�p������W`��]T�[;h�����A���J�u/%�}R��������x��oq�#
��W�����XJ�%l�2,��#��8M����slwE%��US������"�6[��^	'H4�JX�i	�?��&�b.U��"(|�yc��Bh�����O�"pU�q�K�@
��ri�]	 p������{2(�]-�V�]�O��?��?^G�������+� �[�������Q��g�=�H|4���*�%K�SS�@�^�u2���'�������F���K0��#�BY^ ��A��]^�����Co~b^9����{���^���4��\L�\
��1��)��E^��W�����G`��
���+RQ�W�c��L�O�h|��X;F�4�6E����_���M��w	
�C�,�`����'8�laJ������"����$
�h�cE%!�2����� K�2�?M�
J���)�Ja��9�����I�����{5xq�	�*0���Le�L���A9�*C�NE�h�
������x���f�D"we2?�g�}�[iSd�"������n�Y����~������jz���t>����vG�{���(e�26�RpH�&=�-�6��d�w����7A-��!l)�����[4��njSa����':3��B�,"+]L�Y���'�"��\�Z&F�r[���H��*�42`OA�{���l�P�x���[`�z"�/G���������I�	�4��Jd*�6T�"(�n������Q�la��S�\�]����c]�`��~����B�J$�/�D)�H�,j0{�0%�����_��N��<+�.��/yGA\��Db��ER�#x���lZ(����E�dj��o1;�@e
����,wE�(�rT����{,����R$�	J�QI�cb��`u8�{���@s�?���{���	�R���k4���(�
��X'�
���U+�\�8:nN���������7	�V�,��?��s�������<+����M�d3�k
�*�u(���y_S�y0W�X�X���(V��OI�~�5to���i^��.�������]"�v��6��]^6���5����|S�*�Y�n�TO���~��/���$���M=_����K#�	�S�-B��o��4����%*��`��1���D��%^�!�m�nfK�b�Si�W=���A�������Ta%�"�"J�2;.���fL9;$��l���S��ph{P��k{&�;4.���^C�{|�1��4�O����j�Jpz`CM�m�f�n����WZSu�l������OH"�9�T��%�����
r���=�Dn';���K����l����>w�tp�a��f6��[�s;"(�T��7
l=P���po�Cu��I�>�l[�=��qkc7�)������g�|���=!U=������P����A�%��23G|��8U�^$����p{*g�����J$M�OQ�	��Tprn���%�}�PY	n�$d&���6���O_��9��w�%��o�����?��'��/��VX�Gb�4�)�6{0oc>S:����]GO����m�4�*3��k���mw��@�Cb���s&[O�GI+c}�4�W���>�����p�5��`{��[�k���W��s���[0E�7��1[0	1���RK�^�Oil�	*6"�8(�d�������8i�=	�Y����1�I����$��1�[���A`m�S�Wt$xG3�Q��KV��7�����5?%����������_�/G��Xc��*���j1���������Ud�����7�����6x���;zI�v-p���Fv��{9��^��}7��`3��ss%�;:����5K��fJ���?`�dM�K����#^m����HgW�G`�DDS��?���
K�6$)� �-���/Z_�}z�9��*
�|W�^���k%����n�$8�ln��\�%�:m�����������"�
��<�����
S�ry�G��-�}b�����+.�<�_c���,�B�r�go���N�ys`�S
�>���������o�����?���BwE��BM"�qQ��t��?���C�1���a�>q���=-!���U�@p�m���J�^+�d+��h
�(Wk�m��dw���;N�TK��+���<�_����[mWA�jB���H����o�Yw���Hb4�y{�����1v����	"rhT�A��1vr�YG����lK�F�V�`��^���G�����Bzr�)���Xtm�!���L��I>�S�h�+�:���d^"G���Ou���w�Hp�.��,����Ps����������0����x|�E	��[��C�3�a�t1eg���A��aQ�gL
M@��,��8�qO�b�<��)�G�Z���L��[t��m�N1/������~�~i��2�����iR	T�.��$)����%���nT�J$	%�v~�`	�4e���?OW������#���U`�W$��e���$>��>��@CfF�����oG00���}���?�-������V!�NF�9����������}�b*S�-��^j�>��E�;WJ?���K�.d#!��mL#YD�`����!�;5�������|�r$gX��#�z���mu)	K��rl����^]M���o&���w����1DoW����o��Sj
�>�#|u>a���4��
�a��K�+� g��X�p�$;��R`S0x]��k�}sma*_O�z6 ��dP��=�{2zq,z�8��!M��g���M.EGi)�j]U��O��������u�V��:�7%�d�����L'��q�	s������:��:�^'Z���9<�.���GC���4��`&��N��dJ"i~��JJ(����Z���<��iJ������A�;"��<�.�C��=��r1�e���Bp�RD�D�DM�d���SjOFo�-:W� ���t%�LMpQi%���F�]�me��
��^����&���E�RM9��)�Ts`��n�����
RCSx����32#l��F���SO�N�bE�dqlng,K���"�.���Y����t^,e�v�Z�\���[��_"�*��6�kh�I�R�2�:n��'�p��bW��#�����LP�&#�����%2�p_�c��G��#,P�#��K@��:����b��B2�-J���;z����Fc 8���D�O�������^"	������o���-��r��Y��}Z������+������������l�ILis.�Vt�����`"��]�A�h�X��D�O�s�oww�����>��������b��{��w������K6��r4a����M���B�He	�V��������#P},�=��(K~+()��;��zn=*W�B��U"	\��$j�)�q�m�I����k	��D�hk��F�|B#C
�����_�S�j-��I�=���T���u��N��4����{��(���r`��^Y����W�F�A�@�:�i�[01-S��*��9JZ�����$�y&!F9�,COF�xt��+P8�x 4�q&(��`�h�gU�1�=t���s���VqU0^�u=9�=���p�B
N���&��UP�����Z���/����{�D8��`hG�$-`��Cb(���N���lG�����������v��� x�����u8����_�24 nV>���(��f�{Z�h���&���Q�e��=����
��zK)�|8����O/5,��7�{���y��� �W�v�B����N��w2���%��=��jL�����7f����h�	0Y����������l�9���__N������k����?�x�H�BK����Q�\M������'�US-�x^�$X/5q��XC�/M���c�,�-�D�D�}�QNDt��:1�u\�
����+,����I�I Q�J�$�X�6;��V��D�)�"�������^F`n�L����r���CqX�'q����r A�I�8��c�%H�z�4�T,I��B����]4�=rI����>�0�N���cjg���������E��r�\�:����v$��<������
4I�A*�'\C�����w���� i����x���!x�p%	QI�~M8��I��-|���?�9�C,��8��U�	n���#:�b�Q=���`{�F��n8�����������As��9�[01��/=���0���~�g��AA'���R�Q��{�4�#-�]�nU���H��WUZ�����K?�$����n���������/�<���rf�"}v�������~���Wh�6-UV�
���#�Ci�\�W�mm%IW���������,�h_H�D�����u�#�V��3�m;�l>�"��e���Hlg-�%���������i�R��3�����E��J�F��)�]���Ok��������:��(�m]SM/ G���������{�5��Z7�%��q�������.�%��V'�I�R�������3ZBW@	���W�(P[�Cbt^�]���X�LT����n�O����'v�L�|m��.:����H���|�����o�OY�Y�?�'��~���N�s�b��"M�cn��{Y�JO����k8�����I�t���Oc>j��u8UXd���W(r�U���LxISS��=u��E�M��k��@�(�8���?����=�x6+�eVz��]2D�bOv&k��+M������n�$�m�x����t���xB����.ON��NQ������M��`-[�$������wF�������|d����=��}�����r/����Gg�����7Wg����O���v>�������|��VEE��U���/<\]��O�k��������1��w�+6�QO��P&y��y�mH�l�<�>�����W��,���g����((�$U�d�����h��g��}�G�\%j+��I"���!9��_��r� ���%\:R@	��,��9����{���8���lOE���3�����f�;��H�	I�S��y���o�C�������h���\]}58�+�l�]/��[B�'��q��W5�dl�	Zz����b
�Jh�bv';9�y�C3�*h���R� J����S8�"���e*���M=x�F�8q���e�^����S�~(����)�M$��L���*�+�Jn>�=D.k�c)*>6�'�4��A:�C�C�=�Cb(n�9Qc�N&�z*��}B�d��m��`��t���fx�3�&�$"��"������������; �"��S>��[@�����)|A�� �������8����M,6[����D���QQ�k�K$���F�K$�	gtO�=�=T4Y<)�����Z{OAo�f�fDu5��},�mYb	�|����|ox��m���J��4�`Z$���	��[&���IQk>��0L��n��X���^R44|����O��������������>b-^���Z��"���"Tz����y��1�e�,��w~��P��P��MBLf~����!��m+����#����-��"�:�}r���#m6�7����w����$
'f��_�~���"�28��%ixs�������81�E}��]��:"���M�\�IY�"HV
_6�u����j��{YV��$]h�,Tv�z������Xn��w$����?D��J0��y`����-�����z���n�i�sw�T`-��R��I�h��i�"��`����cN�����Rj�_%�B�%v�o�������g_���B4izW�>u��������C���IR,�PA)
���aGF���
�hA�T������n��F��-*rG�\�/�>���;"zz��H��d���h$-������Jpk�-�q�^O����d�
��qs�g���Yup���6�Sy���'����@�%���Rhn�Z��[�c�"p��M	�\�|�<�_���4�����5R*����%<}��:7:��zPM�������+�������eVk��Rb.�~pa�{�Q�V�f�����}r���L�1_�)����H�I��Wo&2`p��$�
�F5'Lh���{���)���n�YYCS�.W����J�<�s�����F;,P��T8!���������������4:�z�z�;$�'���e��P�h|���4������&t;.��@���hh�����_�S}wD�y@fJ9�����bHW������"�V���O�3�(L��:����ZBIH����^!
B�����jm��Mt���k~$��hB��m-�N�G�����Hc��U��@����*�=�
t�)�Eh��DR9>�	�t�x��&3+���������L���A�6X�;�,�Y�-b��E"�(�i*?*`$o���i�z��\��_��;�*_��=P�:�����4Y�i���Kd���9����e���)L�: ��TS>eF?��a�M)Ui�15���T�-�N���H K�b��+��bq�bi�,������
�������|*8�c6j
�e��#���H���6d)��$46��K�	�"z��59$��!�$������s�R�Z9$�"o�B$r��Yu8�_z���y��xRz�5xN��~~7�����R��P�TMt�m�!�������BzX���3�����
|��B3�s�!�$�l�o���/��{�#�����Y��(V��6���MU� �2����������Ta�DxY~|o���C�� �����vy=��k����&�g�u��N�%���@�Oin>S�J$M}\���-x	a���;�`��LP�������9V�Ya	a�iTP�8�`��:ZC�d���/�_^�G�*��Sh���@#Gh���)Aw�H,JL[/�`��]����l���R\�Q�������$�n�}�G��A$q�t�gk��r��#��(����jp�W���i�T�:%��P%�Jq��>�
��sH���@pUq�=�H�����g3����:�}r6�g��X���0������@��B�$8�2�E�N`��)� (�������`��Z����Ab��!1
�Q
��
�}b���o�?����Q��{�jA�hH*�[D��7bCMN��UGu��G�-��c�H�?�+������~u8�mu9y�W��D���_`w�aA=��4?�`p{�%P���j�q�P+��Z�����#��qFY8�`Z�Mp����^�����	���S{#�"Q�t��P����s���?-�"���,o�-�!�� �SSU����|����j��J�XO���pPEO��$KP���	�(6�Ibo�K�b���
��T�6r�B(.O�WxI&���$���5���'��`k�
JQ����j������Pa)r3���Dh�
k���\<�o;�~@
=�V��mcEI�3��J�
ys(AE/^w:"�7m<�/�>w��r�-�"D�Gl�Mj�`����EVCS�����]c545'f$n�������j�It9�g:�|�\��~s�^��M�k�e2bECTS�I����h�Q/,�0�yG��/����+h��X!�?��������h��^��{R�`��p��,�
v��`)��Z��_��oE��,��Jh����"daz^��%8�����J�>�"�����m�H��\����?��cat����v$���b�[c��!1�����F��L�Ds�j��������~�O��^��l���G�t��DHO����i*:�bN�JD�[�Q]��!�\�����H�#��Q�>��!W�������0���P��a#�.�uvLt*��Z���D�:Wt����������g��}��)�����$dCt/�lk[��L��P�t�Z_6/P�`�tX��3A7X�;Iu��:j�������+�Y��.�_��������[������@��2�����VJ��H�X���MA�[�����g`���o��0J�\b�����'x��eaT��"�������E�,��k
�"����Z!����.4�
�'H�<�`��
J��j�	?Cs��h��5;d�y�"J\+=�#������o�o�=�������~�>�'�����G�@�)������Wg������p����~e66_K4�ns�lD{-�0�
��n�������-�7��Zx�+X�Lph�
X��+6��	�o_aZ����fB������9���a^�	�~tw�:�c�?*P��	n�B�v���B��	i������#�|�S1{|�H�Kwo��s���Rlg�H���e��3��9���!���V!�i���7%�8'���P5��7=�2P��}GY����9'������%Vy�8��.KJ�wx��������q,J����|�-�L��i�L�	�%�&Z�b�$+��63;��x?�����I��

$�*1��*�'l�	���ux�Y���������T3w*
M�$��L��m���7�%���@y�]���>��\a	�u8YF/�k���i7��� �f!"���	��xzc�Q%�=K���il��r�YA�^�6��@D`nt���L�x���'IpH ��Oc8�]Ai�+:�����a���T�V��fS@	v��9���5v�n�T������'���[�S�k��������?�����?���������� ���`�H�Q����b/��������A"�e'�<'�|f�5F��]��}�}X�_�V+s��	�'�;�t"��2yvj�m�+���}!Dz�QP���*K�����H>7�C�]����g�n�k����f/o���]���|�>0�xb�x<b*
��6�2G��k���%�E>��
����H�$����y{	�b��A`Iq�)sA��TC�:b)��B(�b��
���	\�Tpkr��Q�Ba��\b�Q�Y������������z���x$���8�e|3��52n���
<Md�9�VUlE�]`AW[�>�����!Z�n�����<�N�;���M�#�]-������]J��p)�#�����H�3r&���
[0E$oR���8�M����-M>I)�y*���	�+63��i�d�)����b����2-fB�f�[�S�Hl��{�qZ�)Tm��9��B'�=�=���g`1������:W��Z��Wl&����������Z��q+fj�d���n�����,
��Nxc�������
vd�O�k�b�bE�G�����	e���z2b��!���T����O����f��<bk�����%���P4+�e�#��Cb^��x�z����O���?����0��~B����f��z<��y��E���{���^����T�
K�3�&�u�
��
Z����L�l�f��� $9s'9�"m�AL�`	�"�,��0��'���>~�K)�� ��^]���7��d�����>�qj1��Q�&�8,���c�[�c��R�4s:�A;��IY=��-U��k���*]���O��bo���o�f�v�������G�R`���}zw������}{sy�k
8]����_�ca�
�+���#��S�M�L�������q��w��\U
Ty ��s
�����n�u._&�������I2X���
�s�8)C� �����px�58Y8)/��M�R(�1�F�o��{�bgAW��/�B��d
N�`�l�V")"OA�E"����maq���ba6�v�Om����$vBw���Sv�aAT;���pW��
=�^�����j�Km
�D�d���li��'�����?�V����N�^���2Z3����M	=(���=�Q����L�1_�)��v$�r��u]������O��)����+Qo�6I�����!���`�sjp��Uq����6?Lt:(�`(�^��G�����������GO�]����/������!�@W
�m<��X�Jc��u�
<����.��B�rww���K#���6�aR���~
�^ ������.F���@���+�"�K��&���l*��7jO��1-��ut��x�����W���]7�f��*��n%;No�Bv�#���#b�����H h�g��9-���^R���K���D����@�|��r_I������	��kO�&���h �S�{��9�*���m�t�K$�rM�WB<`f���^�pn���{���R��:����M�����^^{2������o�]����lX��aI�8x�`�,��N�K���'$�r�v�m����_��~*��N��%v�*�v���	��"O�����'����uX*�����h���#8��R��:��@���h��GVp�6\�!��-��Y"�tL�����8	�c^_���yJ���,Zzh��AA��	|f3���B9��J���JU��/������$P+PE�?�`{-1GF���=�����>�oW���z|y�������	�,�{t�zN��J,E{���=0}c���sJ(��mF��*�	m��+���'�@5��.����ve�f }�\����+��[����A�vZ�����
�;zV�`3��M`+�j��R
=,�l.v0�� �F@�H4���D�Ar�NR��z_���b'B��:9]$�5��#�l����[r-���)�`o=�y�i7w��L<���'h$��M����
 ���ZZ��DQ�d�5��Q����	�S���bc\K$��<�����<FOE�V3�i���vhpWJ�Nv	�d��7ajV�%+M�<��$��������3w�
1=xW�+�f�e����s��Y>�lx~�
e��(����#h��S�HHc8��PY�5s��c��(�]�$8��xn����9���AF��@���\o6�r)���2�� ��x�9���{|�������=x%��qv��H��}�#(������"�
��Z���6���(4
�$+����������Sj�^<����\�R��C;�c�c����PFs,M�D�y��oF)O3�q��b��(��*��^^������S�_sk�g8�lW1Iw�/�D[RW���\�.*���@����]��{FND6�v������b�]�f<J�x^.���`��OP�)G�
���8
:��/���A,�pG��7��q0����H>���x�v�u���d��0/|$H\����g��b���qd5�.���~_��h����uvc�wNs�0ot�q������*�^�g�D<X���n���{�k����q[!�;�k_{@�����s\
�n��<��<���k��-�Po��"�J�
�`{�vp�w�h8�Gs�J���K�{����H��X����=�I;����v1����	=~�;|;g�t����!8d�%��|������=!��yo�D��D`r���@�^�)�xW��I"��s��F�uxO�:I���n��Oh�IK���4.��R��+[0�2��+h�k��I����R6����{4����cY���������p��K-���r-�? ��{���o�^���9��uZ7�h6-��`�h�"KRn��3������.t��G��������p0��������q��G{4k�@��j�M��	����c�R$ ��'�L��<�g|��<$�}�S�V�/9��"v���AQ1*��YA{|�t� ��rt4�r��ak���_��3>�k1Gc�BN���U8~�E8n9Y��O��p�..��oF����pO��R�X��=��GC�����U����W���{{��:�Iu�������U�#o!B��|G���2-���I!#�1�/�}�_�}q�q��y�O�Qv��o���gB����I�%8�����|�������Xy9�v5���Ze���D�x��,z��h�����#;2re"�h��������AP�/�-��������-�h�������p
L����:��;���G���D�0�$�A���
4��}�l^��s���n���z=�{5�va�h>�6Ck�7X�w�m �}�"�+vh�S��/_/����<�����8l�Ne�8�5�V����^
��������C�[jT5��v/��\��__a���c3	�;�v�@ C����BN��u�u�89�����`m��'6���H/�1�x"���|���D����u�N����>������"W"{��tp�����D�;�F����h��^�E�!�����85��;��ZC�U��]�x�@�R,����C���
lpXR��E&B@
+,��H��A`#:�h#����<z���:���sZ$Y�2����D�{2�����!1d'��|��r�(���b�M���=�L��|���p���'��&3��Q�|����H���k���n����+�e��|q��\r\�t�HFI��CR
�>5vks��}s��U������2���V"����������!Z[p�w������A_��B�7VP
{#F�g1���x6��������b�Nf����)]������l���{x;�3�b�v�C�{)?K��
<M���xp���E+
��z�K��c���f�QN�;����L���\Bo�g����l��K��d��Hb
��`����^{j�S
t������G�n�xL��0�
�`�V2��
J�	w������-Xxb����E��1������t�=��Z�,.bSX���*�<IVJ�mp��>���B�#8������n�������_�:;������}�6X�,w�9��J$A���"���������@�>TP����{p=AJ!'��'�d�m��@T&8x�_c�N��#��R�AJ���������
� !�'��LJ��I��6�ONk
 P8�4�I��r�i�
T]���;������<T�`��}���)��t%���BG5n�jLIU���Q����}?����#��z_�ce��{�;�������GB�is�Y����� hh0�����x�[�I"�a��aA�����s�kh�&A��X� �#����@'rNR'%�t�������_H�����Dd��a��r���^��R:���kw�t�����D�D��D5O��������q�t���������"ej��������@��hG�
�����+��m�+S;N/�r)1�,���vBFm��z��
��>v�30���O�k�2��LF~���/��R*��G���7��g�����$��LR�b��
��W�F�k�r�����s{����=$�}��4����G����sV���gJ�?����}��g�>�����G�/�>;����V2����������O��Il+���KTi��tYm<�_q-�jgm���[�L���ls AH>���LE����}L_9 �d�|�J���j��$;t��h9� qZ&yC�T�9:�|O���<�����l
�y��_�|��I����B<��i�
=� K�������y�x����yr���j�5�<�����G�;w�Wy4k�1�C�4�j���7k(����3��@�G��-����D�� �n-�2�&��o/�}�� Ae�'X�Erl�X%{I��]��O��#SCs`��^|��O�k�����L�|1�Y����������������g��}�=$���u�����w<�v4D���*eI�#�9�x�$��TssYl�=�m<�������tpH��r�u���Z>U����TKxS��w��Gs�t.���[lk�]ND�Er�{�PI����I��I���R��<����)�K2���c��������BK���p*��������&	���cl�O��PX�"�;bn��<'f�(�Grm�=>���h�N�zF���be~?1P��MR��`f�����?��LiV��B�������'s	m��.�i�{B(R��f��
�}ZK���P����0~�B�'��U�~ �;(\����;��rH���C����tHW��T1p�)���H��j4FG�l�$}�"���������CKN�R%O<���
���-�t�9g���������k�F��6ZS���aDEqs����@Fs���O���i�x�P�����u�%�Y�5��xg�J��fb���������S�6X���Xt�������(���������,��Q
Nj��Q���7�AY��D4LS��i��q#����`�,0�A�h���X����XVS������x�:�X�i�l�U�<��fcy�@��=.�zz}�wPQ������!J%��&-=0��+���mW���?�Z&`,dOF��T8S�*O6I��c�<5�X�B�z�h}RU�<����]��S��k����*){o�/�vu��Zfxm�d
�y������R����~@X�����������Q�
��G��x����?SB{��\�l6�<�R��&M���9T�4����h�t%�B8�����91���u<DO��Oz8�C�����6�jh�d�$�Jp1�S�]�%�$�<���Q`������6����+���!��1K$A,5�|19��
#a��C��	������v����o�����\�3����Q�eP[t�5�c!�6��v��4�����[ 	(��$TQ�����J�q�h���VN3����:h)��NE�b�K
<��B�Ia	LE���`{|Eu�%����f������}���������l�7h^��d�����n���������W�}!dqx��hS���wX�������������h�xWD/��Gs�yZ%	{���g�]�N���
���rjU�+���E���va�J$��oK��<q��2�Y��>����:x7t_.�!1�X�"z�	�u�~��y��P����/������|q��'���$T{|I����"W���y4�h�vPI�����`�H��O;��)@��aMr`��G��:������t�����V:�3&Q
���g�6�������r`��..G����l|w������'���e.��������
�3	N����Z���� K\�J�Y 86w���Y�����;v�r����g��{�t�.[J_`�fK$��V�(���[���Z��Z��t.�Ka����u�F��@$1�K��}~�GC�[{��I����M����,?4�q�GZ?n�u���i�6�Z�"J�L�Cr���h�:�}rwh��;�v�_�}
��,�#�PA{|w���s��;�����	�uq�]��y�E�,7{
���"��
�T7X�S�'����d��y�$a���G��,�
�hJ�%E'���8��;�3�k����[u�����taWD�h�f
��*;���)`%C�"�R�0��>�����	���	�jn��r	F|kp�<V������Bq�$�9�C����AD'G��_�^c�Kp�+�Y���Y1;������b:�K=�VL<
/3�X�6`6.i�I��@�Z(A2�������{w�P
lPP(�=~i:�v:�Y�l���'\�������y����_�}��|{pd��L�<�Yy���R�����o�F�.�q^K��]���Ka��dB�;Q����h�v����{��|*(���|�YOu�8� ���b����	���u`��5t���c*�mWSCP�l j�����1_����_;����y�1+�I�f3���9��(��JQOT�������j��Lb}s�?��|w~s���:r��X�{��k�1������)S��<U`�oSA�J�W�#l�m���
`��I�f�K��/Q�mG��'a~��y���8,���?�S9/;a*\
��`��<Z-��)|�4�=^����k��%X�;��}�kob_������Pc��w��
��������[ku4'���3�%�0�Y�@��D�$���(�b|3aZD�����"`y*��y���������i9~	n�/�tKv��9�\k�Z�H��$�@����� C;U���
�ZL�B�$�,�)f�m�uX�rN������Mt�T x���}@Jo���
q+���&����:��/���x�@
�*��54E�^e1�b�����]/@�/�H2�8��������������+u,�-�@�XF���Ne���(t7���	J����e~�0�{�C\��O�s���o��Uf���/��d���.|����|��V�}��:'���x�:^�w��-�D%+]sh���f�,PX���

&�C����#bpU��x�D�p�m�=l`����DNEn��nBEOF��`��
JQ����W� 0���o����o/�_A�*(�>�K����:�$����y�T,	--����O����E*5j��e�����3�
�t��g'�����Qh�4ky������HGg#E87�81���0��Hy"�:�	���=������4K�9�e�f�
���:�Q�	�o�H���`�P	%�������j�0��)�}�I�W���F>��R���.�:����s�Bc�MlP6�J4�]����J��z�G2/�r��~q�ik��dQ��mA�~���R���T�J�R	=S:�h
{O��~(#6�t����'��d;��s{2(�-���T�
�'��@>`�B��B���	��:W3[�c�#4���S]�^������2�|����{p�u����������1���L�j��������Ra	N�|:�c)���g5yA��
�K�w������Ah�
��������0�3RA�I��L���G�(�+�c���6�Iy����<b_$�s�Y �Z�>����iF���|�-�w�������B���XA	b��%�2���o��������v��-�Ljf�{�_���g�-��������'���S���Be
c/CS����, ����7�6��t��4�������Y�`���=��\\��7w��W���� �{2���Wc�j<��jql
�JgS��`�46<���o;�m<��}!=��:�����{CcH�� 	����`
K�����#	��WeJ�?�t�:�BKq��
)������"V"{A���@�z���j�b��!�6�$��|�Cbz|9�.u�,�9����	��T�V���D<��Z�������x2�|=��o?�-������K�(��*�����asDD�vs�d��Xdz"�H�[C<�h�u��Ag<�y��S�p_���K�1�Gsr���e9)l�r��������Ji��A9��P��M?����0�x��@�z���T�7l4�Ckqj�����|;�37��B(�F�0��BQ]���U�t�J����T.�T����"��w��x�	��A���z|��n���0w����#��yi:��ia�x����n
�"�O�T�W�>Y���</.�B����5�����g�-��~Li�Km�B�5�LX��2�E�M�
�gT�53�q/ol~Z�v�T��#��|�o�������4�?:K�n_���:����}���sX����S�+�����1�&�1�5t������R!h�WP��<�S�$�$pN��T�"�B-������qD��J�{
����������b�� ev<3�DtP��?r�dM�	�H�[
.C4�O�
�C�
QU�v'�����-� {en���5����C�L�����X9:����,����9�d���<�������v�LR�9m�JB�����f%��hn}75����xp�'p�3�F��I�{�����M��x(�?5g"`Y�q-����<{}����w�[�o��'�*�����P��f��b{�f�rQ�Ip=��e<��<��d�b�N�~�I��6�m��E���.=��
�l�����3��-���\=�{B(:�F���`:^N��H���R�;"f�<p�OS���A�&T�����8���:{�9j7X��r�2s,E	���H!��/�����/�����g�������h���xZ���Z����Ij�xp0K
��#�c�A�M���1*������y�M4�"�kh��@�����Z*���X]k�n~!���,A���\���������7X�%�o�&*��
��TT��#�k��C��C=�u����|��yt	�9��������=�������;��aU��<�����������c�tb������'�b���A�=�4�k�<(��{���`YC�!��XEJl��h�]9�}:����?B�J$
%p@I������A�UP�w0���$o�c������3OE3���R������q]��U���~�����y'k�9�[���c
$���DR8�ZS��nxi�c9��D@�'`"^$��#�Q�iV�q�)V�����r��Z���9��	m3|�W���1���*f�����ES���%�f�H`+���~d���l<�H,�>��g`�up�N�~%��ut��:�N�T��N7�������:i�����f���qv�@��Z#��lEW�%�On���WC����\p#��*�X-C���A`�~����!��;��������R�)�?^��]��R����h�v�^L�W�N���I^�h�TP���?�x>y��cM=$8SZ�y[
|/�����_5*����Y"��1%1������������]��VlN�@��I�e��(��O���������
�����%Zm��o&xY���6,��!��6,��?���/���8N����*u���\�\�����S:�4Y����3�0�
�x�'JGJ�s�GsL,Tj�|F��4�����[`l	�����w,���|�����J'��g*�|�>S��se��_��/B�:e!�4�C	H�!��`ih��2����*�Sw�SB�����m����v&#�.d�<����'�zW*`��
��E�r<����d)���V�s���|�%:�s�(�;$K������!��r�m��m�kn�����l������PU�c95to���4��'<M��f`��)�t�v��:�f�5�[p���qzAb�YS@��"��cK��`L{O�N�����4�����}!��7�{:�r�
�����W��u*��	54�Z1_��@q����@@q�f�.i,��;/��};8��
Q��/A�;=y��5��||%"'��L���Hl�>P)�t{��QF��(&�;�����3�u�aA=�@u0i�n��Z��}������3�������u���}46Ul��pl��L��(r$�Xf���
�k�]�|J��������T.���ogB\�E@z��u9�}:�|��g��>����������w�v��H �����` 0�z����dS[�a��5t���� �����?�-�X�P������r,�SC����@��)�Pk��p����:��d�h���������{�t������x�������t!"�C�wF��I`�����;�U�Y����$����)5�@��N��B]J�
�8,��0�����s�g!f�n���v��"/�ZDi��\����D<�����o/c����R��5)��L�	�S����4�X��P�`	�B�'���{s5��h9� )�TFv�n���2�6y�[)��x���B���_ux���D��L+	a���>��9��/B	����2
�n���k�����D��p�"Q}�K�,�����y�G��� ��x�+�I	�x#c�%h���Z10Z��U�.���*v���f�|�}�����m�'�)�
��+��/%���e�V�������h�-V�C�L����,q)��(�PS>�;��
|��rQ�I�0��0@�YS���6`�B�����>����*�/���>���x�m�]���������|o!������XW���0�%�5�,+�L6�Y��~GB�5��i�W2��#-�dv��6�b��4-�LGs�l�d�@�R
�>�,���TP��[�\���Nv�I�XK�
�>��k���Q�^yR��xp�����FS�k���0�.���$N���#��h����!B%��	��p]���	V|c������lu!$9(y��1"�s������(Op��%���{`�i!XsO0t�����I�a�r\�t��^�7D^�#�N\�VgIl�W�y$�������L��d�Y�:��������4o����;��
��c^��qr�o��V.-g(����|ml�H��#�s�6X����nx�
s2m�J�[������������<J���GAGh>��*,Mb�@Ehb;���J4Q5^:M�6��L�m;I<p~�������S�h���`�J�	�^���1�_����0�����e�7��B�'���<�����]��t GG*�5�����s�|�q�`��i2����nn�w����lWD�������h,�!�mOAe�c�S$���o&�e���2K��E���q��(W��"���A��������D
&��H�L_��{2zl�L���a:C����0�Ba�p}P�G,#�D���
��S����>1/[��E�H��8yh�.:9a�Z9)�^[p�J���L�Vw�*�"H�����(^��|Q1�T���'�}�Q
-���
��^�.���v�B����h���*BU�!X;on4s���
<��#�%��s���`���U�8���j����u�w������/�d
��"�_m;���.�����;e����j�c�Vg(r0A�Rz�]��p�VZ��*h���Y��D�����%��������y`aiN�rn�2rGsC|��U�"��t����������}Q��*t�^������#UA{�'(�;C��-��B��Ox�������;�������	��$�8�)���k�I�S;��sY�����~�$�,�h�K8i'�R��g�B�r\��	��'"Bg����C�'5<?�z�gK�����?���IA��/QJ9�����t^A	��V����K�=Mg�N�'RGM���T�����$��K����{J����~�p}�!I=���A�O�
j�����)��<R�O"_h�]��"���P������<��d��$r&���(��LFx��{�Qh,�q�W"I
'�����K��>���E�f��_c�E�l��Zp��)��X�Rr
vRF9=���nF��v��I�=9D�G)���*�����[r-�q����56�� WC���I�NY(�����]/�#�_�^��Q[u<AI�a��X�P������P��>q����c-����K��g��i��x����XS��l�����"U"	\������>����q�F(5��J��t$�����I�3�|�j+�$~H������t!�3_�x�Kd�IvHE��� ���O�v>UY�	�"�T�]����1j����i�"4���-���'N�>���r�K��8o`���ao@�����C>'_�N��F���x��V�@+%��Z�u��N��{]���O�A�HL�De���������Lia���9Ux�4 ���d�33I98`�����q���
���Ua�V{��XC����
�
��*A�4��Y�����R-xh��\��'$P^�U�;��\����Gm�TQU`s
Mr�����T����1���tb'�)4��@B�E��c&Cl��������`��+h��;����C|>�b�t�BV.0�6��ZJ,L�A��}74;��_]a�BS��-�G\)���+(A����N�K�
6=���(R)�
&����g~�e�SKf�����b����R��$�P	�[�����zl�
�:(:�k2?I��G��DlG���&�T�6X��G�cUAIH�RUP�O-�M�[un�����
D���`�T��*6F�r)X>�b�U��@�%�?C,��4ZX�����������j#<�/syu��!v�TP�b�T�1+`��-�y�����������]�� N�}B/o��/ F%���w�S������}su[:�|0�w@
1Uw�=Wo��L"���zu} �Y�$\�TKx���>-�>�]�\c������Q��TD���LT��Y�[����q������K�|��-v@�o3t)7X���?|*0��tHW���+�&"y�wR�]����
I���:�1���X+O�����G����X�aAJD��bU��*9�=���!�8(�s�l�	p����p7`
b'f:j�L�����gn�=���'�H,es�=U�tU�\UUj>>�x���'xGm:d�)�4�]/�\<�F����5��
�$�>���������^���:����}�6X/�7W,��y�Q�����c���=x��H ��G+�ITo)V�������?�w+��L@E�	Id�&.Q�]4z���)���\���  ��R�jn��pO�?�;���Ok��`3�I�RS���
�+��{ �S��m��e�� �s�IY��*���
m�{FGdn��9]��������������`w��D��Z��i�9{��`Hmn�X$VV6�k�}�����`�����1VI:�"a_�a3��(����A{���9�`M��0QT�2�������E��"�������-pH�s���Hh�"���������)���N�LR���H�P�s��k�m�V����E���&�B���d~��%���s���e1��2��{u8���S(�[�KvS8�����A���Q�����7}|tn�u�r4�@��q�p�R
�=�����B��j��t�;��+1W��Z����4/`�s@���!�`��3�?Oe S��!9��]�� �
��5�~�j������}6�D�Cp�@C��Oel
���L3%N:����i�
.GX��I�h����5Pe�;�����#��/���HA<:�w�B�i�S�A���8��B�"��44o1�_����> �}����j��@$���s��D:�h��R��ng����D�������S�������`�1��3��_'��Z�d����[��L���NY�xy_
E
��K���-�WX�V���������ux�/-B��JTA��C��f���"w�i?)��$��g3);�~�t�L��l	�E'i=W������F���p�c��Q��������/fB�<0O{�wE��:8����^��>��b��>��M�LF2���9�*s�E���������rr���>5��F�\�!�*��]�'4��|x��M�"�������
���\^��;2^����l��n�
8�)R��Kw-��Sz1[5��0 �������?�������_~����������� ��Xh���Z%`�|�3r��T���:���Qr�;�P
s1@{UP���h1+7������~�b�2�<��b�#� �����tI��Hg�[-��Y�i���u��:s��h2%�����E�*��y`��
Jq���l��o�@��yk��Y����*�� ��KB�eW������+G�'����;���t���������z����2����FE_x2S+vE�����C,���+�w�[|���D�����R)�x�z
�>9�+s����S�`�d��@sO)MW���X���,]Yn��A%1�:�B6��m�=����Th����'�YS�%S@�}U�����JB�/�.��Gk�t�|{
��.�E�2m>>������+�k���W}���$
��@�O�VH^"{������h��c�g�B���K�l�)�,�x4G���pG��[��
J�s��#��g��)��7�b�Zm��Y�T�.�x�>�,�O0_�K�N�[�N�
J�S���
�i�'3�gS@	i��= �`-�q��Bn��S�n�f2a��WW��,���x_�yF��76>
&��l��:����<}�;9�lK_4�����Z�����3M=�-�;y��dP�o����`C�I��>�T��M�e�l�U��@����X�"O�6�q9�������`&Y'f{�G�����h?<�c�3Pol
 �D���H�t�$��@�'���Q��b�n���(�F|�2_$F?����� �y�n	���'*_��nO|OED�1��+(��o��9�����N�b������������<,�D���wo�[��8j���[�Y��(;:
=Y'���
J����E�����M���kM���j3N�	�;z� ������g�E�}}�V�)4�X�����>�����L�un����2*�pS�_�4	��]"	�x�nckL�
�?(�(�O�IRO����m
 h��V��[
Z>�z�z������������w�h�j���i9C�����������������^�����#il)�5��A@���$	�:�����Y����HF�9��)]����zp{{y�e�7������gW0_D�L�H�Iq;`��O�$�h4�V"	��@���0�W�k�	y"Je�})��@������Oh�+.�N3<J�wF�+�c�MT�vz6���x4DO�����n/�!UB)<0+}��D&�7����������/���Ii'�����2/�c�q�,d��"]	1c�z���h��KB������F�����07S�7���h|y}��[0a��[�	�{tY���^1��{H�f����T������l�_�!d����$��5�&F
1dF��SaOI�����G��U`�s�o;���]�{���Ox�������7w�Au��II�g�RCj� x-�8���,a�_rs���D���+��>O����-��OLi,];��������Fo����\�E0W�$1�B4��'�����
��&o�=��8���p|w��+j��a=sV-�������O��o�J�,C�Rb���o�x��/�z]��L���N���Va	��6���3�������l�le�����rGB��(��
�����?��B�3Oa��{��t$�����5���oKsx����u��m���rf�4���?�d����p&T�p�&f�9�9)��msb�#���<�Zs,�zn���� ju8��F�����	2���-������e
���yJ�:�O�<_]2��f��r�-��w
M�����T]4��l
M�:�ITy�����dFaK����SE�GC���b������������%���1��$�y�
<��A%���A7`����7&3�7h�k,
y��j
 \;�|�����m�r(�hZ��Ej����V��$^�9�d����y��'e���Djt&t)5%�TIi��7X�G���D��avy�/<��jA�I�j�'�F���SQ�j��#���[aWq�#�=�9��j����"`��%���'�r�����'Y��aZ�������6Q:E5�	�V�B]*u8�u5
d��V���	�$�R����YA�'u3z� J����Ta�%Y%����;�<d!��n
��1��HD��@��N������X��XG��
����V��v�R9��wh��=���#/�s��t��/��_G�j
Q9��3��������D��*(�������F��������:�c#/��`*]�}���h��=���}�,�Mh����D>��������h*C'D��x�;Nx1�T����c��9���cvq9xu}3_�� r{2(�Qf�0�yl
NT��W��d;�^N�"]� ��58R�����hx�yNkp
#�[�nj�!��.��\�E�OLl.=��B�O-H�$�H�V�mX%���@>`ol$IC�ys>{O�5�yR�k���J��:" ���yW4^LV�{�7E����
 �q�V��`��M�Hf2������m��C*����Z�-�3K���c��mZ�l���}��e�t(��;��s/���XW��>����0�����0�F[4E xjQX�K0�W"��tr���`Pe��V+�9��V��=���{��=Yp�$r�����~;N��y~�`�,���$�Y3K��a?����Q�6��4N{�4_���f�479�8zR�i;<a��	�[0A@�����ux��^��_C�J$�^\p�=[���z-����< ���ud�h�v+%T&Is�	L�ha
w�> ��j+L���W?����_]a�sv$P������;0&Ub	�H����qd5�p����P��c��^
��&E��E��h�D���rVN��gm������g���Qt�1�v�vu��i"(�S�1�d��{2�R�RL�d��H4�A �$�-�����m�v��)�1_�d�{���D�����>�LqK(-�,Z�	?��]�+��UaU��;S�BP"����yWP��F��� �V��e;n����)x�"A�7`��|����[4�Q�am^s]!��!��wGB��;�P7A�`�F)���;cr�vB�&����
��^%����n8G�w&p&e�%�@�u�2��'8����g>��V�����lz^9�
�����K�;�h��	�H����`G%��[=���_A����)�s�Y��S�`�A���$�)6FE/�	��a���l����1�����u�b�r+��_�������������_�����]m�;{93����N����LT���OH:Q�Mi=����K��G��*l�s��O�
O.��1��TA{qC�.�X,�d�X�s>�S���\��4bq1�y������{VQ�<�Kd/(9��<^l��<��`��|�4�G������#�P�Z
M�w��[4�5g�l��+�!����0��l�Lk����)����������V���]1�sW��1�������bZ6� ��G`�q&}�n����~�d	���h�9�.��hZ6���;��T$���S`^Q���(8(���u��x
�?o
 p��-5���$kZ�<4��,He��EU!�T������O_�y9���� j��U�X1�?������'h�5���x��`�y�������/6V��c|[p���/��Q{2zW{-</)�JK����-����v�(��X��6�����Sf���=
���N�,���hb^CB�������np���Mv��|�R���?)��wE>�F�
�R�
Q��y�GC�[;�/��k�O$y�K�����?����Tz�K��_�[�z�?�A��U\B��if2�<9	d$&�3�u��%�)*}tZ�����G���������&�����/l
8�j���\���p�qUO�-���������<I;F'�O�@,�h�;���vE�FlO<�;RaI*���N���p;+z��[���JUX��1���	�`�x�4��{�����^����i{HUe�C9�N�*f)jl��T�`C�'N�Y��&w���'�w�	���y�0]OP�|s�W��u��W�#��6X��4a�C���S�a�r�S�3�\6�*d^��g[���S�������V��_ePc��9m��%}~s=���Zl����*�)l����]��:����-�X?�
Jp�������vksw��Q^C�5�)�$��?���7��~���a��?������o!�{2zS���
������*��B�*h��B�2��������-zQ�ok�EW� ��H�����������QZ 	��K��$Y!OE:�c���f��1���6M��QxY*���S�:TY�l�#���\~R&A���n|9��jhBG����2pP�-]i�`�	I���s{���5u_K
�7_�C�
`���GC�[�l.
�/���r��4����%��m KNr�5�� ��[��lw$�Oq|�z��7�X���>���o�
K�}���������Xr/�BT����q��)fpr��v����K�Ns0|���x;8E��6����������T����j�omp�'�M!�O��i1��������O��z4����c������|0��`���o�0������E��Q�O�$8��4{�R�D}M	�������1��<���.�����h��ZG�B���~���I}�����S�!�����
R�������Y�l������7�ow�#���BJ���@`);v@�v@
�����IFI��A�M$���o��H�n����LFxA�)�S	���|�aK$�lQA�'��bQ*�7���-���~��5x��_�B���+�:����<������Q^Mn�\�I}�g�o��p������s
<��Z���^����}���l� ��#6��:}�����<��wlj�t!��7zH�VJcA�6>�D��r;�X��d~X�kOe2��fo3����]}b�y�4����/"O0�$����k�����)��������m�����f����[�Re,����8��m�chFyU6�%��X���l�;<�k�#�D�W��A�pk�	��L'`�o%3�a���'�N1���,������H����M������?���������r!x@
�AcGZ�\;����_�A��
U;t)����>���!^u8A�^?qJ����\���e	*p�����b��z
<=4
��xw\�����F&��j�%h�<-��ezJH����XIZ	�p��;�����{&�3=��gS;X���'D�Oz8���$�5.����
9NBc]��������1�sES9C��D��r�:����	�"��{@*��C~*���o&3!|[��<,�D�\ Ib4�IM{�htt���N'��sp��U��4%�aZN������T��Oh�h	�!�''f���G6�B����������������2��1��Wj~Y�~���*]	��FA�\�J�P�G|�r�g6��S�9fU��H
;?TK�|�}��
���Bh*X�j��h�L�.G��)���r5b�Y
�����������dT
FX�V$��8u�'�o��|������?r A��m��`Zxf'E�[�C�fR>���t��2�2U*@�����	N�Ze�B���,���'��F�MCB6�?���`&0"�S�%�GFM���q?)� &��)S%(�)�S�"�mS�,�k��b��gX.���g_���04ov[l����p8��pS��������!8������u<A�8/@�B�%� ����H����^4���.�<�A�����r����HJ<����	��������\bm
 E�������#������;�B���cN�
���Rb]�j�j�N6����S6S�M�1�#el���h������4BB����^�T��9���h</����������^&^y<�J��89�$��i�q�=c��I�?)��k�K���qHf�]�@���H��WD�pXL�y�� pVj�u�-���gk�As���#��*�Ti����I
�4%TL���Hu2]�����;�'��V�4Y�S�Bf'0���
L��D�$X���>�G,���$��2�=�V� j1�%`X���T�up(i�����{��O���8����}�[���C�Q[	%"�s:��GMzn����kY�A9�5~jmX>������=��s������K���0J9�B�����U�7h
��8�	����9���4�r���g�'d���Q?c�����k��3����.���H��(ftT�g���e��\�����c5���g*";d�F,SzB���;?������fC�t�NE����To������!%� �wt�W��Z�E�������-(za���mm�%_�_�!��'�$����g���5<=,���>G��;���B���J��_���e����)������iFY(���86X�~gy��)O5�����2�~4}B�o��]���Q�j����`���Q���(
|��._����#�|gn���5>�;A�"J����4Ol�v�k��-o������Pe�_��	}��$)�Akpz]��&c����d�"�mYS�{�����v�)>�)�����,�������!�1����~4k�7X�/������(��d�����������`�Z f�fX	`����E��'C�xQb���	W@{P�m~�-�F0,E�0�Q��g���'(��K�
+��^�<��RF�x����^����?��
���l�=�����>56�����h�s�]S@	N%��Z��5��(*�E�O�@c�����#vlUP��4�����$�b�TLC�Nv��uy�����/�����7 �]���;�O�_�� � 
k�NR�E�x���c��y��`O�
�}bo�k�
�5d�2_K�ZOJ��j����<k��'�TO%���I��M�z��h�J6���@r�q���|��f�����!�f��j�:Z(����r��"�n�{2H��T�'�_�D�<r/���|JA�F!��z|�f��}�t8/o]�'�=F����7W��Jw�oo���
�>���~8��6���~���Y�E@�X�R/|A�7� I�'���Zs�L�J��b&���Bl�I+�No<$��.�>��:��h�������;�7X*?� ����F���_�$�*�N4���t!��\q+�' W��f|>7�/
:,�}�����_~��������?|���_��Q��Gg�~��?��?3����V����H<�"J'��&�H>G�]�C�p��6s`&p�1gK�����`����O*��2����2�'��$�.�L����Pi
��n�J��=	R��&)�g���y��\�Y��:v8d�D3���-u8Ag�8�?���e4����Bz�9�=��
t�u�E�����3���G>�	=~_OD{�k"V+��@T�>z"�=.5t�����Y�w8:�z�z��������8��b�<K�,x�o!���	~?<�c���9�y-�s��R
�l 8=lP;2
$U���f��MkVz0��[4�������yQb{��C�@�:�H���)�������I�f.�Es�c
 �q����}xe�������
������h]$?��������������?3���o��o����H>)���*�O�<�����\����;��o���/�>9�t��
9=�.>��u�C����Sm����JF�Za��'����K�����r%��t�P+��B����,ljt)O�X��(�B35eo�#�+������}��_+-X+����Job�N��M�[a��V���B��n�������V�xI��S`�J=�d#}��>r���
9�nCmr�N���!�fq �*
���������w���NL��r�
��&��{	�3����:����c�
|O����}y�Ci�z�Cl��	{��b�!\����B���*���P�I�-���N2��'�]j/O�z��y��j����S�Zr�GQA{���E�C4���d-���6��Y������I~;8��
�����2��|�7Jb�rNquun&I����S�I����~�%�@����.�(�
��Q���K��Y�)��D,�;��$o�����nO��9��`��M�i�
���O�:�'o�O!�,-V���E��)��AF������9����	"?�����
�'n�O��i���5��)��;�
 �-Z4
�T�f*�@fO���'�*i`S�+L���4m�M�0��'�~l4OE>����~E�?OD�+����Z�d�v�����n��'���^����R	~�����v~=z���<����NtzN3�s\�:�T��c��^�PO�+�F�w������w`��T��Svo��H3
�Dl�'�i89���3���}Rp��*�k���;����=��X�������x�
O^�����R�r`�����]�Ed;�dV�����	�C�I���;(0%�}z6�U�'����rq��O���p�~��a�A�9(�;�)b��]�$�����rNg�S1������E(��"Xb�LP�f�*�aW�K�^����#���>��V��S?~=!����&.t4D;xx�
.G�h�IR���#�?����!�D?� 5^6��<��a>X���fQ������1�E�0���|���:F��mY(��iKh�bo��P(51��^	������>�j��/s}BMevK��EC�H��
���`	j���b6�^�-�}bF�x��!n
<�3��GXw2������b����G�9�^����|�F�)Q�������j����	.B�`�p�]O���H�����	����Nhn7B��b���
���*��`FD����%:�����m�����Ei}��2rJ5��h�&���rW{c�E�����	�u-��rA��rG�i]���3�h��}��zZ��f�-�}?5�iE&�hG4�5�q
�&x<D���`5���jf4E���b��@F������<^��
�s�\kjE����'e�\sp"�{Z��%��^�E/J�i��������9�`	\8
v���+��I��o����`�
��<�-����O�+�,�45�&�h�B�0V�������*��u8���M08���
��.�_��WK�%����I��Hb-'J$���Yt	�=7�k��"���,���'�}��!�(�QD�����}�b�e3�P��@�S[3��>�d�"��.��Y���MJ�R�\�H��5q����%r���;8-�)����f��[pW��)�i�%���`��
J�~2�����}~���ut0��h�.O����6`�Z�������6����GE��\<bH%��H���HT��+8Y>Q.>���
�}j�w7�������V����M�����Y@�'un����9>�R���<��Bkh
�ob�N����=(G���O��1`1|CBO��l�f�a[C�P��V�"("��\�W-+E;���1:
�����S�z�r(�3sBb-�x�ZoMU���,^6��H���_�K�NZ/9{�`���X+O���~_I�`��n��>���w��������}4���F}��jb=�����J�
/��<��I����54���ISK$
%�����M7��T��Q�'Q���b�p�=!'��Y���{�u=y�B�.��V�wd�%�����@�t6���x
�����B�����V5�%hj�M����7K��`����T�?�l�}!=t��`�dH�'i��m���������N��!=��{P�Z �����9�eK��
5q"(���1n��<s�d��T���9�B>�]�
���}�������#{2��F�Q�M�d�{������u�%x���y��#nJ�X9���Z��q�u��z4k�1W,}�	���\c��D�e������x��ZtrtS��S�]���:��o~���"$J�Bh;��~6`"b8+��0��4��C�p*��A�����|=����u���]��O/�)�����~�[�M���j�^Q�3��f�NR�r)t"S,��)����m�\^�O��Hj�-�K��{3�*h�
n�q�^�"��8Y)�
vd�a�2��<��*'d$o��|B�UM��}TX:{t����AZ�	{���J;bvE� -(�Ol����:��`NS-�X_UCS�?�d��An�~���J��E����[���{���`���
7����HA�-����O����!���'+�.���+4��@����\M_bt0�RA�'�Z)L��`	:c}s59\�O^��__L�n�aw�aA�~"��\��i�����__�\C�J$��d^~���Olp5~w�`7�t�GHOI{
 �Q���J��}��?|&Is�����_�_	�{�{�"���|{Bzl}v�j/��c��
Kg;9T����I�CF����2�t�d��GM������K%�lU��]�����w��!{2�������hn�#y���l���..�>(����Q�'phSIs"�#]��g/u0��YGE����~��/P����J0o�L���NVST"�(���������2��8��$��Q���SCY1���h��@`��$�k��<��y�x��+0?I��
M����<����I�M��M����&y�n����eVh�L<�56�"H�
�������d��c�m�"zJ���e:7R�m�R4���R�v*`�|&in�.� #�~Yu<A����]A�����E�[�������6���R��/��n����f�N��_��vm�Lnv���J(A���A��ao���k����	4[4��
Q"�}6���: �"m�����l��'��&�l6C��
<Ie�jj�%8��$fi;��pWawVf����t�u"}���k��z�H�H?�I���]"O�Xw*t�G�q���k�*ef�I�5�}�N+~"}"�,Iw��K�I$�I�E��?	�Ts-��|Z�i/����\G���H��/[�i=��+�<�$��xG�ie��t�l�l���b8�RA	*�f��p��
��A�m�T��/�}�lW��kS�N4��EA�p���z \-���@g�)8p���Z&��\DB��>Y~����2G�R�������O�o��o�����o�o��L��R�>��tDU��<��c�M� �B���XBE	%��"���+h��^�4�)�^B�x���b�+�'��b)�d�
p�G��?s,	�Z0��E���x�uOU��1H�����y���[4���8atOF���$��?�n����kA��M��lu4+����(�$���5{�~R������7��;k�:t:���S�F����}���n�:�xO��|���t�J���T��S�V�/9��"0~�'���KX%�Q�@�S4)^f#>o6���i_����7x��l� �km�JF�Z%��3���E���=;���,��������*-�A"9v��3����%�yo�l��-�o�����e����u���I��|1�q���?
d�e~T�^�+I6u��ES�_�y�1uf�����o���%���<?��<d{2�y�;���+v/�����?P�
�*�0�~��N���A��P�����F����>�����c�z���jp
M5�Y�e`�*��V�)�S�n�f�b�lnT��������\b}cRf�_CI)�Ta��� Fb3�R�8�u6���������Z���0�@��be�'eQ>l��M���L���(�$�8���1��%o�S,��'8�}���"�P��������|���\�	���`"MW1i��0V�����=���N����O����@U����q`�OO�zG�����Mu8E��=��M'�����>(���#v���	�\]|*���`�9�b���
i��n��w����.�gJ�����,�ff���B%�}Js���M��q��^1��b��9��V����ZE5�f�S��L30����d��"�Z�%��,d>!�,z_
��KR���[��"e�{�U
M��O���aG!E\���>���
�KV�_`GC�����Uv��q'�CJ�B�6�L���g����<K2���!%�Ob�.��R*���vEP9�o!BlxSE�`�`Zx�N���vDx��r���
|Or�J/o��C��)����{��@��x���)|6�y�TdXi�>z*�~��,�=�l��9*K��9��h��o_���SyO���u����>����1�]��o�~/9�*����f����,Y-
����Q��6��>Za{��O��90����O,L���c��C�j�g��;�������XPo3�����E�*��1�����I�_�.TNv�;���Wy����:�����u���i6����L�^���'���S2�b[4A
rf��^C8^xN�+�T
���V��)m3*�}�$]`�d!��R")T��������JmNE7��)�L�u��'������XJ���}4~��c
�
��M�
�&��|uAzpFr]��	[�T���;zW�#cU*��K�`k��,He�������C��lQ1�B
M`�cw��_���{^�u%�������>��a!O+�u��������a��xz�'��*i��j�7��Zv7���V�V9f)6��z�H2��#�^\bOkY�[�ks�i
�H���w����%h���D�V�������q#�����H�H?K�����h���A��"
�l��G~��m:\�~Z�����8�����^�n>��_��hxw9��Z��J������k�bl�P'��������������������L�-8���`OkY����z~�Ao>��hGeN�Q�h�^��q�R��MZ�Q���_��������
JV���l��'����BG"`Z$*����B`6�^����,�
K�*��i�C�'����43��o��#pWF�4/�/����
�7��x�9�.s�%���h��l{2���D`�iN�������6����_�\�����I���X�`����B�������A+�-�`	�9s<,�N���';��L�����O�>u9�b�1�V)���H�C@2��p��
��3.Y���cN�
�@G�}��c�E�L�{b0�\R������'x��e�>���-�$��\3�����I���{v�>,�wM��6�E��h����C��
�����U��b�%���X�����$xKQ���O�+�;��T�g��|��k�x��9Q~��l���d��g�6���s�FIlN���_^#
B�}�E
�>�A>�e��
<E:IVJ��g�BD����d6�2���r5�}P6H��_�S�8�k��Q�����h�,�����RB�'uws}q*�~�����T�
��*,A���k�	��Ph���!1FMH�7l% 5�IM�H��S>z�n���� �������L`�WS@��(��h��)f�����7���/T��H��s���S�cJf$X�,U��������sd���u,�4�OD��XL��{2(�
-��m�"L�<@g���T���eJ�:�����)����A��DRl�N0�������F�f������uO���@�F�N�|���g6�p���6����l�Ej����>�������D�?��a��30hG�/4�J$Y�Y+��s�'�j�?������z�9�B#�c���ITk��<�T�8�@��,�!�o1��qt��^���h��/@�m�u�
�������Wkh������K���e��l$�RD)�T���wD��dd�8T�+�@���5���X�p���b���X�v���^�}���:H����#UA	��o��z����3b�x����jh����Z�U�	�S�M���)����	�	]�`�L��q$��K��:���3�;�
�L���V`��D���[7�R(����;��{�����������A�(�����.��{B(�B"��J��R$X����P`��H��1����PE$���������w����Iy�v;z���gp0=��]��c#����
��x�c���^*4f<�!�[eb����\�6����`���(��y��P�fPSA��|� ��3� �k�>�H�fbs��n6.���B���-m��u�p��ey��cM�j�x���]���5_�c���c%���e�O���W*x<�Yf�n�>�"z�U�`{�����!�R���Z.e`������^��/f<�vV������U�`
���mb���z�K�e��W/l�8��!�dw	9��������i
,E��
���`��yob\��� �����W�\
K�%l�o�^������,gL`��
��c�q�1
L|l��
*������Gw��lH!�s]��A��|UM3�`	^����\��5,�����y��+�T�q�������<������X�s`
f8�D�riv[��7lz����
���9����Hh���LR	d6�gt�}5]
���-���]������:����
��K$��-��H����)a�����`<d�����+V��A�0	o�5p*���/�.m
�����w�l��x�'!O���Au9�a�'�'�����Kp�\<������������9���?�iq����y����|=�N�z"}"���pOa`�<������c�j�T1�5G3pv�t_�8�-�����JZU�=���
<�3<�&)�uZA)��$��1���S���N�<B��!�+����������;+���+Gc��3��z�y�H������
9V(���}T{4��~x}�#��)�4�V��������0���'�s<	����\�O]��Hh���������f<����������N���;x�P���7����'�����Ht_���=�>�>���.7>�=�>�~�����v�Bh��t!���r�B��f��O�i�������HV��J/����y9��7`�����������k�IRG�Z�=V����);�����/�k5�=����N�U���^�����O��&x�}S�iU��thL@��7�;���H�%��|��}�����
zZ��_YE9�@o��
VZj�g�&��@G��n����.�������;�K�'�����#1�R�u����@����������&�y>|����'����K�z�N;�d5U���H������U�A���_1m����������$=�WXG3����yY�5M���������q�5<^��J�_tp�|�Mdv��W.6�E�x��eq`Ao�>������O98�dG�i]�9��������G��eA0��{�5���]����<�Jp`,���DR����|;!������+���)���'0b�$y� ���>H����@FN�)g�`o�Z���@��@���:�B�L������X�)2!<d�K��J�+a��buv�w�'e�'�NQ����w��R4����e/��������$"����2������
!tAW�p+I����l�r
�H���;��|x;�����k����	�Cl�'�`_�}����q�w�Ijp�G���%9a7%�o�p:�d�$�9��x��%2��cl�������=����������%���{��,�Kq�@����)�`o�I��H,�!�F�����R�a�P�3�x
M��@���+�z'���DGm�H�X����<�4�'Z��'����������I��Y73�E��@P���D)�N�u��)XK��qUK���+(Ep�C�9�}J�4���]���?�������K��������s`FF�������p4���h��vQ�����WC��Az��"JYjx$<���d��T�T��c�
C�	��Hi��,Je�D�3;A������:
#�e �w$�����a��{�zG@q�Z�%��h4���n�g6-�IY�-�s���`	"D�0�r��d..G��k�t��{R&��ziB�Q�(Z���/�:�����H#�u��R��!�]�<�c,^��O
��� 8�#�����$eu�TPR�>GYXZ����2���0A��oc_���[�y���������B����{����`_�H��+�,�E������)~�So�^+p�PN�VJ�w ���� �G�U(��������g��-�x����"�Q�����	�{*�Ix�i���e�lz\C�.%�h�bln���uPN�t�B�5�����&�:�����LF���@a�1?Q���Rt�aZ$���W��'��fZ�l��&"=-��'���
�!
��^�!j{2�!��`2;G(�
h2�WgFEK������U���=(�}�o���7D�
��xym��r<�8m��7�&�Qa�������h������/�^r�����'�����tO�[O�MA�&QNAvu8���������)���C��o�%������B^�{r ������54M�a��[0�Mj�^���
|�b�yt�M��a
<A���������D�#��s��p��'b�U��	^�Tb�A����5>n���(�>�����:h��c=k�h��68J���r=���Z�
�iO�O��P'\q�����GLz>YL�
_bem
<�Cs��4A�c|��4������V�xIw���t�N������G�q���z��H���m�������g������u���JRmCyU��C��P��C�S���Ex6�2��@�>�-V��S�EI�x�Jn�i*�g��Q��'�by�9����c��,P�#'OH"H��=����I�
g��Tj��l
n�+5�%`��
J�(�1���o���7�B��WWX�UO������">����or�����>�)_����Gg�>���H
�z����"��\<���6*���"��:X3�I�c�d���r
zv�x�T������F�JF����*(Y�����{�"�R@2W��/e��z7��BRL��-��$���s���Wu8Es���]A	z���.�W�D�O)	|�`	��������d}*.���o�^�-��aR���~,:\w�t���f*l���������+�[�#P�^y*���� �c�I�Y	L�n�	.��\�����>(�����������3C&�q�=�������3A7vt�y�-6l���������
�y�R�9�x�G���M
�������_�[�H�L��BF�`,<�i$%��J�F
O<�o&#�����C���D���\�I^G��@�i��Mm]D���D�DD�L�t����A��yyN������qzBk�X�$Y1���>������xyq���_|�����?���GN	�	�q)���
Jp�m���M=��t�cl�4�m��<���b*y��z��F`�eEz0X��ES��$6��m����CaB]�J���x-G�X�JR�yi����Ib1~�fl;���O��B��j����:}bWD���������~���n���=Y��oY]CS$�����xl����0�u��AP����p�`��h��a����5�<K��]j��D�I���d�m�q;(�{Q��o��������O>��UP��^����	��b��+(�zy��g�%x��2������'6O�]�5���U��04���o���|}�9�}BK��{���Iu������=Ec�_���d���K>�M@�mf;�b�*,��.<7�vGB������X��
���j2��_���vDPe�z*�Bl6P��X*P+��$��01��R�D�$��
���O
�p���	�
.GCv}3�<���KT<�,0?X`N����V��l�JSh����~54�	�����9��\��\�n���z�������k��#�|�ga��Z��	��w�Bjp
�
L���������^d�v���)��4���u��)��d\�*�d���@l�#������\�%����0<3����`�[C@o��w�s���J�����5�����@d,NBM��Z�p�=!=���h'm[-�l�
J��g�"r���rcw�
�������k�T���4l�j��(�=>J����c_Ho2�������@L�T�}!�}u7����Iq<�TL�/@����I���kS8��<?�:W7��c���]!�o�pn	�jkt3��0w3��g�/�
nH ���<���f!���=d�&SA	��da��I��N�?=�[0�^���|����&�w�N�^�b�
�c=yx��
�D�{���|��r,����kBF�h6�X���/Q������6����0�k�^�Ok������������"��>�b�,����Cr�f���]Y�X#�GXQ��["I��T�<�h����D��;E�<V����X%�e3�B{h�E���N�7���3�X6���c����+����1���+�.����Oe��"�����+���m����pO��Jr|uwVB�����,���'Y�.���K���G�
�H�e�G����VZ�2�'�s��>��8�}LM?�wO$�r�\b�h9�"!����t�t��=o��u�,�g�	�����0����z1�g���������LRcU��L�m�?a�T�'i>)�`D��-��S
��*Ps����y��k	z��#�}�_
_]^����z48_�\C�H!��n��0W��k
h�������L*(U.���i���B�"�kf[/�5�;Rz�����bDZ���j��=`�U"{a����D��ZE���tW	I�
0[�*Yj.��%�<RI*=L���A6�"�&������`��Wc��b0|5a�_vEd��h�X��+��W�t����ww�����w����)�-�@�2���/��W����}SC �uRu|/��#�����b�iS�V2wj1<e���L����"z|��K��0V�SwD���[�T��UN��������#y@
���n�T����c�!��A<-���������v|4�����1�������j�^<<8TD(�
<������w�B5����'|>��d����? �'j�,�����k
 p�S�Yo�����]�����
@$wE�O��� ��"z������f�%�*O�b����>��+bkw7W.��N�h�d@7�����?��9$(��h��=BZ���s4&t�����L�,V�]������^b��Hq���SA{��i�4��Dx(�)�4Xk7�S�!$�R�y�h����S��2���V<�"h\]�'����]^[4qj����V	�#���l*��S�VU��@q��Z.���v����L��(����5:�Wv���(I{����im������i��>.����cY��(.Pk���w}5�h�8�:!i����#�����4��6�Op4�0�5���#��;S�$�������d`W�
� �8��$aj�Fxi�A��{>��H�V R��������Cb�����
2��uLu�o���lu8	97n����=RQ���������w�h)��&��A��.Pz��Vl��YQPz�	��������t!�3_�x��6�\����l��!aG��xq,DY�'��5#���t�u��
�"����VJc����X`����eGW��>~�%�)��<8�L��t�*�"�V2���_B{W;����I��0��G���#zXE��TD�s�`)�����OMm�{g���.��Bx�]e	��x����Xx����3�)�2}@���R�r���I�Cg]n�������> �I�'��1������Ym��^tG�H;�	l
U��Iu��iQ:sp�v�>�����n�.��7L�|.����~�%~�GAUM�*-�TF��+�!1'�J�W���n��M���
J����l�YB{|Gt�����1��R�]�_9^�x�[C������g���{��2duNxD������m�
J�+_x?�F����=3���<�,q�si
�Ht��	�SB�|��,O��)�3>�k1�c�� ����p
� 54Ep��A�$��7?��X�ru���1f����P%�`��h�Q��'U�3������~;_^_��Xm�="V�l��[��A�� x%prt��/zcm�iBV�q�*7P������H�q/
� K�����St�v�[�u���9�WA�R�f����C�T]�a�����f���(��.��kp2���x��]���2����\_�� �t�H��FH��T��Y����|�%�m�����#��(������Q
<�3�2�i8hS�}!t�ho�� ���e�Y�Qj�qt�>)�}�����*G��<2O�~����/��E��,�Y�5��IO�= ���_�:C$8�Ch�&p���E���
���4��D���~����N�i(S�X��ux�W������8<T}�k�u�;���o��ZY�+���������b���>MC���Xz~�	��'����-���R�r`��������+(��r<����I`|;?3?Jh����C�r��>C�o%���P7�"/'�8U�$,F�Ds+
$I��zE����	��|i]V<`���Hi���c��%��m�z)l~�����?��B�3Oa3��#�"����
`T��5��{m����ES�X�$GC���
N����'���^���h m��?[J�/�K�<Q����q���\�]���q�z@��b��j`TwC�����7��h�7�=�q�R��Z	.���[����o�qL��"TKG�{2z���F6{�"��M��TN�Kn������F���W+�AM��|�z8
^����g��������"��A��B(kc�|cj�I6MR,XA)z��(�x�{��w�h�v��9�����UJ�C�����P�X-���L�����(u����a�h^aI�.�Z�`c��w�rG`�&$��$��l�0�n>U
5��e9I2O��-���'� �s	f=WP���,J�-1����
�#X����|p�@����������b.H����t�wF�gK�X�v�\�}u;�^^����p��r�.=P��� ����%��-��8�!-m?�B
����]������k|�UX���,Zbi�l�J�6�g��X���!�<�=���go;���]�<�����u����B���Yq���|R�N�vV��+���n�=)�/��0dd�%h������0o��9���@rda���Qv,�Y'��;��up�KEh��
��M���u<�v,D;h���2��A�"!|��"�H��f7���pm���?���Z�s,/�i�0��O v%��?����� MK����2���,V���9�k�)|PA�w���	�� u�����������������"?�E��k���wonF�����Eb}�+�.X��^��J���GQ6�\�*��6�G"}�8>P�����ut�QF�O�vK���UQ���a�����{2��?��=d{:��N��s_��!���1:��x�s�lO������]+1M�,c�'IT�e��l�?�U�����qo���!����m5
()�S���E����c�[���5�Q�rp�h
��]������>����G�|��>���y�W�v���k�{G�h�������^�������G<���[������u�_$�����o��g-�(�����7��?��l��l���s	�'���&k�M ���xHL�wz���Y��ie���:s�)��9*()�����
x�����o����(����mzD�WS@�2s�c*�N����|��.������|�2_$F�=���sWF�4A�V,7U���Y���l�HLb-fK�Yr{v��L���`=�����;r�w���#2s��Z	^�b���O"3��f4�����{<D�u?*�	\�k�+�>��\]
��7��R(��`%]
�>���{����t��L�B��k;z{wQ�<�c�h�v�~��S�H�Lk[��9��X-D����q��|b=~�E�Y<u�_�	7M��n�=3*��4F���Td��)��: �}�ZD<,����_�}!yV�9%�\���;2��y7��]�o��w?@�(_*�f>����;=�]����Y�<���]�����3�5+����`���7u)>a����=�����"��,-��D�|rlUK�B��=YU�������~��X���f\���(��JN�%�NY"O�`��Z�0v��;����b�"
 A�����'��'���_����Zf|n�s{��
�,��^ Sf����[J�&a���.�Vt!��Y�h�#O�!����}�^'����N_����0oD~�=?�h�j�$�h����1Om���\K�K��d����z#<�����z?W4����/1�O%�h��,���
JC*aR�c��x�vK���q8�b���L-�^���T�������������+������"	�R��L�T�h�����-�-[�T���M�VP*R�?n�&�mSa�����eA�"�s�"���9~R&����Q�y�'��F�������������������vx����u5^�S��d
E�P{���
����z���������ov~s=�
.���z�s����g��.����h�.�O��N���{RIU�Qp��#���7���q�� 8z#6D�����TD��Y�SEb�_��z{cO���)-X����h��?�~��Y����x��J$4{��A�ux����X%�Xg����F�G�����C�P~�g�eP�dN���?����Lx6q%2�5X�����T�G����3L-���Ojf����i&���~E�/O��5�r�������*
8eG�jbWc�#���sn�=1C��fZ�w���`���L_y���~�
�4X��)
+�@z)���MYt 1*B+��	+C(������g�n����/��@���+h����!j]r�������y��<R:A��p����/fsck��{2���`I_G��x�V�P"{�:Uv�}MM�k������F��`Z���p:]VJ7��uy�"DCq�������]��w$1I'��"�0�vOI���4����x2���>���6�Z������'lt,]	���W~��k��C;�}U����^�f�!1~/��m�=~1:f/z*�y�f��b\�V �S�{�k{��'�@��$�����?K
��/<����O_|y���?�E�koq�c�
�)��/q4���!�y��8�9���q�T�0,������:��_���p�|��;�F7WIbnQP#���j���
Ja�wl���q���",enOF�4s�)v�VP��i���YO�fZ��`��
���
�����U�A�PCI��<�B��^(�Gsuw2�L��A���GB�p_��=}5����-�G�:����eN���V�LY�k�x�[A�,]�h�O
O��[
RX��__^GX/�
�}Z_2o!#z�kh��@F6��' �G0b%��7h���2M���b4�|�������_���cw����q4o����z�B�[��������q�����W�S��c��:��Kk��rr)����)��Y����H�\� �����S��������H��j�I]|.�������o������!������������X�	�]�
�q���j�8��|�jx�5*z�<��'�-�RL�p��fOF�4�\A�r�[���:�����������,TQ�%N��g�(��HW�f����mGC���6c�A������'|6*��}q���gH�A���5>�BK{i��w���l�bJ�/����v����������wq�L�������Di��F�)Q�����Ta�����8:���^���7�i���Cbz|a���Z��P���I4<{u��oi�0o�#����#�
�&Z,A>��s*���yX����Zb�V9���Y�;l�o����da4
g������@M��FQR��d����+����.V�F���q�D�x2�uO��%�.\Y�C����`k�9M�3cdW��P^5^�u��[A{�gt�����?�\���X*�K������)2���@N�_��.�_��������[����h�������q�2,��R�b��$��'��>�/�>?�#��D��E/a�[�5K��A��M�r AU\�DT���{�NhSjx
z
����(��R?����:�p��7��p��r����1� �����Y��BH�V�``0k0T�#��/_B�,�}2w�p���� uM�o�`[
����3X�>�R�;����k��X�s�m���Zi#�_�)��`�������H���h�g��`��]�"6�2�4v��}�i��gL<�k[����_���a�fUT�Y<ag��nx�D�����5f�H{�q��?�j��O	�gSiUg)�}�4
S1��y�s���v�)t�Lv��K��/��
������Z�\�
��\�&�Hcb��m�x���QxXn���O��z�0��;(��t���t�`On���u�f�:J8�7����"��RA{��'��t;�l�=/,��Sh���`�
�>�E>o�UA��+���������_!Z�w�R����|Z���=��4/�����h�t�w��!O=��KND.I�m���5���|�w`)��P�pph�@c�&�C��:�&]�9�E8 �7�zo�5�l�������B�������@������Q�Y��3�C���plJ��V	}��m��cy	��*��E����[S��)<)����H�
�}b�wC;����b�=D�)�����/gk�2���<)���E�4PMhH��P 	(���
�]	��b����<������{���F�j����<WQF,5�����H��+1O������+���ti�vL�MR�\��8�thk���tL�y����_������+,U��&h���'|4��&8d"���}�*,AK���U�&%�}R��%3[��Z���M�T����`�E*za��R�;�&����~�����K�E�a��*(�]���6�0r�����'��sxC��p<*��]J�f<x�������{Z���D-�e:W���d/	#Y��j(L�i��2�,G|x��������5� O���;@?sF3G�c���\\'���/�����\%���
<��
K���+��)�����X<�<�jv��m��)�	f��$5��h����u<�I�v��������'�0��
JE�%�,��H�Z���"�S����Gs�wPE���*��������1���)�����������F����2Qz��w$���8�?�-����'��*2��?�Z����>JH���B
��>��i�����#x��s-���QC������|4��E%T��-��#�t�4>�\���-��c�m���[����?)�B��H�����7�_������_�yd�B��T���m�+�����J�s�����?����2zp��m yY��.w�E<Y�K�ZK�U�����$�t���N��d�O3R+0dY"������@�r\�t��.dr����t��{E��9���~�gO�N�Z�)�PsLb�
W�;���}�t��:/�oP����E����z�t�t�t�t�t��
%�E,��`��e�&��ChLp��.��+��	>��i�O�N�N�N�����{���<�x��l*l/V*����:0��C��y��A���1���+�������`���x�M9�X�#yg�8��������������(�(�(����t��
����	r�8�'�4�Z���o<E�C��x�u{����D������Sn��y���p��
�}Z���1V�RA	�;��0�/
�qvD�!�#��)j����d�\+�U_k��+�b����|�^m�/�}�s�|�H�qsYB,w$������@N@n�FnNI����x�g!�m��d���k�/�w�N�x>qX�	��u�
i��R��a���W�l&�E�	6�J���+��#	��}�D��6�t�_�����?%�}��W�(�=>m��IZ�X�6�x%�e��I�2���'�r"�_�T�m��T���N��)�S��sP��*�����sZ�cY�Y*��7�����h���k���#���97d���D�|�>hl� �{2�_���+�d���u�*S������z��A��r)�����9���2��Qg�q����V(�
����1Q�t��>�Y�� �J$E32�J��a�>���/��%��D4[X�1�#8�����\��o���V��P�nS<��@�tEi9������l�'j���v�Z\�S�:�H;�x�t��V��Y/��G2���33���������:��D�)_Fs��L�V�)g�:��K�h�+}����kH2�����CS��pV:��������O/K�w�D>���V�(�`JxN`���8���)���A�XL����z�l�/C��i%����>�$��+�)��F��6
����-x4w�]�%�O�g�Zr/�B�g�>9�'](3��?��V`��C�yK9�^�u<AF@M>���@���}�(]`X���\���`��L�hZeW34A8�������I�A��D�D�-J�w��x�����l4����o�_^����/o�!�?-��c��s-�����S�g���
p�t���������W�e�?{���(?r�g�^y���FIL!/�d)+vL�K�J�� �B����v��7-1/R���'��&Bk�'�r,��}Z�������U��h��g��}��������hx��n���	;[��<������`���n��j����n��k�h���DR4������������K���&�����a]O������k%�G���uI�$��^E�v������KwOU���DEz��tVDT\��w��n������v��(,FH,� �P��A� )K�c�����+��nn���U{�N�y��==�yN|�����?�������f.��U����1u�*Hs�C�<fq,��?�da�t���!�_��~���C�U�&r�GOE�h5���
n�F9YY�����jh�BM~8�������$�p�F��	�<�T-4+��!���K�����q��Z�$-�6|t��L/4����2��F0��,�!3_�"������c3�7��Y���-)
���Qs���r��Oy'�-�����<��F�p���g0@����W���`G�RG��"�`�F�����h�������06:��N@�����&�)�e�����xK�����WnU�;�3�� [a2v	h�s�`q��9oE*�{��(]�bt����+�9����U/P2K���U� t�:�e��R��S7����RFK����y�h����y#���b�|�b��y������A3��XD���g������=����S>6��E��,��B�����0��e������`�9�!���MbO�6��U�����hCN'���x;9�<�����5���2RXVf�>��K@�~��,$8=����2@+b`vV1�A��N�b xGd�j[���[p�p���v	8����9m�n&��M.��a0g�����F,{K�VS��VT�w8h������2[i���T���X�����`5�y�9\���7Q���a{�V���m!�E��MB6`V0�����`�bD���&��2�`}EOh����S�O�3��j^���f%L,�C�}��Q���Hc�X����������t>A�|��,� N���n�&�l)7:@�K��H��$�"�\c�^K4��|(��a�.?5�R�bk�A�k�`�	=�}�5t$���<�`[���d.�c4]��[��������Jb�
��E������� �9�����K���5�Y�P����:����`��q�p�G�
g}�=V���N����57�
T�j����0���$�Bj���p��ls�/����
�����T����m1P����n&�p�m��C�����l�
.���$g�\(���>[h�Co�����-<����}:��R�*��c�O��%\�������P0A�e��TZ�v;I��� ��G�(_hn�F�'����ay�+7����J�8LD�<cf�6�n�Pc!������ZM��]���1�y��d{���A�-�c&+L3�����������Z�����|���9$X��2��i8v���=�yi.@"�$��p��G?���D*�*V"�|���p0�S�$�3p��p�r-_"����zrq;}uz��T;xJ>�������;�����������R���@�c��WW�b��g&������_���c�`��`����~��A��D2.l�
A�P�h:��s-t	n.��:��	��q�-4!�Y|��SI�)���'b���������`z�T4M��6����=,�U��B��L���'p,[�e$���*�"���]�$�z��J���qqy+.������OD8�K��-���a����&�e���0��L�s�4K8!�4���KK$A�MGp�S'�}dG�N�#X�RA	u���2V�_"�l�^!	>��5�����1C���/������2:l\��~���m�����.��G��6Q%6&�5fat������>�'=���\���U~
}����'��n�^F�S��.	1+r��(�=0���o���|��;��3����0����m���IJ�po�� �Ry����:���/�����s��PBZ�c���L
��n��_��\Cb5X�����������I�0�D���Dj�������rd�2��><�Y��N��|tk7���Q��H�S�U�Q�S��.���
:�l��T<�t)��$UX��=,��	tm� ���;��G�RW��uh�;"�<�$�\s��8�����`o�
�Q�M*�K30X��`$���Y0���>����uX���)��a�b�Vh�g���M�o� k��hAxOx��t�z�%|�K�g�]�`G#VQ��WrW
l�����T]fg�����D� �&�c��z������w�|�ZhB��R��vy��,�d �2����im?�HY]p�d���|�_v���u��� ����w�
��k����a��h1-2��Hz�X(F}�+����^�s����~�O
^V	*msN���+Q�L�}��a���n.E���
�kl
e$Jx2�N��*�p"���Y�D������*/M��"�����������u�q4Y��C�@Fy�u��o����������M��q�
�������J]K"9�q����M��@�'����@�O"�M1��<Gp��
���������s
��������?������sv=9�����W��~wm�VJ4K+������9b��M�v���*Yn�it�{��x�ons�n�J���~l���9�%��z&���~��m<�a:�J ��<}�F�M.�I�_������)���g"X������-��J�,�����h��Mm%�{����`|&A`cGn^�=,�J{����E�������}�I�`3�����`	�����N�j��*�sC~��7`B�D	�S9�����+�����pH���-��%�Ow8������6�<�N-0�u���[��YLW:��Y\����������>:B&5fy�
����C�XF�E.
��T��EZ�^�e�T�X������.�������Hb�w	A�������,%}��!?��/!�
\���>]���Ws��Z������:,Z(�o�V4�viFUfT�#�M�}4�HYZ�N��B��l�,W�El�:��D���f�����B/���fO��uC@p{����7���/�h`M�3��	�mTHB+�����`�6`��)����H<�&�^�0���g��x���J��lx������g���`m������F<,u��Y��

�Y���~�(0I*�.br�g���>E@��<b�[��x���������4V�4�?����Ih�1���'����_��!V5VW��,�����3����]�1������1�r��|'�c��N
 �V��
t4X���N=bZA
��2���aT�>���~[p����
I����UT!�iT"�@�*jq~~�"Z���
z`�����u���I����)U@kd��i%�
��*$��d�\�tn20(����k�&����6?�Q1�1a���`�}��
��WCGp�����3K$�L%il�,#i��.��B�(.r	�`o�K�)������S������)���XD�-�`bp�j��!�r�PqE���"��wOA�4`�>�q��%��}8D���+�l������]����i.�D��,\`��e���Z�n��s�\wri�P�����t�VH�25��i��w�L\�z�IU!	w������P�[~f�7�h��1��rs=?,���}4�'?��:{�7���:���*$��E��N�
��P�7�kl�j(A��f.=�6hB
���^��Q+V<���0i����%���5�~�u��)=H
m�>����
]��7g�J��l�[�d��D�Hp��6a{���j�/�$���"���
��w[z��z���\�%�_��������
v�N��y�f������h�C�f�p�pNx���{��
s�u���w1���_@�UH��47����5�a��������k0M�m��f��vJNj�_�[h�EMX+�������c0K�B22�d�T�0��Z�5j;�P�� �a��S�[hF:�����
��I�!��m?�����g'���Lhx��Z>���41=���sd�MOM��4���1)������1��v����bu|��#d�
'(p��c�J��[��&\������J�T�S��02��,[M��R?��'3*�3L�]��0U�
�oS��X,:�#6`V��p�o���p-)���j4A4���$Xa�ss��(�%��rZ�`�z�$y�C��:�KKc�W�F��DK�i�<�MP�a����P�pR�?��O�qej��L�%j���P�CV��.�������&��K^�K	�%pH�`��L�:��+�E��b��t)��4.#k:xJ0
�E��Y�X�C
%�����j�����i��U�����c����s<�-�i+p�-�*�qZ7����H�"Q1z�<�E�>�.�����8{�Y*5���yyz�}����k�~(�L!��y������R'J���������0�G�mS0���/�4����w8�b� %�|�[�3
C�
_�=,��Z�YF��@�%��9��%��� Y�g�Q��<���&�_�Zw�2pl=����s��@E��R��~?i�#��(����`G�����}���0�y^[��#X:�`���\	�S������E*��]$� oO������fU(�s
��a"|*Pi�s�/���\(�=BI�.�a�2,�`>��<����u�i�Y����:�!�Un7c�nM�?��Y���m8A?q�W���wzV��>����	8�pr��T�2�)��%q�����������E.vwY>��t��Y3�%c��"��>���.��1�����)X�?�B������G��a"�[b�'b��="Vi����Q���S~zR��}���Ag�^�G�����`�,�|Lbu)q}��������_�|��W���Eu���k;x���/�^_�^`�j��8,`WC�0[�Xc���KL������U��:���S/��8�g�"�P_���U�	����C�)���*����K�k�� b�BV�,]��[{x��g�H9�x��
'	�z%sm��K����ons��/�L �p��Tq��N�������%��J,�K���B����b`�{����T��F���|O(��[0]a	��s,!t�R��'Q���T�y��hv��BP�l��5,~�r	\��C3���Afo�{���K,_�H�s7c�q5����
}0����/T�Zm�$�o�t���	��O�IW!	�j��X����a�� �D�g|T���G$���wX�2�c�Y:dV�.��p�Z0c���%��^�$�w���}E���C��.��2�m*~�J�����0
������FP(WX&j�#(D�R��J��8o:)�D2.K����.�����
���% 8���j��m
��������G�B�P�,���J*��P�c�3���9�`6���o�����h�L$�`=7��zE�^-4
�*�f.��4�L�a�7���NR��50��!����C5C���gs�L$�������S�E�����<�HIs�pr���`_�|&��>��X��E���v���?�|���Q�i��)���?��V��q;5����l����2��-��� �����k�@��h���q
�M�I�=<�{V�+�ON>����X<��y-\�]�VBh�LV>uO{~�i�7��`L���G�x�\ONo'�v����������W`J�sT�wo���A��������������"~Q���B�rl;������~��{��Z����*$���O��g��p������3T��U�`��g&�P��!�z����T�����n�]N�<g�8�d*�N�d���]B0]E������z�Vk�:�����6����������"�)m��Zj���b�D���>�?�`�����O��t�V����<l0j�����{N�+6�?�kr,�p�������n�6�$�pN����:�zJ��/$Y��_���7�7���������l�9���u�i���2�&�?G�(���J�m�7hF�����S!=O���vI�����^�0����|��|�3�x���=�`��BQ�����\��L�����=���p��R��m�4
���~���u'I��4�2����>����g����M�l]��"��i��Y5
N�$��<��lO��/����D�0�0_�ms\�i�-4��
S�[h��`��L�Q�nGI�����C,�M{����UW�N�]��\M��l�������������/!�j�Hj
���h�OX��,�Cc%�H�����dO���&<�}����UzQ��v{Q�ab��u�����_��?0����R�]�9��P9��h�iN�@����S(�EB�9Yb���-5
2���6!�n�a�����6����|{�p������c�_�V���3Z��r��uJ;��v{}��u.��wg������\���d#�T�hz9
[D#����y���Y�����h4���c����p����R�>���	^���`^��������i���lI��L��Dm8�b����n���Xw�����t�4�l�66��J8si}��_��j�g����x���J�Pi���������.���D�_���������}�wr����c����O�P]^O�__�?L�	��H��3����z}�W_	?�������KH����������|����\�f
%u����kL�
��P�_CYX���Tn��4!�\���Q___�]�bAn��5L�BW�����Z���3
�u~�`��6��vQ����]��x��'gw�7��a����z�z�?����2s�2��C�sTT�]%�3����������2���,�����Id��"����3N^��"J�[W�`���~	��(����Wg����m<���N��Q
��b��@]�oM���$����l~��<�9+.e������"���'�o0��K�(���\cfL
%���c�mN�L��������"�����	S�%y�������M^!G|�����ATH���J��_�=���p[.�[����M~J�w��:��l���A���\fA*����C���e�>��7���ZK/��k(����a��
g�)lJ	$��$�A�(�L�gl��Q��Z��p#��'��DS�J ���^�K�l�n4�W�'��5�,��~��3���L��/�
�p��Hyz��t���xYC��&}�|��M.^�s,[�����q�8+Vyc�����3�N�`{�:��b���f��d7m�������h5�Q��F!%�g���$�?*_��z����B�e���.��
��(]�eF8b��|��nCt�:5:�����]3����JL|_*i�m�K��������Px*��H-��������U�R��@t	�C��a�p
}�_k��'���z����:��5���2�9�\���������B\U�S:7AWU���n1[[�H������b��������^�,�l5{�������&WE/�����)��J��~�����.lI��8��e��$+���*��o��;�"x��U���F2����&�n��<����j�����/~K�?�Dj��9P]���t�BWA2��#�$��	��+������
n��L�,�����-�#0X�O	<���
]���`����6W^ �J�q�W�b ��d�-��DU�(�M���7Gz��P�P��e��o�#>iy�0�{�W���
IR'��M)�2��x<g���!��+�q���9���q\�*bd�(A���$E_�Y�����]��(~R����%����z���M��,�[���<�Cp�BO>�U<
���������*�;��,��=\�=#��eY�q5W�e�����8�+4�����6D��2"+$���^��I�+�������WC�g�p�N��������l������MN�M\���]z
6c�En�;t�8�b���vY������e|�������L��[	|�x0iK�����}�d��VL�q�����#^����rX��L8��,v�-����_�Q��RG�##���6��Wv`_�����F^��I�8�r��T:H�g�;%����+t5Jd���:����	d�����v\�c�����P}��O�	��y��6>l��p�/f�[����v�����097�b��
����O_�|r����b������L6�Vp�#^��<���DK�q���E�"U��:���b���*��:A]��,��-�����+$E$X��T���|�F������\L�������Yx���g�4F����m�6E�B������'p�B�l[]b����.:x\><nq���/��%$c�<�c��r%:�����J��P�0%w���e&US�+���?n��
}g5Q/`�<n��l�Y���_aI
v���[���,�`��[{8�K���&G�(�����F�z&�����Z�'����
�*�[0�����(�Q��t$r����p]}\��'�k�S��j�j,!_]�R�O�~m�q�����1(�����]�=np��S/�	(f>�f�5v)���*���]a��t{J�Swj�qc���P��/��bn���,~���������9����kH�]�.��v]PU�F3��-=8��������\��:y����z\��Z=I�`�ky�B[y0�{<�b'+?u��G��������+���� ���=
��^c��+c:�fI��j�q%�B�~�Bs�$a�;��Q���/&��``V����+H�������{#�/^M�7�
?��Q�_6�q3v�fl��kz�B�J���V/�BsD��I��X��V�>
����q,���B��p�V�N����
�B3�'C�d�D�\������E���� !k�q%�+y�(�Q�����L�,��U<\�(+�����,~R1B��B�B�4���4���;\�W��Th��&�������FwXL�(��TZVs	���
xY�yN��%�����E�P���hz����.�>�wz�g}�Cqo��x
�&��I=
����B�'��48�t�3�
C�	a�a�j�h�����Qc��,��q��^{9Tmv������)-�o�V��w��\��WvI16O�OS
%$��U��n���N��r�$�����AH�>��L�N�1U���_��X���������:�o���-Nt�X��q�b��E��������f8yv8�O��
[�g�(���p��
���N���X��
J���r��b����<���������`�s�$U*�&�X��x�g��<_�>�����<E	ZE�[����"���v�����<�����������~���g���j���m�����LAq���Nk���;x�?�2������s�g����6l�9q�4�u�S�F���������iD�-4��6�k(A�YLm���������h���?4�����/����!�J`�}�{H�_��M��"�]��H�>���^�0�S�J,�]CYB	p�ZhBx1'��h,���\��z���������kl�,+���.�@�}4#�#���(_�*b
e�3Ro)���"<Z��AP���[[��u����	&l�@J��S4p�)K�b�-,U��d)/l�<x^�C�"�]��)H�J�U�V*������XK� R#<���c�k��5��~�����si@B�|"K �z[x�����.�yp�B��/V�?�x���/������K!<�&�����T���Z�����*�?��������C����E��v�p�xB������0��0�J$%2#��6|�V��~3���|��$bN��!��g�T)�"?[Eh����/��)UXNZ�$�Thtx�t�����@D	��]=��q��*�/����c4uQQ�)F�b�%���*�awF�%�%\����l�����5�R�a`t��B�+N�0�����m�c�a
%<JK��[�Q����L;$�*t�T�Nm�0H�.��'�,��@�yK\|�-4��IQ�5�$X�����o�
[Nu�����O���G�R��~��^)p��s}�������&��R}������o!	��"�w:I�����%�
�37�qsI�	7�O����T������R����$T=7`V�C
�%�3p�� �?����aN�\��r�l7_H�m�;j��;�u��w��������F��&��O&�X
��v��pEy�8V�Q�u��#��A��@2|������_���ww��l:Uj�t}�E�'��<H��+T���!��g�^\�NO�;=s��L��GC����H�C�.m8��4��������A"U����rI=l��/�z�
�0�V+��=j,!?8I
������\��~=���z�4`�&�IW5���r�����
���Q�Z�j;5�����x�ifYK����vknA��:
�*��N{��P�(1�����F�0I��m9�9��x�l$�`�B�������% U%��H�Z���cgE��/�o0W�3T�
��8���1q
�3p�:�e ����j�~�i���u~q{	�T��KT�J��,�z���6C��58t��R
�B��9��l�]}n/�����EZ�?V"GZ6RU��C"\j�j�Q�X�!�.�^B m�p���C��F=�5��'��*���f]an�m��P%K`�������s�@�@�t��}���da���\5��
'��*����t��������3XK��WCG�R�o.����T��E��_�l6`��D��F%��#R������|o�9g��&7wa��5tDB�"1:��5$O�;~���nL`��]��w8~����\��`����K����]3x:�6Es��Sbf��_M~�����-"YixR�.	Y�~$e���bn��6`B�3��-�l�iW�p��E�Y�r�B��u����"���!f��p�d�P����v��Fs[�������=u;�/Z���Z	����\���s�+{���P)8�B�n�������t%��U�pB���z�z&��n������d9�u`\c�5��6s��*>3��gp_�6��,Ict�f����[-N��)��Y�[�7`�G�/���/X5���7��PP-�3�D�����k�����X�[2D�un},�oe/�q��k��������N.����w��M��HX��:�������&�d4��E�0/�C:?XKe[����m�������8�`[h��{�� ���U�����`�kY����x;��:�W�nn��� �����L�&������N���88q�'4��J�O�^ae��$����/r>5x�j���b��N�}��y;�����������q-���"5�%x_W�(�Q�)� ;��G���6�q��P��S
�����	��`�':x������u����k�U�%:��:�e�J�VH�������K
w�+�#i�W2���d��,E�6K)���V�����E2�<���.�n�/���0��+���"�^o�EwI���C#��q����Qy�]�pRd�P�KO_E�%p��~�Q����=a�����q3����2���+ptv��v0����f�x�=�0���1�f�:���QB_�q��m���"k��a
�^���rh�����m��d`F�pl����z����������B��[�0�jh�B}������B?�������?����L5�� �o���Im��������G���������K0b5(Ie����+���9�F�c���Q\���i�
���L�$��j%�v�]V�26N���j������J�`��
9���A�&*��~��WBG�R���o �J�hnw�8g��gX$g����E��P������P�~GO��3�P�4��g����Q"	���Y�4~���L�-
F��:+$�QZ�X�Z�LI���B��d��/Ze���)���	���u��3*xKY_����	G������*�!��T����������'��Q��R���`Ib9H�jxke"��l����,Q�c�XE�[=�B��l1�'�g����7�����3,�p�����5���5C�b3����M�����7�����|
'+u	�P�����������G%��#zf�=0ZhJ�������O�#��P�v���Z%���b����nV�Z���X:cm	�o�����&�22���2��k�w[�5{�R�Om�D����9��{�.a��L�JEO���d��M���
|D|�(�hs�����q�^��y&��%�R"&):/���_����$W
�_���IT��`V]�#����<%p���X7�r%E��,��PT�*��u XjX&J��������WX�v���Y��(�tZ�}��M�	F����C�q�w�����D	�otM�����P�Y�hhy
u%SY���UhR�0r�������T�������L�g!:���/��V���=0A�+0e���8�n`�mv8�gV+�i'm�1uH��W���y�
'$G���s�P��1�n��~���CBU��E�|��-Vi��L�%I��\`\c	���X��L�D?�]%�������l*�>��6���0k�yv������t�'��d�5��3�
�8�
zV�
}�}���p�k�����N3��OHy5B��9��k���:��\�J������n��m
�������X����}`���
�(����7n��<_�����A�-t��s�Y6`���j�6�6KL����OY�����B�:�L�
w	Hk��t�������%�J"����0O����k��j������'�DM�K�D|��!AO��b	�@�a�N�N2nS�/�o�1��� ����/�'�(���N�#��"��S(W�h�� ^���{�uF������y�i��wd�CC�#�+QG�%���a��%�c�/b�E�����bdm�\a�#)h)T���T�x���.�{4��HP�c�@g`4X��ax�H�No�����l�b�]�
�R���;7����zeV��j�h��et6o��R����D��~�f���K���2:e����i�5�����s4n��S�U��|{y8�s��dC��m
�:'+
&�t�$���B�k(5��U{��%��u��0����n��5��/����i|�M�)p��"V��<��8]��"�b
|�bl���7S������)=�� ���$�z��D���C_=�����t0)������^���c��Mj�h��k�}����.���FS	7�^m)��'�R%m+�5:0q��d������J G 
K�)���q�6dk���^4�L�q����/FT��sj�����j�="y��G�]j�`�:AY6V�N;42i��n�������5X��9YN[�s-���K%��&W��P[���,�B�J`��a�J�4X��2�&�&�iI��G�-<�A��
|�����%�J�����PgK��Vg�w.=�jN�
�~�v������
;�zJo��^���V
�BJ C���
��$�m�]�����<�������f�_��������C�*{��??�����h���j���
I)	��&>hq�6�(6t�s/�cr0���bJ��2�f����L{��GL������QD�
�I'�D�3�;����^����K���6�;����Tb��+�%�����_�oNo'���o�������|�=$�F���hY!9o�G�io����3p.T�5��p��p���b.���������5$V���/���L���.A_�Q����E����wo&7�l��N��(~i!}����u����y��#<_r�6�(��������@��H��	5j�`�U��_������N���<��+�b7]%�n6s&�$�S�
�_83{k��������G��'�a����
9�������.���d�\Z/5�%����������p
�Ow�kt?7`��6�|�zL�"�[�D�L��$gll��<K��Bn��{h��(#}���y�����������\�(���2�@��9*Rb8^y�������c�UPF�Un����� C�5�����Th�{�X�4R��;-��*>�P������^�����}�����]K��f�$4����/\��]��h��}/2��y���w	���(N����8�BY��X�T"�Dd���f5_�����y�����m2F�
�dP!����vr}�>�-t����������k�.�I���t��u�XG�HY�!6^�+:��A�_hs��+,�U!��;A�d��}�6�i]!��[^C���M���� �:�1l�!~�-��Wi
~��h�bi}��_�t�_'�����ay��y6?�k�)Zu�X���[�K'0X���"��v8�UR��+p#��d�������%h����x�E�l�J�G]����b��I4����&Vz�A�����<�;$�zh;��4K������Q�3L#�z�A<F2]BUHJ~b�P���p�����,+K6`�O	��j�i������MA��9�>�=�{qu�
��i�GaMU�������<��W!	��t�&`?�J��4�u^	�)R�D��7`�`�aw8�b���1?�~"��v����5\C�A3J��,E�`�r���~;����jr���568��2�������J�qz~���*���m���t�|��E��#���rW���)U����o4(�GW�0<G��j���t0��R�^�
9
��
���%��KT�����_>�����[H2#$Dp)g
e�b�l������,���_��a��r��\��H��a"�S����g�Fh�zY��>�J)VKc�eD5X���p�qN�A�?K�b��o�B�2`�A�MJm��m �������C4�F�Z�c�,�\4L�B���z����/.�����$���xoz���������u�X�T�����BS����msP�R�d�1��N�)Hn�aOg>W��Z+�@���70�������VP����2R��F�KB��:�����V<�-QS�@�/�JbM#�t�e��"f	��1�1�
A��A��T*�1���b<�����<%��1�Vzm�'|�C6��d[\a0fhO�������D���u)h�m���v��e"h���fa�B=*/CGA��gn�$�ph�e$�f:D�MK(E(\&�Hk�e`*G
%�x���2�+$#����"�)��3���@��{����b�.e�|k��mB��k�����Ko�I���}pP�/� ���[s��b,A���I���T��p������PBG*pf��3�C�1c���8���	�����);����%�>�
Ip.�!�n����Y��i���F�^�@-����3��+�3�~M��~m�m,A[�
'\�}��/��V�t���������r%��p���������\�����\��1M���&w����U��c�����������+qwN]m�yaK��bc5�<�)8�����R;���������HVG��F�W=�j���KF�����@�p),
����/P���
d���e�~&���S�������`�VqXJM�����F9eR"?:LX��M1��A'-L�>�����O��&7X�X��\>K�(�+?��������n�n��$�u�'m�~l5wY��H:%l�#P4�?F��5������~{X8'M����S����~
E���x��j����/���������q�X+vv��*8FAE9�,�����.�8�ckD
kS�>�~���y�\���D��7�["	"�x�����w	��m1�EE��$m�h)�xRA������H��p�}��aVVp~1��z	PV�H���@�b`\�"�I��\�y��5_.��`
������A_M���00��=O6"-zp����w�h�
Ix���'�X��o?:������7�����K���
_��>-4��P�����Bs|)p�LS���t���W���!$�<�X�����v"n'�\�����L0�{
ac����wW�NA�b
%^�*�G��p���I���q�`�����U0�8��>�F�6�����u��[��k�������4��v����J �9�9�o��=l�y
eE��_�x��Zw�@Z����K�����cK�x���G���1EOD*���������g�F�}��tC�� ?��'�^*$��A������@��_=���'7��"���������>9�>@�Vn�GQ%7��2��{�H��d�_��6
v���m�u"�� I���t�����I��V3��
s�o���2��?aWF��_�P��I%���
��^"����q�#�6`iN�<�c���.r��9����T�k����<J/����O�a#��u���u�#�!�����'Nz/��-�":�}*C�T��i{y�)�%�y���oE�Rp0Q~\�*���`�gA�����A����
DjD��T�=0#g����C�ZK
�IW�������z�XL�
A�� �����&P`��K�g�$�,�:���>�3X�F��y��f�����4XZ�o9�% l�m��s����_�����%p1b=wtu	X�M:\e������2��A���;��e�Ab5)���e������� L|/V
S��a�T:51`�0p{��)�mwdG!wI58�����c�b��S�,�'�p��o�w;�b�����v�����UP�P���/|��p+�]�KH�+�P�����V��z�{����/��]�����*$G-����-��F����5������zr��B�a�M���G�j�P4�v{o}��a.� umS����h�C�<$���?�K��2|���s`go,�XG|��R'�0e�EJ�p�j��q��Y�,#�e�\��~�{hF����R%�,�5��b ����$�P�HR���Q���d�����Y
��~�-<�����TXke���rQZ���R�O�U�Uf�
�z���`?Ey�%���>b�m�q���7I�>E���F2�C��h#�
��tT�T�u�-�h;�m�
��6XN�����q��c�;#�`�����[[Q�������b��`N��#@2�h����2� ������0�e�H|P]�H7R`)U�$gq�����A�Z����`f�G�b^�^����_^��A2v	�p��%Y�z��'����GP�o�JX�S��uQ���e1�`��B3����H(Y�ql��$-4� 5v��B��w8N�(@s,A�MlV<��k���"Z�@H�K	|������=�5�b����V�_���/������SH�
Ip��$��H����}C�[|���/�I�RWyw85y�4'����,�'O���+�����y�#d\K2P	��l����
��y0���ti<)m����P�O6\�.VH���y>{X�����z�I�|	��AX�d����16����~t�N;�^B���us�U�j
l����NB��p�py~�U9�p!C����o��Y��p����t�5X���N�/�-
B�8HU,bs~�<O<G�H��!lpE���n10�k0W�B2��2��WX�M�bm0����/�yA�m�$�d��b�h���_�Z�\C�h\�C���?��L}���O��?1�v
'��F!���
��,���N�0�c��
����o�������7�	I�MAX� KR4�Xc	����X�Bbc3 �"a��NX��J�.�*���
����?�����X���^��a<'ic*}��}���1U��U�P��Y�C�mC
���7X����������{����^`{�F���� ��>��p��=,GQC���$���9.�����<�,=���7�^F�e��	*���#?�O�e�`))BKp�{
���,%���C�������)3�q��C���Xc�T�e�����R�OM�Cp������.�>9H��|�%��@B�\��r����+[�@�o
���i�������G<y
�elB�%�3��{m/��%�+j����~av�����X��9*������A��y�>=��`L
�W46!8�����c�C�l*���.1��R��]��Whp���=�Ha�:��j�	�H��orJl7�4F��&��J8]Y��C[h�z���Y���Ih����p%�<"����2�C�`G��V���g!�1a�����$�����������R��B9C*�;k�P-#L�)�PKK���e��V�ay�&���@��l�b-T*|-�IR�a����	/�vk���_��7�`F���^���{�_���=$��1T&0���3@��Hg��;�����v��.�0�"�{�|�.�m��ON>��WB�b�%�J�`��A�X�b���.����;=h�A�
�&,��a�_D�F�']�A��,&�W�<�be �{n���#��OQ��H��	�Xj�87�;v��0>���K ����]R+\�6�$��W��0�z�(7�s��v����=�M�xe�*���F�h=��
�&�TPJ�[~�W���Og��G'��'������}��i�3`�?"��B4��in��:�.	��'Jo_�0Jm��� �r�K������&�$�	P�o���`b}�F�*���)����Q��s�F�����i�G�-Su�F<p�O�*���w��9�mB��J<����>;P�8J$%���������f����ti�D��T��B�.'+K�k��`	�>�dd;��������x����5
��)�	������=A��P����+��8��Z��@jl�b�S6836��x���<�������@R�P�o2qlK�%I��7�?@8�5������J�e�To*��N�2���5��5�G�
��f�����j��#5I�_�`p����C�I������(���RMYb
L�?+�P-<����q�m�f9�����)Fa_�3���G�Z���bMyb
���z,�T�*,3���/N>=��G�|�4L�=t�4��[V)u��B	/Wu�v(�T����^�w����5����0��o�B2��2��?P�\c\;�E|�2�(��)R����A3���-�������;�K�
�Ug���P1wOH�Uq��j���+b�����>v>j��i���VH��h���5���cZ}'/���"8dTCin�-��|��Z�Z���6`����!-4!��������,3���_�[�o$�fq]��`���_�|�$\I@�t[��In�a�~��7x�//Q���5���U�QQ���SN����+���)��R�D��!����r�nU������l��@RlP9>�t)�[�@�Gq��A���������������O��������w��7��C���U��/�B=b�[��*�Z���4�#���Q"^
����z��u���n����~��(]
=�������6qhj�vT�Y�2tRg}���'�m�X!	&Gl�H�����\�o&������T+�Fa8���k1����V���������sxX��\��z����\G�r40�6�T�cj��>����������+�J/b��We����ol�e,=�s�~BBN:�\8M��b8�����y����O�&$�$8��r����"t*Q	�=������[�	��������6����{&|�����?���ORa�T	����g����nt9js
V�����<`�S��ub��i��j����/�����k��y01�9�b��9�!��7wo�`a�
��g��c}t�u8DW�b�g+�q�`G���&����Uc�����������!�:x���SN*$G���8?��8;����������
��]���t��k"���]*(��/�Xh�B����xi�|0Am����ev~/�=�M�������/#�I��0�y
{|���F+k-�49Je������/� �gz�V�H�H�`����r?������_��`zn����W1��m|kpU��HyVg�\~-L(�@�0��4J��xG��o�T�@�KxC���{PCoh��6"�`�-�3o�����T�m
�:���q�\���6�f���R��"a�N�)�������4DOo���
�H��*������z��pE���=�Q�.(&������v�������C���(+cL�=�u����"���z�������0�/���]zDt���W	iVH�{�j�~�eq����������@]�j�_h�Y�0��p'�eE�X��Gt)x��-��U�o�������O�(WV�b��h?�m
J[
i��4���2�J�O�$*�
�Jn���
�������@�'{R*$'w4���p��������@B����O>�8�3����n.���%�p����c�YH0�Cc�m��m����(����W7���`]Rh:����t&dj<0M�R���F-�;��h�C�h���n�OtX�F0�����2�b���.�y{
)��u������&F�\�@�
J���pJb*�;����Eh�b��h<�A����������$���y�S����%�Pb��`����h�n\�$�S_����
�1na��Te���i�`T	�i.�f��O��d��.�>������7�g��7����CX�dZ$:���y�P�o�&����������`|>E��I�{o��u�n2i�+�N��-f��c��X�z�MA��wY(��idV���G�� ���q���;#��-�b�ox��_�r�����'�����r�V�zm����S�����U E�O��:��'s+Q�^�����^�����Xcj&Y"��i3�$�c�d������B-��h+ V��MB~���_
�
�g�XAVl��G�b=�^%�c_V+��b �E6��|����`j�>���-j���:x���$p{�
���:�d��e����K2bAq��$������5�g"����k���U��,��g����\�[��W��J���nV%>w�P�8�s��#ZQ���)�$�KDg	y��� ;vxY��m%k(��3a`�/�>�}4�x(��&���e�@�����T��mS�,����%�gj�Nl�����p�#Dr(���(���l1w8����sT�����
��u�}�)$T
e���2�Z���D�=��7�+lS-n$_���3�=���xql�b"������x�e$��������Pe>����T�;��P"9"e�L��+�G�aY�+���SQ�;�s%����r��ab��V���gvk��Q�i�����	
*����`9

��vq0xg�N�V/�����0����bu�m�g��8A{�w	��s�Tc�[M
�m��l�4��L����S�ar��~W�����������e�����@0$��@T��E������o�����}���p;���	F�D*��C���-4#��V�9��u	HY�x�1���c��
5fv	�����Q!	O�,�!6R�����;���:,��+<��-���\K� Y?����U�i!�x2��?k,�C�k�M��F���MA0^���9��#<���g���*��}�� ��r�^M��)tD��	&M�d�a�
���;=�������_/P�Q`|��p��\:�-YUMp9�(U�a�]qyNk���5�.#r���8�H�� 	���`�RNQ�rr��b�H��4��R"Z������a�U��a!�=��5�������5x��dZ��u��l(�V�7���e-4'���x��r��;��� ��\a������y�-��>V�2�_�]��U�?E�X�6��n'�\]^�^c��zT�}0��&�����;`��P*���X�$�������WX6\	$�3��rK���v:�|+�$��;1qp�.�&Vz��:xVy�Co?��\�<�f�l%7'�3����a���v�G��Nwp�0
�t�"
��;�8�q-�,���0��.O�������w��z��>6������������dD��D��#��~q����D�������q
�K@��Y�'����X6��:LT�9j(�a
e�,
&���`�LL~8���<A0���A ����b�]��x��.+��3;p��O~����� �i�'���������l8��cT�5#	�����~J�``��2����Bp�6`B(���[,Tc�_��M<	>��q���C\����)h�4XJ�n��B�wk4acu�*�1up/'n�A��]Gg���JPU�h��~�]����/���~w~���\�S�P��>\*�P}�����H�@�����#H��7V�\���a�������V��!b�q
�nA�0��|����k
�>o�ZoQ�hJ���.m�H��6����4��?������Q8"w	hI9%`�f����&�Q��\�HT��{��*��Z�Ohg��`|��]�+;���-h�$�������r�^=�W^���^8�{/�qz/�*��=g-�HzU\}=1TM�fiv,di�	���o��%�����LnnO���"��xX�2����%!��M�2hO����A'��*��J��u�h_���z*���D��6���q�������3,�`��
��-t������?�����7X�����fI6KR�����.�[O�0���A.�hF�q���\����
����������kq~q{���oQP�����T$��.��z+�X���|v8UF��[����wnd�As>�!z��4�]�Q$C����[/7p���X���Z�����"������T�x��E9?L��!{�i$�8�b)��mzp�A�%\-�
S����0#^���
IH3��1���m
��YL�?����0��~nO�=]�cV���O`O��7�v��\m<��}��_��F��wg���X��>J�^_"�j���5�jrq{~�G�����Ak���j��w����>���
�����*(�SF�3g���=��1'���~�4)�8(��1�v�s��$���l�9.Z=�U�M$\����0�B��@���2"��{��p�}�Z���z�r%�G*<KF��w:��8��,��W:��]�S��.�2������\5��i\7i�e�]�B�����i+��_�e�q��`I��M��As�c�z%�'X3��	���&)�����2�Q�{c��>B�Z���Eo�$o*�G�<^Q{Z��v�9��(�A��8oS��[�������<�K��1�/������u���d��3���_����r���hN!^:��xZ�~�����bC��d��O���
:��dI��
�!��$�pK�aXJ�\�`���3W���;����~4&�$�D���J��4�C���O^l���L���-�HrC��]���
 ���?�.GAI6Km�XGo10�an������UG���!�U<EEC��ga�����hL�m
��`��65$�����p��p������%F%���^��[:���i������?jn����,|1����_��3�
�'��Iix�A���%lR��;�jT,��4y�MrdC���GY�w���.��5��[o��D���}V����m�AI���b`�R32����S���-�C���'3�SW	��\���������QD��n����q�������os��7�{�F�Y�t�kd�?�"���#��Z��v����g�-)�������������aY%������3�L�}�:�/�SS[hN���������nS�����:bF�_����\��p�l�`4����4���q$�-e���,�-%���-��!s
��8���CE����[��I�cD8o���Hx��{�E��.gw����R����8�:�����������6��6;�������"�l������|��cQ�#�K a�� ��P��:����o�m
N�G��)�g���
�8�6� "�M��pc���9T�����K2bA��������|*����+�fhC�]��E���(R_=�J�����a��YfM���<W����G3��>�u]�0�r2+$�U���Qc��gPT-�u(fj)�����G�p�]������*2`�s�d�{l3�Bc�b[`g�}<��k�\�e`�pMd��=X�=��8����\K��z
�;x���B�?G����n�
��#X�Wyx��K������PJ���Z!iE���������_��d�G^+6Na�����f�4����+/���e��@��q�Q�% ����f-4i����	��Ui��>�D���8���Fsk����Yn��`�o
��W���D6z���X/n'��q�
�w��w�C/��D����$���aMB���K�Hs������w�a�H
i�;�G�h
�Lx��g5X����2��7�F�/�
;������{`�O�;������VN���l���Q$��K�[��������Aot�D�m�w8b>�&|Z����i���|;��+,}��I�<F�qx
�������^,S��Y`�$"P������}����0b�������m�C{����������L������D�9{(������u�r�pK8����v���a��@%`��
��q�$�n�`Y����������Q��<�*������z��j^�#�s(�����U}�Z�p�z����]������}$�
���������.	������LA>���\�����K0(���������7�K�,@�e���q��+����v!����W�ZE�����f�,�5����v"n��_��
���?����5���J !�`S��T����w8��m����a��+�����g��p��%��l#�6<�������n�F�\W=z*Bs~J(������
�[��������W��G�mo��C�T;5��WNM�7)�31T��}����A�P��:����~v�#<z��E�E��������
b�U�<�.l�S	oK������l2B�}
{X�L�r|ej0���F~`�/�$��B��Uf��+t��Y:N���	�ke���z��6'CN�I����o �
�;z�Y�%��(����H�s���2bGP�NK9��fN_����b�� �s��I���h��-�_$3�d2_Y��	���8>|��;�M*�}�U�U�{�4����F>GE������6����;h�v��%����������z!�c�fq(B����<��
�3+Xg�!�4pV�C���*}�f����3
�m��D*�Y��AT8�t�
�����{��TM���I��@���Ya�'�B��WXe�9;������3H��y�f2�9�x-�6C+�L�;��%a>i�/�:6�0[����
��W��[�aLc/p��?�����M-x������`5t��4���*��tY���*�xs}�
o�����#���7�#���BL�6��8���8C��_�/��$��V���(VI9y-V�����4�g�����`�Y!��X��n+�a!X
�QRG��e��S�w���@�$:Uv�0j*��p�VE�������Z�k����`�o��vpk���G����q�)X�e���,?/�I�1o1�*���� �
�eqz^v8N���������jl�J$�|��T�!���(Q��z�S�������a�R�� l�b�N����>����=���o��
���Y
����� 	��o����,9��hbU�	�3^b�kp3��[�J��[�����*�<���������>��bv9(b.g�,�J]����r�����|13,��MA0[|x��O����������u��Q���/�)\/q����lV��6���j�Q�3A�a�\��(`�r� `8���E�d2�X��-��C��0a��jZhJ����N�
�#,u��w8HZ���m����o����-4Q4�����o��9X��z.1c���~\�-{��*L��� ��OI�V��uL��20J3~�f���5o�B�0���@�"V�2]�c�������2l��s? ���`����������7����W1f����@��@<��
N�����[���2�����m�^!9k$��'W��X�Q���V[�-�;���&����^��q������D��RW��A��`��t:��}���r�x�@��z�	hE5��N�J���H��K�+�2��e�H����)})��)m�	F������GX�b
���?�����%`8��������^c��6��/��<�	�[��/�2��.!�j�H����@8��*�K�+� ��f�����l����D���WY*b�
�+V��	>���4X����w��6A�X�of	$8	�fS1��TjP��B�������k�Z!���z��+�zK���� �:)�e�T��p�@���X��uN��f�Y��$>?���S�}��dG�w��\����d���0,�E�BF$Q����Bt�E��2�N5���vIh���7�:��7�q�5vg�?�_���
F���Z�s�����`���
8�Y��5X�G�E^�^����_^��@�u	F(����?`v_��_�@��L.�;n&|���.>��K����py~	V�w��m�u~C���i�.�R�@�oV�Jb]m����������n����vujs�+�$m��������W������b�B�9�-�x��47IV��t�����.�o��^?p�x�f�]*�"�����#cx�9d�\�����@y�H
v�����&kl��]��m&�6;�2M��A���N\�cJ %���`��A?��+���	�&�@�/��������l����2���^w����c�B����7o������No&7`a�.�hJ��H�LVCi��pu�2J<-���u��{��](���/�L�
�gl�b�
$��0D1��%�,rfdQ�"��f�l�y��m67p�p����<��10m<!����X��������K���O���5�Q��������g|�hExII��	Z��I�U����h�	Z��*�(~��A��0���^Y��h�2����Q�GOE��9��{<�W��$��\��=���Y��?���*�����+�5�������LK�nO�����
�-s]��s���`��]RS�\0S�
Un�Av���D��m�6+0��$�/b�f��R��Ql�VB
�"Vy�zA�f�$��f5Ig�v���{Ci�{3��p��j������Uv������V�xF\a��*d�"���6/���n���S�w��p������B�
��^]_^��
��t��D>8�����YQ��p����>+���z��:tK�Ck4Z������E�x|��gD V&U����oE��(�vPs\�&�����	��&D��S��$�����w���H�jZ)\B�K�������+��B���j(+��!�l[W����7���s\#XG�0�S�}��a��Q��b��"Gw&���`d��)��'|0W��������O�C�p�*��"`�A��R��
��U!�b������=;��8�<��I������w��	���
g|�p�^
%���x
�:�,��}}����s�"���b��CT?/Pq/����{���/��cP������0��|�0!���-��vtiNN+�NS������o�����
a���
�Bs�������r^"��G
%\�����T�����+�6�K�������^s
k]��fr����P������b�_��L0�������[	�����=�5��'\����!�!��,�`�
n��7m��4��@�����`S^ONo'������i���0~�����
x��x�+���a9�*�@R��o����2�}m���/�������������^����O-4�H�I�>�R�w8+�cm�
����"l3+$!��>pB��,-H���]�Y,cL��� ����tK��� ����)�+_����{��0
�3�����#JN�����-�OfQ��OQ�B-��Z]���
���|�3��c2I�[��������&�����6m=?R�Q��5����>���u���tH�.�i�JO���@IwYHk�V�e/��C4b+�����������x7�B��'��6��$�� ��:I��r���uWc��/����C����^���)'~V�2`�6[Ltr��zF[B��A��^YjG.�����V.�c��|��������s(��D��l�� �M�L�����wc1��!��% \�r�"�A����u���d�d��,�]=
���$�5����B2_��t�9/z'��#���w��&3���|E*,���A��_���K���j.� -&�A�����e5l��5�I"�<������'"�xN{[�R���}�a5��r�z��c�iPM'L�����*r�qh�]v������h�v%�u'�i+�;}�a#���s>��3qw��������Z������}�*$ms�7��wI�a�n�
J�����[h��c�������3�C�Jb������@%���
���^���l��`	J�C�MrI96����SkBM'���������on�/���
���e��x�^���\�]���{�U�}4/��C�K�j���&y��W5���O|�X/8C�X�P�D`$��&��}��l������,��v50'!NA�l�����H��k��b�TCYB��*tlQ� �}0���l�Q��]
T_|�LS�J�;���~�d$�v6� �Ac��&(Fu�tL1�����f	U��g�mr�}E�:��{Zh����2���>kn:���u��L�,�qF����G+�K����A���a������N�"��_k0�,!���������p�R��9����[��r���PF�w����RQ�W2~�sF��b-<+����\������'Ca�s�V�a!�eRE�o�(���]��E��KH6��-RS�a&S�0���T�+(��#��7����H��&����`q���jI���?e�/A��:T�$�����.�O��x��{�i�eq��v	8�J�S���6���dH�%,���p��3T-���"5����Pt�����m�U�c;����x�/����R��-d�p��g�F��Lk[��unh���%-�P�M�ZpZ&��zI~����tyF����.���B�+�,�m!�����=?���)��/���&<C��L�p��L�R�,�4���PA���Jk(�pla�*�/����?:����f���S��@�l����;4,j�)���T�=��U`��=�y��Zd�����.���������V��>8���'�"�~n��
S$[�o72����z�����!j�4�x��M�;F��`���r��dK���M���H���rK��&���Cd�b$�q^�ZT��O��"8f�����Q���MP����4({J�`@���04i�c��v(hB�{�%`\SY���G���������S��za���7��Mb��8�������%a���_D����2���q��(��@���ax����>��
u-T�bI��w�gww�����_c��[���]P��������o�V��E����	���%���������������9}=�����'�`��g�85�x�&������Kd����c�a:vI����Wg����w�kH��CY��%O5���7`0e��&l�#�����K�Ht�8����J)�M3tV	�P^�*L�xg��	���	�������o��H,���E��^@r�P�z�K�������c�5�t�kV�q{lW2A����L��_9�q�h��bJiqb��!r�E��M]��%����]����H`�Z��]����i���Qr,�d_�#��9����N�����bRE��"8�T���xb`O�wG[�������3H��I���Up&O	fl�����?V����`	����B5���%��I`q{�D���%`��<u�D���#�����)KR�&���mS0|����IbN���7�O�M@�:J��E��E��N������S�r��(��S�%�BW^m��S���'��q}�����Y��N<by�<�Fu2M�{)���/�L>��W�^�'!8Yh�������;<qc���J ����._���w8���P����:}s����t��J�6�g�l�P���J���������m�+�Nq��`��5(
t���a�g�uB'���%��{Q�S���_����{�F��WO*s�soS0��!+$���*����*U	$�G�.�����{��M��J�gE 0%�s�$\�����2x���jl�b=��;8N���1�OL�y����N���R�@�v��84�c�]��\�&��rd���\
v�p�f��C��.����M/L?�>E���p�S�)3]��E�.w�0(�����]������fy�*���s�a�\��A0o���4�J����L������X�b�Ck�Q��tB��Ap�t
IE��H����XC�H&��:�k��J�8t8|]FJ���9V���	un��}V�pB��Z�����^�2l�*�(D������a��Vb�O�A��[�	x�0%#	,�+��)8'��f���6�����9S�5�B3��"����
�_��o!�,�`~d�q0�������zuz��������U���6�\|Y	���aa|��{���My�� �����\y�r��y;2j��1����3%��J�5P6p���~Rn��ycg�lDkcjc���<��"������L|?])���L8uCD���O������0���(�x��D��J,���-*�:�u|�%a%I��m7`��.�V�p�6A�\�����\5��p���"���YX���)�*^��H))�&iG3fI&� �N�U������J;�8G�u�D$YTt�N�\������6?%����L��o���i�v�W�u����PF���+���������!��mZ����a��iH�oV�4�c��|�-���������@�U���R�%9�����S��m���e�P���/�t��������)�����+4���_����-pq�0?V�$l_���] >;�lS0�����#�
����i�gh��K�p��"A�i�e���>V=>�����<�1�'Y;�����^��O�k���W`zJ��_�e�
Da��C��x�x&�|&0�)�PG��8������n�,[�5���@�&.Rx'+4Q4���a$i�������;����F~Y�$X
%��c�m��#����W�>;�]F��/��#������csW�:�C�IUA���b����hv3��nrq��mC������`F�8�\��_b�WZhVC7w8����~�M1R!mG�$R^K�*��a��g�k��L_�|����H����(X	��V������vuv$�r��P*�Y30O0�o�����m�5:5����W��������O�>{u���O~���>������>�����=OF��W-��2I��8����^��wz;�N!�)h�k�\�#J<#@7���YTt"����Z+!����H����B��L�S���
����F��&�%�J����U�z}��~�2&x�k�7&�=��y/�Q�mg�\������
�����>�#��+���r��[hJ-J�����H\}�Pi��Jy���\�U[hF�Y�W*�����n?i-�L�-N�2;q,\�,��K�>���R���Xv����;��_��
����u��Um��2�Q����2�I���J5<��
gY�3�(X,b�@�j�_�����w.�o�t�
:�����&�5l�2�.�a7Im��|nb���,A9/[�;���$S4ZL��	��$)�P4�n�e���'�`�:U��SL�� <i
?,!����?��
��^om`�.�m�c��O'p�I
e��N��m
��Q�t�Y�0�DZ�Qk�d��$8b/��9K���@0�B�Dsl1��8�����/^C2�PFH�@�_�}�O���3q}	~�]J������
��ro�
q�b�X����U%�8��z��`��.rz��7`�`���\�C�P�9������,���K��7�}O����%��d�T~0�����%>uI�:7�S�zOK�t�r
���jZ,�����KS��q�w���7��cd�`�l6A`m=�wt��a�xV�����=M��_��4����a]x+Z��H�vb�Z�����J����|��Ex�=cv8(��g+�����/�������kH������
q����[���
�X+��)|������U����,��$���Fk���7�>(��o�%�_��E+�����h�c����_e��L���:�����f����������������������M��.��qmq00l N�#h��T�h��L(%��.(ed����*�����N�MmJ��T>
�&2��J���zs>�D����J��	l��z�[����\�4�BOb6X�X���3r�L �<���ff�-���
��b��Iu0y2��*fy]d"����aG��XI�	�x�i$��aYO
�����u��4)�M`��>��i<L?�=ob-c
��^�+�6��a��t��:�����44��!�?\�c��K`�T�D�p�����VC	�0��3+�l;�������c����Jp(G�$ �����^�3�wI���m1�I������������8��
�_�;|��m����(Z�������
���c����e�9����B(o��-�#�j�anF��\�%<WC�6�y��5*��E�A�����"�J>�U�A�g)]��`)�<��D<����A�6
��r~zE-f�y@�����������z�vIF�*9@�����o
�f�v��I�j�.	#���p��@��GqfS�v`�NG���_	���+QC	��o�p�q�����0�MO�aO���`������3��mS��B����*o��=�w%p�[:���*���6�Q������O��3�m����������s
����S-�Y[��,(�����]-
fO4�oj���hg�mQ�x5��x�����@��!m�����z0�Q�G�yf����oB�u]�����R�������������V�_�^��H�m�_&��m�|8���9�u+/4��p��%�mY�`��^�|�<.p�����t�`.�����`����3���Z0�8������%�����W9M�J�`�A��7q�+u8���\ #��>���.'fb�f�*��U����d�.k���L�~Rm8��I&�X%p����jwJ����|\�����(W���,��~�6A��S�}��d�g�5��$�
fY�����{L���O�Q���~�%l���������U�����6��d���}!��?+���C@�9�����2��>�[����Dj�L<
	�K2
��4�������c���a#���+�:��u:��CE�p�p��wJ���B�C�Za~���)������i�����:]��_���?���m��>����<�W��e��p����<��B6#v�
r��L�����J�V��>��V�B��ty�Z�n�I*�VL[Gs�"�b"�h�����O~�W!�����hh��c�26�"������9�v��phO����`	gk1��8����c`�\)��M�'#�����[`��`	VB��S8'�=�4�P��tXJ�z���������]��]���m�!����&�'b
�(&W�h���i�E���Qd71)O��e�XMa�"�V3�U��y���$��@�Y��x��uo�{s(�.��*{&|�T��T�~��e04����_x���!�i����kH�
��|����}���������9y+����`d����{K���a\�>��b�8�-)P�6`����x�
��������������G���g`���'\nYjV��g���e+���!!d��
i�q���	[����qE�24���@�OH8��(p�����J
���nS�/������B\L~���H��`���X�����7l,M,�EE���s��~��|�f6�N|b}�v^��
�'1����B	M�j����+U�n��S��r�9�����M�:xBej7��oY����(��3l�j���X�����:Q�����%�u(����6D�2^E�X|K(�k\��C�E����)�%����p-a����/��=uf���
'��O���=�%�p�e�$��:��~X���<>�!AK�[��ah��������@�!-e�P"���w���_�4�����R���V���m�}�k�`B]
e�&���J�DQ1��^!G|����,���`n�_��������P5�%6P���/�_��E��4�+l#�)�K
.)�p��k�*$-��%����gD�S��)��-�������b��A��O���-�
��Xo�|���|/?6�[��-��E�R�����	�������w��'��B|}wqv{~y��G�0�����=t�[h�>������
�&�����1�g�@��F2�!�HZo�8�X� ���6���Y[�Q�F0'��Z
�_��H��)^����������,��@������_�8�e��d�����a���\����W��	Y!Iw������~�g�`��$
4��W"	�l����^�-F��������O����I i��G�`^ws����<�������
<��xn"�e�TH�H�p{`
@�E�{�"��J�����<������2�Z,6��3������Xr[�0��JF������Ua���K��6�m�����
ilS�p#
�[��Q��:;��.�H�z�����9�1��'x��R����J��[�knZ`u�?Iz�E���y*Bm�z\�������+�"�a��z����L���H��(P	�_��N�����,���5H�X��j��P���J�W�5����R�BE"���������Y	�ti�G]��������$��A�k0��C,��r���-4I4G������e��-}���{m��7v`���^��%�UP�P*gi.F"=��u� ��z�TToXwa�E*�KA�'��}%���CM��d&�������Uat$S����?uiJ�����j�6M����b_�G�rj����5���������H�
I����Bkv-rte=���V
A�nR�g��@(�3���C_a�6|$�b��K$*Lt������{�`f[���O�.�As�7'�M������C7'y�����d��}	$��}�;�;,S��������g���G���<j�^���<������cm�u?�[Z�G�|�n��������2����7�s����Xsk/��oN0�.��Wt�J����R/�B����Xf�"W&Sr��J��Zx�������\������"�NO�f�^[x��.	_P1�X |?�������Z�U!����u�(�<d+l_�������������O���y2���Lk%��9�M�J=���!v�����_�����N��|j(a�t5����p�I��1l���
/�-S�Q8gX�Ev/�������q�.��;��wf�(W�*b���m�A��[�`Ff�d8>�w�k�a��:?�8�b�}����mT��GL�6���3���O
,S+��p����`����m.�������6\q��`m�p�I���0�U��4�i�����"��g�_������	�����/V���kf�[>��>�m
��5�:���5X���x����������J��dm����?`����:p�(��+;���U�F���+`"����-���p�����s��2�S/
� KR�B�b��f[�%Q�)���^����(|�ky=�:��n�b�.��1tw�h���0������D��ON>�c���MP��C�yf�.X�06Xtp&	&bz�p��D�)o�V�E������22#����W-Q��B�/��YE�V�I�)�Y|����!�)��I������d���4�D�?�&�b-����Z��K�_��F�J�
{l��D��/���������5RA)���D��,7�����H�<}�`�~?�2�h	����50����/���4�oM�N�\�T9>q��	��~�H<Ex'Z������5��u	�R�+PWo�����$���/L��*�)��'����m��T�ze�hM(��`l�&�{k�����m��h�+�M��h���`z	$�(���)6�Hr���6hF��@���*(����||�Zh�}*.��g�FjOx
T
V!I"	/�Y� YC���2�D$�����Gg���(���4��d�0������z#I�<��kh>�$]����
4����Q�^E��Q���`�T���x��.m�m�6���a��FOo��j�B;Ow	8���.i���$m���a�V�RU��E���0g�l������n~�>E
{O�)(�+vtk4�
�����.��e�9~
�]�S�`�oS0\����\_4�s��'|��d<��,�w�G�	����)x�����oBx�^��������N
�F�����9j��4:Lt��JQ&W����-��G���`��!�7�+�/pc]����������.m]]����
V���E�"b�c������2�&@=G�����i���mS�W��5���X���f���G5��N�v$#u�*��=n{Xq����5��G0O��\�U';<��#<t�`	QK��G�j������
IH�>�u�)���f��br[8�D�un{�Ee����	���gS��L��[k�]8�h~���m�9�a�(���ae(xY�0��VS�`�V��D��T�����9�M����~bbL�b�&�:��=�8���
��6��6xqK��/��9o��M�!�J !E`
�!%��f:��S��@ru�������tmx��=��=[�X5���L�
=�!AzS�
M;h����@�efoQ��6c���~k@?{��p���@R�?�����#�`G�� B��{Y)�����R�}O��t�86�����?�"u���.�ibGy�����TO��������<��'�K,�*��
[��V�u����0
�W��B�/�2I
x���kY�}+$�nC�Z�F[z��vH<�y��3�k(C�����:��d7�����A��b ��_�����>��~�RX��D$���FX�ss�Fx*N�����;����>Y	�G�2g���s�Z
�_�/���0�koe���OvI�I��0��{�@$��
��DB�Es/1�
��v�<��X��`)Zn'h�`M���)\��`)U�c,������6T'a��TPF��T�N�o�#L�k��(�����#�B����'��&���d�:��:@���Pn�!��C�e�s�H�oV>bW��Bh�,f���k�X��3�G=��rF&����A�^}{(��5�����^�����p�is��M�(L\#�Ag���|}+����Fl�������5$V�$��q��2,����}1]�e����W60�]�m<�eZN�������~O�
J(w��:�<�D�P��Y�G	u��b���)I�JxK���2r�x~��|0�� x�����s���;��|s���;Q���%�P*�����B2R����)�	���N���f
���4�����W�����Z��;���'x��������[~�lu��;��<���u8�1_S��oxp���r�4=�����d��"����������y$�����mSp��$���X�P��=G'��>�E��"�h�n���*�
V�]�(�`q	d(������-4EQ���j&n�������,�i�*�J6X�X���
��h��U!GR�3�V�\�R���2����.��5�����Hpde�YK/�0OdN8e�'����R:�x��j������p�m�G�V�
��%#�K@��L��������XB���R�V����.��w��kj�����[sVi_a>�6��3�u��PY����{�&���y�5��]9���q-4aS�6��yb����b�3��C��������rm<���8���4�UH�v�4@w��1��D�'R�����&(����
I�����3V����&[ZoSp��$}���t��Zz^�m1ED�g]�Co���,�`���9h��V1�O&��U��L7`����f]J$��6���
�����^�\Q�^P:��B�s���������4Ie9�eZ�	Xb�����({|�[)����0Ja8d\v3��������j-�cn���zvH\V��P)_a
)����w����g?[E���`b%T�_��`��}��S�*D,m(0��U	Z���;W4XB�O.�LVHNI�g��^
t{�p��,R1�m��#8�G��K6��M��������`v@��q��,3������$\!}L���`yd�d��Ll�\����Y�I�A��yH��
�N�	r�HD��~@���|r�>���V��l��������cB�@�fzfIp��~"���.����m{y{X�m���y�<��26���^:[�Kn���5�����\��v!J���S����������2���"�!$�����3%��nSP�bW��c7Z�%h-�P�1�p�T�}�9��/����Wo&��k1����3X�q���911V���0b7Jjr=�Q�`A	������Y�Y�IXM��YO������	Y"2��X�H�$|���)�H���gk���-T��x��_���FH�L5t4Rn������:���[����d���UX����Kg��~�x�O�G;�D�G�BE�b�5����>\8Zb9��s���Lp ���1B��_�����In`�M�n�/�1!;�Py���P����|J|u���wI(��L(�V�-������%��M��n0g�A�xK�a�1�E`<���^��T������2�%`�Q���/���1�F��������~%l��z\,b�p�4������������K@����t
K,��Q�[��;��������)4��
��2���[p�*�H�0���s�n�4����mS�/��EN�fr��nk�	��A�N�b�n�qZ�����N<xn0�d�i������E5��H����q������]F����-��������>����G�A�w�[+�.�_����vR&=bm:'�M����V���!~��/}1?D����J�����a�(+Vtw
�"�|�m8M��Q��$�'��|
	V!f�OK����������I�T��s���q������E����a8���h��V�w	�����v%pL�y`���Rf#=2B'K4�Q�1xf5�!�T��^��t�-�����Ag+��(#/[/�N;�+d�Q�v�'�����&�p�{m~�y��S��6!14�����9�$����l���z2��X6�M���__^C�8BQ������ ��(�!$T�$�OX�d�]�������J�GBn���X�6aK#,����/�k{H �*$������l��BB�&z����k(�[�}��Vm���v_�sxo����"�q������{! g����	���������?�[m�����M��+!�W�$��O����6����I�C�|��	�Mj���L�m�	�X������vi�+�$r^������
��KKD*^��z)��B
N�y�&���x�,A/�K)5_��l�%�n�W�����y��D���P�:�S7,#']�����i�=d�)�fa���<=w������s��M�	���/�G[���1�c���8�����Z)�m��\�j�X%p��
gu������EE��]�h[�6��R��Y�l��U�V
�E��)�$��)���7�L�������@&�5%::p�����6D���y#���&�]�����gV+�Z
%�-�O�[X��{~q������������7��}4�������L�(j����n����3t�5}�Bsb,��H�V\*�	AM*��8���x�9��e}�*��3��,t�w�W.� �=�.O���`S�LY'���K@��D�C��b�u�E,��A����AL��\�|�0��
��b���O/n���7������7���a�����~uz��w?MJP15�����d,�@�~�L0e|�:��!0�Bz�6�;��������yw%���Q�5��`�g��{m�
��X��~9������\�W��0�e���=2`���T���oV����L������,N4|?4hBT~����=_C����RnS����@�sk����Ya)be���cJ�>�_B�{�����I�����a�-���Q,|���#���wp�r�M�)�>j�G�lJ�#wt/������!����K��P��"��NU[���V�:?}}qys{~�%��p�WR���x��g���q��4cc
�U(������,�w���d���X��Y6��
��)�j���D~�	��
�����E��k`��0��������G�a)d�|wv�S	�ks��@F��3a�_L>�����_�/N>9�
$X�$��U#D��xB�
#��}(T1��d������mB�� hI+*��c�YA����6����#I\xk��hem3�����^`iI�.����h�E�K��9ib��~����p�p�L�.b�L��v�:#h)��&rm���������,��7���lB�i�;�p^��^+_��P�,r�1_��\��)ttA���q~�bUP���T{�J]k���pj7�D���z�����K���4��n`����T�k����)���%��??0��B�B���BF���5�E(������]������L�J����8��B�^��p;L1{��%d��S�[hF�gan�
9
�|�$t(���K@�T��JF�$9�xS�wI��>�"�#M��Qt���%K(A�9&��#�HQS��2|�2NM���"
wK����� ����S8j�����e7m;�^_On��o�n�8��nr��}��2�<����d����[��%�z�v
o���;y&�5�k�9�Y8 KZ�$�������y��`7p���$����6�����I����Q�<]��5���9��TE��C�C�������x�B�/��12qZ(��p<�e ��;�
*<ac���ono>��(��}~���t�����:xB@D��R�u�`�r?�e��/�D��9b�d���O��+��l'H?B���L�����T�����m�LLq(���J��2��]����PEy������R�r��%V�a���(
��J.T����0�;��U�=,/>_�e����H�XG����Q����y�����tl�*$mSo�B ���F)b]��.8�L��C�p0�@�YQBq_g��RC)&�pgj�*�[������X��;�@������~`&�l�-Z�f ���K<A<':I���%<Mm������U�!��u�����^��\/�����k�qvy�G<��B�/�:��~0+o���o�nO�z���� �.I{u���j,A�������A���
��h5�I&�J��5��K�pAm	fhe��������;�v)o����@V��Wsi���:�Zj�U���
�u_����Ta97r����=<�Ze�L��Q���v`�����zqV�����B	��Z�]��4�?����5:�s����(Z��}Gk0GE
m�� �p���lS_������tIw�� �v�����.��X"9i��1��9�L
��M$�*$����W�Gi�#h~5@��=�����B_��C�.����6`�����+�j����$����K4=8oxE�����b�b$5��Ex M�mK����l5U��I`��F�����
9���*��7����	���M��d��(������ZM�J��-5X�Xx��.G�8�A�����]��cX��nW� u��Uk��/�#���P�����1��d�-�U��`�6��Z!G�n��]E`��Fm����YE2�	��j�_8c�O�#����_	dx����s�����w�3�38WA_|��J��J���t����V����J,���KV!	W'�FhHi�3�>(0����t:t�7��#�B����y@���#�(T\��5��6�JN7���Y��]�U3����
����n��N��Ak(3��v��ry�GS�J�(RG����i�a�$��V5t�[K
���P^kV+��o���nQp**���:�MAR� � �-l9��'oAc��g�zx5z?��3�Pq��6`�{����;�J%����p��6C0��EQ�g1��B���1�*$���F'v�
 a�20�^GP�<�):
��R���!���h-�d��F��+&�+������T��E��09����������h[�Qwb�fq����5s�k&�>��D���~nQ�w�=/�9�[��b����������t�������������Z���uj����=ZG���awE�b��nZh�����u!`��=������5O���]�Q�EN/�i�ng��:����PV����S'�����"�a�x���G�l(�$o$\�C�����'���h�dn��&��{y�p�����j�I���L����*�Q')XB���,�v,��$gA���������YG����^;QV_c}P:#�>dn��&2��@x�Gyf�Z=
K�`�����5i���RW��cSm����6�a��`J��wo �
A��7o�w�o��9m8A7+z���4l����$������4��5���`	1���Nm��FP��4��9���2o��,,+��g8e�P�m�,���V�pty��s��0�����P�}�,�8O
�.���68�#��_*U�v���v�w8gjx�:�P+P->Z����6�!��Q�)S���
4��q�9�@c��Q5,w��legp�
)�>�H��`'�����l��%�G��-��u�C%�^����|}}z���r$q8�I#�P����xsw5����\C���T��+v4!�������K,����_����#�K@h_p=9���%�%a�a��L
����)	g��&�p��G�������
vTW��XW#����yf�2E'i.B""=���On��{-��'����%M��.��2�5����vE����
��AZ9q�����)��
������k�k��P�A=awd��`�+{�(���:��+�Q�)stB��Qs��5��H��)~)w�#���tvu����l�-XK�����0[�����(����_<{M'OI��A�����B��c�f
��2L���w�������ZC)B�2qD���*�$@�@2�����`	p�i,�����@��R��R��o���������4������Xa�B�$(3N����f��`zy�$���/�"0%������St��-�|~�j��K,�"�_���o�����W��a��Y)qw�*�x�|��-T����t.��s�)�k(��\E��i/E��
��T�����-?�!�d���@d���$�_p$��Y+��8m8o�����7c����l�	�"�{6�����E{�{����O?��*��|��d��m�#X�h1��[4����a����|�F|L���g�+&>����K�Rp�O�P�$�`�6�a���J�y\0M0���07��v�$���w�aOU
��Bb�������,�*R�%%�� ��K���&z��V���!x�����[*?�l���*\�E�|(l��9����.�Cy���6�xF��P.���[�8��:�
��r��+J�����T�}*7`��7W�����,���;1W�_i��]c�
�P4��c^e���&��G�*������A�c
�{u��SWlk��wO�6�}�[���P�CN��C��2�|����\!�A��3V���3��8�F���$�[�("��\)��w��=H����6g+b4��n�pU�H�~QU/���B��fc�A���h����q��#J�t�L�B��y����x(�����fn�9n���
�eH�4���@2�����k��	��^�T��m��W(��_�Q[Q�t1��i)5�pe�t)b�eq����-
J���|T�L,?��"�JJ���w���~;���0u��+c�Q6�Q(�7��I�1�/�o>����@������C|�>�S_���2��x�r
���1-�
�_�<1��VH�;d��KX)l�F����CL������a��p�!��G��c`�*�KpG���o5��}�u3Z]A�	S��2[���%�)��X���5�u1���uh�a$w�K��x��80���E�^���zr{w}q~����_����l����f��#>}e�]��w��WxJ�PM�8�04d��G�v���C��m�pB1��
�X����[VH���p�~L�'&���-B)o��Z��X)���yi��fmSP��.�������m.���Wo�^�m<�B�.�����)��!!lp2u�4i�	����,�/��)�%�_P����P� ���D�=� W
���N��G�b^���������'>)�HL9x�k�V[O�Y�o�G��/��
�,z�e%��-���Ni���q���i�D~������� ����h�,`!�)���o�+�BR��p�gi�	�(��{�Y8�����^��j�`	�[;�����GR������7�#q�%;�S�v��
K�-��+�s);�he����>�����\�>����I�
�f>���Y��6�������pJ���c�tX���Y�g��_��c�8�h�e����P�{�G��i������S��k�� �B�w`������z�F��)F�����sx*,k�`��X�IZ��A�'����g�l����Bs����5[E��U��x6����x�e��HJN�'S�P���G�{8���z4��0����T�0_U=jp6�?�+��=�$����K�L�����KH�P��R���`)�U&���U�GuS]O����a��KHAUDVe�����v����%�h��W��� �������vz{�������+l)wY����O �
#=?�%��h���s��x���/o����/���s�����uC�~���wg��� �4�@3�3VI<,A-��,��
���XJH�/"�@�H����Q<e���V:
������.�6|n�J	��p;��9��r�vI��E<A����~#�\Q�h�D��x&Y�|Yl�b��T5t4k�����������������m/����.�J��U��n�6��Or���O�~�e����k��MA� ��
��k/�[*�>2��c�WNM�wM�g��o.m;?(�?��j���������b������G����d�tYm�������G�B�-��X���.%�w�.���^��j��7������X�di��-��/���lr���B��.X��E�(NU���
�����k���6�pf�%S	��"q�H���Y�>M{��J���t����_������_��)9���[�i�b�6��F��P�Z���u��Tj��L�/���p��#sp����9����z4��8��+��,��L%��������1T�,{����TD�jm�:�Jx��'�u��?��������� �����k�OH��<����G�����5���3U,�P�k���%��2�
Z�]�q
�! �Yj����f$�����m��z������|{w���1o�p����Z������`��v�����@	���J�����)��/��'�~�����N�M�]�
�q;�@%`��
����t1�s�s�3w@�����X����7*�I���������lC�[~Wtms�/����kH�
I�vI�>E���6|D��x
4S>$��"���[��E�b�$,p�~���_f?�~���q0d����� �1j(�v��j%1�������/n/]��K<)��`��j�^$Ja�eO�b�9�-4M]�������/%��,����J�^�L��E��S��]��^/��[h�{P�co�Mp;�X(	f�m��P�F �X��Q*�7ep���E�W:,{��U�=O����8�&*M����(	�tL�:�4�������/������B�J4���J�(�}-��U�Q������i]��|}}z�e
WH�����P�GCs)4m\|
-�I,��C���\�*L��K���#���pZ�^���%�
��RC����v�n7�����6VI�7���a/�6�����^�h���������2����,������mv:������8���pN�=�uVH�H��@�;
&�'�������H&���i�9�M�����������:�S��kw9�'�	�d��Q�+�X��B2S:{��d%tH�����@�M5`RB����A�.t�S���a���Z�Kb�O3���`FS��,�j�
�'�(��>~B?���\�f��b�����[<OFhS��6�����5=���u{�z������'��*���$T`m�6��J����R�-B���u��=��������ZL~8���0��1�aH�`
�|���HX'�\�O6i��f��K�~x��CW�[8!����]ebNW����Z����^_��qz���BSVKa)�������Se�b%�KH�-Z��cl�)W�[VO���z�:.s��J[h^#���S�{������m���j������������WC	
��X��YY�?4%&+�\�?L���`8S�lzb�9������PwW�N��5��R`�o��g",�QY['�;�|����p�s�:����x��W��O����������L^O0w��d���O��_>����W�c%*�k�0�������P�QRC7T�f#�.#�7�k0�PAY�'%��<����
��5�8���pE�.[4��,�A�C������"%U������d�s�,��\��P*$!;N�6���Q.f:���3L��!�[��"�M�0X���.�R�7I�dt�[�,0�6`BhQ���b�_ �V;R��m�?U��?���J�������\�^��Xh�?��g��_+�Ja������-��;�9[@����hF�Fp0Kd�t��]��5�R�E�I��h?Y���~��}`����>�Y���b�W#����(H��+�!�u�}4a�hG^j,A��Q��&�����������*v	��>���2.X��@���� 	��%��=��-���������G�|�"�������6����o
^u�B3��[�Zr�������~����4�f��B�&�w!�cOM�b}�L�L�O�	����e�_�W9��D�����:x�x��W�m���18��2:�y&L��:�m��!?h><�7}Ox��Q\�J�`~�H�"���p����X5��ZQ�=\{��G`��M��"�
�o���/�?-��WHF���S�NI=F&�����F�T����8�kL�m
�*��E�n83�K0������������:��4I%v�,'K�1w��#$��.�4�e|���)���!!}"�?�Yu-8��u����_AU���v�I:x�uR��D������v���3���b�p=�
�����YS���
��
��pN���j�G�
9p]��w��X��C_a�.]V��`��j�
;����pJ�����t�6�Q�Hzj
+��h�����|���Z*�����z7F%
M*���,k�Gq��.O������S��@N��9RT�j�<�U�?.Y���	"�b=s�3�M1�|�F�tS]9������/o��0E�����/�R&X���2��Hp�Gp���K��c,,A�e��;���X���=&+���{JR�qn��X�3���0�B`�����A�Zz�:��4��<6+Qxh�Z����GGXQ�+#T��<zR'�Wb=��?K6r����r~b�@	$������n��"7�cxpy��h�2��i~j�t�EX�������J�F��Xs�WH�]��)4X�JIL�j��.�
.��-�hW�5������y�&�V����Q�P�����*�W���M���N����$Y��Qc:��]�0�r�U�p��/
����:��d��9�����I���r��/�\�2�_�	���Q�s<j�~��I	[=��+��W�J8����_X�_���<�L8����xM�Z)
t�7��TQ|�����lt��-����*��m�C�{��q����<�����[-K�7Q����X��4�Gw��?��I>Se�A�����J�#��o������K�X
m�Ww�b�-��+�����;��m��21�����X*�@��B���2J ��4�L���y���6��n�����i"�����E�sB�p\p_�J����
I)h� 8��-
���#>���[��g��#|?c��B9Y���J���>b��_�'1�Da��W[!	���������%�_���ud�=kM���k����s�
^2��e}�
4cH5:��t�,D�x*$�:�)?�`qT	e	�~�-4E4���
�+��3��i��j�`��>����@�I����:4��k,7��8W�l'N�W:7���K�����aa�C0)���2�C��9���)_������ �>�\����%0�p����*e�H�
�A��yh�%c.�m�������]_�_��l�_|
�[�lj�����;@Xy�p.'������v"���8�s�w8�y�f+�'q=�PFl��$*��	�	���`����
rk�G�����4���	:���gE�D�U��'`�,a�q�B���L��q�Ja��!�6��T����pZ@��]"B%��}��6���2�0�M�����3���/����?��~IW!	[�c8Zv�����1b���"����������YK�F5���P�����6[h��nOF$AohM�0����D	������-`�UH�{�O����!�L���Z{�#]&��|�F$&KD��M�_���������C8$z��n�
'�>St#��
�pj���p��r�`wM������5�
�6|$��U��K���!c���gx��{��X��[AR1 !�� �G`��6E�B��z���K�*�f�/r�s'm�����.���������#�!`\��S�
�n4!M�i��s����r���&�A�w���\��,a;��Ol�;3���X��LY�X����m�4���|�&��;�,��C�D=�U�6����mtpv�$��N�X�z�z9?O��K��.X��2��+]l���T�"����}�w8�����H�%��"�`j���`�&gw����`Y���xq�~s�f��
�5���
�5��~&��,v<i��[#q>�9���`��5t�Y"�&�N[�l�6|4W����AvY���� �@3�d2_%z����������������_R^�;������S��a�jO3��.������B��F\K�(6����
�'�X��v�%y���*�
����/M�a��4�Rl�<&x]�.��?�K�����R�[pJO��������hF����M3�������?���%���x��z�6��6��
?�h���*^];�*��g��0���Cm�
xd��G{})��C���T��;x�*����&`+�������u����R�Fm�G���WmpW�����A���C/��jT�6��HT�7!(�6���a"�t31�{?�aa���\�6j	��j��WBv��W��Iy�0�>�:��r������q*�]�0'\��_�*� �Z��E�|��$U	��c�+�Dl�&X����%����a1��2���rEG�<%�Z�8!u������?��z�T��hR���e��O>���xD�U���W�6��Vo�O������X�q
�_��:��%�_�\�����tK��GO)�[K,�\Ci�}�5����#,Y�e�?�J;��62`����PwW�N�z�Jp3� �K8|��3�TiQ��[@Q���k+[���P�(}��b7���&��j���H�%Q��O�$�;
X��@�4�o%�<z�:�Qb�pG�������}�5����%1V\�`)�gd����i���Z�n��j�`�``\r�������
�`�I����
����6���w}���yo�]Rc���DS����2.�B�l�!��$n�`��CK�$�]����z.�,���K��~�3L���	���v���M�����C9��m���`���JaJ���O�>�H:g�Ry�hXo��_]_^�W�7���_���K����.���U�@F�KP(p��6��6����]��(�(������m����.�k�G��U�:qu}y6yu�����D#.;AX�\���d��/�����<�x,���/����
���`��1�� =!�qFH�j����@�K�w�k��ur�ek��n�-H��t�R��Re��S��,��X����.�����^��4�klw[h���::��)FZ�+��O=	�}����oZd��]}|he�'@��r�?�!����X����6h�
%n&��M.�\����Y,b���O�QHN�M6�j`��7	wI
��-�S�����/������>��h��]$�@����R'��qN���������"!�*�Akt�����`��>�����u�{�et����C�:��u�y��������fD��!,TX�
�D�T�w8F���`<PC���:��o�:�a����9*�M�bJ��T�ym1D\�<%��j.�������~D	��J��N��2��a\�J+��XF[x��������������������?������?���A��!�Z�$��e��s;7pVN�CJ?C��7��,��o0ol��p��O/0�B������#��V"������|��'�P
��<4I������S��q01vI��G�f(�����S0��2�b��e��<�,c�p�a��zp���&L|w>�����������7w�`�!]��d	Z��`	��^�@�"5����3�#��m�;��|X�X	�C�LH`)B,F�`�WNh*$�{��Hc�E��T�-����D�R+$!S�@�L�e��.��I��.���x~�.	��?Q������z��9R���=��CC���7��|�
{�'�8�E���<!+U�i&�����a�H6�6���=�mx��]}�+���A�Cv	���kH,����) 
���w�{��98��T��k�b |���!�����n��-����������.i�DU�MG�8�@���0r��^�e[����T������''_@r��n����z3��@s��w�B�:�������+'��PVT�!�E�e�z%�./nn�O��|�m
�A(}�*��/X�'����I�*u�0$�{�^���Hq=w
z����le3l��`�
as���bx��4������{�� 9�9�4{f�S��C����@y���B2�V����{�wHFs����x��������{X��frvw}~��������5$�.	��l��V��q�o�����p�4�!�D^�1��i�I��O���T�����_��?����������?�?��_���2���}t�l
I�b��+��G
%������v�����V.�%�P�sw.ns={BZh��b�:�;�
��W;x�xN����������lw��m8����o�J����cL��~u��R)Hx�r���U��j�%�C�f���!\���;������j��*]��	(t��`$�d�;��s������o�"�g�O[��D7��Q�f������P9����Q�
��X!G�zv������W!��r5`B�v�Y���7��X��C�"�3�c+]v�����5������D��x��o���Y.p��]L�N�u	�j��@{�m�������E��zL��gc���,�b�)?�vI(VX�WG�f����rA��PBX!�Q�4`w��I�P�H��>>8Ob�f�D��9&����!8����#�����?�h��]F��'��*���$T��;��W�,�y-���5��4*��a����Js��PG/��f�Vy���-�6;���0qW�yQG)`�8�ZA9Y/v�6v���(4��J5O�[�!h�I��gD�O�dDf��������\J ���7��L.���L���w�%`8�]dm��<o����F_��./�Cam�8SQ��cd\o
��M�}��Wv�#�����������2�g�����D���Yq��w�E�WpX�M����Q�"��p���R�O;��a�_���
�E7XVz�CR�����x(&�.	'9\;����G�w=��3I6KR��WA�UI��U�.��}������~�,!����<E!\���@%a�_��h�$Y�e(
�_c��D��a[���T	�g������6Z��EsJZbf+�����	��WhB�%�����-�n�	��:�#nS����z���Y���
��������Z�-��-S�$�$��\�
NH�7�\��%�7`BJ���2k�Y'$�[�e ��&^�Cek(���,�/o�[�����@�]����[�P~�����1����u��%`��T��{����x��;zuzs�=����|�&��f_|y�?�]�����N�N���������3�yy��,{�����%��\n=�h����h����X_~��CZhb�!v,�M�(����<WE��@O�V�����fK���E�_h/�/q����;�"y�:��',�x�P�������������)�i1�R��Ree�/�P%t4w}��^��v��?p�x�e4+������1�����->O��o��y���u	h'R���:x���Y�����&v(�t�c�����/������K!b�U�L�"4�meh�/��vy�G�ZN�E~�����U�������P��V�^�w~]mS�TH��>��>�7��a���^\�����h���>LM��`��������g��%��o�����r}@�t�S,���@�Rx�RE�T���V�o��3&L,=P��O����m�`j}m�
���R���%ZL�FSxN�'3rZ��p~d
'������lv���_|�_���\*R����D��LR�!������@�����;�S�zr+^�������=?��d��`�$I��$&� Yf��*�b��'?���f�y%����_��%�p�2��m��r��\�������;�|���]F�����#%��
�*��9�\���� �j(�`q�v~]s�k���(��,LE��d�]�������CH�HX�������������|�>dNEz�i�:5`VJ	��H����������2��{��E%���I��?���)���
�'������3��d�J".�L��������
b����������')bes��/d(T��D�.������������Z��	���I��=f�����,�g���v8F�l�q��������l����G�bN�	��<�&u��o��usnes�-�-�H��<�-�"��P^S�q��/^GsY,�*�gp~q;����S�[h�.8�'���z���
Khr1�>�\�N�O/������/������{�n�_�j� ��pJ���8L��Rj�S]d���`3�g�B�z%�'q�~�$m�)�_�| ��@6�7���	�zl"7l��7�$_��p��X*g>2���0��&PCiqI��v��1�����L�_�*$b?b�=�Q���m��f��aVXB�����`��<g�����������#5��m���:�� �Z���j�����������~{��g_��'�����+��[_�5f��4)!��v���3x�.I����|}z��V|w�����@x-�&�@B�����S�G=<���w����0�C���_���H����o�O���/����� �J A�@+�Y����UC	�B�A��B�D������P�����V�j}��f{��`}�:i�h_�.����Z��f`f?:�x��w�S�.frWX�V�*N�F9-4A�����V����#���N�K@�K[�g��f<|���Ct��!
6:�_�KZ)j�(����>�=}��:\� ���B���6�W�bf�c��3�/J���/�+������~���N��:5�`P-U���h]���{�.��o�Wq&�q��������e&�Hi	��&��x���.v[lQp]Y-nsU���mv*ulj����%C���z��'��XOxd0����/��'����bX�H�*��h+��D�X"z_��_��6��P�C��g�F�A(�[m�6��",���g���j%��>�S�#��UW����8�mf�Nc��9�[�k�x��!<�%�\hO|��&^_a1�]�/U����6����..k�m����2�7�Z
l���e��Db�b���
�XCU�<��7�"����J����z+$���s����N/��?�y8�B��j�b��
������g��!�
��%�\;��������g�������d��]�z+3���w���6�����
�To�p����l:Q��d�?4�}��[��������gm�_%kv����!�������WW��S{�m
����*���#��M�m�?O�Y>�{X�5����cH����������Jy���e��T����_�>��ms�>���|��|:���c�6A���
��+$cKW3�i,��
gd�K0��G�������6��?[spP��3�
6��&wq����<�:� ���T ��J�3�k��oh����������`Iam8��
�?I�}|�;L��p������c��I6} I������j������5G��g��_��s�r��U����������1�P���4n�g�gf4"��<"�@�F.�t���B���B�������%.�{��Y���@�n������#3"3Q��x<��
�q9��z<��p��\js��i��������=n�`F@����}y���������@�(u�	�>���K��`�B��{������N�,v��#����r�h{t|���J����:����]~{�Y�+� �����	��L$o�$�6��3������f���;��	x��B1`����#u ���aj[����p���o�^�=h�Y0�N]�l0t�a�*$����\�������6�hc���&�)�6�?:>����'��qtr�!�&"%�f�29������nq����:�97x>�{��Yn�����'��%g�xi������Y,&�-�s�B����8�,�fO���&`$N��9+,AV����%�!������3���������p{�0��g��=�������10��X:q'�U� �R9!#_c�I
e�BSh�'��b�HV��n�Ye�x~iO(��������
!E2����H{����u/��<z���>	Rp�	��"Tb�c�����Cm�pB��r�����c����E���e6��E0+�>���Y��l�NS����Vn����>ck���&k
��K-<��|�r����P�ha� ���4j����8y��8Ho#~�h�ik��v�zMe�}�
��������HU
�^������������� aM8)��zam���K���J%p(����Y������a~k
�5� l����k(c��Q"]:�4�v�0xp~z&�x}�ytzI�` ���`�o	d��E�}�5t�/�o��%�v
	����Q#vh)���/�\����T	��O_`�
 �������{a��5��M8M����^�g{��Q6m4A��M
�H��Y�c����0��{7�N03�p����bMq��n|��;�Rp����_)����(_�|G�2��3�Ip���7���N�l�9�`]�x�^r�� ,n�c�eXa�N��g�o��"O�|���(L�C����d���UcY����	��3B���R������3>����-VXF��I�q���x����=��A��l�z��L{��
���"@j�h&b����������k~[$'A�9h�	'D�*4r�%T�m`��{�����;7Y��*4����I��
��T���|�l029d�px��i��	Y�}/�Y�7W��jM�b�2��:J ���b��"�����N8�����x&<�$�m�X����'S��k�	v��Bi@���l��K��y	d��A�O�����b\8�bUPN1>\�O4��2��8���=��%�aS2����{iG'����������"'N��;v��c��w,����[���)�4�`F�2���o�	�6���1�^/#�����
p����~���{�zY+��
4Q����M����8�����3��h^�S�c��u��)(��?�F�H�X&�R�s�T?�;*t�G2��wv�L�1��T�:�db+,t���d��������MH[���gY�������=�`t9*.��Qpt�R����
�|�q�����W���H9Tl���'���)�:�	.�����~
8%�9?����Jx�G/����Dr�}e��o+�`d��x\����D���r�e�o���@�J '=��%<]+S�;;��1JB��\���
9I��B�R��{���rK��QC�����#,ww�%$�i�x����FAd���P��V��2]��,���1~B�	H�*k��hF�g�C���=�BOQy���E���>�JH������}8���j{:K���O�?�T�P�����z)j�"�Q�D���8|N�09�D�"�@g�<���a�a�v
e�q8�6)��>��F(�A���>��d.����l:�/����A1�}��-s{.��iq��8�������"t��&��Y��`��
;�-���j�������UJ��<����wru/�����������c��zt~4:��BBkp����I�0f�������yA�4i�����	�����������~�m�A��s��:��h�A5��`#X4��Y�&�)z�lR����T-�����`�m#���i�X�%H�z6C_��<��QN�I���lJ(#[uf����V���*���E�������*$��:�(�-s�A�K�R�C�o���f����!|��H��P!��j�(��2mpp:���\����hBiT��Z��F6(�������^*��� �����c
&��nr���X��H�1��6	!WF�L��Or
ft�{*\�c[���vn��R������ �l[$�#J���C��A3��=	(I���+,���:�U�"xP��v,������������~��pty(�N����	����� ����^>>��6����"�_�y6)���h�����pp	e�Tz��~^���d���E�,���`J�7�����v/���@������5x�G�W&��A1�6�pB�n����qW��xo��l�Ei��+�0�����|���P��}�-��N��
���5u����fBF��-|�fx������I�X_�e`��
K0Vs��k�Zx���.���Wp�V�j���S�NOm����g����{�� �l�����5�Rx���o0(*�"_/Q;3�D�Jb�x'�{o5����
��/��+���q������=���~�����h�Z-�y���c��4��J�������-_
��[�$H��&C%p��b���t���-�{?��������p1�6�C1sO�$��6mZ1�tS����G������r|y�������3,�b���e:�&6*���I�Y�i�u�G�������X{XV��d�kc���l+�`��.�4�|l_.�)7����j��YT,A������x~�O�	�A&|����������=�����+V�`����X��@"ULw�\��W��B�|]�����j������#���2�t��e�� ^�����
9�E���E�2����c�w0u/�����ay����m���6�z��%8���R�����������{���9���$�8h_��	aj�����
;�O��>�������~p��UM�
����>��C��L��.0�5��-b�X�lE��W��j�V��/.��ak0#�����Cp�y������9VG�� �!���)e�
���5�s'�z�m�)Q�5����&�\~W��|��`�@��%�A������.K�)���E�(�`�}�-<��Ph��
I2�����	@��j��[=������;�~6��}��b��W����PK�p
��
M���k���g����+EW��!3c�a��^��eG�(Ie��m7k4����X�d:�L|�M������0�Z_��oJh��"������1Up��&����������8����
�@������h�&*��m��A(x�`X�2�
�p+�`p����W������;�WX�,P���o�(�����AA>G��l&� �����=�4U��%�`_Y	d��HX��� O�� m{Q������^�6�2br+|�~1��H��!�|�ZWIm���i�@��b�u~W���-|����D��6�����U�x9�jl0�7T#E��El�P���a^CY��S��0[���-�k�)s��T�@?�
��
��C8-�����W��o��*|��l�e�$�|�����J(��2,��v/�����rI����<�X��_B	���\��z
4��
^��&��(p�I��+9;���U����p�$��#,8��R�.�e����Wil�\-0P��P��(_,?��i���B�*� �Ws��6� >���N��)�@6q���hN�15z!���6�@���227��K����M�"�����v�����*�LR����Z����������s��8���K�e�a�Y��6	(��G�6��.*B�p��������q��	���M�x�3#}���,Y�!�@|��_�
9�|4Ol�t!�P/��y	��A��Z�����2����?�����o��I�YIE<�Tj/�pu�&��
_�)����4������Ce#Y����U�_h&o���
������i����k���d��	@WO���/N��^���~�k��t��U��>����WV���]�����GY
m���So���o�b�
K����p��9�u}�oI��"����&@Jm�KbO�U_�h���l^����I�^�n�����k�<�\���&T�eEn�/$�Hg��v���b�61�M�H�Ne�g`��
��rK7)(W��0'hmmRq��co.�/�������O���N�����lf���h���R�a7{���^���g{�A+����#��t�nP����Tfa*tG^6)U*��_�..��J�| �_�������@x����m��`��a�88���@I�9}���X\�rV���������������K�?=����R����������<����������#�$H�[�=�@�����-<�������A|�nl�h�k��l0���]��Y��z�m!��L����7�,�LqL�4�-��nk�s��wa���UQL���&����n�)?�%�I8u�,.�(��R���������������r���&��}3r*$���r%�T�����*���X���j,%:r��m���F������/sA_�>��<:=�nR0�]	q���=�}&n����-�����Cu�6�$���Zt�V��l����.��}�m�23*�_�|;�{�l�P,���uP�F��-XJ5>�`��{���\.����M��
��m0t/q���^ 1O}�+���9m�&��}��3����c��.����r1��[!)�����:�-9Q`��Hp���h��`~�����D������������q�V~<+�P�����}4ut�g ��>���i������%��r���w��v.�D���;X���w����/�(����Q�p�M����U:'�v�%:���
��:���xlT�����M
��)���CO���|��3�����a~��@k
j0a;�O���VF\Ks�Z�;X���k����-��^��X#�jyhN4�f�@
~x-<��������������Oc["���
;�^Qe�v<k��gK^�����{Y�I{�*������������Y�������
�D���w���SG�-N��I���+4�'"��H����	'��#u��x�����*c�����LF�=��'��}�GX����d��c	:�hB��
5���<�I�K�n��'x�`������`��>��Y!��&�����U<t�]H���C����-��=�m��>;��n���;�/�qQ	����5,��::�@+j(��K��v��^���<�[O�1?H�4�WXF?�k	QI�������@3B�w\�8��l��T��(��T������@�G�3�����IDX��:�����d�VLd���\s�**d�v�_�	k����
O&����v3�SIb���A��\�,�YA_�
Mw��� ���gT�����I!��t4�W��8yD�8��if��!���@����wQ1��(���2M8cEc�L�����:���k(���t��l�9�)Qb���?f�A����{�!e�����:�,��5����5����ji�`���(��w�������/�Gz�o��U�����\(!���0�������?�QW��%]�!��(W����:�����
K�r��v����2f����Y������.���r��L�Vg�J�Y�����8����?��8F�����e�P:C�78(�g��q��5�jl��
E���My�����n���S�le/\�+r(�<�0,zQ�DY#|��$�-X���Ay��*�����B,���3WN�,��TLp7���rk��g��n��i�z������2Qv�.���nE�����m�����Jx���B<�u��,17�48g
a_�}�j(�l�F�w,�H���[���Ls�~g����g����-Uh���W	��$q�����:���|�H�w�gN:�IX$��
kHZ,�7O^+�%������$b�J����7�����ui��B��}�/^���>��;����
zM���O�KHc}�).����%�}��$�����	�w'����E���������3������tY!�U��a^'k��B	A��*?0�mo��3��t�	v�\�	Qt>�w����b"Q~��f�u;��|�^6T��'����\�{�	\��X�a�k0�%g����THB��b���G���: 4���~���F��D�+:�����$����Ko
g�����M��C8U3�V	dU$:����F�k�!��<�����i�}�M8#���0�X
�<R���Le�	��6���+��/g��+P<}����`at���T��0%��~v0�z�&HR��t�@�`�D��	�Q��22�J��LD�Sa��gQ�V�6�,E�9�mvn�������GP|���T�4+�w��{K7)������VYUS�R�{�e��s�e�
�av�b0���
�yx��c:;<����+H�
�q���U�_���sC����a�+?@�"k0C��2�4���J@�N$Q�����f>|>���o����
4a���MC^da�M���A� 5@j(AT~�(."E0&n��{��/�!i%�A���A�=z� ��N������*�g����.��Tm�v,�P|���������A���GsHC���&��"UH�.H�D�M+_aYh�j�)[���{_���'����g���}�H��A���w\�ot,��
M8���m���l�
9��~Y1����I��M�Dsy��lq.:���8A�u�$h��5x ���LZvd�4"���E��n�E`W���6��������3q������<'jf���]<�v��Y�u3������8+7v�D�+E������$���F3�~'*�k+(�D#�j�K #/3B�j(�������5	�2H�"��h��-�,���q#1x�o0���'`���]G���p��%V�\i_�S�����VX�������a<Q���>������4��	�t�H���{Q�G��F��X��M0�{�!�G^��
�
	i��m�c ��Q�8p	dlRt/��2��<0��t��������<���������	�*,�CY��W^�$Yj��v12MU�+_���,��EC8���]�_~5�N�6��U�!��D�~}q�+p�N���`t9z�j�	qT����(�M��O{����#�eq�1�e���Z�5�`x�	��&m���keB�"\a� �8y��43.�p�����%��2���&�nm�ki\��xJ^������f��,���O���1�z�B���z; �Y����0Q5�����!x�n��m�,=��hSt/�J)������$�������0�Agr�t�Zs0rY�$EC�5�pV�`!�-<���H�b��'
x�6���:sD�f�T[��q0��1����+Vw[�#���3��f��`�����TmTLE���*8�]�M\:R���
E��L���M�]���
U�R)��[a������C��@���F�Yi+l���N.�/���NO������}����������9��q��H��IB��Y��q@i1�:=�����{�E��8T��q����C8�R�x������{� M��s��:o;�g-|���k�	������o����^����K������������{�Qn�jsU���&H�N�/������4�l��a8��~�F]���*���U�a0��|5�����<�M��]z9s"����5�QP�=��
�z:J��wN��&�^hA�����Z���B�D�j�����2�2 �E��,�K�r����K�<BU7'ig+��:�D�2��x}�ytz����� �$��D�G��>;�c,Q�����m��Y�e+�w�t���������_�O���b7�������.�,����N���Z;�P��H5_�;fU���'nq�.=���6'QI�&��pZ����,��d���|���S.���v��8P����������W!U������k&X��fg�HN���n5���*�M�\���������YCH�URe���7�,��Z��.��` �a������-<�C�-&��]��a��-��%��l�w�
n
&��~�fno�t/��1��G�R5��T�i�:���"U�!4�A���Pr4W�)P!	kY�s�~R/����w��������$�zP�rK<2���\�5�)N�(�&a���B��9����i��t����j��K-���ldg���d+����4��UH�$�_���K�6)�"�m`������Y~�z�?�6�CI�\I���Yg)n��E����|DW���m���'��
�A���E�1JF��_�5f������EVM�P�g��i*d���c��03-6Hqi���6���$H�k�S�`������������������B�Pou�I[��:r:Y�pZ��c���������N:k
��$�z
 k�V��Ix*���h�z%X4�2"��C�����/�ed�+d�X�j��P�����!X�j���H����-�o��� ��f!�ks	d����\�)4k0��	�Z��W+U�uL��	[�	mjl3�t.�o���I|5�i�*����9�6>:�����2��;4����<D����Y_
t��z7L��
�
��X!FZ
�9E�E�M<B��2;��o�9�Y��X�G���r[�����"�O(��2�!�l +�H��`]?�1mrt/���������T����>���sVl��������K �@�6�bgU�20��t���=�RW����]4���lV���6��}�����m�5������e��p�
�4��J�5��~c9�[
4'a����=�&|`����A�������{0���<kd�(�����A��[.��[�,Il��` �%�1O2�'jD"�E$�p�`!l4�<&1�f���"�^���VF����4�eF6�.��$�I�,��<��D����a��0���:P`g�&��R
�?��o0PB	� ���&A���F����0�#"Q�4��������e���}i,���d��%�A��/(?�t6u%�7����g�e����/��UHF.����2+,��:<���3�*(�/]����+�,��q7�6s
�mq����l��}kp���z)|-��7������(h,��I�#��|�5��p������N�%�����J��j���&E�"g����1��A��0���s`5�^Qcj'���-��?��+��-<A^0shx�@S�.�hHh�%u�`���j����!�7h>�oH�����,��w��y.�Kf����)sL�����W�I�e������]��#ld�eJU�{�4��0E'c����f�dc������\v@VH�5��2��6a�?{���G�#�4��O	���8�2���k7�+Z:�K.)�>.[x��i/�7��L��%���#�Fd�C���F���;���~������Dn�v�q�����T��S
��=M8�W��~[��p��p^fx����n.�_6)�� �Y��q)w������VXJ�����n���������G,H�"�J)�s����VL8�w��>�;�;�|"��H����w�2bp�kN3��Mj�"�i�M8#~��)���V��r�hb{8z�u�)y�iy*9m�Cu���{�=����N����ws���e�E�li_�S�`�B���pci{Ej/�������C:�;�g����v>;�NE�������i~w��w�"������:W�l��'lR��_~��Z&���w/l+����v���~u������7�W�����i������S��r :*m�^\��)����m�*F`_�J9�f*V�������`��@%Sd��}�o��.�-<!�)ou��$�E{��Z69L������h�B��k01x�W"K���n
<�������w�+�V�A��G����e.�r�������c\�bX�"�V���&QG/�^b]�J�����;��
{�*�@��}|�3;�+
��b�����;w0��y�1f�@�up�zrqy>::��'������<��$����������S�kN��!����"��q�/�y�mBY�bt��u��t�������c�E�8���,�m���������[���x1���#���z?�]����EG�&T���[xFn�B��sH��` t|�">X��
�H���8��
��?:����w�s����X�4O&�m��������u��oq�����O?}�����>}������O^�v������?~�����2������i��b�c�q�A{=fFg`py��{�O?�O����}�����/�~���O~-C?���4��
��
�����G_F���������<������4��o���Uz��7_�}v�x�|��GA���W��{���)�]�X�v/���HWh�N�����F�mq�v��@����e�i�t/��O>}���O�~���=���g������O?�����H����~Sp�)��,?�L���	�n�)���Pc8��=����f�`1@����;|����S-�^�Z�OlADV'����_c)����r���v��#������c{�`] ������������U\�����-���{��O�^�>��'N^CZ�8hF���������0JwxAjs��\�%N���d
�4hZ��_�����vru/{�c)����\���
a��&
�~f
4'CNM�3�j��a�O��J���y�#�������
Ll+��Nh�&���a������%��h��^��O�x����?����g��?~�����&�~.,�o?N��7C	�q5�������8�N������i���wy>:��_�b�ZxJ���v�0�& ����E��?����x�<Gu��������s����2��+����B�,�zl�Xhn�z)�+���T=vh	�@3�{pjS	|���{��Ww�"���2^t/�M�S5|�������8�#pG>���7_����_^`V�
<������+>�n��QE�����:`
C��,+���*����<���G�y)]V��=�xV6zA��
���3�m#��^�M(@A5�#j��5�#jZ`�����!�a��4��h�K�>�L�iUk0%����`������>|\4�(zV��&����A_�Xe�����#�hi�c�2������D.$�?	��i�	����.W�
���P�F��-���<|hJ;B��K,�N:VF��)���x���x<���	u�x�<y�6�;��(|����t�8xx�I�"����?��f�A�����.���8��-|��~szt"�Q-k0�?�2��&�!oR0���@�J���B/QW�N���
m{�����7���j[�c�=��������s������@����r2�L~Q�'T�	w�Xk4���D�Y��ga�
�K�'s=Z� ����N���(���D:8u�������9L.h��{[�����Fh���v�����c�[�.�K�����r?B��EQ[m����Z��f��� �@��r���W���K����:w/kX�I���9�^&�k���1��:����,���[?��\a	G���B����V�\�����/N���.�5�&K�34*��0���Q^f{�k��0�;�o��R�~��~�z�	���{�J �$���(5:����g$p�p�������]����DI����L�T�-���&�,/5vw*�����O������TC	I,:_��^Ro�>5�%J\)lR@N�l��N�]�����v����������0L�7@����>�^:�{)*HtX�9,��mq�D����������I�Q�,�Ce;Xn���o�RR��B�,�d���-��l/������{��� 
`t�}��s�aoY	�D��v�h�x��a�u����P=}��������������T�h��&�Y�������:H�a��L�)���#���B2{[����&�d?�Yh'��\��;��n0����H������s����9Z���8A���m��=�����A(��r�������39EI���W�s,���'�;s�w�hg����#���A�h��e\�	��!�#v��F����~{��k}���������o/�y9>��?�}����������_^^&o��I4��B�����huO?������������$5:8n��{�������83�:�m'}�R����+����w��E��A�
tpWH������b%��@^(`�fV���Mz)�����T�j�4���B�"��Ta�����0�a�_]�P��r�Df��Y$��9�M8K�1���7z�2�	�^���\��G�& d+��6X����z0$*�+4;|���]�A����L�-�v����rZ*k�D:�[������G��	��=�\M�u�"��*7�:�������J���������-9_u�K��Ig�P�0o`	� T%���9_�=k��3���
����T�����B�b�3�����Fh�q���M���
��WC�y!��6����7c$�����n=��O���K���E,C����`��|a���������svY9����J��H�Sw���+�Y�Uv�cr=+*����>f�k��UCl���$~������C�p��
K���<�M�������RW!�A��r�+����-F`d��l�i��y�9���tf����XMa�H��^<^�5V��ktqx).��:rz�
��``8���MT!qkR�,���>'�X9��ElP��qOn��`�}5�{Q�A��9����]�:�O��b��l���t{��G�&o%��1h2��M%~���
"�S�o�p/�����
PM��j�I��O=�W*�P���5x������J�e�����j�n0�����T{�#��,[x��j>�r�k(ET�k��I%
� ;����b1��+k0�����I6�*�nlP�(
�N�8�k��4;��i���.�$��<�CK^�\.)l��	�����o�]��P7�QI����5�v���g����8��J]�U>+,G�i�{sE�'�$+���������G�>k0O���,d��;���"\'�Zu;��)*������w����xY`�����o����&�+�f��	i��Z�"^��9�wP������������b9S��&@�����f*VQ�`���!+
�[%��]nR�D:�{�a��j�t��
K��W�wU&=����>�$U����-�";X������$B�O���bs������H�I�b�����Mn�	i��/��?,ap&|�N�-jP���4�eF}.�1�|.��~DJ���Hsk{��)���~����2���z'�gq��{s��?B��+���p��;@|<���n�'�I7����k��[	�~���%M��J���k�{�Jb�d=?]�����o0Y-��|��ui�i���3l�U	|0�dc��,~~w�S.e�i6�����t���WHB��J��\%�\`7�M
�H��JA��"_/'�[��U-�y�6N5x���>���_��[,��'�s�F�rO�������x}�ytz�b��bctL��5h
����b��L�z�����'���3�����d�-�6	�4�'�����-��
�O'���/�|t^�*$��Z1�k�VA�u����^Er1�n�� S�`z�,t��ugs��
|��V�����h�3#z��{���c�E��`��"��X��6)	1�
}�z�h�CN�3y�����.C�k4Q�(�������g*�0����������������������W������������}�����������~�W�����`�{���V����������?~�w��������N|�?�����������������������n>�~e�&J�����K
(�!�%����6I��{�{]�	>��B��Z��H�C�K��}�O���?��YX�b>��sl�.���Z���M��`>�&�]+�#�����5;Y���D��L��C%#���M��E]\�7<H��hZ���J�l�"[���R
&���`NY/���~��[���yvP��8N��5O�e����w�KU��L�Y�Y]���`NX5���������g�	����|>z9����&Z����l�9]7)�����������@d��cu
ft��Q�|��Nb����E��(q��`�}._� R�{f���c*c�%pnV���Ib+,����@t
��_Cz~M��&n��[��+�mxa���x��?�[���=;5{������<�f�be�2N�}{�T�Ar%�����w��\�%��z����m�Q��8Ih'�EB�&Y�V2�������������D����
O��I��f�$��0h#�a,�H���IB����Hx�46���B{W���/�2�Q����d7�� �3�?�`w���3������BO�S�����!�����\��fJlqt/������P!��t�������D��������>x����K~��	�?�����ZaW���V
`���^�@Ow�$Hze��e���3R=�[15t�@JK���!S�P��� <Y���q���{*N�����O�WoE@���m����z�g`��5����v
:1j��.q�]4��}�Lp5�t/���l����<�L�M�.�A����4�$q���"���wo���$�p���4�i�����*��7_|xP��~x��tVL��0.�k�&���#��=�l�������>zr�������������?y�gbl�������D�n�+5���a��6!��3<�<�-	��"C}i2l�2���tZ�5�Pnb�RWe�R�EQ(������ {��?��#�&��
	OEhHl)aOU����6����a&*]*�R��AX�=�N��k�}j?2y*O�w��	�;X��*DEa{y� ��$�
A}dY�E� 	����iX8{��s�d!go��r�%���@����G/O�o�_�����w0��\��`&@
%��,n�(�3e��,��mM<-���y�&G�2�(��S�p��6,���+� nZ�mXs�.���PGX��
I�X��|A�_W�A����0O��b�z(I�3m�t�Eh�D`"r�$��X`:����=$���b���M�mR^c������d�Z��(/������U����M
��&#����~�zx���D���+,�cH��/���J2��b�;6((�L[z��1o���E���������w~~�](�Yh������������c�_�pBZ���_^1��jo�)>+4!�RE�����`Jzj������<��fYO�����'.FY�'��I���|[��}O���J�4�I�u6�������{�Y�(R=S�ttlq��1����`~������i�����qN	�XZ�o�m�
�[%����lX�G���Ei����O�%���Sv1Q��F7�5~p�o�=	�5��m���P��c]�K_Lns�&�
8#O��6"�/��6#x�	��2A���+k0!�#��;�/����>�Y�{�������sHQ
�wO����%n�������%�(O����4=m��&��i�)n���A�f������
e����A��D�v�
��v����k���a��27}nb�������V9�?*�7�]��/���Y�0._	�of�Y�S��pu5���{3��8�����b���8Q3���m�;yHQq<��CKo��@z����4�]Vn��[x�\�����`t9�d�P�(��[C	%�6S�ZzY�Km��G������X���S���|'�?e����Z=�T�+��D���5�g���A|}�}"�0���Dz�~�.Q3���$�
���Y��k�������yO�_cY��pm�b%���OI���}�	��xs�gc��g.7���;�f���A�@��1*��VE7�,�6�{oa��o���_:��m�6�r�06����.G�VP���I�z_M�1����3���������n0t/qjpR�$|��!{���f/[��LE�S�n�3m0v%_�>��8B����_,����QN0��rN�E�����6� nE��x���ZR���mB�/���_0��E�,�H8=���T�{�
p-nE�:T�N��e_I&C���h�������]4�;E1���*�d:wQ�w�d��6���XH�f'c���/��s��@]+���)z����u��X���Cv�G��g��#u$�B����.�����������zc�g`��-��e�m(?�����67$[������T��L�{�:�>��z�+Y�e}����;_�3�&#�Wb�x<sN�e�f6�
�����Y��pW�m"B����p����@\�XyA~��OF#=4��l������[��+��j��l0^�0���}5��r�1*J�xii���z:B0-��o$=�r���|o�f	zz���^��X������2��<0��t���v���C]M��i�������A��\���uf�TE-\�r7�Z4���Q�	��/G����\����o�N^b'�.V�^�&���J��.���Z[b���L\~��i�A��{i�FyY��X$o����C��c{2Hp��&��������4�k��5%+�-�5������]��U����{�S��{v_�$���&���MX�������%EY��Rk�:���&"?�3���y�I��z�x����.���$�N���M��b��T8s
��k�W�A�`�����G�{�E��1��Q���l�:��E�� �>?�a��S����J�7���d{�f����vjf�6�L��N^c�Y%�Q4���j�]���s���8Ea7���P�/���j0�x����T
��]�	�7KE^�l������	ye1c
�WA	[GY�T��F�b�&���!��M��jVXF�<�V�������^�����?�MM}��t���'�� �n�|�l�dp��GH	�S�kz0����^���y��k�S!	�&���Yw&89��8=>�� �$c�������g��hMBr����k0���AS�6k�c�l��~����I���M��E������+l���'K{�/�NF��B�j��u�O��-���9+��9�e��-��|x�
f'���~�SY��[�??D�l�P�(aG��]��kp���_���\��<��rO���;��l�
�.���Q�3�8�GJ$��_]7�+�
Lk[��W��\P�T4Aw��DfF�;��@w	����i3t/���O������A2?�)�3Goop�])���
Kp���tLt�}N[3�.&A+��8�e����
I0x^t
�'P�X���x�%�::6b�$���"F�MK�����"�N3���`B8���
�`�h*�w%�^���5�{a_��mwH�
K�+�o���}O87���6~c��l��(��ar�m"��P�I7���;�s�UI���b��|[���{�h�4\�5
W5��� �����di��{�7�L�c����t
������������w�>%�?���	X[0�/��+��a��J��"RK1
T���C��n���������3+S��p��]T��[pm;l.�~k4��E_Qf*���M�8�>��U��Z�����<I%��l���a]���%���)h����EeQpc$k
�N�K�<�������5x ;�g��|I*�lG�%���v�7���sX7��a��4�p%X��E�M�����x���?5��vp�:1Iw;jt/p�"e�
il{��W�-��A4���@'��z�jp���.^��C�j�@D=����X��
������%~��~���������������0������]����2�3Hs�b���^����1#��:�IcGlb]�j,�'d�[d����hF����|��h/R�-y����&UQ���4�����>y�P����+��(���W����L2�;���`F�����"��_"��R��>����	�o����m�������������
��>�'3��~�^�$9��0���i���������H����������7-���G	~�z�'�6��Z������A�6���!����F�Y���V5�MB0�r)�,���������,����[��keB��d+0k��|+K`���s
6�`���&"�$��-���N�A��#�_�����DFp��A��[������O`�|d���,�g]��W�U_)�s��m�	��t����:�w���>�\�,A�
�������7���S������1b��u�&Rc9��sN�D�0�j��u�gWR;�P�T�H�6����)���WXV�	�l+,���
Y)&&f�������'������2\�Z[a)!�~u��qd����}��H�^�DYN���Q�A�`��m��xV��Hb���M�S�)Ew�c[��	6P������{c�_K/��"���t���3��m�)_���xZ��|�qk����<�_�kp��(~�,�"�����a.�
�H�'|'�a��O�[�Wr��Z�)���_M�fz�MF\c�[�+�-�|������]�6��<m���
L���#K��4aQ�P&����mB�w���B��dY��4Q{k�g�j��Iqz�+$I���7���;:�DYX�b2�Y���.<M8�d��J�[Mo���6�W�C���L��z���Ki���.�c|�m���.~���q]�	!.?���K� R��M����R,��x�,�����Y;X����rL�@�s�.��g�M���N�L���K����E@�4FcVr����b������O{��D�X�$�O+���R�D<q~	[�����QV������	�Y��-���hm�Z������Z�6�8����}�%k���|����� a5�Ra#��Fh�M�D�Y�<a0��`}tkh����`]J	$�n�+�I�^��]�O��t��z�,����-�g[��1��d]t6I���;X�h��{��{/3	�J����_K!����P�� ��d�����=����[4�qn�(��Kv��Y��*j�@�M���W����w�'8g�@S
�I��vm�0*7�M[a)�u~���n��w��S�S�c�A��l�m�8�KU�Db�_�X�\��rVM8��������6?�B����P�:e1|�����(������(
o.�I����������g����R��A1MM�;��7�M����]~		+������H��c��f�Z�N�]�Yy;�����mR��4�[}QW����6�>��`�}HeN�7���ULX�������P&�w�<�6)��X�(Jgi���H.�g��3�{��H��Z`��[xZ�M;��&-X�����$���d���m��r�(�@:���p�!H�~��O�����x�>��'��g��A����?��:.&���fmq<|0}y�}[�~���s-���O.������$����[,�����k�39E�e���+�{�JEi���G��~������B?������*ez���(Q&.cA6)Z��a��Z5���*�>f����b�1����������
���{y�
�*p�({�{fk���O>y	���z�F���yo������T�{�0{��{zK��
� �AV���~}6
Oi�]<���r��z��(H���45��_� JR�3�R��&������
�h�$Km���3v)o\��B�-w��������v/���g����\3��llgh+/;��`!|
E���Do�;�\���T��e�^�>?�^�ik��I<�(yO�#��8'ia�!x5^(�i�V,���Vxs�
T����_�;���;�25Y��m�V`V���d�D�&�@�<��fIn+�P{Wh��E�"oa���2�b�]��{�3)��<c�S@j��P�����K������{f�0a������������\c�-�����<J[C�����M���^!I��F%�(8��hv�����`���%��v4��J0�"�L(pGN��o� 	���M@�|OG��[I�K0�r��strqx��N5�{Q��]��#u����E�@P:G��
����(��$��'���]e����5	��p�G��C��8��6���{��'� Y%�Rs����KO6j���|���l
T
e��M�[l���in��H\)l�h�	�Ws�=��5��[y�Ew��M��?�Ej�G���/<f�	���rY4EZ5on����
5�� �����Y���+����0�Y�#W��|"�<a���V��6]d�d�>���-����m:G��
��i��u=23�6)����{�*d��^����O M5���ppt�|��([L������a��������{���m���~-�{�NR�03�Bv/�+ys�����uw������ �wr�]�`���x9I*M��e�bM[x�!�[��^	d�r�NYsMW�����M�M����$��_����qa����5��<D�Za�*$)�h�g`i�l!7��)��kpx�Zx�oR���������^n����.���Bs�IC�R1W��W`F�c(�������H�B�`.��\���zR�r�#�eyG'/��
4!f�kH��Z�	�p����I���L���.�9�h����UH�V��Y�{���7���.gib�Y���Xt�$zpy�������[q9z����`����~u������R7
���P��;_��|sn��7z}y:v{��[�T������z[x��	�����a�j�������_b����Y������E3��<:��U��J����=���n���k4���%�s������5��e��95�S��
�(|�"�^���h�������ZxB�C�v����7B� ��%�q�Y�.�I-<c�3�\b>���c�G�����������C��[k��/Tx2�����\���[���N���q�yy�L�b�#09��f�U+�67�b��hZ�M1]���yY�-��O��&P�
�,�g��P���
�Hu1���}d[�g�1�����P����e(q���Wpxg�����Vq����P��+d����5I/W� q[���!8B��5�U�@��xa��
�W��9+��h�E���P������+�`d���X����5�c���������Z�P$*���KX��G�����T�����v/�������P�Z=���)g����b�y-���54����(
P�X	��x��M����23�C���7,H=�9�W��p�K-'�|[�z���Q&�~a��}��88u/N}�X�B����6���6����,a�� ��#��m!V����]�����m��|��%����Af�jO/���&����r$���ip�w
'�l�����I�=��D����
�l��h�������N/�PK_��6T�&�#�I�z�\b��5���t&���Am�E}9^����z=#���q��+��s{��������������gc��[C�g�y_��&�)��\C
%�!}9�n�%�t��/6�X��4<j(c����������9�R%�`���&��SA�Wd�6U~�3�C�����H&�?�2�@c�/_�@�*$���������5x�4�����S�6��:�<_�>��<:���
��>�\�����J�z�2�)�$Yj6b�� ��xs��X�O���v |�x&�q���l������R����"`�6#�	�-�����r>~��SHO	p���q�Vl���_��:��;��5���2:��~0�������eC~��%�)����:�����FLYg�����D��,���Y��M��88Yb��Bb[��~��F+��F"z�6�q���b�����MR�����������L���'�-���c��������X�c�pM1���d�����C��� ]���
e��2E��
JRG��hG�X�N>���j���8�d�
�G@��]u	�`�LM1��2��`)m	H���]����gJ�w�Xx�A1�W���+�@�J��-�[��1�ns�e��z74H�u��S�z���H(���p����o���9H�u�N.���V����3�}����'�T�PF>������2��Py����I;X(
����4����Y`y�`g��G������Hy�����&��
�����p�NlsDI���� dl�q�sQ�1v�G�	��A�|I�� <��c��S���X�,i�����������?B�����j��[a�ghr�
�����>��ODQ*�����	3F������EI~c�_���_@���A��$�DrFvV`�������6���l���3�M,��}J�}�D��=L�RQ����@B�$����H��gQd�2�{��8�2����1nJ4Cx�J���M�P�$
�;Xu$���z�?�=m�0��L3�-jhFV��
I8���X��Z���,�l��=o�{����Y2��*�_�/�.�7f���>��D�����P{tV7��y�5S7�x!So�q6)8��[����Ain�>[h�VM��+,����;6�+������L��p\4���g��2+��@��`��GI'#Z�I�1��h��a�.���B����4�����Z�-GK(��!~�a{Z�$=B��
d�z()�e0WE
�^���|�5���!��H��_;;��Zz�k�	�z��NG�;XR�n�n����Y9�r��B���oF]%q��Ya�b��O
�]�fFgXFQ���������
��A4�i�����*�>������"�]�
4������B��}�$t�]��U�R�B�v�'�������Kqtry
Il�]�F�k(�x��\�f��[
��k,#A�w6;�8����zrqy>�_b�I�A1�b����������^��c��[���������p��������M��B9V��"�����������p(���C��e�Da[�K�`�M4����q�u���`����R����2;|0�W!	��������Z�����&|oN���[O����Gq�g�R\�=���Zs��$�D�!b��59VX�c-�n��8��m1�Cb��d�:JRc�����x�&X�1�vp�~����s�s�[�7}�(�����~h+"�`2�����`�db�����[[G���!4��u�c[��nD�r��E�������C�D"7��<-V�����	���2L�$Ua��el;Qei�_����{X�����T>=:���([L�;�.����gc{�@��%�qm�=���I���6�1/�y��cN��j����t����O~
������P�c�R���f�%X�An7��\`��p�8��0�t��!X��c��6	�C#tN��;��!|���2�>�A_��v���$��T���7)�X����9]��q
���W��	}=D1��������8.�{��Er���8'W����l��b�J���f��_,��`nRTd����or<�e���������P��d�O�YH�"���2&X�nnW���������F�	M��-COG�*�PZr
��o�	Exh�+��n	��"�l�9�b	v�Y�	��B�a~��@b�dm��F8��v/�������x��%$�	'yE���1�#(#����gI�~f���
1'�6	!�#W�r�V�H�&�`k��D���
�0�d�������__���`��6A���f�L��F�
4��-��|�[D��Ng��06���i;X�1\�����w'�7����0��*�"�o��@h-s|�[�U!���Y�2�gK�>�SxA
�^����h�P\�^cd�� ��Y�!Y����*Sd�;Ln�Mm-�Na��WX�9~
���)W�X'�,�Z�����=����g{���G{��{�;��5������T�j����M����O��_�,B���`�����
��P��&�c�_�PB2������k0#x�=�g�
y��^�Q�����
��,D�n����A���������,�c�����z:���J��1���h�;��KK#
������wo���8�U��\�M
�#���rn�3��ev(��`�tP����� �j07J@�����$v~����nR#=�k]a�7T^*$��n�@�7�Nv��PBQ���m4������mRt/�a�orW�k{,�G\�P{�H������tB�
�������a��\5�{aSm���=H�
K���`6-���Z�J�^�5VX��aB(k� �F�����F�G�������K���!�I_�84�������m��9:��g�d3�k-��:^da�!�j�����O�i����$sV4TH�$	K�I���\����������
�_HyY��@7��T������L��R��h�)���`"��h�|�b0	�^�K�(	��:{yn���l��`����W������.>B�k���+$'������p�a��V��0}�E����'���{���
4!�XI[h�(R�l>}@�$�Z�{���Y�D����R��2�����\c	
hf3�f�Jw,�����/�)��IAi�yp������M��o*=M�}8#�������B���'l����{
���G��<m�9e�pM��?��"47��
�����&$�?Rc��U�7�|5
	�v
�����-2MM0��l�6a���+�5�Os
Lx��l ��
��^��.����a�	����m�����+S��<���]T��\&W�~���}��ae��7���|o���ob?����� m�!�]�������QQ��Mx���4����
��qy��Gzo�/��J�F��{�~��3p6�
��S��K/���?��X��3����E�"%��wH����w(�����O����Q���h�u��� ����7k��}�gr�{!��<��"�g�����!5�Hy�8�����+%�
U��|�z�VN�bep�2I���Vi
&D��M�X��IA���%�[�K���0��t��v+���������(VQj�4���o�\�=Oc�~���_�&���H�����5��c.�|�k���^��tll�	�	�����S��_!��$~��_��~�%^}����?<�x�d����t���M8��6o�w�ve,����a�V��:PK+c-�C�����B�(���v���`3��$�9>��2H�nPY�:��Tm�����U��{�0<T�5Rs.q��Si���2��{zM��]�[��X��I�2`o�a�Z�����p�g{O������e{V��"3Ip�m���f9����8a�n��1�P��}�B���{��sN��������\��q���X�@��n�qs�������og���� -S8K ���S-��,�O]>e
tS����[h���i�!��O��1���l��
D��q��+<��	�Y]ai��7���I���t�����oa��6	!P���B)0G�g���������i+t���^��
�f���I�
�(k��ZI�-�	<4��FJZ/���J�����Tc	ZM|���������������o�����
��ECH�r��mX�d	�#��b��C�� ���0_y�����y=�]��Mn1�Hq����Hp(m����������
�` ���m/&]��t����xu,>�{�]D7(���8����`�Hqf���5�{aB��vJZ�������ke4w��g�����J �b����"p��� ����L�
I0��� E;�7��7
�����>��7�Z�����
I�bK� y��mY`(�%V�������x}qt���3<�if"�Lh�	�\�%�2�����Z�2?X�)�&y���K���`ty����HT�C�O]�agq�!.���O`g����W���y�f%��j����;��>G%���^�t ��+M�Xa	1��6���������m�?��
O|��\,��3�� ��;�}���a�_�jG���E0��u~��������E����kV�@���]�R���6���p��M�2-�!���M�X�s	�^�������8:�<�t���(�N���p��M/]F]4������$?u�A�i���v��6!���5��Z��\�
�X��a�B�J���W7���������]�_��	���A1`D�fF������t$@�0�L��`N�
�r����M��v�7.�
���7�_�
�X�8W\�6�����Z�fa�������\b{��
 o��pty(.G/��8i������{j�{�V�k��N�{�v=s���b1��	���co��W���X;�N�J�������kyOx�����;L��Ty���'�KBd��>�����,�.���:^���S7V`�	]4�v�v1kSce
�t��M����^���	�&P����2H� ����`F9m��e�v�&a}@�'��w-P��W�& �jky$�*���T���R���44W����sOG�g#��F,�
�h�����	7��{zrqy>::�\Mx���C[��(��X�I��%��J3vHz��`dKi�|�)?r��q��E���r���1���*�Z�Ao��%Tu�T=H�o��j5\V�����G�3oe|��h�O�L���j({�l�g#���x7�Jo,g�8��{q/�G'���[C)�R��X�	��)f�`Px1�I���J�	lA_!	������Zai�.���DL��w�(�&����$�������aX�vf��a_�z&�y�xS�;�����_��o��~�� �k0�C����^����b�Z�84��D�z��Vf���"� �"���K�W�Y?Q����&���;9�g����S�-��AY�$���`��=�`���O9-���`n�e��H��NI�~��'hv%f���e��{�/��<A�*$�;��
�F	�07����<���s���S@��2�2FQ7,u������'�>�*?���:�5��,��k��
|��
��V��T�_��9����"�D_�LX?��b�PJ��L��J{�\�0R.)h��&��-����UJ*,�I�h�T4�;6U���]~�����x��D����h_�T�m���]�'��\��%�#H�.�*t��`U,A�_��!T�S|qz.���`!��"�:v{�+��E~=:]^�/������&`E��{��c��/�M�j�}=f�����R��S>�-��d����d�,Y�gH��{�0m-�
�F��Y�
������C��8�c�-�A���t^R*oN{-�{�������H��O�����i_*����f )�x
5�p�����0W&H%:�x�R��[�F��E*#�J�0���x��{���O�&���!�m���u�^Q	��WXB�����|�C\�	��Q��a9m��I1P����f�68�n
Lq��������m0Plc����j�o���
���Tb��Ax�n��������p�����m,�����2��Qy��l8�C�{���#X�z'�xt��/+��(��$�	V��`�>L����l�"�,����M
���e�1�Ly�+�/i�V?�Y!�����\��;�.��N���r�m��b�9f������s!�n.��:{y~x1�|}v����o!m[����1k��c��b��R�,���HK�H��#l��R,��.��>
�wc���C��!��_�
=���E`"Q���^�����6��1O��Zx�I��2��1����>�\�v�0�Hcu{Hh���j��v�w��e�Y,�[c)�5/
]�79d�=�eM�3i�zW��'4go���{��qG'�������k�����������cW�����KR	��w�=���#�s�g�o���C�03�N.�E:�Bi�u
�%��yN�whL�;RL������l�L�i�� ��s%��oh-<�$��EM��5�i��x�zX���v_Y�Fh����
%p��P���*$��Ja�e
%x�l;������_����EC��~~7��"�7n�b��H���e�����7�V���7�l����Z��SVm>�{p����^�$���}d}���%O8�,y=9_4�@��5���x�;��'��`�^�_`I�A�p�B�`�������L�C��x�%��`S�����A�����E��d�N`�)1s7/mB8���8E����_,��$!��)�D���m|��'������$���A�����G9i:��Jt�>�� 
MT�T`?�v@W���W\akU������&`X�qn'+�i�X���hX���v�X,���,��5����Hy��C��&�����ZO]n	��������^e�����_Fh�S�$���_���k����?�{��{����\�H�`g|�L	�|Ok���P|��pV^�M�uH�+�U�O��`��g�4�u���`$�z�R���m0�.���7��M�Za	���P��\,$xR4��@�C�t���<���p������lfnRt/r�_�c4��
�;a��|6���g{O���=z��d+���j��=u�W/���.X�{A����dn����]c����sc$���������v/�w�0=	X�L)RS.�Vh�f��e��08��$EK�w�&k���L�^n����D�PF;�������{XS�CHR��X�k�B���?����[�9��pI>-�j	��[�	�s�`�VXV�e,g.��%���sr�qB>��/m`��Q)��C�&Be��)s�|1�FD:z��r'�,V�hC��b�!A!��6V6������6e�HR���|O���S�n���A�Y����E�������N aM8�v�h	 ~�GB&o,p7[��N�?�J��)��8���G�6
��:?]�����o0K�E@���I|oZ���;�Y����v�*���r98�ynq�A�5_C9�R0�WA	u�*=G�vl�kt��w/�ZzY����P��e���7��Ja�m����X�z90�����ke�pI,
���-<��������$.OG~aY�S�ZxB�8^y��\��L�ktu�a �d"�S����D�^a�����c��H�_a)~��+���Sr�R�U���LqW��J�
]>��])��:�uf<0��MB8��S��5�\\����I�$�����#��$���K���k&�&��l�`�^�W�B�
����_h��
:�D��6W���6�5�����7�V�|�C_b��8����M�X��dN����,�P� �.�M��R�{�|t~>���
I��FA��2���
8������] 	f��_���^7�i�M����7���]���@Jt �*J�	�@��N������q���5�!Q��\�H/�o\�����>��`4�pW�����N\������R�0���2�����v ��\^��j(�����X��SaI�M<��2w�4�`��d�1����C�,�`�):rp�������
4g���n0"*����S�3?��,:�_[�u������l����kH�k�w8��+��`�����'�)/G��X��_�hD���'�I�4���.Ot����
�P���
.x�-R�S	d����F�P���4:q��q��3g�;X�d�m���f1���V�'8l0������c,D]AI���f��:{e'+A�jh��~sz���(���M�FR�>;]b)�5������s�{�L@s���n����B�fP	dXf����4���p[��i���_�g����bO��^����//���1�A?o�2F��k>��5�$���d{/���$K��T�E������H�Y$C��	�[���{_���\����������3|^�w�����Fx�q��l�
J���>����%�po��*q%7;�+���s�a���"wq��N��3�9��"������;Y��
��h�T�V�������Q+,�O�3�VC��}o^}���D���T��,��uW�|�m���o��/���Y)�8A�6����M8|��4�-7)"ef����5�q�t���o�J�g�M�ZU�����Z�v<��;]W��e�N����6��f�\�@�8hi{xM~����*�`��5���`��
;���>�$U7��
��*(�Y��I(<��+Gn3t/1�kHX�c�p�@�K�����!��b�^j�Se!���3���P��&S#g�w��y��[��3��J���{H������_�l����IV&a^�
�k����
�[��^�e���D���-<����A�
���Mr�p/�{X�^O�+�`��H(B9[�������JH�}��0[`�	'�)�����=��WXF�������w�
IpG�u��{�b2��5+��a�VA`�����9V�V�B�l<�`uL5�`����$���@w/��:�-|�a�5�����!��������r��'=�[�*��I9%�u�g��o��R$U\1�x>4qF��0M8#���Cd�'�����+�,f�Q�~�xvyt�5h�pg�tn�������&Y��[�c|'�� �����X�w�5��x��(/7=n7l������	��������H�p����\EK`���Sm2B��EE���qz���������
��0R]���Y�M8�;�w4��& �~a~.�u�N�j����>�����i�-\��{����\����1f�����P����p-��,C��k0��
xz�
�H$�7�l���=����8]����g���D.��o��z���b�����^�8�r�^�%)h���a��d�N�N���M�`w���}kY�{>:�e���lV�5:u��'�s�0������2�� �'�WB��"�I���y���|!H2�$��@c=��K�������p��������a�������KY�����j+RYZjt*��e�z�,-�&�*
��M�
4wa(�q�zd���s��/�h7��`B�$������!Z�2q\��d
@��3�+�@^=�&P���3%X^V1��`�Y�@�p{)j/R�AT��e`'���
�p�w�t/�4�G�l������|WX���T8���Ik��u�E��$�VV@������H����UQ���7j!�&��m:����/��w1:
��
V�SC�"_���QhK�-����'�}5t����I1�=a���a��|)
�Q&�4��s��}��w����HO�D6�����UZa�����.��`�d8e�7���I�����u��d5���=jz�Z����PO@gB����2`>h�\^��������sL\MpF�Vl<��\����M
F�6Oc��
I���Y��f���*Ks+p�3���	faTH�Tvl�4�e�[��|��x�1$�BR�%��I��{M8�=H�&�����'�~W�m�u~E���\b����B	�[:O*l��Nd\+qz|x�B�}���w01n�_��A+,�{�%n����<�KO�����K�&P!Y�����9�nl�JoQ
� �������H�t�����o9�$3�{la$q~����`����P��5|
f$fv\
h_����i�j���e����Fy*���������G������_��&<�����{�������y
�|�#0V�)f3����U~,�m_�i�0Kr
&w�2��W����3,��A�iK�Rik�:��$�^���	������g��?�>6)�o_]��k�����
�����7���	g�(������I1(������B����k���IL�a�XEptrp�
���I0`+���3H���`Z(;����[�P��Y
������Jce��r|�E�����51v���y�4� U�v��[,�{���&-<c%�n^�m��/�����9}�WO�+����q��}h�8��=l�yz�S^�������0�?�8<?�����xty4:>���C�4�������O.��!����M��
Zzs��m�l��)���SC����R�
�:��<����vr�k��`�]eX�&|��x�>�`6��~�����?�r��D'�������~�}y|����[�5��!e������Yl���,�����tov�`�P~�&�6��(�*;B�y:�2T[���`�t��l��t|���k30�7����B���4v\�������b��l�	)���`�+u���6������i��=y
�
�?~rP\	�i��O�E0�������������R�.����^b^�M����Z^��{��G�'��|�-��
���
�`�w/�������������\����������x'o�8I���GX���N��/��|���X�s�w������q6� �Mp'��aM�[�	��l�Tc��L�>%�U�>��@�����@�z��)b�T�����:c������v3q���O[/�Y�Ih,�w
fEi���G8Svx�	k�Y+&�4��v�&!x�C���.���P��v`�����hI?��I�m���6�I�zF��*MuaQ�
I0tN������Sc)����0X�)�8�G�#B����5�`���R�E��
O�!v�l�8��)W���7���� U^
7=����O/�7o��%R-2{6)u�>��@�G��"H��Q�%�ul�t/�����@��%�,]�[;�F���Gg����&UQ���6������,n������4������{a�����p(���f�a-��Fy�`F�G�2��D�*i0��B>�+p��e�@��\�:><?�
��UcI�\8��	gx�������K���	`��&�{y�5
"�MR���T��@� ��&$8�AS�U�_\��S��-����F�aP����{y�4���i�	���p�EN8��i>�A>�wE�u�(�"E�����5�������+������WN�g�u��0[�W�m���=3z	QZa��L}����"��Rp���Kr�D���LE����>�,�o7��j���o006�Py�����#!A_�6c�A3+���� �sa��5z����F�%���=�jH���� ���Z��|���z����������$
<��i��7Q�7_H��hJ� Z$�	E�*����([�&�P��_u����*�hJ��~�����},K��2���6���4.
�='g�;�8+
�,�`���/!q�b�8T����#-����'z���Y�-��p�����x�5��Y���!�Z�����m�����MB��&6'lp�@�Z���]��d0���L���,���s��`����B�s]a�u��e�������O4���a���tz�����u��qw-<����	:�7)8�'����@�{�4�5�@3�8F�����M�X����Wd���6���D%���aKs�$��b�����Ip�
��D��eUX��/g3�f��z��{�?����_��W�������dnR�7�s�j(K�C��6!e���m��>j��!'E� T�c���D5�V�br�*i��fw�2��X���^C��"
�*�����<����W`^V�8����S��`���L7�SVB���X�������siLR	��-����G����a���
�&����&��-xh��(�t�
Ip�u��HJ�YM�����>�"����9:�8<�G'`w�~N���`���iZ��"	�U�����HO�#�O��v�I����
������l������Yz�����V����[W:l�P2��"5�=�x���g����t�������6�]��~F����hn�{�i����s�~���)�
T�X�z�4�k�H�d���vZ�-.��-A�m�d|��1x�(��FL8>�R���)��� xC�x-���`���PF��,�����:����j���d�5�{i�Nx*�P����A�q������ZJA����������5���/j�`�������a�������P����S<�A4�����^��O��~�k0�T���?�Ya)�'r��^WXR/mm��D��n]��]�}�xF��re��2`�h�` 	6E9�SGZ��������3�(v�P�9��`}=m�1�~_���Fh�������2T	']��v�����2SaI�[5)	�@����
���(���?�.�P+�M�����?���P�M+B��
I�>�"�a�E�7����xic��I;�5�>�B��(�.U�X~L�$Kt���H����w_�)��*l�e<J�:��[���v��FV�2c�&`	t�Fy��I�{�J$����>�Q�MO�4D2���WX���ym��u$`�H
%$�,�{�m�&���h7��'��o����rN�c�w�A�nhi?���yxr�]`,�&R�������i�������������]4���F�U�����h�'����T.�bif�������k�+(A���v����[�A�
I��
"���6o
�����V~
p�SNI����c��E������E�$7��>��������l��E����U�	�x0��.�%�{A��=������������H�.���2D����A_s��!����}=�#�E������|[��^��c�����(AO����n�5���//`S��2���S�#��4��
��Q����JO,4�^u���Q�5��E3����l2��D�k��@���8�'~'���d{����a(�x���p�� D#�
<B*�@�Y�O����N�@bN��M�w��u�M��v��1t��L���xu��L�X��PF3��H[l���f%Uw�g�E�vfQ�����5#��x����be"��.�wQ���/sm���`fX�8CP��B2�Q	:�s
&�ONN�
F>�8��6��8��>�����4U���������i����Y;���\2��b��F�A�_�k�����&������M����t�����WJ��D��A;X������ ��b8���A�X�O��;%��n��&al�if������@����|}x���+,-�^��=��AB��d|�������;X��Qv^�/�M8����.D"J0�w�cPq��v7��B�/���Y6���2���6����������x��`E���*(��sy���V���������_u$O�������a��A&N��&�@E���\i�J�Z/�e���������
��yZ�\�����6l�y'1	�I������5���'���`��H(R����W���
�es�M������
���XB&i�-�������:R9���2�lS��i�����8�o5`��;�~�da���{#K ��5���^�1��������Hz�����H��@�������!��T��4�3���6���-o�4�i]�'ui�"x��&�X��	g�}gb�3
hJ���h��K����~):=+�@���0�-���2��_`��%A
������N�xi��j����o���-��(�F/�N������s��(i<�M@�0�o���"H�SI�����I�5	����3�*������_���ka�8~o�����b�V�����4��K��0\���E�r�p��l0�������%����/.�f����N�u�+8i�M���\eC%�,>��Y0i��+�Y�`W���0��>Rk4#�l��j�����4��������mU� ��{��i���>�����P�	���M���[?oZzsm,Kqo���.o9��w}m�`�����@�`v�����Q��&��^
+�i�	�Os�?�
�;���������������~�w?���������mR����h	�
;�Hc���Ik't�=��2��l�z�z��n�nM8cK�~sN�p�}�db$	&
<Dj(��"�D�&�{qs�����1IP���JH�D���)�����B��o����x|y�&m�LQ�
��`���%������C�q�s���V�p�q
'����VI�P�����x- ��x���7W���D�WU��C��d�D<����,�5��/��&4sF��S�����^�n�J�fgG����H���{xu}�th��IAx����m���
�rd����
O{���a�+�{j�&�W�v�8v���D|%�x�K��J� �����bJ�����B�����w�NXk38��I4�������,:��6����'�s6�]����b�����/����or� �E-�y��=��3��l��������|s
�-o�����5Nc���!��(���T}�M�h�3���������E�-�	<�����A�W���T�\�0
���xRx���M�������<~�������l�;0n�#����0*�e��e�5���������.���������������/GV V��.:������%�`���9�bn:)�05�b_���+��������/W
e�X�Q��
���.�+,a�/�	h�7����,Q�|�6)n�;6�qN��!�=������%�z9f�]���ZQ���WN+\v��A^����ri��@S��c�M
�H��`�����O�M�T�E�p�8a����3������wo��5pI���D��Q�8	���mBl'�>z��vJd��.�4VB^C�u
�0N9�,��_k�@D5U�\9��M�S3�X��L���L�����8�`0Q���Y,&��w/���:{s4�����?�DYX�b~i��mR��������-��e��_�KHZ�#�����`8t
&t�Y.����M��
Vz��@��3��+WC�X�|��c��� �?�_���������m�Mx����H�
;�T��#�_��}�����[�5��H�� �ki�Zo
&�*E��
N*6����F$�\
t��z5�CF2���+,�d�l��H��a`^��\���I�� ��+Z�e}q�Fw)P�(���Y�x"�+�a����/�
K*|����D�������/F{��{�(aO9�O~p��W����s���(PE=���`���?�<�s@
�^�;7t���]\��w����sJp>�
�������]T��&b5F������y�F;�V��c$+W����V���c{�����l�M
V':�/_�`p=�����
��X���^F���s�	���*�9=:���@R��v���{��.�M��9��e~��eBz?�d'�A��Py
f4	�c	���	��fS������R�'���5t��G_���vqYaYO������F���|Hw0���R���s
4��#j(e������_��,m���?Io6�6�x9;��6������[�o��y3��e�����}�����zJ_�u��uO����q�ys��+��K�N�Ux%���,���+�����i���s��UAM�"� '�������/G_�����P�y������j�`4��L��F{���-��~���kqp�P�N�q���L�j�2�eb�����=�y��RE�ca���_���5:?};�<_\����+2K�s-<'�Q�i~�3��x��7���Za)�T�D����������I1���{�rU�M����$�c�t��5I�&�%�K;�w���(���K�MZ8���k�*�A-��h@�Vcl0d����X���M8!��ttq9�|}v|8���������,�r7�����X%�a
��Q����R�ug3u������nR���C���Y;/�B
�V���������^
������~V/�����%:��D����q1�m$�M�����J����&��[d���.4����������P���:��I@X�,�h���h�2S���4�v���S�>b*��VPB
�2���/�iX
4�y��7����l���'��@�V������v�@�]+��#����}m��o�~Q��������b6���r��J\��>�]��9��5�CE.\��-�\{|����q|��d��Wm����q�:�G����=����v��g���A���1����1�gNS�MQ�����2ID$����8w�����������M���q���b�����I ��������*�Wv~��XG�@"L)��B�l����-��K�B����.7��UJ���	�
�L�A�Dl�4�~f�g���C�������_%�~�������c��2�.:�UK$Y���Kq�k5i��|�a8�Ux�4���}�I�H��&u��I���GO�RV������y���j*�0�������y���h�	/�;���c��!{9
�?�&I��gX*�6�|�����Jt�_����BpT]�K��%������/�?�0�,��f��n��|�����Y�������=������[f��/!��#l4����A8��Mx���W��w�k���:A�3nRP��D���K��8������D]:�/�M@l\�:�^��O7�?}}r�	�MD0����>��{:�ei�b�S���<<??=�\�����D:H�����*�N��	@���`g]�n�Q_�H�{�m�>w��>/�=�L������]y��������,�KU�h#*I�|'7)��~4��q��X���f�^jI�����<\Y��� B��Oz���_%���i�<��l���K,g������TD��C$o�������@-1��Br��
������z���M��I�M8�v��%vE/�c�'����g��	f�
���M
�Hw�T�.��s(k��M���X�`�ju��q�3��$>��[�%����L�l3��tO&��]�u�)>�b:��N^�?�1X���2��'����#^H�*���|q���k�h�T�����J:��U��W9Q����V���}�d����x���PJ�y
�5�u6;����7^
�& �~s]��������-���%�Zay�#���m�0��T�k��6p�h��BpU��6��(]��C�+�T���@��s��-��N��e�,������[��.��k��$|�������-����Y!�5�fI)ix�������W��L��I�{��F����YN1r��nBBT�tt�Sb���������6����m���o��K3�N�c�����)�Hf��Q�����N�;����M�0���i[x�u~8�<\���v�M�AN�~�����M0�v\�U��W������b�vM��Mj$\ai�O|�����A[=�%�& �������N>?<;�v�
K;���P����|w1��&[a��a>�N,��V�Nn�;�K������A�$�6�^��0�8t�?y���Cl�u
����1�S�@s��Ez�q�&�`d!h@��9WF��Y��^m��|��8�+`9�?�ZxB���/�(i�9�"��w/��HX���4I��tHB/�o��Y��hl}���j���6g��x�-���o�'��(�C<.�&`T~D�)h��Y���H��qZ�	o�*��b���/L��B�����~�@�P�En����:���e9�"��5
)j0�f�e���\�#�3�����I�����g�r�������6�!��0�G�d�CA�$IRd��n��e�1|d�_��u��y��M�5�I����Pc
�	s��z����~.X"�L�M���Sm(��F��Q^'�TX���K*$#������w/���������B
7)8_h�����Q�����k��� B�E�`�^<��=O,�$�*K������]�x@����@��@��9��g�����[���&�����q*>.	��"�&�?���>
�����ZNS�����R
��eE��>��.�����n���en2G�i]����8mZe��f��=�����t����@~.�9 ]a�m)���-��.t�d���O��~����`��8�T#�R��{���{��S���Y����K��`�eE,�t^�p+[�\�������LT�T�S�'���Uf{:�V�]��{��A�����TH�������o��'O���@<}��������U����nR%���	�ds���"�����@� 4E���vp�<:����b��T�����*�~����W#��}�����g�$i��/8rm��{��'��B�J ����.�i�#��~�)l0������K�@R�����B���������~LE��w�s$������$��W�v�
�w���/��������mj(��Ob�i�cx��qg�5����"��'�@��2��-���
t��l�D$���5x`}�L�����iF����"h2b�f��J�.C��v
'|3�fp��
�y�N^�_/x
�6�r��f��~Q'���o�(5
{kh��>�{���0�a{.��,�2����\�H$:3���i�5��M��hl�]'#a
�GT�����6�4�S��-�Lu�dB�w�
�8���e��,�v����+���:�X��"����k�
�p6�����]~Yf�	���&�l.n�~L|��om3������s����?r'��n��O��g�G�f�����?����fax
m	�8������\��Q��������[T��)�����w��l������Q��s`Is��X��&���;�������f�TH�v�e�o���6[W�6�Ya	5����,�8��g��
�^��K��B
�<��+/�{�������G��`��*Y�q���*�A����]~	I,��<�`Q�������mw'O�r���E�R|������_��4WX�Z/H�J�.}�d�Y6��=�
�H8fh%�
Kq�Fhb�
K{���V���o U6��9��&����r���8[m�5��F���Z�����]�6)�f&@sf+(���'�X)�q��\aP���hO��l�m���Zk��������,����|�%v���o.�G�������3[x�I��7p(U'��~U��T_�`!$t��J
��}�K�l0����U'f���iow����Io��p/�n��Gz	N���I� ��1��H��5v���`�^��=lc+p�(�e
�4�_��&�X�g.fI�HZ���O�/�N�x��`��6�0���lM8�j[�}VXB��������
:��KE��by���xu�O�O����j�	��$�)�����k��`8i�=����P%�,�x����<H��5���W���g��[A	��c������r�
 ��D[~�W/�F�:XR�u��^5�be�X�.���~�"m�����2k�jQ�Z���6�:�I	;y.S�������9�#K #A2���K ��;9!��UlT,�Hf�y�o�R8��mp2�N���%����,J�r�5��u�gn0��_8�M����K;p>7�g&&���^�/���������������68}_��/�5sX,��t���8���6��AEy`�w�mN_~�pZ�-�������DN��vlT����v�w�%�?�g5�p����go��E�bX�-��� ��m��\��c7��`�(��"
4#�:y�O[ G��h�6���l��r���&b7��i`��
B_��_�]���
�v�o��m��k����*��{q�����G/��!k0����V%�����^��_C�,���ERj(-�
=��p�8�c��������cn���7A��c,�aq�-�p�����Y`�������J���������k����Y��l��*�,1�:T2��e2�T�Ns�?43�F���OX�I�
89����a��$����=���'���y@`��
K�(����2;�%��[c��T&KVP����vG�2��#|�hF�`*�
���d��P�n��PJ�x����%*����a��l�vphq
�d8����.x����6�����s���� l	�t�����������#�x���#|"��0,@G�&�|����\!����7�i�J|���JID��5�������������L�& \_1�DS!������r�+��W���ha���������Fe����%\����h��~�������O��w�6�P6�a�%���
BV�N�Y~��	��U�eGlrP�>%6\dSd_�;�x-��/�M@�����cc��Zk0#����c�s�9XJ�@3\�xq��5��}�I��]_���8���m����
4���dx�4&k�@Z��D8"�D0:��+$������@w/�����U!s��7��o���>�vG	���,�/B-����J�Y�W9����K	����p�y��7W"	@��	gy�&+mR�����wU����6�p��u�+�&H� �;���"sE�m��EC1�����H`�c0w��d���kp����(�jV��{;��3Lu<�����S�(/s�E�MB�%��h6)��qi�������r��R!���&{�@�[����u�]��y�a9�J�J�����WX��r������%�`��Y��)����c�S'^�oR����V�����w�L,��u�R��)(X��6	-Ecft&�8��p�-�h���s��v/kt|yx���K�zH�4���X�q����+�PSR�[���FFI6qI�[�	gF���cI�p�� X�]:6�����bb������`�h
���5q��h�!��P-d��O��%f�������5�Kl�$��d�,�;���	t�z��N4����$���	"�V��,�[�S�q����E$i������$�\c�p�cu�p�Ni��?��a
3<-*$�-\����|"�����#���N����D,:���Az���������7�6��w���
N���U�k������4���(]�Zw:��w�����n1D��a�����h#�>y���7����u�|Gr���d����q�`�M�wb;I��_9��<��4�,�>����8������z������
|^l���MB9��7��^v���uS������X�,���<@ae�����b��F�nN��M
B�/0i%p�����'�����f0Q����p���d�9����`z����.��%���2"j�����:{e( Q5�Sk&��������o�`�Kg�EU��uV7	(N������#���q#��nR����	�%�m����
4�����}��G$$���Y��bN�4��'X��& �;�$��#�	���7MRl�2c.x�|�q��h����o�`R�>�t���p�iw����(������	g��I�z�v(�����5��~��2����6�q��[�6e�I'���x�
��p��e���E�!}�&#|$���"�e���HVx�8pomVc�����37����XvK����R|��!Z}Y@gy�E\G��k��=|������ee�%t�9�|}~r�u������pp
)�0�G��*�/��\��V�Y%�{As���OE4���M� |��>�{��	��Bv/��U�y���!m���90)n�{�������2�P�\�`a�.��WLJ���6��S.2k�))#U������I��j��,�QNN#'�'|=�`��
�
V��Q
����0����������t�aE-��+i%~�U��$~��~��n�Qw�,����W��j���w��#�
�a��������	e���k0������"a[r�j���SY<��b!���?�u��u.&���42�
Ty'3��2R�7z
c��y�^�ce���t���2�4�+h��Pc�d��L��z����`�kM��&��������=�{�����'��i
J�p��u�%�;�d`J�c4���#���|fsh�����g3%d��Q�ia)��Zh���O�&���.�D�J0e�9i1���_C9f��z5������qN	�X����������
���A����G6�U\x���,�����k�����l�Q	����Sl�S
XH9y0?�q-<a�j���3n��{���'/���8:���`�(�l�E��A�L�!������Y�����A\!6\�f6�-�m�D��6�c���n��_t
���pY0�Z�(�_�]tNI��s�@�K(��X!�{$v��@���`VU�	�#h
)����+�m��{I7,�P��.u��?�3,�UcY��z���j��n�l0Pvv;��`����8����#HV
�D�R33�XF�t(����D*#��o�|�I������q��P���������-oG�G���:�c��(�l��uXV���{O!E���r�Z�|"��@_��p����[��W`��	��o<#�^�MT,�4"�����2��Jd���U���~������"���.4������{$w~��z&�k -��C/��Ad���1%f+��!�w�\��`��=��<����mF��	��GMkx����p���s�UHB����_x��Z���4Y�`��
Kp����H��<����Ax�x
/oaD�"[���v����!��Fg1������<������ ���P��m��jC,�������^�jc{�>]^�c��VXJ�5��[a)��l1_���$��#F��rI����I�Us$p�!��l�(Q���<��(@1�z�nqp�>u��i4���X���C���c?0�K���M
��6�
�@����s����E��@���T7�����PAI����r��C�0G����AXN�k�����_ag��n���\\Q]P�v�F�O�"�6��������$������O����Y$�������[.����M��
���` ���6���7�g�{��Sif��bJw��C��[?�C�41s�����\O4vMh�&��2Dgc���/x�x�7[B��Zv������SU�Md�;����%Q7����m����?��n���r����2�.z8U���&�q,g`6��1NM~p�n�Nq�?G=���~sz���%���n#�<aA���x���D���Z�-�S'A�k*$#b_�-�����������H�I����&���:����-���p]Ks�~�+,M�����+w��
���-���Db�a��MA3��2":6� 7kS,��g�+���`n��n"^R��\��;�^T��H�"��������[I��P�A�<K}���Dnr��L�9G�L��6�[Ha'����X��o�:��8J��*��i�������������4�S$���VCQ��cI�S�8�Z�v�k���V��j��^:	�l��/��amh�E��������KHW
���K�JN�=�9�@� TEN�� N���P�2`i�6��t�����x�����X9��8�~.i����>?�����W/�IM8����,B}_+0�F'��B�6>��]m-S�%-��h2��i
��]t����0$��/s)������&�p>� Q"�i���I7(eEh=�@W��k}�f��P����������������MBj�����6����[�4��4W/�>���6��([?g���@�Q{��;�)GhK�kR+<��������$b,������G���?I����w���E�P��xi�����}�WW@!#���	�����L�c���
����A88������B��I��5�i����.�7�`�������_+_k��An�)��� �������;=x��*����<u��Yac���Nd����s
f$K�x��2K���Dv/����>����J�^�6l��*1��Z�y�
<I�p�'h��t9�@N����Nv=8���'Y���6��5�;:������Z!�+f�5�N��D4�E!N1}t�)�d"��;Mr�Np�q�I6���D-<a�6:���m�
8c����1��W�;��V�V�*���7�������g���4jV8��-<�r4*���q��R&��i1=�`�L�<P����!�'�"�E']B��\��#?�#�������O����e�������#>�dn�0R��,����;��_����p�;��j1�����i����9LG�-��[���7)���u�@��XIo��v��V��M��YzJ��;��GX�����mT�A�Sh��/�+�.��L5�/@��
K1QS�f���8�[>����4�p��z����?��]Z�����xh���>���/��hVo{$��w�4��3�`�}�mF[���r����5���|���LW3Y���w�6�����6�_��(�����>��������-�-�����*����V"9�����Q���Eu�K$v�6
k��_@�������r�+��	g�k;�j3D�W���HZ�`�v�6�\�]VH���&����c��]44������+�Y&g`�
����Tg+,�I�p�nR0r�\;�l0P|P�N1B�P
������%3�An�]����%�vy
��v<J�+C���HI[
)[aI���s���<a��LW�&!
������X���q����Y1Fr�.0cn��g�����{y��A�a�&W�AH�1��bM	�i)�t�-B�������Q����H�Q�fF��	u
4��j���_B�d�W����[^�6	����RX@�B���77:�Y2v�%����==��4���D�pB�8��
����$�����!D�MB����dy;�?q��,�T��g�����3e})��o�P���.-�����]�:I�����gO?~�M7�&a4�S��[�U��m�<h����,�l�L�a[�evdsl���������SC�������b��Z������D%�[���bp/8�����;��S
4�z�I:�r�Kx��n��N�=l=
�PL%)n��w!���jz6���,Q�u��U���`�]��.�AA�j���-���@w/��G�~��'O?{����gO�~��d����ZFo2���:R{��}�Yf�e�,��b�\������ x�C?��J������+��0I�rc4�+,��C�������w�:d�D2�(�_%A��<���8�z-5�Lq��(�*�[6�6	��p��n�bK��z]*�9��+n9��,yN�	6)�y�n�o�RB�^(��R�^���.���������M��E���Y��=f�1/;XHYN�k��!kJ��R��X%�pK�F�L�KB���c�m���M0�^C�u>:�8'��G����r�� ��9'��uJ��S}����{j�}�$�e�iT	�Q����g1T5����J0���O�B5� *L���%�!)���*,��	V���o��[�
[+jQ�B�?	��	&3�M����R��D�1k�v/�����X��
9�5Z�,��{n0RSe���j�s���hh�2Jw�K������5%��%�Y"	�B6I��s��R���	yK-��Nz��!�������9�z���?��J �&��,�m������M�p�����?S)l&���@��0'�Z��?4���9��mR��rO��/<{�`7�X�t�n��^�7(�"�PI���l��imF�Yib��om��	R,����8����{O2;~7�M����ni:9���F?���?��I@� ���}r�v/{���Xk��\A��m��?��%���?h�����o%�Q�*�m\A�5QS��D
%��<���	������,��T?[�,�	���q�_z����& }n#K7)�y�����K,�� -�x��`�^
4!�XG������^�!WE�i	_;�MH��blZP�c��z7{$��&���Cw�6���Q6Ic���>������5\a���;4��)��a��X�������$�{���Fyh��M
ZFV����6�A$�3FJ��%���s�2��������&	A(�h!9i2���[���XJ��34�����&o����7�
�)�Qj`7�>�`���%n��K<����NSB�����g���x�&���>���BU�-��\�L��(Il��-9�������r��H,�t��T�&��U���E���^��-�[���g�wc�d#$����r�o"������N�~����i��=��������n�(,��K����+,g����6���MA�j��H�2�*$%����T��$a�-u�%��E������	�.*��z��'����������!A� 	V�$`E�$�w���	�x���.��xu�y@79��!��$9���+J�?���s��<�����6�� ������eGu���[og;��g���
�x����v�JH�T7�k�����w�s��(�YC	=�4��.������2�pxz���<p*��``�d�P 9����"�V����a��i��^VS���m���Jgh|��2���+p4Q
�}5�� x]PO�_pH�o,�W=�M����&R-t�!1�	���� ���!��	��WYs��Y��T���|��Xy�{<��M�����W��L��I�g��c'����J���L�7��X�RaA��a8y��J~��D����^�daz��4���M�/e���=.��-U�)�p\���"�ok�����xx��N��$3��\C�[��*�@�j����g{O������M�>�k]w�.A����	g���:�,���gM1��9���R\^\����/G�����������1���������_�������&�O"\��aJ�4J�Nsx��	'���0):w��&HS��j��B����MD��Z���}�������X�d��h�>
@W�����H���`Z�s)s��~�d��\�^�Z���x'�����x\DY���84���Dj�eBY��7�jrt/s�X�Q!W�I��cU�+,)D�9fSO��Y#V��a3��@���M���5�{a_�[k�$�^<{U�H�H�FI_$r��[,���Rs���%{�$���	�!�n�����A���+��BRR��O�[�	g�7W�����H&������ �6����n��5�&�^��������;U�����x�{)Jz������]4���HW��eE:�M&C����3����s`X�e����D�������W�ea�(���g{�=z�&Z�\l~��@��D6����j+'��r�d`��*w^�
B�����H:VF�3��I�Z����T�sH[x�'����!��N\��`�����yN�zZD��"{
Il7Z�R���s�x�J�����^�(���D�$���������N4��V!	7>��������iy:}a����V&-��
?���c�����XO6��k�wc� T	]�����$X�@Nx�2v�Ok�P���M
�y����r�C�f��F�9y� 	V���*S��D/������W|<S�����5��&����G�b�%p+�;A�4i�F#6mR"�>GI����9]7)X"��q���I��`�����b�1^A�0�n�BFr���;X��:��0}D���v���a�6#_l{�&a$����r �ber�ua�,���%�Q��g@Y���Uy��`�c�z�����������Z�t���M����;?�?�=�������O.GX���:���b3�E�����E�'s>��	Z��J�
Ih�5��[���.GXT����f���x���C��a�'��H<�]%6����B�M&�������T7�����&�U�,�X���6A�gFg1Z�����������{Xt�B�;�o;��Y�Y��_��N2��"�h��%�����?�dY��NF3%��2�k��3�����8�5(�}39���S;����`�^xb3�o�$��&�P�T`����}���?���	�X�Cg��h��������?��������?�����/��/������w��������6�7�o���	����G����R�s%m�9�+�MD����s��qP<����2��z��uc��rL�6O��B^��!�JY-~�|��+b	i�`&�Lp����^����5� M�(S<a�Y���8��"�>��m���p�d�������^�Z��N���E+����l�}�����%��j���Z������������q�%d��4{���*$��������t�����p�p?���CIU4��Q��L��d�����"�B����o,f �������>�M�Y;��c�����8x����� ��z
%��F;�jm��7��_J���Lx��G���r�"[����@���U���������f�UZ��eD��^�=k���|/#����'�F��
�pC���������]4�k����E�����l����0&XHs+�v�k�	�y3����� ���~�u���/��Sa�>��L=Z� [X�(�������g��{O��*�<9���^�E��$�B0��`��9I�.��.,+,�u���a��jY���#��g�` �v�����Xu�
L��������D��N��N�l��Xk�����������W����� q��D%��#�'���[����{a��>�48F%�7�
�����������������R�&H���7���/!U+,��0��4�@R��)�z�� Q/$�y���s2�o��\��{Y������
����Wx����VM� �������t�d>�5�$W5�a/�6�"����D,�m�7�A���k�e�������B�"�&��T���$,���2��p��� T{]~��w@������@� ������m�b���.�c��@Zw]\����6�|tr����@q��",�H�L}���s�L�4�/�;�j,��'���h��[���R���r�^����W7�k�@2<��QCmhr�n>Sa�Uc�
p"�+����0����� ��������n�	�y-49�/�����4�D�`������y)���K�cH�h�8=a��y������-����W����0�G0z�o�P��r�Fy���M
Fifn����2�3����`�:��e�d*�L����T��'
������0��V��'f���������d����S������.�X��J'�������	�x�V�`}�
<@'l���63��(
4!�y��So�7��6�+o���~�bY�%��xv<::3+,���Yl��<���M�����Sp�S���D�2Nj�i)�dM�@<���A?���.�9����6�d���	�^�7�<~�X�,TY�������	�������N3�Mw��?�
6~��F���G���~�5��fn+�����!������/���D[��%��[aF�5�k(�N�����&`�V��2B��<Hsc';�	(U�h�7�uLj{}��'C���wQ6�����c�H%�
�,������t�`�'Yb>�
9�D�������
;`3<����2��3�	���9���]�dh�%\ZP�w�����p���G���zz�m�L���>�x6��t|�������9K{��J��Q�jn�y��h�`�(j/l*_d	Z�������������f8�a�HN��T/dvyh�)g�QE�K�|X�i1U��
M���^���[HY�#�s�����[�8�{��9����<���e��p�rKcgf��v��.�+��SS����%�4�&��D����5��]j?T`�h�������ze�	���f]g��������&���f��������{���,y��v�W�)'D�M�\8������9z������o���?��������o~�7��($q
����.��'�x�m�Y�#D�E��*`��,�d�i���lj(a��9Y\l�:R���D6)�t{o$�J������ZZXlIr�����������K�E����m��s�y��y�� ���_P�����A�\F3����d�
����A��U�^�Vp�����>���S>�e�z���4�:�XM8�
t,O
�(��0��9�-<��l�_DR8��w/�&7Za�����r(����C��fxN8���/+��
+�����S�&����	r��_"�w�5M&��& X Ynjh��x@��M�
�1�)��h����9�u
't��#U�������������#�a��R�-�V����B��}����/pfm	L�oOe����Xk�$���^���&�������9l�����v
�i7�@���n�I��o����q`�`
L��i��:��*$p��`~O�(�0���R�8�+Xa�'��!A�6��U|�H��N�5�������.�@��������E�9����b�n 9�1t~E��@�q�+,CV��`K �q ������w��% /�M������q�U��C���!���t��mqPnU���C>?r�ap������XE����y
&�?���|�#��F����x���0��~_0���N���Q��������0nA^����=���HW��^RQ���"����8�m��px:o^5t�+���Z��PaI)��bW��$��kQIk$�>~��M8���K�}{�$��GX�7��3:��T�/��A�A���<�o����������j�
����]*!J<�C4V7���
4�����Q�(��xho'O�r�C��2��"�<�ha�&���Sfj(����-����a�'`��6�@�������)�q�~��nE
}�PN/�T�tl��gp���A��_1�|�k���2��!;�����i���Wh�4��i��������w��80����A��<�(uk�p7%U�_3|��|�+,!AV�k'�[A)�pMI��XJ��\�oR�$|o�1��Q��Om�� ���+��A����{6����h|~x������3��/_�^�^:�l1u/�VISt���z������I���!%e0I����J�C��������-��hFT��[0$Xa��t=T��%�������?����wcLY
��x���R��Jd
f�oqt/�wG�_������G_cg�&��?��=��@��k�`���^:�6��"�$�cG
4�Z�h-����S����aS�����N.���e[�/Y����pj���N�:��<�;���|n���6lsl�IDa���H�#����o�Bz��S�\������'��\bW�MFB�<�+$�6������q+���u7��P�^G�&�Q��,��p�vcOQ�������n�
���$@����[x��	?+'�8f�����
�=��(�C^��w�������;
�Ih�F<v�������A�~k%|���5����r���&o�=m�iHm�>�Ro����	��yO&������/�C��N�)�[C�u������C�5��H�_^�3�
Lx����n;�6I�BO^���Zx��DW��c��������Nu�G�6Q"�9�q/�v�k
��Wp�p���+�'!��9H=�m��m���I�]_*$�����0���h����	��8(������P�xV�����
4'�$
x�I	&�Y���!�`.p
����r�>���d���<��e? 'B�������pL@�c	$�n�5����$�_pe�b=�����vV���m��X�u-�S!
�����flRm
����`����`AoEG���������&�`�.|����2��R[��&�6	��������}�t+p����+&�+(�*Nyh�����F���J,���`�JtV�8v8&	�t�-����[�s`;�sn�	9G2O��T�y�-|��nb	�����[��;oB�]��HHS)8��Br2���pN!-Z�dX�N=|ls�9?�9��$�c����P���FQ�m�4[��]DS���(5�����fg����[xB�S���`��v��U���K�
B��B�.T���P�v��L�$��",Ie`�E���Yn��h?�5x���_ph��)���	(y�����(����������R1�7�x�`�It7���|�v�Z�7n�yP����P
8�pA�C4�p�8�E�p0��i�"ed(F�lR�ci.��7����f���rg,�H<�``�M�z��=ta�	8Ep����7��_�Y�l�65��5��UrW�(�,�]�:�s���I����r��_�/�/9i���h��5x0�@�+����X��f��qU����p��~�K�W�2I�|�6��:��&`>��C��J�Y��8+s�����f��'}X����?�/����������+|�?-��J������������UC���!T�@w/������b�5jh���N.��a�q
�^��;�$l
\ri�n�q,���Dcc{�6	�:_j�
�^Ei��7��&�����&���-�L\o��rU���N�B�z��1o`/Ee����2���}���8WH�#;I������_/EFn�P�j�I����j*(��@(�t�H�796
4��������)
#�[xJ��|"�����<7*O�X�t�A����v�(R�iPC�������A�*$�o������� ���c�����:���g��]�� 8,��s�� ��� ���0
b;y,P��]�w�����"����W�:K���F��b��;�.ju��d���!Ijba�
bQ����H<��c����^���#?��&��!6��Bn��`3d���8�&z��J�����b}�M�(�0���v/�:PX#�H�����X�b���G�G�����h_|��kh�c���������|�\�:��Mo��b����r������~��ZVu�E�(�������P3�����&J*�[|�����[s$�v.�����j��n�U���nn�*�
�Q62��M#�<#<3���DBmf�<�l^gd#�4v���G��FgF��l��@3�M�� _~�Kf�{E�>�������~Y�n����J�?����/��Rno��Z:D,Q ���3��� ��k�p��D�&6Qq���������)�����uP�Q�L���o�JZ&Ae��'>h�wr6�OD�4I�`EU��.9IdR����y����_�N��	���JO�2���V;�G��������UN��==��q\��<K�G�x���|O�$V����;3w���qq-<QK����
��������2� 3��4�	�<sg�o;��z��}f���
P"��<��/��������;8�i�#C���)d�E���d����l���)�86MF����q\�6�#�
�����;���8�5����p[�R����5�<����<{�s�^"��LZ'K��X�COF���5T("p2�#��A8�Bo^��7B���P�H��Gn������e� s�F���B�5 ��m���/V���":nJ]���$�:	r��P�V����	��g�I����X�@ �(pi��E��%.2��:��w8��~���&�KZ�x�\�PA��($r��6����	��{�!�	���=�[,v�t��"�H��}<�p���+�Ly��mb�g��������h
&������,��Vfr��_���,vM8��2�Z���n]&�c!�6�/Jx�����gob�(X�������w��Y��p?12-s7�W�P��2������_�l|�#�����C����)������]�_���{u~�;y}�e)��fd��B�i	q��x[��y��TAHM����Zx�h�R�iC�eY
�D�q
��&p|yt��f%�����M�"����p@
����J�9Hc8�	�;Z�N2����D�H�l�U��tR�b)FX�*�.!���eZE".5�*��
��O,-�n���co�^)6���g�9�M��{�n�F�p�9�\&���[?6e�6�6����N�"G&�����"�Os\������F��*������H�6�$�,Q�<�"�8�����*��z)��Cv����c;\C�@wj�����I��		���P*����A[����{(�R
i��;�>H�*�;�wR�z8s�n�
����o��q�Qt�����
@M����<<�#w�rH�R��'��`��$f�bQ�H�Mk\������D
?������:��<M�����C�H��g�|?��uh��D�H��Y
��b������X��8�S#�kD��.$���#��y�{�Q���P�!SY������r�v����j4kY�t�9��lm
�@������%��	�*�|����q�M����R*3�nP���>��^��O��y"���� �C��*��U,��`�V,��-�[x
7.K���E �#G�(���W��E��k�H��%�S�z(�v�:�T|���Qs���0~����J%��������`�QB��������P��{���tS#�p�
4kj(�!��y�^^�_tq�n�ID���[�I>������M0�q�&��f�J������'39����h�����UX�4eB#=��w���C���L�J��sH��D�2c�.����b�g4��9�[ �7���9{��!���b.���
K�/E�J)����,��<��d�����d�bI��� 8
���o0��
�t��&F�O��o=���S��6z��3����9��/���M`���e�[*���f3��l{�d�c~�Bd�%
��x!�QUX����Rt�90���r��j�F�k96��#)|v��Z�s&S�;(����	�=�NqC�z���wO���m9o-a���|y8E_��H���L�^�i���������	"����[���tM8���#wdVD���={���@�$@"�z�P�\���A
�:���� �_#t�U�4�T9�ra������$6�������(�<��5/s��Z�D�p�����1��x"�8Z��&@4l��|7F�"XX�<���r�,iq���t(��j�<q#3pF��6��ZJD�:(�[x�t���*����&��3����Hp���#l2�d<c�x�P!�|
q�V�H��%�������w��R�m��uJEs
��	P��nQvd��b�<1�'����b%�&Va)����@��]a7���m���C=����b�Nl���B���~+
8	sZ �cTX���Eq�LbGT6xj�SQ�$�C�sMt��Nvq�%Rw�����L�Dy<�E���uP?��@�<vGfyY(�FZ�kl��/�-CnD�;H�������)��]��&�D.�e����B�������j
p�m���;�. @�''o�k�7��%��v����z$E��6���f���j0�p�2�7��u���1�c���5x�>�;U����4K��K��u��X;��Ko��oP,y������F��.ne<��p��6�	������&��)O���`j0�P	� ��9Ud��R�Xp }=�R�8�R5O;%��x�qm"n�������<kG�-p3@	e���E�~�"���0K6���E��lk�-w��l�$��Oh�H
|����e����������9��������������-H�c�[��|_��U���8�%
�]�4.	u�H��Jqh��<K[�-���}���6����u���$���[Z;�7{�
"�g���	'h}S�'\ehr�������)>D� ��?0��������e�)R��@����n���a�Wv�����Je����c��
K�	U���F25�n��H��:�g�.��I�
X[���3�}w��� ���� g�]�O�^���~��u��}?E�P�������Y�#��n���c �n�%���G���>�|�1��@(lA��nJ�ut6�n���b��?�*�i+���`3f�fXawJh��,f2!�%A��QY�p��	��q�%��,�ik��FZ|�a���!��y�O�����)N�l�	�,	�#2!r���0�l�qd�t�R��������ue*�����������*�����e��CI�9����H!�������*0MMuX�7�;�lU�Y�4(��,����0_��<K���Kt*�6�����5�.L���i,n���<���4��+7R���n�7���:v�[�p����j���w8��n��8<F:�R�hw�A�c��V���d��	d����Hb��G�b�,��� ��"zi�A�W�)L@�a"S1��K\o]�A �.2��i�}y>����`�x5��p�|��2\x�zJ�"c���	�Bt�y�p�55x���&9��:������?��������������?�_�������?�Ks��Bq�	��H�6���M 7J^�A���Z��s\&M��KG�$b���+����+K#�];�%M��t�d8��w�_z�U.���\���+4v$w+�jLD�'o{���g�Qu�
��L���e\�OD����D�2��4���
)�����(C��[� ��;��Yz.�J�k��0�h�p2�Z:$f�m��d���lx$��M������������0<�r����L�|��	���X���: �}�w��8����/�<C�^���������%�9�E�E�A�s�S�2X�+�R3{�X�CA0:���$��xU�N��K��13�%������.aR���(k��"��?xM�a��/:}\G�,�V�<$����������L!��r<F��J�F�St0�*?>l�Q��_Gp�F'M8���c#�=� R�E<�
�(u]fl�ebD�����P���"�~�(E�]#�*X�N|�-d)/����k�w��x����MX��q���0���Y��9V��J�"���3������Pix�Q
&����[��p������t[(���U��:u������	����~@�	l�w�k�M+r3�"�N&f!k�n�+k��$����E�Fs�P|�e�y�I��J�P��	�W	Q�e���*c����qk-<A�������J6J
d�m�y��8�cpe(���LeR05f����M�"���_����@U��
��T�YD���D����{���S�%�`�<�
��"-<I��.99�p
p^�����;�B{i�&�C���j�a�E������������Df�H������a�]&A7������������?�o�9���o�����YOi���[�I��N}������-2c��D�b�Si�H�/��w�F
bQ�)��$�0�1�kY �U";T�[���$�l�y�64Tp������g2���vg�z��,[vg����Z|�g#�����NV[���QmESy#�3�^��<��h�I,��)rx$�~h�����S��`]����y�z�"*M���uY_������S�4��0Q���P�4~�����W����h*;��]�b3s-�����E���N�Z%B���O��������sd��G�M::��y<E�)��IJ��SM"Oc���D>�<�%rl��5t���c�V��n��1����g���}�b�7��J8�5�)jY?�xH�h
K�����D�~o����nFV\G�`���b���.��.��
+D�����<���z�8�i�i���~�4F��C�G�: ��-���z�WH7�
K!�!s0: A���D��`�y��B�4��;��Cv����cn5s��(�F��c&���6�;�azv>`��]���9;��]�/Q<�C���C"��L������<{��?�g���7���o�������_�����:2TF
tR�&�.��SP�)�ES�N��`F
��\,-�d��$O ��Q�'�8$MnH���u�N������J�7m
`��������K���E��S�����Q[���S�������i�_��3�`�"I$�r�;���G��g��I���S��Zt���l�A�k���A��������������(V�#E������K��87"a�c� X%�y���V�H1?$6@�'��N��C���#���mK��/�|�%�������R��a��(��3�����������-�������C�{�������{6��2��f��y�Z���n���YZ���bt-�l&|����8��	�<se��d2@�>pn�H��vc_�!�������u����~��ppx�c?z&A��)D����������8@)bT�<�(�ry��Nz'����/TQ/v`��,�����k(;fZE".�!�D�	u��K�������
K�4'��������N�Q1�W$���nX
�����&|�A�x��V��q�x��f��g�>����T��Z���%������E�}��I�"�LU^�?�E:�[��(=��q��(�!���'X5�*��n�S*F��N��=0�~�c/O^����
�7��W=v��
�=g���Wo�������vI0B��G�!�:S%v�$��k"�=������WN%�vLq�J�`6O�	:3`	8)lb+p�`5x����������/��
]2s��f�[%B�9���GY��xQf�T�5������9M�`�!e��L�4+q��e�g�NH3y��S-��Xnu������3�4�����H�Q����$`��m��&4�}��Y��U*�g����{wH��eR����5���Y����S���	�A,��k��#,Q �5v����.��J��!I���Bf�)�	��-�e�:����!G��H1��F�&<v�l]�W�g�wW�����8��5T�j�C
�h���d:�Nc;��%e�5�TX��nEX�V����
3����&�|�!�E���L���!�����tAihY�M����9����;3��x���
P��U���	vlm�w�Cn)[n�%�FA�Nx�V�-�
#�e���e6�%�y�������p��$5��]��4J�D 5|J0��qH��lI�D�&�
����4��N�3T�3<1Cw,�L�r$s���Z:�1H�,f�����|�R��#�Z�HPH&S�e�S��������}�; U�K�T�J���
��Yc�����������?}|��L)t/����3�\xMml�V�����N��A�;t�<���]w*u6*t2�e*;�j�R#�"�F%��K��b���i�m���IG��-R^_"E�$�f<I$���SY��[�b��U"�g�m��b/@	��o3(�`����;��e��%��+�dJ!c<��&I�O�&���5�I�Bt���^[��m�-�}0@w��]��r�Z����x���)�!��`���)��&`��Cm����Vn���d���#w"NV�
Sa	,	Ze�m
D,�.�K�X���L��xl���k0��[����tbv�l}�L��Mj��s�\L��|������	�he�thO���.����Xe�f�m8�h��;}6�3-�f��kk4����z�$�����	y(�P�l[T��
"������h�Z���<>?;>����
���{��1��>e'gl����8O�{(����sr?R).�����NPCd��/R��2g�"-8.b~������L�q�C�4��4�bJ����7�����P�X�V-*�,��!�@23��XDr�q�W���;��1� 94OTm��K���F����6���T!}�[����u��[�AU#�{wx,��C9KY7��$x�&~k�%
,�sc��9���A��~�M��[�������X�X�q�������J���l��\��y���aWN6��
��}
'�.� �U�L)��?�g��w&��F�T.�N���s�����F��K���2b�g����?�/	��+�>�]���������9�����;�"����"P5��dg"��W�KX�-4�����Z�X 4n`�E T
;����������e�K4OK"�Z%��9�����O�u���:NZ�DFf�
K-<ICH!�
�;�	�<so��oP|y�������l2t��O�����
A�jo�o|5�n�u-p
����)7�^u��h�����z�G���1�	��'wYM
*t*J�hW��Z:�g�w[�Y�m�	|�"��z�d.��~�"���sO.�TZ���
�|8Z�ut��[��2)d����Jp20-C���.�d����������4��4M�}��^����5��4/x���,L�C6?��//��s]���y�'6�f��$5���9�Ma�,~-�Hh��������i,qK�����-�@�\��dH��\��a�E�tO\&A��E���/c�8c$��y�K5��X\Ce��>�*����N����MI�������6�
����f�I�@G�x0]�u�2�:sF+d�����n�!�8��I�#5S���������C��Y^f���N�L�`����V���	j������U���R�+n�������k�w�=��{v>`gW���M+4��6�b�T`n+\tV�
��a�dF�
�y�_�d��g��������:����>c_�p�8?D�&#:M�,KT����X������[:�%)m���uI
��SL����`�*�nsK�o;7�
����^�_^~��G����_&�n�[�������1����'X;$��~���p�VF8@���	.���Q�����f��&A�$��$�g����B�j�:,�L�X��\9r��
K��vn���M2�DCk�z��7a�Kk�l�4��s(�6.�n:�;����ZB��h]���`��o�7���G�%n	P����9��HM��IQe�����L!���(�$��}������)nFK�F55x'����c�Wk��;=���b7)k�	�[Oo�e�����
��eT.�
HD�1h@q"��R����	k�y����>��|��zr�s�}�)�lCL3Bv�n������oN������i��������;2 G*��&��4�����k<��K���4�[�-|�A���C���)���!����=���5����VWX�AO����7��4�srz��(�U��>�2
u�����@��3��<���!�'&��m{�dy��5��;5b�x\&H�(P,���'�WX�^��d���
KV[x�6����������%��
K�9��FO���
�
���\�iQ�:����@S�ESy#��	��8}�
���y�\]����F1�@��V����M���wf�1;��x�������6��+$;���a���X�<�`��J�.�J��[��:c	��M����XFR���Y���3k������g�H)����U�$8u�&�3n�����>@	���	��-yT���(S�����X1|��%���q�q��L� M�I1,��L���L����7�h���������g31����;�Y�m$2���
5����&A�M��Sx��u��U"�;�I�(��VFLH��.I&�������(3�����LVhP��!��v$:�����6�	||KNU�?D��;������DJ�H������7�Sm}�
2���
P�)�]�)�YW$f����lq�8��:a��B-d)F��L�@�6�o�'W,�����N�S�h9�5�������~�7�7��R�l��pSmN&�+��?>�i,��������T�2dj�&���S�J�^Z�g���������(>k0�'q�Kd�B�c}��d���m�mm�d��$RK�u�$�������y��/pY4�B�dF�?E��t����D������������?>2�c����^��.����{����x�����K]��E����k0����T�Fdh����w&,.g�}Z<vw���5>����5{�\�y�Vh��>(t�'����3�
1H�h��}m>�w~�V���M����9xG����M<����Y�ygA�3\|�:2;c�M�m�U�WX�Hbl��jk[��e$�9�#$�v��dA������#�������������������m����:��/� H��
3Ro�>��_�����3��\�.�����t�*m~�.d.�|�����Oa-�q����$g��<KG�������
K���N��o��/���D1�r���n�l��f
���z�M����������=�_�_,���Lb�L�]�N���F�&��J�����'�NX�kD%�x�0+��,�*q�����D����%.���v��-�+,����3����V�
q;�`�c<���8 
C,�fz�IE-<��6����`UU:C2��	��@l��
�h�H��]��<[[��U������=�q]`��K���L�(,����2	��|���Jl��3z�X��T��S,����A����)����(��h*S�x��d����+��2o��$f
3�3�0R�wh���oP��2I�n��7��`sH(��!"#��y(��]�>����3wz���Ha��=��L%��3����r�}��'��vp�9
�#�*�����QY�:d�h��8<5$���
�y����]�����`�q��h�L0��|���	�H5�m,p'��r�D�\?V���eoD1��d#|��t�������@S���Uc��^k�P���X+�C���F`
�./'���3�
��6��0)2<��RH���'g/��E�-
=�`R��|	{/����7Y$6i�,��hl��@�ql�R�%p���
0��)����~��x�s�|���1���,4��{�B$RI,���
4kS�N�0h�r����	Qu'6���T��=�!b�:�A�1dy��
���g8o�6o�n�7$���,0d	`���a��092�:2;<�)s3e�f��S�]�A��h�W���6�J����)�@,��Z3��m��N��D��I��]�$��D'kh i��0�����
�������Km����:$j������_a7���������b�(�X__����p�|�B��4No�$g������S���"h����u�W_K�����|�f���;Gb
��m��2��p'��_��|�XY��c����qa+��@�`//O�&�&~G�#x?�vY���iWh�"�xas�`c�j<E-�f<��Be@M ���%F�^������4*�����a��	�f>i�b�;�2
6��5��@^�L���x����������<���:�nZx
������)�c�c�>$�{�L�.4����2	����#��
K�l��i�
\v�6�f"b\v��<K�d������6���n��0A"��R��~^��<�r���M8�	�z)~s�%
�7���@�X�9������������fO��1�5C:nx,A��|8��/��:lO��t`��Zx��=y���
��Y�	��������A���p�����:�2�M�Lb�L��.���Gg��%r�i%0��4V�n�r+46�&�K�|H�6���4
4�0�����!vmC���#�

����R;�a��aZ�FB�12��I�*�lKS'K�D���|Y��S��n���������0�1{�2	";��%�HtI<ih��L7����W�m��~a��m>���o'Nx:)������<�[�=�I���g�
P��a�f�	d��
q���d1:��@f2����4Q��P
�����M�h�����0��^����$
4��;bQ�WK!��]�����
w�t
�8���R�f����C	����x��6��

*6��d�l^�.E�>�R��b9]Gf����$&[�<
���7$n�n�����D�?D�����s�q�`
��zDz�!�Dj0I��`�������X�}*�}��L����m����W�KQ'�!�Zp&a{,5.�M����Y��FKF�,x� �?L�����n����i4�Df0�C�N�5�f G&�P���z7�D5�O�O��o��j������-��%	4�$vO�L�1�h���Q�	��K�������K���%hK�T)��<@	��E1U�s���$����-M{��P�4(le,5c����FN�i�.��$a,��ZB��L�5r�
�$���������/c"��-
5�R���:�6N�]"�S�i���e��Z���GR���BC����$����a+�#�KU3LB#��K6��Hs�LVai��pz�������v�(%zD��X(������hO=F��gH���D���"�e�v���2u���nn�T�p�:2�`����&JB�k�T@��(|���l=�m��J���i�Z6��?���?���h��?Q�5�D+$��h��	�{��������aNw�N��s�2-od"&R1��+��k���AzTN��w�����������T9�:$����@�vJ����=n1��d3��50���2
:�E7��5e24�P�[��`�O�n���d�k�>���k0�Z�3H��V�L��P'�5�t���K�>j A��$��L C�h���&���b����tV�l��������L���dG@'E �b8�^_��������evz�Z�?H���z�q������x`j��2��3��������u[��<[��j�����*�����	RW�����\�O��o:}\���^�H��oLi�	�L�k�D��B4�n����4���*1u�
�I�>���F�%
�Qp���v&6�o�S3�N���-`	\�qn�$����7'���=�0���)w��~[�A�#�T?��;�"�nA�?�D"�� $���.gA_�N�(��@l��y������H1�����zj�h��&�Hh�a(*�
rbX"����u`N��0
��B(�K���	���KB���TZ��p7�FM�����X&A`��QiZ
l&���e;Z�a�iC2���clb�
���g���,P�9 A��R���Y�fZ��%�:2�3�o��r!����*,[�[���l2,����p�&���Rd$l�d�Z����
6X��|k��u��#35�$>����$���<-�l�S�.J�����lq��ul��$]�����������2
�-�-3^�t�-��`d�3�Gp�n�)�%�8W����-�6*��L��<+,� 9�2V�	r���_�R�8$��Z���,���]\�*�����k0���Y����&��9|���y���/Q<�$t�0Wq�L���y�c+@	$�I��`���
Lg���=9��c���d����<�q����c��X%_O�^��(����LS���(����=T���b�����Y������lG��&�#�����.����O�$����i��O���Z�����v	Y��%5��9Bb�.<�4(�c����=�,�Z����C�

�"���Du����S��	Pd*8�������@���=t�m�#J!Pc7,n�<�[��K,��L
�����
E*�H����
K�����'��J�EZq�U���N'%GZ�k0�z8E��S���F�Uk*���3�M���A!Ie1���Lb�L^�_�Xn����K��	QH�3����3d����Y2�i���"�#j�����������`�~���=�)��B��<I���}Mak�BOp��
����FermC|Y���*�b~+g���='X.�p��Z:����x��h�xa�����R	d�J����	���Y�)�n:��������������7������oQ��	Ph�p+��(i~�s��8vX����G��������5�:N��b�2�`�d��"�L~w�� T����WO�>�e5Y!B��y�r������"����:2�gv�
���dfp��k0�l��6v�A��2��o�i���!7N�A���j0�����L�"�(��Qk0E�Os���-<������*,i��6���@��^M���.:
Z�$4Vy�-%�v��{����	��<C':�jk�FdrP,)H����Yu���Xq'�3����{(��UH���Y9�
�p�
��|D��#r��8�����
[�Y&�d���@����F[[�=?���; ][����jl��Ol5R��J�� 923�C�L��E�
�M�M���&��qF0Ec�,�3��F��M����(�'16S�;�Lu7R����d�mo"��K=X'J��+�d�����C�����s
�Yu�:D�7�;�u��^�X�a�e�\������O�`���.���A%�����]cn����*IF<�%��$Q�c������N�2+46���7����i>B1��
�5q7���]�<�������g�"�i4:kkMd����M���
�b�tj�M
B`��,��#��X�A08Czn9Cg�k�i���ll�	���q��; a��f;^G������Y�xG��2��HL/���],���1��`�i����K�i���"mDZ��M�H��Q��D��m���K������X���Vhl��;���T��~12}s?R�0��tvja�B�
6���@�5�"�����W����V}���$
��t�NS�#@�l��^�n��V�0�(n���a%Y"#�6@���g�PL��X����G�'��E,�Z�}� ��dA"BA�O4�	 M8�����&C]��������m�[�"bM�+Tv����v��d*���=������
M�-xMM���QZx��B��/5�rR����|�����k����OI\��8��)����#	����SC)YT`��'����
�,�p�#7���������a��N1[6P���}q�
J�t*K�>�.��g;<Ally�1Va��z�K���#�>�Lc�3��	�8������� @���-n'��Vy^p�_�I�~�t������H=�Z:ZG?:����n��U"4k�;�v����ETE$2��$FJ|+4H2��./�b�9,E��� Y6�Ze�R�/Q��u��o%�m��ObI���o5��F�S�[�F{n�j�j�fz�e\���l-!�\�����T�����M8����fW�	d��%
�=�%��{w�T�,6��[x
������c�?p��K��y!E>N8��"-$���^ZdCO�K�N�M�"��Vg�����
L��@/;H>dY�ti:"z"Y&APk��$��8^hRa��q�o��<k	l��>�&�X&A�d�us8�j��Y����Ya���)!/Q �fM:cxSv������G���s	S���L�N��Z�`'�6��3�3D���]M&��]$rO������+7((��[�������W[FE���c
"�6ne�TLurl]&A������2���0��_}�g��I���������
����������g��w����j��&�L�H��An�Q���	*����V��r��J�A�H /X�b�;VO1��f|��l��|Pp������1;`SUj��R������Op^�
4A4a9#�NJ6�u��M�Hk����D�Me��|��&P��g�c����'����5h�X���~of6��(\}�Gk�&6���	���Cw&�;Ri��!R)�@�y$%nvHS����~;F���E���uM��J�&���!)B��	$mmh�k��5@	�B;����|�\	���<�6�0�?��<K���_�����������i4s���g��>R5W��VZ��o��/�n?�~�rr���]���'@"l����L9�%�`{v���O�DBB�n�b7iP���7��++4�j�S5R06I��f4��-P E�%r����f��d�2>�C����Tiy�\�(l����~�r`���9��
�.�N�^�X���/�4���H�K��<[��������[�V�M���>Rin9���^!B�{������O}�B����
�{G��D�fC�\GJ��$z���E�����:;����S_5��_��4�a�FH�<�2�����<k?�$�>Z�K��:�!��H�P7)e���Y����(�*,A�J[�BT<�Lc1:]�UO���rd0o�%,�0-g#�pQ�	��i�J�a?����J��#���z� ������<��;�8r�����g��P"�Z�9�����n�
Ti���g-<�`����B�u[�'�6��3��w|����]�������(�\(�#���p�H�rfV	���M`�.2���t��e\��B���c������G��8�f6"����,� X���,l{����}�U"�g+�Ip�d�����D����p
������'D������������
23����2���C�����:p��d9R"n&�.9R<#2�fL]cL+���:2�"*a�Q�:�nC��
����g������;?�$�h�U";8����-�L���q���R8gd����L�`�U:d6 ]����D�3��8�iH�;m����IY;��I��9�|��7�	'my�T�KDv�;�m��!���D���BY �	�����$(������d���������#i�YR"��J�.�J�n}t�=�n��iy��O�<z�~�EV���=�j
�:��%
�gq��a"n.�MM�����7c����O�	z`��dm��n�	��4'qV%��Kw`n��jxk�����w����B�����P3Q�E�z����`��i�i|Z��,4b�owJ�h�&A���_sB��r��)OwH�A��L�
���dM8�3W�q����+�NKL`�	��_��@K$���i�������@~�0�98Y���:p�YTN�>D�	���t,'��43�88*��������'��f}�$�3����lp)�����������\�%�Y��k�#I2�%%�VXm�|�/������8W�%
d�yP�vY�;<�)����St��T�
�".�DF�A�	��X�������(��\��GT��!�	��|���

*���:�+�.��������U_��X�1��}���9���mW�U"��2�fN���[��6��3���������b*��X�y����n�g6�f$��4BZ�W�l���buL�%�.QCh�y'���(�V�P���fR@���pG7��;'TX�:��G�L#[gA
�in��3��z����~���:�c��%�SI9CV]��2������xZC����fx�1��(�#�����J�������G�2/dj��In����Sn>F���n��awI���E.')R�W�)j+��r���D��w����k��Pn����5�������R�u`�'���IqIe\���~�`A�����c�
�i9�z���3q�ZUZ�32����n&x%�G���6Q���"c{3��:�7��`�y���m�	�<sq�����(����=/x1�f���n\\%�yF���D�H57��Z�s��^�t��.�j��s�WY"7�w@W#�!�=K�;4�6��3���D��"��$���m�R|�D�����4x��tfV�g�``�J5<�'�y�.*�@'��h����j��8D��|�IX��p���nrU�H�T�]����Le�K����A-
d~�X�UN�������
���������n��J�D��m��aiBy��jwk4Ao��NR`Ng��d�%���N���a.&�
��C�Fg	�<�<���uXF�h���^"�"6��g
��K���u��[���������0WQ ���f�Wf��������wz�u��R�]B�p����;���������$p������G������#SY ����\�|]����!`��!y���X]�A������$\��h`�e<�@�0�3� X�ps%l������~|�A�b�y��N
G��.|}D��5�n��#�y�O�����)Nrj������P��FX.`���7�#C�I2�)G�U��j�k�Q�K���t���E~)�bq�1�-l��89,T�1����i7�NK�����#@M��������nDL�!/O�;7S�&v��1�)�M-��UyE��U*d3y�$@�4v@�U���_|����:�'�y&��G��g��;5�e4���:�Z���k�Zk� R8]�rN�d�Q)R����U�l��;�x�>eS�E�q���z��0c���#F
&���m��NkH��c�>a��g�`��[x����h���,Cq���<K�������Y�	L�	���7��E�S��[�'l�)�$f�/�!dMV%r��U*r���Nc�U�d�z\�@�\,s�.(K�I���P*F%����$������,`�1�,���bd���J�2C��k�l�U��`*C/T[�����{�g���R"E��$�K��������M�F��Y������x��6�����e���N3����Ie$�`%q�����MYP��T^e�Yp���+�z��Yzd)?B1Ua���.�-� ������h����'<��Mm�����_����) �21��&�e;�K!��T�
���3�i�6R
7������
�~cM<E�@^�pB��t
�h���Z����
�OR��X�$�6�V6c_�?�-����m�'�i�	'�|����}=t��&9��[���}.�aPv�l���c���
�-�S�zo�B m�-<U��g�k	���U"��&�]�Vh��R61=�)h� �K��>�"a82+9�t�v�
�:ghA�}�N<�M��z������K�����{�)Gn����-�Dt�\��I]= '�D���@230~��&���u�\y$M�:���\�,����b�!;���L�;�6�:���:l��D�L4��;aD����� 3X ���uR������y1�o���$S�~}qy~�
�Q�F��.�#�'D�R1�!�MO1��5���'|H�

�4V3�+��R�����HRa��by9����D(�t6]�R����4����"@��p�q�y��v�%KJa��"/�	Jd��%�6�3�O�K���$�^&AP�9r���&�r�lzFmP�XF�D�2������WI�Fr���Y�TRE:3����1�$N��c�n�ung�)��h��;�R�L� ~���?�<9{�����]�n�[�A��y2L�
�kW`:�p���&���#���!���'�w"W�I2�q���/�c��Od/0q+�������2��<"3�z������Y��23�z����$�=����>Hf��G��y�>�3Pw
�k �e���`,�(x�#^=#Y����^���m
4s/�=R���������y��uV�H�t�u���|fwE�G_C��U5���8v���-�p�p-��b
4��,�n,���yV�_��s@�X��
R�l�i�;{��*R�=�-p�]�.W�52�~
��w���D6	.h���@S������8v>�� 	fL�9n����\&���/r�A��H�I�RewN���!3r�Om�������<9<=�=���M`�8��2
[�)�'DaF�p���:`�vk0]�	��$5nF�#��G���e�FE����}�������+�G<F��T��\�+)�'g����K�ep�Y���Evg��?�
w>)92X��R��v�+%c������[�����_�S����(Q��]��M*�]��Nxk&*���z�M`��Q�y$�z":�mm�2q+�i\G���L'`�KE�Li���`Y�/�-d-�4J���]"�X1�>RDL3���u��@6f���V��`��������Z��=u�i�<�W��%�1�W������v^+2D������1�f�E0K6A��,[*/&Z�����X|�tg��A+�o��J��I��,Y5�`�#!�BT`W�-<�j�CN��BOg^���sP����<b��� �8����	�`d�}������b�g4��#d������n��XM��]�Y���S6������H<��[{(���B`s��B#sS.���'!3��`��	������y�.���k���)dT���r�?@+�[x�A���7��\)j��RO��b��P1$�4���_"�i�7����n���D��6���!�vhV��q%z�ZI�C$Iy^S��D�D9"���&@Vw]j�&D���l�M-X�w$�[�������Nh5���OD>��/��d��3iq�4����(�I��3.�VN���;=�Eo���u=!�3�B�c�R|��HB,q��&�fe1�����������F�&*�M�d����T����$��%K��D���j
���k3}�d�ZBTw���E�5����(V6Ak5c�0�U"���T��Y
d�{5gf���0�r!��$J�"�mq$26�sa^������f-�_X�d���\�~y�����C)>3���l&b��m H������Ve!os���%��=������+46������� ��
7��w���z����wl g���p>�K$(��9#{$��U�i����&���O����n���������'�_#���I8I3F�C����D�����cMZ��>��!�HvJv�LD�CxVR��6�e
�4��������%r/�W�����~jw�`�	B�D���tQhX8�O72���S���9�46���go�(.��GR��jeZE".56Q�*����u;��.�B[x�O�M�G.�j0Ih>n']��y|��e2p@��b��ps�zB?��o�aKh�&2�
�D�x
�nDd���s�v�A�>Z;X��������K����� ���6[%B��F]3�Z�	��Z�B�����d�����S������&@�M� ��F�X
�����[N�5TH��1����Z%I����!;�9�)HdH$��	5nxT"�J0<mF�$��o��������(�J��'��<q��e�#��/��'��7t~7��!{r�jsp*�Ct�k�I�(S)Z+�<�D����^.H��z$� ���: A����� #�P( Y�bH�7�I�,_��ec���l�Lw����?D�b8C&��������N���;���af���<+�m�2�E�V��,]�D��J���,
�
�(�P��y#N����`���3������?��Y�H�]�v1��� SI�L��(�#�*
Fy�s|��`���C�:n����	V��*9�2��CR���!?c�%�����Y�5g�|�!�3�)���z�6�d��q�����ft|����W����y��*.�X���n����9���O�||��w���}���:2;��n3.iR��m�IH��
O�G���G��B`lE�q2L����(�U�n�L'����B�D	�]��7�e���M�Gn.��x��C�q���p��:?�H��Z@b�j�)L�>�#<7X,��)�:�U~�h*�vO��<K�F,"�ha�����R�}���)Nagq�lY�	z��D�����w�b��Nt����q��H�	!���u�$���M�D�$x:)��'_�IR���V����&�H�zBnZU�w��?�bU�I\���; �H��m�t1���p)d;�c��xy8���J�K;WhP�2N�[`WX�l/u�|��&
�h�����7�F#^p�
�3������m@����\�Sm���Z\��HA�#I��1�1��.Q��"���\�@�b������Y��%t�j��
��������<k��P)�A��r�|"W���� J�N���i�j<U���&�`��	���!wP��KB��L���"E~�T���*�.ZR��;`mO:�����-<��T�k,2�F�&XQ)}=�	\�Y
&s��2Gn��D�$&N�^�M8��@6���,@'N��{{B��W��S��E���}�cl)['�p��#ag�M�\aI"��+��H�t�2��.q-k-����3F���B��@�e;�`��qa�89���Z�o�����2��Tfp.��6��I '����.��+�K��D�$���W������
.2+=��0��b����!e�m�YF�lP��Y�`��
�T-��. ��7<��������y<C��Ta	��
���6�����F.�SQ�52I���������bj��������������[��d���2�Y�
�RMc��D����]�{�u���������������^���������K���iSO��$�~�����81KJ�t��r��C�ay"�'tQ0���HbqdH��R0��c�������C$A�&��b��N��,����`99��.q^"J��l
�n�5T6�*OA��@���#7Z�xk�	T�7Bc�*+,A�.s�6�W�M`��^���=� ������N�%���.�*�������D�,����-"��|-��K��*;)���'��?�f%����V��"S��������V7Z��_��{��|pr���	�R����Nr�

6;v���c�����Zv���n�Z�.Z3�eX9��R��l�&Z-���.� X�(��^����)�y$
Kh�H�}�6U�f�b��4G*���E�0�F%�I���[0K"C`Zx���0W���5���sf<�<���D�bt���~�����N�>�S)��Fo�����(�,n�����o/Q,UX

�<����l2U�y3@	fN�9N��H�0�������"5�����kQ
�/�mk��qvA�?�eJs�����B���Dc��M8��@�f�:�
h5�"���$�/�C:`���V����*,�������z3�}�Bp��~\1:������K�lXI���VT��
��m.@��b<�Y�����l����H�'�yK����\�7�3O�;���	��`j�fb�4R&hS�	l��Q1@I�E��m�n������Q,9 �S�H�r@O���N���;��*��<}�S�8$��Y4�mC��;��
��v��h��r%q1j�yv_�d.�,��&��@am� I��G\O���h�Dt�D?��7SY���<�7�y$����Y5�nMm
3�����q�o���%.�(@7�T�m�M�D�JW�b^k0�i�!��J���j*���@FX�	���N���sv�~"
~��D����>�\m5����A��a78j�<���&o�@�*��%*����6
E~R�*T3�U	�)g�K�����!L������9�9�`�A(��X������M��x�)s}���mSx��2�:My������j��'/�X��>�/���EVUM�!�2/��J�5�@zVu���B�"�:SHuE�n���7���d]�K�`�iee�xO�4ln�KZ&�R�����}��{�81���*^�2�{���@D��)=������y���ol�Lp7y��ke���wD������j������	"�2t��%�/�]p&��%�Pq��@{$
K	�����l�^�(���_m���&�nvT�t^�p����D�X�h��u�VDe!:LK��N��%Vq@�tfH��
�f���(v,�_=;�]���@�5�V�����S�*p�����&*u��il<���(1����Kv.h��7��<;9{�K�U�wd-��x�L��t��l�T"8n�]%�#U������	P�����YY*,��D���"��X^�A������gh�����*c��t�x������x=|�^���#Y&A`(���LN����b�_�\�!�,����4
3�#$;$H���"P)~���7$�Z9�����$�X�������1>1C�[[K4@��#emk���n�L�2dJ��_}��B!���`�2{�T@��:���
4��B��"�@��B�����0l�������Y}�LR��&�o����c1�e6������qfG��N&8�l�%av,�F:"4�$��|��e��*O�
KE,yr�np�{k��1��E���L�H�%2rh��ROBv���-@��
�H��`�}xh���-N��u����P%�s����A!��9�G��s�1CS�<���S��	z6�/�,�3������'�R��H���<��fre[ai�]�D�E*ME��TZx�0 ���I|�q�GH �i����v����J���I�F�R�ne��*��My�FB���j5OA�0�+ �����S&�q��������I��=�.�M���3JJd�U����J�&Z�6I~
&������� c5��8��`S<���o�����L�Xr@'
���l=N�����n�7��7��'�/Op��5x��A�D^#7�����[�����Av@
��p����B>H���@�\*R���9(6��:X�.�>7*�1'�ARh,�����D���n����ZXo�i|k�n5$��nFZ�J�f�"�^�=�����+=�Xu|O1�d�TH��	6k���H�>��|����9*a���;�C&�~Az��%z�A�LT���x�N�18%6$���������?}����`�6���j�)���Hb�T�<����[Ce����}{58<:�������:>���\Oh���..z�}�=�bU�a%v�$�Cd
�`�J����	�b�v����l�dp���9�,�������H�#�&<@w�w���w8��WWg����3�+4�<H����YZ&b8������(c�"-d��ex����e=�b��q�,�a����� Q-f"�A	r�l�Z���,�(]�2�m�]K�����	��P�5�M8���f�	'I+��<�����JEE���})6CcJ��1��Zc2e���v������\6xu��N�M8I��69�����E�h����4F7�t�4�9(�%�WC*��a�K�E�n�8�6_l�9��62��0W�ha[[S�0�Z�"�+*,�X�q���3�������=}~�����}����������.�Ny���7x�x����{���j�?���r��s���{��#em.�X�;}W�l���W'/Q�9����2tE��La�Jx$K�D!�
�`�����������n�OUgH���%�W���Jdf���a�N��������sm�g����s�a'�X���>n���t(��Y������\����0�R_K����K\sP���]7��������
�v�4���i����t~a���n�q#��gl���[VK[�N��'"bh�7��d��Z A*���k��{2���a����F�B��=���:2$���L0���������������D)9�	���FN0����W,�`�,��q��$��H���,�X���LpyDj0��}[���������@u
��m������E��.
|�L�|0�rjP�����m@X���0&���1LN"����0��49l�t(���2)d���+46�����z*�x�%j�v�XK�f(FG&�`��6�bIM0�
=�y�����+-'�&5�D
A7�
K��QX�Mg2��l��	�X����\o�qk)O����Qvk�(�q=9MXO���`a*���M�@�s;��e�5�3���������6�%c2���F��]�A�+7�����}��4n\�@!��"f8��
K�V�H���Ev=K-�B!7����/,C���pT��X���'��6+F�X�sJ"�y <tG��ui�2'SU��a����}�Q�7�����Gn��_�;�b��R((r�
p#D��`+��oJ�����#i2I�}��f���3����GS1�%�Z��#���N��)�5�JC�3^�O�Bc�$��B����=��52_�](���&2�u��v�����g���p\m��yE�J���>�����'��&�D��M8%s�;r��$f���#w�f\��.m^)�������~ji�)l>�Bs��)x'���[�x
P*��.)L�����<��%�
�#iX��U�y���T�%1|�s���9�r	���D�d�|#}�h�:qF��%,���pJ��t�Mn�XC�"�@�����luX�S���|��-�������8euM�����:
P
�oQ����7����gO��E������D��k��D�X���-�������������Fh>�u�
K��4m���3�2	J&;2H�\�����_d�6/���U"-�{b3�:(���	}A��W#mrx���I��k�AgRk&(\��M����� ����;9����u�R��x+�=@I�Rx�
S�R	2��!i2)��(����}�s�����/a����MD�8Pf�AY�����������x���th����/���������	��,�����+w�U&X����O����1��
K��)*?B�� �cc�������JdGtZ�m����

���F��*��	I_�S(�tG�|�e��B��d�e";�MiOoo@������?������j�	����wG��j"�B�Y���Ge^�H���%t��1d7�2�tMs��6E*C&)���r���:$�\��y6�=��g(��B:��Y�2��Vs��I`��fHt��{��<�#��L�Pa	�Rqk��5��'����G���.{a���

��+p����&@gX��bju��J
*�g���Kv|~z�d���a�����o/p�5�$�@�s����h�@�<r�����g�	��H/C���<��j3��f�6�:�)��(���0���:���H��Z�)�"���p��6��{�x_t���)��j���yjw�	�@�	�7��w��'�9��z����
����l�t9�5c:f~����8��w�9��V`�Hh#��7�h�	���5���L�D5�!IOMs;<t��J��Q<w4}v����i�vP�!��+g
&����A�����&X����4��nU�/���(��!�k4��N�$f��������i�"���ib
����u��u�m�I���<�5@�y�U���k�	���(z��;$i���'�k�5)�tt���Kd��/q���Y��x�s�H
o�\��D�k����D ��l�Y�2�lqx��|u~��T���N4���3�M�r%�,1��j|&�;�[.�,r2!='W���������(��(����y$%z��
K0�s�(l��L���^$�&Ua	l�i�%
��<�e�V���C�~C/�~��������BB,�fY�^U�D
mC�}yt�b�	j�5��^��P��3�v��@��7\K���Q���er/-*O�>�T��������,��U�L���U�%��X�4M�������^)�(�)��zM�S)�2��L�����JC��s���j����y���f��b�w�y�I�z��B+����a�����(
!M,G��6Zq�	K6�����_���5�@��;q+p���<S_�?g��'(�*,[�:�!�~�o�����a��
�L�(�O��G[��4��vo�����v�A:$.Q�I�C},���3����R��j��X��)/�`��#��)�yR�����o�=q%e,X�cSp.Q Kf�L6\�w$e��e������n�M��2��	O����
OJ���w������y�����9�{�����<�_^�x����O���(���<IT������'�H�B?�)���F&�wr�]�A�8�����"#W]]M��v�!�!
p�g�7�T��F��eR���:2;��h�q�l$`h2��W�7�����Y(1m� ����U";���@��2H�4���D�/�yY"k�!rVhi�`�
����~���T��������3��/��"��
<Am�=5s���M�������8��J�B�u&����B��\���c��N�L����1M�
8���4k0E~���n�
	�y�I�(�'9���<����;�f1-�X��D����;����8��n
�����D:�VX��\�LO!��f'Z���:��zl�{{q~yx�=��PL�Gj�L{2x�b�7�P������=v�?9{��l�M���8CW^�A��	���t�
��=�#�%����L��;�T�6�)���8,_���������;	6�H��,s�-������)����c�\��I���k�ad>u�p/p�_��
�N��T���������%�F������J3������Z�&�N��D�t6������m$2�My��3zhf�E.s�R���@�|������4�]��*$A�F��)�q��e2����I'[5���e����;2Y�!e�gu��lE�,��;���P8���n�s
v^��)���wx?�tl&��3!d�����M8Q�	���&Y\�1����\'^Gf����":�AO��
n�H�T%�Bz�!���k�l��frx�?>��!�'�����\�7`����������
���~���u����<���g�����E�%��qq-�pC�:E:8�'��tbw�J��,gf���-u��S��!�I�l�>p�������t~�M�r��2`7��7<*���J#��(J�zT�v<��"����nS��x��	K��u
���:�3d��G�	7R�4A-<IkC
?D��"���~��ES]�>�*��fU�!���[�#�K�6�
���zBd?j=��}��.4�<������/}��$�%7�\3�@�y��Eb��T��a|��3����w/"n:$N��DbG�,d�`����w�3t�� �Z�Mvf�M��Dv��rT�E�K���$�������*,[��}\��~��}�z���`�\����&��`N����;~�����3��0A*�����\�e�o���l��7?UX7
�[�>�+���L�@�W.��w�K��G%��`�D{�MPX]dM�2[c�&����;���e��D�*��8[A��J��[X A�t�01�`��A�*o �{a�	P�\cq���Z$��/n$����&��6�y1,���8ri��
�y�,��,Lh���^�A1���s|��U"�����^0Sp��u��?�2AR��`�\\R�e4:<�������:m��D���
v�f�6
����)�����I��]�������J��x�S�<�6,nU��6R�}��/�q;�/� cr����S�����V+���@���)�`��H��&�������+���	C�T��k�S��K�'a{S,S��Vh��n�y����9�UX��y�2}��|Re���[���%�H'����uk�HU�VM���������[x�����Y�gm��I�
;GG7�D�u
�[�@�����F�8�2g�J��n���8�q�L�{��,k��eRS�f<t�L}h
���[2�U"���j��y�ng8E���P=�LB��Z�xs@
�*����ds�3��
&��v>D�"`���
'��l�Rw`�B��h�kk+?��dP��1�v�z�����<{��/p�IH�!������j��Z������2�&�\:�J��R�=@�@0U�n�y��3Slf�.���(��$j>t��Ck��T�����"q�D�r���0�r�sk�,#��QuF�j�Ma�,�D1��*,��N�y�;e��x"��!��F�z��]�.z���&������9�8$��ryVa�2��oq���
���y6�O^�X�8���K������}��~���'ux2�9���Ef�i�������b�qK�%���7���]:H�@a���a_���i9�z���)�P��<^@��c�Av��z��1=��l�92uIN6,����.XG7E����UxC��P���[��DsK�(��4����F�7���u������1U��\UX
�X�[WG�X�*,[H���k��Sai��V�[�	c��p����L�"Eg�Y&���U�tF�~��}��b��z�d�WWg��d��d�^����P���&k��P
�������?y�~E�;;��w'\~�6�6V�4�7�����\}}��sI�:�`��*]�������NXr@��z���8��!	Br��X�H:iM�8r��%
;�'�OD�5HU`�������&�ac�m���H����Y�U$���Z%B!�E	G�Waw��hK����7N���m�t'-���`?����W��cM&����!��%�Xi+DH�:���4���
������N^��4H��Q�_�����}�|P�B1��������%C{�(e(r�d���C�~I���m����k�	���u��P�,$��nd���m�d&�N��J`�E�"��B� ']zFN���#wCB�����������	��2�
;��C��c��/���^����K�	HD��U���&@�`���D�h������t3��x:�<�t]��|]�D�5Za	��D��yHPO��m.��^����*n��X��![���(h�'C�'�-*,A'�"G�)��y���u����p��J�	:?u�d.��rH�m���z�
zg��>i
"�g�����##H]�"�-�HP���r<���`�%n�]C�B���;K���Q�U�"��R����,$�G�,� X���e�#�����Y[K���_S:������(�KU!�]�E��*���l�7��X�~����[x
�ID%��Ta	�_��2\����7���\XG�Ig0u���k�iT2hu��)���s��E'���6���X��DeHxN0�l����}����p�I���K)�N�"������'������O�c?����������/�~jJ���d�e�)\�����|5|���*G!#�1�r�@�28x����O��x����N��B����-,Wh���r��9�T`���u�p
ZV;sI"u��D���}�qJz���2A��j�~��-n������5+�����5xG��a����<�:.�!C��S�6�;���d9���,�
�t�j��\�h�����k"�L'��`"��V@������	'���	d(J�|D5�%#D�>e�3�������u|�3���a��cR�]�w&�(Od��-�$bi����cd��	&e]�nL.��<�}�	�Q��$�U�2��{�h��-*�f<�<S�4�9 ��`{7��z�	������h;E]/� �`�4�h#���tG��;dq��Th��mp>2��

���4��L�1#]�h=!WH�'ne�v\kQ�[���y�ud����PS��P�z'����������g���?x}�����<C:^�� e������wy��+�
B�CnMvqy~���O�^we{����g��+2��������;�&:m�	T����Ty��R��h�aMSWl�s��J
4�I3��b�������zB;��~�d$�9xj0E}E"���4�nk���j��)��b���I�og���(�i>�9�#_m�g����nB�HM0�iR,�@�z���
�����e'��*�l��d"4n���O���8����#��\2/��5�_�pd�#y���l�	2����	"{���%���c��V�P�?'�(<������z�Z(��+,�F]���$H���k����0�B�"O��ANY�#L!G�������������z�����;���y����N�7���^�$h���#)���}���	L���YY�v�5�M��E��.sBO ��b�ayc����Vj�	�79C.�-pgC��LO��4�,S�L� �B
�H�B���\��^��Ln�dqJ���~�%v�i�[�t<��D�oe�y�F�Lb�(���0N�������h*f8_��<Ssq88~��xr����9O���T,��W�0�P�z62� A�)�4+�2Jo����������	_�?�K}�������O�?}�������u�	]�h�����	�1�gr����@N��$(f����q��
K�V�h��b"n�a��0mJ�1	r�Wa	X�0Z�=ch�:qF����$e!�'�	�,�-q5F��+���{�����B;�G�;��=G�`)-&2e�a&�x�*��X/�~�\y"5��@�5x��#���Wv�H�$��N��fhoOd���������1���-�G�O��9N�d��g��CJ�3���[�b2
!i�0����*;<����+B��d�]�9��<KH<v;��~&���a'&[$v(K���������f��q���<1G��~�(U����kvr68��]� ���#���B�`Y��O�Y?h��_��H?�%���5��S�Hc���7��8C���0��+*��u���N�;�T���n1
+4vh��~�J�����H�a�,������}L�m��'L��l��E|�}������N���:$�I�0	�(,w���-D��M�XqJ3@���L���2	
��\F����-�!���J���n<�l��>.�:2;i�8��zlpxt�[[�	��x��kHm��f�&@��mz:����)���O�`��`�2���'"�����k0���&�w��L��i���o������RUH�f�E�d���0�f�VF�������86�D3<���"��T������
�?���T%	��u����6��V��i6�1n��
K�V����&������"����gQ����2&f��C:��h�z��}���*|�n�]M�@���l�4N�W�w���P���m"�KY���l8�B ��*;\�?F�D���b�$��G�j$R��c>�6��|t�AC��1'h���ni5���,ndn�����h9�"�����<�'g��%.�W�n��-���������T�|�ZxRy,;IN�#E��x����r�G��r;�%t����Ei�0����
��I�(�)28(��
2d?�� i��Z"u�5xr�]���VX��5��k�	'��:=�[\(�C��������{��������������R7r��&@�`������NE'}����������}���?��-�zk�9k�#ci g�~>��4�t���5�Bv�FZ�����	��;q�����WX�LE�M�<C_}M��C(�z�c����%,C4�����hWQ$;$n<H�FPY�����^k�f�|��B�8)k
2�Xt`{���Le��S0@	�7��{�*��b>> I����.���ds���F�L�����I�"�$�4}k�L�Z+���LN�iq��~_*8��9��0�_^�����n�+���R��!��c��K�O��"B��&�$cs��4A�^�&@���y�[��	�3�2�a����]�:��-V���>�>R���������'C�h:'\�'��qsZ���Lbgg���:�����@���u���t����P#1YOG��=@w�\
36�)v����=��6������t!2�	��\O� �O
�6�
K���&�(�4
�xT�����\�Q��7���������QH���i3�����_�����	�)�W�Hid�����b��VD�����?���BJ��B�s4[� ���[\P�����m[��F�b�X&�y&�9<���Q�(���!��b&\�����%<l�s���J� �6�P��<[��/{'������q��m�b����X����QJ��DWKe���y$����i�<tG���,S�����<[���B������G�5v���QF}�5���v���}{7B0�B�C���&re�J�`P�����j0c�c����������E���|k���5��l7�L��X�\�=�l���Wh��R0/qy��<;h�*����2�"��Wh��_G�B�;�v����l�p<-<��O���JE�}A�Hl��;���T��~1J�m�[Kg����-��&�@S��>nm�~�5%��)|R��I�"�<�&fp{�O�OB'@���4	����>����,K�->�K��Ols]X��

�z����n�K�����R������y�S��� 1�'%.5A��l�m��sKU�[�V�>��m����+%R����-<A*�S����H�n=����S~��_�����.��� �2n�8fJ��p�
L��o���gm�	:�yw���W���m�q�(�U"�����@�&��?j0U�u����o����"�t�LM�B��<�D{4� W�����z������Q�tK�P�:�	',���:S)���CZ��w�5.��!	��2��S�u0���I�N�N;j��.V�ud6������~��{���/��o
��TW
8�w1�}���X�%
i�)
6�7��k�P��������RS�ya��O�y����N4�yv~SLe�������}�udv�����G��yax��IP�����y��x���q�nA\�	���LQ1�����D����(P,������2��-N���S�p����F��\G�*�'����z�g7;5�$5��������"�{���f�+4(�sl�t}d���Y�#e�s-9�n�z��J��5���X�K���(c��\iQ�Ig*.�z�0%�������&���"m�T��ce�0
�q�LO��ANR������S�h+r�2/d���j0�	y������^rd#�����/l���.L��y�uj&�)�13���xp�����K���������p<���������������gPx���?zz���g/��=%�f�_	��k�Uq�n������L�}�?�o�v�ZH�w��;�rRjg�����������@ 7�p���%2�PL]�W�f�l�o��
�S
��~��2*�g�d�c���J��2	6�6��(�����]0#����6Y$b6����{��#���|*�e�"��bp��Ss�tm�^��a���1C3��Y���
-�e�"�����4Wej��Qq��J��V����,8+���,X.lN������J�8-2�I�;(�MJ��
=v){b`���������x,#��](C��:��+�~m�-T�Raj��
��}�����Q%�A1w�u���lR�2�Uej9m�����7P���������1�|R�N���"��E-}��t���B�"/��{�������r�1
�Rp[r���������?��X�#���_��a��f@����'�g���-�������{�IHc�����,`K��>7�y�!�x����t�hY�|x�+hCS;�T|RC�14O���'sO������'���@�G,Q��
����f��
m���i�T2�0?C��}��~o����o�q��3��Le��������2Q��������G�[f��o�L&�c	�]������������������{)�
����Y�HZ�;V)����(L-SU�5��/���/����@����W'�=vz~l���7�?x�!?��.uZ�Q"��k7�0s�V3���l�jC��k�!/^�<2��H�R�*b��#�i�v�6=���G/���>�%���lA���]�����`�;�+O�aF����?�f��'���{LG|h��&�'.���d�S�C�G��J�3G�����bV�i��9�R�$�k�����0un�� 83�8n��\�3W�f�O�9�Wsvq����Z���l����C��d�S���t����3#�C�`�g/����M�lp�z	E'y�����&w��,e��*���|lc�O�p|r��-��c������h;��\��]#H-��N�_�T�x��m����>�S�l~D#'���/����3~����������T!��q��8a�_�)#����������m�zl�;5eB�}�j�U�����]3'9~�a���|hPC�X��[������9	9��0�i7^z�����o���.�j|���?)f��|���?��4d�����#Ql������~���AFQ'<��
FE�Yt����<?���J��	��U����� �i �O7��#w���8�����f^xy�������f�ZX9��=�C�m�C�@�7m�H@� l�F8��������s�l
��y���W�W��������������W����_�up�;{=x���BX�o�3���"UH�"g����go����,c\���r$��0�N�{���F}�<���~��k�XF�&��T_�h~�~��x@p�
3�,�lb�`j����vh��e��|-�Hh�����������h�^��b�_�7�����zEJ���cwsd
����y���lp|a�m���.�������|�>gE�=��z,
.#l~`Nf������dCk�u�gf���' $y��@��3��r�����V)���F4\�~6���;����%��g�G�B������.�{�����>���
�����4��_��_n���"���/^�J�����/��~��`�'k�x[����SC��$����5��<|�;�nA���~�(���{����?�O���;���T� ���N� �����-F6~��T��6��TE�
C	.�#WC�H�0�
Mv��=p����i�3�5������3n��4�������������z��85w<k|��amkz)�k;��v�U5-<>��3�z5�������6�g6��������R���Qf�KE�.Enfo�
�rn�<��N��CdZEPyVd|x~���&�!2��1/2�<�\f!e�*��@����u�0o�vGvi��u�b/E�m��yW
�]�����K�8��0���h���wNm=T�D�G�u7��f����nD��y�������������L[��4�oay����&v����7$f�����Y^��D�C����j�x�N������O,�efd�f�*@�|�_��7$�%s�4�@+���cO���a�H��V�2�������:����C�@�7����E�l��~m��j�3�o,�hj�2�����o��M� ����<������Kvz��f�i-h�f��3�9����$2P������=;(L��}i<�j�1|����
5�
(����wN8wz$�>h|�!,�l�VV:_FY�+���?av}J�������Y�A��f�-�*6d-����^L�)PjX�e�e�YQ�4�{�2�/j��W�N��!������8�b��79�iy�q��%�e��Ma*��L��co�`\&�<����8sl�d����3��Y@���r�NW9�����?�9�Lf�4C�GaZn�.?BP��l��5��}�>���������J�3�;����Qb��Y5��Q~f�bLmo�CN��?q�(�����c�&n��W?q��'v�g�G�&���rZ?�������pY��-WvE��DX�x�SP/T71%�*�O��������9����x�������J���� v�{8S����Os�����8b�:Q���Hzm�_�}��Ax2'�����%F6��$6
�+�+��d��BFh�w�$�Bgh���z8�hl�,�����}h]��=�'��x�V|O<E3�>1����E<��[>�����v�C����|.0K�mF���=Wi9�L7�VX��G���8%�������o+���c��`
�6�L�3���"�����y�\���a�T��������0��{����7z9���u���uVM�?���*�]����{��jh}�j�
�3�9?pCW=��z���u��������I��'��nT�U��o{B�W�*�u�� ��sSM����P�{?����3�v����7���V_�����M�D��i�
aJ�Jnv�[������[a��3��B`��F�����.����j9���{��GaX�X������Z�%�/���F�������	p[o$`�
���y0���oO]U{��Ld�m��4-pl��B����C�Lf���S��~3�K����K����:���C)#�����-�M�Z�Tw������GfT�t�"���Z*�,8[����h�����4�"_b���A���G�3�*�Tb�T�����Zcc9~��@0���w�=\����=.X�i��	��-#�]���z��,f<���W����q�LVOB���Yhb���iV/�����mn����]��S��!��}6�W�����8S����U1��`�}�{��C������������i�e�����4�M#5����������/<4y��f�UFf�2BdV����n#`<|�����O�%��M���!�>2S��My3���/�z
�k��9b��]��,�f�7]N�{���C�z9����?i���K�=S*	���U�aW��)���\���@������y����������^�jl.���i�/s���Dhb�����sa\����z����	V�g�P�B�Vge�+J �p�6�Kq����d�MG��e��r�>Xe�
MI3
�
�/�>�����]D�*L@j\9F�q���'gF��eN4��./�/A�>�����-���~M6�~kk��u����b^�����>2T�7<�q����LE#+L����B>����'���G�����j7��K��yf�V�k�>��pW%�s�7�SYS�_d��e�R4��P'[x�U�[�����D���{v�5�JV89
�Ug�os�����d�]:.�����m�����I;��k��t�#�k�d��+����P�dh���V�w.���^�Z}�&�G�JJ�Ja�Rx/���D�����������f���Wo���||P=���!��������
�x(�D��>f��d�yA��+���`~���"�#<�
]�F�C3�j�n'c;JY'Z2��)�OV}���(wz�T��w�����9<�H���FLam�?hMU�9����f<�)AMQ����9B�=��x�U>�f-���VI���`�Z��t���v��/5R��9�J�*�5��E�����
~�P���_������P�2+�n}��j9�hN�C+E���]
������0�?}{��a3�~��Fr��bu��������#���Gv\�
���m�<������������5����hw�	���0����2}��c�D{j�
r�j���a55�����J���m��[nLs��������|�����L��!�������|�������K��-�>�7e���{�f}�����n����[�J�����i}���������Q��-�6��Z�g��*`���ST��Z'�:����3o�����-����'����nG���e��S!u���?a0�z�)�<�
hk+�n��������qm�3
�������������]4B��yQw�/�lB�.��_�Lh�6�w����o�sm�F�����!v���>	g���)X���
x�z���n��Fcy[;����`M�:@�������Z�����\�������3,������,������6n��oi\��
�9q��q�L��U�2+�����b��g+7�w�4wV6��_��Z�������<HZ&�6�����y�]�l�uc�����M������/����L��T4L��z��$�VV6C��!x����m����
��>g���/~U��W����}������N�W+�a���J��_B����+
�9}��&%�����?q�r+�������U���fb*�gX�W��������X��)��	@M]m��Z�b�9��Y���}�
�������'o{�?8��'�$�1����	(����5"��Z�Y7+
NY�#L����i���>%T�3������R�[�+�/�%����Zt-?{��6�\��m�pQX�Q`
Z^����Z��X�w�^eU	�V�|��Z�`'"'r�F��)�V/�[��Zs��
�K���jp����������A���IA�.g��1�Z�q)/G��c��q�O�j[`���6"�����wR���|�P�?F�	@�p����a�]��1�x�l���~TLE�))��=�v��?�W[������j�OA-
~5�Z���m����E��<Y�	<MO`�Vy�O�
{������gJ������!����+�~��:��Z�;a���<{����-g���3�8\�t���g����\:���Qb��Zodo�l��jR��X��#(N�z��<�^v����q7��L������N�wz�;4"���r!����`����m���2���?���'Y92B�U��$�.���n�f?�3g��p�'�Tl�t�N���y��������"U
���	�����mU��p��Z����E���UR��m���u+D��z�4����}�7Ym����K�����P+c��L?tB���[�O�b��I����9��4hi4�A���L���t��M ���S���L��������R�}p;K� ��"X�}��C{V��"�nR`�&{����,�^U�B��#x�pug>�������k�>pE�� ���H�Y?�j��2<�@T���c�
���}�I�.��An���7�H�m�����?�>qX�)0��>ed����������!��E�}j[�������p�(��Y�&T�'|���WM�F*vr6l��HJ/����T3�0,����G��3d$_i�������x�	���K)�������P���������/>��6�\���C�\#�I m������7���U����B����^�hc���l#�M
�^=�-������27��U#�97�C�C�I�>5�)��F����Z
����2�a#�j��Ss�,s��=���u�%4K�������������f
%�.�U0����kmh�(���������^]�/Q��2�����t}��~8����-�g���h�?�?T8[�V�������/O�&�1�M#C=�8=�:�|k������������D�W0�CpL#��7f�Uy�p#,��'v@�Q.Ox>�/A]i�U>�0��mO���Z���H���`�n`kx�;��u�7#~����%��iq�����
�WUD�0����1Y�{b��Hc�m�?L�@?��;�x��u+o8eU~3������&��4�K���V�F��pn%o�^��x��[Y����E�B���)L�A����������/Ck]F���v��'Oo~���f{�_Qe
yu��e�99;>�z��J���O�so�%�=s����S���7���
3�RR?�?{W
��y�s��%f�e������l�\3���wN��$j�r<�F'��R�������cH@�n�hX#gj��%,�G����������_��L:�������sR7t���P�F���@�}B�X1}�������l��/>���|����O��i�������o$�2�������3l���^����}v������������?��~o�N��_|�������}����.�T���<O��������nF�lop�=���.T��d�MG�������?9<�����z�������������x�����u�?`��f�W;�H��Gy�	{�������vpPL?�RR,"nd���BX�����O���������'g�`�k���b��-���g����;?;��L��"����t��E�v������/�����,�>:x2-�O?���D����Y@���g�/���]������o^X:����w�/y��\��������4���vP,��e{�������>{
�g_|i����c��{S1�~p������}w�Iu�Iu�������������������������^u[��M�����n{U�f������n���-��y[�\����*u%�S���������K�w�o�3����T��9������A�����/��0�������]�	y�	�-?./�K�y�������DD1�w.�K�Hu�TL~ok�����b��_���|�z#T�^�u]��%�p���VD~�$����6��
"��KC��/U�����x�������f����%t}����/������n��%N
N��mNjt}G�������eU'���z�N.���H�95������;jN~_q����z,�����7����s����w���+N��O�����Fv��YG#�����w��}����
���j4��9J��k
G���6G�������U�~[��akT�kGOG�]Vi����;�������=������dMyG������`N���A������y#��e�"(vF������LA��^�������@H
��1!mAH����;�g�i9�$�C�����RWe#r��p�,�A����E+X���s���+:
��Ab���:�8/d�\����s�����k[�g�,s�l���0	��)��b2��E����f�EuFx��?����K����L�C&���&o�\��;�3������z�^�}���)ej��5^2����y8�:�B�t�.e�j���5�s��w�3�Spo�DuI����2�
.J(�cf��x�M�'�@��L�2�W��m���y�����X�k;gw�0���UZ��[����ep�..r��K�6
�����^!��7��O�c�A8�*=����o1�}a]\�{�#K�Xem�d�>:������w������T�~�t���T6���������L�Y����,~f���i�����\*�3�k�b9�$�7��h���h�E��.�v{��a�dr�r!�g�/m�����X���mV���� V���f25�eQ����2���7����Z�9���J�4����\��}��6}?;!�(�GY&�s�(m)�X���&��@�\�������������������S9X���U5?�?��+���O��K����g���%���_��"5��FS��(}Y�P.hT�2������'�7�Wvx�=������l���+7l�����K�:KJZ@�%��wi�zg�Cg�[����Y��g��/�2���rpr|uzx�.�./��=H�/D�*W)����*g����._��������$v[.�\��� [�a��L�������j�\��"�e
��{[_�����'�,r�,��d�����OX�
��?�����;��u��g��?��A�N�r�n���^0MD�LM�g���:����dv���l�~.r���������O?]"�k�����}���r]]���4G.�'�G����]�f�La�Fk��<��>�����5<�y��^����6"���G���R��O�}���<��^�`�7���On�\$�����
~m��/�[���=����R�x
�X�,3t��a�37?2����-%�����3�e��\����G.(���������o>����Z���������@xf�K���S��3M�#g����8��b��L�Vc����f>��t�k�r��-���`��#>R�X��x����]��
b`S��W��XB����;3���+���s�p������7���������W���u�.��u�w����������������~����������j�:v3^0�M��|y��i����?~���g�������������=;3�O����E*��p����������y��5'f��}��
,t���f^67��M�"����k�SQ<������%O����X�bN��9�O?���7�N�������U����p�r���p��7����k�Y��|�u�~j}q�C���g.���GG��/5.�������{y|r�z��p������z'����p��5���E��U���p��/V�����
t_��,�s����r�������5����{���ld��Y��V���/��j�=�{���Cm��P|���:|���}}�������>t��z��_]��\�\A������5��wy�����r������V5�`[9y���<�VNj'g�?[�x���~j)'���>TG_?�����6�nT����VNC<=}���:������5��m��v
����l�xv�Cg�����lF�6������C�����r�PK9��\��1��]<�R..���5T�����uC3�\iC�W�\7u]v//��r�C]'__��������Nz�sm�M������'��b�v���
�<Dv������<^yjx�`]�B��;X�n����0Wv���:��C���s�P��z��|��������!T�����o�5�@�[�l������c(����1�u���:����������������s�H��b	���zR����W�����hyM�{4I����u��;��c�������"�������P���Jb��:���N�b
�����_K(k����g����g4�9��G6������������<�;�!1��V���?��
+�?��o�<��{8H|�T�8wq&�Z�?��?��H�Gn�.R���q��>+o���<�Y�^=2z����uh��~���'4�m��Su.s�2;�P�V�[�pn���������i�"�r6���6:V���[j�}�O?M�������^�qd>Q�+?���l�~	8����}�Z
��q`y�0�x����RE|��Z��-�-��yi_���I{=���xR?%���ck����S��R�%�U���$^9z����j�|N�;8mV��TW����>�����I*������)�V���j�5��0��{$}�
\<�Zi�L��&a$������������?����f}u���Tj^��*���_��"�������?�8��m�+���z�t�7K�����V[��[�������G����Q8�N�����������3w��3��W�4�i����l�����k"�k�_7F��=7
I������uxM�Xg yM?��G�#�o���k����z�.��&����b��5�:�4�E5"����A��sk��R��j
M�(LjMb��������P�������O^w#���kt}��{����Q�����<���5�����k��g��-*�!���a��_������������g�?������/��?�?�7{���.���\����vg{�#������wo���/���o�������K�9��9�3�A�/-��������������l�frs{�������������^	��v����l��7�978�o��Ej��0������������<&��)���S����F�aw����_	�x�2��8��{���b���e}����'��{>9�d��{n�?�|:;���4�#a��=s�5����i�=���al��1�[����q�a����h��l���u����boj�CR0�.�Ff����M��|?�������x����Re����B��� ������-����%���E��M����,��������u�?vk��������"��3��2?�=���O]���_����_�b��������������������5��0l���>}��������9��=5�~��?����|�b���t��4�{O�)��{.6� /�d{�|�=�;���9���yg�k8���yg^8:�B�SW������P��������%��t������Cs��������5�>�����c���+���=�o�_���//�_���|m��+s�\91�i�������s�k�"o�s��'���S�k�\�����r��������C8�
������'�	}C�ql�
�����2��f����cS��{��9���p��_�qZ�� ��+({ed��O$�$]i��A����?���G_��-�����Kwtg�I�p��])���)/���(�����;���l��Y�oJ������R��Q=���8Zza~�����S>�J�/��=3�����|���E��T:R���F�;�����L"K(��c#q#bwf���h���0S0u�}�?7�(3CF�B�<��|R:�f
u�2�����[{��
.<�"
E�Q��_{K��� �;B.mWru�*���y8x
��8f��X�_��u��������h�9b��cw�����2e�(��L#*|1�2���eN��W��j�V	DR��X����O���w��F��+��;�<�v5
����yw�����<)��]��U2�p�WDU�/���,�L���T�S�p�P���������|
��;Wp�������J����*�
��TD��8n�$s�io\��g�XK��L�7�k8�.T����L��J�\M��<*���KepO`X���l!���E�2���)��������e�,\+����i������S�}��?�5��Y9�R������\�6�iUp�O�?�����ih���B�7�<E(T�"�3wGG<U������?��MZfY]���a���Z�����R&n$4%�]0e��u�(��B��;5�#w���t��p�#CI�3Z�1��+��j���K��k�������	s���F?���]��a��I^�[�8������A��F3R��@iJ������#��a�0���lz���y�o��R��:��S�>������������}E^��G�?�����91u:���R�$���C$�����>
_��h>�'2S�u(L�v�>���p��B���^Z��~��-*�#��F���q�E~��������h}i���D)s���+�1�wR��!'��*^W%JEU�u��4��w��P�P�x���	$��1����'}��L���kM�KH�o���"^h~����_��r$y,�������NPL���h�<���%�0��*����{]�:���v{�cU���3�U��R<������	���Z"r� 4C!���u"$�xvE#���7��j�/���:�ug]yV}�Pk~�HD�y��5��q?�
�I��V�R��L(H�J���t��4��������SlY4���~��w����KB��2<��Q#B�5%�Jc��]Kp7���Lm�>�B�.�|�kQxU�w�~h����G��-������������	��p%��c���z���1��:�T�+@:��y�{I"�p'�]���9�1��\��% }�������*\w�9G�@\yN���yu[5 �j�~JK�kt���|��X�
s��#L�����'��Zu�DLL�-\���B��r���-W��P�y�u����m
E�]�Y�#|�&~�������n5E��R���}}%�Rx����I�n����Y~��q?�A�w�R�7�f�Y��ga������M�p����93_*�kj��������'�9�zb����������a/���l-�o���yq��U7�EG��Pa����l
E�c���^�N��n��(���F�Bf��P����cd�����y��!�G��pE��P���'sSM�7���x�7����)��
o�7������z�,T�����Oc�RU[����������5i�4.�_�5;���4B��g��g�7�P�P�S�*�k��H�1Y�kW��=����tfW�SnD�%+�\������8�#���v��S�.���_~T��r��Y�����,>��Ex�J'1�4P���t�
��������r?����?�^��r��v���yg�E���/_���RM	��~(���EE����4H�3���?sU��XN?��ud��[���5�q�����f�l��vm�������<S���Y����?���;�����`cv�F���v��7���nd���:w����k���M�\��Bfu}�K��a����&���������,k�[��e/l����/��X���d}��l2�����,�ru�PIU�O�����v[r=,���,���"�ZI��9��o����(_Nmq��^j
"C�/}��?9��V�T(��W��������t�	����+V�
���%�Mcx�B���P�W�/�����j�����Q�`��T������P�����3D�����c8��8��c���������A��?�RU�e�,��l���*^�g�F�z���H[.�;��dEJ���g��+����}����X}8�����j��e���a�s?��W_
�����i���N@�_���/��~�+\
v\N'V���R�`�?��}�����l���:��Q��Q��>@5�P������<�o�.|���\���T�W�eK�.6��N_�������>mZ�Q+��t_�+��K���"����_
���-��Q�J��{s���p��6�k��F�L#�gO��>�2�����W���*���J���Ui���*���2�)�a�0w��On�
e~�����i�sMA����_�P�j�y��_Fp�����b�q`���y��U�����r�S��DaJ�����	�,�+�>Z�kQ=YU�k[.*N5m�)Q��w�u�qR��P��\��O�U?|���W,�B[�--G�M�;�Q���PJL�R�g���n��V�tU����`�E�������_��R������%'�f�A����U,�T*��G��[z���x8���U���G�yH�mS�-x���2�����w��I�2�"���C�e�c�	�CI�BT�������U���o����j�%Q�'���W�4�q�
�������������`������zJm��@j�S�*O�<|��t [FNul��T`�\ecv�
S�:3G.g#^��2(�`�K�{��c
0�����~���#�8����j%�<�PzqE�H��G2�G�i���:��-���T��7�����D������Bx�o$�_�Bn�������;�8e���~�'`L�e'�n���d���=*��oB�g.�'��33M����
V|	E���2V>���)�~�nZ�f]�t���p����mv0��/W���6vh���m�����p�|������
�%WA���m�]���&~
�%��h����������6�����S������C���pGn)�?0i?��1�$�cu&
G
qU����R'e���i8��3��7���c��_fa�/��W�K�-�(3�z�-���V8�od�������,��J��YWVW�`#t��zc�v����N=*P��J�O���A�i��u������&�����c�k������3�[�o}���0a��2\�yjE�iY�h��WJ�F0v��� �o�_��K��tz>����'l��l�G��������-�|�����]ARt
�|�=�L�E
�o�	r?����������wrf��V>�z�����B�$D(������U"�1�-�-���JD���Kn�N37���nrn}Hl�eb�
��r�n�!�s��6��/8��4�����
�|��9wb.��"��l���f���y���Wr���4��u�H�Fj�A��^�pkY8zB~�k����q(����zc'�(���pm��a]��������(�|{+���I��6	�+��U���n@.�9�n5�)H-��5o��*��
"BA��Y�'���kV��$d[t"�+���<�
�H*�_�:���3��u;*���_�
�(�HQF�p�\)[�V#Q:�<s�����-�%����F�O�]^{?�@q�2�q'����J/��N�Uz�V�>��:[�S���pb�O�#������,�+'����K�j)�����-����������}m|�7��[d����[������K�_���8�gd]UIU%OZ5[x�j�& ��*r5����&�2��s��Uen�����v�m��C�W��/�UB����\E�}m�Ka�������qU��H&���ZS=��s�p
��(g�Ug�����w�������x��**W�~\5%YB�/�o`�>��p�w�v9~�P����Ho�$'&�
��.l���9��qe�>�h����p�3q���
�7�o-wT��fo��k�Xp���$.?�,o�Y�IgN��7�;~��A�����N����S�����w�����z���`�����r�wtd��A�w����_����2�u��S2���������=��o�����+���{G��Z��7�l�#�Gw}4�������(���C�R�����[��m���)-M���S���l��-���[�eAA�Q�� 3��(�������#7���u�m��9��q��������m���)��S��t�M���L	3��<)��s���C�%�6����%?��G��ge������Me8���G&��eR���c��k��_��������w]�C��jj�T`�0�H9:p��=z*I\�w�:r.p�f?S���)I�R(\��	'w_�Y���.y��{E�Z���M�4�z\����[f��}�����/�p��*����P�H��k�i\�%�)M���
��k_J��m��!��}�?]�����Y�����w�{]XxY���&�[�.�e���K��U(�����R�E����9@wu�Z��\�#�O�������	eU�Q�����v��Z��PNo�~,|)�+���0h�t���p%�]3Y���Qf��4PN�?��G��!��1��P��:	�$j�
6��DujJ�a)�����A�k~P��f(Lkdx������I�����6+���k����9x�U�C]���J����S+������b�-q�W�'P���4�3f�/���-�j&T�������������@TU�����������u��~���E>M���z���F�����Z��=#��t�9������:!UU�������x��J�/��to?������_r%Q�������k9Qp(��g����U��4�:�ES���~�Y�����+��
7��6��3Z���a����w�r��[�`l7<�����[{����m�n��Y��f�g*�G�O�3,����'��B����
����]+v8���#��z��^�Bu���?���({�S�,��n�o05:�b�����v6=W�yU��Jw�T�������uIS|g���4������J�mZL*��%�����>.��;��'���}����8�PT�P������MD�O�	��Y��W���w�=r���o�0��N���+��a:sE��o\W"����M1��r��*��cF�����i�c��o!u�^C�'��k����o��t�-�5��=����V2����L�!H|P,�]�}]x)V7�#4�G�i
w�n�D�"�n��RU'����9] �p�RW�/��_y��M��B��R��)e�v���S����^/���s^�I�NI��"o0V�,eK7�A?��m$63z���aQ���o
�G���\E'w@�UKjZb����U(W�X4��Q��r��Y���F1 �2<5\��]�*q�u(I�T^(z��	�@��R/c�4��T���Y��w>��2}���U���E��yx_	[�
��a�!@����{����KB)�}J_��E���?6p��7W�2q��|��p��&3_a�,d�O�.]�WGX$��[D@1���n�5E?[�Rx'S*D]t��#a��P
������#�B�3�Ce%�B)��1A�t�M���g�E����P�5R�](:����H�E�U����7�q��
���$o��M��������E��	m����:��/��n�i�tZ�n����3�������f��k�F��f�;�s�}mU&I8�a���G��>-�����A�u�^[gd8V'�$�����������%_[
��}}�q�������*�#������.�Z�%cSpd��gd�	���SkI[\�R8#�K@��8eu2S?��2��]��������n���i�N�p�N��TXN�w�t�+G��6���@�)B)�m������I�Rn�W������r���i�U�`��)�Q�2/y�0��kW�s?�/8��F9��~�-]�{�'5��nz��A�PHB�Ab?:�J5eK�]����9w��R�9:���������#t6�o�1����d���"�����^��0Q���o��M����������OcRy��i�f��}F��=q3�-�F'��?����jP	&��9��{����.l��:	��k{�q,���uU�����F,�l�Sn��W]C���t�<6r�/)������`��KC1S�1��s�zg����2��:�������+.B�|��
��P��C�-{*��)��Tf����PZ����h�_��J6L��L"R�p��I%��m���$USIB[���p�W�8�(�2J��Fh�S�Y��b�A����Jc/���eY����8���7�J�?j������,�BU��Gb7
���&�������4�����5�Kc�U���e�����M�����6*�6���#��6SW��j7�(�D�Y�F������h*�JH�1��W�����������.�P�u�&^�e^�&���*����%3��P�6z�S_v���W�[A���#�c
MA����<K�d�.p�u�X�
�&�?�S{��h�r�r���g	K-S���9�4A7���g�)�`�+�����=��P�R?��T�]�H���.�������P�����_��
����e��+�m��7[8z�T+v��9��N�c8�)i���������P��&�8�Zx��-���@Se�;C��{�~x2��d*0*�S6���d�x��j������l�5�<S��6/�E���N�R�X�jW��8b�!�����p���k��+�����0S^�����H�x=���s?��B��:w����������S��ou������a�2T^�U���[
�~2�/�����+8��`��E���R�������zh
A��A��I(���|���Xh�fm��_�L�q�0��C[rU��a�����
�_<sl�l'{��!�gW���������B�JH=I?)�B�g���������U��R�jR���d�xR���$�BT�u)���*T4��P�[T�p��})��XT_��.i���P(d��;[U�����w2�
A�g~(_ww���jI����ab^�yKt��#���G���s	��������D[���&?��RJ*�3���/"iE$u��������M��D����kd4�l�����)��y0�jq75��-�����:
~�GU���*��Q�<e�!�E��'7�'��"�H��3�i�?tU�����s������s^�4f��������
�J�9�h������8	cF�B
{�hW�_��$qU�dQ��\`7I�?xS�O�qd�s�����eUR�����B`&��qrzzd=p�{V��eJi*y���p���y
f�������r�E(�AY�E�_%���
�g���cA����%��eN��.U�T����#�Pp�|�U<��c�>���I�k�/+��0M�`���#����Z���zS�w�=��F�$	g��?�����
�_
��=����������:l�*T������#YT�`��*�<��kW����l�a����t�b:	gk3�.G�WC�����pF�RL��VBv��N��E���Y9���R!C��i�9��������@����]JP��97JS���ly�_r��E���������E����P�����^y�����3ke'
��Q�}<J����b�A�L�.�~��kp��JYN����u^��\:x��������Np�����"���|(���S����
���@����0e(9D���	�����2�v�w%d�p�}�HWrc[�p��]�:����\e2�i�q���hE������	��vM�L���38Y����RGe���Vy���KH��L�����2t���o��I��78������3��.�����P�K�+bL�L����pC�YV�'��E�����N|���'�����*M�j<-+��[��]�M�����V��<��\6Vf���C<�lU\���h]���_��y8H'��R�J�J*��W �	T
��m!��(��?�n�Y�,����(x�,��G_���5��_�-�=k�3a����]��>.��f�x��<�������:|i�;1��������������g���;>2�7�����1�>��;6�������`��w6��}�z����3(�2�7�W���y��A�=7$����h��������=���.�?����|qi���Fv|90�q�7�2�7,�~���1Y��+*�nVPr��cy?rW���>;������.[���w���g��M�&%�kGh�$�c>U���e�q�Y��������j��Ty\���U5�m���$zI�]���@�m|�A�w�g��:"�'(�
d:~�(��x>�|J���P���UM�W�i{��FNM	r����+�V�q���]���M��d4��|](��o�l@_�rW���ru��cBu��3R�+���u�p���
���
�@+���v���!+�p�����S 
b3�"oLi������Pn�v�#Ey�#����L���n�e�xe���������b�k�O.�Y�����L]-z��q��hP�t���c]�IThh>����!"��tFv)�q�I���lU�:�������-�K�Y$tX{"����;���(�_�����tA�
�--�:��D/�
56\Rre��`����n��a�M`��6�
�%:�"}�h��?�����\�q�l+^�Z�+�\U?_�!@�V�vt�}���s�=�{��PC�9^v�S0l�3�	������#���������=�+hu���!��LB�Az)xH�a���9��%�W��g�7$7���*����%��m�������:V�]�������5��`��!'0i�!�x�T��'m1�e�9$$�����94�0� w�F
:�k������K����G�"����&�I�X��U�(^>��E:��EO��X��|�}K7h��s*AJ�����a�����Jsh���?aj
7��jK���V���v<�|����B�QW`3�����q��vv�/�UB�y{��Xm`}�U��I��U�n���@��������CX�^b��W���Nh�f
3�-���������E]��C����5���D���My�5��<v��h������<�'�E���-�3�l\�Gw��41���Z�����P*�t��K�e�J�Cy�U�"f`�P���W~�!8�
��~*����g<9��S��W���,���Y�5� _`����� �d]���������uC�����o[�����d��jJ�y����:�I�b�����z��v����\�
O���/���
�\����mt��TV,��*9^,
���q��'4�cr����'����D]�����+�q~��t��a���4$�17^8�L��~]p���t�7���U�����tU����U����X�M-K�)�e�~�����:X�ff]Y}�O�6��
kl0a�
�a�
[e(09��b*�Tl�e��0x�7�����`h\�m��R�V�����l��E�� ���o�tV����+��l�w����6`��WBD4V����	
�R\�.�����F��I9��C��m~�<�q5��A�2;�{�i�q�xr�U`)�2��R���0A�|6�t��*�mM���T�'�O��o������'��g�����4�Y��kRW��w�z��� �!�:b���j���s$h�����&����1~X1L�S�U}����L�|/�C��]7�����^���\n���Aa�bW �c	�X�o2r��r�W�,�l�G���x9��������W��M���0�A���-v��b����b92Pl�+��Y�����(S7;��f9�P��|]���|��a>S	�r�����z�s�����K�g��
�xA���Yr�#m �4��u�5f���Q����P�Y��G�
l�gk���S���7s���WS��Q
�}��~.Y)�'K�w�/G�3/0�,���qK�IuF��(��r�SB��`�M�
l����P��R�V��E����U����NT��003��f���g�y}pI_���CYZ`�)�����
�� .0�h(y��~�����9���C��T����d=�.P(��^�!`����o=x6
\~A��K`�B�h����c���EG8j���aC���3�$z�M�����e��rCQ��L�*>_���N��-9��=�8n�l��Xd�UWonBVh���]']�C����V5 F���E\�*/�C�����S��@�t!9��N��r8��0`:y�����:M`_�u��yK� 0�RR��������K�&�NH��:�q��B@n�[w[
��	��������e�\�(�''��}&V��
@gCsq��������J
��K�����m�M��q��E���gbG�
���pi��{2�����j9[�K�� }6\$�_.�/�|�`=,��V�|k[�b��a�Z��I�ss4���0�~m:\^:���b�W����[i�q����|�4��MS@��'6Z�Y'�Kd���b&�F@���r�3K������-�2��,#R�4X ��V��V/�F6�|�Q�6P���40����v���+������n�K������e��5L4E�>g1Um�]�~/���	]��*��EH�2��D���H�i�\2 �'����7�����wY,0T��Q�8k�<:�-T�:s3�M�T}�\\d|q�k"�Y�(^�%��(��*YJ��s�*��j�8M37������Fv��@&�R��k8|�TX'h���K��v~���DPw���f��v��n�M��MR^�{:�v5Cq���1]$�i����0�'��������|�����q�[���,������g'� w�2\��{��T��Lz�C�p���pC��,�A�N�}�G�����L����G��|�J,gR��CO��Q"G��a�|(L������ya���+U2����	�ob9x������������NZ�y�*���%�e-�i��+nF�RC�CzJ%��i����������rd���Zb��Pnr���L^%�`#/Q��U�Eb�$���{��1xt�
II�	k4|nD����C���!�����!!u~���"W�R �Jd���"�������73��/��0��:��'��Co%��b�NR����7v�~'6u���l����X��F�N.�Qy~�a�t�Y/5����Z�W���k8i��7�Nc'��7H�`��NAU���`����&��`��tu�.����^
�U����0�~0���=���Un�r I	yp-�f�tc��0�V�boe��1���d=�g�t��>�*���g�n���JLy�)���
0���%&"�ll�SH5��*��=�npaFT���sST~f�u
�;`�P(V�%��R��wt�c|� JN�Jt?��"���ZB[�)-�kh�	�Y��cua�f����?7t�2��R��)��t�C��qo���m �Q�<��U_��tM?6���.��@�8N�����O7Z����JR�W���N�v4��+�Lj���?F:���I��2�f�����Yl���
�@��^��U)<��O�e��������C���y�P�qr�����q����~+U����gE�{E��o�}IF��#�
�z�������������D	w�\����X�y���������!:3�g���)�������ZWy,v!���yW�����|��]����0�;�{��d�i�-R������A����$e������g�K���>G�El�����!1���N�08�������%;�cy���x��G�4\S_���$��$*Uhi��A������%%���'�\��z P&��������-��G�u-sj������/�o�:��=za��O��Ns������ih~����=g.&:Hh�Tsh�>�+������h"����wE�W�'��[R"��!8���������4;���H���-�'�XNaKl�+|��������A\��x��y���c�	z���2�-��l��a��+������i�����C���f�,c��C����<�X��pb�T8��w�������i=?���b5U��A���V��1cE�xH��k!p��\���p�5�{�����zA�h�Fb�V�����us�G��s���zJ�I�+�3�m����9���0x���?%D��%�B���~8�C�EF���'��
�#Kg��������MVn
L<6��i^9r�p�8J����	d����l���Cu������c�Y�����F�+��W9r~�_T0�^#��8��l���� ��0��d_+5{u���L3�������k-:����#��]���)_6�v��=o�1M���	[�UF���_A��<�8Sp���c2!����Hy�<��{�{o�J��65~���c��DvaD��e���A�n���
���?���$bX,?������~�k���?�O���j��R�.�b{-�G~���|�
1z�9�d5��x+�)��[,��/���x��s�|�����<�E�^��y��x�**$p+��b�*w��j���L"-����xP {�K��X����@#�;������.����:Zg�����%~V���e���Jd����*���!����|�^���:�x�l�M_	7��������������I=s-k��~r�O����H�f��%���6�vT�����e���*9��+m�>d�9�����U���Up��������s5x��K=�t������j_���\��l�@����^X^��68jW�8j#��
O]���yhKX�pE��_�?U�So�����Mp��9��Q��|r��?J�lt���J��k����������E��\.�
/0���&ke:	L?����A���-�l��������T&J���W�,����eY��,K��eu��l. y���|���}I���������.���[�Fn�N��7zI�{�u�*]����}�3�"c#�F�p��&�o��mY��0�o��R��!l��F�7���RK�6������'+a�������Yr��2s��t�[d�cd�`�r�3x�=F�rs��u�J��������Lx��e������?
a���x��bK*r]��[�����'�M3\zJ�p(����M��t��_�9o�vN�Sg2&�@3��
���?&�
���3Y�An���Z��:�+��.2��[R��I�pc;-���|�����[�b��-����0���#!l��'���P�	�*�������&\b�	�i�b��2�
X��6]�d}#b����B�T�������T���Y�O;	m<4J(�1>�h��'���_�����Fjl�Q�.}�l�����Y[��������G:k����*V�����38�biw��9�D��~���Z���*l�l4(��C�
�i��{���Y����X�Ua�b�q��>7��b���
DO�|;�j25~�]��Z���[a P���[��q������pQ`	G��"��&7O~q]'���6�ct�@��M��WC�! �^y��oo..f'\jT�C��Q��SB��-�0llC�[]*Q3����
�b����6��
��!���(�M�D��U���,rd�(���M�.:��c�V(1%w������L]�r�R7��g�#�}�oE�O��'�wb:1��"�4J��E��03Z-�,��M�cT���[��|�2V;]z�,��g��>�|W.�3�r���yq_��1"��������/5���d��Il���������-g� ��^'v����s�2ZBK�2����y���v�m!�2���a0�H���G��D����=Wz2P
���4l�G�k��h���U��X�6���J�c(;�3��wI��K�-�v,G��i��$��1�3%l�0�xZ�lo&(���.��Kf�����^�m��R���X�����e��XPx����
��Lq��5���Yj5�3��~���h#/��ZZ��k��.��@���%����/%"�-�R�5�����j�G�`k�IO�@�$���0O����m�\o�����6��D����	M�D�v���L�;������Kl�U��NP��5-��$�J3A)r�&5��`iC�Wk��R�]E�h��&��P*�m��q,����@���/�3A���'p�*Y��Q�I�����9U	>U��w5��wx�-����������%7�.Sy�yt$��hh�Zr�������\�U3M�=��*��Ebm�K"O�Z��������1=�W��h�|��s�.��w��e/������%6K�?q"w����2��,��K��/���M���^��GA�G�W���W��?�/��}CAw��0�T�
2��[�4��OD/9�,r�7��*���J����2�V��GlZX��KL_�'uOp<7B�s�O�����	����eeT"��e����aunES��KU\(�`������%�YBX�!��C�&-�2R�:G�w����w������!�<Oi�2�e�Zp�����Z$�Y����������Bx��������-U�"��=sa���280�����u^�����_{�-���"�-���y��8K�ud�����*�l3����G�u�*:j\����E^f|����l�e��� c���e�`[T�]3���*��0z�;�������K?_N�`e����p���h��nCQ��F��E+�\
����]S!";:a�;��Y�C�jx��t����|c0�G����{���g�=�L��.��7�s���)`����k:��c��L��b��d�$����uK��I���e�����:q%����}bK*U(��\�<hBR��&������9��Z7Z�3���7�����t������Z���W�������.�������V����_�_7��/nuz��A.�x�g��E�_?/���O�J�+q��V�D���}�������[�R��l��Hc��-�������kk�\���U�L+]W}���k�Ld"���b�b5Av�WJ*��@'�ZO������b ������.�����"���b����-k����zM:��x��0c��yV��m���A!��
q3���@��z��vQ��b�kh����
mY�z#�^
��P�p<<�z��pi@�z+�eyG��meK�������/�Y�vMU�����0
���H��;+�Ln$�o���Pn�����S�.�F��B��<����=	�,�����0oY]x�<�o;�#�����c���\^O*�n�4��Q��xt�'�<�	�N�)2������i�����k���<�@��T���;\��`��^h7F�L'�����PK&���:Z�l�Fnw�������u������V3�;cHK^4�����f�3���_o��Y��������O���R�	��6���o���&�(f����tmJ�W*id�T���u9iN�V����I���9�����l����m[��r���jF��D�6�_���^�6�zr*��i�3[��FR��P��-w.�|��3�T��Z�z�z��u��e����m��I�m��Lby�c}���	.��+��;=Y�=_xF��&R�}�5��*�������5,���t�1��6�~]���S���yB\����4�����p
=_H8�b�~�K@01$��=������m�`����U�Mw&{����6�WN��!�;'��s���B�S���|4�8�{��!R�����C����"��>R��u�nP���CBt��t�������]$�/r�<�
|3��:�d=
q�2���?�e�[L����f��:0��+tg�p5`��R�kX�.�A����
Tx�2�Z�W��lcC\:D��C��Jz�a�������xl=}�>�t�2:�xh��w[��mUnm���K\]�|8�o8F��)xo����lV%��;�^O���o��qyw���4��f �7�ZX���������mi�	�������B�4H/�h���
zhb��8��C�35�"Ngv^Kwk�B������D�y{W��"������`��Dw��Q�Z�rx�:m$:E4�y�K�:p��qp�L����h*�v�!nF�EV��|���������26v��jf���p5��s(���sn�.���]��E-m�C��N��y��k�����3����Y���>t�]���t��-�.��������
n�������k�_��Y<p�����<�c�_������dB�p�%��C3]��j%�a�������rQ�x�+�I��T�./�B�����j9�O"��.I\�~������={C���xVX�i����k�5�z=p\ �)IR5m[p�-v^��ZS|= 2�l�Xh}�
e8���ux	Un�/g>�����i�t�7~��.�J�U�u
&�����:��7$�����ulK(�6J��a�kj>1Y9�ri�V.�.����O�]~���G�����rV�b�A�a��'(�����X��K/����R�f��X��C���)��X)�t����B�JJ�.R����|!��ICh���5�tL)\sFA$[k�Y���ig���b���K�����E2�����l�
!���*����2�Y�k=H6�&���U>���CR�=�3\g����U3Y�I�����m�~�������P�1H����
��U��a�z���������G�Isa�C���=V��<��G]�y������Jw��J���xU�{�\��]_�[�S5?g~�'��;���&��-��IeVpB����V/�O�w�~��$��^c��5�[.c���=�G�~�k���SE����1w�]������]��T��l�z�����H1�R
bi��o�A����H�����zB�U$"F'}-]��u�
�-	�I1K�p`��/��sO��fq#�����������������f)b���7�7uz'��+��yY�<.n���IG�o^����~g��������Wq�z�����uq�U<�.�?�OS���I�
�;�D�$ZY�+�"��O��.��]��z��9��y�$zS�i��#���-��q��r�m��1�8�������)8�(>�ZW[��4�O���E�c�p��%��np�l
O�����:k������&HI {�2�
�h������2��������P��e���Cl��Q�^��U��5]ntwoF��c��@o���������|��
���P=��]k�}]��Pl\�)n*�uS
�!\3�������h���5r�Pl��<>����V|���bdE����}�,1��3Bz�����W(�i����i�X��'#/����G�#�	��7��@������o�+��	6�.���`�S��"I��>�	���
�G�YO
��&������������J#k�6�p_` ���_�8���(��<���C��7�,��"�����0��+�A��R �(tL�����_�
x�~��b��l�O�EL7�!G-���9O1<����m�5� ^�C��eF%#*1
�Wy���nP0���D`��2�_�*`���D���6�:�F7�[�"N�6Y9��R!$t�T ����]��"���/�j�q���L��W��^�����f���[{.�LX��'.
��� ��xa����@2�p��-j�@����[�5k��\'�m!)�����0E�7x�n\�A�g�ud��;"b��LBI[��*]�u�kx?��O�U�cA���7�|Y�\�rE�*v�|�A��1���������~��7�b�#n�^���"��F���B��������b�~�r`ZS�q�U1X��<��o��}#���H���W�rtiQ.y�A��9����hcM����e�z��bS����{������@���f��M�!��������:�����*?��@��[���Nz^��	�E��ot,���7i���7\�)rH���jT��Y1���Q�4i�r��q�09���-g
��17��il)��I����;��`��L�eu�4T�����'G�i�Q:�g�5�|�'Wy#
(�{������x85��������Fl�����ht�nzt�Un*�F�0����Mrr�m�0�q�O�*����.nJ�����=�5�0������,��J�L-��:#��G���Ht�:��"[M����o8�"��"K���t1z�W.�e�7:��P�@����C2�B�S�����ll���eT��9��@/��
QN�����i"��+�>���������	h�t�.��vW�3b
F
T�~���&���@	�Wh��<���7X��������-�j� X1��F�7xO�~��`���.��
��V�%��tX����b����c�b���KVX�a@�y��-TA���@���!�������qw;z��G�:�*� �4�=U�Q��ui�I�0>S���G�C���0�\�}R�|��Bm�#n�������g���_�d�[E�C&MU[	�sBz�6rzn�~���.��0A��f�orW}�1* {����3T������V�����X�~�������uq{�������?�������[�.�O�����'s�,n_���Ec�V�U|z��+1���U��v
��j&��e ������UCi�mR�*�h������dI���/\����xy!9�s�o�T���+�o+x�*CTV�����m���w���F�p|XAM��+6���h�������L;���uZ�
�OM52X
u��:��o%���l��rx�y���r1(�:>���v���Vw*�R��A��jH�����X��GF�Cx�0���[?����U4�t�9���_����|F��ci�����#l{P���zoYs�VP��0�PQp��w*�o�U�����29�a0���ghqi>�=���=�[�U�l����_>;�%\�LX��V}y$6�.��L����L	T�w�����	�
��{]N|3��H�o�i�?���\Kr[�g��N&���[���Q13 P%����kX��H�2��"�b��7c��y��� ���H%&T�b`hl�~�ap��G�YU��D�#
�T��<��}E9��� @�x�(���6�X��Ao��+�zB��t��G:��C�J	s 
��5��f��	^~�PS��Po��nCD��7���se�(D�=����je�����"�X9D��6�i����H�8W�`�����	��*��K\x�Cv��m��(tsp_���,*IXO��RHh�2��J�����6\����-
��rk,P�d6��������.\�����P/��� �]���s]���E�{te��x�$�>R���s��$d7���k@���w��;Rp��]��COY����;�ar��/�[���mZ���=cYiGz6�'t�o1�w���*�K�3b!����:3
vj�>f�C�[��x���LdiI��?������V�������G@)C���u�ok(�Y>���pN�6V�%��	��R�)����Q��.�!p�>F!o����k��T"RPE���Z�G��'V�z�d����o����������t�7H&��C��d?�D	�F�������2�O��3z�\ll��g��.�:��If����Z/m��s��]���������p,��W-+��K.���}�;��O;��
�o��}�kW�����m�t�uE��
������v4�Q���"�
�QUA_"�����h����.����$^C�~�0��X
W�DbSH�v��<��Fv���n���B�5J�������uZ�p������!��xf��|n���h��������ME�z���R\s3��N�+:I�L�
Xn�Ak����W���m���u�w2�!(�F���@w�������1l1	SG� N�����0qti��$���������(�i�Ga�V��F�@���]K{^����������l*�~C���U�6��d���Y�t��[b)�-�W	��O;T�)z��3�D�<��Yr.F�3n�v.�����*4i��P<���������2Wq+��H��m�
�t��%,�����$I_���YH�E'�L�����$�y/3u�
�������Rb��8�
������*��C6��E������u;�Qi��<�{*Z�-
a��a���x��-�����L���L�s�sb���v�=\K��Sb���b�=��z������>��O�l2�3���&���R��<��1������lj�zQ.�k�6
�P������'e�[��ST�����gB|u�G���Y��mS1�ea�=��^Yig ���>�rKe&��U�x��_�h���������O�<'�V'\�6�%�@W<PA�C�.�J/"�9���������B���P���!T���,�F��q�����P�_N�����+�u�`�d�ar�`C�4[2�������J�v�ar0���������}�
�'�*y���oy�I�V�����y��BD��%2��&�QW�D���>�>��G^&f�a���>\}k�X6����h����="8������9
~��f����!az5�=�Kd�����=�^p����My`T�IB������?���{�Y>xS���L���������h�p`�h
�&C��h�Aw{'pKQu��C���#]b��i�nZ�x���&2���gm�K������0"�X�u���	t���#��������T,����uf��J2�0=�v;[�����y[]0��~h�mF��h�X&�4��6�2Jm�@���d���S�
/�/����)��9N�*�H�Y��!���;�<�h�U�Lr���+|�m�R��7�rW.w~��6c���OP�z�����������^��H29�%�����
�:�c�P(��1"x��-����q�7�X�R�;!ZEM5��3l&����F����iC��o9X|�H���/�a��)0���-2���fN>2z
��
�Ez;��v:���o����Q�Wk��-���z���������fqw�Z��������E���E����?wo�'7���}q���(?�r��rq������
��u���=��ID�����U~����9�W��9�����I�(��3@��p����>����J=��{�T��3�[1���P������������qc�����
����M)q�.����!��}����}�'D������z����j�|�����6w����������~��N~��T��I�����w6�i��������B��K'x��j(�����z�c�T�p~��zT6.7����y9�����=z�B
�}U�
�6-�@?������{?�LL��N)�X ���W,|W4&	���;T�w(pT�v�6�d�����e^@}�#��|����L���XW���e��)��F�$����g�����Z��#�����W���P3�a���O>����O'+H��v� :y�������|Dz���w}`����~���Y�����������sF�9��T�76&���o�,�CAz�)�OL������?LH'�f^)���(0�t������i������k��+|����-W,�7�JT,�4��;)������~vt��p�^/�����fY:�mlUzvPp��5�����L("�������w(����y"�bt�;�I��F�MT�$<T������������%>����r�W'��"�����$/��D�N�	Nc���*�)*�Tp�O=Yu;��S��?�t�<<M��s�@H�%��
�����Y��'	4�(���;,�y N��qtd
z�	�y�l_����bC��J��NB�|�'v��
N}��{w�-����w��h�8^9��	���,J���������C����)`��M�\�g������O�Pv.�R��`����=�@�����o��S�Jg��f�Fy�jZ��/ymj��-,t�j�+{Z�\�J�$���������q
������a��avu���@�[
�j�H���i��0��6����"vG�7���0����2+dU�.��}����W�3U���Y;X����.C����_\��q�{2����A�R]�J5��e�U���:���}�s���o����Bi/�up���
�.]
�-���`hYO�o����n$(�>_+����]��:�}����+�/���Z�$}����@1L�����1i�
E,U��������	��UM%|l��n{k�|�R��&"���)U��Y�i���|��kL.T��pv�vN�����cpI�a��%�x������/8���Y��?����wd-�������z�Y~f���W��Q\~���@�N^O���T=:[��(\�G���b
�V��a
:���;M�LFD+w�����r�l-�������&�9��LY����vlbH������4q|�.6<������e&���p���5w{�aW����s>��(���7*�P�0��q�'�7�P�'���1���l����2e�w��U���L-��������;ncS8�i\������R�������p�+�RO1����C�j_w���SS���e�Z5b6K$�j�S���Cgj�R^���`+�V�1�(<���6�w��n��=�IG����f�=4��
�Wi�
r
��z (���:��$c����(R(^�i/��dNK�[�8��S"��.�RC�:8����'�����4b��]��5F��{a�n�U�C���S�J��������X���i��
�[G���
{�>���r���21��6��w<��$�{��
O*[����I��R�s��*�N�VS����{�Zg#�O�j�)X%R92�5�L�J��t���)N.�7�#=�IMn2�wyq�q��`��m:8�.9���C����HEy�����}D�L����4�
��3������s�N����KL�}�n�{��;�z��:�%�m���I&K�3C:������%����N����Y+f;���P�����A�Z>��������	�wB<���UY�������d����"y��w����Hx.����o�=�(IrirfJ��RF����?(5q��9w��W���H��(�V�����D��],O����:F�2�&�w<GU_#E1�E�xF������Q����-�9a��(��r{���x�-� �?#��NU.�9�pU>�
>3����>��������M	���Q������6�p�c��U���d�5������,��pI=^�S���\K��/\[��{P��o�3�d�|��.8\p��y�fd��F7|���;��R��.$0
��	nj%�by:tB���0J���?�����������O+���������I/^�X���������
��k������������������?�����,w>�_�=_��_/������������&��?��Jnz���d�)���aC�����&�d}��j#
���{���W�EL�KT��������~P,�*�Ok�J�cCp�k�;�7��{+��}���OgK�d���7u�����>������`��|p�X�j��dO���1I�������V�����A����C]c`�
�!8�xvIwVc��r5�	�t�G��8�V���X��}���{kG�/�g��Kr���a\
����
������
=TE�����&k�~���O(��D�T�n�U��b�y��v�G��w�����{�e\ �~�x�{t���O��k��a9�kC���O���S�kg�R�����-���f;���������`��S������;�����p�2�	A���G\����>�������M�������a*�}�(�^V9�����[����B��B���*�{��(w�-w�@):A�h�K�cLBs��;��i�O��u�6�}�:�3���9�������}��^&�j$�����g��P)�����!��G���21po!,��X2o$��v��\]z�L��G����g��4�,��������0p������7=�nD6�W����������l��}��=�7����{.m�WMV�Sz�l�)z�F7�Q��3�(�����>��S	���:U�Pq��������[(4z�n`��{GM �Ue]m�=,�}��7�
|����Bt\�^`K��T����=?��QA����C����{�^������=�X�Kp����whpv�3�H��U����!y�%�N�
����u4������!�1\q?x���o��T�XHu�7�?�#�(�-KK�x#"G�;��u��v�4�PhseY�,�eHkI��x����|����t
Y\��6���@��M�^���
���|fZ<{Z<���l3�Q�N��?����|�������"�����_�V�/�����|]|���"O�jB���X����B�q��K��en4����{
��(F�����#�J�0;��o���N�;�F��Q����Y�)n��@U\�����t- w�|J��$C�w��L�������0u�<����4�4�ts�"�U>��$W����R��n������T;��Jz��w��aT:d�b�l�P$�����������	�� ��"�k���*=�[��8���"P6.Z>:����.�wN�T��j��-��h���6�=���v�O$��W������\X���)���>�9S�ib������n�w�4C����&�s5�k%�W���.�K^�I�9���{&S�PaW����:|���/���}���v�����w�����������W������*aMIs�9����L�rgq��S��%�s�_T�^k����Bt��K�#N���t�%�j���a��u="o����D�4G��	�W&��-���r��d"�<�g���BE�����/��d	sJ
�CIv����+-�7�w�[6�e>|��u1A�F�)����W*���K�AE<���uFGFw�@Ae���!��fuj]�;�tdhl��K�O�e_L��*��~��%��m���C��DV�a�]���J�^&%�	J3bp�K(��q��K�������w~��	;��l�����/�8?����/\R��6�[����}��I��a�um����E�a�]�<���X��,Rx�t�_f�_f���*���_���U=�[����%�����e1��ro{�u*�X��E'�*�,f��"�&�,�
��^�k�
�[�!�W0��gDw��@Jt���HC�R^jc]��osB=���%);'};�����W�O���U8�5�>_"V�}�#������G���T�
��'�}���/E9����B�_��(�ABLx�Y^���/�K���/��8_��y��t���JxPbXC��PNX�c�]`I�������MqN1a;�3�*y�Z���=-�&:�T�O#��;(8N�L��S��p���HA#�C��

��
4�tn�����r)���T��&�z��`#������)�j�~�*��.����fdQg���T��T���H������/�������V����_<�<��3ne�3���b��<3$������L���������,�5~�(������Y1.�%f."�"T"S�`�'����@��?x����L3T���0.���
��N�]pY���o�t6=��l�r8����r�l;,rQb�V�
��C��e�����E}�&���)���|��
IC�|���y��|��n
�H��t����B$���`��~�L:1
���9VY�Ml��3�� ��b�.����53Id�b��p�!�/�A~��:�����B)Z��[�(�+��VI{v����-�����n������d����J�<U	�����b�+0[�B�����z�Vc���%���_�5Q���X�C��
��"%	���Y�4m�
��V�����%��N7�PQ��E��ku{,tB�3�_t��`_�G�P%������)P�/z�+���_\G�Upb�K>���2%[.� E������������Z�n�p�y����xxY<�.V������]�:�������TO!��������c_d�;/�+���Z���n�C���D�/�"��
�	�����PL<���P��������
	����M�}N��j\�8RD���)��u���FLk�@���~��������bl\�q	|A�����4x����*�|YFu���*�Fj��a�i�a~�<�� (�N'�Au��;��Bu�2�4tu�&8��\=����{���:~�n�;S��0�]S"0�)0Xl0�amG=���*�C�L7l�@����o*��SiWy|��>�6���0D}U�MoI���P$od�����b��>��~0MX��wG��\������Tq(P��i�/�`���E��{���ek�CU����a0���F%$��~rI?[��_�cn�N�H�C��&��>�l�{���=����i�/1�3#���P����fh�I�8�:�ce���*8(0�O�5����0D���!A3
������K�I����0��x�XST.g���~�����.<�/|.N����h�-����-t:z��.|�=��b�/0���r�K��7�ci7�O.n�	G�V���t"K�q~�9X���?�<=��<81�,�l��C�����Q�Pg
c?'��G����f�lc��S��P�wx
3yr��=W���N�v��F�����z����
���J}�"��T���u�B����������f=���-���[��p���z��G
~�����.�	���-#]���hd�(=I��E���3�K�����zi�����Ii(W�~vV�s�������>4'B��I�����
8�B(���
y�!d����������7��>�7FU_����jt�b�H�LM]���
eI���(����sN��*����D��7C��H�y��������
?@��Lx��pg��H���%e[e�`{�LD����g����U�6�
�$O�^�_���o9��w����|���=�o����E2YyB<z
?6U��q{L�>�=(�$�{4�s��y:��x���@�PK�(��Y�A[��/�pB�A���
uU�������
�]5K*���{�|�^
y�ihu~�?���������7MX;�`&FwD���wh{D��?��������#8�zQRT�S�&�(�ib���;v.�������T���&;�N�u���+H��#�:�m����
�G��*���E�i�-�-J�4s����#�	�J:^��W��������A"��&��5�G+b�<9su��b���;�v���@���J�5T3��.|�����`L����k�Ep�����!2bz�l����`S�l�+w�H������V
���zPE=�b�R|�xmO�Q���B5��d�8�	�(:�P�2)H��Ut�����9�����
\���bWz>{]��|`�2��e]dYO\B��g>��C��[�m;����{��]�/>0'h�4������&{��<��n(4��PUkm�<�t�kI:���i�|��i}~���2�}m����{��>�
��Z����b+�P�!�s�:]V�S���`KE�N��[$�~����.o1�m�H(�D�k�8����TaO��y��&�$`������j0-
��im��C��+�j���W6�,8���$.(�l,���f�xJj��I)2����S�+���d&�b��t�����`;�,b�VTE��jwW��Q����l��p#Z>�p���U��N]<`F��3�m�c���>K��Y�����t���,i�
h������i�9V���j���C�&!Y�w0����r/=%����kE[t����~�T��'����=������:.R�;uu\�L4;��Z�A�Q
�
T
����VJ0��0V�B�~��P.Fk��w�'����U3�	/���o��/C��b8����V(�������w�
��g�r��|	��^C�Q���)'�����QS.��I����AO=����,�	���2���E�V����US�J�����(��^�,DU�Qs���9�i�>?�G
���=��T�Z3���,=*�2�����������?i��e��+U��0�$��8�0��;��7yWx�1���~�o�{���7>L�n:c8a*u�W�����|nS�E��c����?������=/������o)��K����������Q<z�C��������V�^�O��Y^�q%W4\��{����wa�Ado�V3��|�N��Z���y�GUh�u���������#�C��]E�+��Rj�����*�+���j���pt�!o"�a�12�;S9K���D��m���b��������>�����J���GrK�4�em��T��\"l����9�X��]GJI�|r%�B@�<����[tU�����w�0`����&��-?"�uP�'�P���m����BM���sy�Z�~,J�c���������Q7���������g��@��<V���	����%v������=�����J�ni��w�;�Q'L��Oi=j{�n�����mJ-���=V����I�Gt~��G��x,������������"=�We�h�`���=l*k�>V��]�r83�"Q���m%fH����t=����.�\�*�����o���8�X�����}���Q8�����I���jH���9�3B�T��jD�3?a��aF#����[�:��@S�w�(��g�gg�9<�q,7yf�LI���/ckG+M�Pn8�-��#���]��9R�S������'N&
�����$5#��<Q���~�Z73�'>n�"h�;�,��?�c:(���%� ��5,Dn��~�'�����Lv����*��W?��o���5Z��V���,?�5V��]7�HS;�D�j�ldvS�6C	�����c�����0��E.yk>�[����8��AV&�2;<����@U^.1&v�G�����������!!�d�Dh�����"+&����_6�����]����i�+MN�"����if
�U�"�\��'c��h�lF$#���:O�r���1v9G�=���t��WC�)��!V��@uJ�z�G-�V��z���u'�efH�6��~|JbHDzR	�Q"n�Dj��Nu�W������8C58��~��[*/�| �pr<`�9)�X���~�����I�@3O�H�q>|�����k[��P�.��X#,R��;b�/�^���1���@����XN�	Jc\�����X���#�>;������K���e)��?�o\G��1"A�-_5�x������Gh�{���Hxs��/cV��!;�j��������������e�M�O�
/&/uX����3��
zk	U�g�e���M������>r1��/ |,�m��_,NW�.y}��j��0�*Y)���\�F�_!4U.q&�U��'j]�����>�-�C9^@YW�~�����~��.�x�@�l��#Nu|���B�B9ZY�tn�xkJT6�IU�I��G�#7K4���Xfw}v���a1��
5�n����N���D�Z<�]W8�]1�o�����$d����|d���P��H
�����Tz�O��54�=r���@H|�V5O���-�P�G0�%e`0��0���=�&�W�+�W���r{��L���8h7z��'�yb����>:���U�N(QRU�����rV��>A�}���*_`B.�nY^����k�ifz������.�t�xA/�
X�E�+����d�:s�aa��qd���!�q���A���*U>���[�r f>�8�8���<P�#_��^%��\Q�h?�T���U
v���n~��h.j�&M�h�i�K��J���c=b*r�\�V*�Kdz!��gl��b,�=�Bq�J]����H��g�������GE�HKT\��:)wX"��#��������w�#��(P|1��`+g�3��������P��p��0!�&6r1y��C����Ayi��U=&��>��J�6u�J��h������������W����O���M�����L�����F��S�N�_��5��}��<��1�s���H,RR���#5V����G
8����o,o�����6�{�.����x��l�=L���L� ����D�)��e����T������-��-���h��-9&�zf��,�����������4��TS�9'����N��w9��p�N�zB>�h��]	���4�k'S��}��~N�e�&�101���G�h�-���d��y�f��Yr=���M0����G�`���9,�&�T�-L�U!w\v�Gn�Vj�������T����V�X����~E�<���J�%W���������a\�n�6H�.��e�����=�\��i�c+NO��K���=%$\�S���cf����'�?2�{b��.�9�Qme>��h�}�����h��A��sS3_�q���
�y��@���7��}� 3���Go��*j��[�d�/!F�9�� �m�tj5R1������n�(W~Q�M���l�l���.��v�T�]x�	Ikb?h�)����x������yE�h����+QO8i�$��>R7����)��G��TZ�J���M����&.H��>vt��u(��������/=H���8!�LC�l���$(v+�)9��$���������w+���������������/��O7b}�ZI�����{���[�BO����U�����J<�W����v�!{�������e��*��7�CnQ�+y����I��X�[<}}|��Z�'���\���V=���'��z**��(7�V��j���vy������{U*��
�KO�����}���m�l?�U��X%���URL@���6\���������*�I�)
k���"�|���G.�0�
����9�d*���).^|/��f��B{HvO��~��*;�8�5�z^��8�SGj�����R�.��j]��(k��(6���y��%�\��a�f�f,��b��T��7��Z=�9�O=����(4����j0���M@��@xU����&����w����#�!��������X����`<p�G���.��.�t����\:���8&I�����Bx�������3�bO����R<�f����	|7U=�����5[�k�T��$��{7cA�PA��A���#Ym'K��*?�6�-�Azy���I?��
�����gk��g5z��t�*�I_Q[~����mY�X
���-.�@�!
�m�	��
��O�/�'[w����e��
��+��\{�o {>�d�7���)6��M�JRzLD���S JL�+�bw
��{�9$��jwx�!C�S���=���G&2��R�-��a������Z)�����).��L�)q%�Xw��M����yv���
��$�����Z��B#�u�Te�eT^�HgGi�����o�
���O�E:�8��������;;l:V�P�`���`��!�C*��2��m�<H)�*���C�[�X�J�����BE��Y�u,:��t7�.�_����j�,��J�n~��
�m-��`�jC
��ZYZy%i���'�n�B���'_�c��Ht�����)�.<�N�1�������:���=y������'$�*�F�8	�>U�&�qEb���x�W�<���fQ�*��}i	����,Lp���:R�-�
485�B�M�.�����i��rq+s��������P�^G�U��X���;�T�sO�W����@�#�|�Q%�X�����O��\���~Wd�����+`u���������rqO����8_��]�+�rBc��etY,��{��b~���f=&�
|R���OY�����#�Ev�rW�
2,�$�8w~����
&�'��-7��0?1�
O�]6�����W>Q�c3�K�>�r��<�{��	���6��8��T�������{_���w�%���@	���mK�.�K�<}���������)���Q��/�+�t�R+2����3������%�kON{�_QJ��BgH��n<�)TK��#�1���R����'#�
���{eD�O~�4���Y��0�p7�
Z�������d����z�������^U,�������S,�KR����r�v��i�����A7���b���C����B�f����r6�)���������z�z9��s��y{�s��_rD1�w�B��1��J4�zGa�����|��������T���%P������.BTI�G�^��M������'~����������{&�J:���4��E=��tQ�N�J������6�a8���Tt�����&e�9R�:������5�����h��v�z<���P�/�P����P2g�&M��(n��8b5���C��[[�������O��#c��DS���RL{7�'�J��tu�Ld�nS�X�>��9���qv4������������s�X^D����sj�+1�D����*��=�eUlDf1v�3C���#�+�?�����2K��^�/�&�B�#���Z�X�g�s�;�Bc5���n@6V����\�<�z.O.2�;���ts��#_�k$�#E�l]�b��� ���D���9�����������wha1�9��/���|�>|Dh��
��"����*��$
:=��IzbL���~.��s5�����|f�|-���������B?q�y>]�i���d����"�������-$3��`���l�gM�fzV��6���r�b��2��6W���"��,]B��6K��K]���b�B�<d)�U�=l������������!t��S�O�[T"�[��nn7,(����=�<�>����|�m�@�����D���;��lTa
��C���MQ� ����6�A�f�l;
k�
w($��cv�:���m����s�
I���E!"j^kW��d~[�����5T�������Y�6��(=���[(�T��:�R��m4}+��%������6��v��Oag�B�:8QM$�������Cy��?�Z:�{�_�W�z����$�sAE��S��R7��v�	Z���c
���2�V�J55���c6\�*��:a������RL��S�o��v�&����2KJ�+�![�r�P]Zr���|�0�:?
�����*'�!�,���x<���|�Z���PRi�Q,�K'���8�i_�:���X]��Z�����=��NUG
gw|G�������j��Y�`���V!I�R�g_C�c_C]���[=��'J����� �=j���uh�Zn�t�vFls����a�@�1Z6�i����Eo:(Dn8���&�`��K
�&��_�4E����	�x��_1�y��P�����X��e	T;e�o����/�����mr�����|��*��n��._���A�Q8%�
���O����i�X�x��$��aK,OB
���O<gA�3N��W=��C�P
(�Y#C�:�]�ZG<}P�R�V�6���9ioMw���m�"t:��l�
qH��}=R'K������fF�-�y�C��p[�lPo�>l0�a;d���1�9�2����������y�����.��'�>YA��O����H�ts27=!��G�CB5�=�nU��mm�v��L�n������#%hbsC
h�(��~�b��0��B���}���Nf_.����� nm]����S�N�w��qt�I����������]�m��P��=l����>f��������&r����a�3�O4�
SR I���dP��p{���)�
'���>�N1!=�'��v�N3�
��/�K����jh�D�%����r�7D�+6���d}l�
��
l9w�I�������[��JS$Z�yO�����������V��F*�4��������-���zn�p;�H�,�C�c����cl�v��L(�O
Z�)������������m�>�<�o��b�Oe�)Q�<�;�_O""�t�S-e/��N"Xt����"*[����"�9�f�{F��N����gb ��M�{�n����>*��X��[	�x��I��k Y�_V����w����A�%���e>�T�,�{z��:����Y�3��h�EoQ�>W�}��3�S��w,���Q]���'��d ����f7X]������;LPi�X� ��Q�Q�a�0*T;��y��u+=��Q5��#^��c�o������l5y���IWrA�|��n�i�xbT�(n�[uA�����h���JX��hIA�3���H�S�	w���00j1��Px��.�����-���� ���z�����jF���\RL�.BO�aeeO{^�N���|�%^����7h�$S2��X��&sx�\��L+��T�6������Ij�@����f����(��|��&p>������-�M�O��Pa_�qB���F�u�J��O�|H@W��#~T*61B�'�^b����U���F�&��N�����9@D���X'�Q�L����S_�6v�h��	��z�4]��ep���'0!w�6'z�Q�!��?p��ja���v���Q��-�7
���&)�w�X�9���^�����b�����=q0HS��u�me��Nk�~��X�����z��P��(�D/���E�1Z����In��p�#��� ���I�H�6�zj�Sb����@�(�{i���!]�Hd{+�|8����:�'����O�� ���?�RU�<1*3�;�.<����}�7��d#?����r38����g��[��J��=�|��a7��-YP���r����t����B'��3������e+�LI�cO/��$b�E�J����7����I���	���Cq;Pp��`F���v��VaH�+r�����"����o�v�:���:�X^s�(M� ��I��Y{�/���sy�33��I�g/�i�����vW�N\E�������R����H��#R���O�t��P�k`"��b��
1�p������In8�}�>��HE��p�;!���rt�1��67��L{�T"���0�G@r�"�.�!��� s'��^�0��o���|8��S%\8B�V���[}�a������z8h��!�����)� ����0'�{��e��Y���
2�c�9P��
�)Y����p7���4���/34��&�&������,m������l��,�H���&��`GHK���k&���T6B2�6�/SWsX��i��i��L��^yc*=��#�SYs5���pT���f6|6����aDO>�8
�w&�d����Lk��������,I+��������W������,r��O�/����g����*�����^��m��\<_/�o�O,o�_��������?~,��,���7��E}xy�����|_<����Jn[�7���o�g��.$w�o��?���UcB�$V�%(����ZT=d��t&�L0�<�	&��H��s5ZcR�5�x�2�{
����11��,���-'L�&��<W���x[������|����Sv|?��6Y`"���]�#��r��������C����o�_�������5���L]����������j]eb��Nu��@������GQj�����e��/}hx�.rH��r��^���@��s�����������K)�Hs���7�qa6y>���"W�F{��6��P����h\�P�P,�l���]����K���K��}�V�Ye���4��UUyJ=?���J��X�T�_��t
�&��p�F��eK:�_��6X�fF�=��X���������B�M���#�����t�i�T"N�3O�#2���g]��lA���T��}e�7
�B�(`m�J�g����#����q?��i6�����gG�zXg���.����l��g�>Q$�W�&K��tC�b��3N\|��J��N�dR�
�;SxV��WR�c��aw��~��O~��.�����dEs�l\�^i�*L�<��9���y�g��9.RO7V�7+��]gf��R��sH;�|���s8��A���1#�IO9���C=�R���x��|k[����1�Y�+�E���p�����U�=��g�=����@��
�/���g��m8ti�Ui�p�HGq� ��?�o�Z!6�4����O���	R�v����#

������_��X�V�g���p���9&1�^hzw��t���f�V�!����y�h����p
�1�Ga�>�k�`�s��c����	��vyB"���R��b�Y�H3����Q��:�����"n�+lq��mm�gV����E���;A�@��:5�����g�|�d��O*p��br�Mq�8����7$�-U���������������C���r����0JI[#���%�"%�2%J�65�P�;��+�L����#���z�6�����X��c�{\t��w�{��>!��'���R
��p�zV���r,Tn��3~0�(�Tb�DR38�U��w��t����������g����/��W�����<�9��`�x��a����KhL!,dUv�@�]�#_�7/����%Fh!JK��?'L^���C��m���0��� y����$�TS��Cb��
��-��(9��t��d��b` �y3��Fz��;�2C�N����u�}�w#�	 %"�������X)J��2p�
�8�:z��|�Q{vm_m������m������B���
�������C���|��K���A|R
�jl�{�L��a��J0��<56�s�"�1k���+,���N���I(��1���=H��<��W� ([��Ga��Y�u����r���]��[����/a8z���V }�.Y���6�&|U0�z?���A��=M�*H��4�H?,�3��y�i����������O���4 vC��c�Ul���:���w�Y�H�v��y�g�Tz��������
����e���?z�Ax����M��I����l-���,�nyq}y�����{���D0�����(����� �J�_��mx
�+
.�C�8.���j������m���?��Z��UE����;�������������q��xy�R����j�">h��eu�y��.���������1�R������"�CE^8��R��l|�E�a���Fk3+���u�T�%_����\��b��fc�\��k���l���M�jh��$�-��H������*^6#~93E�
�B�dLkl���o*�:x�2C`����^\����yA���(�7���8zH��#���@�T�?1���J���XM.�m[�)��D@����� \�#1�[}�{}�KHr����_><��D�`��/;��(�ew�������b���,�J�loz��8��e_q��K�{�� �g5�AB��JPue��R6U3��{���:����I�u?�_��eS}@� �&���MM�+���Eb�Gk'����
�G��������Y���&R���G�=��.�i���u���n���^�r�7��������0yA���i�F=q�����������S�o��U��v%�2�*w!YJ�w��a�n��w����!IsV�d��ZT�1�T	g���]�@����*%����O��{������c���#�m�(O	{7T������2�����f�z�/+Q�6��}�:�{���?������4��:�
v9�������|����/
W�n��q��6�����#��=�/�\����R{�/��"���s^
�(��t��V�o���^|���r�H�#�Q����2_�G
a����*���
&/D��5h�5/}�7���w7Z��D������3�W�:�C��W��}�l�g��_��Z�R����T'�F��1O���F�f��f��-��_$���^z6���,p�b-����2�� �
��@��.���T�(���a��/C��x���%�2D,Oxlt�������e������H��1��>�'�|��x����%l��IL��)�b��q^��|�����.���@%��H�RlS��������;_�`����~���}D`���E��'=�x�F�Y�|z[���_���u���a��Y�����J�>��>?.^�X��_�W���C�����^����O�_�^�����v�z��x��~>�,^�F	���������*�7��ob+�����w��&W��<Vc��Z[���I>ky�B[���I���&~���������]���_+�#a��U�Bw4�^�$�Uu�H3U�|�}��Uel�~�I*, }�vx�i����y�+��l��=�W=�K"�g+��)gAA:4�&��7���:���(�m�=���,L���1�������*$R�Y��[����4mB��S��?q��7��������C����������V��@;��T���p%�!���������C������n�S�O��=6%����V���Z��et��
���B+C�*��*Y����`��
&���h�b`z�@�x��y���������R�W�>��������jQ�f�����=���v��|���*Q���U��T8_�<k����X�4v�����f�.������c�G�k�`���g�P�p�WU���?lx�B> "��s��(�j'1R�!��{�E1��-�Q����0��rdB�r4��G� ��{�E2����,�U�P(����~|��y�~���#��8Lx���2|ct�Jq����7nMV4����6�,]U(P�����(�67����r��^�������c���,Y����3aqs*�(^��|�o�]�o�&����&��W��B���Z!|@=6p��8[��S�"{we[CMV�J��sdH8���=��j�b��B���Z��6G�������������&�1,��
�������_����2D��.������4
����
c����@:���!�=��B�AA*���}�L�|����rN�jF���]e��-����x�8���$���zc�?���yF�H�����
+�����QJ���i��0"h����	�-��o�.X~
|�C�@�V��+^���b�!MHg����;���P�3�E{�����;�))*J&�U9
�d!h5��`�,�9�o)T�+�Fx����A���7��lz_���*�7���u��US�=}���������k���+J�8��)!�I��~��7(.���E��g�W�f�k�e�"�729��Nq�O3�G�"{���jJ���x���o�5��]{�fc���.0����0��y��!-��x����NK]h�P�^S�X,;��h�b����hK�U
��|l�P���[[�vn�k�!���*U'��-1�'������C���%�#N�v+5k��i���{�*��J'����frO�q	w���7i��)t�,qF6�o��Z�����1l/�&���<X���Ssa99��hC�"�T�jH���4�fc��	���}�sFoQ�+�Y�	�t-A8[���bPU�7�'�6O�I����w2�F���s�B�;!��a�����*�WI��XR]�U��>�*���{^�����C�#�	u�L`�D��<�n��^udm��|��������LQ
��P�h*zS�������z�������&�W�����W�|�A�y��J��16n��#������)V��u��
���O�|�������%�����xU5Z���PB��g-�	�~G�"��QD-$T"�K]uK0�^������e���2_���5jE��6��6!V����F��;�hex��$n�d���<z��dm�]{�*�L�?5"��
���i�K�}I�l��^m��k��FM��itW���L7)r������H(t}i��m��UJ� �j+�4�nWS1�����DpO�����m��R~�
��y���~j�zjY����5�*^����^uG�7�;�D���#���~(F�Dx�{L�s��������a�X�{�	ud�20�|�u��="M���42m���y��O	��F��y�1���L/�+�^m*�����+7q��F4����q(�O�#�`f����^�6��r����(Kch��$�E$����d��r�=lP���:��s�R�Df ��<G$pDZA����8.��P��jS�����k�Pz$2�v�"6�
�J���
����s��H��#j���GjXz�C��l�������Z�Y��r�&��~�,��|�u����~���cR�0�7#6��p�a�J,p{D�!6�\K��l�G[��{ck�K�����{'�F���3_UM��lh;�
|�83�{�6����<���'���%�c��
1���x��V��;�L���XUH�A��}�+#��n��fTn��]�f��m���}:)���1��/m5+�k�����	tD�M�[l)<WR{���G��w�#���!R��1��������$�q
��^��i�<��s9b�c�����i�m������B{
f����
��2��f|��F'�]�f�V����U��\n�[V��5[M��_���P�A
�-"'K��?�[�X��n1ey����"�?�P����g���{y������^h�I'���%Lu�J�M�:�z�]�n��$����t����M��$�4�s��!��OP��>��_TU�����O���O��~^������������b��l�~�?+�M���WC���W�*��;���I�?sU5P,��7������/�Zu6o�6l�O���?3�a�`���x5����xb���������|�{�����b#�!�3c����6��f�0_t9��
t]�/
�|a��]�b�qQS,�5p��O������P-�?s�mb�7��o�no�o��I����{������/��?���w�1'��F���{�{����%k�=��8~�y��'����U�m���Y�������re�����F.��7	�����W��Mi"-����p��u�[�W-��*W2�t�PA����`��b���d����8����A�8�V���/�*x�QQ�����8���1N@����+T��
��w����������h�S����6��]E�	���})D�/�X�U{z���VB��7���lt�Y!���g*�3XVU���U�x���&�FP�><;��j�7����I8�M!��[T�&������US�)���s���-#J�Q�1au��.�-��O�1q����ky���h��5��
	�����P���.I���3m�����&�:��n����9�K��a,U��
QpT]��<��LFuAj�����?���)��G�'I��?����>iA9� F����5��be�;Os������5�r������+�g�<�M#b�rQ"�[/��N{�M���n�[H�nQ'��zi�@htO�JIL�����5|\��vZ1P�\�jDi�vP;9������>o�~�-^E�S��o9\(���KJ�����
���la��^o����j�a������C���hi>���y�<S��<f=bmo�� Y>�f[����u5�����[�;[|/�}&��"3I����!n�L����1n��S�8�+���A4BQ<�������s*w�tr�Z���9��D�����q���z"&��F*m�zOjl������y�`t�F�a�;����o��e<�?i����7��|�2��
���������_i����y�P9�l@�-��!l%������J��+b��[�k]J�2��+�%���z&Y���"�z�o��������>�Z:#[����>��_|������%5r%�C���J�(�	H��c�f�bG��5e���oU��7���@�[�����IXDo7�~rh�tB2Pi]����Nh+���"�6�o+K���D���n�)R��	���3.�����E)��{�����1�7?XVj�@���
�@��J�����f[V�fI��8;O�W��;�b�^���4�����F�=Ey��m����f����<�{��=����T��n����t��}�0��v��io���j���g�!��9W$�"vT�F�.�.Ce]���2{J6iT/��v����w,�I'��;�I ���P�G�
o�F�������.���7���x���F���5A*�
�M7ZT�G�Q�����p�0��K�xDX�jkf(7��D$����h��E�'H����5L�qV�.�J=��6�f���l ��~����6r#����������b����!�3]������my�a��t{/C^\�W�5_���#*jM�T�����&���\��c/2��������5��i"x�1y�N�{����������j?!��%p�����U?�D�9. �;��H�����dIU��V��]�T<������v|C�A&�C=o��7?�W�gg6�����C��V�S��4'H��Vn�0���AR���_RJ�g����
_�&,6���@4�=�1���CA��m���������V��o���.{K-b�A#�������a/��4:���@���3h������U�/�N%���O��61�`E*���f~B��9���=n@+�����yXvg�\a�bQ����*4��%�sq�<�i�F�x�6��$^��v��~��7(j}��O�,wu�R
l%<G�d�A���5�m(������X*#��PJw�pRp�f������v�UwA����aS$/�`T�X�g����J�ByS�@��K��1���rS[�1�S����oi�m(���C(O�F�?*�O!�}^
�p����>o8����C������@��~�MS������r,�82��*��wh��?��d#s��r0���2��J��u�u`>���u��+5�����@�F���|k�J'���=��f�@a�r�H�F��'����8�I�o	���#��T���<�\{v�`Z<�/~���L���Q�;cw����eg1�+:�+�����"�����Y���Sv.��*9u[�����h[fT��+���>3���V��r��r�~�������
��[��3�;n~����l���UO���9�+��B3��g�6�Mm��1���l�T���|���3Q���j/�sy�����|����|�����u���>������S�oX���E((��Kdq�Z�_���������]����d3+'�����
r���7���6��=m��8b01W��Ly?e��W��|��g�����w����k��rE.\]�����b��?r�����������~)�oo�>�����OK����YM_�����m�z������b%���3wD���/Z�^��_����8z�Dhh5������wy����b���B��~��R���������Xc�iP���t���!zZ�~iS��N�lu��B'E���V+\�V#$�w���+��@�&i�7�N0b`X�jP �#{������U�[��7n����
D�5Y� 6��[AY���5}"�-�4/U���4P����j	.���E�X��@�������S��7�]��(M.�m��eTp�Ap��@7�;��	����%j�����8�F�q���qB�Sh�|��	DW��I���P�8��u+f��Z����n�L~�V�O�0�s�F�%@��p��c����v��'�����W�4���R�'*p���GU�|0�!&����e���F]�k��X�������
�$cy��3�&�~P<���N�mUz(u������\�73��y���Vy��
M3�:=�X��cB
8����DH|e:�+�%�����o�G����������<�IqL���S���o9p$���C#VTkk02��;nPt+��Qb����=����K�NC��	���i�j�2}(��a����D/��	'	���W~9�j�y��q����b�/��w��������'�\�V��^�!����R���r�
�����l��h�Gl�]U��_�XQ���G�12�	��$�O���irY1?�6��.���_�7�����llU��$^YK`c?�n,���������m�M���)�x@��>�?T��&\c�� `]����3_�GW���m�����\Ez0��$
P�bQ6�.���:{6#T��	y
�lB9�XMe����}��y�F���T}�W8���|2CY��T���=���8�S�^�E0����1sl]��0����x�2�L�"V���c��NhP*���}:|�YO*�:�'�Az@���E�O��P�8�I;DE<D|��w�^�V��m�-��2��lv�^f�w7�d�Q
���B�ob�Fq����a�h�����$�<�8����`�A{�y4�Kc��-}�������������h�,6}J;�����%�FOA�Ol|o&�*X�Ow�S���I�[�W����P��Y���s��/��Y��t��
5M��Z��r�
h���J���n�Sr��
5g�53 �Q��<��*<��z�U�9�+.�Xq����U��Ya��
�}	���F��R(�uy������y�Q�G�sKWw\Q���eK�^q�u����2^]�lO�P7:7`�7-/�;�BmL����"�)NX�mh?�Q�y�8��":���X���$�V�������T}�`�US+���EU\����=������v�p�)�Hd;/P���H
��p��qD9����B��p�����5�<�C	��[j�[j
����@SY���X��H��R@4�|���kp��;���T	;��� TR�X�9�	�thM)0�����UG��+>��a�,����cU�l���LB�vb_W��k0�������rM=D��0t�^�����$bj����il5���r'l6�\zjB!,94���/.'�_�I�uY�35T4�t�%l$yX�P��o���K@�����w�����=�����;�
#_����K���{��EV�����Kw3;����_BZ������-��#�����N�	B���;��n��?5��7H����w�����X��z(��,Bi�0��I#�t`a����� ��{��+���J&�FC��M�;bb��?1��`��.a����k4��@�-��Pr���q��G�7�<�C��v���;q�Pv�o#��������T���b����ci�O/��,`[Q�Z,����&�ZR� �I8�u����/[FD��(����zwu����brTq�;����ZJ)�o�j�q�:�G*g��Q�E����+V�:K��a���&�;�&��x�}����#/�H�{&4.�q.T�\����R�#��2�l�:~U�:K������]PUj���Z��R���:F��T���:�p�^���������E5�*7����,�E������=i��e��|=���������Q��`bjE
�+_H�B�(r=��	��
E��}������d5�nZu������~ir?6��;��[��-~�����������X���+����1+\���\, ���Y�D���
���m�+�����-D�w�5|N��/.�ra�����+��=��",j���z����Dr+��~��
~k!K��Y/EN2D~�&���lr���~lEM�"d@�����)�9����u������#?]
���Wj�O������
^Pi����~/[�g 8>���>v[�7�h��#?T�(�P������[��wW��3���w������f�.�o<cw���6�kFr2]&�����3��������%+��Q���1e����v��6z���������5��+�������W(W�����\��>~�.L44Q��i���p$Ou���h1��L7��eY��wM����i�1���X�d���IT��X����9Lz����������TH�e�O
L�D�j�"�h��	�0����{����/n3We���U�3GW�O'�%�
H�6����b��Pe�t;:�]J��zq"l����'�Wi���p+�����J_q�H�������M����U�����R\Q��*a�q�hu�&���E4�R���@U��G�����S,���$�Lg��$������R��A��^ )�:�������@�	o�q�5yb'�����

�%��J�V	�Z�%l�Sf*gb
r�G���5 ��7�t����:o��V)�z;�Y�2f>._�wc&;���W.���irG%��a��3mV�F����PL��Ti��4�b�PU�>T�uv���T�����
����C�p��`������W��J��1[��Y��:�4��y:�->�0�{���5B����,�k���[k-�F��C����$��*�V���V�P����]����'v�'>q�D����C��[I$�,�_V>����������CF����.J'�o�a�L�an����k�0F�P��I-��G6��#��T���;���.9����[�A�uL����s�R������ )���Z�!*5l��U;��}��i_[^Xn��K<��������H�������w���E���,�u��'����'F�h�}� �8�<���Q�c0���AF*+V`����cu��y�#%;1��h����Q�,,0��`"}T���G��#�Ey�7�MP��YL�%F��4*����$�.�������	:�L�C]�f���f���)D�c:F�����j(>���GQY�2r@Z���H�I�����;��\)t,/r.=|�0_�w� ���5Ba=L�yl��O,����c�C�/�*R$sS�_\J�r\;L�i�=�H��C�8��`C0f�G�>z� �X�*�2X6��u'.��&a���U�+�"a�CO{����ML�l��6v4����u���+[C�����
����g��n
m�����4!��2~+l��iS�f��u����9��x0U#<����q������>LV_j
di$�+S����c�*��SDGE/���8�����-1����C�H��3���:�f��y��d�#�bgX�	������7~�uS���Y?�/���Y�%�>���m��Z#���m�>���;��R���A(Q(<@`��@�5�Wuf��U�Y����.���EkLfI��>�f��Z�6�P`0�k���u��.�7.W������E�22?
��Y�X���C@JD�?���KF"��UF�?��e���s��\�q.�8�	)�)h�	�zYITsw�
[�U�Q�DV���oC�h����S���uA�l�����V*'�����<~U���x�����I{��&�@�O>b#[��KO�D��(��yyz�����!�����F_���
��
�pMk;��d�pA���	�p����	qub�0�u75��O>�7��W,�w���M>z71KL��������u��k����y�>�~���$Ew�����������?�.�?/���?W�����������<>_��
����\���E�|r���j����x)�g�{_���o���"���o��o������������:�����d+C,0ZS\�D��a�6AZ������O�)fV��Dw}<k��K��z�0&�n=�u�� y81���ka��H���8��?�y��{v�W��E�&$����C~`�8�V&�����`�����X�!��8R���OV(M�v��2��zh�=�]��R"��2��SEZ�U�u5!�&�ic�0�����<�V
���x�emJ)2�i��*_d��HsJq���
1L�v��-~��eU�v*v��[�`R��#����U�#��Rh�����
�$��oo��XZ/�P��
�����"n�%�j��I���:iU!z�����f�s=�H~�c��_��Ef�n7����Q������vy�����o������{[�����y(�:�T�M���4���<���gr�W���� #�������=�=F{�b�pf|�ktQ�"���T�</)�/^�����A�w����P�h���Op��3��#r��X��N�e"���C;���HqF�{�`��0�x�����B�������z� LZ������I��7�SW��9��.�K��%p���/�|�Z���
�������`���#��kKEE]���n��V���<���+F��G�N����(%22�-��2=����ao']X�MP���w[TU�����������CG��FR5C������|Bc��+�����Z%��@��������wiz�k>U���-3�M��hh~a"�t#����86|@�&~�����P�C�A��S0(�Z������c�e=o8��"�Gm�����f%�%�&����o�������*�,��SqMou�o�d�
��&y��f�-�I������<�^^��M��{�]��>+��i5����������G�Xj�n����J����2�-���
;�?���s��e`E�Q�]@��c8����G�Kd����6y#y�y���T�����S��F�fEB�����I{`d������_���W�WC�Q��07�7H��}�9���a��]�������W��_��W]2X}����\U��Jpy��mB�PO!a�O�
���r�]�#��������/�
�O��dAM�];�,��������/��D��d���t��W9(�)��#(LP���Er����=���X<F���IW�U!d���!hxx�{��`h�]'$�k�S�&�w�����q�����Uk{��{:������m�A��V�q������'������#���PH1��K$����E����$\���Cq!��/��+�Lv-bK���G�B7�(�K��BI�
6]A��D���.�p��{�����Pp�2���2C�\��q�~f�{�J�w,�y����!XA������2xg����l��bH��0��/�L2���C~���;���]����.d���=���IR(��aSu)��g�X�����	���m��I6`b��1]��=W�o�����1
�j����%�i#������Y[�!��m�d�@g@a �!2�����]�6����-��36[���wW���E!��aQe|(��d��E��{B�%�Q��}�����Sr�����e	�-�&5{�_*�oO�=�4q��;�e/�/
���WOl]��b���S��=c�m�
�Ab6�2|������{�� U"I$�K��P(��X���(��KB�id�L����Zg��B��
8�y#���9���4����}����������������������)Xjnw����l���w�B��p>�I�-�������6|��
U4@L4G���!0�����/N�'�)1R&�
�:��j��]��M����j������\�[�������5�Cf�S
�������b1>������H����{ZQ���������C�������a�"���z���H�rr�$�;O�1�x��+���^��}8�0N�K�i��1��-�M�)y���H3C)�����7
F�����J=�8������[�IG�vz[U���Jns�W���4�5�0��b=z0  "��������TB��/h�jx��`Y'|��I��(��p�"�mT�{����.]��2r@��KL�e�4�Kw�>f��_<8V���s�����_�3�d��D��z�>�v�Y�Q��2.$�e��+�C����`NlE�J �����y�G��<o�Hc��3&H�������g2e��[���k��_��s�"�����~���
��r�����$��}7U'yE����nV������o�Y�{��O{�{t)(i�M����K���@��txWCG1�E���0cp��A��!#����9{����|R�����,}�h�X���8�d���
(N��{���(qt:�?���[�&�9��Ha�������1�u���XS����9���1����xgQ8j��=N"S���inbN}�c��|�������������M��������)��z�"���Y|}X|}����{��,����W�7*���J���_n{�D�>������+�q%�����K�f�W|��W��J�]����o�8�����Z����u��L!�x��v!��T�-�����������<V��-�����P���Wk�~�;�..����p�K����{�4 ����
�6�r�k��8�kC�>}m0Vb�r���}U �a��d�o8����U8Y����_���l���P�%�z��
~u�X��Y.��*%���B�ds�Bk��$+��vT^oqJ�pOE����[��a�'1m.�+���vy�'��7��Z=���c_����EE_���W?�R�����
EV�������c_��I�5��z�IC�����CE�R<l�n����h���]��������;.�<�UQ��<L��Wk|��q*�]�j���#��������]�k�����k��_m����7�Z�>�������f~�������-�O��_�n��������
R�|�[-�����'���XY|{�+�+�Z�_/b���&��>�o�o~����������[q����%�X��6`���7��AT�n��2��h���u3_������L�3��QC_ ^PW�=�@�7���=����d�B��z(�F�q&%H�L�F�q�|����E�t����M�����
=]��_$�:�)��:�G=���&
3��h'
v����i��N{�O��7������q)�������\I%����"��n�Mw~Wc�L��?���?D>�Z����[5q��7P����7�	�F;OBI�����n�m��l&�[uv�Ce��o�tW&�0���pX���E$��l��k
�i�JKy�=�#���U�D
A)���G��ig-h����@;�[*��:�y�H_�GV��tP��w"{��% ��?��j9��Z�oT��2j[���*�`'����&����C���������wz0�J��wv�l�U����4�/�oO\i������4����
n�\�oA�rg��j`���E��ZC>����Q��zT�?�������Zg��`�o~0�����o<D���}�f��Zq��t5�v5M�,#�������C
��h�{G)6Xn��F��S��$���T������������o���GS����1r-���|���Z^��a�)�o8�/,�UB�
q*�go�2VlB~��a#����idq�']|����!X&�mr,0V3�2���X�)`���|%�x�H
�~����!]�C5b!��'F���"f��;LS9��1��f����H|�1Qx
��:?��E��*�^�>1���,�&���i0[]b ���
N��%�jc�gz$1^�Q�[J�i�-��_U&�c�';oe&=����%vI)r���i�����c��>��u��qO�7������t:�k {G�������������o�����6�z_|�,W�/�����W��b��Y|�{Y|�_|���.WV"�-���Z~��1�����������P�]��jx�W�'�{m����;�9�LA�������@'��c���J�+E��7����9Gf����s)�I������J�Ta��j�������;���VN����]��j|t�;OE2��R�
~+�MDh��t��6�oR����)o+�B(Z��D��5 N4',8������+%������F5��I�'��q��<����X`�����5�t�����1�:4���=+"ny����*x���������d���9JS`?��N��w������5l����4�`�Q=�}��]Qr�<�����	�	8h���'<2�**��	�L��Ah\s���5�1G448�+��k*�p��P%���?b��8�>�������4�m3�&d�2n����jLL�v
�
�S*��5A�mISq=5�����A�������BO����l�����Q�t�Yv�+G_��=��-���&F�	ve��{{��������f~w��
L!�A�A�;�w���
%��8�N�#���C�W0{������
�	�K�@�Jl�}]q��P<e{�����/�&O���a���eJR����Ls���u[h�X�8V
3�v���/M.i��nP��R�/J<�z/-�J$(h���I�Q��F��a�p�a>���A'�.�R
:�Y��wS��+e�}33���f����Y�X�9��?3@O�bI�0I�TqM���S��u%!�����8"�(zrR��!��U��Vba��B�,7���h[8D�H1DR��0w#��X�k��^P�&���A�w5�Lo�h��UE��`�����p��5\z:;)/9�����C����7����c�f����6�b8z�D����q���#z{,����h�D�t���]!^���dM�����
�H�~
�6�/���wK)�Kt!l� %�HK�P��T1�
"��Tz��RH~���\�n13����P��`J%6�w��=9�
�X���z<`������)��<����m�.�/�~���m���"������V.���P��r�?'����<��{�����H�tti�G��G`��U_U�(JLA�6��C*�N�aX�������Cu�L)��N��D�gqv�GY�Q**�5���R3��.�tw�w�vD��{����T�T�	�Z{5�����������������v���~R7����%Y���Z&(j����!�|���47i�#��F+,n>�n�9mC��R�����<R��w�iF�6A�N��W�x6=6������\�i�����i�Q�$&��}�s��-���:�zUd�/������=������%�<]�M��g���n�[%��S���Z�����P2k����y��t}?B���|e��"�	���,��E5p3C��g����t�X�i#��R��7�w�������'jJU0T���?�M����6��T ��������%
�����OH�m�h1����Kz�]��Fc����_O�����k��K��-�fc�uQ�6��WuD�
�`�e.T!�����[���*�������u���k-u�Z*��	=��jt�����b�/ttE$���*q��������~��T{����H������&47U"��{�c�C�����g�����o��������T}��-��Q�'���C^�>��
���%?0����8��t�i�&�����S��I�?8hr"P�(Rgb<��^��J�s�Q��w\�;�M�Q���>����xh�dR��Q�?���#TP]�C�&k�4Xt����wD�p}�?t!�i/�N(&o��IW���*#������C�<<�-�A%����a`���v�������������n��u�Q9n���m0� !��"�	
�i���xu�� 1'
���i8p
Np*���"8��#q$�G��������>�����,^q��7�y��>��C��dp��)3Yu�����=��0�^/��������s�F�I��Q1`��#>Q1h���-��C�@��
�I��$�%��LAu�?r),��l��Gx{���X����_���l�������'�lWa6��/�C��f���{���]��HT?���*)?+�����"Qb���;i���U)������v���1P�4g�;��5�ZJH��\O��p�e�����]�������O��4L�|w�T�<P(�;o�@Q���}�@.����z.o��a��a_�M���?~ZG~���y��|lG
��,@~j����P2aZ�C�u�?U�zc{�~S���k~�[��SUKi�$�h���%��E<-����������1��S����\S�O��Tk�1���U?�?#���:�>bI�!>rteh?�f������F�'����]&Q�t��?u����);Z��g���b���)6y��*�g���&���:[[��w����j�B#����n�vS��#�g�G
����*&�l��B?U��9�#�p�4X'�N���s�a���V=VX�[�?-���x���{��QjQ��?�x�|[�������l��r���5���[��j��3�S^���
�vL�G��%��E2�8����y���N�KfA�;�0F�B�.YYY�>�LM�i�{a� ���J����`i8?O^��W�������;�w�iD�G?a[��E�=
��i��������z��f�P�aE�������
�������w�V����q��ZelQx�]=��e7_]�tS�N�����U3�*�zn�m���0����Z �w���1�g>2$�#/<���L�����������zO|_n����@�����^����p�������;V@����1���_���k����<��D��3���7�6���w�������u=�'�8�`�a@�wK�B�;���q������!1���J�������5n4��������MP�q�����7�	�����~��Wx	�
_�-y��tw�Z+����;����R�?o��<��_��"�{H��W@�p{q�w_TQ����%����D#�m�J�!�Lu���Q� G^��}o����6�U
��%|a-����&�:B?�������Y��4��$���s����k�V�L;$�bia�Xq~vh������	����F�r�_&F;��qI~0i�@���La�*x�e�^���,���@W�]��pw�y��W&�^p���Dcd�9O,��c�_m��>��0��!�s�l^�1�:>E�S��~|���BK*t���
�9X���>m��^�KS��(�������OS������}�ys�����n���������sL�0�]��>����V��������V�"�E�m��$�3�z}8F�#����7?���(�g���(�L�ox�T��b���'�W_7<���x�s�y��Ao�����L���|�=���]]����?���9������>�nhbe������������-v�O�^�V�����U
+z0W��jQA���A��L$���6�����7F?������y�_�<��1����7��x(��z�"�
#�R/�jc6�:N��p���`�"�5z��ts}{c\.�`���������?*+?����6�8%�w-�t_��s@A@�3��p�H$'��7A����.��B��j�6�o#61e��hvS�o]�auC������Nq�:��:��z���:4Rv:
{��g��H��L����ue����p�>�zG�q�������^J#���v�{d3LD���>��RV��Y��yJ
�<���_���2����y�q_K����"��O�	�r��Ed���oMp��c�D��V�����w���c-��v��{��%��A��czG������F�oG�n�L�����E{J�e�t�_������*)+���@�Xp����c���bSR�3w�NR���!���[���������B��%�t,����XK�U�������i$U>�y8EI�@�[�|5�[�
*(N�oD�]aCi�����?�i����O�r%��.�s��������c���5k4HSfN7��\Sw��JIU2�(��0�o+����R�rl�������C9<������o�zm
C���d��Lc�F=O�����[�`�q�H�JM���r5�J���M?������3N.T�;�a�G����6��JX�<[��� �5�`z�/[D����nA,U+	��&�%���M��S1�N5����F`S�	�*$��:q~�����~������4_�����b��XS)��F���)�R���ar��ilW��gI9�����Iq�PZ�/��3v�5�������|�;�d�d2M:���_����.���u�J��,�xlM8��1���-���k}�`|u}���hR��g�Wd��_b�]ST��%���������������6�3V��b�}�o��`t��s����7F�k�X>�5L�`�� ����?����o��W�;/Y��PD���MP�1���;������H��C�o���kI��`G�������=�D��������h��gj�>r��h������1M(�a�1�5���	^�v�	������o>n�a����eD���^#��2z@��ym��%��[�:]*\|^�!�K��k�>��Y�n�����!���F������8���NZ��o��}�t�?7��g{���>�����&��{�%��o����2
�$EI
-�g�Gx����3���3{���coz��Q�T��_���v�$� ���.��y�����������.5S"���n�����������EH)� ��^�|��1m��E*�a�;��}@���1uOP���4������R���Y��
K'p}������i�-����_�Q#�I�u���HS�
�����_g<_K������)���/�����f5-J�&���,����D�����E�_�:g0z.���OTJ]}�xc6�},��RS�~����0�����fO)�s���sv�����}����Q���b~k�%����	�ze0U�A)tJH��|��p�����G��������PU������
��
�;=��E��z��R��G?&?%���������mb?��Q��"���biu?����dG\;�j���-m�C��^����OMuo�q)r����=��T|!*
��n#�����rW&�����g����|'2J�A.y��+|V�������/'��������Z�UcL�ES9$���
�	�z�~��T��}zx�33�,��-	���9\U����%� h
���&�yf!S��W��U4����3J�I��O��8N_����u���&x���!������P2~�y�����J����xG�����������S��	��k�_��+.�~�h��z�P�>�[�kd4���`D��I�8���(����?������h��1�F�����ms��������J�jSM�;o0����6��������,x�$�����2T�����4�z���liu�7�x�4�������Z��'l�jf
S���?*v�bF\��&�-4��@;�������y=�+U	
��� y~�I�'~�:x���B4c-�*�1��>�- ��W������T�PB$�$�;���8
(d�}mg���"n��t�~"���D9!����H�d%
������t�P����v��V����!���j�^��%�t�x7h���#�m�nWwc�
��eF<1(�]�!+��J8F/�d��L?/7��}�w\[�^�vc�����P8[\�q5��ax� �T|ndv��!p��?�;,��.o���!������Z;�/:-�+����L��Z�iT�����M�SL�������w���:������������m2(,*����\�
��<��7�����=l���>�>ry�}|6@i5_������18�"B`��Z�`���&VK����Y���K�:�f$��m�=��?e��6�I���/��vbr�I�OiUA�B���u?y�H��]�_��Y�{��t�t���u���A�{��4�F�
�����I+�$�?�-y��Q���\W����nY?��������v^�\���X��5��\��{�puG�<��e3GC*�� 5���0�?jB����BL��(`��7�z��,�huKS�����5`>^��~�xm����]% ?e������@����a��Zm��Y���(�h4�Hi�1�X�<���(����N�v�����m(vXt��Si+�m���}X�-�x\l��VG���Sl#
�������1,`��[R{�z��U,����.��h����
���o��h����G�
aRI0.���
Ca��mGo��7o|����)xF�c�������1r�1�������[��7���%�v�fQ���eBk�/io#��E�Eldd�]%Sj}2�bn���'|�nMV#��*�v<o��KE/S�>�����\q2���@Y�M�N���1/�Y w	��=���m9`\|�7�
�Oz���;�Km�V�����:��p=���k[:������4�P^�S��h:�M:���q����2c�g��D6 �-��D��Ob4��a7X�(x�J�����3m����or��+A.�v�������w������f'�$�,����t���9^�*��u�X��R����2�\�w�Xe�5
�x#.9=����3����Mi�w��pUo�
�k�,m��t���_!�����-��U����H�b�H�w�"���-CI;O�ZD�v�"X����f����������AI5D=��d�c�����W�A��;wr���X��;8A��c4�N�@�:E��^u��M��t��F��v^���k]�`�8�E�2�HA�-�o[��0�	�P�-G�}t��GGG-H����L��E'����QAmZ��B��W����fy)%��%o��9�el}��.��-�V���~���8�8�y+��ER�1.�U�j��2!j���A9�0p�)l
%3�
�:��[�j�������0R�q�a�2Z�Z��������Q����'zy:�k^Vr�Ay�>��8��
5�7��_��dTT��qi��u�1��u��_%��AF��_�J=p�I��^v�!���f���j
.6R�"��m~2D��������)�����-��Gl��������GB�'�]v��/:m���M!p����sB��f�^X:����@1Fk����
N���5�H'��0���t�Q���u�c>v�������B
����_@}�a)"b'���G3����7�Jts}�L�x�*��W=U$I���NQ-���"����qO�� ����2��r�������>��m�DU��'�:?��2��n����D��D���z������6����	�i���m��.d^���!��4y���DC<�1v@w���^��'a����K�htlu�6�[`�P���P�D~���E��&I����3'�$z��Z�).�R�������,�v�����gh8�����)�?s���A���|�����,[C�D�%�����������d�{��,� W,"*�OOp�@/�q!&Y�J��>��&.,C��Fj�N�^�x�!r8!V�
��R!�1[V�XR
"��`Q�O
�#�����y�+H-�'<��7���u4}����S�o�T&��6E3�tv��������	S���F
{�*�O�vt��-���t��o���?4O[�b�����-�)��"�\��|���	�p�A��y�����1~QWC�����@&��Wk�a0�Q��LK\+';Tj�Lb\;1&���`O�z��|������.�~�r��+��
������)�@��f�F��F�����=��;�\���������4����Lpg ����N}�u�pW�9N�g�p6Y���[j�w%s���`��4�Z���"e��i����aYC?�����)A� ?�0f��-z>�~#�M;3c��q	�`��br���V�������po��<�{�k��&�N'9�H<~;�O�iJ$3,�r=�Bc�,\;��P����j�z���!��0w��u��Q����:,������[.���!�/���N�r����
�_ �qh��(��eY-�����d{����N�?���*���O����]k=
�SI�t���I��a����k�����qEq���H��C�����5H@�dHm�� {h,�6�@�vX�ppf

�Q$�0YmA��3ai�M.�|�JK��MP���[�9����������d�����E�������/��`�U�����f��d&#�}�Q~���T�S�K����7'��jC2�#yI[I:�W����%'O#�Y�����i�y���o�����������6��������Q�bL���GF��;$L�����7ah���p�>��n7�z+�5��������wG'��a���50Q+�~��?0K�"���%����ov�av��P��K�$7���=�oR[X�����>�H���Ue~����IG6z3t���Wi�q��c�	�wW���fRs�(�5Em��
.���?����O�gn"�a���WVh��d������"�������T?�y��1e�����S�����kc<M�68�0R�������T�8�M� �1B���B!����~l���+�t�o�0������#8�j`�����;;�"�N�2�^c�-N5�!_�P�^�z��S^`eW�j?�S��[p����K�B���Iv������da��F��a��O��H�����.�����3c:]���)[��� ���7�l=��p2q��K���)����j7����������b�(�'�����0���s��6���IKwXH�z�����%,?�Sr��p	1�9���xV��K�=����	��K/�tW��h$Nku�|-]��T
D���N���t�0�(D���N��2���=���W�-�����bh�J��V���L����z�������_NY$ �^"�^eV ����?~���J��b�!vr����xz�
:�)e��Z�:�vA��������4����l~����x������Q�qN����N��;��Uo����Y	��"����2=JI��)-���:u�R��O���YiEf�&
(�"��`lQ���q�BP���C���c��������Y�/q/D@��h���g��#�{\��e��Z0Y�jJ��SjV
�x�V.W�R�������3��?BM��5�zd����pJ��?H������2��e��w��F�3��K_��y����W��k�j�+(U� /���~���*���G����E�)�Wd}W��a���N���=����uF�t��3a^%����j8�*�M����/R�n��I�_2vF �~����/��J?sr��>o��)�}��A�yl���������u^�/���*���|��V�e�P��=2t|[�	����ay�*��p��>��)	�a��
u�N�����:�c����_�y�k���[��`����H]J�*o��v�C�\����w:cb�h��i��$�Z~���q��cH?���6�����>�8��B:��
�W���KFI^�:1%3�-�Dk3`8H�����U
)Cas���	�}c{����^x]N�Y���<�^z�O�w�l�S3.Y��P����a�Fw�"F�	�L��<��J�{���S�����&r��b�n��c��g�J�)h��Z���?,Z�������j��16�����o���������^���8a��R���6����&D�_�+L�o�2����y�#lR�,����.g�W��z�,�������V�p�$%`\*Ex�M����*���w����7H�� !��6H��6G�9�	 ����Ys=8�}��K��q��o �����@K�z�;�2D�&�����@��!�����_F����hA����\�������XY�]�m����S��	�>.n���s.^�5��C��`(7��=�4Sv�pv����2J��-�U��C5>����e�0HB{���	��Ku-��S6|�t,�X�����t���;�[��\�C���dZ���X�DC�_:�$1�
�1�i`��1��<��p�X*P��e!R/'Y�&!�|�1�8���G�!��a�p�&��I������]�,?AiGL���1�g5?C;�[�"�� ?��Hi��8��p<�@��2b����k��r�lW��D�A]����=8����^0��*��p�c�[HJ������<�����_�G:�T��i�P��tD���b�v���F����a8��\�-�H�kkyd�.^G�U�]5��rl��I�
��M�A.��;��J,�$�j`fuX�L*���%���=���v�2�����r�#�MB7�	Bq]������N����_7�W��<4���_�~�%M��9����$��v>�l-A�kb'��F%a�>��5�TO��<6��~������������)l�>?�KH�g��Gz9��x�5�7���n����V<��a~���k�{���O_���
JUUX<�K�G8S�I���*�`��J�S���6M���m�.�>����\����9L�����i������|J����M�|�+}k|JR/g���|�I��z�J[eC<Z�2B;����s��m��g�1��o2��D�^q����'U������w�92L����2���p��4Th���I��`�tX�Ad���m_8S��"$����F[&Ott��/^�Y�����g�z����O��o�)�kC)#	v���#1W�koWaOmt~��H�	��A�b9��j�'pvvN���0m���'�v���b����n10T������r)E�m��P������X�?��Dci�w7?��>�F�p���j��`	�����%�BH��L����1���`�����"n��l���$����k<`0���H����Ny���.����Z�K�yl��6_��C����U2:�m�[WX�T�(������Hbk�����������m�������6��!�^�p���U����q�I����w3��jc,! vCQ��p�Ge����`�V%���R*�)3�l�hR]F.l��O����0���!����C�6�~�Q����
|Xr���%��faU���K6�um�&xH^'��<\�/yzF��p�6V��cumi+l��7_�*�����]\"�������}B����:��Q�0��q��&�����O���v�7*�=}�V�~0r�\}��_4�P�6�����_pg|r��v�OLy^�K������
JK�����:����a���T*���6���s�������k�����OcM%z���M��(
T�2��m�.�?��U'fYh����X��[���T�����xnt�����?qP�)l���V�a�x��00�l!����|���O�0�N�<n?1Q0n���4��f���X���~{�;
������[�'"�x�>:��
���Np�Asb��pH�L�o�P�8��(F�� [ 7�n�>C��pq���*��8�������TMG���y�k�1����Z2l��B&�!I��.AR����FX�r�������|>B���@x���v�qH��Qt��|�X��
����]�W���� ���i���H�i��c+��R���fI�>�o7��i}B|l���^H���0�����d�Ub|���KQ6�#��r�^=q|��%�p1�DQ������:mx!,��sB����r�����V���a������;_VK������	mV�]��36�6�:��o)���9+�';��}DG<;�i��k����C�<��k���;��"���%uf�35��A(�+�=|��:b����BsM����t�i��U������������6����q;I,z0��\!�
�85zL����������5
����p�����_DeFu�6&�oD�pS�D���7?7�g�~E(��X}(l�7�o|�����q��	n�����h<�qY]\$���D��5���[8�����������v�?�E��_��
9R���H�����R���C_�)��i�����Pt�:/�!�vA��w�^�������V��PK���*��(5���0���C�1:�`�{�m{[�S�e��n�����R0��7����u���r)B"�����*/I�|j|���������������\�%��� ��A���#}�������U�Xqu�J:�~�������[[�EJ�>�mJ�7���`������:�	��)k#��� �?�N���:��_*��j]�(����iMU�P�>����gy^9B���?_}���I�1��bo��;M�6�;��)�B�P�������[8i��A��I3(�;���|c�����0��q'���30���/C��D���2H7��`3����Y�E�v�
�_lMX+�
���n����R�Y-��1�T��y�H��B/�/��`�.<P��c_���#<�2�~9Jh����f1C��"��R#$��:l\�)nw��y6�LX��2��E/S��X(�j����}K����0��(�.��j���9��G�v�#���X�a��	LJY<�H���>��J�ZN,mn�fp�y��yK^�3�|�ess:4����%����L�V�5�Df>�S�]�W%����&~K3���HL��v���O�<K�OC�n�I^Q?#�3t��f[�����{t�)��S �86�T�V��Q��QWx�AH�=#wx�������3{�Y{����BK]�e�� 9T2����vk�i��e�y�*����[�wV�����;��6�*�,�����G�!��%E@SL�Z�]q��9A�^���#������I���
1�s�2�'��9�$"y�jA�$f�*s��lV�~mGY���[1G;Q���*�3i�,^�������jSg6��Ltzo���s3�;��1�zs����y�{L����f��g�{��k8�:��X~��`D���G�;��������o)�9�����O�\�
is���o�tI���~i�,�`�Rb^`]ey������dq����_�!$�O�����O����~�K�� �����~��}�*Gh2�8)-�|�V�� �+�Paz��~93{��C��>��2���O����h>�0��-#�,Qm��#*�}�Z0VI�(�.�T��vQ@)O��jH.�����a��o�~��+7���M�7���������H�@�������S�6���'��.;x$YT�c�/c(��q��h^&���B�F���"�D���TV�����RXs�'4^e�N�,�e��}%�������0k��4Yu��JRHo�	Q��-b>��,b{t$��)4��5)�r��N�_]��YGHr
��+/6T��`S���Vj���E�!��yx�{�0<y�f����Z����5)�o�utC|}s+Z#o2��ql��=�*-?�j�m�
�
;7���B�����C\�s��C2���+n���6��{��D�=M����-t�d������"�:�erb��������)�Y�p�F����Om!J�W�qm?U��"��(�H�T�"�H~�s�
Y��)��26�����l!&�!B5�r��b�X�v?aKH���(��u��T�~�?\�����Wz�����W*�,"��+�_����/B6�}�#QzS�|���4n���9�&������6�W���"�k�(}V���$a�&b�d/���8r���y����}u�-����Q�.��ug�9��W�.^K��g9���^�<[��]� |�F\���I9��0���X��%XHYjNs�-L4�Cp	���8��J��B3�x��f#�_Z��8N .����y�_��a)s�������'#���w���
���j9���Bz����1 �@$zv!��zg��_s2p��1C(�u�	\��>;���zo�`�����
���G����XD�P�0�~[/+��u���9T�t�Te�i��i�_�o�����+�[���QK$�������:-����9���>��@�j����D�X��Y�������+��/[B��mC9������#gY?���v�*G�N���;���c��ty���������H�\���OW�S*��v����}z*�f��x�"�$O[y��q9z�'��?�l�/W��7����%"��2�8mg��;����y��JC�t�[&x�>������5�y���v�K3O���B��Z�z�����o7_H�3G��p�����G�I\Z���{��r�Q~^l����gp�=�xq���~�OR���w���$v`����(�B� _�� �3!2����+�/���~����0��/�g��$x�Pd��a��aS���xd��`��������������Rp�p�{���6���F@��.6_�@&#�����;nm��@��M|78bed��$��8r+�H��I<��Y����n+P;�}gzA�0'^k	p��z��C�����-�#,6h�>o�?k�ER��Dv/�9.b���K�x����W6����Z����������
E9qQ���|�!�����W�=
������RB�R.���	}*�����WU-�i��u%���)�=�8I8Yl{	jb����0�*]������]�	V\a4������A�����*RLE��C\�A�^�x%��m�0�+�`�O�z6���N0��0����6q���������l��H����^�����E|/�����G���Y'��jWH)��Y���vt�k�����O�`�v���q�����c{�1��!/�,��MK?����M3��u��~��t��%�����	�8	V���P;����e���wr�����di�,m�����������~�no3n@|D�
��n\��b�a��`��@����t.q�8�����Q
�^��p���O�x�x����3Hg���]�	�`
�z�4kd��K��@n��5�(H�=G�q|e��io��Cc��y� _�a��fT6�O�X~{������wB��hW�q��I� .���*�k��'g�����;e9��8�;O�S4`������6����0T���Q��,@���p/�Ip����Y�K�I%�m��?�T.X�W=
�|�}�]|B�SN�m4�����/}n}��V����y;)g���1B0�Zd8�m�a��-��n�C�-�S�,��R 5�~���;�6����8/���{�-����h�&qz�����k�kH���!7��,���}�_v
@7��������N��[�����v�z��}K�R�)r2��2����Jg-9�<��o
#z����#v��=U���>�
��+��=$	���_���o[��Pf>��9Ts�P�s��M����6���pO��>g
�B��X���:���
3
k�Sz�Hb���.g�&�N��9�x�M�j�$�I�O�n���[��8�]�����oS��z|J���e�����[�e�����������F�O)�I�����;6�(^rP��fR_�A�B��	�`�
�5���
����O~��L�O�������%��g���3���C���O$��|�!:�X�z���)1qy�?�r��������Nt0�b?����;�1���1]�-V�4��}��x��p�������@_gc]4q}�F5z��[�C���0�+����-'�]�q��-k}V��!����=�����jdG	�_������.���K�5F��{�\<�Ec� i�{�{�!��]�XE��P�Y)�>D��U#c���G���/��=&]N��S�eB?����CN0,�o���'����b��JL����CV������6�0S�Z1e�����g�O�U���H���Pi���
6`b�fOH�������qj#�-��<�;4��K���I����P}P9I�hzi��
Z�K��
0-�u��U��O4��������#�4
	B�!\����8J���Wa}g�ej��z5SbT	���,^�kF�f����R���}6D����}���s��p�'����|`B����E����aW<��d��|�H�'���1��rD�o>��S�Jm�e�a������tZ�bSn�(0���Z;G3�S@�-������F:��W���;W9Dq���b��t?d�F�0���������r1����M]��k����	�.pm��]�b_�nX���x�B_��>�RA�cm�o�T<���e-}�\�@S�����w��aQ����]�o(���!Y]�S<����R-���f�������!|T���3�7��f������f����� �HAQ
�")���
B�j�����G�M�0H�����`�-Q�m<�?{W'�$m!�?��l{���b��\(�H]�|���|E�A�*�a���0�h��`�>_na�'Pj�n7�]���6�E�������/$5�s�>��3��_	���:���`�7b�r��
�o� '�L����e��I�(��O���L���`���<h�����|�^���_�J�D�~��e�J��U���y������J��c4���%��v��T�b$"������A�C�|���7U
_W,�XZ\m��V+-�{��8���>:�f�|RQ ����t��C�H��s��BZ�����'�����pt����J}�lr+��L�?�fh���#B\[�����^�cn�I`��u;L~g���F�+p�!*�~�������H�G�����0��7]�yJ�����M�4:Ln���	�V�C�z��3�R���2�f�����9+�Nm��3r�������KA�1�I�o"Q�94�<��<P���P�
FN�����j�zKQ��1�^������Q{�K�����}n5nX�P��>��kg�_��n���q�K�:�<���j���=�x�j����7�Foy��LnK7��&��~V��NP����Md���x��������ES�
������y��X��u�����K�%���7AW�	��yX�nu����<����y���&DX��=�\e�Tc�)�I(V��d�i� }�c�x8y}��On�/8�Z="��?������=���<�H��/��`|{��z��� �����
rC�����,��`�1�0�c��U��1P���u���O��C��>!���6���R����s��pmRi�>y�Bt_)����df]c���^H��4����X'��@��`��`O�%`���7s8���BD�!�x�<T]�;xl��oR�<�������x���~��tr�z
��8����.CqI������pvv	�@Y����V��e�EM�Xg4F�8����Y��t�e�Z� �8��-���)hu�������6������������bGB���wm=���WcC4��T�#�������v�(\Z��lD� 6}�!}�<����.����~z��	�l�LJg+j|bY7Lg��]T���	������4��y��CHg��`����[�d�c��a�m?ee��N&�M%D�/p�J��/R��`�;��/(g�I"��u�M�������Jj06�3����L#���'L����R�9|~B�
rf���85P��t��3���"��
��?c��/E�2'�W"�]�c�+$$��#~*��(`�m)
�|�S#������4�Jb���`�f���B�������R��A�c�����y�����Mw����v!BYk�����������]����,f��D�H�������l����<5Zd�$��,���c\�f�Q3d]���q=������4J���X��OQ�������J2��"m��bCG��A�����	!��p�)�d�&�3�%�S�6���m�z�~0������wx�@��	�[=�^����h)�zG�X��������b�[K���d��f��������fX_��z��;�]�.����`�<�x�6"�N�B���[lDug����S+�b�c�����'K�`K����z��*A�����W�6���JtA$�?���`sN�x�*���r�iz������G~�[�9/�&{�
L�JB�E.�w���K���*����}H{=����w����~��VN�\���R	��Ih�&���/d���7la/�R���<������(�c�����a��z^���62�j��@O��=���'}��Q�
F��(G+�Z��p�p�cRO8�R�%�-���X(�"�,0����n27��k�P�
@	\@���Ci�BG8������_M��D�m���f"8���T����k�����p�����f�h$z���9@Uk����x�2mK��G����$�
�{�Z&�zs�3��]f"_J��[%w^���iS+k�H|�$QyE���{��h:�)mh��;����HTOs�[?cx����ot�+��IK��)uA&�{��s�c��g�<�S�!�X�I;�05����6�.	��lt�8�j��{�H�~�9.�Zl#��{
���^�fs�e���������1�*o�0.O�PD5y����N��{�����;�Nb?5�^.l0�jjW9@Z�����-i
�R���C��V#��-O8��C�?����b��^�:�}�M<���������!vbP�x�?\Uy���o}\���>w=������������qY^3�����P��N��E��_�@�
*��3N�oV����j��N`/]������&r�c��7�0�d�<�Q�it�c������c��-B������o�������`���&��FX�p���]��c��qo\>F���je�^(�����M�~|.Wz��7�����tm�vE�j�|&�-��e
�����	��o>�#+	���Oi�D��g`y�i�]$-�9�22���!D���n}���C��;������sn�x����S������:^��Z�jf��?�	����f���T�/�S��O'���8J1�
��th���P�8�nhC5����v'���4�)��<��]����y�8K��q�1��$�t��0�����5k���3;��"%1kf��'�3��@�5j0v��_�e����/���U������P��o��7��h�&�C�o�Ty*��S���<p�i�D���Vtc&:_��u�p����"Rz���-��Q�������
�y���u�vR�1��n��Z���+��z�"N��x��wu�!$YF�B�=Ky
�4�?a����P���d�*.�tjQ�7+6���Ev����r3�U��g}9a������
c�00�������=q��GnZ�I�� ��|B�������I\�.����3�;=F��^�ui��7� �HSo���UI�����|������D����4j�<l�%�v�U��8%�
��]����4Z�S.~�	�����SWM�oe)�?�����4����w�� ����}F ~�o��Apw����=��a
w��H� ���x�.��p-;j����k�J�0��$�+���K����c
n�3��y�5��\��6��*��Ra�����y���/��tr+���&������[��A��H|�"I�jOn��]�|D�g���\��,n]�7�k&0���������q�H�*����U�@��"�� ��Z|������*7S�$)5I&��"^}��7���e�1��r����|�������n�rE��d�:2<�W�SC�>��?�^�,��wK��{������W��l�O�����<����G�4���������H�����sM�s��%����-[K���a�'P?��9�����&�2F�;?r��l�;�����M�fX%L�ge��*�a�v� v1����&�I��
q��|�D�m>H���L�=���)�e���OTNH��O]S���YiPS�)�
��<bKCDvb���N�Q_��2D���Q��H�&���$a�<�
�w��)��Hp�1�a��8pI�V��������o��>
����.������^��-�O���>�L)�g������n������"I�**�+�4�����������)4����G��@�0�������$�R
���8ma3Z��>����Q+�&�hA���Wg�`�HT�R�������@F-�v����
W[s�uK>�An%�7y~^� ��B�I��J�CTC�����\�j��m_>:8����d���-������-
Bm�E�^j��
�������(����N=�57���Y�1��.AT�����9v��.f���e|vB��q�s�������1	4����Q� �T�CJ@�}�8� �$_Dv�
1y��~rH�1t�Sm�1�V�����@�\bn5<������r�a�J?��p��8�2
��'ox�)�MA��2�����EP�l8��V$�5�Sf������c�|�]�E)�/������3�Ak0P��L����Td��-��6=it�Y� C�!���r�_,���h%�?�z$*�sQ���eZ�=�@�>�
��1 z�-
�O�o+Y#D��`koA7�{��=����pX��"r����%��r�b�u����"����i�!��	 C���i��Q(�ZC�&������M���w^�U��:����-��1�;T)+���9l4PV��kiux����`;��&��[�YV���7A��
�p��m�4ts�8)A�����Y�"�Hl���dPx~��d9H:�!�8�n���t���~�?�o�g���$A��N�A����;�{�:9�b/�C�e����b�t�/�DE����G��.G�j��{���y��?����}�F�~�q8��s�
���
�����,?�yG&z�$���M?m[�v|��b��S�6�K�
�d����a���Y�Z1k����k#��;���
���e��LkZT���T���^ru�l��lR�_f6�/8����^{/C�(�E����d���j���P��[ ��4�����Da��cx�	M�R���*~�Gx�M��s��#������]zw{��~���a���:�fH�<��f��e����Gs���o��(�����.��u��"q�8��I��I9�;;&��T����G�a���������%H<Y~���s�)�
b7�9N'�*"����u���+����Vw��s���5�\A�uT9��/
 '��v��A�^��3�� �\�t#��YBy��:a�
-���?h�<�����?Zt�lC��b��2g���1���9C�iw�(0N���z�=�Bv�2��%?+f����������K#:x+P�F�
���X{�!�0-��$��[��
y9��k�����8eAx��0sV
 �k�4�7F�
�#�$�I��������������s��b'��	�����t��'�eJl��a��[l�z) I����
�
.������7��{��S��H��c��*=@!�k����]x�\���X�[�7���|>���,6����$~��>�WnNjwK���iR{���D��v�PI�^p[
� ������{�)�`G��
��c����/Q�3������^m�
�C�Q�}����j�r��:���c�������N�uk}�r�P�{���:k>�$�������������cOo����+�|���7�E���)V�ooi�3����GN�~�����&�h�������<���f��/E��nv��]iN�����o@�+]�w�p�Q��O�v��4}U
���|n����+�P��������@���	�J��$�r�6j
q0�A��W]A�h
�a�\� ���.O�8���-i�6>�C.��m���G�$��G�D�5n=��~����o��}�}f=��Lhe�np�������W�+2����X,{� ����c	����2�����IVt����7�[`^o
�����&[�T�����5V�{�=6��� �Z��a��y��+�����a^V���(�C}�����Q��n�%��y�W��(�M!~C8g�^U�Fe��-h��������x���V���9"�2nc��s��U�E%�=�Q��;���r����U����;�U�^��P*����B�_P �
|0=��G�}�[���[�q��������V�q �����v�;�7bq�Ca�*?������zS����r��|�:~.�Fp7r{����<`���H\������"�?�/�.�dx���	t�������_��iC$�~�g�?��m�C�8��.�8��l�B
����(`����`
s`����4?�Y��'�<Ns�K���i��
q��t!����f�K�W�����4�sG��j�j���#gi�����z���i�n��8�U�2%W����B8������;���OD��*����V������["�kr���K���/���[>
��s���pU`��[��[���yQ;*���2��yk-������{��-���^[8,�D�m?�i;��H�gA��
x/c�1��rUl��,�C����r����3Y���>��v�;uyq�o	�<_=�_���nJe���y��/��eS�@&���r�"�G(���~������������w��o��
�eb��,�a!��b���]�+V��G�����|�=������7�����)}��2������v~�~Ku�
���;
�$N����b�=��������OC�	pU�n|�:�z�4W�����-�������d���}_�iv������6-����X����������|s�8��Q�K��*0��I�#z�I���"	^?�u����w��D��W�B�A���_d�67�l*
��v�U�BvC���t����v�R���#VKB��5�9�J���4P��y0_��K�2	�9
��l���Z:��+��
s`!�n�W�!|0[�����?�$)K=ZY�@n���7fU�zl'��v��W���V�t!Q�i�DC)�S����hGC��M%x�4���D��]
������!��^���F+���@r�+�r@���j�ky���f���r<n�����L9�g�Z`�����
%�����~ce����`���>���W�t�(����A����`��@,�y���2�|������%����t}\�*�,��D+�����B'�zc	���'\��R0�"1�.�Nm����$���Y;?�)�H
�	1�4���h+���Vwc��N�0G��������<nM��$~`�Kg��N��'��[v�-��Io�Hk
���0��yY�]/��rY)E��g����e�L�}4c!���x�T��:�5}-d���c`AO�b)�����G!�t���cc)oA/��LH���z�E��e��6o��r0��3���'�T��;��\t��#�������-u�W��I��������h~d.GB��@�o�^e��I�$���`��b�����O����{9���`��(��)P~������Wm�'��~��.�.��;`ga�QDo�����k���0��Y�siDe��tOViTzoi��t�?�@�,����9��j�<�+���@/��~#�	�B�=���)!�u��*!`�����A�
����:���^��=��~��	y#2w���GO�����y�����Q���wG�����l{���C
��\�c� Z��{d
L�bO��	���$�������-D�������nQ]'���3p�=��nZ�	$P.T	~�i����WTIT�V��1sP���AW��B�������]�U8($�*���R��B=�meo�N�����8���������'#Q���J����������>��,7.r��R��Y0}V��E�)]�%,0��1B�\m�L��x����%>S��F�_\�}���bY���-��
,� ��1��-F��-c���#��
	�D��DKB�2#�<;)j����"����2a�T�J����h�\Y�*��x�CV��������|�C#aDC3U��N�	�Bi�V�����k'���=�j��el���U������1?G����75!��:n��l	pG����P������>��G�V������!�~������������1e����P��\hp�JN~�L�86:�W��r^F��F%3l����1i�j�L��|��O�l�TZ�O:�#�� �(���k����n��\����^f!���xdo^�;�f����-Z�X����%������@�s3��fEGk����j��j(��YL&8�h��b��o|�b��Y��Vl���2���w��F����z�j#Z���osl�^f�|z��}�FB�L��s���'������!4��F����q��U�$nT�����P3FQ�Ru��0Q1�c_���3�d�
�l�/kM����g�'Q3��9���C��q}cE3��p52FB�� ����QH7�t:�2��g�5���0G�\5"��]��.�<Z�����y$�:�;$�����������+�x�Q
Lnp��ox�K8��t�X]��dA��7���*b����.M���q`�x��bU���@d��X9n�O�/��p��_~KU������m���{�\��b;<����
�����V�S�a�i�����q�yo9�G���,�r�r��n�:d�a������N��Ihvu(h��8_�0j�S!���!x��ob�9"L]�Ha��w[�n�H�
�14����A����n���GAA�����c�����[��Rp'S�r�f�*����.��
�98��P���I�7���3~��o�}|���(�����*����Z*q����7��w��FqE��+x�M@A��_����������d����X�X����C����q���^x��u,�v�1_�3b������*9\,6L�)D�X/v���+�����j��z�m��q��
�|��������.����MOl*����g���~��/W!.���p��J<�;��.��sM(e��.X���_�T4N�GN���Y1~?������6���f����
���n?������u�g�g]�RH��S��9���P���6��zIKW�����d������
���x���0c9R� 9���q���]9a1�0+�2)��"�O��w�����P�i�@d�k�qQenA���L��K/I�� �M�����K_�$������������o��k�g��(��|��N�V�c�`�g��g�s������
���S#�
�^2�WM�*!�5����x��m��U�F"���q�]�����K��_.�m�K�"���	��t�
w���/������!
8�^��>�	�������$���GM��d@�����tj'�G
>q�:
E�m��ay�	����U��Y�Y���k�-<�>�**y�����@�U��N��������M������s;�}����[8��>������e�B=s�S�t,#����O�i_�x�x�(X�+���N �2�*y��	1�� d���f��.������;B(�"���E#
����e�@�]	�J��}��<�mL��1�^P��ft_.X;+�<��uv�x�|6��e^����61����_��2W�7}#�I��C���)�������X�C��Q�=-y�
|+���6�a�L�tfwfV��jR���D\�6��q[I3�}��D�>_��m�������9?-P����$���M.���mI"B�*!��1�����U`W��\�/�w?���������[��.#��-�0LIB��j����i���&��B��?����M���+����(wm�#�1��zm�^ vJ�E��eI9�n'��y�f��<W�~���_�H���05=���G�)8�}������X�g�'���6����H������?����I�+	DZ������!��mpT��3���)��^������Z�C`o�I6�g���P�	�L?��:��n0�t���r�o�g<{�2U�g�q
�	��hpP�E�s4I�6���s��!��K�K���p��T���f�o9�5�v���T���H�`�5H�H���j��"�������Y,��n����O��C���<;����"@��>D.�1F�AO�X,p[�>�}�2��u#E5�	XKiD�����_���#����6�\_�CY��k��Zhix��ma�p8^�����c%���H�K65����"E�~���(���?A�u��}|�7�^W.)6���Mej TD�Er[N���K����6����E��W�f��f����],8Eji*�����I��a���]s0��'�Br��������LW�#Q��u�v��QA�����^w�d������]�����!l{
����������%O>/�i��j^���"+���G	yG�#FT�F�-���	E������i�h�����1#��llR���������������1[��Xbb��� *l�!����1j�A��rT�g�[�3���\`����;F�f�d-�9��H�����U+SQM_Gm��T,Y�8m����H�7�/��G��4�,�S�c"T1a��yW?��|�9M�f���
�����C��DR=�t�
�Kt�����]��1�cs�����6Zg�sfC+�����������kb�xn*��H�+I���f7�{R�����3�Z���A�.���G�s��n�U�����~�l
Z����;�1_fl�b#�Ev�Y(k��` O�G���:<+Y�-�kr�ZI��<a�w�J�=��+��:�R��s������������2�8����QT�!b���q����7R[�������4�D���]��"�~�����m��i��!�L��O4
�U)$TEn����+1=w�B��Ss��ndC]����]>^I
%������M2g���s�z��y���m�7M�sDpj���}��h��(�)->1�y�'�f:TI��C�Q��<����q����;N�[�g���y�|��7z���	 ���o�:j���M�a-���d%��MW����B��D�������n�
Zo)�jR��;��j����������DQ���&"��%4&������1��<o;������O���c�~'��.������"n����~6�go`��3u�}<��2sT�y����e�~BA������~`�|��`���<�Z����	�\5�2L��+�=�&i��p��������B���kr�wJL6���u���k��cwLU�H�$�5`���|�a����R��Z���:o���I�n4��|�g`�El����\���Q&u�-P��x��m[dIW����K�l���Z#��v����xDH�.NoR�&\'�e��I���H��Hd��S�1�X�Y�I�����VC��o-KI�$�0�m|�i�r~�S:^�������;�m�$��q�������X�D�T^ e��eW����k���c/\3��]�$E_������8B��ac�f!�X~3���;��)}��h��(��&E�E{���I"��c]����!����+�r��J����u|��cp��#GV�|~H����j��oj�W,LG�+�����]�\�.4Za|W~�W��`E�����6�o����f�xm����bp,I`[�3��)��$qa�h��?	����[���K��K���)�|1![��J�j$�y#�U#��1����|�&?
����P�������?i����8_�S(���z('yQ�i�v�1�Q�_��4t*�~�d�I�����~��
+�/�73�N�]��jc�)�\��(��	[7�2�{�$bK^C��A�,�W"��M���p�Ep>�
Oa������R$���Pr��B��%�>b#��l��3�e����~�~x��Ba���V�N@��2�W�6�"V�'���P�p���)�*���6�_W�����Zy#����Z�B��v��vf�5U:�4�}W�����(O�&a�@����m�K
+�}����,��9�4b��vn���f�����X�d^���b�����Nk��d'�<:V�>X�Ww�a���F����eI!���y�I'��O~n��O�;��	 �������m&������B{��-�1�c�����8zL���qG�����h|�����S|\����e�x�=���{Z�q�Q���'c�O<5�����L�j�������EA����s��2�P���jxs�J�q����@X-�����F����y)u�������r�*�	��L�?�s�����J&Pg��R������A4xM�T�]�end6��������E�;b��3{@�M���n$p=�{�6$��?\]����vdG-�������7J-�v���*p���By�*��L�!���>���>�Osu*����Q�
s�b3���+�k�	��I:Zi�'z
"�x�;8kN$�{GZx�!�?�<2`�i\�m�x[�p�az��D�qo��:�<�<k�~9]��Nps/-����1������JH�<����"[},,.��]d��h'�I�����*��u�RV��>��:}l���<����%�0�;2.��YI����k~�!�4�O��f�\��}"�Zk^��Zs�U��^^���a�77A��~}+��4&Rl'���$S=-vy�����8�H�;
(j�C�:5Dq0B���|�Q9�PZwAR�X����	
���C�Bl����.�����.���<�����bO�����jh�h$��"
/If��o)(e����O��2)u	5�F|o�����*��xT8�g�A.C8�)l7��oT���K/�s�H)�OX�`&K��
"C��n?V>Z}�������eB}���WB�(����]e���y�bi��.��jB|��*����YQ<$�v�������jL�)?	Mk �$�������h�XO��(�Ej�^H��M��d�D��9��j�����j��c��MpM������]��sl�s�J��J��xn�M�����kwY���1�+
��S�4����"!�$NZ����!D��aiI��ct%�2�0������D����l�P����
���������*"6�g��D�}+��G>����j0,����AmD�L/a1rT 4.p#ZAb������?n����Y���o�{�}�6�W����`������:'��Y����3������1m����~�����j^B�)���MI�-��,L�v�1��z�R�$��]<'��4kH������4c<x|��~X��f&Qy�K���)��F�4SL`��{|��bv}�b��Y���.�S-�y��[]���Y	~ ���uM�$2O'���E��c�Z?���6���q��6+!�����\��6����r�)2)O)����Z�16b��?�f�c����)��'��:ZL����R���#7�#���{U��;X�.�����Kv��V�"����g�+�(���7z��|�Bu�����VO��;��n�a�-�yDY?H�ni���_"!'����w����6�t)b�5qE]M�����,�9������8�����������������c^&���������
���������T�i�Q`���m���wOU6�����k��F
1~r�����`�q������������T���2y���*�N�w�'
���ykIFn�}�D��s��Z���q���^}I�������u���(���-�\J�rlOu1	��9�v8B�Z_�s���;y�i���wV���-(��Zwq��6�������W=��!��m&��e�X�
�)������q����/���
��L���m��G���0�j��>{W�h/�`�a�d�����9���M9��9�����g�������V�
~^�_���p������,j��@��Of�?��Bi�M�~�m��^�X^/�B�=]��Z�1��n��m�8"��mTl���p��r�k&�#Ve���PJZ�3<w���
e�t���^�rg
)c�-�����a��cI�����x8��I��d��5x�b��eG�0Z�sa������:)X����z�����DW1ty�.�; k�� <X���D����H�>�E�=��)�GS;	���������v�<�r(���"mK�2��)@�g�huB�Oat`:B�p9�&���tnP��o��8��Q2fL��x��*��<���iM�{S(p�Fx�Z�R�3a��-�b�|��w���=�6�RHK=���Vg�}%@���j>��TU�yj-+b�q�Z������d&.3/e��`�&H�}x���{��_�K�+������8��#���q��m|��l%�o�kS������7�6��Mk�[��R����Q�_*������������s@����a�����,I)1x�P@�t��1q���y��Qg{�]d	|\l�{\^^4xd<��,�E��n�9�-�t}�D���)�9���/���}.Z,�-������pcr�
�e�
�,(�M�$����7[��/U�d�g^rF$])�
���U����������Y �9��������
QS.^�>������N�����i�����:��c	�{���@�����)�m{��#���
�F"i�����w�c��\�r�?�7�Q
��K�>��^o_0w,H�h��x,�S����
���z���S.>�����'��Z��.��B��������"a�D��V���HD�p,��z7���e�P��
�K��B4����B4������b���Z��.X�T	<{�����
���]���6Y	�GWR,����� C�H��_Q]������DM����2��i�:q�����t��p�i�QvL8������n�����w�� ��J+S���)�T8��^���N�w�D��$�)P�o[��M�N�
�4��Sc��������{UMh+������O�%�Pa&��$�_[�����o�������������W�_���u��z��}�{�Zpi���=@�"���$����}�'KJidV�tu���lI��
kl��Q����������d]��l"�v��'�mOW����O�m��b���j��w��n?���l|���&��Y�:p��DoH�MD7��t���#e������H�5Y�������&X.�uX���`�������"���}��D���5���!�����\�b�T�&����h���y�2����P�B���&����hx����������J�`��u�/x���y��7aTz<NK:.n��qhPL��1�r�����<���8`�`<o:���|���$�+������k�����{���Wl��eE��O����IL�}>�9��b��?���!^p���I�p�K��E �K����{��v��<��Y���a����E�C�'�b[��@ab
A��{�Q�����uq��P
���F�.Y�.
�s��6��TZ������]�=T����6���]� �orQ�C�]��d��"M������s���l�
���2oe���������f/�Rt"���	�����GO8G��l_�$��[b�
�s���y��M�6n�\��7����C@����k�&����*�
_�t<�P�Y������)��m@�5���I��������k������A5��[t�k�1;w]��pvtpO��b����X�'����$�k���L�JU2e(���_��m�����,�@*��B�&D_	���������#6����X���<���o/�+�j�8���!Ylu���������YkN�G1�b�@���5d���3O���jMZY~v^�bM��o��PO�J�N���A���:$�H@����G1�OZ�J	��
�g�
�/������k/?<=��E�hUJ�R��/b��.����i��I�nmp�5�h�=e�A�S�5`vZ�>��de�|{��`#�N��$�jN�����l��nX�f�
T���j��Ai�W������b��.�=1�M|�+mbg�e�YgN�
�xl���l!v4N<^}�5�tdE(��|^���V-c�MO��6��7p��a�����Y3��`i�~R���;��;;���u��M����`9HY1L#�av�y��jL��%���O��,�~�����r�R�Z����~��B�����8`�������&�7�2�=;o�}:�e�0,������r�����r|�hI�����ifXD\+��n��V��3��0(H�]U]vK��+h������B�[�������V��v����zt��UEhd�����\��%NW��������M7���'��Q�v����;!�@���v��%�l
������*RF��o!7��y�
\*��&|(F:X�h��$=Ag��mM�f%����#H��������������G��rZq�H��
�����%X�2�������r��.�!��
�7��Lo��*�_�	�e����O�N�v����^���b��G3���������?i������5q��|S �P~����6�r���
 R���_J�q�w5R�
6F�<������mggN�c��n��,��)����
(a�`�E����v���1��Uu����b,��Z���P!#}�DoA��J�eR�����zyV&��+��#�n���(�!�
�a;D��.:�}����&��! ~�����������r�j����|O,c������gu�n�1g���l&o��w��#�h;fa� XUk�}�J
i�����M��u#��v��<�%�bC,3�.�6���s��[�*<��7�'�]��P)�X �4Oy���-�ch��x�|h���_?o�=�+��t�m�|mT��c�`r�I���B��^����=Eg��A��,���l�"�4�[�Fu�%u����?h;���7h0���o���A�:v�9�X9�I�5V~��!��8�[M�������o&y~�Vt��	��	��KB���+�z-6_�L���G�f�[`���9��S������5�u�r����~a.���c���m2uB�t�),���S������	������8���_���8�"G}��bv����| t�"^��52����$u)IVjSU� j[Q���)����]�����C����l������6��Kf��2E0��f�O����i:_�u�)�����3;�'^.<�����rN�c��l��a�$k��!�ERT��Q�#a�W�j���<���H�mi�5�-�{����#���>��AC����?�l'�F8�m��u��#�yW��C*@��V4"!�dI�*8V�X2��Dj�������X�|�����TC	�����������$��������������d���a
L���G��L	�p�����������j����fE�c!F�j��y�y�Mt�,��>,m���b���}�l-`��eUT�:�����A��CJ�]�7�!|���i+�F���f�t�4�5]��������)�����X���Qf�{�m�����"�H)�('�i_��'�x�_�m����t�$,
���m>�V�3�_w��	v�i��3�C�������&*.
����YIr;K�w��>} ���i�>z�S�<��D�y�z��B�*�94���YNO9�D	9�#T�A���! �N���_��C�.d�����%J���iOPK���	��RCD��$�v��B=�2z@�]M7�8�&��$X�x�Sa<�(o>J8'��D�>���=�<D&��bHr����s��������s�+9{:5�����}v��;�IT\�a���65(#�Uh��?+M1S��};��	zt8����U\9=�\�%�b�;=C���m�b�i|S��P��[;�RO��O<�N��B�� ���XO���T����n(�t*(��TR<�^2n��[�$p�
In�7'	D)^DR�6�1����:qE���W
��|����{d�Lz� ��*O����,�}�=�&�Pc��8���f9�!�UD����I�7�����[}c�z�'�Y���fEs�����s����6�3�I�U����a#�~2�LG�i��;~Y�a�\����ys�J�.��&�S�u�j��3@���rA���%i2 ��
J�I���������;��t������ �WR��������p��_�?���	d�lI�,;���Z�'=wT���i�|HY���0uB�IL�}���j��*�a�y��>:��8�(V~�1kw����"~����Jj�C��X��D%�����m�Uk��0�V���F'�"h����*�hH��F�|����l^u*�,'�r/��UN�mD�H���dCVX8��~Qw����x���"�l���"!����+M�>A��qs{]yx�X�Z��v�,-"!!����p��XV����	����=F�W����?���3�S�?��v��_��&��U��������������T5?�PI��	���������r-x����ZF�}p�a���<�VXb��X���vL������x��S�T�������X���t�3�������>�K�^�1����M2+�@���!}�Ic�+Y�I�e�]�@V�Lpy�ylt~�$�O�������Y�j�R����k�����$��
���#���i%���C��1��E.��R�{��4�K�/�"a�E�f-��O���?��pw�P�N�
�u���/�5�n����������n������
$�l��+����]�V��[�}��ww��+�w�����+��i����7i���x��r���}��"@�@�7_�~�q-l�a@��M����Z�'�z'���Y�d����9����������=Lk3+���g���$2+:"h`��|��<+I���1O����6�	������w���.E5�o�E�u��g��v4KY�5�pr������]I�����B���rW�U`�Z�t�+�N���H��c��V�8t]J����V�+�j0]�L����A�S�x6}^��J=/9��M�n�se����~�E�(8i�xt/�������������|uE����>)0�����K��}N��I���C�����n���3��Z���*��qS������
���1�'���{W�1�Y�H�o&��"��
�A�
�J7oU4s�k��O�����*�G���U���gh�n���JO��c�J�\_�#���������4�Y}�_*����ldHP�.�q��A�t�s����%�g��c?Qo����!��:���F�������r�~Pe������b����&K?����Z�P?���E������_A��*w�L{{��k����>�W�^s�aEW"D�v����%;����P�����&����!�?MgW.��������R2�1F����LZ7��YU��i��*Z��]�ve�,2���qlV�\��~^�
e���"W 
vP���,�%*)�$�ko����_��W��t��.`���a/^bQy��
f7%��u{�u��K�okF��/��o�Q�����W���$�y�#��8�C�*��m��>gB���_����_v����E�&�����BUD%}��w�3���N1�&)y���5�����0����A�IW��}�����H�z��r��H����5�@���l�N�g&��uBK����>�M��4��F�.�c{�����'��]>I���Ur�i���k�?G���T���a���}��4�e�F�Z
��=��t��x���Tk�s�}���b����v�g"�����@nQ�+!����O�g)������n@RYgx��4�.�#��)���Au�n{W�jtz�z�2C���u��K=w��+�����R] �%Z}����
��
N�y��43)�Bp��%�9�O&\����<32�������B���8����Y�ZH�����/>����!� ����5��*!�'���c���Q���\�-zY���C�uB�b�v#�2���LW��|?'�;97��6�'���>%�No�r_�TF�O�kb�%���y,r�q�C��g�p�t�^�[H������oWl��rU(���J�xA�X���J�Y�_������������U��%��o��_
�]D�����"���_�M#Xe	+T����L�/�/LT�w���u���^�J���/~���t�E����F����5[y�i���2����O��c`�p}�}d�A����T��RD��Z�V��dA�z#�q�VZ�~e�U����}���!�h�V{�1G���&��-��7V�(}_$��x�^�=�Z�Ek��$�CM�K��(�]p���q��?�����gB��&(��(4�9���V��ik/?��~0�FP������g`�o���V)���~E��������1OZ��7A���fqd���sl��/��x��n����o	ak�JZg�i��(��m*�E��9������Sr(6g5�{������?�FC�(nA��,�
+�����_�����u�k��,KV5)��H|��;���� a�N��{M(!+0��z��X�P����i]C�z���JF�I���1�N��%�q���Z����2��S���G��<�t������=�����fS�2b?���l��Q��&���B��f�����dp�q�j�C���iv�S�U�WQ^�ie�������X/���f�7�"X�rJ-��=goT���K��<vu��k���z�J����MkV;3�Ug	9%[���g����~��R�pER=����e�4�&Sl��9��vOM�����?���~����K�V`��5���?l�%�j��*of��m��� �J���w����2RtW��t��< +���`�����(�yu���)���*�tuTZ4a�N�������zX�h�*���y��W,����?�	Q+���Q�4eEJ��?�w�����U�W�K�;�)�z[��7�V���\���u�xS�w�
��	��aF���(P��:a&Eo<sO�M88�	��fY�f�T��
>�v�ub�dj8u
5��H�1wS��L�����'��v^�6l[*������D����s0p!��?�^��������vi�m��N�Y+�����4�Lv��7������w���d����������Uk��������Ue[|S���h�����H��q��Zg�"�q��M�n���'1r�)�_�?%����j*O6�S)�~J����b�^{	Ab���OW|H���U�v���
G�D[��d��"k4��*b�ff�n�	��G���p-�q���_Zt�a%�����^=�.t��8)�������"HC�~�;dj� �m�kmp$FS�����?����8��mj��ZEI2����K��a|L���X� �������|���-kS�sg��H���#eU��a�)v���D1�^��_wI���}�����t� ��:�o���s�[DJ.[�'s����+V_i����f��S��K5�T�i�R?7�l;��m������C��v�.��H�/�J9/u�t���k�_���4��������#���k#��M����]�]�R�#���&������g���5r�e6��~X�,��v��.e�{
��K����&���R����i='���Gs_%�������o��7�|�OV��J�97"��_D��R����K�9���Y��_�_��j&W�����n�l����P��q�K
�H�B�k,�YU����t��������n}�Z ��~���]��K`�����cw-
i6��^�[Sp�h
_f���d�e���*����6�������B�?���
���-e���X�!.G����<Ah/��m���v�5�-�����������S�Q��������n)�jW!?�L/v�4g9ynF��!?~"�=J�R4K�<yL�������pw�N�K���pB>R4o8�1J�|��&��g�Q��*�s�����)�S�0�O��d{~/t����.���r�v�Yt6��[0���+�\g�������d����v'�%�5��/�z:G>��O����y������tq��B/}^����[eXj��Gy7+$���BY2:���w��Q�i6�N�����1c��^��qJ��;-�����"��H�&��S��a|j:tl��������}���>	y/Z�l���8;/����u�n���|���^m@��p	R�kl�����KF�X�u�
n1��\@c3�y����+�>����+S�{/����6F5�LN�vc�����.8i��H��S��
�@���JO�N���L��:��wN�s�+�XA::c1����-_���$9=�����e{�O�wE�Jj #���K���1������EW�H�6���O����"��}%�� ��6V�'������i}6�u�3>�<T?$�+���_��U
�����R�k�f�&�yLj����<E������\�K?R�8�Y��I�@�%��L�U�,�U?���E���gT�?BN�x�����n�)�~G�a\���TK�&�����~�W�<�12b��?��\u�f�c����3fs��[u��UB�=�������v�Vh�XNx�q����ADRdyx�L%�'��k����	`�!
���$����d���E�kn�si.p����.	����q��?��,�EZ���+6%��-��Xe���m������h����8�Nq@��#a������u�����/����;_"�Y&��d1���e��T�Z��G�������GHmc[����F�a*(�!����a:
�����%�4��]�����v���!��Zy.�$�[h:��Ss�&:A jB�'>���"��Y ���������z�=���b�zF*���V����vr:��P|��3a�C�+��������54�N����S���&���i�c,����wl2�"�'�D��o���f��;:�%�����b��r8^i�UA�tAx�����������c&H�K���u-}��#�qJ�#a�b$+{,�j��"��K���E�-��O7��
IwF��z���� �������i�����Jp���bj"`���j��g�Q�xX����J�)��H�7���H����{)�G�S�%��N�}�F��s&�����nVi���2x�	��3C[�u�� +&8�����CsM��r��D,��+�T$/����Pk�H�����;�jIF
����j�g������wt\E�^wI�"�S� ��U�y���jl�f�'���W�J�L��g��������w����%36-�K�R��uA���Y��[����\$�V�<?3r�Kc��e���K~��2E�PQ��1�]T��P�-g5�sha�s���������Zo�1�#����5��^GA�L��l�U�CH3�����L�g.�"e�e�"%���<X��q����,����Tn���p�,�������0K�J������O��(X�O!��0����+~"��g������;~������2EX`���Wn��>���w!F??�naV��`	���Wz���1�c��M_��za����r_��@qeM=��������O7?X�����dU��<U}��LS_��/"��s�)n?��\�1��|��W��_���\f+0������A=\����-���9�L�� �M�=�oO���6|g�E���m��z���T�h�JE�[�����:ry���������;������ �,]��E��������u^����"h{Av�?&v	���P}+�(�4ua��=�_;�YJ���'AB���O�qA�������K-��;j.�E�w:4/(��o�N~���o��/-�<�\���
���G��B��v�#�AQ� R9�g?���9��v�_�a��������EU����Y�
Y�_�n����� ����m�l
5�b>��}xI7������s����|��D,�6��S�QlW0�p<�9�N���WX���������7R6�2��6����'
������245~��0>T��8z&=*�wv� ����:�+�td���+��%�����/��9���ms��CLo����qBW?"���c�#ro������l�5x	���n��Z[/�����/�=�z�V�6����FN^���IY�^������"�#C5|��������2���"�2e���%����q�;�����{��~G�^:s���S��V�7���zx!�(��z�����MNQ��O��������H�#��dc���������L��H����$�I�J��i�����4S%�����+ ����!�#�#��T5%�G���F�{����yO"�"N�pV(��������\|Ij6��y�(?�*�������BC]MI"��r�R��AV���Y�����M9*�%�{�8��]u�93��`��������u�9c@b���V��dVce����D�&Q��_)0-�1�y�+�n4Qu�Jz�n�9��s�x)�?o+c/c�~�v-���Sl���2��P����*�u����?�\�.bC�G]��Zf*����hZ&�������]��b�c=������H[����)��Z
�/��o�CN�%J��*��T�]�p_%N��0����I��������ry�a�-��+�m��i�EMH�G�}J�a���o��cqkl!���x��o�s��1������B�p�����"X\3�[Kau\h�p�*^������zr�?��������A'}��������d]�H�[����������
&����N��p�P��al���-��!B�Y�Dl7X�o�����M�C�X�T��{�F�q��I���	��FC�e�1��#�in�
K)|��R�`�}�����|�pH0g�
��}`I\5n�#�<���@�Lm�]2���z���* �Y=	<m�iO^���8
1I����^���`�I�Gr5q.���9")]��y������j%�>�k�#��np
�njX���(�����$c����Y�y	�|�W*��o+��QZ�7f�H��X���o���E�]&��
��u�f���\EqI4�X�P����c�.�����^�;o���oO�v6���Vk������s�Vp�W�VQ[S8�?�E�Fu���������������l}���l����i8�/�Y�]]L�
�/��R>���{"Z����+@�8G8��Y�Z����K���E��2�>���M�:���a���������j��D���!��������#Kd5����������|���r:�����9�Q�������A��b�@��2�kY)`����Du����Z�oh��0.u�X`i��3a(�����O��q8J�\�������nX|=)��@��A����������F�$X��e�9 4�1�\��������"�\BH>���V�Z�ct�f�c�v&����_~>^��\�^c]��3�R �lK5��1���Hd��nW��nb1���gO.�!��o����Wiz�U������(����O������g��?v�� �����d������r��,O��� �S��L@]�[��f��
0�x�����|d�����S����������\�e(K�_����m�J����-��3,$:����������l�ansa��+^|�`���T�c�D����������ny��UN"[#_J�8b��$�*Wm�����@D"���}���B����pB
����;,)����N95��b�n9�{��sXN6b�oc���)�XDZ��==���@��&G���[LA,����t_F����cP��$�.�@��9#�-g�j)����)�$H|�3bo��"yv9���R�������x��#��U �5��,6��e�vfk�z�vqT� /���L���61u��X��_�k,0�9>I���������l$���?�2{$QM�����E�|n�������n��6�k�Sl�)_T���T�,c��Yvz�_�]��[������zTN�G:��A-UafP"��������^t���m��G����<���Q8�b�-w��JXBEcB�����Hz��z>������+>R�,������_&���(���96q��>�=|��������)��
�~iY�g���I������WN�X�Z�j������=O��x�Wi��S�	i�PH��������h*��Q2k1��UR&�6.n�aLG�����e:;b�U����.'a��'/��������@s�.p��Ai�%H�`�%!�����W�>�\{)I��\�l���	��D�~a*��M�?cZ���j�F�O���~.4`9��n��m��l�@�Lt5���g����%/�a����l���F	�*2�u��1~@+�����+���2z9��bAp���O!�c^���v���d����-�k1��a�����"���0�9�6gux���n�\��
��
d������*��Dl�*�u�"���.*B?d87Xu��P_l2�q=��>��������ni�B�q5������R;Q�Io��E����������"��r���K���qOE9��������.�|��$�2���Lm�c�T���h��A|�b��_H�m=E96�-�v$��5j�9�;�c��c���P��	]����8��M���06�04�+&(�2W��������m��3�}������.�&���J�N�xd.��"�P!�����p�������f!�4+`��)@�N�msRW$T�k�E�W
����I��ZP�c���Pt=����x��#�g���r� ��;U�����a����t���awV�/��*�-������#!T�B�m�����lz�0u����L.2���M@s�=��a�D�OU�#I�5+0 H�-K�D��1��E2��nV�����D�=�t��4)����G}��xY�� �A���7j��@�i\��������;�����b��82zNP��ij�����$��+V��"���a��{���2���\=c�����1�
a�\���\���
ZJ���"c$GI�l�Rj��=Q-�~jT{����n����$�5"�����Y��}��\�&\��;���o?���P���7w����M^�G�	��+�/��+�����u�U*]�5���5�#�h�#�vnt���H��j8W'X������"��&p��D��v��&3��xm��e3���E�~	�0:����JY�����K������7���	���G}��}�|�������<Q�t���H}��|l���	C��������o�U�~�G�~�1�~�������0q�=�@{��@_��%��������!���8���9x�^/��7��E���
��?���f��"-K�8*-�n���#~j$�#��Nac�1�3%����f`~R
df.h0,*���������]w�1!{��cI��W�����<�,��6��|^�yw��x)�W{f�w��3T���w3�����0������Q����>��:jX$�x��'�����&J��N+�$6h�p@�n	p�a�%��Yy�n�<������:�n� �a�1�&�1�M�mWK�����G�8a���&��t��
����f��/����s�B���3A*A�K�KI{L��yO� ���)��
�������3ea�hA����;�6��<c��~v��s#���<�7;M<���� �q����j�4r�C����+����u��}�U�^������BQlw�b�v��2c8e��=%�����X�UfB|,�|�3�����!X4+�X&��K�~�q�
&����Ys@�'�e�C��#����sn�.qE&�j\X�IK��1ZB�X�r�)����z4K��Y2g��o������q��ea���T�vD� �zS��C�yX;��^l��*T�nE�������h?��_��`���6w"W�T�� ����D��@'�P��{�Bw��wm��Z�\��?"�M���X]$��V-kJ~!���hL���<�k�i���Yd�O�
�����t[�e:��� �4��.���u�"�}~H��i����h�<�^'d�F�
61qF���]S���K�F�,��@a��Q!14K
��?6��Lc_��|n�.
=6.���)~h�Y_E
��-�>�>�=�#�a��t{��
5���k4�n�l��i���69�N�D��qi��d�<qd���J��Lo4L5'8��I���=�;C��Hk0f�J�bU��DWD/�("����'��8�� N<C��5P�H����n����v=��}�k�������������pV[0�G~��0�6�'x6Hd�q�894�����-����l�'�E�Z������6"��r�b��1=3B�O�<�r�T��!��Q�y��69���\*���d�{f�,�s�2V"�a�f�t8���S������'8�(P����n� ��1���9���b��jP�����`�A\C>X��0=B����V����s��]u�A�w��~��U?�e*�N�$,��;��j��
b./������s0������P�\�����1n�������C?s�}���z� �Y��%k�'������6+�l���!DOz�/1��=�x��v��0 ����4bs�,?��a(?�k`~wR>6F��3��r*��i�8����J���:���*��v8>�Xi��C�n<�(�Z�7Y�������a��ZE.1�^��b�5�Xe
�<��%���p	X�[W�]=C��QqvEUE�8�&����Y����n��Y[�t�3_���?V��!�b�k^�XJ���E����E���q���+45Q���n�*����x�����d���1����O?����Q$d������W����t0H�v1��g���i��g��.[�D�{�f�����:�hT�V[���x��M0w���������BY`��V+(l���njT����S��L�������5�W�������l�`�-�|�4T#��D�Fq�����>o�������=1KF���L�+`t���u8_����Yi������N���c�4�X������W�V�H���Z�exD��&n�����OX��������$��������<2����$G�]%L�dex�T���Y�9�lM�:����#�/G�<D����z��e��n�A���~D '�8Wi���tY�QJ���4�1��q�>���q�'�����t��\�����%4Fd`�0do��a���2F����B=���������J=%���i	�t��rK�KOK����|��:���p���#Lf����j�'�����������H����).��{�*�l�z?�d�g%�W	���~XV�o�H������3qgr������^�O?�J�GT���+����r'��0����7���^?��c���*j|UJA�c�t���s���/��\�c�����o�1f�@r���Cj�;S�+]l�
5w�cJ� ��@%���\~]��i`VYx����~�`����{�:9T�HK=|���YC�k���_���U�p1L7�IWw��l\�*��2�������PEqnW����b;l!�+b�_��=��0�l��l+�b�hKF�1��Y�S�����j/�R`�;J�?}tJ\��zc�@c��������&����b(`nc�������%������D�M�`N#�c�)V�g��kU��3�m��z�q��6�����ToI��3P�UI�|B&�g�y���V���Y+p�e^��!�(p�j�hEF^�lF��jP?�������E;�&��L!sfVF,[\D������
�c�^WS����]l[��|�$J^���k������@-�Qzy@���o���.v���4�����J�8�U��+�L��r�����{�u��eL^>��F.H���W���;!D�NptJT�Bg������8,;#�������?$q�(2�;���dJ8�X����������h����Z���L����G0Ll���WMp3����*vF��iX��.#x�����@e2�#q�:���S��E@�Z����[)���BZ��!t��X��S�"wx�_	������Gz��yE���V�=�+L�k��y�h�w+����S���=R��zo������3{�Z������e��~��z���������RVy �S�2���Ra���\��y�$����zD*���������t���z�!!�3^'�D0����jONo�qt ��.��k���N�Mb�a��P��k�������������@������"�_8�;�����Gk�I��)�g�'�
��kZ�E)qS��U��!���x�4\��/e>]�q}r�������kq`����H��u��(y
���2��z�~����3��`�3���$4S=Z
���<I��mt^kdg�#��C�a<��`uziF_�5�������$E����z>f����H�.�5��Q���p0�e4z�z����:���A��^%�J�_�����(Lp�(V�� �r\�si�^O��?���~���^X��c�
O1�����Y�-&�U6��nEVY�B�N��Gz���p�5��f�8��`�/�Y��jo����<����	�V+�p)]�z
����8d{D9�[���2*fCs������-��j�����!���
s���4bX1{wr���MW��_=6����G�1a�?�Ws����&�&��Z����vl�y��8�
?�_%�b�Z�i��.������H�+N����K�20~�7R��:�����|�,�W�E3#}$�(�����*�P�W(S@���|uw��������������\��]��)����g
lWw�H���~5j��f�F������L��~�������R���oe�}K���P:�l�
 �E�E�Ww��MF���3���$.�v�oN�4Up��LF�o{�����b�k;w�l_Y�b�90S����kB\�U����>2!,�O����*�$���>��	P���
���&D�.08.���j����"�'�!%�ja�\�p�k���O������|�Kow���/x����[�S�J<f�X�����5����������f�;����"Y�����=��$�]�P���Z�9qGtq���\���k���(�u��r��O)$i"����Z3)��d�����m�`�$�;B����rD����^-wW�u���N���<�S�s��C�a�yt��I��_0��/2����==7Bq���%��ht���t^P�@���n9��	���z�9�x�6�������F�5*���,�i�������>�w�n�"��~���D��1#�a������fd4��a�����d����������rP�1^2�4_��
�) �A�����~F�H�_�'N�:������o2��V�$
E`�I�]���-����������|��Y�;kBU��������$5��Q�h�Pa���[�6y��W���4X�'Aqs�$$Z�����}hw�c���/��2����x'�Q�51�!b�S�d����=\ae�=P�@����7c�����'h�,���{�����s�`<x�eeAWs���2R8��*V#*d���z#_R�X_��=�',x�~��4r�����m ���~A���>��`�}�,�W|���Be�e��@[d�v_=�fB�e�]M����1i����SAU<�)R����S��k��hi[�%�`����b\���Vfmg��@�{#4��Q�������Zy�B�r�(��Y���@c"&��v+R��_������ c�nje��ZI
�	�k����%��n���,Oh��n1
��%�syB8�^n���Gux�|�S���)nw�VW��O9IjO�x>�XN?r2������l�JDXQ_�?����+=��C�T�s���M�>^�O�9�������2k����'	���K�]�"����`�D���������T�2,.�~��8��cc�
2��S`-��i��_����9���s��#���W�
���"��L�w�DE������@���<���T��,������y����
t��KU������	����,��1ez1�����S_J�$��A��v:��A?��`�v��mFU�8�TB��&&s���������������l��=��*p�/�/������I��rDI�l��!�������^����~��Vs���y����n76�6��1-���+w��XT
����_KO�w���F�&l^}���NO�a�C(�K���Y�JIjV_�+����@����B�`W�5P*���[I	Vo��Fl��y�g<-�����>}M���B	�9�+�'�2�B����������dM-'��D~@V�����O���'��Z�����f"S.� 8�������s��b���K���+�����E�����P|�bS\~z�.u�(���$�{�O����zn��r�sut+�3ixN�I����i�M|��;��4�
:�3#��h����������A��R��|����zZ!K��j@��I�g��q��LhZ�X.S���w������r��x��9K�����#������_�����F%�<�R%�7�ir���8+�O��kZ�9K������P�����8����-�X�L�O�DUZV��s��H��=Yv�wG��5�m���W����~�����K;�����#�#T�_���)��t1#v��'�F:�(���_��������*H�e���ct��1��d8JB�ka�;�[�����#�lI\0V2�,�������z�/��h�ft<�.c::t�<8
���l�r
?�,j2��|������5�����fA������U�j�W����UF�8������D?+��>�x��y@xqPu��=;��*/P��g�Z[�47w�U���=i�
Aq��yO
���"�otj��1����ix��Qy.�p3:0&��jF���O������4U��������|�����o�|A������w=_��X�(�SOxV4W�~�?Yh��lK,&���s|L9m(��]�i_+�����\Lu��+��&�D	�'�U�l��-\K�2�;n�5�xw�H~�������N�M��q�q�r�B��Br��g��iw�9�M�������_.G
�������
\��W[��� �����f��qi���QV��Q$K
.�^���0+���2zu��9l�}�lEh��"�w�h�d��H��'������4iS�@�_��Y('����;=s�hyr#�����C�nW6�����H�/3��,��a�(V�4�� ���5���\��&+}b����T�nk�lrC��3�xO�����L40�@	���Wd���E���_n�N��+����	xY������JV���r�����W�2���iQ\��x�e;��@��y�>?��R	G�:�a#R%�E5�i�n����P��q���65��K�-����YJ�M�����`���.�C���^4�}���WR�n�O�����US��^�\����H���a�����<q��I��+Z�M�h�Ve�����
�xS<�E�t����W�O�z������q��+�&��w|������%���$O�EC�Tn�������������[�+y,3��Zh�p����3�K����b���Rj&��B�Z����a�B�O��4�)M]�<v>R��VG�����R�����eL�������/z�W�8L��[���hS/:�1��
gI����A���Z�����4+R�&��`��8���H�5%�%<�L��=������|H��T���44��,�j
+���@�( <�W#�+5P�=>���E�>����h�w�uk�1��k�ea�*d�����K�|MV�^���o���Kwh�0_/����6r����-u���+u���E��:���5��[�!bz�<�o�BT����������tr� e6�D�A��C��Of$G0/��-�@�9Vz��.����<���������Z�N����
�Y�%�\Q1�?h��NP�������z��k���'����3���f����> ��#'��N�4m��r�4������U���_��l�mu8<�%�~}��-B���E���><S;�r��n�����;�}���6@�*:(?@���>�C.���lSv����7�"����2��
�G�$�Y�'t���p����6�zIt�����E�H��C�������X=!��� 
�t�7�P���u^�+h8Gc�j-m���>�Nm�
b�1Qg����]zI:�
B�)�
p�F5<��8`���JP�^A$(�H����b�����=�Y���[��&d��!�jw���������S%����gv�wk2
R�{�)O$r�tP3�dt�fP?5�Z�k[����><pu�A����i����:x1��d�����<1���Fv��9�ZA�D�v�ZP��D��C�EE9ep��S���4�����^d(b�=r|���������2���/���U9����M_�=6W*����PDJ�8����$��j`�y!C��8��u(R'Q����$�xt���Vx8��G�n���3&��#�N��D<�D[;�[����k���a���&�GB-�m>uZ9���a���d�{f�/|�9��E��T���8CLR���3�>�[��w|s��o�=ULjB�!��,+�	����Mg�i6��������n}�Sg7��C���K��0�U
�qA�}�;-0V�k�YxD�r�{WI}�a��S��+'fW�B�]TG�%��
a�}]%�lR0������*���vx�_y����M�|#���,0�7\g[�y���t����0X��g�G�@��o��\iQ�-���!�$]e�?���^Xr0b��/z�����LA���%2��`.�Q<�G2��N�TA�n��\R����/v}�N�D
(p;N���~��(w����"�����-����X{�R]�N�]^����"�*���[t$oSd��������Kcy���!y����s������������K�;��f�>��qt�G'��"d}�Wo�p�?T�>hh�+���>��� ��mn'�@��0@	�E���!6*��I�`����QADn��u�;��o��'��ET9nzk%FHo4 ���U�P#
���s�"�O��;9��X�6�vC���H�7����i��s����B���m~GO�%'G�s#7j�������1��}�9��V��t�K�Q<�����q�v�a�,�i�\�F�NoOc�?D9��_-���Y����Ff����oz~i�>D�,��n��
t������QPC�&I����?	�h���R����W
m��� @j;����oVF���Gzz"
=9=��
cG{<�h0���8�S�wO�=G�W��Vd������a=q�\��A*a��f�LS�;�-��Z��0�	�<9���9)b{eY'
��|��[I��6�\3���2�>9tY��]?=������Y
�	/��^��oD��.�$��S�=#D���
Kk��q�{G�2��`�����]U����
�H��& q��2d�	dJ��c����@�oX����N�F��K����$����dP�/=�>�B
uO��8�=Y�_u��S�Yz�vu��\�>[��&C=�����.I��t���V��Y��y�����Tn�v�������6�����C��B�#v�>��MV2����^X���a��������FE��^�Y|K6Q�K����U-��%��b5�5A�P�,��C^b� ��G{�D8p��7"9�.�g��T�/KnT�p>�$�[�"������"9�\*4�L�Z��92�ed�H��A|��xr>^�0/��K���1"+��k
��g�����^�.��e��\}CB}Aq���$.j��(�f�V��w6�_6��������'�1����������>�� ,�[.���Tpi
�}n��8�J�0Y��X���+��v�gc���??�R��b���7��z����O��53���h��u<
�;5WwLj:��B�������>Z��M���ram�{�
� ��P|]1�XJmY^BW��� �QN�ja&�clh@$�������1�_V]��S��������67e�zMB�?==��b���z��}}��m3��r�{�~ip��\�M�G���g�:�B��%� F����P,.p����OdFQ�������]��-�R]���a�1q��nQ�#0�Y��+G���X�"�o��h��2h;0�{�g#���R��P=E����}D����<��E{"�+���Cs_��6<wB,}��ZI���14v[G��;��]�l���T���*~�1i��G���������Y��L/�b����Vpv|���[��j�%v��������=��+��=��S����<���[`�!�:-�#����@��q�8��K������ e��|u��fs��	�D@�R:L��oh��o����.�R�3zIhB#T9b0�<=-�l�[r���5����~Tl�K�:K��^e����2i1�\�HJ��"���RQQM�+���u�[I� ����D�1���:�J�:n�5�%t��tYV��p�k��g��!�/8��TS�����C�:����|��QAH-/!��g��������=��-�P�������7�I��=�<��6	pq�	n�|�)Ina�#��>�!<�a�����WD���y��RS����8�`��o����X���A��?4���W�����9�^����m���!����=U���������B�Z��z�����CCK��kv=F+�,v����J ��	����*�� �Hm8k��p-v���Q����0.��:���k���k���Y���}G���i�����o�W��#I	
qt���d��s�l�o�e������ 9�\�QI��]�>U��|��d�B��H�O��ys�k�/���b����/?�.���\��~��E_��[���5��wu�LI��9�]�L�;��mv��XC3�k�0�|�np�4��>?���y�����sQ�fp�p�������R�S���xy�m�+_�f^�Y���O��L&=�����i8�c'�>�����4��Ce��B���2a������{�i��	3/5gg���Ov����6=�An�8D��g���s�rg�I���^��'nIr��X!h�#�1���Z���W�IE��������f]�f'g� ���~dV��_7d�"���|�Sy��lB�E:�3T8E�U��N�NKWJ��34���v��D
;sD<�����%�w��]�[-��l>����k���s�|�B%<~�����k�\�
��k7���p��xV�R+�U�@��D(��;��%������_]��o?�nM���H���+"�x��}�Y��4��D��B�wA2�;�?j�C���Gh��FS.�B��#
��RiU�S�LT)
K����KkGn�O3F��(��g��(����Q?�N]�F�o;��}����V��2���Hh��KO�����L�k����|v9����b���ILfJ����������D�g����]?LvnE����]}	`o�(��j
�,�����U���_8$v���PX�������Y���
��E�B�����x���kp.L�����'{�����O��!��OOP�,o&c����ss���)����]���Y��������������TBR�����t���cG���j��*LW�T`3������P���k��|�N��/H�{��Y����i��~S
�F��$��@KA5
��m�@o*�
YJ�%h�X�:�)����2)y�Y?�����4U�.00�L��J��s����K�*��+M��j:A5�o2�7��������
�O�r�)w��XS2Z90�s8��{��D�L����l��7w�4�\����^��C���Xz������X����y�����-O	�����w��A�C���'o($h=B#n�+��Q��d�Ot����v(��������8�M_�j�u[2�_�8D8�Z(m{��{�lA�,u[�(��>)v�: �4�;E�i�a������n"��{���]���OP���
h��Y��[�a�_D�SeN2l� �(�Z����Xz���1����i��a����4����C��~����P��tN�3r�!u�mn&���7�)y2�����85���:�N��p�=�����\]5q��-x
��U�L�JZ�O�.>~G�$�����lN����as�3�4k8[�gH�j�p�4hv����W�>G[���9�"h��kh�M���j	��>��]��c���B�������v�M�K���N\V��	X��7��oN�t>Q�{�!�m�����Gt�o1���: �<��t������W����B$jgRz�8]q��Q��;���,�U|`���6��u��R�R�</M��:��@�����?��'��uF
�OXu��yg!Q�&��b>���� dc��H}�=e�����Y$0#j{��8�������:	�V������������	��8�����5�������G��}��L����I��R��0��a_�7�F���<-.u�:�	�]�"8)�0
�:������J��o����M�D@�x��Z$������w�oD����q#��Q=J=o�~������pz;�QG���+�tC�.]�p�Y4�=lu�YG+r�?~�lzlf���������M*��-QV'���?<<��Hl�B'{N3�o3FKz��x���^�%�,�F2��Sz�`����N����YPa��p�YAAH��A,��-�SjE&x���9#V%�-)�"��c����,��@�r�,�{��}���^m2�����r�oe@&lv]�>�d!��������G�$��U���R?��lS"9�u{X�F#�9I���k�9q���0s#��r�e	g������E]PM��Vx��,*�4����U�*���1�Cl����70+�m�5��P���'�2,��T�#�~T��A�������6-`a���kk�����#?Q�������a5���!=<V�!�Y��
�\�9v���5�I���%Vb-�mL^b��)��"�7���������6�k����d��g��f��k$�k(�4&�
�b�dH~����	$R�R/y�ERl��1���.�a2�D���M�
����4��95��
������=���D���SM�]����JB�s;6s&�	��*������6y+������i���������'cF�C�4��
`���T��b���d��U(x�Cp"��J��A�S���q����j�!�V�XG���w��~����|����p5\|�_��SeZ�O0�������pv�����S���
i<�����:��0�7�������9;�����o�1�87����K��\�Ut�(���W�I ���X������R������K�\-`N�ov����2U��9�����"
���+{���)�������!^�Qn�b=����\b~�x�Gq�$�ESv�
� 9��B$����* ^P�&6��]�A�4�$���d����*��i��(��f�\��+e���1Y��b��~wSs���?[�%Qd�������_s�����>#�6=[p�*�I���?�K�^�������Nj&�dg=�{�*��y����u���i����q�BZ�E�p�����z���8�l���qW�X���a'��a7��lRoe� �Zl����^��BPm����$���#0r	�?�V�3�`Y�0aY	������Q���^c�X%~�(���h����ekVb�B�G���c>�^|����v�X�v���cm�He����A"��}PU�)n������`�yt�Om�X:-��5O��r��-w�O4 �'�/hQ���3���S�5���M��.?��Z~�S[��{�����0EA�����E_�[4������=���E�;�s�\^g���������5=y)U7�!�����:�p^�&�����?U�d�+����?�d�~�����i\~94r���B���pI��t�6��&��*����J������(��b%N�����yoBI������B_Z��87q�U>�oXQI�y�%)����;cCd��[���!�Vod�&�;&�xA��(�5�?U�HJt�6M�ivU��%f;�0�z�[Y��T��Na<����!�~�p|A�a��+�F_�v��v2?,K�(����0F[I*�$�'A�rswe���tO�#{V����OBE��������� ��g{��������(V=z��u��N'�
N�����P�������#���;K��My���fq|^c������I��%��-�i���EV����L���#�S�G%`�����Sz��T-�i
�iBO{u�����g�E
�wl(w�����GK�c�^���w��[�5�C�[P�P]��+�������io�H��O�h��n�?��E�Z���$Us#\��c����!��+\�F{���V���q�l��6hQ���`Q,Sn"
���_�����+<���x�TeRb�����O<�v�D�H���zB)V��=�A�:��K�+���d� �������G�����d���}�r�e�= ��|+D��d�P_o<<�Uq��������ad�3`6z���;T��*�a�)���<����x);C�����<^�,�	����L���t_���y��h?�CR�6���j��������+�\�F���Q'�����!�Y�I�
,!������I{�c�=��Y�`�	��B�)�j�ih�����!c=yM�	I@��Cc9@�>j��[�����@�H1���h"����H�]\��'-!���#����M4�
��������{����1YRt���q��&cU�S8�
I�[8V�}\�R�4�p�t{|�bw��1�=N�%�Yeh:�9S�YL���9�6���Pvv���gv����8��N���c� ��:u��;_���[�&��t�p�\�js@�U������
=��c�/^��q�t��Y���M�p��w��{����I��^���k�csy/��o����j�q��8�~���7�.�s��<d�Z`�+����]�`�U�Q!HV�J�1�F3�^�a�&��c��5q6|LF��xA���I��J�r��U�_��|0n�������4h~4��xZ�*�2���/M!
�����2iE\[�g'~��p�+��y��K�����pV��������m���RP���	�gG`=�\�,%gH]��O8wI��1��r3Z���b���u��s~(�[N��m:���{��l�k�����dS�����+O)�W)�N��������Dtj�G�������t�%� &�c1�N����_�RI�
�GBt?��V���; ��[@/�H���L��&9�cu>g���Ry�eDc�B�2"5A���=S)�����
(LfbZ$'w�r��onqh^*�u�%t���M+�j\|��iUf�/�R�
[���`���;AkU��1����^��y��,���1���V��>�'���J"v��A�!�i��f���YJ$���S����0r%�����T�rH���6��U�8{�+�N����"}����U��ntD8� ���N�P� �q�mB4#�� �����9�7d}G�N<��8;6<i9#O�����
��(���9��INY�0=s��=�<c��p��$�"���^�[����q��Z����[����'�.�rP	�����3S���qL���*�:�k(�G���3��v�+������;��j\�x���c����H��e<�XC���
�U�y�5w���E8�A��w�JEG#����p��l��v����p���0(��h�0�7���y������4���*���@b%n��6:��Yw����1k|g�e����	�$K�b#�-�8Rw���b�X�[�u���L�y�s&p�:���,���z%���Yx�
�z�tq�s��������U��@��&A#��j	Fp����k��=L�
�n�i�Y��o��B�o��^���Vk�o �� d�Fm<��N��jfA�
j�l9����J`�&c'���m�D������v�j����L�3UGW�-y(_�HM��#�w^�4����b�n�c�;o~/v�������������=a���b�+&/9���4Cu��B�o�����������%b�b
�������L���+b��1����K.s/��j��Vg�{}���0q�Ne0w�v>6��?SN��p�Gkj���,D��?2�2,q�xU�4��Jt��	���i�=����]��O���,<�I�t����q���"��F��a�6���3����	`*n	�
��?[��E�_��J�rY���:�yQb�	-��t�rw���=]���F��C���o�z��B���S�9�N�[�#O���i\��{2�92>�{�-�����I~���95�
�Hnt���^aK<���o(�7��>Vz��w�A�K�s���p����8����A�@��kP����o��p����r�����2U�
��������kpS%���H!I�`��V� ��He�q�����$���Z�n��=��P_	-�%|
�&�_�(�T��9����r���m���������,�ma"n�M�N+`D��A^�F*�'����-�����R:9N	Y��H���Ma������Bs�J^��H(�����.7A��R�8P���C�j�&���w#���3�S�A�4g.V������Wk5���M2���G�',��������l�8�?`�G���KCg��W����9�	��S�S"R�Gt<M��
m����8�,Y(�6������������T�4��_��� �N�+)$�"}�7� ����A���~�|�q�����	���k��l���:�W�������	�^�����u�'����Ym���������%�:�mL��ZM��u��8Wl��Q������[��t����z��S
�!S������4����uH���~�{m_ts��#��� �z%��=�w������^�u�#$K�s���T��Ec4a.�vb������c���
T�XY��<�L8��~@�L���Ob�Y�7��~s�)1�Y��,Mo������".�M����1���* J
�S}b,BrJM],��/��'&���������������k�?�5V.�����e�pol�,n���.I>$��v')Y���7U���C0r�W&�����O}��-��S���S��Uj�*��7�V}������J��d*�`Te�w���)O��=7���NK�L�w��Ul3����+���&�����Dr>�?��QE>�U����	��-��\��c��&�03_*���F.������^��g���_���;��|b�q�����N�$~�I�U2e?x���? ��N���cO���E����d����0o����v��pQ��/d��c|�R2]�; ����$�P��[z��cR>e���rI��d��H�����@9~	��7���L�������Fy0En]�T<�B���(e"(c�;���w0�Y"�*�c����^�koi����6-9yK7�L����%�S�$&���jU]����N�TW`����t�uS��Zl:�(������D/�6%��G�7�������H�V�mA�>�~����0 �b����M!E�;���t^�E"�\����[��P��"�]��_� %����qz��T>'.�� h�`*������*V}����!�r�;�3eZ����q���Q������m���^8Y��g���[������_\������ z���}����s�'h4\������'�w����#pu[��P�R�����2��f	p7_8�����+BJ�6�������������|������X��Brv��tx��EE�j����lY�}u|0���$��{Ms�%��Y����1z��c�M�lR�P�-�C�H1:*��<+!J���G��IjYe)�� ��,�,e`���|'��otq���Ru��<�,!G������"U�a�{����zBk=C�B��5���CS��;B��k�#o4r�
����[���T�~����������W������w��A���9����B�����Y
Ybf��I�C�[������<�/S�7��A�C[LO�s{��O��JN�y�"�9��:M���L/���X�����O�>Ma���=}D|l`8�7��'`����7����5������2���rbZ�������4e�$�>>A�A����W
~i�e�|��&���}i������=6q�
8F��
ZuCS{�}��R��XF��x���_��#]j���<�Z�l��-���Iu�$���Zzr
+�c;��S^�;u
7���l��m��m�{�O�X�j���/��S���
����Y��7��rB��D���[h�������m�?�0�K���C@w�u����p
9����'�#�-M��~f��M��n|%�9G=3�i�Nw(|i[��H���|-)|�d�s�}����F���������������:�C?���md[����"�a#�Ufu����M?5[���jL�"U0
����C�}������-��cJ��,`�-�.��$��S���b���M]^0%����s�6U?Z�s�s�I[�	���������:n���0��+����%��f�����.
MP~��2��f2��5|�10����7�n��9:�8�R�1��bRR����,�fD�;��u�;�������k�u\^Ugw�5;m�<54�����?�L��I�-y��`�A7����y�_\cq(n%�.�S
{@s��x���Y���p��No��9�	���H���t����*&����;.8q.�[s�K���M��$�g�*Ot���vdX@����i|�g-E����*Q��^`�P��B~N��@�H2����Wj]�>�Q�'y.��s�S~������}`|l_=��}#�Ei��`�v" ?Q���Ws��K������B'!Z��3
E��[�%s����	�&���S"�2��N�1e����kV��������!M�����V��y��k�xdi������������v<b0q����Q�r����V��G�T�	*y!8u
��L���x���J��JqM��sMr��
�r�x�M�nRno����Z���j
8/v��T���b�1�	.�����Zt���a��Ufxj���a����b��JU��48f��%�����o�gLm=���J��^��X��CT~�,���p��78�E&L[���X&����SK�R�>�>Q	v��%�����}�aFE�$$�:hMZP��
�ac�^g����i�k�g����lov	���s��j��)��)k�'<�(&����)����Or��E������p��=����Q�	m�%��f�~V<������<��Y�7���C?a��$t������M�G[EsyF�Z?Y�!��|�����vI���1V��eW?.��S���A�]L��v:W:�����-���_�b`f@@N�D�cV�����}is�AX�^��)-/�R?�tqy�*E�mu��|���Ti2��]�v��#������+�<���]���%���s�
�����j���t�u91�P�����T�l�
���������'��s�n
��uE����r5��N+y�B�h��,��S�\.��q�L�+)+�}GbV�ktT�'		����
{*1e����P��GP�����cx�	��U����(�&�����������I�k���4��Fa�Q�oZ�x�Pzy��['���������61���-�vE5_�G
��M8g<�E����*q�Y�^�3��v���S���]
��a$���.M�1�%@�|����\J���~�����jA�����c�����������xv��8*`�X'�O{j���D�t��s�a��7[L^��^�Y^v���,g��r�C����1m����.#�3Z���?pZ�(/���d���DF�y���'��������	����L_�=\��]����[�&���@��q��e�>�OO|9{��n���I��E[��%q.��}e;9��%t).�Kc��;�RO��|�J�SX.�O�L��O����T�)�W�5���d�4~>|gJ�4�=��	V����1o��P��1�J��� �z7j�����b'6����}����MX�M�q�D�-�n},0����@,�����PO����/i[d�o�]��:��<r�������6p�n�T���9j�lm�Iz
B;L	??\{Ei[�V>3�����V�t��/Qrd��
���^�F���)���]����'n.�J��D���q��	��^�����p�B����.�.Z���]�
�$bv[qS��mUk�;T���
���Y"1gy�d5��X���b��p5 ���5��&2W��L���[�S�,��������pz�vNPB%=/^'�:����~0N��@�m�'���o8��*#�F������cB��`�B[$&���?�m( ���Oq�������:W���+���n���.����aa/��)��Mz>������3�&�,�v��o��zO����w�i�K������]��m��T�^p����._�
'�������������><u����x� ���et���w��SO��.�yd�v��H��sc��N�2`m�h�	f/z����E)x�������02-��L1u�	�_F����7����?Q����{a�� I@�	s�v�����n�.
�e�f����if9�����nG��7.M��Pu$���qIr/�[�v�v��y��C��^|�T-�'�'�Q&�w_7��N��u���*d��'�D��E��L�������,5��-V��n������[#��l0���pB��6�~�{
��J�]���N7�6�3�)����/����6�'���}?Q�\�]	CV��n��c�������W�f
���b9{R��.����r�5,�)�X>��h���C���9�u�c;�-�o�N�F���D����gX&�[PU���3�������d���J��4ZB\Pi�3���3Q~Kd�l�X��O��t�����gs�����������o�g��[�	��8QY� ���c�%����p�[�6�y��&}�'�Hh���-�U5���z���@XJ����������9u3�f5�$U9���wK�����g��
^���
e��
e��{�d��3�8qz���9���/�kIUTs��	�������
D����?>�J�������Z�W��w���e^U�/����|Z�����b��*���FC}�>�(`~�>f��u��� 	v�:�c�����M�����A���#fg�����n�gR�{��2������������cpj�
�W_I���,!nA�2�����'�8����}��x ]���"�1�l��c�d��x�1����s~z��e"�>�vJ�tt���.��=u����R	�W�>��^�����xR�	:*�*�����������q|����.���j���������MF@��r�W/�.�=��|L<=G���;����;������X� �w��x��m�J����M.�I5c��)	<���$����z4�;����6y��Z|� ��D�W7��������
 ���-����9����P	�!�6m�������4z>a������)�WH'7�/��Z��;,����'�9d>6V���k�����>�F�$�q�n��!g��~��P�#|�m�������K����C�����Kt)K�g\���=������:o��_dc��qT�o07��x�*L�VjA`�<�x�@�������)}�`��	����Q�����G��SE�^*������= �W�����v��#i������"��� g<�kH�D����D�\����{���{M��J�}�p>��
0��^�8)��hi27+ to��!?�|g�� ���E��?��K��T�8DT���P�7�2�S_����+L��@i����J����o���z��gD4�:��4���Q��"Ksl��H���$��[���$lG����R�>zF�n1�Rx��?6�{I��d"�SIE�U��Y&�oD"s��y"{��,��(���X�eTZ�)9O���I"��t�8��I��o���X"Od�3�R�2^�X����C���3���{p�>�8�r������������b_�[��'�EyK~�i����+H+����w��h���Y���M�^��8<$��}�'Pb�/������-�>�Y	��0Fa��!LXsS�����S����H���%��[[�[i�Xs�\_��(��\��_�`z�r&,9�{���
�7���,����`��;_P���on5<�k��v���y�9����.M���B}MB}&p���n[�C�,��om+m!0�{�}{n���~�U<aX&pvDyTuTU�j����T@mnEmyD��@Z�<y�8�n�(pmf�u	������p��	x�l5�wJ|�R�<\:��8rl��VS���|����c�k�\=Pn�B�`�R� V��H�m�^k99_A�M�t(%�5�l2>�M�X���N�Tbg/����J��8�6(��/� )���m��`)�D"�CY�AQ3�����S���N����`H�~�[p�zH�����\������:J���H��cQ��+v�{�_�8v� �OOY:n+�����OO��mtW6r�,]$���C��'�@�}h����H�M|��Y���Xb�
����Z[�/*}`��	f��������=}��0�p��B��
!U>�R��(�R�H5jEl�h=�W�X��M�[�8E�Ki��MT�'����G57>G8���@j��2.]�Gb����3�H���z�����{
U�7�S�	J����X�I���C��p�'��k�k��������2�U�K�9�'��qc�c������- �be���@���9���R~NUp����.���Ue�n��W
meuZ��bO��?�X�8�T�&X�>���W�<�g�Z��1B�[)*������	�am$����M;��������`�@�f��(�u����fEm-�is@����g���L�]�����jL�������MO58#6�=���b	����X�-��;;)�b����s��^��^��U�|���p}�jqZ��
T}��W�R�������]��N�r�6�������'��F����o;5��S�lUJg`~�Hb���I�EBm��a������7������e$a�����&%���vC;���60n;|��]i5��4�TV?��%�<�w����2bg;]4���Gt\{��c0��0(��j��������k�e�og�3�����'���;�j��\�������Ev@>'�����@�Hp�������[��K��j
���G��v�}��
��y��y��X%L��U)L�6h�6A�qh����j���>Z
�:����'��\Hp=�~���4r��u���Q?�f���7d����C��8n/Lg�BK\����=��X�!�B�:k����%����S�3�=��/;�4~{w�=H}'WB�` ��[��������19�A|��v��\���?����<I�W�LHC*���l�#�c�Vd�l��/��Yq,]��#Pb'o�jI�PO�s��S�5�@��a;�`&r|8�*�����c��Wh��A�)	�#D�����,6]��H_g�~�������:V�)f�I�mv-�L
���j�������J�����1�Ab�Z_������)����`^�6.�'��c�F����6��rP�.�^���J9���%�6��~x�������:���hyY�������.�H!I��Sk��i������Xw&S��X�G�������V�;�q�1�d��a�U*	���x��?:��Vd�k�������r�	W��}�W:�X�27%�����}���c���[��wDs�D5�t������`�c������Di���)P���X���U�uj�S�N�88�So�&���fZJ�M�0������2jn[������qnIp(���:�J�Q�.�X����uY����.�����6B��������[�����-��2sI��75��5I�1��/�p^���8��m��u�s[���i�YC���U`�qe������x����+,�����Q�^cwi��Z�����[A#���������g����r������v/I�r���cE�s����/����TE��R�������cdN������	��[�52�����\(�-D�Q�t����NR�T�2���U��~\|Y�y<k<$D&0�����\��8���Pt�����~�Y��\~%�m���%M2�����yC���.2������PN&���k�J_�aN)�����}�e�MS����^_D�_7�n�	\|�+�R��AR*B�����&���0-�;����l2��o�9��D��/����WcU��S�k������,�T�=�7$�+9�[���YK�e�.D�b�c~,�^�:%� ����f����W���q|���	P��]���t;|4���jKt8�a�SZ�W�x�l�����Vmw9�vJA�b�����lYtV�O���G�A������8^�YZ���������e:N3�	C�8�:���"��H��X�!��A�C�����g�7��I
,��a�����G@��WN���T���TM5Yj��U*�i�L9�!�nc���@����eEZr	�5M�.�K��^������|�lsS1��p17%����/2��9`����8�	�Y������%��J;��*�\6����S8i1�p���N�c�������%��r���;���)�+Sa�/-u<�
���K^C�sjoO�����_Bmp������[����������iA.~��|�*�xv��R��������b����us�13i�������3��
�����3��z�}����$�iy|�(���H�[Sf��V�h�9����F5�j�^��a&J��oab8�:HN��:65���6��jBW�s�g.���)`P�� S~*�qcoI��p�V����e�����	��E
�$(�QRx��M	n�����v��jV%\2�tjU�	������������a`���V�Q��8%��0���<�M�(�Mr@_p|��S������%���Ea��8��������T����X}��m�X�1.u�m��2���H"<5�����K��O����fm��p����B;�b[���������`�%;2�Q{u!����������u��4?V��&�2A$�D�:�b�8��I�����L������$.6 �����SF�����	���;P�i��H���6G�6�hD?�SC@��v��En�� �V�S�7�h�����7����g���$2Bk$��I������p�y�~���4,'\|L���R���T����^�GC�t>X)w�������R�t.��m�I�K���x���Nev���y������&�u��.fB9hw�wX(��y�30�e%�Oa�����>�f"�^��l>u����
�������K����II9:� 3Z�(+ 
�?�'@�>a<�_z>����iV�L�d~X!����}��h&q����[0,@]e�-q�\�&���U���R:L�&h;d�Y!�&@/C#)���+��V�����#����	9����z��l���(�%�|�H����e,b
H�tL�7��}qu�Dr�p�	���Z��x�s��}�Ra����g�+F����f�����4m�Ym/����H��]FS�����4���)V��4����/p�e_b)�v9j�9'�T�Jd��@���/z�J�4�=>;X�Tv&�.FzHr��-z�])��S(%8J[<��^�{����o�$K�i����@��@�E��CT�1��E{_;q���������4b��(0�q��c�r�������w�����yC�1��a�\����i]u���Mhv&ck��#X���Y�	g��A������%�-vi
M��3{w6�N�'��s'����?�~��������p��������)�Y��M�H�����.���m���.)L�m,E����B��mfQ�+lD9���M���NN�������\OS=7���SE+��/iQ����WT�d��})����y&���+���K��_c��U`>����`����vy%��(�	���������,5u�&����Z��������J�6�.SVf>��|��\�O	X����h�>u�����u,���	z�Bc���7�l�����{1�o�i����2h����&V�^�'� �A��[�co�@+!g�Op�'��$���]�r���b�W�i\e�Jy������H�N�@���������a�N��������$mX�����1�����
����mJ}������0�/(7���1�J�L�&:� ���B\fS����G�|j���'�p��&pWYB�*�1M%�b �mw��}���.g�|G4��]D,�����5l$&�H�T�}��������>^}�J����|cZ(�;�bk8x�b<�t�7����"�g���?6|@�a�WZl�CV[g���Z��y%�u�=����O���R�#����H���
��KY�Z���R��:��N��
]�%�1�Z��{��Myy�Q:e�o����J���T�^����K������_�~~�7PfM�����
��������W��!�4�P��i��de�}e�}���m�����/��� �^��Q�����
M�D���h����<��F ����K)3��}��u�$H��5��u���o�v����{yp�"��M [�3t�S
�~`n��z��� N�4���$v`�����K���u��������$�o?�������K"��?�2[��3���$|E��W���
	z��<ox�:I��;6�S�S�6�����X�=
����������-�n��
#�%w���kO8��L�+S����IY����?`I�Y�~��FS�C"J��:hL���T�o��������~��m{��/�6�133o��G��z0������B+�g���J�w��{��t�1ew��&~���I��0��3_�2Z2;1�>�C7bU�����'��T8���3�A��s�{�,�q\�������������f���rf���jR��S�e��}�s��O�.�?���1�ezd��D�hnM2����QF����i�����`���
b���d_	�K�f ����6�����J5��z��B���)��}� ��zPj���O�$`]n��
�2c
s�
�mi~����gB��1��'?�>-W���G)M���:�����[D�@�I�/K�s1	���]��x��?>����	�7!�<v�����Q���G���uRi���?��>�7�>O����z��I������C9{�|wXTi�}�,�~'�W�{��������uIS�9c�W"#����s�cN!�a����3��s*�����4���&��^�x��Yu/�������Y����EC������|~��a0���X�\L�
C����}�������;������d4�IbYwU��B���	�@��%=�����[���.&�@����oV��@�YW�����������O��Z�
���D��x}��y}��p�p���s����s�����x>�h�&�����J�&�
���+J�	��/��f���5�����y�D���l��������{���,�%�������V�Z�rI9���O���{me1
8�cP�>!�N�|���,n�o�.;����<�~��
�<��`�rP��{�4P)���%���tq������R`O���y�pA~��_W��<r�o���m�4��n����uR����}�Pn�)Ky(�x�~�f�M[G9��'v9�M%)� �����
��������?��?V��;�����Y^���]
��Wr3�x����EX����]�Y�����}�Wj\��"5�}K�\z�]���[:<y��a��.�{^�C����#`���-��R��l��� fw�@��r>E��,
��yZ�$�Xt��8p)��U����[Hw��xx+~�<xSH�KPB\@`jEK��,�����1#��\K
8_|K��)�]a����`�	����JD�v�2�m]K������#�����8�v�o�(�f�@��}�������9��S����	�����_�����
#W8>�\kD���S��E��ub���4�q�N���-���)s�I��]|������E}��9��yP���A��I�#��6Bf��1�o�G�U��_���X/���oM����Dp�l|G����i���y��){z���n����-�&6��x�c�R���gS���\�O�����!����%�id��K�,�/�5
fh���W���r���h^hD &������[>pi{O���3%D+o��zR&�&�F�<�Q�����LG��	�>���-	�%�B����$����C�J��b��	�>V���&i
�JL�M���G�|�� �����{Y����0��6��}`w�@�
F'�=��'�����w��7�C���}9}�$�_aXI�
�Q�za��'���[4+����y��������<j���V&�P}�I�1I��B���
������e���w��  w�J
Gi����] 
��:+�X�����M�u�;>6d	f\i�R�����vw�KQ���$�b��UY�}�r�x��#��w/��45�4����f��
�F������� 3�bg^��{��K~x��-����������me4]����n����D',�I���IV��tI�������2G�]�[c]I���I��,]��%Z��Y���S������J�����4_��v�!N4�8������V���u�����e����/A<������g��Y��	��]1��lx�{���:\�MXV�u^XRg^Z�{���g�)��b-�
w��,}%��M&��{�'��/�z���p�������C����7��F��m���
�U�
���8�j�����&��a�6`y�<pp� ��Z�|���Ma�"��O�l����k��"XSR�W���3�Xv��u��>����'�:��Z���or~�.���{����
����S��!�c	������r��g%X����Vo�=�6�^��Vv��!�S�^ Q��/P���Y�HV�g-��\���L��15�&qF�~�������$�������_jQ�A��u���-U"
0����
��c	:ech%�� !)z�uY���#�����VP[���`�6����%4�0@��w�Z��q,]��j.@)�q����
^�m�j&��6a��y?7�<�4�'=�^���m&q���`��X�uj���w--�������VX�S~���5wT
��s_l��A��v|��x
�m{uW���\��a�q������]%����rm�k���vj7��0cV4_�K)���B��x�Pc[��������Z����J�j^U�	DWNH�3�����mi�)��
�T��K��$�c_n�����;D���q��l���~��k�9��d�����!
��V��q'��N���v�4y�@S��2x�>"��$��O �A�H��]�2��p:B�`6~�E�������5bU.��S��cT�<�6e����X�C��8���Wb����������-��'��1J��=Dv�~��lz���2��<����7@r��u{��n7����f'I$^���'����������h�g�=����1�MXg
�B�C��h(���CB�4��k���?8	wG.P��S�=�ws��	���;���)>Lj%��<��Jt9�qw�`�X���;�?�CT��6��) Sd��@���ADw���O8;�Jc|J�D#���)����q�����g��v��w����=�Fq��

���th?&��5�����<w��6�����&�X������X�P�	�_$�+�((T��8��KY	u��ORK�}<.3�z��n"���Y��8j�G�FS|��IJ�t��1����6&�S%_b��8��2>��h���{B���JJ	�i��8U�������C0�g�n�I�z��p=4X��C�f����������0h���`p��H��	g���.��._��=��-#�,��leb?b����8T-a�>4�6����C�����V9���/��8���J�0�aU1�	�QX Y�!3MFI�l�����8x�e���$����|�*'����-O��fc>����Gf\�����I����mh�$W���C������������&�/�+�ba��
���<�I��@��t\�3QGKqJ�n��~8���-�>!Q+$C���������p�-]��a��">�����OM����2���1��<EOvCW�-��Z��R����G��2�
(2K:��[������d�v�f��e��{:��~����_����d�!�`�f���a$?�E�h�|g��`K7����#�e���3����UYHb���+)�
��\'&��{��M]�k��*�D�����i�#h�+������u�e��
��A����{��q�������r����Z<,���:,E��<kCsJT.�������5�		���x
m@e���S#~	�&���0������8x����.���%��]�yy���u����������"��s��O(�OW�q�������a���^�kSa.����
d�5CA
RruvG�$Z��������������[r��76��������yV�[�8��y^'������|����eIm6����nC����i���^|��Ar���tI_J�/��/ve��>��=��8H�s��X��l6�Z�tK3�v��1XT������gz�L8Sy�s�D`-1�H����n����b��S^e�Z-��
`�����FH��x�R$A�� 8�9������7�-f������	�0RJ�}t3o�{�Vk�����~5����$���<����.��G:<��$�I���L�^d��l�4n��3���5a�X[�9�R��<B.��X��������;`��d)��
=��m����zAS
����U�<��fwQ�����N��;F�X�q��9���'�	�0���e��8�
JW0Z�L�v'5�w;}�=��d�$O^H�]�A�9�K%�`�=�QRZ���W�xO�}�S������+v6��7���`��:o	Tb^�eB^�-w��G��su��B�
q�n7��U��7���B���2�T��N����4�>�;U������ce2�����"RG���});�d��>�}�9�In-�>�A����	}P9�/�A��9$5�$1�o��wq[�`�s#'��u��(�3a[|�f��NZgK����c1?�$���y9�M"s;�H�x��|c�hc^�6��_�2�d~� ��4���	��lD_��=�U�R�$$:	X���?{V��CV:f�:���������/U:��aeLh��Y@
����-��qP���`!����i���4g7�k��96�����Ni�K�'d� "�=um$ ��g�X���:�����:�F7���y��+H�E��Bn�������d[�����^{��#�wV1��
Tz�f��sZ
ZI�8���Qw�^�X�:�*?�u�A���c�=�n�'�S�7S��4�(����#��)k���{E����zJU����J%�����������9��=)����������)�F��:�y��N����<a;c��Q�Y�����)�'�+6�3
0Id��K+��gn�XA$N�����@��>�����n�d�,�-���
�d��"!�D�F_����~~�z\�J�H�^S��ra;��*�"��|P$����)�	-�Q�X��# ���
�]����,���n'���d��� z)��{$�NR<��`Y�IK��f�Abr
�q�����
��8.��!@�����@��RG����J}<7�a��,���^�Y��C�l@1)_�������r�D���,k�vk{Y@<;��E'�'cV�wp�e�O���rj�cV]�|=�j�u�U����eb�r�y>X��$������������7���������N�%?��J@�8#�����S�6��hPJ���7J`�}f�'���q��0Zs����+9�1�~��8�v���X�R�������i&��y_���}m�����(G �ipG0i^�<uXmd@BN=�� 
P�[��0��3��m���#�0����!��uv��!�A�Klw��%����;^�����K8�g90r�2�����*�B����1)Q#}�$���x�m�mE�� L�Y��||>4����84s��6	Z��d����K�4����!Y_#�4���_��q�7���Y����9k����q>�t��u�_f�	E�q��I�8g�D���9OOM�u�?O���x<5��s����/z�]��������p�%=|h.���$9~�e���kz��g�����
�\�^|��*L�������2v-����L=�!?�k�����	��9W��)\Y(����[(�6��\+��tM�:w���KE$����lB{�q���w�J���>&�"��_����u��������f�4dBq��;d�4�a]'��CCCx��)\���u�F��o������"��� �[���t�U�pe���w�,���.��NV$�=�|����I��U���M_
<Z� ��3����&�veA�0�L���vb��]]�}{7���`7I8��*���2qW2����������A�b�`���~��p�W�#����g���{�S���U�k�W�I�L������	�������N�>;�=MD����2���B���g�0n~�Z$ �o��'1���)\Rc����Xa�h����d������a8C��@j�������LJ�Qk�	w�����G���x����9P�2f5�#h��Ws� �M-w��K^�$������F��f�?����Jx]�R��K��JP�o�!?���sHD�U����+��<H?���>9�7j���gy�U^�X��|i�Y����tyL�T�w�e�^��G+�0��$o7fqg�a3^LR�0UMso��m<��>��)�&p��c��T��}K��][��"���l��P=�`�GJ�L^���	yQ��=����x�L���#���A�s��BRL2��"���&8�������<�9�t/(p��V�P�������"#:�N
+���u@�<�i8�"$�i�4�o^��H�� �f4l �X�/�,��	D��>��5�v�n6?3k#�ct)	���I���X��4a���fv�X�*4�R�U��������KP����=��
�@��/V$�_��:w����$"N����%TJ��r�����'EB�7�C��������y�?�E��>"�.�~��~����KZ��'���:d3�
�}�������]d��Y-|-���#�O�F��n+V��)5K��zYS<D#I���ZR5p���uZ�\����(B7(L[��z����ba<�>�:���X�C���GM�i�	t����X<����vw{}��;��a~�:���&�N� <�mm�P8�e�fd��9�5:T���qVT�`�hw*�`�����n���wt�����w�9AzY}#.E<���D�x"�����S�E�:�KcR�c�%Nw���H�t����O(�m�����$a*�1��>����y@��St]ih�{
�5
�QA�,�������`��1J�h+��U.K�|9)z��+w�x��WY����1��D�����>��,fV$:(�_q�%/?�c������c�	=���=��'�\���4L�Y�����*���������T6�/���������Z�!�'8�2��!��]J�b?��6�	�)��`�����7�4�p�<�S��,�L/4e��"�����RgC
d�J�w?J���@dOB:m��&��o%���R���0�YH���������'���=����h(��x�����p����6.}&�xo�����k�@nt�^c$�oL�v�\#��g���op��{��J	�'�iBP&�1�������b}<Q)UPmQ%����(�4�8�@Cx��^�]*�b��(��b�����
�T�8����q�J�9g������_�"��	�F��z����)x�b����r���������#�|��3Wo��snL0��M�������y�#��w�yvSp��v~m8�8s����Sn$`[�%�,��<�������������mtj�U�����;r���vO�������4��IY�I���IX2C	?Z��x�id"[�
#�zM+9	<a������I�����9�>����&�w���O3C�^%���#'A;;/������<_%FL�=Q��f&1B��q�!�*c�"6I��qS���H�x��&��)����O~a�X}�@x��{����F9���*���xh�Sd�k����]!��v�s<�����Wv��I���c#X}m��Q.��	���`U���1����F��WL�0 ��J\�B$�������"��y����(�����!wC��^�l�]��63��<�M�t"�pu��������`�N��YXn-����/�_���|�OOm���������V�aZ�J�j��K�1���L��:�R~s"f�����.�8%)q�c�)��ZQ"�qCj�1F@�>���;U!}F���w�~
�C����fF����P"�Qv��?`�f.g��.(���6x�(�vAS�7�Y	�47�D���d�[�^��KW���CW�����vx��c{:LX�L�W�g�CHKml�`�j�6N�]�0G���	D���8�
�F3��v� d��D��3�� �9T`U�	�Z�iC�(�q��/c�Ja~,%2&����jw1�����f���
���F�B��8@��1��km,~��N(Z�;]�,����H���������1��0���!\��~{N��3���%�6�"����h�@x�7bL�"�}����2!������5���A:�����1�
/��_�N��0m�����\�_�����B�m\�S�?�S�I�IU
�p-
l�B�2,Y�M��__\�$V��k��,9���G��������K��D�����=�WP������&T�hz_E������WF�����b���y��i��{��M_1�������N�|��HPEX��-��$����x����y�����Y�<v}��6�6�����������Y��N��w�1UZA�����������6������Y�<6�+�p���fT�������C����E�<5�	��s`5J��Bi��4�������$�4�i�ONM�����d~x
�N�qm�8'-��)�$�I\2Z�w[���^r��1��p4�ANrBv�u�v��`*R�R�D����������|�����
p�����!�,���(�'X�T�e3C}g���<������F�u=9RzG[Y��B������o8�vw]���B���u'3���V�,��O�Y��Q�u�L�
r�%��J�R?��hxV�iLo�a`�������<�OQ��S���}�E@Y��|C������G�{�n��S��r������������U�����#�3�H�nw�[AN-�yh
��Q������_�+y���H���}�6�}~��E�=Y:�6�}�+
���M!.�$i���f�FI M�`�h�~������('a�O�Z��{�7uR��o
�K�W�����4�w�����>o��B���������.uP)it�UNE����]@]h2��n��w��v�:���Z,�����P��z�k�M%t��0�w��1wn��	�<��.�T_���J����.�Y�	��g��4��i�Z7�4TAu��F�T'�����Cb��eB����#�-8g>��4�D�����J����JW���S���l�YdJ�:�D�
)t�_��s�Jw��=��`T�~a����N���p�,~���@�>���T�����	>����#�r���nX~
y�����I86�px���L��9��~��5����zG���t�A���ZO(�@P���|�	���F���<��'��\��j�n���2��$�xAy��;]�2��c,�u�Xs�>\'9����s����������O�n-�����9F�q:q�;���4�7C�z���4��S��!�y]��)T�c+Uc�^u�m�I��h��P��H���M{���A0��V@���d�>��3�s~�d�n&�dn��z G��-5��O�Nk��n�p�b�3�J�*��?TR�r(��7���B0/��:��t���R�#�Z����������G��~���q�\�	�I�F����\����>�87��@�46ol*a����x��`�d�.��i��T
�
2�s<u>��!����G�'c��6�;
����8T��-�cS�Z$c��cC�:�q�j����p�'�0�%�0'��i8��1qt�j�I��\�A��y�x�s����9��C����#�%��7���Q�>b���� /�`a�=�����:���F������v�	{:$��
�>��.��\&������u�k��=D��� +YE�H%)�~�����*��Z��u���[����ywy��
����F�Q�i�]�	b�?��.���mV�D��B�1�����vC2<�q�
/�� ��2��W�Q�D�~|�Dt�&!�3o��V�������!��/��bSY��cXI��N��.��2��%����`��'(%<�T1����c(�	G�t���w������pj0M
���p0��X� XKfK<�:�<#�f�)���i�R�T�S�f&<o��{�N�a�����!�Z��}J=�L�.!����n�X?P|�Z�Y~�s9����>�����8��8v}L�i~6n����K���7�q�	%`+���`�\~��_��R�2Y�Cdy��
�"v��
3�E��,Spm}w��'\��R������)
6����6`n����$�I/�g����8$��L��0�g��w������XKW8���n�
�������^"|l���-�d<X&�k_�O�7\Y>B-�$s��<�y�V���a(��U=�N�z������`:����Hu��L�w�|���	M \�%�I=d��R�9��	a)���6�:�*�B��9�A��0Q�w�h�Z���LIBb��1�����
ox��t6���&�����Fb����w<�x,�2-�|�gEv��nP�R?�E��
F��)��x�IFC��8�k�{���sk�[zTr�����C��I�N:�k3�\t'�HQ�W�to�|�9p�G�^��d~K�$m�����H�i���I�b�m�K��S���`<?�)��KO#����LC�L�����{�5�=.T�\����8
]�����i8u��'���,��/N�Dl���0N,�`+>z�i��oJ^�%���ZX!*�e��R�D#���)]Lf�8C�Y�f?$&X��Dv�Q�)����9��W�H�@��Zh�]��/�l�C:�����;L�%��PP��
s��S3���?Q$���L%���X�8��*?AT�����X�H��L���X*'���9y�X�h�<��-��
6��� �����t�<��K�'��|@PY�r.����`+�����\K�j�����n�1��IX����]l2�t�7���f��w�1��?�'�k��I�G+&�s�!���(���N
�z�9�^���K�85?#�:h����LU�-��]N}l�&L[���3�:��(������kc�5��w��0D�m�,>��IH�*@�1~u��$T�J����L4u"<�`�V]o4a��H�iN8��2���+�-=|\����H���@�;(`�����.~�f�`����	��s�&]mM����=)��Y<1o�
�F��M�����,�E����M���00��s�e6
�=��'�I�c�!g��d/9�jd��:���;^��_b�Hg�nD��%�����Z�;�_3�g��-O�����;�����/��������jnt�ehbn:��.���Cz-���J�+��c��������>����q�)r
��Un*�\�Xi����I�LL���i�����(_��{�D,`���;�,���{����jl���0T�����#�>�����}2�������&��zilS�}�?�T����N����<a���@%�`����B�^j��p�A�w���1�%����d�7SX����-������<c����s�VM�G�������]�WYA�-]V�"���z��2��M����k��BWU	u�.��20�9���>��)��?��=8�2��l�1���$�v��e�`�n%�Q�e���Z�G����mV@V�$a&q�`�������+��L�����z&�}���M�t�������`l��i�&Ru8�O\������.�',�`\D��9W(4���Z����s����L"`�H#��y/SLE�����jw�������P�\�|����J_v�qlx�r�5Ac�f��s`�;q���L�H���V�����)@jh�S�vZB�S�������: 2YCv���0��:>��R~+a���A��u�����$Q<�P��x]d���|)��q[�����W��gtU�Rr���.~�d�0������#J����f�
R7����vT������ME���C2?�&������%����P��e��4�"����O`ML���Q&��`�)����
f	���q(�=�nEM�����H
�k��]��<�1�>(&c�d�-�=������!1;A�4h���
�����h\2;�{?�j��
��<�'�����#5-���^���{b���Y��������c�)U<����{S���Wg�zt+Z0"�M�L���������{!�7�����9�V���s\��\�T���o;�M����"�S$��"��G!��e�>�:hG�|�zA	����5N�q�I�O��=���@,���U6<��f��&LH@��(�e;Jl�l��8`�N�������z�����>��BR��Gc�����]I|7<���(V�}����i+DU.~Jl.���a��e���CD��tN���������'���y)��}+�^�)��;�|Bc�R�)���Y���t���Kh��|:�i��E�7��o��
�)D��%�w���A0�H���z�n�m�!!�cALk��3{�G�K����\32��c����"K�o}WW��+�c�p~�<~�[�V�@�o��!���6�{��:v5��#�OX���&��������n�u��N�!S�a��l�O�j�XU8����d��Lq���z�x�$RK��1���C�&�����:���"c$�w�-�����8�i�������[����m1�b�3u���|�Z�^D"���[yK�zu !��I�L����y��iB����7R�U�p	8�v[sI(q����n��x��
'������
����H��gqcQ�Htnm�*��t[/��J?2����2tG'{�!7]���x����e��\�\2E����/���~R����qa
��\�o��D��������qE�o��]Cv���T~�c�o��T�Xh�b�17�3Vn�F<`����g4[[}g��x�$5�q��������n<F��a����B=p>���o������K����M���BH������NQqm��)<Ii�R��S5���)�{�6�TDc�G����}	0��*�O��P(]��)=��|nO�\}�����|P���0�x�QTD�3��
�xcv�'��u��l����A�x'�A�d�$���.����Lk0]�6��#KB��o����B���_q�J����{m�Z"�lL�#���F0"�C�s���!P�W[
��-l����%z�f[+��B�^1����85�H"�"�����7��*�������D��
-�+!DLB�_���t����T}�h{A/�`��_�v.Y��/��q~*p���s�3��:g�A���5��i��5~V!;'���U4���P�0
<�c"(9?$�|������B����5�T�2�m6hJ�����{�k=������k����29����I����%~}l����O ����t�����3$z|��~0�$�v��VLXe49����lba}G��%��]�Lr�g���������`����?�����x �t���Y��(	H!�-����BZ�m�y���h�?��$in�S��L��0�N��)%2$����{&U��\%���Z}Uw(��?v�X�3�D�����:�gG���%.�S/�(�!�D��Q��z�o�����9=��.U���6����iyf�l����13�w%�)�
.75W<�/a����Xa���^����u����>��!VSI�f�y���9I����A����*_o>/��e���T�Z['7��.���_w�k�)�[��m���X�?@�m�����U��M�^B�>�aXLKHD)��1� �n��'�P��~%�r<-.b�Rg�������Ar�8�l�
�������vu�Q��GO!��Mr��s�6MJ���\j�.c�h�J3��.]t����Aw�Y��S�<��E��we���]{P@��nr\�<
Z}C�R��ea$"�E^����]W�YC��)��6�"N��vQ!R~&�����i)��7BF�RN�Px�}d
|��2�b��m����t�S���w��b/���L��7�������2�4tF��2)�t�����f��0j^�K-�����S7�*nn��:��7�\�W��h�Q_�K����!wW�-�b��0�����v�#����M�{��A�4�TZ�y�MIy���(,�g�����O�������c�:�U�K�I]<��k�3t si�^��m�sT�y'�'��X�F����}
��L�7)�,�^���]�J�%��o��}�S���Xq��o6�JH��" �Qs�J}p���
0�\E��JFg����a�!�1��4j���S0��H=�5����h�h�����Tcm��U.���>_xfw<��!��W%�5��BJ����/�W��-���p�I�
$�����-�Y��F�S���W6��{�����.��J�T�Z��8GcCARx�7x�n����Y�u��h1���\�RX��1��	��j�8�n(akwZ�+�D�XU^B{4�g����h_�Q'��+i9 g�h52p'�j�����a��y��i���"h�e7*xn��_����o�V5���������f��r����4�s@�3�%�G9��3h�Gv��o����2���?U?���^6������Z�9�,V��I	�Y�5{������:N�#r���F����PY"����OUG�j������X}�H��cN��xZ�?�^W8�����:�L#�	�Q���A��|����m���sf�^l����
��qR X�eoZ��g-o�zC���]}2���>����|���*
���HU���}7�<��dN��q}�������~45�����'�w��u��!���w��F��u��H��`bi� G�����Z��-8�	)���S�yy�ae���\G��q���\�e��`�.��H�1�%��n�z�-�'��@�S7�������$iD����I���/��LYI>�l�x��EU��m�4h���R�a��W�;�\X���3P ���z�#�$q���B���Ma��4K���6�� O�X���IiJ�gQxq6$����YnR,UJ��
�!&���*q{n7`�r��r��Z&H��Ue*v�(�_"?����+��6o\}T����)Ew�����O,��$hY���$,Fz\Hx������L,	�R7b�mT]�o�?�Vd�:�%�
Z�Q��Ln� �R�i�����-T}M��qO�� s~���r�q�4����:��,R�fc�����_�������D	�wpD��R�F9���yT	�wM��d#	���X���v8�L�'��w��9����Ag�U�0�w��N��n/�?e���y���9jR�6��S[*S�3d�ql��"��E�uHnl��N'�P-]�����R[������>��
�~�T5m��T��d���1c�(����1
�G��t��$�	(�$�Q���#��e����?���s��x��vC��Fe�_����T�uD7��s�#�s�����C��~*�������3�
j�U���}w�$G:�������G�R*S�]��P?�zh������F�G�����\!ED��$'�o��������&����s>����bQYw0V��,��~��3+�Y�L3��'��,�n_FM�X���d�H�>eN�bT'.r��m~��&�Y���m�S�D����GH����.���rXtiU��~P��X���h}������}�#�$l�����V=����
E��M��(4����`z��k����r������0q�.���D���?��~�!��_}�BJ�NS��*8�*���q6`�<����#���vc_d7����h)���!z�8��>�����|�!|d�B�
���<�<\����.���/��4���H���
m��%� UJ��oX��=��HY��&s�p�:#�0������#�w��s`��%��*�����_�*
�X�>N]�}o%/��`�ZZj�����.?��g�(�6t>�Q�"��h�~��1@��;�UbE��c�����u�����*g@R�5���`���!_9C�����{��o|�Gu�|k,$�o� ��`���9L��e�0����^�v����F���wV�z�A�L�E��B_"@P��G������'Y!&pU{jb���g�l����h*&l��`�pNx�.q�T��$���D+���I�"�6�l�.?��	N�~T��1�V*C�$�?�te����i��O��D�ZH�rO�%�o�:a/����@�e-}0\�W��S�nK0ev�L��/l�ph�^	Yq����,����L�����6Y�u�D�\�d�@Q�N�T���MI���1W��r=TH�������
�����%�n�3��Tf��h9�\n��
ge��o]I�H��P��x�5�`9%��7������N������T�\2���o�#>Y�|��m����q���\�5UI�Y���`��h��N��4�������������������G�Nih����y|�q����U����{u�!t�E��2wF��\�{}�?�P�MJ���\�Ap���B�[��&���QM���8`�Fu{z����R~�4�n�:��q>�������������J
c/H�0p��^;����3�h����N�T���6�,��FX���F�-����BL=@���Cm�z.�I4���OZ��~���r*����<%�K`��
�.y#��Ul�3r��/.���'sCU8wmd�)���U���A��w�|W1��Xwe���M���|�kHPU_�������G���������>������}���w�
�����/���S
�q�q����tQ�77����7��������d����J-�$���u1�����;#Q���#��J�7���g��v
����	H8��'h����moI�GI��^�tq<�pE��og�.��f��a��$c�ce^��1�e������5 <�^�>Y�I�%6i~f=K^����m",���X�1)4�/���x~��Z�8U���N-�heT*1�nN�����s�����8Wn�\�LY���'���S���c�up7\���U?�D$F[�w�F��
�-O��d����[{�s�oe���,�q2-%����`!@O+Mv�
���}$�|����	���lN.� ���'����T��D����X���A��m��l�1*�Ri�2*�_�n�q�fXR�z���(���c���zv(2�yQEOk`y=}���FM`?��;uSt3Lk��/{0�#8�}�I)y:|��d���e�b^O��yx�N��������f�d�#������S6L�q�~����yK��������1�iF�k/k��f/�m����?�C�b�<�2)���X������Wo uO�>j.LR��)OZ	s����3x7U�O�n��-�9"�c�.�������*�p�,��1
�H\�wi��HY�%����������
�d���Jf#�2?U��{Ls-Zb���mv�v�82��Y�g�r.�������}��t���d�:,��w<��B��e	��% sE�2B�Qr����?�����}�Kx��+p����g������_W��\��JT��_:����V�6U�`��j3���:k�;���s}�qR�u�i\���5-�=����[�XQ�3uv�}U[����tC�Z30�rO0�E��J��J��2V^2u�I�������������z�,�&���9�����4�5I������;�U���&�f�5V������B��k�
�/O����H���&��"��y�Dv�M�����rYB�4r��ph�d6V��U,���D,8W���m
��o�}������{P��!q�
+��S,�Uy�.`zw����L���E��S�:�|���
B����+%��x6Q�oQ-M��.������fR}P���^��ms���=�f~~{�s���{��w��6�����aF"V�����>r����P���
�e��OA|s����[\������j����h�����H��B8���M���_�uH����6�% �Qi`:� M��O2J�Y�����<��y�cx��	_v}]��o�9���S�T�����|R�\X,�
GX�LcM���X�j[�8�.���1�o�>IXX9�x�|�.�
*��R<����P������P��~�Hw-->�%_��Tc�S�0��<R�A�*6-�1,�x����PY�����Z�}�/7�Y�����/�r��i�S��l|j��t�X^ �U�v����DB����l�x +�����������Lx���������	�������(�}z �4�9�:�O�� �	A�&C���M�D~�����[�*<^�#����t^���;�{���F7���
���{�r����u�3�f*w�����3�
���Z��4���/#��� ���;��MK���J���G:����
/�j�,>��LSg��9�\��3���Ko7���}XWxU�����`�!�U�9���]�c��EwKd��"����U]8�^i�����*g�q���N��h%����MH"�-�4���?���������%�Z���O������uhX67y��Z:��
�F�]��)�;~�x�k�
�1��2�T�=%���%�(:���b������}�>���E+���h���]���6�M��E��~����,3���`�����c�N0�c�����?�.��T����~�U���Vk��=�^���:d��8��y2������(06���}���
�� =���,�s����$�pwY�,&�E*�����rs���o���n���1v����0��*U3��r����J�$i��i)��]�����K�/[���uy����8&����*n��-���Kd���7��x%h�o������H�J!���"��Q���8K_F�ut��r��u|iS���U�P@��6��f��3�������[��-��M�S����c�{'e+ �_�q��?}��YyC�E:O�N�s_|���'�V)�U{���e��,���0
j�6�P�9�sL��Mv�|�����B��c��-��Pd=����5��:���w�:Ea�
\5X��k�����^���_�2�MM�?'�����Y����=k�:��Y>n�Wc���/z�R�^�r�6��TCZei*�\}'��s��N�A��E�L��S��v��|b�/�������w1���Pb���,rNcb�4RJW��dW��t@�sU@��c�%7�g]�G>���,�������s���Zt�����p��vR��d��1~+i_�����2�c�E��c�w�4��x,���������I��_�8$Z#�N'\���/��[M�^���/����#-������=���u���1��������m!%�^�%���Et\AH��%��\����K��N[�`�����W&�!���*�E��
(o~�-
��{�ju��/��!��@.��J�	�/��j�����?7&_��,Us�j�����g������46c
gq�\b�����O&�z(@I���j�[����0����029�3W7�����)���n$Yu	���OM��1����g�I��v*�1&�@.����A8(�B����$M��MB
�6��?�9���=�2#ur���&B�TY���"x�.��#���$�
;��.�F�i������%}�I�X"���j�J�*���n�M���������?N�H���J�QF�,"��`��E��i�h�L�iN"W��Umq��3��D{��������j��#�2��IPt�r��E<#�hb.��.y��z��'o�>��<��.�nn7XnN$�d����5���9GQ�j�)!������(t��-B��N��(���)�7w�Lr��a���m�:��l*��8&�i� 9 �����!�V,�G����}^�]HS�M_�<^�w���&��m{��B��a�VvfK�u[�o���"�������%�Sh�`���?�S���$��4�o_�jF�9�HU['�����c������U�8H���H�����Y��B��\�����K�|�4�Y����G`~�d����J4��E!�-A�w8H����o����xi����dV�tM���*��z��$9LiJ�|[�L��T�A��d�����q[��Y�~��^V6*��9�t�*%��*��g#i_F�e���PN��o����f�C4N������{
YsO�Z�:����9�U�3�g�J��y|�/,!t���=L��ib������xn���xq��U��Z����/��JC���h3��c�$����)Xs�`�R@��tL��	ROVf,w%y�F�A���@
��@t[D���x+�p '�����H[��������x���8���0I�pv������(��6X��k�?}��4<@��	4����B�,{���dK*	��D�6�G�w��� m�~LQ����<g��
��-����A��FW���W|�\��F����m���{A/��`���-�{��+	��.�����c�tylw�L��M����u�t���_���Mc�lo���
E����>�}��y��v�~�03	����#u������A���,�)'�yB*��
c���
��;�;^��@�W8U�U;T��6�W/���>�ww�
^��
��3�����>�<}��,0}V:\~��x�;�������;�m�(?F@���z����������.���8�q���Io�D���1�����7�����!�V��S3(�'����>������y�������M���Gk����'F�-�
�b>zj��O�jd��W���C�GL__��5�P�/��J�^���w,�x.���/��K�Gz�sh��'1���j\4��B��k��/�%��3����i��#`�w�5�o��
�]>�jY����q��J��ymO�]�)���	^��m�+$�;�94;4��N����M��A������
.�����[W�'pd�������[�i�Y���n�~���,z~���W;&	v���M��t��<o1������y�WM^��+�9y������[�IiJWxGILs�W:cR�@�dN���|`��W����V]R����l���e�K����1h�<K�	1�������D^�[��Jt�p 0S���1��Q#U��;w�8����?��DGgP������U�IM��R	�`hN
�������b+eg��_j�o;�~m�u�������r��[�j��x�q�I~�?"�L��n��g���o����r
Z����;M��LQV�9�kb�����83j�U#�������B��x=!���r_6n��(}M�c�;�l���U���3��M�*|�9x������b�[%�����USl��@�W�Y��A�3]����P�%�m���?6���G6�?��}�.�i\/�\]B����rb}�S�!�T��Z���k�*/)�^��������q�^{�������Q�(�w��|�E �9~OY����<0<R�sR���W�;��m�&0���� �.,�e�RQGC������N��-!j�����r!h�/�����dk9%@�L��X�Pi{���y���E���FDlS��j���/:L&���+��K����>q<�9�P��b���a4�9��p�����a���n�c��t	��{��7�Aq���{F��i��u#A����_<+ ���5EM���=���s�������i�� �N@��M`����}#k���X>YW��5La��WdE0��W��z|�>�J�H�:���?���}%���?:;Jvh@����%����C^s)��>��If���_+���!w�+�6x�G����W��&������o��x����I��E����i����%�u�����������Qn���(
���&�BZ�>�k�x�(�-����G!��
S��R���K���c��=��o��������b	������5\,�HW�_���~�)>8U���Bay�
3]_��:*4E�
]�N���gX�dt�uc������G?P�=v.l[���?f2��4Q����8?g������T�yAEU��dV^����&6=�oKC-?�f���3v��|x����K����Y����G�w���<J�H�&]��N�������m�S�=Td�������s#S��J ���O�	�T��>�T����������������Qb�s3�����&|�u����W�N��y^{M
d�E���������L��(|iR
��N�����Y�)A�N�9�}���g��ti�R��b��C�.��d�������/���D	��Y�4W�G�	����R�s����qA�yn{<)��b����J��`�(]N��iI���'�Gl�l]����
�;]r��#�(���$��R����%����79Nh���@�I&��+�E�Gtow�78%\:{�m{�x�|���Q��i���>����9�0�,_�A��I_y����O���w�8_G-@<����A�i���N�%����
uG�.��&zs�!��m�=R>6�Nb�5�s��IA���
�*�;�$��t�tw�$�MB�8x�.�mye�t��K����kC�w��2>��D�^�S@4Lh��A���fn*�L_�%}���$���%�k#Z�f&���&"��U'�����f�]r�'Z��g��n�[W�D��J����~�SrQ'|4���;z)p��S, �{�_01~m��S��J�)�1������=�Qw�
��``��PB0H���;�������awhqu�*�;��C�e�!Q*���Xh����L2���;b=�!4%�u���������`Bz�����qyb���/��#�Q=���nH������{�%�tD
��nSt;��������R���S.�}L
�y^f��pb��M���3�N�%m���)�6P�W�I�z�����I�pe��X��u������,1�	h�*�R�|4EWUO��<6��x�a�B�Y�L�,.c���x�rp�}�"3��=�!�(d��%na;��$��1^_���H5o}�^��>M�
<���o�(.>�8z��Vgw+Jw��='�\D|0�7�qM]�n\~���fC�=�U�4f�r8����bz]'���%)b�l,�K��27j�c]����\�'�j1�������p\{�fB9��V!�i$�[����?����s_q*���'�?�n���������y�f�����	,p������*��}C,�����5���$j���{��jx� �����I���W�,�m��9�l��E7� �f,�K��}����N?W�\��1��	���k*�O��\0�z_y��w��s�d<&ym)���;^���a�T�{��{��B�]�g|����a�z��?��>�T��j������WBin4M9<7������������<�.)�(���P45MT�)�����+%�W]��OIZahg)
�mw7c���|��~���^���[Jzj+{K<��I~_w�W>��Gp��%ofL*�3-4����W����Z���U�r.�.-����#�.
�n�,�� ��t��?�����r_B�]��	r�5�����u�kw�/no����M�X��3���
�L�`��z��E�(�A���!�S;#c�.f�������el[g��i�_X����R���������3N�(@�����w��5M���<Mc+��>�}���"p�E>M�_)����O�>h6�x�ln���
��,X��O���L����yt�1G��&�@v����y����v	���J�9�P{��r:������W�.�l��Rx�g�.�
�������G��QE~����7�4�7�����=.�J����s�
��&��r��7����I&8i�$�QCz��9������s��
	�B����/{���?�@�X0s�Q�{�KT*��k����|��Z)�un�M1ef���T�.�\���s�����:q|��p���8��������bq-MWW�6��=�������l&���C���S��u�5��6�
M]x���H��w����[N�)�<������'�uG��/r�(<�������\-���
�R����H`����w���A�5�9oxjd��#
�q:�D�M���]f���������#r�`L���3�
����W���P����,�~��$�,�n)
l����<w6w�% >��Q��� 'M�����
x��.L������4���+��w
	!���8��i�P�������e�R��"KB��*���f� �4���Hq?��0�wu'-�)h7���n�t�&��S���^�P�8����4 ��F�i�f!��cID���X��2F���9U��a��	C�[�7v���aC��C���6A���~+��
�c���%�)�c��JG�X��g}�>E==����yzQ/���.��3�X�"�
�����K��YM�jNc��k������^��Ua�
Q����T_�aV����f����D���q��=��3 �x|�1�{E��@���S��!�^���H��h�C�3�A��%�|�^��|�u*�2�@�
K��j�	w�2Y��q��2�y
RW��}���o�7M��-�����b@��|%M�d��U����.��`��o�F<Ys/A�LX���|'D�^6������OW�X��G�<:�/[wJ��?\|���H��s���"��!����2�����U�GT���U/b�>���,�Ub.z_�=\_uEv2�����vS�,$�Z���,���M�MD8��b\��mR��Nm����H�+�Y�8^�X{���S&e��Sy������A���{��,^c^Qka�]�+�7~���D�����(��\���aX��(�6p�_#�^�W���^�#W0��t1�{���b�"������4�n���7���e�5�A�D��y|z��[������^���BC��.a����`���|f�s`��9V?�ou�9c�H1����3��Z.���z������l�u����N��������x7d=��>C9�9������r�3]�,�{�p���rMz^�]~#S;k9��M]�qdy�=
H�$C=`!������NB�<��SD���w<E�O<���0��U/���<����
v��3O�
6Z�����mD6&b
��i���~��bbq������NO����4��2bN�S�J2L*���b��"�!
Y�d��2��L���$�=R��#��w.��}�23	g
iv�Ph�"_B�#�}p�6v���v3kRuW"���
��(A�2u����&��W���/m���H�V{��4���f=&�qF�8����rD������n)��������Ja��Y�\uU���:�<��-_�L���&�U��t���mLt������������X0FG�p���]������h������-�Pc\�s��!swb&*Th����������5�'�/���6����9%1��F��:l���c,]�n�h�9���O���c{���=x+7n=���}4���&<4���Os���i���E0Y�
����U	A����n
��]����Q{�s��R�u�w���~|�^|?����P}�7������i���)�2��
(o.�o��UA(�@���N�w�����8�Ih�&�N�8������b;z��
t�^g�p�c�����1vB�I�Tw�����}u��]�>5o���nPm(Av�7�a���NV��:%|��F�Q��!�a�x�7Y�����$�C�qvO�J��4��~~�W!B�LU���"�
:�Ab.�����F�y��]Z3�&A��w/��#<xFN$mB�4����u1�\������
�S5v7E����&X�9�h.�l1��E���%��u�\,���3��(�x{��q{�$�}i��J��z�T�;����Kl
)�	$�����j�8�,:�/q�����
��k�C��K���h)c�F7������]���+������U��U�'���G�[��A��������?�H����/��n>��A[�����L�:����G_�"�N
�>5���������2	���	N�Ca
��9f��~�B��j	`�go���E�f�R�g1}�X�XS�G�����ITV'$�F�6`f!�"`�#S��8��.c;
�X�����5(.���Ow,M���������^�$������T|V���I��\�q�XB)���h3qsM���C�5%��&���v{i������F���<^�+�Zq}�Q}e��*T���a������������<2���S���H�������w<����vFB{�@���h^�0��8�o3���bE�kdn<9/�������c������v^��!��+J8��uI���C�x������#��.��@",�)��J4��b��^���Z��]E���,�_O�E�p�3d=!���-P�'�m�K?��"���\k^�:u}VO��Uc������{D�bI����
��e>�9�����l�<Wv=���)T��
����{B?��~��[\��*K?D�?8?@m�����L�ars\^$vy���e(���i]�P,�Q6�>,��d��	`�Wje�\���~uk��XZ��p��������h/u�:>@!1'HU\A�C�]4��we���
�z����H����E!�<�������d�[���Vv�B�,��I�Q`�Qw�Z@N06����+�����.���c
��u������#O��p��:,m{7��4">~F��^���P��vw��SB����O��R<qL�C���
CWE:�R�%!�����9��1���SE��X$�:�.�c�W1|*�W���Mo����t�������b1�X�q&�3U5�*�r���sj�WL7;���2����$#x��6<G.QA��D��������A�����EGkx�>!����T�q�{��%�Sx"�l=l��M$�V��C<8��m��qG�:��h 8�\q�����;H$'�t��7���S�-�������d���Ap���c�2���R<A1/�������Jb�������������8L$����M(����p}�E�n��`����@�%`�,���oW?�p����i�w.�tl����P����ai��4-�7�ip��IZ���Oa��8Du����t��w�n��!lj~�d�e��#����-���H-��(���D
g�Y�" >�P&zqs�#c?����8�Oa����Mt6����J��Rj�7;�"��T�i�K	��M�����jK
 <�{���+�7�����g������TVuV)���!=�����1cq�zy'>�X�(����������W�����OP����"���`�;�HU�28hy�����$�k����_��<+�V�����OR�vN����C�� �����1;�e/�{�����Y^�P�R)C��j=��z{P�!�?��[F� ��"H��F.��WT�D!='��i��4�#��I*��j.#m!]�%G���2)?~"�c���|h����9��pq}�mh%;5`_G���|V�y_Hncl�����c^�r-%�G��P�_k��Q�G=O�q�$nC;D1=�nu�����!
����g��P@�t0c�J��B\����1E3��`�����6l�#�b�i���Q'���H{����:�t"����{{<��Z��9n�-���\-���E8��D_NG�G��*$*���
���:nG��	a��r�����8t&�����fm�9�����']��",[�Md:��b��Ff�O	��-�1lF$�����	p���1����.��O��������H�Kf���NCW�
��#�T�6|���@{W�0B#����E�d}��4�e�\����_���J���c�����$����m�-�1������XzJ����cw��������~�y���h��RI���K'Y�
�<*@�]i��4�iOB�h���1��Cc�<�>�mLJ��>���{�w��qy�&�[����u��v9$/�'r�b��9��=q�f&Z[�<q�*�&��6��m���~�=7��C-N	/�A�iX l�t����{m���Ol�����0�#N	��	��
qMG����tG�������Ty��]Z�#-H�6��0���tj]����H[�� ���y%%����#�C�+CS$���Z�<d��8A)5��o��iBge��9�x���0�����6��u�YIC<��b��>b
�����0a�F���Kw���q����=f`�:�oK@�Q�3��OX���~�W�3�������p���.���/����}9����3K��������VT����A�(7$�_����|qyS�LX�s���dV�������]1}oj�n��z���y���-�^�7k<��V~�l���Q1!�5�-|}��
��R���n�t���#88�r��!��xN��~G����e|���,��f�.�4�M��'�_��O�/~��|^�J
�Z.� ^p��Y��	��I��������^��o�i9�>����k���4�*;^}X��n#��Ud]h���GQ�U��+�}�z	6J��Vo\r�5������9u�_�X�q���EIGx�85�/��w�:��2zIe���N~�����8��"I��/�>s�Gx3���u��q���YA�h����z���=V�~i��H��[XiS�S�u&�o�}W
h���@�L�����v�v��~�����S�:�=�����q����w�2E;�u?7��X�����3+9�e���"\���C��	4�0q�`�W&���X�dW�z+�'�M���'���d�!�c+�����Ekcw�����a`�;sf��������|��q|A�F�P�Dr��~b�,!�����AK_��ZcY�)4����3������A,���M/�wtL@Y�
$�7�����-�b��B?�#��p����s���Slx�'p+N�h
��Lr3M!o�-t��=��94�8E����f\rYUU����;�h!��p��s.6�n��bc���gM�h����4Z��~�������.��[�:t�G8Tp��\o+�����6��G�*�gR��mu;9o[�����xw>�}n/����w[�G���5�*�T�6�e�v��F��������<�C=<������a�;a�o
�0���`1>	kX9�rDp���x�q��6�j�����q�;��q��
�����������/pHS��B�W�������G����%�=�T��#/7���p�)�=K�q5#��c��
�#��/#5���}yim�8���`�k65���GqL�4>v��D������D�;
�H��f<���G���w���r��V�K�m�U�k��q�������xs
����T��.�&
�G�^�,��r������'\1�
������a8��I�Ao��"��sLpj2��t��*��3�|���1� ��z�cxM����G���4�z�#�Z���Q���>O������IK��l���( ����b��{�|34�5`[�O{��q�q������S'H�Ry��`��c�i)��s_E�/�=s�hW�l�~s4��\~O�/,'g�I�����D����������ZRgSc%���2������"f���
_TL��ek����q���/O���G���r��"8u���L�/��d<��;�(a��g��/�_#m�%��OW��V�����(���#���^2?f����9����,V!��\S��,������yXmP�}�������6[�}+�����$Q�#���"���9�L�A6p�$X~�Z$8�r�i������#��_=�T��4y�L�4�x-lF���H������&���)�KA]�L"iR!l��>Q�`�c�����8���o��f�v�d�b����c@����15���Ir���>:bW,���I�Eu���1VrR�2?��1�z���	����i|:-�	�~����)L1������-$�\�us~�q-�>��7���d|<I?&P�#��m�� -�����A�eE�X�\��DL��3�B0��fIE�)3�9���2UlUf�/I��q������z���m�RM4S�*9����(-AS��-�X��QH��n?�\����h�j2�q��:[�J�A��z4j&wqITi�7s�Bf\J�o���Z�J(���5�k�u��������_��/��1a���&��\]r"���Th������?3�RR.1L3����Q=����s�f�t�U�@7�t�X�W;IF��:�%����C��}`$I����X.���;AY����|UL�MGr�M��
�b\Zgm���^���I6B��p��l�\���o��}{`��	ly��y�	�g���$���[����3M�|���C���L���I2��D�M��������c��dw�qe�0�'����@B����a���2k���
),L
EIYF����9z�n�qA!�����j�iS�r�O�{���z����$���s.��o�����rwcN�i��o�ARX�Op���xj�<���L���.O���*mfNF,�'8x�B�H��5
5Y/)�{�<��,�c�=n��71rI92h��H���U"��`������p�%������D��s��q`��7#K�$!�s���b�z�BI2��2Q~����.����Y�^�:��7����zX����Xh��{�
�b�F��~���:��p=���T]<��DPS����o(�������������>��t�6z��xr���)��m����GF��_?L���M��������$��]w������@�oc��N������[/�|W�n��rKT��������h��2Y\�43�o�e��)����w��c��2�����M������Z�!����{��1��A���'�b�FK���h��3��'�fu��c��
urJB�M�*���U�8\
��bB����M@��w������]
�`?�g��%�\�	���9=���X0���5&���x7�$t��CB�R�����;u�&�#"�4Ib�������u���y�("H0D_�%�<���P��`)����T���G����g�mO:���	��W��t��B3���bV��0�J��C��+��w$���4����H,Lo�[���:����O����Kq	�G)v3���M�m`]����1�],'N8 |I�0/�M��S��4O�����$���(�y�r�����Y��\"�k7��=�\Y"�-��&q�����g
��O������p���(��U:��*��E��oZ������oBm�����������{��J�
s#�����v����4�=e��B��6,]��Z�fsE�]��64X�2�v}%d3n�T���|[H)���<A�&x�X�n��"@�4�D�6����`�S��8g�k�,>	���c�+��� �1������N�a��g	(�J�L���{GK�-6�rs��>�pX��=w����'���8��%��@9J)���9'������]��q/���,��8��5/h���P7�[�N���/,�A�P6���}9��2�]�D"���|���jc��?n����[,�N�q��'�K����T���D!��i^	�����</�J����5�%%�F+��h<���#o�]���bx���'��KH�����3�o s����j�$(�����eW��R�R>_��K�\�<Z������<'�D�d������i)�,�'T��w��}#��6`�Z�+�
��ko�Z��G��5�s>s����Z%��GT)��x��+��j$$,�����.t�|)P��!o���&�<�h(���;�k.o���x���9b[������������G����Q
��M���<?�e�����|hN��W���x����Y�)����q�(�Qz��Z�p���,rfR~K��#�i��V��������
�>ws���3~8��M�zY�bV�22$6����rl9�d������#��R	(�����
0D��wA��jg��T����[��jyM�f����l\��6F1,gV%!q������6��Z�����9&����-���#,�1Rw�4r�\~����/���������6�w���(���K��"Cv����ql���k���n���Z�9xQ�.�&���/�T�n�\��i�A�{�+�Q�D��b�����7�O%�#r����u��$Q�=��Q�vM,������$=���<e�^~h_��%�� ����!7��\��EAJ���i'<��'��d�	�7��B����G@�����`cD���))���I,LbK�����t���}�����B��r��P�T
���f�`@����^��m�5��2��A��Y�$�}�?��?3���o	���HK}�t�k-�	���Q6���	��~,���nO]��������GZ�")����p�F���	�gK���v�*#�+-��+���C�<���^0}��#���xxG1�g1N��`�/���?u�Z������;�nmLK���.�7�r�.Q���<����YJ$�%����wl�}���:�+���$D]_.������|��c@����]�N���}���F��j�����T����������h�Ec<����g6%+����hP�c�g���<������m3y�qt��<������
a�`����l7�7Y]����^-���9�	@3������;���w���NkM��E�
!�}B����g�Du�/���u�/�)	���0�>��"#�8k�8��;�����p`C1�b��
uq�6H)�a�k���[  $9�a%�)l�Ac^������Y>"s%���6}���HSw�
;�n+8.�����$�������y����p�MXB���H	�����W_L�n����a�8�.���<m�Jig|2)����L5�8�'+@@���qj�|d�����7�� ����L���v��H��*���6���(��g	\S�u�$V�vcP�OAf��4�L�p�w���k
����Ss��<��-�E��������p'X6x�YA�G�n��^;o�A���*�*����:�Nn��+3�?���w�b��z$��Y�Y����5W�9�~�z����}�	��j���=�-����,"��'%�5����b�;<����y�&�|l��������>�}-
�<B4)��������e�~�n��D�A����&�M������Rf	V�p��M[
�B!R>�R���a����eL#5v�|^r������Z����`���H�4���r�	���E\�)]dc"S������h$��2���O��$��,[�h_��Z��1Hbm��.�h�T&���3QDYx�L��������������p�>3�X+�@ �S�}����\��gO(�W0sA�
�����q���&��g:��b�������N����W��:����%�%O�y{��^i���y �����T�A���D3���]=o��D�:h�#��H�������<�F��d������;Yy9���(6�TVG �L�Ds�,���	�<��9O��9sv����A7��b��K�	���:7f�\��1V[4���Z;�1?�w���|�X!������,���h������x������|�_�6}+B��s���\6/`_�������f�d�����&����1�0`m���/���7�����g���l�`O���
3z��I�����w�]MjJflx��si�A���b~	Z�'F��{m���e)v<-���]��	o��w[�9p�P������s�;��)��'=�O2{�<(H�����_�:��
a��a���h���c:�1�� ][��(�
6erZ���)����#%���|���	h���Q�}O������������^����9��k���b�F�&��-V�W~�<O���Js�UGi�Q��"��|��k;���
�� _n���k�!�^�����Q���i##�v�����{������V��k��I�S��t�Ybq[h�k���O�t�@���������{��Zv��.+�;�"C�Hu�;�������v�P�oT�ih���M���yA�E�D��|��
�����w&�K��1�������.�ct;��:IPa��D�~C;=�8.U��~�_2�������J�)�e#�a�r&�=c
@[��1����;�=��V����3��$�5ym�l���l�M�������l�������q=�w8!.C���������F�]x~� ���c�	u��*�����T��`gH%1A'�|�0:$���b���$f
_��T=|�
7u�Y�i���vaD/������7y�/q�t�����
���==����ra�v���F���X�1��k�HA��*}�S���l�������,�B�Hwy�S���N�c�g����8��/v�i�{������i��j��.#yP��J�C=��tO�����z�(�v�&3����2�r�9�>Z������Q
�����a?�G������+�.H>�c��R���&-m�;G�|��c,Pn��]��"��|��Qz[ ���Z$W>[��q���^���W�O�~��m
�v��.���|V����]���sBS8L<yV�(E�����k�1�){�0z��5Aj����4?��K�~�� A6�^��)*|O���X���{�^�oi�4G����>Pt�$�I�>O�{��(��O��qi��>I�'M����{�h����� ��J�R����iHB�����2k�S�j^��;�[�C���7�69��v��T���l��=������xk�a���&�@�����p�=i��.�C��S�*������E?�)���gA�����V�J�L�����r��!�_l�0*�2�Q��>
�Y��7����d��@�F���X�c���X�\�r7Y��#�(;s�O��;_�gT�^�v��f���9��Gh,]$6n���������2q��gpnx,���R�
���PN���N�,F���,0��TO'e����x&X�~���N]�Mr�7r������
lM�=+J*����1/�O���z�f=w.Q?���i��5��t���)���p�N����.�}6���6�E`G�tD�[5�	*�M�lV8���q��>���s@�d��+M��3m���������L��eP�T��y'�:����q�����o�^Y_�W%��C�?�^	�e;{�����/���	U��� ���VjVf�\�&'�����k��8���e�f!u�g���p�0�����c�����Y|Po9�������8��}�����r��VR;%��VVt�4$���L������J/T�
I j��^���Q���%&���y	Ar�o�}~��k� �=����F������?�Ei��l�j.�}������:����Y?p�Y g��D�s}�7R(;�^1���8�|}E�c�z�����s�;AD
��&���o����+=H��$���� ��O�6�����d�����$���g���������N������2#0c�G���cJWd���~��9��D�&W��Og���6m]���&[������p{C���B�hA6�ot��}A=t)"��v���^���<k=�x�z{$
�A��j� �J���n#bBNl�;�NY?4���|�/�@L�
f��l�]��EC��$���DV����DD�%�%�?�_�Lo:�8�^��U&�����W�5�������V	�������2Y��`!���,0P��
�>)���>�����d�/=���I�ub�R]���	� ���������B��0�������f���sZ%0j�<D)������-o�'LY��Mk�I�-B�!J��#Y��sR�es���Nu�,�r�/A]��}�+-[�����u�z�>���jJ~'
_�P��K�����#Tht�C����c����H`G��%���*6I!Z���z�Y6��A?�o�Y�:�z�9D�~�Y�����w��=�{����Q:�rj��?{D����s�k��
�Iqu��fG�����V$FX;����yO�qV#����8�H�������j<�n";���������"�#�##'�����m�&���xv�X��K��o�}B��!��5��`�RE���Z8�W�
�����s��7�.V�5I�� =�?	cJO�Q��m�)��V8!
��g��^>�����;!���a\�]��KO���0WO�$$8&lW��N��H=_ �g�X��+������?�%A��A=H�b]������T��]�I>�{5y�V�A����e�/���p�&����?�&x���������HD�2qA\_��"R����rL:(����a]��5�4�����������!&,�nW]����w;��>r�w�M�(����S��ROm����)|��9-?g$u,"u� T�x�
BH|�G����W�2m!r�*7M��-gwz�H�#��o��.�{~�CKY'�Y��]���	�]Z��Q�B�k�*�9��;	R?<��!*;��'	���O�c�PM���8z��#�M�qF�uL"e���X��3�1~i�@��
�h��5��D~��	X>_�D��M�p#��h�������W,�����j�i.JD������K�����Y������W������u��W�_�C��D\���z��� k�^`�I�p����������`�XY�g�Uq��%c!��q|w�5��9$��\=e��;��"�g�b�������1�4Kr�?,PU�2��q��tv�b�NB�V��W���,�*��q>���SS����g�_��l�"��h���b�����i4|�
N]����z��������e�p���	��fSe����zYpf��*���2����
L,JV��i�"�XM_}#2���d����L������L����a��3qK���^����,8@}�\"�*�
��I�x���������Zk���W����p���]V�0
4����c�M2�Q����
�a���h.��?�"r�����d%>��6�y���2����{��t�bk9�\��/~!|�`������k�?�c�����i��Ra��(�
���O>9�er��Z�j�������|ZO0�&�Icx��i�3Ph����>��<-F���e�D��<�� rr'���0W��I���n���awiC?�x�����H7�{��������2qg���9�8��ZW�����U`��E:���q������
�-W��BM��6���M����*1�����������4G\�<���3c��������t1������������������P�Ji�~X�Y��%�B�-Mm����I�������m�����f@�X���A���i���D4Rm� �p�4�����S�K��� 5�������)GF�B�1"�hi��W�]��o�!��b��3|�>��p��Vx����|�02�M���l%���Ujo�*��E��9����S�U?L�	�:�R��%T4�JE�O�;_�cB�W�R�T����t�l�H�|�+�dt]�\�q�� n�1�?��8^���	�����{������?@�p�4����l�j��*�X��n72���:|��W�{��Z7q9����G8�X�I�-zaZ�_I��/�z?��/�u-���{ar@����J�oW��*9��E>��Ha������"%J@	)�'M!E)S��1����v(�2E�bZ���
l�v�����U�yzX��*:M!.��b��F���;"Y����7��N�&Be�~7�h��nj
N$nZ�����u7�������
F�vA��&�b�RD|�BN[����5�K��hs��SI����}���X�~�u�7Y�m5P�7��oX�b���|��x�{�������[�S�Wr|*-��S�B��K�D�������<F
[�m���&�[�n��/�#?�hM�<~�����Q!S|#/�,���4)J�8�WZ�dY;!qD���
��
���o��e�=w�t�]��z_vp��L���?Og$��mzw��,�M��_�>��KS~Q��_��1�������::�D=%���gyAT����3�������k��V����<��E�7{��A��NN��)(/����M��Y�>���qi{U���T���(�������V���5�6����xI���������]�-��������G�H�p/����2�n#�iM�0yY�r�O�;W����P�,�)�fV�!i�����j�#�Sf�Mpf�0rJy�l�)��(�3������4�4�e�3
�����[O(J�[�
=l�Hi������y��kJ�9>g!+���h����.�����oq��E������E���
7�.P�m�}�CxZ%�j�~���g^�&v������y���G:����M�1��j�S�`�@d�l�����$I�������##��r(i��BUc�D���vvV�6���k������>w9bx|�vo|g�DX�V^](�P��+�ZO��s)b�Rr��^�����u��swq��(I�����s�EP���'{	s��F*�����8�P:���s��/c�W��������#tW��$?�����/��t���K.��J���_��g�������q1!���\���o��]�@��	R2q�d�����Z�2�%����M���2�N��bM)�'��X�vMc�)d�%v�/���#`�J�������AD��9�&P��8�x�@2k����iiki����@A��e�+�a$ZL�����<^���B���o�&��f�@KFC��/=Y�����;����@���)H;(LXttz^�2�TsW�/A�C�a.U�?�'_���#�-c�i��^��Sm���X�'#��E�2�f� �K���T�/���v�����U��y����@�M:P����
�=�Y��F�D�!�M\���~m�	5t^��"�����z������T����"��W�?�������.|*	���\	<S;�C�y�������>9y����s5{?�>�k�����e�<� q�c��m�V��3��EO�,k��������\WU��5U���#����Csl1u���y�vr�R�Y�\<�LB�h��.9GR���3h|�_��	��S)�����JT������o������/��7O����I8��*��	��S�N�;~g�qxi
XuJs�'{��y���J���ZH/���dK��O��9wq�
�m����9�%�	" (N���w����a?����\�bp�w�R,�Ieql��)���Sg: ~{�&zqaI�+��|Ca��TxU[�y���Mw�.�~s��N�YvY����3^4 �2�E���n���WH'�}N�
}�����6ni:z��f�GV*�	�q���N���R�6w�2m^rY]���0���OU�3�����=����w��s��7�w�5��RaoYqr��o&IwmT�i�^�5�=r!��>�v�}���1XCV#WO������X���\zD��� J�=m�qi}zG{��y}f|�c��)������ge��J`��kB�.�V�WY���IIjX�l@U����/6��Xh�o<�z;/���qU
�jEO7\���*T=�#o5	�?�x��{�{o�,`��^!������%6����q����6���j���!m�p�W���ym\�_��Jb2���8?��t2�4c�^��}��������/|��`@�n�U&�}S:<v<�)Rz��[�w!Og:J�@�����CAD��"��Z�aX�p����[�"�]�����M���h|u�>p{�����J��`���J���U����C���������C����������c��d^L���c�$���!�y��nzy�����5�^����$6���I�3�h�[b1UW�J�����[��TS���&���������6
U�7���m����������]T�p���Ft�dM��n�t"&&8�sG��uIj���������WT���	��+{����WIk�$�~���kS�g��?#m1�'{q������+���w��C�M���]S!�����UD�H��I�^��XnM��	,�<����J.��-���@�z���p�W���R7Qq���f����LaMw���1�����d/O:;���-���m�2+A��&�/=`:f��2�������v�Q����0����eJ���A=�S)���}��Mi���KF��z���pJ���O/���@�D���	�X
��3N��/F<���������%<f���qD��K���Mj�_��D���������_��K�q��������QZ8S���zH��p,=L�w��n�z�.s����z�+P!��U�m,��\;�V����/����prh�/�����"9��8�V��I-��z8*$��b}�D!��q>��&����+?���c�4J����;�Z=j��������3	�rq��D�e�x����ZB)��>p;�^������D�(��#������.��eLW��r�6�'T>�f��k�?�����-|9�s�=�*��'��m�cHo���c	���vGH�o�:)�|��������dXp&�&������5n?�OO����<�c�cR�9�h0o���/0)��o�s��~�};v�Lr�'q�\�]3��,$��I���t�0�
f3A�Y��S��Q����/�^���XK�����s�����$-����G��ce�)R��r�
���o��g�kQ��K�O>P��Z�T�� M�������*�O���@W��<�����X5n�(X�����|]��~������U������0�����yv��=���������1`om�?$���fz�� ]�f�(���Ov�w�p�(������� ���i�"��/l7f����V!�����6o/I<��y�WGH�0+���[��.@l����~:�'��iX����f%��@�v�O|�w���������sK�^�p,��Bg��Z�-�J�a��GJ��P��%z�
'=)�N���nGp��,�eQ���s����I2��cN�������mtC��m�k�(l����_�[�i`	k���}�S����rZ2�|P�0��%��m;��uJ;*�(�x7r$#�yL����7v
���{'X�,p�u�0�/����;#�@�'������a��
�z���2r�quph�(��^��Q#nq%��QB�������:M��nB��M9��p��d�6�	�7��#�p`���:��L�x�
G;1u��j�����J?o�/l����2?�� ��J�=A�2b!�y��=x!������_��}t���[/���c+�Y#:�6���&��1?SO�M�&�"�!X�~������c���"��S&�4�Or�
�VY����N8~a�� �q���Tqy�J��<�_�-���{x���1�������19b���
&��:	��c��lv	���J�\;������'s�Z�O���3���L
����������*e�K�� �F:|N�A3����.s�"�����d��I���	��b���jY���/���������`�m���FN�u!����a]�U�8����iK��X��?"'0�H���t�|��\�n���N���"Q���-Y$�ed*�Ry=�G}dV������J6E������,�l����Ys��J>o�m|�����f��aC�*���N|�MR|��6�;��@��qv��1Yt�F�Vj�9����������d��i�`A���
��Y?����5��5�eJ'�2qV���&P����BV�<�}��6��mh�cC?;q��d�4s%�4��j�8�|�(o��t�g3�:?���*��w�����&[�8A��@�D��"&������s���)����w�R���k����� <�G�W1NO�j��YMa��|Z��7/2���'�wz���#<e��L���O9�0����y�~�|�{�DEn��?!:?�~����:�}?�}�����\��E/���^�y3��`@��1���v���f�����i�}��������}�^J�2���u�m�?4�2�Y2��_e���!H�NN��Ik����K9��%\��'���E�z�X�|��o�|�k��P��D��#�����6�)�~��Lz����I������6�w��y�%G��M���N?�q�����hz����_�C@E�(��Z������|�dA�.������q�o+�C�8Rt�����K���AzRD"�"v2~_�~��b�?�uc/[�y�8�q-!O59��_��g1��O	|�a�]N��	�����9�~i�$F5�&����-�����������S�F;�Ef����)QS�0�=.�9��+a�d�������8����|��E�}�3k�"�n�|Vc�]�8������^�����$�b�~�������YW~�����j"A��]���wU�)�Y�zT� b�Z�G�JK��������iyr?�p���&�D�v�3�g8\���!9�\%��(	����p�k��k��8����9��J	�/��<���:�	]�XKz���}���9����w�����i^U�H��e���|������i���������X2��6m`���7m�����K�!�k*�_����q�����x5��>���)z`����5
k��+L��\Bh���E��x<U��<Q��b0R�Q�����_��N-�m��M���A����\�e���R��i+�V���mL���D;��r�r����Pz��RF�M�C��G,@��W���nv���V�����1�Q�GM$n�W4�ZR���y��T����r�2F����	��kk���sm����5�����q��p��������=�>�+f n��3x�w}���*��*_�A��/'�}M���k����ZDE$���:lj�2hXW�8���\�B������|���]j?�A�����x=��W����mP�z�)�*���K�7�R��V��h0�f�1��@ �����D���z�9��+^v@�/5A�|��d��V�]	��c;$��v6X��b8h�9k�W����=�(���m���_�=<V��q�S�#7ZW�V���yX?�����]�N��$/�d�9X�;5�|e��>�^d��"n\��#��}����p�
5�V��u�S�T	{��	"���Si�u]�4��t�G������w������J�����8z&��4�*������T����7��NV*���R,_��6���"p��������0L��9T�6�F@a�\�?2#�r����pu#�9;�6����
���l�S�����Y@�#�,W�?�I�B>"X<E hf����7_��s,{h-|�o<�b��
t����/��`���rE\�r��k�Yt��Z�Z*G2/=��,����
�m�A�M�����d"uh�m��^[�����o��O*�����Rp{���Yt��R�,r�3R�x����"	Kz^N��)sU�,��'?��a��H�a5�5�����H�`�c��+���X���*�o_�<]�j9�/�*���9^��)�J���	�o��d���a�6]��K�����}���[���%��w��{w�������d��&^���~��J�E�
f�)��e[��R�/^���5A����;�w�H�A��8-_�X�Z	p�H�8wV&�����A4~���Gm�YtO2�������*m��~�N��Z�r
u�2:;<v�E�o}�q�	�"j�����|[F������>�3������!�@�.��{L�K��vK3U��oX�"	��\�d��G�@�H>�I�{����e9���IV�S�l_����j�0u�Z3Go~���+Y6�;���H�)�G�N ��d����e�-����m>
��m��V��X�L��
����Iy)![�,�
G-�����6�
��hk)�R;p����`�58��|h��b�����A9|������S�gU��eZ����A�e������o7�����k�g�9��=�)����,�|�[�K��Y��*}A��2A�<:����^�Pw������I���q��r��Q��~~�*��2K5�;�u��S*.i��,*r$����p,�O�=+�vr�WdO������H�k�	�����~�,0��-��*UB��]�f4�MJ��4����:��D��
��,�Xzk��rM�y��~��s^-��{OR��Te�wkX�6���q����� ��NC�/2h�)W�?������q���]��r���+N]�0��.�������/X�o�'�<�BF������� 8T+?*��qZ�~����Y�p����]z�a<��a��}�Awy{W������@�@x� +~g�2�e����`x��j�Z2
�+����[��9fa�Mg�U�X���3�:W����
��5"����5���i�Tuw���}�(Y������wE���CJT�\���X��4������K~U��M����T�)u=�2����c����O��������q~r+��L����]�e[y]���N�V�y�� H�WIU��[i�oJ�vj�8�[u�8+��K��p|W:��+a|
�[��%"�������7���[��rj��2�[�l��	��������8r�eh���$~i6~���!rT�~��EX&b<�7��>�|����N�5�n�u�!�.��������M��CGP�����GY����5�^#����)��k����z�����V��o���)N��=cz���a�C����?�lM�Dw��]��f���F��.e�z�m/�]
F_0Q`
:g`N������~�wB�4�o�������Lo�����U�'�s��C/p_:��k@)�xr�����g����&���\���X~�n+��e���/��|����~vI(�O$�Z$5Y��Z�X�p<����-
?R 5��2�c��z3z��d;�c�)���H�d��
�����f�A�
q��
�5��\.�WR��Q����{���
���&r3i?�a��<6���)�T��$?��3&����������J2����;K��GfogOC��&����1���)�KCB�v����w������C[�*��X�y��d�6�c������mY��TCc8�lN����Q#Ry�����n	�N������v���> ~�<NF����O..xES��eZ;�!�?0O�d�E��rL�n�dJ�VUHu�L�G��j�,�����R�1�:>-���
�,�������(e)&�G��M)���H{L�l���"(���,rT�HY��}�(�3��[nh�x�^����n�99���R]/��5���^�1/{R�K���X��8�o��:��QCT��
1}�j��,�no0y���)>�X�*���y���P�� �9968.��<y}$�q����Q��08��0?B�����'��:4�,��vEX�z����}��;��9���,Z �\8��j/��tA��]�f���{����?363�=��xl��&1�xb���/�:��T���R�O��U�����r\�O��V�6����>@%��������������3�i&��xr�&~�+Ro\R�����g(FB������������jK�ak�fq�2�!�ly����kv������X������|Hl0��E�������0�{M���)��,�M�(tt6E��|HRxR��~?�����D�Ut	�����bk~9X�;
�����t����������$����?(������b����_�M[��N"U*�6-5�������������������?�D�m������R���~��_�(&|��.����V/1����%����8K6���lx�k��	��tC>hu�c�8��WI����z��K>3�2��)��E�y��6mYAm����S�bK���r�I3�A����~3~b�db�Y.�K��������KKp7��!�B�_Md�?�2��g��<>��#4��cGO%�h��#b�����z� z�IU�����4�|M[?cG�
k��L���qZ|�8���t���7��"VU��T=Xj>HdI�w��\��
B!�H�l���b�I�3��`�K�?s7t�w}�"�]o���1�����QK�n�P�s��?_�r!N�~7�.��@p�����Zq}��>L��������"/_��$#����$��2�B���&^�dY�G����~����Z��n����z����H�Y���^����&�2�@%R�iEhTu���p
���t�����gsl�[f$*��QqHO��}���&�y�iQ��C���������6��|�,����Q���5Ji
� �LA<�:�\S����:5�SuyY��2c�O�V���7������}�0T�����6l����� ����s��X�
����������}<i�����4v ��5����P�N�{��fW��$_,����HS)������2}�C�\��4.��%��k�*��l\��]9��s8�5����<M��� �i�Qk���>�JF�F�d�7����	���qSnXJx���+��u�C�+IC�9�w�	y����$��7�*<G��0�����a�/����Db��4��'�L����W�'!D
������O,�x����y����� ��n@���)(Gd x@�K*�a�	6���T��C�-��������p4������eV��;c����T��p�6�����z����0^"A�=��*/_��}��������\"3��x�[Ax`hY�@��4c"lw:x��3�.t���,���qPqMg�q�v�����v2Ed�#�D����+Hoxws��,>�����
�U������T��q�;�'��=�����$��
�B����R�*�iXl{��~��e�?��j��u���_� 
Ad���E��c�2w})F{�63�r���Z3��������9*Z(���z����fU�h9{�
������,X��YG�M���9����;�w�"�(���Tj�N`nC\��o]��'����S�s��.�Ly�7�W�����*����KT����k��S�
�/o��>0Y}�q�����7�ZJp[Uzl#"���S�mB���@[��������+�h>���m?���{K��'����7��eaz�eq:n�9^d�c��
_E>����xp�H���DRD���L����*�I6}?{�&9g�JQ�B��1�����A�]D3�ma�G\)��r	\?/�;e���!�	��_#P4�����j'�F5�b{��
A�������$L6_s���-]8�}n����+o����r|j=?G�}�b��yZ�k��C�,����t�\Z��>W+WD{k�D�x+�=7�E*�Vf���bL�Q6�G}�W�A}�2X<��u_����a�7�L��s��Y���!_hx�� ������Fu���} 
C��2_�D��%���k;�9��n���u�7A����J�^���CCbw�dK��fl�h8����~u�nXv������!���y��f|l����]��6e��F���y_�-��l� !��a�R�p��.�mn��w�F����cV���.�>�2d
'"��N��2��w�6�qN���b���g�&^��:�BA���V;h�/�����
.�5���vd����@#�Meq����[���v�0��n���C��C%�fk��ow�A�b�k�o�D�S3F��V����f�s���a�B���	:gm��n�&���o������s����0g���Z���
���N��y��@����I���h��Y��$8�v�XP������1��s<w����=��	6��svi�]v/�C��,�>����l�IQ�������>*�\�VUn6�IrN�;���W���V��.������eD��J�K���@��+
-��e��+]�����fz�U�l�J
�|���d�WD�������6R�x�ns�N�S����;��F�%�f�,��7�������@����uC��Jl�����IXD�>{����)��o�r�O�����w�(>,Um��#�Z� Ev��������_����'��T7����!0!*���Q�5Ov$�q�4n��vt�45�'�t�v[�������T��*�Z�U��|-������	���8��q��i�qm���P����ic�	F2�m���J�������DS+�������FO���PV�i�����11Z��i���q.��4p��q��&3�	�3��.n?�X�Y���u������t�����������)��J����oX��cM,��g�E����9��I-m���m���;������r���W����qjT=�)��y�aJ3���?�*M/%������T�)���Ncv���'�E
���UhF���h"�'��9�K-UL�������o,O�}��9��rB�����RJh�2��'�Z�6����}�v�-�����fX�h��MiF,�����$<�^`W�"���-�.�9��������4Y����y��������j��*R���n^8nN���J2���������f��*k�5�E���&o�x�Xf<��0�JU&��N�����u�W�&�	V�o���u\L������[�V�	>�c���Ze~����0�����76�v
�����%.���y�����F�������������{�3Y@�K��i��FX���(���������E���F+��3��!��|�#�X�{�!�l�{��	��3�j2C��L�|�	��;{����d�y�2s�����������������O�>�N�'�����)�X�g��x�����9ZB�%�E������AS:����m�������c�RK���F��o�1��
g�����|!+��M�>>����'�2� ��;y?��L}�owFnNV�Y�M:a5��N�u�Y���l�s�v�|�<?2���Jg�cg)���;$�{8m�7���B6��L�x�f��C,��!P����8V8A~�=�`71����NY�{�bN��_�k�Bv�5��_~8pD�^���uK1UXo�X�4$j��jp��o���@�0-�@�3K
������+�3?��2�`�d~uu��H����cX/���[o�bs.G.=P�������q�0�4�.�2b����>tp+0�����u��	��e��R/���AS�:K�._��[���4S$N����_Z���~��S��6�����8���7ZnSb~��Y�<�������(��,
�y��|������bx����J��!���'E�QF����_�p��J����Cw��f�fs�.�i��J��Sm�<zZy�&�9�Pm&]7��tG����~���[�<q^���c��q�:��6���?�hGdpH�b��Sk?UT�������a��4d��_�����9�3/:��-����/v<,�n�����������gDf�����kW��j��
_=}�t`'�����]p���s
��!�N�������G�J������d}������LV(�.u�~`pj@h�]��m�R<nu�@��}K#���$�������o�
k�[��*�ad_vX�s*sh�qr��B'@�S��<49D���VG7���-���SNg���\*��+�A}C�i��������z>����(���KCy�O����'oR���~�Do��9NG�x}GH$���W=y�����uV����]&�����Xu
�5��*��&E�/��h���y�����(j�I�x��D����������5��4�
�������G���
����?���������#i��7�!����<X����u��N'>^��i�v�&.�.d�|���H������q6=[6J��k�`�_�1�����(DU������*�D��4�f�T|a\���m�����W���e#��,u�X�t-ADR���:v�S�Z(���{2����'���w���������}%y�<*��t�,��EO����4Ign�M���_�����,R�p��@��p�Y�96�x.jw���a�����~?���p�y/��`�b;q�UMDU����l�(����*!>��T�6�/Y<��?`���uk�n�t����l���
��8�=���V�)B�F@�u�9���������H������XKl�����,��|:��O���&���]�Q�U0e��`�&O���_<~��f/���D	��52&Y}l�C�'@rsyu}ob�D�q#����1�����8�������vxuGY3�Q�s�7{��8=���|l�����2/M�(���'������Y�o�e�~���i1b��9(�����).1a���m�zf<�3Ok_��M���L�	|]$��uC���=�xlK���|t!
��n>��6���K�fD,&KL�a�����������^�-\	�j��C��K48��V��`�{��0��+�{�(���g��������7��/�=��	�w����9�8��k��5e��B���W�Y1�4�ICn�G�V]�y�CC���R*�
.�s����9���f�yy�s�3��C�#�9Y���������X�t���^�����D|����A&f�������<u��A,����r�	Q#�����j@�k���j���07Y?�8���V����-���*n�6�����M��&�[R���M�������(ii�<��&�G�I�7��0�v��AD� �<�����Q{��"��j�v�;�(���0�'O��Gd'#�:�|�C�:�����s��
��#0V5����n����^�����aB��i����\f��a�v{u#qs����bi��a��P���c�?/'?��DL������lnS�1��M�o�V����o}0�I"u�S�����E�9G�,���1a���7�SK�2����+��7��=��a��7��g:	b��Q+;�3���E����:���pf��!������"��1o�����r�f�z�����:�1{<���@�)�����|B�����~�������� ��C�{������-��k�H���o�xo�Rp��eN?6v�|��������8k��M���;��"�C��HtQ���}�$��8*����s�PWM��`7���8�xl�y������.d!G��T#���'��PD��������}&����vS��&���9��+�����K}�&j�"%���Vg���s����$YC�Xs��fu����/���&�	v���H������f�fZ��A�R�U�
&���`���,���E�a3p��0h�� v��js����~u�����w����g���B����������1~�(0?�
NN,�����;�������?�o�X� *�J�������6{�g9G'w���eUGh{8��gaz�]R�v��Tq�!<
��#,������J����8>��Y�����<��I��2��V2RGa�,����^��Q��!���i]�f�<�+6���5��]���SS��|����:WDZ�vj�I�^[vN��|�����XUH��KG�J�l�X��9��B`�����~>}(�T��������e�f������bM��B�p�hU�U��O�l��:��,zJ��v�Y���(��g�1�)�t���4��~��(��`�$$K���^�G���\��k�z$��\��Z�k�M�7S����*��'���e��J�D(V����4@�F���i*e�f~�}�A������)s.�2M�Tj:<����������d�X/�n��)s=��kxF vA�6���aI���<����N�V���'|��b�l��(��!q�Rl�zT���������Svn��F%��d_�}yT?����i����3m�
G&+�����F��
~�nC������l�E���0�-�������FG��;"b���S���x���h�X�m�>�n�{�4�d-��`<��<q<���`��\]3����z����q��Re�,$6x�*���%�-��sl!��[�
~����U1�f�P�W��������'~~�g�����&�H8�U\�dVnmo�4����o�]������\�kzK�a�A���Z��b�%�$��K�8�����	�$�T��@�s��?Q:���5gY_���.�S-���]B���_���
1�X2�.�\���l����N��-C�LD�`^�����|����������KF�I��Hp�F.�X����rs��I��<�9F�l��7:�20a)Wa�c����E�3�U3`[e=�.]mTs;�"�m��KR�/]�0p��C��EK	�3���PS�A�7n7Q�m��Z6$���/��	�$�mh�����MFD���3~9)�t�����������Ye��3eq�:VI��j�zP������m��S[�
�YE���<����>�L��t�����3Xv�%���B�N�U�DtiT��������UJf���a�� �$�QN���zr��/BH�R��_�y	���.0�p����e�9v���X(wV	�:!��y"V5����n!���v�yR=�����j?��kd$�O�]���_�nju]���������t��_��8:?J�U������L��2��!���9����u�5�
��^���v�������.�P��QM���v%�����"����D�,qDp��������-�]9M�tr�rLt��CI�,
����Tqw$��3{�����/��30��Y�=�����w'�����a�o�
.4@�������{k�+(X��A��Kf�/�;z�
�z���(��'�;<�����b�@��s]���![�6�g�>BU������{[Y�A����In����sW�nrK�Y-m#!/7[�@)��!����b��\�^�&�U��p���DC��V���������a�����f��;�I��
�Z�['��<YJ�1h$d?����/�hH�C���.��b��4|���g���i-�-r[�OF���|Y�fg�W�����<��b� ��������Y����AV�Wt�=h�9��y�^��_|���8���]�Z��������h�������7�S~1Z��:a���E��H"%z�3<K��������mO��W��c���~���{+M����%A�������q�7Q����K��<�b	�A�Uk'{m�4�EX�U�,��������*��f%o$�WR~,��7u���}-� �|����7���!,z>1"����6Y"��xE����n���Y����,nj��������uBC^��������@*"H�*�����-�L����4�x���������X�0�?���i�o�G�E7tWDu)�a?���W���0n#/s�bN'#��G�M����lp����3��E��5�m������o������Bk�&P�QrYb��yx�y��?�J��fo���7���M��
c
$�(�e�a��e����f%X�&\�k�j�J�1�8����pn��V;{��{�H!�����L��Y�-C!����,	k�c���el��E�
/���o>���yk��oT�P�<Z>������d��if�
�o<��/8`C���b2��]��VGY�C��q2��8q�!�����7�!��m��6���7�f�����@V)�x4f��
�*��:����	��.�;���d��E�������\�&^�;���M��0���6�����@�XZr��h�	R��T�Do/��@j�9o��>/���&~:w~��Cq�S&N���y�[��A�q�o
��M�����%W�C���'����7^�������..����<
�x�]��<�t��-�[��p� vM����.Y���U!��N��L�S�z�_Z�����A~����O����s.������k���
w��TiGEB�nh��;m�<O��
R���;���[����@Hi7��8���[�~�����(y��>�����W��,����qw�b.��F\�d�qOB���������}e���0~�=�[{EQ|m�~��'F�s���t�N��W&�-)�+�@AV���u�`��V\[�08|^�3��RE��"������7��L��=^)�^�-����r'���a��l%�������"��.W�bC����SvM�x����kX��-��Is&u��3�b�����2f���E��q"b@����)�$,����w��M���!��qLQ\�sz�t��snYX��b�`����F/�Z�����e��t����������	e�b�j�Pz/�a���:~\��+����#��5��AA��&
��<�OP@�z�p��j.��I" �r*��*0��������C���.��9x�Q����*Zw'�������e��<���yV�r�?D�.!�@o�n"��!��:`��0���68N1;h7����>a�r��|yE������Ba�(�$�y�
�)���� c��
�
��5	�����q*2ved���4��%S�+0g�3L$�i�%W���r�{x�q����D�F���;�L��������nS��l�~�\�����j�o�Ixl���yR��Y��B����T-������q�{����n�6�H��
��������W"X5?"�y�8mW��@��pW����,��plk����j�[3����9M������c���,S��[�O������8z>*XKn��&�����cO����
��0Ab���;oYm��#�X�*������~��>"�FA�����)�����R]��Q�/
����&A�J���t=�����Ky�)x9��g���
I�[I��n?�G��������T�^&��z�
5�����������n�
�"�e����������O�mW�"i��w������cK�3�p�v�pIw�]�����.�� �p�������<;�b�Ov�_��~
��tI��e�}��T�]�K�����^��jt|n6�\��weIn:Y����-q(���M�p�����C��-�����/m\�B�[DY���!�;�0z����{:�h{�hji��+���9�cy}�^_����	���G<���y�9������m��;�����w�����<x��=��$B-�a��������+�O���0v�c�X���I[��\��N����0ZGo���3t��w��K{Bo��V���X$������@��l�M�=���n"e��
�����re�:�H��
F��v�������������a�����"I�i�M�������$�0\H�j��I�����4T�a�Nt4c��?��m��g��S�"����M�a�0��H�d�(�����x��#�p����L�s�(b�|�%��1��mX���< l��WwH�R�U>�U�����F�F�.���������?�ce�f[���k�|����G��b�{�������������)z����.�`��%
�����]MA��z�-�4���/�l^�JY�\f�rA�4���*9L�������Ov�1�������op'Q��^���L>�>�OF���wqm0��3��T�(�I�����������`���d(��f���	qoX��h�"a_N4�y�f�p���1j������1��F��"�T���y�� �l�L���$�k!lS9��B�����������jC����.��z��a*�w�����_�.�SE�%�7Q�=��5+�o47Z��+�^<q���}����.���kn_B��mb�%�f��-`(s����W�ICU�w*�������:�V�,��C��%/u�Z���-�6�������1a��!�M�o!�(����D�������>��8���g�-�����p����^ ���	�Y<p��m�`�
�[8���Y�l������Au;'��~�����CAh�\j>|�K�8���f���w�hNK4����]n�tI�����Y�g�I����<�	�3���#���� ��1�n=h�)��vLT0~}n8%�b<\u�t6<d���6�N�W�4�U�|�r�}fB1����l8���9�� �����1���j�x���<��T��nR@��$�5���W�h�?���@>���R��L��
���}1��Wd }�F
�xR��B*���5��~?n�������_�=��4��D�5�����7xj���K<�5,��G��hk����������QA�i��Na���z����&�M{�k*���h����Rd��&���,��"@�c�c;�]��
����q��e�A�,,f��2���]Z?���Q���Z���8
]�n�sH�TL U�e�=$�Y���ni}t�����(|8�t��D���G����;?TW�0��
�����h��/�e�W�yt���1
� 1�M�������-L6���G[��*@�� J�)f���������@�A9�e��=����~c����'[��;�0/��QF�O��p���
���g������������/s<���
����y�S�
���p���G���!����X��'���a�L�R�H=��l�hN��ED���+�c�&�7�oE�@RH���~'��8��_�<ls�m��i�����f��������Y�>�������7^�
,�%(�����]��z�!]4��2QH��p�L��B����qW!pQ�7H`u�VS�q���&c���[�����I_����r����)��h�3�	QV��Z��=���a?��Xo�MYh����Q�k�C���s�O�n�M�A���A� �6��	F�:�a���^�L:W��Q`��������J�����q���k�x�D�5�c(+��K��(����
V��{���.���&�:�uM5(�:���x�V�����<LK��5�t�o`"���d����Y�n��f��Z��+���v�#2�����������������a��k�~Y�p����9�25�����xn��ZYq���&C�!C�o�"����1�����qv�d��f�(��6���4�-�f���&���8�c]YtX�x��T��E���4�#��Z�f��a����J�=a��dnm��_�k������e������m���������"!r�]	������m������$�P�1���:���d��p�L��s�0�kx�O��P`[�{�
���<���{Q���;�����;����f�}���"F`E��o�M����W$���4(X�6��k�U������>J��~����F�W,����������$�����7�� ��>~t�)�/�S�8.$��y��@�$}���-��S�$����U�-��a)����4���'����<�N"]�87���"�Yv�xX��s��-�{D8���6'���G����X���f���&�{�����f�yl�wOo�C�scyr8��v���h�c���zz�E?�4����`����������sq�� �t�n�����I�l������!����z��U�I��l�2(R�t��!�xA��6�)���1t��p���@��a_2Q+�s:D:8�������+�i8�(����+���r7972i������_�#��/���+8T���{r9h��~�W��n�e��.�[|�yjt��0�G��I%�	� �'}h���#�yEv+<^����j0gS���b/�}r�'M������U8��b6��3wY���w����W-l7P�?n�SX^ba�6�h��!�����N����=�X��'�/���1arv%�X���x���q4����t�g��
|���1yuu�9�l|�q������F
�Tu*����S��
)s�;}�1��l�@�]�������M��y,�p�,X��,�$�T�
0�2 �V	��%-������F=�^$����+w�w�q�[���c^�U�	�	��an��e�Xmm�uVt����"jH-��je�)Jm�]��z���IJ�~&/�s��)���|��s#jH�3V��J���y2�~���&+e�Y�".�P���?�V������{��ZQ�-A��/X��7��<q,��������`1�%����n�W�B�����<�xmgL	)��Ev&��@wbCl;. ����T�N�����o��F{��|Z��F3����t�yP���X�{�������7�w�d�s0�h�\���8H0_n~n�=?���=���J��@G������
�M�$�O���
����w�ru�Q
]����'���KR��v	Ve�i�������Va ���D�~�r���G�Z/c�x4\�G�<�q�dAM+PZ�Q���j��z.�F"V$�]��L��x'�gr%�0��E2��L�0z���s�P=��:lQ�m�����Vk��-����>���o����M9��s �>�s���.��7���:�s���BK�0�<����+.����v~�
��6h��@mp��H^)5<jh���
���Wqi����x	�l>��
E/C�	T��-h��Ak��=��t�$^9�v}-+�K���{�v�``q����������o����:M)����*�r��V��`��o�v�M����/p��BN���!�6�+�U�q5�#������*�����7{��3?����Bsx�.�T���z*����]IC����d���U=/�L���xs�����*���g<�\c)���/ �D�}��kz�y ��<�l��6sbk|S������x���������igS.�'�FU������E���s�����ycw>�Y>��e
�>2q����������\j��]��f
���C���9��#oz�K����dBU4H~{E�.������w��g���zPEXe(p��[;r�a=;��������������.=E�X�����<�� `���)l��o���<5�t�->j'�23��@��%�����"��lP�s�+��Y�+@�Y��`n]
������c�H��B��+pe����(���S��*��Dzj=��%$��|��oW���MM�5�)�L��bW��J���P���o��'$������Q�d����:�H��ZC&������k����z}��%6���8���p�����2���[��n�)��m�/�F�8�NU�e�a�r�K��;dy���������h;V��G�v�Q�L5�3:B����v
��O_�6���<E����3]���V����V��hvd��wR���������a4�i��`i`us_��FHv�,�&�*�����7�/{8���i���hUH���pi�~D���Q~�1��|2�L-�dJHs�!�_uG��Qs�M��v��&��Aj��������Z�o������,�u�YJ����q�����:
D��p����K:����!�*�?D��u��lS�6^|��(e� ��R��5��F�p�B������f����q�}����z�o�e1-!������}�!�x�������\@�8�,�Z���ZNd~e�����6o�|;�M%����=�0��^K�u�7�[�6���0N�Q���ta58G��Z4y3L&yK����������-��9����|0�of!y<�}��Vro�+���q�������N��Y�Y7J���������."Q�3f����r���c�������`dH�U�'u��7Y�r�];��v9�;{&����Z�d�A�}y���F8xB�W�8��Q:���Yc<���u`�&�&��$���;�/���7\�Mz�v���lN���U	n���<����^���E��(+���c�����2k�Z�B3��������<����0�q�6��J����^�n���-�G��py�05>'�>���%�o��a����!=a����������o.>�+"�T�>�]�����`+;0w��y8�<�,4�A�����=`�|`�j�#s�"�I��*u�'��������<������b�g���(�����H��]�Z}�r�������H(58��9��Xq��A���� B>s|]7��V�g�k�:�������Q�t���7�R���H#3"���&�8nP�S�s�!�7 ��4��	����6/����4�	��.OS��T��T��U��h�FUr��!����R����Kv�����cJ�����:��CI����d�3]�1��	��_��-��b��G|Z���N��:9L��dN���x=i�]���y����W�T��b��5R����(������l_��c��-���\��t�y8��R}5>F]zd`�C,����9��^�d���{S���s^<[lJtz6�"�n�E�_�|86��oP?���u��Dc2�A�_f���V)9��CyL��4�{�.����G@G���,�~uG��ZgZ{9����j3)@i���H���o�4��;K�\
�~����SA����<%�V�����yh�^�#�|������tm���6�3�R�I��d� ;��z��[��z�_kY�n�2 �Fa\��8o��,����G{��I�h/�7Ij���\_=>\���[�����<P����`k%W{��=���P~�6��^�p�c��������V�y\-&����?��Z����XQ��n��z��gI��tY�p� ��=���n\}4�?�lD����;�I��GX�KIu!y.!uyb����v��l�m�3e���&�$���G�������$?�*�Wa9����
��y�s���s����&B����b��m1i��U�j�=��^�n-�i�(}�����e;�grl_ku~�8�'��?o#�kjt�k�j�fEqm�m����<�M�,���R�T���o���f�Wu")����w7W����(��j���V�e+S����8l��Ow_�	��cJ��b�F�����Z_H�SX�7?��e��6����.�&7;��V%���^�"W����
��X2y?0a(W�a���2������SyGlq�
Y���i����`6p3q���`�=
k}���6��HY�B��
i�>�������8YS� ��7 �t����S�}Qm
�a�����&�&����\D��Fo�c�
������c��
����"!�`�)�g���n�Ash�S�����L�;���W��6N���iM��nE�SW����Y����k���� �����Y��!pN�����?|H�uR�hL�u��d�V������ya�iw�@������I���nO'�����^�GM��H���\cs���J���5���{2�s�4q���p��&f�u���S<v�W(�]%�BT���~C�O���$�23q�\&���cb6�L��H�����F�fG�?��G?o�����ZH�d�R�����?����)�s���w���������O�e�F�KR���i���l�Ak��tq��d�>��A��l�"%����+X$Y)�l@��p�a��d�x��D}<�9�w�\.��X)�T�z��cx��we��Z����K�@K��d�xZ����!6��|�cC�+*!�i�1�"���ZC+x�.5��utZ���������^����y��p�~���N�H#��jQ���@axu�������BL'���'�t�w��ca*!S4Gk�}���f�Dx�M:��s���p���F��_W���Q]|���.�T%���=�����U��=��}6���Q���g�����]�q�2Q~<m��~������z�%����Y%(�%C�E���$?Y~����C���� ��D��;�����5�:n8���/�C�dFhIg��thr�=��n�����[�t���� qq�j*6��m>����uj��W���u����dC��9��[���W�1����I$���<�3���o~����Ds5�$D@��[m��XS��6s�G��C7�l���Rg���J[�|�������@���z�2K6��6�|�m��q��kC�6�y�2�AY��w������$��#<�_~��qXGx2��25�yo��� 0���7j�S|�	Q��
�d�"x�����E5���^5-x�j��f���L��q�kU������3w����a�'�l`&�S"Be�J��!y����h?�Xp����~bFy�"�sz��l�C�,K?�����qg��q�0�R�4U�L�RI���������}�W���.�G����^���&��|���QeIW���s~
���B��_�vd�^�E^"T�-Hk��R����X_Q*v��������I�:��.����WZ�rJ�*���X3�a_W����z)X+�k(�^i(��J��V��	�">W�/}v�Z��;����?��rf��U�/T%��s����ZB|���-�)���~��0cV��^���857���S��^i��x~F�Be��4��-lO/�6�d=~���y�
����P��[�E�q9|��Z�sT2�������N���G����[���(�{����]8�����+����5n��Pf�h^t�v�� ���������������0����}LGeqjN�������J��U�p:OrvFi�P�a���>1`���[M�����E�DN���t���+!��;����4�����v������`�T�����s	�������"	A�����W	s�|��%�8U��)O�'�(D#6��v����t7n����!A���j�5��K���j��}��FNH�V����t\|������/}��H�����!����K�$�����FD�t�NJX=x�IS^���4l��}�!5�k^�W���J�P��`JX����e�N����39�8l������j{�`.��������.6��h���g�����+���P��_�)��(W�Y��YYiU�U��"�,�qt �>���
@��������y����>��M<3�E�0��/�r���%�w�������[{�%c_Q0�"�����Y"��B��4O���Q���#��CT[�WM��������1�Bw���=�=?���ZZ�_�*�������^��1F��NG)��v�l��p�\�Y^^P8��0V
SR�beJ�_��������T���yy(�R,���q�^2��x��J��Joq���LfA����<�)��8^|��p��U���ks+'4T]V��a�k2���=Z��6Vsz^QC��G�C!f������x��KH�������a�
h��;{u]��"���?+������Q��v[�O��I�� �M��2���z�����V�g$��b��7�UW����.���7�,
']|�r���%I���K�1\'��/�/}n(\z,Q�$u	�����*�D��NM�����]q��f�"��$-�S4+�&b�k��i����W��0�^��}��a3���J��Os�wJ��#��Q��(;���H��"y��S���?X�e��b��Ov`�#��b���S�����!K:[$b���}�W`M��Ln`�tY������6K$���s�;���AK�{*�EN�(��)(��V`n,����&hl�L�� 2�A�YQ������h{�e�3���A
����D+2��G�6-�������������\���!*-�X��i�K������F�����f���RS�1�nx�	��I!(p�q:�q�M5�Nhg}��f�-
�}���ETD��a�����F��|�;i����2s�S*�c�C���������U\&"�������zX]z��C���]����x:�=������_���6�M!��C�wx-Y<�:��b���/\l�xP�(����`�g�3�l
)��{�5�y���g����g�K�8e^kE�����$�N��&����5r?�������IN����^e���&^��-�L��9���y����O������s�w������aE� ���R�
��3<���mU�`��ut�?eUS�l�A.	?��M���Z
���3��O�cs��~�K���%�?o��$8���)����=DB����v�k���v��3�����5����o.���Z�M\�r��a�oe�6�qw�"���<q(h��C�P�a����� ��H�A�^���L�)��
y�9�>~�����~��oW?�/��fW���������z�M������F�D�|�7���d�'�����t�6��������I��y%����������##|����sD�{��������XL��y��D���+��^�h��q��E&}�u�wW�4���v�����s
~����7u�&���������{+
��bQ��9��Q��C�_��+x�D�S��V1�)����P�6�4�
6�=_��t�so(�G�]����'ENF�1�
�����-`�����q��I�E7����E{	��9��}1����t��^@��G��fL7�I�S��(�\����~#H	!h��.>�j$`���y��/��i��L:+��R%Wg��&h�icl(	�2���G�W�L_|���������NW��f:����^����������b
��_	���e���2m�]%m����0k�l!h[�k��,�����p~|���/�Y�H����X_�(~��A�R�F�,7������[$/qF�#I���x]��Y`7G��[Be���Yyk>Q}��b@�O��x�3�K{uW��^��
�&l}����a?)�����J\U�>��DY�QG������QA!}�v����2�g���\�$-�|B8K��~��.`	�9������YP�|�+��u$������_���Zw|���B|O%w!�TZ�~�$z��-p�1�9`>k�@�cZ�`���/sG�f�������7`3���M$U�Ydsv�����aa��9�����[�������'���������Fx��e�����w)��"
��&A�MT�`�B���8Ys3�� �0q���V��#��5�v�$���6�����0����zq���m`���Mc\��_!�uY��"&��0�"q���
6��(�P�����V��jfBf�a�H��O�)��o�)
����A�����0�0�<�>r�9�D.Z�mS1���M����>��_���+,}0*L���0�r�O&hz`�����X��u��Y�f�z���X%L��.1���r��<?���
�'�X���t,��9�D���_q6��:<i;��%�Z��+XsP�7���H�,2����`c���O2����m'���!6�T;�0�M^��IT�s>oRUl�J��N������8��^3�$�'S,?�d��&h�J�D�z�Y��<?k�K���k��0�����s,Tc9g����o������,1x����.Wy��{�n\��-�j�{
Ut��#�ej�y�w*��	�5��B��{�?��aq�^J��Gb��m��Wf�_1�=������Y-M��F���*�v��S�:���|�'��M^�F�%�a����N�����"R�����a�'�F���H���w���9mp�� �u����O!�47����m�����QN����NQ	d"������<"'/�xwO�k_�B�/������C���;���j�O]T���������a�K�Va�[U#"z��7=���e�������I�I �We�C���R�Y�:Qy}��sW��������t�`�x�}��N�p���
���
�_�H�9`���R��X���#�4j	��%�c���C���Hh4�]=d��2���q��
��O�}&qRG�!��~�='x�,�5�R���ZVvD�{TH�k�*K7��%�f�����_j��'�8w�I����������������Q]���I��OZ�v����� ���[��i�mO�i�����GN9�r������w��E`�(�W���@w*�$���Nfm���:�,�#�K�Z ")!����������QM�FQW�M,�����
�:�R?�����������h��NO�8�=Nq�)��trg8e�8�S_?^}�b����
��������C�*:��U�}T#��<L/R�����/`�p����1�����y*���5�4�&EWG@����`p�����~V:_��e��>�����#����*e��'d]P\e�^����k�Z�	xt `;�e��G�'��>���=G��3��Y|��J+3w.\�mVd����BS+��la��K^���Q��M��VN_we������������N����k��N>���U�^1�b�;��6[��
��k�~�����������^�����!$�����K& =�fTp
|rp2�n��������_��Z��T�{���{(��f��/�*!��Ww_�bG�	�������.���}�r}a��_�<��|��Kp�Y�l_�W[�E�C5��;�����[������(q'}�*���J�u���B�����R��*�g6�f?h��C��M���@�e����[��Aq�����v1�+�>(K5��J�!��.��+��s� AG�9��h�*��K�T���s|���Y�z��a��o���d����(_%�����A�T�g6�+�Qvy�_��Hb�{enz?j�
w��!��hb@��<�!�}���X��oo����v=i�>�;���#�A��&����x]����J.��W�|����<�������lm7xHa�HW}���
��wvt!a=v���BVJ
.�X��\%p�m�8�#���RT�IO�	����+��f��:
���W����������n��k\�x"��&�\��0�mz0�l���ll&!KV����dC��v��n��x�����������so�J��B���}%z����X�O	����EV~
%]�x��:E�<Ga%�g���4��h������	s.yvp[:���IX��5����)7�����K����Bgw��&y�!�����$&���8k��;����������?�3;O�#�_u�
��6i����by/v�S�
\/$�|�x�pE�\(c�������c�!�a�X'��|���Ot�w�O*��*����;�qW<�#�|�L5Z�H��C/������=�N�M���S
�Q��+��X��G(G���D?��K�-r�3�U��Y���3������m�@�?WP�-�%Rh�����@�w�����������~�@Z���=�������:�q�@��f1���������Y�L3����G������3D��_|�yCQa+g�4�R#���J?��%����s;b�F���M\q��{�@�c<s�R������$�i���~�	���5%����;�J�l��gT�^�]�|��������I;����v���	$���t�L~�x2'�r����z�VP�J\�12���Y���E���HMH;�������~��mm�4�C�{4���G�o���w����__u[�S�*(8���������W�'#@�f�P�szu�)|i������IX�
pvG������+���Z�n
�jCZ����0�m�-�hy��A�,�Z�F,u���:�.e�Q�T�wo��Y���_}��S�AC�;��JDM���T�u���c����A9��)\`h0k���H�@?/?'d�)�J�}q�y� ���oF��K��IA�D���M��"�Wq������_=0��kH)��KM���s�T�="(����
���4:c�����e�xV\
�2=z4r����2"��r���,��.b�A6X���P�f|DB�
�c��:�F�U��������4	E>T�����~���-�3�����u;�1����H�H�e�ZSh���(`�3a5�g��3��/+����j$	c��3JNn�s��3<z_��%`�8�q$�/?��&l��F��uJ�K4F������W�2��X��K#v���t�&��b�J�)�D�.�Uo��3������A\9���Pm@(��PM�����y��� 8F��t�~So\����
�2���}E����l��]y������E�o��.��s����T0OMj�������O���)��="�A��h��Ml\������!s�=�����?���;���Y.�q��+���������������&���I��"��a�f��@�����"(�v�W{����A(���j�l/���+6iM��6O,���	�������?��3�^Ot�S������G���I�V�S������E��RP��(9����?*��X+�������D���r����D��	q)�]�Q���i=������!i�1����������M��������j����!`�5�[�����C+.�v�s����	�E�ns��P�Z�j=��8�X�������Z���].y%�Z�.��!I�6�"M��e^[�YFB4)VwvH���B����j�)\��=
�c�o&�
��V4�����/�\j�h�C���B�* w�k������H�.��*��x��ULx�s$�|�k�]������NxV�!��W��YE�6�U�E�W%��t�h�"L�&S�c]u$�dU��D��S;ma�c�s9��`�C�O%������+����L\B��O��9���9�?�d��;1b;�JC��7��B����c�����Q~� ��t����|d�b^]�#�|R��\����i���cs�cn�p�Xd��')�o����?c:��	f����U�����T?����{��H��z��������@����h��JnuJ_���5��{J.[����W0��`�(���Wt�^0�����`��e�v�k����%<��Ti:�_E,3n���3�U�yO��������I����;����5[`b�q����)s�&�z���<z��k�\t'���7U����_��_�%����+���1�������>��IB����BP�+0Z�1�B[X5��&#�����T|����s�
W������T���_���B�	;��<�eg�����W�S) lE:1��'�u8��;�/���
iC'�{$�*�	���	$P�<a9[9-(2i��4��6+��x�������
�^���1�������|B*m���)�W����&�i�S�S3�e�a��&�>Y)1�V�8
���&� ��!X*�*T��:�y�%���~��26��)�F5�fX������w�a�
~�2������TBtzO������n>9N_*�O��j���k�
2�#��gU��+�Yk������c�W�fMRp�����R���mq����i�=Xt���.�?���i)X6P�5ExB(����4���W���qC''{�����\\}�����0v�='q8)R1��v����;��e(�*�v�VnM���M��lT<k��]"�������d9!R7�~ygkY5�e^EQ1�N?�U�	��o�_�ZO���*�kv�}������u�����~�h~������u�kv�EM�f6.�f6�O���O=�pXf�����n`����*�����5L��������N�|��A�||���!��o6��O������)���	R�M��O�x���u��������vU��hZ_��#�cb&Z���e��`%�tX����C&^}�p��?�N��Sb����X'-�8vR s���
���k���
�.6|�s�9:H����9�(GY�
��)@O�P(��a���Wlf
4��O����^�2�sc@
�$[�x�`6]��9^��?F�7��|���w��w&��E��k�F�CH�
�j����d�c������z|��}�b��1VA��NP�����L����
7	�<Ra��]�S:k���s��1������m�U�\?��<L�v��M�v\�[�����!3�����/�;L�Y�.N�?o�L���a�t��d��Rx�p�cE]��D3^ |&���������,_��],h�zs��+P��)z�iN��P�C.�OU��7L��c�fk���u�;�g�hh��l�E_�&�7�hE��P%g)���aW���Cw�#�*���n���y�����Id�y�~�����s|�e��8���,O�V��A���k�Gh�"�]	�[�2>o��x��j7�,$�
�b���L7����3t�*)���������e�����*�W�7`s�Ak����������M��'��LR�O��g8|)k��
^z�<:�9D2�r�Pps�_��S�k��4��Q~A�����{�E���Y�`����Z5@�3������Y�������
��?���G�* ��l�0����n�2$����7J|I��3q�jG5�3��JF����'�Kn���F�����,o�����yy���}p���y��������2Ezi�����O��y����X*���k�� S���<����}Zk���&��w>�+,^EX��^�����`%�����}�.�7���}�kC�^|�y����)�k.��S�-0&���������*B��Ml	#ut�����t�J�O[xh�_m5������=�X������M�3��9�n����yZ�N��k��2�@�z����J�d����X�7�4��t��e
��x_��{d�/�Vo��g�����h���j�Y>�5��_�$����L�n	���������+���q�����W�����,[jj��*��7~Q
���i���V_�Q�+���)������W�]��������/P��_�����-M��v/��f�_�;}co	0���S�5�4��91�NE����QI���X�����p�������#m�H���h�z���;.�$>��`�Mz�k����(����M{sxf(��[nP�m��S�-�t��#�������|���
��|t�����O||bi�� 'S�Y����xX�6��n~>��W���z8��cE.1AuV&|��T�����6%����1p���Wh
���
xKs�������k������] ,	�X�	S�>�-����{�����BGA)A�NX�@p�5�]�����@:������Sn�e.$L�Z����8��.'�-l�y`kj������d��x�E�����������o�~"}��s��T����*	�X�NV�!LZ��F�z~���B�=h�#}Q2�K7l$�O��C��~�L<w�����j�Y��7�@�e{�T-��'��=�1*��AH����w��D��������)��0�pv�~aJ������lU�4|��z��n�0�8���c*��U��'7��c��*R�X�G|�h6�l��YrZ�X�c��Z:d����
Q���	$2�G�7��HM[�5$��\�/�-���*Bv�mo�!t��0� ~�0g�%�1�4�o�����KO��@�����Mj��}�����T��o�US?O���zO0��X,�p<�vZ�Z��\~uc��8��[�=M�+�7���cK��5���m�2^������t��N����������������I~7�{��8D.������1��?f��9S�J����������k$7.b�C��+l)jQ`c���<��4jV���!����������Vf/-DX�m�=�j�6!��Eh��|�ty��.v�0���������A[)�H~Yn~��^Z94�����>
����y%�c�>���,���p�6�Y��
��3�Q�8{�������`��a��41��#�~��NnxR6h4�����O�����x����i�H� �����89��F��8Ux����(��Nu��8
x�
�NZ��K:�1�y���a�j!��wb�8/�l�uP;��G(���l��-(�
�
��bwC9k�H�����1��8pw�����M���edI���Z61��G�'1�G��������_;��%3i�^6�}��C������!b�|k�#�KwR/��G������r�y��q�iL���+�o
��J	���t��N]���p����k5��[x
�<����1��y�l�
����K~��c��nP�;	`�1�~���q�0�����8��zN�Lo!q
��#;�a���6VU=Z�[��Uf�	c%����Lk�N�B�����0��ZZ��N
#�q���a��>������XZ��	������q��5M������Jx�nK�lT�R���X�LG���^GjI�8
U�<�
4�tsN��A���B�yo���&*u���{]l�3���>1:`�?H��CW���6f��9>�����p�����d��3H�_�������Y���'E���������P�,H���e����P(�v��N�L>�)+P�O�J��?�����w������	��}(�,X# �d0���Yq����^�A��w�w��(]������R�I!v�
:_��� ��Q�Z�{�a`����g����=�i��!�>SS�2�M����Z��RH�.E��.�-����)6�or�c}�7nndgS`v�oM��z�j!6���`j;`/F��H*�Y�
KL�j,O�TV$<F����d�fp��E2D�%
@��;r&�B��<!:��������Ie��3'-1��#����C����3��p*���\��ci������.��Ci@a������~����O�:���4^�3��Z�X�Zr�}YEN�0��s������*1;H"~u ������I�r��OD��g��������_b�ni�w�`�ZG�������������Q^[B�P�����oO�K�i��BUF�I`U����B���4��2`��w#�]��p��;��2<��4�_���@���qI�w���C?�Oq<E�����j�S��\�s��\��iY��z�CD(���1��")�s;��bj�1{��sK��1�i?�s���G��������_(��|�5��q�*�b7���OD�"�.~'��1�����M��g��v���e�P���
��W�Y� �`\��dGt��up�e�H	�08�0c��~�����WJs��yk�5����>]�F�:Z�u���7���8~�4]��J��y*=��G�����JBV]m+��Q��}��#�����q�S��[8��6=p��E�f�
��:A�~��UQ����Tx�
����w���7�*DA%O�������fR�V�+����`�)�8����h���k�9�,�E'G�39�yLV�~���ElZ���H���qN����Jp��tL8R+ ���v�,���7�Y: �+*�F��Bb�Z`��M����L�/��y�����R=��q�
����e����9YI�'�X)H�0�oD2�����s�U���_@
����������x||N8�z=���Z���<��
|uy�AW��2�k��w�>�	\��Q{��fL=�Hk�7����mG�����Z�Kz�c�S���((X6=�!|���:`�Z�����.�U^�Ek�D[|iY��������"������r�E��A7��56����������(��&�`�������L�v��tp���&�y_k�M/pj��6NQ�
��@�
����<m^����P��Vp�����n*��j�Q��F�BJ3�@���[�Uw!�����$ ��+�Z��C�kA/�a�L��	k"<����������&;���
�>�z%��\�9[d7�"J��y<��9�T�*w��h���Z���]��dY�����[����qG�b����N_�����q��2H����)C4�c���.���>����8����}.(�(w�)��<��E_q,�WKDc�|^���U$���Y���4/�'��~H��t������`�A@�bBkE�N�y��x������{�x<!T.����g�b�q/�#�f��x����������ey���:�awoS��w�0Gr'����C*�H����_
mY�N�;���L�
NN�� o-��s��;�K9���v��J'����vx9E�����V �B�T�����u��l|��A��)��U�X/�����Pp�K3���-�,��<�?��'|�fj��N*���K�oI��������8�v��c�M���]��q�4� =�q�E���l_�����!e��<���K7f@]nd�n��+N)����
}�QXUkFX�l�m�w� ��fCqc��������g��`S�:����/$�b�%o<�n��:toA�E-��2U�@3���Sxq�0���M��r����S������ -r�Y�����zn�d|K�j��FLk�q�����n������C�O�*�7���R�\cY'�U}H;���xu�P,����-�xq��&��\����?V�5Y�[�����p�tw��*��������Hb���ry�7@CTP����a�fb�!����������S$�h<KL����1��e����r�,�`K��^��w"�G-�GC]�ML����k�_��?>�J~����M�o:�;�B�Q����9![���{�W����%�[��8�|�zud�b���� ���__Km��7{��
���0o��Z���U�7��
�J���i|��c��5�������9�D�����������
��^���s��g��9g�gfv7E:>�Fd����Y_nkF�Fm2�w
���1n=���,\�]S����,m!}I�y�|k>�X�����:�����i���f���l��jR�����#<�p���Y����G���?u��2a��:���������G����8��"
]���8BL�0#�������&��2���O����By}�%��6��^����f}�2 ��`U������D���QfN��:��"�Y^)l�lO�	@�s�.����S��w�y���=��}��.>nG��"���5��;�'�����>�@��@���OQH��
����`��d)f���J]���h����4������A��1{�;`�Krv�P?�#���Q�U�W�9;��K�O����D�N�1�.F��Vj'a�������y�9N�\@��&���lnRr��	��O��NZ����L:��R�����n�n���3\������VM�7�k�xBg^s������������]
��a&�w�Qao'��t��x�b����0�b��K�����#�]sl`��t�s!}��
�r�����������?��q���&���L7T�\~e��)���Z��9�4��p��_�������u�8���NY�&����)����ih�E�c��q�����]����y2����Q�
|n��;<y���P/�7�����
��������X�������R��}�3{p���O�9����a!(v���d9�Eb�2~��o��z��Vq����������e����m�G������	'M��?W)����a����D
�@)^HB<q�V'!���TD e�~t��L8�(R��L�;����>j��G�(R,��T�C�60��� �
{-E����7�x���D�'=!I\2nsX�6eh����F�7*#���|u#���:�H7�[]CT�7*������+�r�0�����Ta�{�w�����`Q0Jb�1m����������}�8�$y��:#����au�XH��������O�gF+��T�s?:rY��z���U����x�Z��f�J�y��CJM���R?�>N�
"��C�	�������wV�:Bu��`���m�/��$��b	U�)W�z�[�[����y��.����DW��A���[$�n�]�{�/��p�NW�����F9vs��uL�)���+7�H���������5o�Fl��q�l�=9+�N��A3Go�k����afFs@�����,�������$&�~��i9�?�%���
!���y0�[�I5
��
�����F-C��[N��ka�!=��3�\�<������0�2�||^b� ��`�I���b�0�M���>t:j�|�����zB�55W���M$�A-���
m�r�`|����Y��uz%�[(��� ����W^S�Q1u�l�|E���G��}���+*-�?.~�vsh/�eo(K����k��#�*>��w�Q(4����&����Yhc���R�i�B�v*��4�>���K�a&N������2�O	WA
,��H��]`@�WF�A/�?��H���k|���s�>����,�����oA���k���*��l!��P0:�q:|�q�1�e���������	���)���Gm�Pl�� �GHE���%>c

�5&�(�*�@l�1�,��5���#�"F7�&/
�S�n(U���c�L������������a�\���������rx��p���0Pe�����H��������V����o�4��zUIs�o�9���t����<�5�m�:��H�������q(�/��<���"\<�|���C`��c`���@�^�s~��X�D�+��78k�A�P���n&�,kN�����m��x�%��@��m�0��������fJ_�i�m8��y�
�S��^�s��Sj����q��|��� n��sia�
���������!�XNxQ�:,c�q�6��"�����E����!(�C�������$��L�%I`O����)Ix��21�i���q]�
�a��mZ���&�����.j>x�"u;tJ���F�<�:��4�X5[�8�G��k&��!S�
���l1��^}���y��4��5t��w^{*>�����pJm���=�����N���w�`sj"��)�8
\;V��#Z����pPS��2��)�x�m��������$<�����OA��>���������lv.�&l�2�S��i*�0��>.������X�'&�p�)���y�>�9b��$��Z0��L(���~�������Ts����bu9z�_�����tm���r�������!q���.�=B���A=�W�E��<������:(R��aG$fj����%
�����a��1���	e���c����5�����b���+��~�����|u�" �7D���zt�E>~���q�b�!��WL��n7?�O�����W_�P����d��A����}a<DTR[	C_JT;�.C
s�"���]AK���
|q%���{i�=��W��?H��=pm��s}�gZ��&��t��U �� ����?Z����w^�i�q�>��j�j=-.9QF���\�n�
���qS�g�6���_�-,��y����l�l���N�H�.j	H�>v��"T(-n�v�67&3����������n�|K�l�2��c�<��a�74CD�o�o2�d��8%��c;<��^��/`K,�;���0L��p[�!�n��i������D��=C.�	��_>nnE���K��C�H:�
5���S�*��.��n��GrW��=����9�����c���|.����,�s�X��<b��"��
�z��iZ
���X�h���>�,ic��L���9�M�������A(;!v��B���-K�5����5'iL
�&e��	[����u0YJ|����cBJv���^M�H����|���=9����OV�1ykuv����������:%�����:���u����U��MF�)�|�D�O���0[�X~�iI�P8gp����X=fU�Q��+/H�}�L��,O��Y����-�b�v�2�3%k[��Z	C���
��8��`��yUa>}����L�}U��H@�X}���
�`��W^�����Z��fh�J����q�����4a>y��9�>l�H_�@���/�_���)�_l+h��c�U�������W�3�B��
��o�_��+��Na)lB��j9A�au\�����6�}0|����$���G)$�F��_�������np���C|:?�a��|������S$�
X"&9�rI�E �.�7�S�Q����`(�20D�>�d���[�����!O|��np�:��3���������xS��m���N,h_K�M�~�����CO����WwY_�m/���@Qc��02��ID8Q��+{`���c�<�X	@H��xI������[���v���|��!����~��NP�V.�3��\�,Ec����D=�@�z��1%����A���`XH�h�����|�l����	�������c�=��IHRL�\@��+�)��b��m�T5qRV���;z�Ys����sf���9�T�M�#���Ys(4i��[R��Y��kCA8�}��c�0��bm�+g�#+O�S#����.��8�[�H���5[7�I�wV��C�%�'�r�`�������r��oF����P�?d�@7�H,E���[�6�r�1`��b���
5��fk��?�wiM�W����s�{���=f�J]�����svU�s�h5����_��\���%��1�{_�K�K�2����	���/3�)^���r�P
�����������ZR��J����ace�
� ?u�4#��6�����`��<�|����.dV�����9:@����O���F��m�q�Tez�������g����/���A�p�����,'���y��^bg�%3�E	c��s&����m~�������f�=�J��U.�p����&#������c�Y�Q��5��:�	���Dyu�8��p��0�S)�(��V����_�g���a�F���lty��
�s�e>��jQ��u����'���i�^�����V���#�Xhl����%����"_��.���uD��r2�U�]�cdvl6C���c�!]�lQ
�	�������r����W��
J	
VZ�.���O���7����&o��
��t�}�5U��e��*��k
+���Um��9=d�����u����k<�5o��C���z�C����r�~h6���P���}��|�-�d�J!����������b T[l�6Q��|aK���p0{���������;o������5k
�$����\����k��W�.u��
�a\)�I��k6�phZ7�v�O>��^<;@��Gh���w�6�6�������96����A!2��������_
{��
H�&O��������U�z1�,i|���T�7�+�����=�1*����$����o7���~��]D�cAp�����	�_�P���Q���P?}a�#4�^x��4u�/=f��;G&�p��
��GG�	�T�[���Q�����D��
�g���U����s�_�Z`����$n
f������hrgo -x�������`������$|&�V2$4�Z`uN��I#_'v�SN�\�M�b�c�����x���_|6���`�\DocC/�@ia����E��T�K�Cc=��0��J,}��B�2��YFob��������5�������c��	Q��(-��G��b/�����*�+7u��c^]�$�G}x����6�4�N��RX�4a�oO��1B
j���67��7�	����)�~����c�e��g9v��`�cb���<�e�d���? �N��_����
�����!�����1G�{�u4����g8�6�>�ds�]Z�s��~�-�d"\��2=�?���M�<��b�$C(�b7�"a�v�i�O�&#����0t+O�'�������A��Y|8��/�����g�q���� �����=�91��!��n�;AZ��@�_@�6�Bj?X�DO�2IZ��4��EC|��n�{���Q���_���	����v���[~��/a#�~"�p�%'�����&�L�E	��C���^�=^3�����_�$XwBF�)�?���_ne�Y`z
*���m5�o�I���'J�DP������=P��Q�o��l"�B:+T'�H��p����m@�[��&����]�/����vf�`�W��9��]&"9��0"��n�%1�������{�Zf`g���Gy�����"��iq��H����-tc�	�,���a���/O��
���4S]Zi~�o�{��$t�R�����J�x�&�+n�9,9����~��Q�B���]�"������pJ����E��h��(����>�fz2cY-�����en�.�e��G�P�,s:m6yr�,1��i����/��l�p3�����?�����h���\+�9M'��������V���]���K��OZ�b����z���i�$�iD��-�������A�o+��3��NK���3p*�@8������Y<�������@X��~'����DO7n�	��b�,#V5
��3X�Z[����Zp�S&�s	t��-���Y9�?�������P�L~�]�Q����5l��XC�X�sF����
�"�h��-��^��
?������dt��F���x��S�P��Mx�.���E�� �I��'�d���t
���4�R��C|E�)�������Q�3[y(#*c[�,T�w���.�����~������_�Lk?�]~�9��sb�?4��E��F����.G��� j1���%?l�9w#R�ME�������B�
�]�4;�J��A�Z��|���`�;���F)��a�ql�@��D�V��j��@@,V��n�^E�������jt�l~�����$�!�l�R^�)6y,z tAN�*�`=W�i�Z?}��K��"��@�p���o�3�Ms�c�6Zm�������i���Ji�E���G�f�F#��tK]�M���]R
u?L�V���&)k�'m��F�������X��:�/<b�t���o��ft����z���W�'�D_�h����	S�>�)��t�d��(�{$����L����/�|�r��%t+�?k�.����N��o~��k�[2�����t���������e����|���B*�����C�z����w^�O�����>0��H���)��jL���3��������s����2|z��k�Z�Vu�F�����lg����I�&^a?�G�c��b{�q������z��K��	�V@#���v_�c�%��C��>V��>����)����|
-_+�[<e��I��&j�����_>T�e��'�~�w*\}����w�H�Q�1�<����Z�6�����
M�B�RxO)Gi�m�(�n�
y;[E2*��������B�e���H�Ll�D�����/	a�zW�:���L���$N��|����t�j�z#HH�D�������9T�#��h�/�E3v���l������=�?2_h��5�}?�kFb��k����	���=-(
<�a�AmEQ�YF���F(�$z^��Xv��	F��R��-��h�J��^h����/����%�a��p���%6��4;���_���wi�Xhzi��F���_l�w0N9� M����M"��kY�"�e�!=A�$����t��}�-����4�M)(J��������YY��Rs�8$g�aL	����P1C�D����D$= {h��4�-�+�������xM��k"/�uG����'��@*!�Z@�E�x����`���c�Y��'K�����M�c/�!���_�pU�;g�/�����T���^����DO����
=�B���DM1
��f�9r(P�O�Z�qe�!^Z�����:}^�t;�e��V�Kh���nO�4���+��E�U�k�9�.�����.]>�Z���:�a��p���'��;.��s�X��+6������N��/g��{�����Y �N8��S�i!Y�6Oq������0$��m%�w�:@Y��M�S��.w�M������@l|_,$ur������1R|m;@\���1�'����o���KAi���;��I��N
��op�����>Ut�������i�Cm���-��c��L]t�]���,
d�m��t��#��E��E��2���GJ�T,�b������(���_�s�F��&n��=�!�������
�.��^Q��C��rwVUw�T�������3b�#y,��6.W��b2�q���9�U* g�9�����`J�A>��8���!]���J��z�����b��������������3����H+���Lf���E�j]���
]��y�e�������+�]Xw�!$o��-E��1e���jI�����w����LW�D�h�����	m���o������<,wmv(�b7XWS����`����-'�t�2�qbc B���r���0���B_z[vX��7��S�EV�j1�����!��K���&���)4�]OdG��@|&P7������vZo���y��<j8�,+����������.Q�$$�$�Q
)��&m}�QU�v8�1k��]��DG3L��~|6DQ�r�!������*�4�X���e{wb$�����������b����F��s
n����J�J�B�[��u��`.�cz|��xY���.�%`��#uzBM�yM�G��E��p�=���YG������*������!�F��j<�����C�4��E�}�����o1z�|A�n�z���]�D)�����bk&����SH1����2k�c�-f����{7P��1%�#�a~+�x�$D3p> �?�	���,$��m��I���f�����[�R!������1�q%�G�S��M�1�8�vrwL�J �����_��vl��P����	��$�&b�������6}���;������9*���q���#�����_��SJ��jpd��4��)��8�3=��,2�Q�C7��CF;�p����\��g�/����(�z ���P�������x@�g�n�h����8��0d1�E������RE�-;;zU��~�A��q�����`�;��I�+�G�D��|!	���q�c�1�:��������kn�.}T$<k#>�2��-O���o����3=
^ �7����7������Z�N�N3��Q�8�����>)�wL���H���UY�2
���N����N�q�����<}`_�@rL�?����.m��4�=��c<�mO������Q��/�Y�
�lE
��w�����z���x�Wo����/��/;4��M-s����f��$��5([
M�@��0���d+)�vW='u�l��je��C�}�~��U����^��Z�N~�����B�@������$������K����pN�/��K����P�{Z�\�?����7����(8����@�F��te���=�K$��;�J��6�b���,�Dks3��G�>ly�F��4x�
'y�#]����r�i����:?�����o�f�LAr
���e0)�6����P��\���#A����7��m���m�W�s�/�v��
�����L��]���G�;�r�({�"S�7�W
���_}q����������vvIX��a��#uR<�:�v�Z�?g!O�����jI�����^�U�cP�1��1��1���|�1�r(�J��~M��
P'I��������>@sQH@�<� oM�a�j�!��!}�Vz��AE5(v6hb����|�}$#C1����U������J�a�(A���/x�V��<�I��K7���i2 X5�^������I�b�$(� c^������9�k����;AE�K�D�w�����o8�.������t�m���n����kIT�R �f�a����F���A^�IW,-�����9)�E�}�e���k��m��%�n8��B!R@�Ul�-�g?�����#y��	X�ZA�|����f�bO;��e�\@md�3-+G�������$��s�(q��v���q����.��#I������Z�I���st������)����j+r#3�L�	.�J����f��^`^L�]��1�V2I�.�&�/�@ .������P��������y���#�G�6B�t4�����N�\;Z
�A��L�a����*����	���d���	Q&. W���s����9_ �@�)oW���(�^������U�]��<���l�h� ��[�.Fbo�7�%F��.L�]�r�T�*�����-�m����J	��]�2eTn��{5[��v���>����J�E^Q�;�L~�T�5�G���v�;O
�F��;���C�E��~&�T�\��/������L����������>~���TM��_�	�D�zed�@�3��G��~�(�M����)
�<���Q��h)��V-yp����]<���m���i?o�3����c��0-+P����X�n��-�ZHP]��
�t�{k|��8&��Th_M	��'�|�2vw8V��y��O��6-����
�GN`�P�0��x���T�t��R5�sm�L��-�>��c��8=~���n�Rr���x��I�u�v	����R�s���g\������5p�A\=~}`���u���+�&�7��������(������X���Ch�a_�+L����a��X��/��%��[q6�������n�^�M�������.b�B���b�x��:��q���FR�}`w���]�m�8�D�����*$m�!M�a�1a��{��������J�H\��Y�M�WA7Y�L��w�����$�]��]�����Y��w���������K���n��DwN����f��|(&�����i�M�p��X�Kb��|��]�,t�m/�l�D����/��e0�����4���4�?cx��!�S���L\����(�s����EpZ/��^W�^�*��q������1X���9����1���nQ~R�?��*����`�9��X����y��L��<g��h����(�o������ $����p��0M�*-R��1����JW�-�n�^S����:��������q!��exo������\�
�n��N���������'8_�
"��U����q~����W>�����f���{�.1k%��H��}����z� \����T.���g��G4{��$b����1f�=T�:V���G����3vW!��%�C?���R�3T�}bi�?����X-�����r7�!;�����K�T�<��m�H�����������W>����P6�>t��8��Koo%w��y��"3Ae'�?�/��1Vv������5���=T�Hq@>��b��S��zQ�i���w� ��}�����fVU�t�$;H����
Oo/(W������AO����[;�K�P��{;�(���E���+�|	�j���I���PK	���E)�f�.n:�����~���{����7����^�������k���%��[�l5k���Q��	��f����@�D�>4%7(������������]���A"��,�z���ht.=k�(�&\D��W|%���������Xa�Z�K~�������a��M�6�7)�`��D��qEW�I���L_�����N.�N�����e���V������
�uF�r^���w����Qw���7�_��	VO��h��l"�evo��g�V������k.{�p����n���[��Q����q)�zk���a8D�hzFH�2a_���z���L����"����@���)4o�ZjL��^n�>����m��
��|KO�z���t��.,R�>Y����x8��C���&����[W�p|���*���`���>���g?E�{�!��B��X ��.x9g���������X�(w�SB�+a��f��:�&o�l�4a=Jt�TM2[�����I��}��o2��%]����Kr}����>�e�����j��`��w�����
���c���i���-#�k���HXd,��$�����w������
��%s��[�u���������C�m��R����f�">pM��@�=]TC��2'�\�~�����W\KQ`��Y����e9��������e���9{���y�3-�z���S�V��I�.dhF8��8����K8���[���)��,�m3�?����}�G����.$���,]X��U�ji2�G�z9�o���cp�p�i
�0�T�=3�n(�66�b�'T?\1�o
�����B
�Ipx�������KA�u��	YX����x9T�r�v�4��.����qsmj����
wb�0��~��=�Cr���\�����K���t��/�|2�`1�%�4�����+2�ZZ!��5���k�65~���#�=��f�]��51�1��e$�"w5d����9�M���#-<������]f8=�~G��������h�j�Ga����!�0���'h�N� ��a��4��o6Y�(����zf���0����ik$�+=,�]�����	���6��c�-�YS/�E���UqZ�nq���M��x��x��J/m,�_�w�/b��:yd����e���Q�z����
��]���)���~<�|J�go�$�;����q"/��/Y]��� ����%	gi�F�3;����V��r���y��_��\w ^���/��e�Ta-�-���d(H���g�ax@j��*��A��n����0�z�����i��������/5s9<����a��<�T��P�@�����r��>����!�|�2�h��:[�����s��:��0��ml�+�������G��������}����u�������
|
��Q�@�veW��{�����}��z
�f;C��'����� ���Do�N*D��l;t�������w��5H�>hK�F������h����#E H���(��a]%�����V��_�������aR��-�  ��X{V8���-t�<�^���xoY�a�����~`+��Kf��V��G���C�KYH]�"����K�Sv����
[n��m��
��j�v5Q���JM��&�K������Vf���p���	b�0��+1�'�5B5\@�^=\��)�An.P;w]Ps����/b"'m���%'5�UX&����4�nf�/~������9	���r�"�(:������1��1�O�7�[���=���������o?U�M5uz���2�y��FQPB��[O�"U:���;U�������6�=����h���k��)dnT�����>��M���^���E�:���Gt.�����]Zk�����\@�%�.�������L���b]�{P+�
��a�8_����_������FJ"�5����(�f��� �� e��l%���b��o��j3�P��-��JF8��������}����5;�k�x9O���}�
L �G�"Ng���V�O�|��w�L��]�J@59�����pV�C�d���'Ju�qy�v:����~5YN���8u�P��em\��cmX���
It#���B�������R�}:�q��_���e�n���j��)O��� I���d�b�5q��G������*_.��� L8��n�m�^���������N��K�o�����G
�|�J�]7���ZU�aQ���T���!�)���6�?F��e����aU
�~��`y�����������:K�#��Q ;�ab �>e�/�2�%�cnD�>^�u	������2�F���[P��5Q�����_�.>_}�������9��VH��D��~�����yO=�v0��b��T������C�q4��zM����^%h����Yp������HO������F����"����aC��^�����Z�8�{��X�������l5!$H��d�kZ<*�yi�*v�[�Y�rF_z[*�����!;OtA�&�r=�������ht�-6��P��V�,5�f�"V���(��f:1���J��}��%�Y��*c��d��+Ag����.�,��T������Y;����Z�Kz��>.��sG~��k1��#��l�0�{�|.8���R�	��Sm�h�����u���Ah���hA���84#|s�?�}�,��wq�J��U�D�y~��Rb�}��&��-��@��1h��'��	��Sn�
��06o��������3��;+��Y&�1|����M~��CB�������^@nf@l�X�V�Ky�Ff�[���������#�;~��}��1�/���T�O�moE1�nu������y�'>�����n���f�d��s�G3�)M\�/J���:_5��Y�r�u~g��U;_�����d%��0}�[��3a����]R�S�bbw�EXmkC�.�2uq��U��#"i��,!�Z,�j$bo�-�\D�g��1����%d�~�E��&��D��r��*
C����F�Si=�%�T�������+Bd�Y�z9��r�d����d���,��|l����SvM���X
8$��W�_������[�Q�p����`K��p��5W]H�����<�u��-�CK�+��:��%�N�RSR��&
����X�����K�������6���2�
�N����'8��G-�K�}��l
�����/r$8�������^/�+�a�#R7�:G^�����T�O�[�R����9�
��K��^�J��>���T:�=�n��k����&L��m�>��l����N��Tz�c��!�|ioW���k�E'���@u{G�f�>��'d��6{U7,�~�,��}��I�p��%B�L�`��'t'T�mg���d��
��(%��4�f�7.����!�(:O���\�����Al�<Ou���u$������fm�����24�T�,���UN���?q�����.�� 1W���SB~�cIA�e{��j`���SW����)<�h���:
����mx�_a�>�v�M��:����h�8���"g4	��>|8��^x3O9�wG�*��hrnT��k�K��v�������]�+��\i3��D�u��.�&�U��b3[L��^�WG9*����rcC����V�����>�t�C8������H����H������D?J�(���&�|W���|����a����D����R�P�{�V{�y�'*K=�@��^8]�$��\�^Tu������<�M�t�H��U��z����I�=��dU)^W������A�&:�����O�)��A>y������z�~8R�k��R�-C��T�����9uUR������x�����$�g�>w�6�<��>m)	%����S%���UFs�1K������?�3E�h���������������l���
�� <PW�@�
���i����`��Aj3%��W����<��@m��L���LB\r�2�J�&���U��+�D�v�!rYf��"�=:�E�@lg'vN����V�����=����n���V�s����Q���x\��Y+�����s�������O������BE�|a��)-E���cM"�\�%������2X���0���+���F���%7��W�d�������3�2�q����$��N%�r�(�N���jq�������5k�
~8ob����rXB�%3�����9��}��]#���`7��7yr<Iv�ge��&:��������_}	��4����L���_�`Y!����\9��Y[�<�m1�r"������^Lz��_x��@�X���</3�Z�xy�8O������
y���P] ��O�)������hZ�M�j:4�	yLf����@�.�-=X�����(h���	�O7���Yt�"�^}�y�SJf��A��tT�3.T�2
�R�R����wm�������p��)��S!��|���:�X9/h�+@�jB�2xk:w����E�
�S�/������rH'5I����>hv�s�����Y�6��I�Q������<
s�*�\��A��~=	�
�.�,��@L�u��?��]����fK�i~����|N�"
�f���XR����LXc���\���� 5�������Z9f��fl���"-u����k�6�6!L�e���1�.���^x���9�����!
��n������0����H�]*����.��`���\k�����9��C4b�",~�j���G�~<���Y+�P�����0o�9'��S����X����=��7I�+��4{�)u|�������^�	3+����wC�s�>E�Y	`4h������GF����)R���yY	lb�<�&9�H%���tF,��p�yi��r>0��t��A0���f������$G��02]p����T�RH3�6�?p
#��lqx����p�U�b���
.Zx94���0��ux��u���xd��#�FP@g�$<:if�����S� X���~]i�)��cm��<-)�
����Q������|J��i.�4�e�����D��b���5��`�f�1xF��6C�Q�=Q�U7b���~�����J�cfK��
g������C�\������zqc�FI?�9>��q?��IG�Q�s�+����C��)�������7,d>(B��m�?�J��
�����O)����.�T/���k��4z�H�����h��POl��;M'�� �-��7�2����aS�C
��v0?������*��y�������B�_r6$l�I$�!E�Rz�o<��
��p�5GU�C���7��	~^ypD�69n�f��S8�m���,^�t-�F`PU���7I��#Y�8�R^���7)����q����n9����r~::�qXP�0���}*�O]��:���)`|&�)���o���E��Y.||GQ(����D��
"�V���C���I�����~�]}�<��-K�����ud��C,�Y]J�)�����Qv�N��\&���OC�[�@���y�6��!���Ocu����eb��>��y���4:`��[
�i�l����k��j0����^x:I�:�6��b>��u|��Ls�[/�46Y
r^����xL��k���MZ8�,w�2ih�P�~��^<��V���Z����Jz�p����A`^�~;���p�1]�n�)����h�����`~]�Y���:��w~��~':��PB��e��}��YY�e���F'u�l.��W����Km������E);y���s�q�7��Jf~�����j��n��������5
���������9���G8"R-���y-v.�P	L!�p�"�L�hY��$n���l�e��.�J�d�������?�L�,���2�a���B�.(D�&?���v�$��&
k*��!��^=��o��{
������Y�����w&�O�?��q����	">y��
�#�
%��������,��?��� ��-^.�X!��|��8M�=37/��tGZ_P�4:�K_lv�<�ti|xr����G��PAD,���T���3mb-�W�K��j6C_���W��Z,,H��9��!�3_�}��XI����G���������E����g�*����"����'F����L>�G��%�y~����V(�`�CaEV���443X�j���X~_H�?����5���7��������Lj6�>b�����~��m�W��ui7O�Y�P��*�l��u�Z,$o%,9+qo�0t��'����Iu��T1P
S	���3�{Q��<7��xnr������A��gFB�{���|��o�Z�>;����s�M���ylwFLQ <-�������|n����.#�r\L��n�z
�G-3��>���[���T���V0*c;
�����	f��'6�2��o�oA�3c��+���"
���|�s/>�h=p(��s.�w5��!&<�������Q�J��!��ng2�
��q�$����S�]�,3����3��%��q��� K����O�[)0�S�%��i�Q�IF����
liEhO�"��H��a��G�m�b��[gb����(O#w�TL�F��C3�(��1���U���j�����=���~+��;.�\�!fI�;G�Y=@�gx���|,���(1'k@K����`��s��*�����W�L���k�Z�	����������U9��b�R��[@����)��2��b-uM&��P��p�8��B6����jA������yvi�Yu��;�d�E�OjB�d|�LPq���Rd!b�#���Z�;gJG�����pZ�maE��z8`����z����Sh

���x��?k� �/������4�������}��O��% ������95�qS��Go=d���a���w�������\���R�OI������d��6���7�:������P��d�>����@.|t��
x�L����y4�c�����N���*e�9�������7qN����
<�^b���;�g_�_:F�"������<-~�Wi��o�P~Hk�4J�3���z�4��X�J�����u�d�)�B�P�
R����Z�.��2E�j)2,�����{^���|�&��&K~W���Y
,���c������@DVE_��7"����UZ'��.�_<\��v�q�f]}������Kp+�Y|2(
�o��`l5-�2����Q[�/�����W�}�6�����0�7[-(8!��g����������^�0���<�Z�t�#R����3��pL��p�d"��O�WA����9�v!��\G�C��d��/fK&\�����������wQ�^J�]�*�]��W,������g��#���yE�$�D[*ca��{���O�7*������P������_��q'�u���9�������D��)���nm�C� w]j7����CM�}�	.�N��v��p��0L����
�k��BkF���1SE��AN�4O(X�3Z��qZ����4������yhm">�f�����=t0c������YP�\��C���r��bWT�h#�����}ly��%S��	��q2��������/C���(3��?q���xQ�d�i������ac����*!������������U�h��!�����Q��T����\�(=R|>_\�Zu���U��0vuym^����lE��8�������]�-����Y����-R���+�ztd�
w��!�?�I��4�=.TO���������}���}���
,�����tq�"���?�,�e7��J�Q���>���a��+��@�����6�
A�����Uw����+"c��������d�C�����z��?%�S���d�6��l��r
�5�x.��p[��}����X�:��?M�>l�N���
���V����h�4)�����ai�O�>�b�|�z���������%F���%�I���.�����q8��qqFf����=�i�NO=��+S'�I{��������NP����Ej��nN�6v��1�>��0v�#��������M���Q�O�V���O�^����du8����)���K��z$�
bK�S��O�������O��(��/�����O��O_�c�����������l�!V	6�����^�8�U��an�������.�����������]J	No�%���N��^$��`���W�A<P��$�_|} 8X�h�����2=���5�0��F��'��<�;����Ci8�.���0@f�A$������A���L2������������H�G�������$;q��a��q��fh=3�;P��-��,Wo�S�U��K=��lb��#�VQ�I��i��J������S?�z��������0���7,S�8uO��0G���Zf��j�'(���+�����k90u� t���d�����UE�����f�r�Pj��LW�0c��In���X�lw�T�����}��&0Y~�%�%
��@���=��v0���n�2�2�9Gt����W������}�d�8
��d<*+�Ip�t(`�[Y*�\C�|�
����t�$i*$�H�������Clcc�-L��.%o�iEb������:8�� �L���%�����j�n��t���|'�?9;��c���-�FJ���m2e���A�Sg�-������q��s�Q�������N`WX�|>��jWfm��m�X�c�>��/�����#�xxx�B[�L�/>^���)*�����CX^h~;��M�?�q���YB]���������G��n0��j�����->�v����eS�?��y�9�<���������v�"q��W�p�#�K�<�����U��L�e���7G3��F=�Tg?(JnZW	�df����(���r\�Ja�jw]�q�^QP��
]�����Ac
 n�<���<�����=�^�l��&�r'���7N:���%r���_����:U�:��1a����2]��@�~_����nn���FB-���M�����a1V��M����������[��������	�,��%��{����	d�<v�f��C�cn+�H(W!L��M�](�|�T
6�	��?l�*�;�� �s�kBP%�Z�CB/+�
-���Y%���/���bqR�����v�
A?���-��VE����j����G�@�FZ'�������}#�m�:J�Sp���,��a�fb����Sm�v�a({��Hx0�����@����V*���	�����Ci,�� ��~"7�����NMTvx�Q=l��_�;^��Xfq�vI���X+����V�5jb��'��+�D��i�ya{o����
������������+-��%(H������6��Y�r�.]���tx���,����i_05%`m�@?�P"<un0-�~����@����<�i�(���6Ufl����/]��G~T��0#����=T���9�����Fp�K;��[���7Z4Nh��Q��*q��[��#��R���|������?��vC�G���=���m���9���:#��2e������4�]��:>�K��6O�61���O����K���.��s_"��'�S���1�!8���)t�_�&k���M��`�i5�FB����"x"?q�Vm7y~q�H�&��P��a���������Z<����kv�����M_���p���T���1P������M���B�y��^��@1���3[�5�W/9��;`-�
qlN�M�<f)a�(�_NvL���������[�@+=�nD��7�����~�������>�,����F'>�]��Lk\G�<L ��~�=�#���]<����tf�1��`!���Jn_�d���f��N���5�����+J�E{m�U�Gt��|b��_������di�c��#�D�|}�qZ	0�;�����{��;��pa���^TO��+2�+Vz��2&���g�ft1��W&q����'G��\W�fyZ�Y���T����?���d���^������h�e���������I�[����SD����p&�=�+��1g�4{�N�A�
�|�-U�'���w�Q2~�q��o$:�����h�R�(�|��p�q��|�s����D��hl�U`�~X��8�	���������7v�{��aB>���� C ���'3���G�g?+���y]�}��N���@��B1��U�>��8���D7��Y��I�����Bl�Lo�Sf�{�'�	k#�(��`;t�G��Cl�_0����G��-�o5]����k���}�������^���{�!}�����U� N�t�w�>�:\
��yB��KM��%������bB<��<�4d���Q���r%(�$��$�����E��}�}��Tk����o&[�T0Q��[U�zK�����H����U��H�>h_�W��T`3|�#vr�+��?vO],I��4E����������R����+���4��	a�;iOXT)������b�_"t�Tsc/�#F���F��p��6����$OX"m���u$�Gl�92d�5������W�C:>���I�)�+�/7�����d>.�?P%P�nF��u��2.u�
��]��q���qah��U�����g?�:��
��H�|���]��z���N�����d��X�����l�G�r���~%����E*i%?�:+g����(���	{��n�YP)��\Q�����lv���U�����&O����G���X%W��lQZ\}P2%��-S���6>7�t�Z����d�1d����Wxha��_�����Z��8vW���9��g��d�tu��p�
�-�u���\A�I���%q�[�T�Ib������2BG��_�-�v����y�� ���������OX.�t������\��u~"���(lA���������S���S�B��R����	�*-���t���17�E����2P���K.���;�[�� ��I=|��)�������p���/��_gni��9���i�����t��v�1 R�8��N�fKB�o���������|����bg�u.�B�o������6�U�?�O�@�P/�n��g�_:�m�M<-���!��"%����C�����owb�&k�}�$��<��k��hV�O�"����h���N�������G4��|���
�;d������8���v�{{��K�8r������Y������O�4�g������^���k-������u[���7�\h�I�S����}�`�|�c#%D
���g��w]'����yt	��0�����W�9�|�s$��i0A���_~[����Pm����
��Bcxk||'�DBI�R��p8��co�g��a)�~l6�n��#���a�I� !�w�T	Z/H����*yH�������A�2P�����K��C~�3��C/Oh��l��8fX�T�B�[ba9��o#���f�2�����n��o	�*0�2��`�$kx!���F1���aj�m�&>Z\����4����
�-�����W�2S�������d����.	I��H���0
�HS���?��TQ�c]�F��CP����P��E�	m0V'�����4x��)d�r��IW����A�SS��&��1v�1���"�b����WE��,�~�5�3C��3KC��������n�9�����]lg�A${��e����vX�T30o����LY����lX��kV(�s	��p=	�D���b������5����������/�eJY2[��0���[�A��������������o�'L�f�k{/r�a��CJ1�F�k�A��:���X��W�O[���H.���W����|�&��;iA����n��]��Y�|l��s�@����76T���#��}����M<��4D���M��	���u������MMt��b}(��u{������}�3xp+������Z��a0�j���4�VZ���f�]��E(����+��P]�}����x�+!���r��@��A�i}Z�w�9s,�8�s��3oSH<x�Y=qd���:���N���>�����O��6���n�g��.��Ut0N������6������	=_�xu���!����n����&�=�9G�$x|�%%���m����H�C��X�q�*lW��&4BLig�������f�]�U��s�����b��^y����a�1S�����&�m��[�t������XfZ��� va��{[�V@�Vh��}}r~������U���*���W�!�u��� Zw_��t�����b��Cn6�B~)|����> �� ��A��~����� 	G�o���C<5��>��_\<��.��dn�4	������w�|}�c��E�'��MV��/����K�l��l�������>u�p�,�:��7��r���l>�j�B�6g;�!�1[hE`���q��'�+FJ�O8X�
I�L�%������}�I\$�:�����+��jV:�6�
����4��rD����c�E6?tM�8�������BK��;��4��\�
�#{$ �>�b�9��d��R����5`���!����8��C$�j�B�_���Q��M�N����SR�o���4���;.)���F���AdE�sg�6����v?��^P3�P�}��~e������d�������^�_m`XQw�"�������/�;/O/m�����/z���r���=�� 5��T`�
F����������{�����5�c�HDyFW����9������D?)[��h	Ta����H:<5>r�C@$��H=R	Mp�3�{�W`�*`�.C<��J��c�{Td���E
v��~�	A��e��NiL	��?u��g�xy���3��~a*qg���i����wQ4���M�h��v;u��2��@�J���^�Ny�n���_�L�pi��w���k���nZE*K���������G"c}��JN1)a
S���`av& �MNx������x�=��5�`�t��
��H!���.�\�.���S�C�k�'H�5�����Jt�_���`?sW��I�Y���s���b��eVuX�`����th����Z���dP���k�UGP��R�*,�����P�@%�^���;4bX���;��A+�����6�m��"����g��%���o|��4��P����oJ-i�_��d�x����7�9��:~/������y~����]�;P41Ee*�)�S�G�f��i������KA28����g~���|�������Q/wM{���jO��(�0z�X����#��-n;?
���25P�y��*X. W�����-�xpnZ��e!�_�Z��|?0��!"0�}�04*47�1��U�7����3�������D^�5e��Z��������������R{(�h��]�H���Q(�K�uQ,�K�{�z+���F�x��)xuR�}l�L5q��:z	��5����q������+������,\�B������[`T"����BH���8,����;��h�/�
r� /����nq�'����9���B5SGm�}94����nt�tsw��C�U���j��N���aB��I�x��ak��g����I7i8�XV��(����D��U���@���zj���o/�|s���ok.�n]��	�Y���z1���6������Qd'!���r��h�C�����,-2���G�i���Db�Q:b�6�T��5>]��EX0�H�:3Y5�L��M�/����J�i��G4�n��c��M���Rx����1���8=(������
����������*��-����[X�j��������A�����U��@+�����hZ ��G��ti�dkT^���6G�,C�FK{�i�T�.����nw��-:!��Dy���^2����C�JP�E^D�k�Nm��7�Dj6�.cmF�@�����si�r�^���1!c�J*�nW�k�m���:�X�Aw�����[-C*-�:�S��Ml��Wh��d����:T��/��C�R��0t��o�P���}f�����t�cN�?����]2���la����:�Px}:�J�f��#�.lz�G#(���vv������}uz�l��7�A�ybTeD�6��V5����(����J�X[J�&'�O��@wxF�I*�N���s�r<��.
���)������;��G	�t�f#4O~�����
o7�1�6�Y]0���aD�}IAsVL`)�CJ+/������1Hxv�h�"(���y�����~��JAL��,�M�]��U�"���o���L������g�/���(��=T�x�d���(
M(�G>$�=�_�UAI~��'���Gi�g�6��=7���}��G4	J5� UPk�p��s36:kt����������Sp;,��]�w���c����g�����#n\��y���x������$��XNBXw��7\	)�m!>]�j&�����M�^4�g.K��u���N�UV<g������He~F��B����Y<� C�n@�8��W[EA������Pm���a���Pf�-z�X��I$m����b_w'
�.-��]��$�����0��U���\���]�/���0�4�8�1$)v�$�a�@�)����7�#�4k#��0L�`��x��/DQ�2�m��h(�ER�x�����;&',�����2��2eYL���X�����Q����5�����y5,�k}��S�I��lDW4��i���
�ND�4�h���/�nO�.�C�H��"������=o�V^�^��c�	��'�n!2!�]R�8o���El���H$�c�Y��+h`����8��_��7��A�P�t��]$��Z,�w����f�?~��(w�v�hqj�f��#P|�9�Y�D|i�t7�
��m���=����N�"Gc�S�=9C��iv��x�f�69���)���OO90�0+��,�S8*
���GNK�8)�!�u�GA��P��F�=�78���	0>��Z��l���J�u����z-����� :�+��WSO�}�L���0�C��:8���
��e������n�l�g����M�r�-(��W�v��w�<��\�
H����z=����N/��u��Th3��b;��;
_0��Q����wo��e�~cg�B�@W�^��^�|��%R��O���spMG���1�����_n>������/$�����|�I#hiI�������\��!���	�^��%����,�b0_����T��'XX��S��<��*�M��ka���U�HC��F~2�����Af����as%R�dOz��C�.���6������\A���-/��oR�<^�j@kH�G����P���"���LF�|�q���1���
�^�;B
�G��oa��H5Ts\[��T3B[����iO��Kl������B�3��C����f�pn:�a6����X~Hf�/�[}q����$g.���z�����	�!w"���-�^�8�=�j3E����u�������\H#�i�dj�K�lS7�F��Jbr�0��&������~�8-�
]RQ�vBWV�8\jkf&DyEd�5[z������,o�ut6S�mve.duS88��N������6�>��Ox.x7�Ol}T��xx��B!�.����H��O��0�C����,\$�O����]���(7�����`d6z���	�R�-����.���6������LY�������e]������`��%���a>��w��.�������Y7\���q1�������L����%EjI�U����Q[�DA���,���7�
W|y�l��f��08��3����������S��n�V��t��d@��
����i��>KW�e��mN���yl���o�#��uE�<F��-}X��}���2�+Ir�o[��v���p���,hE5)S�O����F����<s�Rt�.>1\����W	K�#�F�Y���K��� q�X��WTt�J
�-]��*	}�{$���.��������P������Me�f�S�;NIC���=�^�l���R��IX,��&)�Z_�_'��������tU��t�"e�v�.�I�r\i��J��Y��<~��fo9��A�	LQ��,>+�����f�s�����o�����4�&�*@��%��P�Z�II�;�-��J���������P g���;5+H>�69����Xc3����)R��U�j���-���,��i�������:v7��"��udhJ��@�BOa
@��U�Y������3��d�)���%�����~�T�!�|/8���������f������$����3�IF����C�v~�!���0��KHV��h�W�1�.p3
_����c.c����\}��<��z<��0�+�Pi�K�c�r�"S���rrT�_��@�����mT�P������������&�v�}��i���e�������XN9�����l;� �w�$w�,i�6�qI�1����6O�<�m�,��pa?@������KX���8k1��?������-�����(��OD�������Z
��
��r�
��?���
��d�����2K�6�����>q)�|��E�O�DS�Y��l^T�����\��1[�.��P�e�@��e�B��v�X���m�}���T�������O���g{�r!��/��I<��2��^A�A�!?-�v��s�,������s������Gi�Q�v�����A��N�Oh\8������N���?'�26�hl���������l/���#5
�P�>�!&o�BPE�(J���9tn�)�4_V��j1����APn��[��V+W�"o�O���t?�{c��W*B3��/������>�[�HTc������%1�w$���?4�eR,!F5��GG�q?u��:�)��+�]t�}�tR>�k�z:"Y2!�����m���O���	!kIj�(�����:UE��O�T�y�3�`����{���.���UH�C$��f����^+!�z!��"�IF��&^���*?��^l�����
�h<�a�6�b���j�vJv��|���"9Xg[��j����n[�>urw�p�|��;��9��9�QA����`i|��m�#�-�"^6#��
@���{/��-��#T���K���QP�������]�XR�=�����z��a�Y���cR#���G�����Iu�I/�]���e�1x�u���},�����b�Q�3M���.��2B[����r�������3%�����)rq5�?���*��m��>�,�G��_��"��}���-_��������R�r!���vl^��Y�Y�Sa��s�9����|�9�/�e
p�����Es$�&<owaz3��*�~n��z)��<����<?��;g���Qa����^�<������I/s��lOE���!�S	�;:F�4�s�h�%/�O=�lc�8W��{��II^q	c�F�:N�4����M��<$^$�9����0���/'�h���b���G&����t�F%R���n�d���qn�(��m�3�gTh>�����3���������P����H�?)��D%�c=iQNZ���~�E�����i�7QzW9����/W_go����c�S�s=�������5�Xv�I��m&�>�$�����|��D��9J�,�;b/����sF,��{.4��d7��<��za��<[*�%B}��#����ZWD�8������6�r�����S]����-,�!v��'����J����W�g�.��TD���}V�i��,�r�����t������vn~�v���!������)��S����4+�m�Q�3��g��q'�?7������:c�U��2{�r��R3�6����|>�EOZZ����Rr��<<AJ�l�>��Q�I�]E4����?>{��7����B$�W���������;������ ��"2�V�hy�]lya�/u�J_����:0�c<���5�06z�QDmu�Q�-�7��2��l&y�{�-����)3�S��,�c���t��22��!���O�0����Ud�Ko�y?�}Nk?�����yXvF�	
�6Fp�c����k=���eV�^5��w��]6c�g���	q1����1���	,��y��;�.u{"�q�Q`J������L��>s&7���'���b��0(����8��RZ81�F��'�����	n�ny����A���D�=F�|�K��D�9N}�����:�����!��I�p����g@)8A���4z}�|��<����9(����S�$�S��6����Ss����?��99L�t��9V����I�*�����7�����>5���Wp\/��xYPl�V�"�E����g�z:��*�������J�v1�}&���H��S���KA��y���)��g%sv�s�t������I�\���_t������1�X�=�,�`�H$?�W�����FA�+#,����p\�1��'F(�Qf����hMG5�s��GW3�2w�\@��l}�}�+������~R�9�6E�-l�����/��9���7u�G��{S���T��;S��;S��;S���8�< ��&��H.,s�+����\��F���5L�H;8(Z���_Qr�aDK���C���$�r���VQ��2�����/���w�P����E6?�)�17-�r��6?IHc���,��s����p7�aCc��r����P���_&�7'�[��"�
��7��E���E�� ���1��pvs�p{����T�3����Q[?����������j��E���mo�J{.-Y���b�	�O�l@;8\��c-2��$������t�df�6��Am �Jxm:+Z������_}1��8���j��3��s7`���&np�yH����?L�e9Qi+�D�d�z��-���!����!o�����?`����������������b�m����:v������eB�Q=d[��[V�����R��+]Mz�&��g�v��Bf
�-e��}�oY0}`��rql��Ed�	����=�i\�
�P��e��t��E�z��F�L�iy����@7���a+��:��9u�����)B$�S��Bi��>���A�	!x��sd�^�(��Tc\�l����+��+�D�4��m�T�������|X���X8[!���.�$|����^y�bZvlI�[���FP^4���Y�����|�
��E������./X�5����U���`�s&�9�i��V�W����-��<�|�Y7P7o��������,u.V7�s�,Y�OyM��x5�kne�����P��o�!R�(���;�!��
������:�
�����V����)���$P	s�{�{3�(,u���h'������������2y�
�d��-�64M"����O����&��M@f0�<�s�?�OTo��Q���i>���u�5M����;�r�Wd�f�Q�����l�Cv����M~� �����0u2�2�M%���}r������(�E�����NGa�{e�T��	�y��OM���,�h	�-��W�tw��+�� N����r`NV'���rE�;Q�,�7����b� E��C>PR���9p�L@�b8k�}\3/gYQ@��a����L�Ki�n�����v^��Pc�sl�dmw^�V�a������au�9�=��P��J�Q��,����f~/�Y!���g>SQ������,E�
#�qq�gM�w���=v����]wq(��.��L���}�1��N��x��'j:V��������^cE��C���R�����x[5�D��m��M��z�t���w�6
�]�s��0;��R�����YA=�i��~�#�P��j�w����*3�i8,���k����_���*�+����fy�>|�o(C��������]�f�����f��z��#�V����
?�S������������q�|B����ag}������,�3�u�0"2_�U�A��eQ~#�W�U?�L@���j}�l����j�f�4������^��|
�%%�w_�Ue��S��7���*�^������$h�W���V	���u��FQ�%"A��+��'�*oyf�%,=�.�2�������3��=M������0�0l�@c�I�����dG��?�������8��j�0���U���� .��;��	�X�w�}�����4��s�v+�+���
9��B�]�	�F�6�3��"����3+�YL���7h�T��/%�,�R����t�Xp�3mpY^�;��6��3q'~�Y��� ����B��"�^/{�����#���!�*�*J�s��e�]��e���L�F��_��U�����4s��R���A��:�e"Q���"Dp�����U��9&�N���:������A3�2�>�A��k�����fz"u`|B
[9�#�.,��,�����!>dl���8���.��{>	���^��!q����2��\TE�Qg�R�e�<tol�s�%���q�qW��S\��gS��q�y�][y]����^��f����sv�6�&.;����B��0��<�z���VrK��H���KY���y�0�����D��_����7!���?����m�K��!�y�fgP�Por����z���=��_)�?�Zu�|r3�W� ����e��J������aEd��������2�,�mW�����sgg�Mi�
��z���`lY�A������-C>n�����_�:��d�����	��i:��6qm)���(K]xd1�����_
@�6�WqV���w�&��6#�oB�k�����6�!���'��)K�T���P�{lb�����b��L���_���?�6��~u*���	�	��va�������-
NKT�bY'
������N��:��/��#��l�A�x�'2V0h"�[D_��G�v[�����qj^��\�h������G���/�xf�O����m����!�l��2����E���@2J�t��Kf���V[�:��21��/;`Q�����s�,��]1vn�m7nS����AL��w�i�����c��/�hWe�)���S�x��<N��#��3u��^�����c�������k��N:��.��{j����xtg��]E����:JczK���~��q9As����eo�B�St������;���0P�x59e(�>����<�l���J���w�\�9��@�K�>;��<5wD������]��z[����I����[;#!������,�������^�K�E�c5�����a#Z�B��R �R��S��l����4T�<���s
�n�d�|�A�(�C�:�c���R�Tp7l��g�K����b��X_�k�8
���k5�^O�}{�V������U*_�^�����}������tk-&K�N/��
F��j$M~c����.hH�rd!�pGZ��(F�<'h�������)��9p��y�O8��5�]�M�;Em3^]:Mmfd_�5{��T��0��N���V�x���������A�<� �9���B$-���B=`8U����J���:����y��i��������Ki��=��g������O[-g-��[1I����>3�����g���F'Y^����-?I�J�B�T��ff�~(�$?��i������B�������:�	�r����6a��)�c�>,��<��Px�����+�K�x�m�F����xx��;UR������&;�A_yq�{@M'��O,��w�_Z�Mj��SS�����\n�@��!�GT������Op��'\=-��������oM9	�U�C[�O��@*}��SHp��U@k�����.0���"3#S����S��0e�~;T�~f����gd�2 ������f�AT���FKU��fO=�{�K�,�f.�
j;��G{� P�"P�4}��!z��xU$����s�N���!��}p�|'���)�����%��_/.�ia�P��t����0�y`�c��<��*�:u�.�3�"@���\���S���|8���{a�3��w���D]|a��JBW�qwuo���?#1(�2��q
m;<K�����
�z���X��q�:�)�4�( m���d�J���R�B!�C�Z\@�t/�\��t:&P��,W)]qk�������#�|O'��Q����a��RP�L�����O�����S\������gv)����N�<�#���������~g��=[P6�a�W\�"�V>��"���2�<�@�4�:@k�(:/�^�����3����L;~$�Q������%����M�pQ����������/�Q�)��<������i#�<@�\(#��}�4y\��F{\!8��6�Q�r������C(��1�5���
^3��q�	a��/c����x����������G�,��QK��
������������/�g�Y�qg�g���+f�
J9'T�E���!����h6�Q�m7O�O� ��N�h�Fn<4��z�h�'���D'�������GR4T	^�k��	������>�V���H8���\� �tN�7����VW���Qu�����U��j_U CHl�"f�g�x�,�E&�Xa3�fq�'�����IQ�"���kW�y���h�������Z���������.u gj'7��-_o7,_e7hC*�����A/M�d���_�n�v�>6�����U��Ro��
^�(��:W��]����OX�.�S~qF��t:&#�j}�%���$6���D�B�|��>+�����{�����hLE��gQ���<&~^H=������g��L9��H�����)^�1�j�rik�x���G_�u����t-B~������~y�K��r�z�z��������ku�F�?z>�������yH�Wz����ZRx�Ru����$oq����?������8j��	;=��B�x��j"�Z.���1i�`�f�k�Av��k�|���k��!�M�N���G���H�y��v	�}l�;��(�\/_�S&���Yb��~`E��&>���7�J���H�.>�?|���|�/jRC�t���B���kg��=��5^|����z<4<���[�����vSt���Yy���9h�eU�r����'������������$"�����W�U�1.g+��W��\:mg���^
������F/lf����	�
b�b~	�����
sN�b!��O^���R�+-n��� ����N~��dA��s����`xC�D]���v^9��A�A�����w~�z��W�N�����w����Q����2�Qa;�p��{xfs���'�l�e5�k���P5�n5��o��j�E�XfZ����R3Tl�����J���������{���6
����n=]M�S<"����bS��JH�=�"��Z[���@�)�`����D��k��j�#`�u�YJ/��G�p\���rSx�D�cb��ub�L������G~j6����~nn�bD,����y[.����Tu������x�/�������|�)�`j2��H`_d��J��:
r���6�4H\�tqU�6��d�L���}���v�(\��U�p���92����������\��#�y�I����2bp���x��;<]�����_Gh5���x�\Em�������G85��X�-O��1��]S:�#���

������n���~���f�8�x���~��rx�M����b����,��q��F�I�Y~!�18c�I;����)[���1RR�'4ji6�v�F
��v�j�F��&�3��2��E5�!:�2�g�q{��0o��h0��T�C�,/E�|��_���.?^}�U��g!�X08`\��5��7��!�}�"^�G������#Y9P�L5��%��&m;�h4�0�?|�I������	wY�w���5�+��H�el��6+~eP�4j_"�����']~��4`�t�:��M0�
��q��_{���a�N_- ��EoO��:.�k��GD��y�yS��I�9kp
f��;��$���x�����,�����m���?������������5{��q(�Wm�)��3{��@y�q�W�	/�b_��I����-����mZ���4O���YU���6d]�"f��g���u
m@
�o��B3At��r��$��j��`���:����j���"}u.���<�]L�eH�C�n�f��|�~G��:�#�'�.�4KN��e-9�� �{�&l3u�w���tV�������Bw����U�+vdm�������FP�j�����r()�,�_~Q�
Q]	6U�}��J�v������OW��_
�y�X8?z���`����'���`F*�l�te4�G�I%L����k�zu�2TR���&��H��#���X�*=�� ?�nv�����c�`����;���E��x��M�n�!ufZ2_�SJ��#����<�����03,���s���_��2��Z���u�K�X!��d�vB����0e'���E�8R?�)^����H��b��Lp�R��>J�_c���TJP;�Cb��"f��'�*R�W���7�:H�&t���X�06�E�e���Y������������^V���1��V����������5���9�����fhX�\()xY�2���1=������`�+���5p�G�a^��0g1:��+V��\�7�J�R@;m~���*������5��L�i��&X'?�v�Ic`�����+�y�K��_�0[��q�������1���]_@JA��-���!�~��W��p@�4�
~��	��	`�7���^�����a0���c�11����k��F�T�NY�Hs�y^�qA�b���C�����R���&=1�~&=D������YtDS�Iu�(�~jv���$�s�E�}��9���b���V�4LX������
��9��w��N�����U����G��������y���
_��*��Qn������Pt.���������+�+T�cz�f�-=0�����e����Q�������������6o%�"�<��q������ZZ8_N������,�6�Q��)H=����@[��"D�}K<�����|�kr�R6������<�k�3��Z _9Y~�"�a����3u�I����g>1��`��A��������@����	E��$Y3�@E&�x�3���4�`&�����*'������T�?��rP��W���_N�����m�,�[)�"�����|��t�c�z�-������������Pc����0@��*���N��
��F9�8��yQ��H�C������������5��-5��'TJz���j$X�6=��`\�C^+�/��l;��&�IXI���C --�t�����L�-7��������:R84'��,!�.�����L�����������X�+^��b	�W�Q�N���J/��9L���V��Qtq�3����'V����p�g��,}�9%�6R]���ZU��o ���E�?@��)��P�����
�����	^Q�z5+L��j,�TD��en_)�X~���������E0<!���C���t���-h�����|�x
���k��|�rlt�3�Gnp�w���������.�Qj�8��O��p����������[:y�d�0:\P�D"<��������I!�
l��rb
���D�w�W���\���I�����:D�T�S+	������}�)�>�(����ZO�����i.��h�
�IW12����T�K�r�
R�����B��������s_-�����,���2���Q�~�N
���/M������-0�"t��/;�L���O���z���at�P�-|�h����$2T`�
|�0�p��W}x�=���c��0�����&��"����v�T:��RuP���~$*�]?�A��*z�G?��6��K��{������P�LB�j6^9�&t�;F}<"b�-w���}��I�M|`���)r6<���W��U�U��v)�a;tO��b��O�b��G8�@�k��VH�zvL.
x����^ep�u�n#��q�)������h1�#�Z��X�]T��p�pw�������Om���dh��.���ilE��k8@��q��CwD�x}�SH�����N�B��;7�.�y����]��p{Mb��@�M���R���g�2��.X<iX������	A�x����jt��Ar����O�;�w;�6���ep���
1�N��q3>^���{��|��B]ZHg����
L�T+<nL�{X�	��G��d��8��q�����L]��������N����������`3���R��Q�,O���T�#�8�\�2�_��-�����{��;��B��.8�D�$�2�$�����x������1�O������
KH0V?W�?����f�c����
G���|v��y]|?@~�����e�)�����v������e���(��j��710a���[����r,)��cjT������;���n��@��@����.��g����(PRh�v�|�A;�������B�&x8��y����-,_x��A��{F.nW��`&��1��M�����<Kn7
�.�bP��I^������p��^k:���)*w��������Ltq�"��W{��	v�U_mu�
��P�}]
l�����������2v��X����}C���(�B;c|�����/��3�
��~����W�����x��%q�����[w����������;0������o���Er�[ ����[��c%�.Nh=*0������"h�'����
������C����;z� V#�d���>1�G���Pr����D���Z��+�"��S������^�R�����s�"
��$�����k�8v=�;�t
q	�K�|kG���0Yn�Lw��5�_����"���)���v��y�TW���W*�d�p��h(Q�O���S4���==���#��1el4h���M0��0x�*��X�7
l �L����it��=)�~�G������K ,�Ia��������l�����;~/�������9�����K���y�3�Y���f�	���g�,|��g����Z"*\���.H�Y��a�-1�y�<yR �a�t�'��va���V�����m(.x����Ln����5�o7l��XH�dn\�@k{�
�����h��f?]�����8mNm�2�>��*�<���m[�}|FI����E�)x����mn& �gft)`��F�:�����!1�}�������'� {�"�Cp-�S�>�d�Wh�0��?1�g@>��dK�#��-�6����Q�R��)��rO��&W�LJ���r��8R�%Z
u�6��'��y��'>��t����1�r��N^,�D�.-�������:�<�t�q���r��i�_�,�}5���c�O��}��
o2	��	�]���Skm��.��|7,���={�� �� ������������B���L�X�C2@AR��5���ZM�_��%d�A�����}ic�f�_D�����?p���Q��d�.<����a�L�D��Og���5�Q���G���NGn�'��N��_P����"�&J�a�����8�~eE�Oj<{��:��������#@i���+2�=������Q@��4����pTUW�b���0���Q�l����K���3�=�>r�bPAe����h���8�mN��b��fA��>c��h�J�F?��D����P/|�������8�;�]�������M�M�A���l�(�A��k5���Jx68;������>h|n��?����H���13���q��Mq����~����o6�T�^�	u�To��o49R�q�@4X
/��4%O���Jd�F����/O������2�0)>��L��(o�3N�e�N�|4�3{�����u�������4��ooO������v��r����ou�s�;����}�[vo�m����}�
�;xq\�?W|)��v�N����U�j�N��u����va�����`D����I9�y=d�����@�zK*���d��O6�.g{{��\�P��{A��##�,���_g�=���X^���7��{�Z�8��	I� ��`�>D/��]�0�����@nG@�h���)�����6�p��sw5����-�c��Q$n��0���f�8�:�\�Dw���0�B���g���� X�fA��f!�lv�?E�s�:�t�Zf!"Y���A\"lv�FH��z�WjvX��7��s�P�Y��LX��vS��9�����M��g=�%��[��]
{v�wb-j�X����P��\jQ��Da�V�������9�c�]�u�����B],�U�H���#w��fa
��\������.����J�)D2��Q��T�6�,�N������`)� 6�rL�^�����5r(pE�}y�S�X�-#-��������z~���������Pz�Q����$��o�.U����'L�����E�m�����
�!~`�-%���`jf5<V
Y�/��`_ynB66K����_��!"���8n"�+����Q2�%��T
���6�'���h��;"�>��a,�VYD5�Hd�0������?�q���-]rc�x������pU�;ibX��k�N����Z�"I���:���$�WsLy�����5���|�����eFm� ��9�*G*T����(���� �J!.�E.&�����r^N���X��Oi�K���m�O���8\�8����}��H���f�5��gl�=y,�qU<�c�������UAL�0VI��+��q��<���2�S��u���� ���x3��c���Y����r3�����e�+�Q��\��B!G��{9��4��;D-o*��"��n�z���z�<�;�8���?:�m��=b�j�PO�M>y�����Ob]���\��1�8��>�N�����S�������U�^K�bK���)�`�L[��pe�*'B�$"=�s��o����M�d��j�3������������
�����3��7x�!�����s��==Y�d�����4�]�*��U�*]Z��/�0�wk[���/8���k���������yA�A���[�N,dAu6��#��e }�������b�F!]�)���7�1���i������7��I������}����|y�]�Q��R�fk8�j^�U��Xf��,V@#��Na����E��`a98����/|QG�����5���P�h�q���P7@ua�Gi��:���u�~6zNW��A���
���/����[a�����B0k����W(����R�����e{���������C�n�k�2U"�`�[�5'm~X�����������;c)��"a`}�B��L`y��jry��@�C$�����qo����x� v0��}�,b�����<� >|��N���"�c.4����
o�e���{���N:\W'��k�0��`��.��E�=�7���K�>!�/$;���:���
@o�T+%[l��'aTD
�0���Y��*�������
r�L����ve�L��k/z����f_�&�|��E�I��kb,S�� ��X}��`"�b�i���������S��$N3/�)2u���a.U`����\��&i=E��wi(��w�*�"}Z��
�b
I���9��W�s���
�Rig��pQL��Jp+xR����a�0,`�e�J��/�Y"+��%�����X$i�A���!�e@���	#]�%�w��{�;Z�xpL��-�!�u�����O*�!��j�6��"�Xh�������ZI�)��z�^�_����JM~�r��[��5}gc��M��#\�����Z$��<uEH>Ie�>�(�k�,�T`#�4���M�A'���c4~�^�����fa<����x�}'�Y@���zR�|b%jo[A��G��,a��3k�fP���b�4z������ h�������������������dYi�.���Lw[t{������a��y�K�D�
h��;��TDf��i���k�$��*����Ow��p��B0�8���H�����db�����ZE�mu�$����7*(�F�:��b%�B���"kz9��wFQ~.��OZS�m�h%�/��p��S�<X�9k��0XE0�������(#A�~O3��$��&�8t����g]2t?�{�hJ�h��?c����_;D�X�k�����-?������nt�=$�����������������������5�}IB��5���L�����\��f�G�r�)����A�T�a{1���D9�p�x�zRj;��m�[@�j@���C���(��n�b���4��%nq����%~f����r���j��;BVU������k��E��w�?#�7LB�v_A���������;�����V�E$)x���0�S$����Y��q�a�C�$@�
�^�r+�(�2���M�hFbg��M�l�B�z��/U�v<�ij��@������{�y��A����9���gN��>�@e�57�����cv���L����_X�p��w��-,1�������~�E���)���a�b�Y)�6~���aR}������g���l�i��h��P�x^y���3�~_��HI��0zVYH�%Lm�t�����8�����������s�,j�D�q�J/��q���8o���91��������_v�����q���y>���z�3��3�!�
���J�������7/q�!(��r���\��}�*��Y�oV��*��(�"!�ebi%����#�<�J���L�Z]�\�C�����*�he9�F���.��S�s�A>���of��[��j�VO�n9�Y�nv���o������p�#���U��\��n�����\���&�����P��N_��D�����&k�X���D�����[��������a�J���������6�fAU[���)m��Z?i����RE���9)���2�-���u����5n�x���rc����T��?9�E:x���w)��>����a��v���'�w������<0d�?�g�����;���c�z	�pj�<���C���\������	�����������w����������������?������������_�����?������������������������/K��S���y�������������G�����_~���R
���/��VOu��������d~*���
�.�n�?U��j�`�o�t�������	�G��?�����e����O0.�����?����P1��������O�t�?����_�������Z�Q%=����������%���?���������������?���������������?�������$�F
#21Bruce Momjian
bruce@momjian.us
In reply to: Alexander Korotkov (#15)
Re: GIN improvements part 1: additional information

On Sun, Sep 15, 2013 at 01:14:45PM +0400, Alexander Korotkov wrote:

On Sat, Jun 29, 2013 at 12:56 PM, Heikki Linnakangas <hlinnakangas@vmware.com>
wrote:

There's a few open questions:

1. How are we going to handle pg_upgrade? It would be nice to be able to
read the old page format, or convert on-the-fly. OTOH, if it gets too
complicated, might not be worth it. The indexes are much smaller with the
patch, so anyone using GIN probably wants to rebuild them anyway, sooner or
later. Still, I'd like to give it a shot.

We have broken pg_upgrade index compatibility in the past.
Specifically, hash and GIN index binary format changed from PG 8.3 to
8.4. I handled it by invalidating the indexes and providing a
post-upgrade script to REINDEX all the changed indexes. The user
message is:

Your installation contains hash and/or GIN indexes. These indexes have
different internal formats between your old and new clusters, so they
must be reindexed with the REINDEX command. The file:

...

when executed by psql by the database superuser will recreate all invalid
indexes; until then, none of these indexes will be used.

It would be very easy to do this from a pg_upgrade perspective.
However, I know there has been complaints from others about making
pg_upgrade more restrictive.

In this specific case, even if you write code to read the old file
format, we might want to create the REINDEX script to allow _optional_
reindexing to shrink the index files.

If we do require the REINDEX, --check will clearly warn the user that
this will be required.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

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

#22Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#20)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Mon, Sep 23, 2013 at 12:47 AM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

It's probably an option to select 64 entries instead of 32.
There is still some regression in update speed. However, there is also
room for improvement patch. It searches item index entries 2 times on
insert: in dataLocateLeafItem and dataPlaceToPage. We can save full results
of dataLocateLeafItem, but it require some rework of gin btree interface:
store not only offset of item.

In the attached version of patch double finding of ItemPointer during
insert is avoided. Overhead becomes lower as expected.

event | master | 16-entries | 32-entries
| 64-entries | 128-entries |
-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
index_build | 00:01:50.042658 | 00:01:54.130873 | 00:01:59.37302
| 00:01:55.959693 | 00:01:58.126407 |
index_build_recovery | 00:00:19 | 00:00:06 | 00:00:06
| 00:00:06 | 00:00:06 |
index_update | 00:05:18.215707 | 00:05:38.40231 |
00:05:30.658786 | 00:05:27.664312 | 00:05:30.815876 |
index_update_recovery | 00:01:48 | 00:01:53 | 00:01:50
| 00:01:44 | 00:01:46 |
search_new | 00:25:21.481699 | 00:23:20.324152 |
00:24:02.120438 | 00:22:50.989723 | 00:23:05.703824 |
search_updated | 00:25:57.622592 | 00:26:43.531979 |
00:26:08.003085 | 00:24:36.669028 | 00:26:09.175243 |

label | size | 16-entries | 32-entries | 64-entries |
128-entries |
---------------+------------+------------+------------+------------+-------------+
new | 884514816 | 417013760 | 421240832 | 430350336 |
450994176 |
after_updates | 1595252736 | 711368704 | 719380480 | 735682560 |
774275072 |

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-6.patch.gzapplication/x-gzip; name=gin-packed-postinglists-6.patch.gzDownload
#23Peter Eisentraut
peter_e@gmx.net
In reply to: Alexander Korotkov (#22)
Re: GIN improvements part 1: additional information

On 9/23/13 5:36 PM, Alexander Korotkov wrote:

In the attached version of patch double finding of ItemPointer during
insert is avoided. Overhead becomes lower as expected.

Fails cpluspluscheck:

./src/include/access/gin_private.h: In function �char*
ginDataPageLeafReadItemPointer(char*, ItemPointer)�:
./src/include/access/gin_private.h:797:2: warning: comparison between
signed and unsigned integer expressions [-Wsign-compare]

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

#24Alexander Korotkov
aekorotkov@gmail.com
In reply to: Peter Eisentraut (#23)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Wed, Sep 25, 2013 at 5:22 PM, Peter Eisentraut <peter_e@gmx.net> wrote:

On 9/23/13 5:36 PM, Alexander Korotkov wrote:

In the attached version of patch double finding of ItemPointer during
insert is avoided. Overhead becomes lower as expected.

Fails cpluspluscheck:

./src/include/access/gin_private.h: In function ‘char*
ginDataPageLeafReadItemPointer(char*, ItemPointer)’:
./src/include/access/gin_private.h:797:2: warning: comparison between
signed and unsigned integer expressions [-Wsign-compare]

Thanks. Fixed in attached version of patch.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-7.patch.gzapplication/x-gzip; name=gin-packed-postinglists-7.patch.gzDownload
#25Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Bruce Momjian (#21)
Re: GIN improvements part 1: additional information

On 23.09.2013 18:35, Bruce Momjian wrote:

On Sun, Sep 15, 2013 at 01:14:45PM +0400, Alexander Korotkov wrote:

On Sat, Jun 29, 2013 at 12:56 PM, Heikki Linnakangas<hlinnakangas@vmware.com>
wrote:

There's a few open questions:

1. How are we going to handle pg_upgrade? It would be nice to be able to
read the old page format, or convert on-the-fly. OTOH, if it gets too
complicated, might not be worth it. The indexes are much smaller with the
patch, so anyone using GIN probably wants to rebuild them anyway, sooner or
later. Still, I'd like to give it a shot.

We have broken pg_upgrade index compatibility in the past.
Specifically, hash and GIN index binary format changed from PG 8.3 to
8.4. I handled it by invalidating the indexes and providing a
post-upgrade script to REINDEX all the changed indexes. The user
message is:

Your installation contains hash and/or GIN indexes. These indexes have
different internal formats between your old and new clusters, so they
must be reindexed with the REINDEX command. The file:

...

when executed by psql by the database superuser will recreate all invalid
indexes; until then, none of these indexes will be used.

It would be very easy to do this from a pg_upgrade perspective.
However, I know there has been complaints from others about making
pg_upgrade more restrictive.

In this specific case, even if you write code to read the old file
format, we might want to create the REINDEX script to allow _optional_
reindexing to shrink the index files.

If we do require the REINDEX, --check will clearly warn the user that
this will be required.

It seems we've all but decided that we'll require reindexing GIN indexes
in 9.4. Let's take the opportunity to change some other annoyances with
the current GIN on-disk format:

1. There's no explicit "page id" field in the opaque struct, like there
is in other index types. This is for the benefit of debugging tools like
pg_filedump. We've managed to tell GIN pages apart from other index
types by the fact that the special size of GIN pages is 8 and it's not
using all the high-order bits in the last byte on the page. But an
explicit page id field would be nice, so let's add that.

2. I'd like to change the way "incomplete splits" are handled.
Currently, WAL recovery keeps track of incomplete splits, and fixes any
that remain at the end of recovery. That concept is slightly broken;
it's not guaranteed that after you've split a leaf page, for example,
you will succeed in inserting the downlink to its parent. You might e.g
run out of disk space. To fix that, I'd like to add a flag to the page
header to indicate if the split has been completed, ie. if the page's
downlink has been inserted to the parent, and fix them lazily on the
next insert. I did a similar change to GiST back in 9.1. (Strictly
speaking this doesn't require changing the on-disk format, though.)

3. I noticed that the GIN b-trees, the main key entry tree and the
posting trees, use a slightly different arrangement of the downlink than
our regular nbtree code does. In nbtree, the downlink for a page is the
*low* key of that page, ie. if the downlink is 10, all the items on that
child page must be >= 10. But in GIN, we store the *high* key in the
downlink, ie. all the items on the child page must be <= 10. That makes
inserting new downlinks at a page split slightly more complicated. For
example, when splitting a page containing keys between 1-10 into 1-5 and
5-10, you need to insert a new downlink with key 10 for the new right
page, and also update the existing downlink to 5. The nbtree code
doesn't require updating existing entries.

Anything else?

- Heikki

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

#26Robert Haas
robertmhaas@gmail.com
In reply to: Heikki Linnakangas (#25)
Re: GIN improvements part 1: additional information

On Thu, Oct 3, 2013 at 2:43 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

It seems we've all but decided that we'll require reindexing GIN indexes in
9.4.

I thought the consensus in Ottawa was strongly against that. I'm not
aware that anyone has subsequently changed their position on the
topic. Bruce is right to point out that we've done such things before
and can therefore do it again, but just because we have the technical
means to do it doesn't make it good policy.

That having been said, if we do decide to break it...

Let's take the opportunity to change some other annoyances with the
current GIN on-disk format:

...then fixing as much as possible in one go-round is clearly a good plan.

--
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

#27Alexander Korotkov
aekorotkov@gmail.com
In reply to: Robert Haas (#26)
Re: GIN improvements part 1: additional information

On Thu, Oct 3, 2013 at 10:48 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Oct 3, 2013 at 2:43 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

It seems we've all but decided that we'll require reindexing GIN indexes

in

9.4.

I thought the consensus in Ottawa was strongly against that. I'm not
aware that anyone has subsequently changed their position on the
topic. Bruce is right to point out that we've done such things before
and can therefore do it again, but just because we have the technical
means to do it doesn't make it good policy.

That having been said, if we do decide to break it...

Let's take the opportunity to change some other annoyances with the
current GIN on-disk format:

...then fixing as much as possible in one go-round is clearly a good plan.

Let's see what options we have at all. I see following:
1) Drop support old GIN on-disk format. But users will have to reindex
after pg_upgrade.
2) Insert kluges into GIN to support both old and new formats. So, kluges
are kluges :) I don't see elegant way to do it for now, because formats are
very different.
3) Upgrade GIN on-disk format in pg_upgrade. However, it would be rewriting
almost whole index. Is it much better than just reindex?
4) Fork GIN2, leave GIN as is. It would lead to much of duplicated code.
Any other options?

------
With best regards,
Alexander Korotkov.

#28Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#27)
Re: GIN improvements part 1: additional information

On 03.10.2013 23:37, Alexander Korotkov wrote:

2) Insert kluges into GIN to support both old and new formats. So, kluges
are kluges :) I don't see elegant way to do it for now, because formats are
very different.

Hmm. All you need is some code to read the old format, and a function to
convert a page to new format before updating. It doesn't seem *that*
kludgey. It's a fair amount of work, for sure, but not insurmountable.

- Heikki

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

#29Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#28)
Re: GIN improvements part 1: additional information

On Fri, Oct 4, 2013 at 12:41 AM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 03.10.2013 23:37, Alexander Korotkov wrote:

2) Insert kluges into GIN to support both old and new formats. So, kluges
are kluges :) I don't see elegant way to do it for now, because formats
are
very different.

Hmm. All you need is some code to read the old format, and a function to
convert a page to new format before updating. It doesn't seem *that*
kludgey. It's a fair amount of work, for sure, but not insurmountable.

My notice was not as much about amount of work as about result.
ItemPointers compression reduce occupied space in all normal cases. It's
not very realistic, but it could increase space in worst case. That would
lead to page split after conversion. Are we going to support such case?

------
With best regards,
Alexander Korotkov.

#30Bruce Momjian
bruce@momjian.us
In reply to: Robert Haas (#26)
Re: GIN improvements part 1: additional information

On Thu, Oct 3, 2013 at 02:48:20PM -0400, Robert Haas wrote:

On Thu, Oct 3, 2013 at 2:43 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

It seems we've all but decided that we'll require reindexing GIN indexes in
9.4.

I thought the consensus in Ottawa was strongly against that. I'm not
aware that anyone has subsequently changed their position on the
topic. Bruce is right to point out that we've done such things before
and can therefore do it again, but just because we have the technical
means to do it doesn't make it good policy.

That having been said, if we do decide to break it...

Agreed. I was stating only that this is easy for pg_upgrade. One cool
thing is that the upgrades completes, and the indexes are there, but
just marked as invalid until the REINDEX.

One other point Alexander made is that the new GIN indexes will be
smaller so most people would want the new format in the new cluster
anyway.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

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

#31Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#29)
Re: GIN improvements part 1: additional information

On 03.10.2013 23:54, Alexander Korotkov wrote:

ItemPointers compression reduce occupied space in all normal cases. It's
not very realistic, but it could increase space in worst case. That would
lead to page split after conversion. Are we going to support such case?

Hmm, that's probably rare enough that the number of such indexes in the
real world where that could happen is exactly 0. A compressed item
requires 7 bytes in the worst case; that is an offset > 127, and
distance to previous item > 2^(4*7) = 268435456 blocks. With the default
block size, that requires an index larger than 2TB. And that's just for
one such item to appear - to actually cause a page to overflow, a page
would need to be full of other items widely apart each other to take up
6 bytes each.

So I think if you can make the conversion work with the assumption that
the compressed format always fits in the old space, and throw an error
if it doesn't, that's good enough. (That's for the posting trees - the
posting lists attached to entry tuples is a different story.)

Besides, if you convert the page when you insert to it, you might need
to split it anyway. So it might not be very difficult to split if required.

IMHO the main argument for not bothering with pg_upgrade is that the
gain from the patch is so great that you'll want to REINDEX after the
upgrade anyway, to shrink the index. I really don't have an opinion on
whether we should attempt reading the old format. On one hand, it would
be really nice to not have that caveat when you pg_upgrade (oh, you have
GIN indexes, you have to reindex..). On the other hand, supporting the
old format is a fair amount of extra code to maintain.

- Heikki

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

#32Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Bruce Momjian (#30)
Re: GIN improvements part 1: additional information

Bruce Momjian escribi�:

Agreed. I was stating only that this is easy for pg_upgrade. One cool
thing is that the upgrades completes, and the indexes are there, but
just marked as invalid until the REINDEX.

One other point Alexander made is that the new GIN indexes will be
smaller so most people would want the new format in the new cluster
anyway.

But they're nonfunctional until after the reindex, which is bad for
people who want a quick upgrade and return to operational mode
immediately. If you could just keep the old indexes around, in working
state, until they are REINDEX CONCURRENTLY'ed, that would be more
practical than just marking them invalid.

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, 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

#33Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#27)
Re: GIN improvements part 1: additional information

On Fri, Oct 4, 2013 at 12:37 AM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Thu, Oct 3, 2013 at 10:48 PM, Robert Haas <robertmhaas@gmail.com>wrote:

On Thu, Oct 3, 2013 at 2:43 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

It seems we've all but decided that we'll require reindexing GIN

indexes in

9.4.

I thought the consensus in Ottawa was strongly against that. I'm not
aware that anyone has subsequently changed their position on the
topic. Bruce is right to point out that we've done such things before
and can therefore do it again, but just because we have the technical
means to do it doesn't make it good policy.

That having been said, if we do decide to break it...

Let's take the opportunity to change some other annoyances with the
current GIN on-disk format:

...then fixing as much as possible in one go-round is clearly a good plan.

Let's see what options we have at all. I see following:
1) Drop support old GIN on-disk format. But users will have to reindex
after pg_upgrade.
2) Insert kluges into GIN to support both old and new formats. So, kluges
are kluges :) I don't see elegant way to do it for now, because formats are
very different.
3) Upgrade GIN on-disk format in pg_upgrade. However, it would be
rewriting almost whole index. Is it much better than just reindex?
4) Fork GIN2, leave GIN as is. It would lead to much of duplicated code.
Any other options?

I came to idea that I like option #4 more than option #2.
If we try to make new GIN work with old page formats we have to maintain 3
use cases:
1) old GIN with old page format (because of old releases)
2) new GIN with old page format
3) new GIN with new page format

If we create GIN2 we maintain only 2 use cases:
1) old GIN with old page format
2) new GIN with new page format
The code of old GIN would be additional code in 9.4, but not additional
code we maintain. Because we anyway maintain exactly same in old releases.

The problem I see is how to migrate users to GIN2. We can't expect they
read release notes, create GIN2 indexes and drop GIN1 indexes. A lot of
users will still use GIN1, because of they don't care :)
Ideally any new GIN index should be GIN2 and reindex turns GIN1 into GIN2.

------
With best regards,
Alexander Korotkov.

#34Bruce Momjian
bruce@momjian.us
In reply to: Alexander Korotkov (#33)
Re: GIN improvements part 1: additional information

On Fri, Oct 4, 2013 at 02:23:33AM +0400, Alexander Korotkov wrote:

I came to idea that I like option #4 more than option #2.
If we try to make new GIN work with old page formats we have to maintain 3 use
cases:
1) old GIN with old page format (because of old releases)
2) new GIN with old page format
3) new GIN with new page format

If we create GIN2 we maintain only 2 use cases:
1) old GIN with old page format
2) new GIN with new page format
The code of old GIN would be additional code in 9.4, but not additional code we
maintain. Because we anyway maintain exactly same in old releases.

The problem I see is how to migrate users to GIN2. We can't expect they read
release notes, create GIN2 indexes and drop GIN1 indexes. A lot of users will
still use GIN1, because of they don't care :)
Ideally any new GIN index should be GIN2 and reindex turns GIN1 into GIN2.

I am not sure I like the complexity of a GIN2, but we should give this
problem some serious thought as it will affect how we deal with other
on-disk index changes in the future.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

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

#35Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#15)
1 attachment(s)
Re: GIN improvements part 1: additional information

Aside from the pg_upgrade discussion, here's an updated version of the
patch, rebased over master. It also contains some other misc refactoring
I've done while reading through the patch. I haven't tested this much, I
may well have also broken something, but I wanted to post an update
before the weekend.

Thinking about the page format, I think we should start using the
pd_lower/upper pointers in the data page format. For a non-leaf page,
pd_upper would always point to the beginning of the special area, and
pd_lower would indicate the end of PostingItems. For a leaf page,
pd_lower would indicate the end of the compressed posting list, and
pd_upper would point to the "leaf-index" at the end of the page. That
matches the standard page layout in the sense that the space between
pd_lower and pd_upper is free, although the data stored in the non-free
areas would be quite different. That would allow us to mark full-page
images with buffer_std, allowing the "gap" to be left out. I think that
would be a more natural way to keep track of the used/unused space on
the page, anyway, compared to the current maxoff/endoffset field in the
special area.

In the attached patch, I in fact already did that for data leaf pages,
but didn't change the format of non-leaf pages yet. If we want to
support pg_upgrade, we might want to refrain from changing the non-leaf
format.

- Heikki

Attachments:

gin-packed-postinglists-8-heikki.patch.gzapplication/x-gzip; name=gin-packed-postinglists-8-heikki.patch.gzDownload
�$|NRgin-packed-postinglists-8-heikki.patch�}y_I����SDyv�)	$nc�����1Tw�T��K��,��L	���|�}W\yH)�gz����2#�x�����0��R��u<U�Z��.���h<\�(��������St�"u���J<F������0��v��r���R�������N��x�� j��?����6��*�����x0�
#����drq9�G�a���'�Y�z�\����>���g�@A��i<�&�[<��t���>J���h<M?O������P����j���i��l����H:���-��i�y�&��C�F���U��'+A�S�m�dS�wS3X��bX�Y��� ��M���O+�}z�����j��{�������p6������jm��0w��
m��f{v�~��P]E�jz���p<T�1q�)������lp�\Q
m�YM�x�xWc��R���H�����Oo�x<�����V����	��j��a���?��tpek��L��Dc&ZQYx�O�gN&�0���c��MN�tf�l\�/�XO>L�Qr�1��$W�'wy�p>D�SWIz��ej�EC �f�J�DO�8�������$���r6U�W E�-����4B]E���(\��,�����pZY|=�����T!&�s�<�
9�"�.��y���6�>I?e+��������'c�����--	Qa��q�@���e<������$�x��d���i�6��g��(uOoT��l~6�pvW�*�k�!L��3\F�]4j�����:�������G���e2r�~n�,b�%��n��Gi������4�=��P5�)���-����7n�4�����C7p$�1�>"(	�"4��O�h�V:O��($*O�2�>���oa��?���6K�)t����J����Z�'��O�4I�e|Ms5��]��b��"��j{��-]`Mf�
�	_�p$'aN#3G�a�?~�+�q2��)c�v3�i��d��;��F8��p���c?��I�^�����|#x���^���bS�8��V��T���":'�gY2�C�/�'� ���Nf1�=n���f������h��1�""�E8�NR��f�0`%X	�����f ��-��2J��xv{�76e�m�U/��D������,%Hy��Q���q��WMg)\����o"������UM�Y����g�/ S�0v�,����pI'�T��{�������I
W�)D71��!m���):��c�)�G
v����h���R�N�epj������>*��OJ����*���8�e������}I8~I�m�T{k��Aox�{����{pm�u$��tk�'�C�O;Ag8N�i���1��
0��������^�C|����9�Ig5�-DC��r��|���4�����	N��t���9�g���0�&\��-������1��W��O�K���C�g�t6��Rb$"�=]��	�v������u�N����}^���#��8���G,`RLFrK��Mh%�sx�/�����>����{c�rx���������iO��M��b���e�/�i�Wi�o3�-��m��5G����A�0E<�W���"S����W�s8�B��0Zg�x�7 y��;�x�)�}BE�2�� XV�)��W�������o��;���!i��D�����`�X� v�p>�d�#y������Z��`���o;a$�e��M�}|OC����4UK�3R��Z��mD�������e����Y��
k�xN/s�<�Q����.PB��#����i��~���EhO����l
]��������o���Sw���W-�J�n�����(?���������)�H�@bOF"#��&	���� I��N�����,Bi�'���C��CW������$��;��6���N�����3��i����t� "@�
%��q
e\��0�l�d����	(��t�b%H���* e$����o����1�i�w~o����u�a�y��������� �$B�ZH�=�h�����;/��p��:���)]R��3L��p�[���O����������������G��������'#��<9�]_�q[=MQ�=K��|�hj���+j�&N����G��&�0���T�6��bdag�������e]B�t��V8MI��mon��K���/Z��y�P����P<"b:�f��Q
'�
���H��
�e�G�������8��4�b����,v�%��7�,o�Lf6���N���	D�������a�_��tf0���
�����rM��|��MH�h������75�[]�V����hXf2M������^��ZQp�/��%4�g�7�NnR3��&��>U�����
�C/��	�k_�������[<�y���Zo�,h��d<� ������m�1
�X[���uVt;#S>H&F��<��'���U9P#���#���6_+�D,���/��tN�<%TVCn��I#�5��&|B��o��mrG�{_��5�?u�]n���9��+�B�&��#��q0K�z����{�v����>��x��'xq�k�H������Y����%���q�M?�wL�vI���?��B��pH��E�����&N��yq��A_��YWS�M��_G�����p���@b��t �]�����U��������7�I_�8P$����	��k��[����
��<|k�:��Lt����Df������*���H��C>@�z������wv��;��94DF����F��!��uL���UF����
�>�(��i�;��8�Mb8�Y������p��$�[f�)Fxh�g��t�6C/N/��!��o2Z���#����(��+B��W�3��rQY�����0��R�t��@s�� =�~
%sK��4�<��ix#2�m�����F�[O����-'����)�5�Oc��D�^~U1����z{�+��v�74�L'�������Cx;����>�pxj���k;s�:�`�����
��q6=�jq�R"��
��|9	�V[llZ6.��]�2sx+������s?�H/L�~Ui8���@�
�t>h �h��v}_�pc���U����uy??����s�Z�g�f���~�����.���K�+�)HjK[���h�)��h�\�F�'��97D��a>�Tf3/&�qF���{|�2+��#� ��s���+����%'��?�]*����!V�L ��K�A�-�~5� ��nE�}��X�WE)��5��4#tAl6�\�t��B95�����A�A��I�D��)�"���KG4���5���I�x���[�*���E1��������P����j��T���gvmG�w
W���&!���%�`�Y��s1Z�S��GoTZ:��)�� E(�g{ �g���?u�Lr�J�BV��Y�DB������>�$��z�3#�1}��
T��f�J�
[I6
n�;�D�tn�r�i���#��^��)�7�ye4���S�d�`���|/|�\e�|ZV�{�%+R��>�*��C�H�+K)4f�<N�@386�;}��V�5V�.��u��`	f~
���
��"b2�Y����[c�`xz[U��_�<��O	C���[�pK>c�w\@������;�*PO�)0��T�-8�{��H<>*�#
�&y����~���d�Gw
+$������9�	 �" ��r�i��d6,�#�1�S�r'q��U��+u�q'+���
��?�#	�jk�����Yo���$�.�l�M��0j>.���
� �)`b	�W���\����9P�W��FE�9|��Ls"�����C��J��vbm�s�����3��C�}q���71��L�E���Ru����)�q�u����j�_!���t�P�-��{�i��M�f���g_�U�w :2��^�q���.�@e��G�U^	��� �6�Uwk���2T�`�
&��Y����������u����.
!\D������!|T>>����G�(�AH�p������>*���p���ho����#����"p�6�G`���3�$�������lU���������katP�Fo;��.����%�sOL��������o�Q4�*��:��s���kmx���F/}������S����� j	������u:u�[�X����m6v����:�<�K
d�"8�	�#]�cZ!��?E�2w����|�r�r�����13�%Z�2Mu��N����$+���2�9F$b/T���������}=\W#Lf�[X�tE�2��Y��^�h�����xM��P��W�(r���$�[���u>^���l�n�p���d����8d�������	6y����y�^IV�[p������+���++�E���j�KE�����fe����h4��T�%���g���O]��/��l""#.4�����j��K=S��ai�_[%���//p�-����E���0��!BWg�0����K�������r�SV���-.���m |�������4X����NSS��K��&i�&�x�.c���G�Xt��g({�N��
�S����}��?����R��A�_�
Vv��9a����X._j���+ti>;yt~q��������Q�>�l��53�V��ZF5��W�"��,�����^���qg������v�5���i�]w^]������T
(DB����M��D��ZE	t���)�-�/?;�&���/��1��Z51dz4���-�\v�83&�i��?i����2��L�v#��'lU�	����{T��*>��l��2w��P�1�F�+\����iu#�rv�$��>��0�]!&�QB��x���8`�y��,}��O'-D'�[�#�;N�F%.���i��w��M-D4�]�J,�TwVq���-���&A0��-oO����j�Fv��o�)r2��*�3�+���eL��#��D���0����c6�������z����;�L�����>^�%,@6�A��$�M|5-�}��CDA�Ofi���vN@�~E���������e���V�����h��P��-���e��������&b#�-hh�S�J]}�5{6s����<��mP����������Ct{M�5k#���u��+�S�)���C�5������X�;�-s���-o]6��xC�&�/�|��q3�nO�gg���i�&�~�[�����<K�
W}������y���8�|eq�l���S���&�:�s�Y��&��?RP^K�;^��_�����'���w)Ol�LJAw��m�*xrK���������[y� ���g��-���^��\���>��j��8���������#�J 2�6sm�������V�����qFF�jj����(dn��G�J�j��%	�<�F�(!i�P:��?W#���e�WfL��=����/�b��B�^h�����Q(�� D�a��Rv��b�1��`L�` zA'�<{�4d�o/��!$)�*�Y�cl/D:�
g���=�HU��J�9G]�!���-�al���'����=lW'w�Nu;-��������c��t���|��
��Foa�������T?���s���
 c@�3	���4`��S@H�V|�p:�h����vWJ��e��}���S
I�"�G|IF fh��_^�������'P������;�d6�)�nkk�m��;`�ew��j4o�.�/���nD.���s�ji�
�J��<��<�T�'���8c�����;�d1O��[���l�c���HO�����tw���!����6���v)���D�#�b��9���}�l{�.��_<���H��T�Gm�1F��$l�B�6~�[�D+7�(BN����kY��O���m�?����HL���k�p�;m�O�>�gx�,�����������!�$�3y�L>�3H����Y
�G����-�����������a�����E.�:�,Y�Z�\wa��i�1����o�Qd<:V���I@��:X�u�c�:>c��/}�����\Hb��z
our5����)�w�4����m�g����%������B����.���8]�����~��c8�\T�������u����w
5(]�����M��z�����,�j���<9u9(�����n�@���yB��G�����������Z�s.U�^�*���#���~3��,H����(p����Q]Ma_lO�����_XLu������T;o�r���T6��;(��m7��u�<1�����������
]����W-g�ei@&*�"_��Z�-ZW8x�ews�8��Me���C!����G9���&
�s��)E�Q�)E'�4���+3�4����/�9��r���i��_�^.��
��S��g���B_x��!�+!<�Gr�M8������E"� ���$���x(�J%���y��������)���0�,�o�1�A�(j
�9��$���S�B|ZdQvQ��L��7�F!�J���T�(4�����D/9_��9����I�����z,�`=����N�0G=��yxz�����C�~���	&�����b�����T�*�Y�yie�t����C�������*�����x�?7����T��s�A����4��L}iB
s?d�-��TvO76�K	WZ��96�����_.��vt�������'/���G�A����+��w�����@J���i26���}d8X�u�F��6�=%�DW��p������c�n<��}������F��5���EMQ������i�hi��g������p��>e"�4��	~��>��
y�[���l��Km(9h�n�$�����KM��0��u�2�A|��<��< ��3&�VL��#T�!
��;O���&���T����p���b��T����F�Q|'$���3[��Uj������\I'\��W�$���2�m�[[�8U�In��p<�����l#s��Vsn���D?�n''�4}�:��e�LKU�)+f�$�������>��*�����Bz4
_#&l���D��|��>���r
z��R��(��k3�i�V���^��#X<�#��xN�9��XR/�D?Cr�d,�cR&}�R*������ ��/�!�rQ3���� V��e���I� ��wK�=���@�����5��;9O�N �tZN�)�)c3��
�=	w�]���}��q.��S9jDG#$���2�q^�|����������7G��.N>��^���!t9����p�Q�eN7�Bu��z0s5��43��@��n��y:�Vvsu~f%��������P�An��8��\�����Z8��n2����v��9�zz��\k;�t�N8��3�:���EPc��CBu�}���G�}Y���_�%X���d���8����t�
�c�|�Q>�95u�wBg~
]64��1u(7h9#h�4Mk�Z�oy��QG �s��:i7��f:��Z�T#�P]����ey#����*�O��_	�3��z��S��C������pe���6	���h��!!`�21�	�!w��?��n�����0kwc�>�O��L��8&�op�k������w���gC'+%���4�L�R�����J\�
T.���@��;<�����^[=��U)������,�[�3�k�>=JI�����A��F�)U$����:�.KPX��n��J�$u�b�W��i��e�_��}D�z�x8���.:�5s_�Q�E�8x���&�[Wg�F6�;#7J���EIF�Z��_�
t��]�:|�'�����u�-���u�|g��NA�W��c%M�u�?��AiA\�\�!-�����h�Z_a�YtQ�����k&��������������n��v�iUkt�����kE�]L�(�����7[��A5-_����F�/_��Z�m����s7{���e-�������n�j�6:����e�cA�y,��������MHM)��a�gVP��3�&��V:��1�Ut��f��YO�h6[���M�oc�-^T�,j!�n>�5��)?������q����f����?����O�+<���`sg��_W���^���}��RG{y����x��o����V6!����@� \wLrd����?vh�r��}��A/���H�8�9�j��
j�d4\L���K8a�Oj�'�B��yM��^����lU_���^in��=��2�`1��>�y�����f{o�n��i��<�I�S�+�.���J��������,[�k=/[����[~I�����Wg�+�@��j�u.a>�&y�\��5���EW��>����r�''s��������4r��8m�?�����C�F|���O��Z��NN�u\Za����X5����S��N��*X8�d��	�����a�N��iD��Ro����������OK�Ai��y��	�t^)?�h�e{x}0/��m���M��v_�����*x�ZP'��B��OaPgAeG��'"61]��E�~��d��5Io<�Bl�O�����:�X�N-��)�/o�������HO5�n�q2M�R�*��Y4�:
���Je�(�o����{��#���w��YngM>B�3��5���[_}���xj����O_$v���A}�J�^���3t��+KP�_.�ncyH�5��{1��G����eA�
�o������t��J���b�U{�,�7%)��R^'�-PG��6���u�J��J�`����������$:��D����6�U$�q�x������Bf��:�P�/�s�[,��������U}6�j��w�N$u����0zow�C?��<O��|���X���;s�E��G(������*�Lk���T-����{����������z��V�0�Il��^�������fN�1�o�����yE1�]���y�+��0n����]*�����j66��c�]���WbX{����7�x�^�wQ�Ya��(�J���c��<c���L�I��.S�}x���&�S"$����:����
^��W����=��������fP�yJ�f�M���p]��#f�%����mTWq4rj��"&�J�,(~z�s��JP��!8M�^RCt\Yo�\A3	bR:���J��4��Fd���g���K9�@���3�����a2�����m�W�2nj����NA�|~��0���b-�bc�z���T��d�(���I1'�m��l�W����As���?�_�
��M{�����oZE�;��sZ�6�#�y����K���9�U��Bi�LJp�_�)���m�6�������c�+s���X���X�4�	���C�u'���<Mo):-���u�G*���g���yL��6�K������x-���������5�_��i'��wv66�������eofV�����j�n[)����Q=��f���o��V������x l@�������_�$Q�1�I
�0�-�4�I����f1����(MBy��<I^AqF3�"�#d�J�lgv�Q|N_��pHk
�0�i<��
�m�5QW�}*��3X����k��N��E�,aV�&�����#�1rre.)�2a�1�� O�x�-4�9��h���P'Nv�?0����2�`~}	���"�U��F�m��0������)�*��,�����x"��c`
c���Q�M�J\L�!�G�1��a��u4&�����o�K�������S<����`!�"���X{ ;0�����$S���G��0�-���a����VH�E��_�u]�.������+J9��0>���[
n��&f����d���>g���g�����l���*`6��7�Y�p:�n�
H����T�����5|q� ��/�y�A\���	��RT;'���y�tL��,� ]��.�<��K'#uXhE�<�����zW�a}��v��.=����c�PA�4k�q�.�$0����o�A2���%�'� �eT4N	�|�^(����u22�D�����_�F�������	���;:�x������������R����O 3������6��� �����W2�^����NJ�t^ �_�8��Hl�9Q�6C
�
��������-�b�8������cJ�[��lF��9�+���|5��(!�
T����8���k�=�(�}��������g���w�w`|�=
�HB���)a���>I��<����T�'��h|=��z�J���[��J���B�9DVH_r
��7��.���pO����H�G����i��-b2�lP6��,eUw4�&���*>����@�q�����bJ����o3>�����
�`��Kb����J�4&>M&/E[����dW�!��)a�`�9����O�YQ%�%��{{�)kw,
u��Q�����`d&d�OK]������`�p;ddM/|6��^qo��J��U���
��s�H8������G�o����/��Bw�' ������{�J��7��$)ED���y����o/NN?�;}�����������_�9|#�%h|�]7�0#�*�����LE����{|T�!���������O�X'��p���X���[��l��! ��i��V�(���P`�d�%>Tf��h4p���$_7�]�C(�3s��"�=�l���D����S�������D�c�j.z�PNK,>���Z@���Q)�
�}�Fg�����n���(�"�1�`�R&|(w����3��trK"(�U���!$O��x�����Da�q�������I�q����5��u�6�LKc�Fx�������
�+dOi/n(K����+�c����9$�/4��@Y�J��s	*�M�����+��Dvt��/�UQy�����:D?w;��tY���RH�$��/���Y��B.L(pVd�����]��q���=��$]U�n�F�M�U/��*�$J������gN3`��{��G�J���D+��&���32>��r�����]A8�m�M���e� �R%��S���j�����Y�(H�#UwKE�"v����@�^p�8���Y<��t�$�`VM�\���4�~k������
��vw��ull��'<"�8���������X.G�T�/M�^�]�G���K���;�W�f��^���]�;=�m��]�k*M���@_�MDU�y��z��������^mU�t�HK*����F{[}v4p���q6����v4�5�K����j`���7���h�/��t�4��0������!�P�w�!�6��`o�R��E�Cs|���?���HsL?�$q�4Z���������4����N��K�����/,�*!6�����_����t���� o�t���PiI����.��6�W^���1��0�R���g��u���V�WJ�J~�
]��GP��4���O���fe�z/�����	�l���:[%V���.���Hj�yi��_g _1����4�;x~77`/�{��?
�x6i�oI��&�I���s�Q����$��m�5��z[q(�C��>4(�C�"$v�o���LR������
���3�������D#,����������	���MH�I>H�z����|��;��;�Z%�����H]�wq�8F�/�����s���U�Q;4�`E���Z3�-IT����������dIPK_�*���
Po�\^^�rY��@7��
�Sp���
��*��j��y����� ��
r��|z�

��|m�J'8Y�����i\�:�|#Wh+��Y�qq[���:��*U|'�����(��dNC�|��.�>�����B��T����)DW��mB�S�$�W�w�Y�L/�x�js~?�u��$�4�,��62�[;����gA��(����.\��Qkzv_@�#�Ls�T
T������������-0(K�O^���_xU�F������"/��E{�d@���P~3���=��O���R^�
�YP��#����mJ����N	������V
-�����p��R_�q�����'�bV�WF��B��|~-���H������0�v��wv{�w�����E�9�����Q
�����j�����w3};������_�&�e�B������D�EB���r>px�����r�K^S�� �
Z��Sbh1G&wp�����V����mF�0=������������*�a�^?��
��{�]8�1;����Y��I��z��L�(���O�����%cK�o3t��%���RH�Pb5;,@�&�:iI����-������LScMH���uyb(F�w�QD�\4���Z���Y8	������s
�UE����7�KP���v��(@^v��<1�CvH�k���m�e�iu���J�������ew�����������������)��5:/J��S9��P"�����p�Be�4�����W��6���n�	����L�����&D���L�h�C`�g�i�����t�@�$X�������/����Px=����=�BjJ�6�*6���W$�a������{}�,���`�f�l{�E��Bn�x�/�;��y��Zm�de�j+X��M��Y_B�9�7�A������)*����R����<xL��u~cU���0����]R|n��I��a:5T�
�r��>����������-�����^'s�6�Q���=��A�g�9W����1�E���&����1��QP�J'Z�L����iw���W
��|��FWW��x����S+���M���z��cp�0�����|2��D���N����csnEO�=���dbj��������;a2���i%��dt��g�&��>q���L���Ts����n2������,��|�{���/��Dr7'^_lF|�s���Q�����M��O��?���,��y�Y�&����=��`N�^%1�B?r��0���Q��	�^����A��{���Uy�������{�^�Q���n.iygo�q��P�-�N�*[@�1�}�������	��af�9*�V��

Ku�5eE�x���d`
'����*�0e�}d��z�����w�=\|_2��m@e�).��qf������<�	���?�+�!����������}�-#��y$Xo�C�pm*���������+y.P�F�)���p{k��������V]M��f���4d��p�	��}��(�L�����?���|4)c�01p
�-������R6��f�Y�G����y'��-��2 rt����j!������l�P��|;�Q�c[��q{$/Nv|��	�9����G9;yz~�������������fK� ������G�����������;���,ah+��<�MGIj�����<�+���2%����;�x�B^���.j���d�&����HO���B�������E�RVV��;J�|a����Z)7��Kr�j_���������FI"�(���s1�k>���)Z�&�%z��������O��_k�������X(���I�l���0���f���w����/���SLjO�_9�������O,�9���:�B
#'D� �6��YI/�#!�-���V����"
	�+������~�����
� |G�>=|y~xqr~zx�V:�y��_lo}����b��)9�I
����5z����%�3{���c%7���oN><f�������| x��k���K�!'�����W^bzR�����Q�O���������a_�
?'-?�g���k��N�X���j��9�|�G�	��	�M��c�/'�����9���	��X���]��x��<$�E����D��
�$h�mH�0�������8�u��rT����{��W��m��b�;I�f?����w-�P�f�����}O��B���xY/�f�H~������t�����#�Z�������,c�	��r�,��p���@��t���?��^�DW�n�Lt�s��C>g��,��I�~v�^{�����N{�b��������p53�4-i���v�!f9i�5-����G,��&#�Hf�kx��X:\��0��e�R>k��Nx;� ���u4���)<v���	����{������,�9�,`�kjD�{�-�D�u����4�����u�a+,�Z�#�����������A���
-'�J��.���������������[����k��`W��u4�p`egP�N[��(�4``�I�~�$�:��������GATv�#�\q
��|O���E�� k�r=\J�Go2�W�W�;�=��������:�KaA��M��r�-NB����w��F1�^!�,$�ab����K�M�s%�a;7)���9��������H�e�i�rN�F���;���^��1O^c��}��&V��Q�KSh�a?��?XV�"I�� T'r���!��
g��/�Zs<�7"��Yl0�/��������[w�Nw�#�ue���@�d�SY���~� ��g����J��
]������Y����h�^NpW�����J�� �d�%���^_���h�hl�3=�Z(w��(��?i�@|�)���*8�#�%�43��:rL����������d<��JQ�t�J���IX��������f}���D_�M��^<�<�<Et�
Uc�Q���������3w^���X����4��>]89M�>�R���E�����8���p�>����>���H��%��A�|����\�����1�:y�w�B7��
��C~�^;^v��]P����{��q_+���g�oLB6L��t���E���[�k��l��[����c�:��v��nt����0�[C�r���?��Q��xo`��`m��X��-�0.<�	jU%fx�d���y`�q�k%3�=����~���Ba����t��x�P�2�y��O<`FN_��Tooo�]o��f%|7J.��z�F�dr��w0����6��4�����(�4����)���a���qZ;�������G [}<&���Ts����)Qm��	��$%��`>�4�!M��L�	�����j�������3�
w.��%�����/�K���>b�;*2sq2�h\����-y��_�;{����a��[-<�	�!NK1�vy��-m�m��H����6w�nI����C�F"�Y��A�S�K\\�>���e|1J��G��M��?W����i����}^|n>o_*Ht4���=W?�������O��[���R%k4DWw��5f:��x�O���B��mE�-�����!rx��@�����.�a����*�H�E���(���Y��W4w~<�@��r��R�{�D<����(�����FV�9�?�	#	��'(;U��_����o��c>����G
3�~az%>��hB�5�OXlGr���L#�V���JD����=�`�!?c*3��:�X���Y� 1�H2_ku[5���0�j�dL"�,��
��af��{Gh}���V����`sq>��lZ���uh���^J�'�(�����B�PCO/��%>����s[�N�#�C��-��&z��q��9?{���21A������l��S�cM@v��}��g�h����������#�n{��k%�h�e���0����!����ZW�$�H�
���6���a����7`�Y$���;�����t���!_���I4����Kg�)�}t�5qAo2�$�=^�|��h��yn����nCq"��<3�Kut�tDJb�t!��Ew��=I�g8"Gh]��7������������O�4��G��9�+�a1Q*��Z6����{����l��7�&B����q^���/��me�v�+��H��Ix���dnj�����hE!�6���L��rvQ>�y�5�1�5�<�r�.����$���p��0�[W#XJ�R�aJ�wK=���!�K�N�nwY�"���s�����j1�y�h��+�,��G5�(z���N>u�@v������i��G��L����������A8����x�k��o�#B%���{X3%���Eq+������>T�i��h5q�3�F^|���
�"
;��;�MM����	��e�&�2����V����E�2-HP�������d���`S%v'=1��L�� �4��G�o�j�s����4"�mm,"�C������TXaBUc[g���GX�*���#��}fSC���������^�������������1��G-]������G�?�G�p��-c���W^���v��I�I�2�������]��E�G`��4�eZ���Z�qt���l
e���1�����,����`{���������v���G�����P��9�+���A��s�k��~�"G ���Z�t>4��Y�ez	�����,+&w@�W�j\����(���q2�.2�I5`��s%h�mg��������N��)���z���r�X!OH���8CO�v>O�$Q�x�(#\-�H{�$�!?���m��,�[��*yE ��>�9�~��E���)_���� ���"v���T�H�D�3��s2
����h&<��9���0�o���*+�`
�HZ�q�C���gx���&a3���n�q��h������2*/������U4�/�ja�����.s����B)p\���H�{��]��k�6q�����)iTg*��.#R��E��6^�����G><~S��kd�����oo�6��$����({5KQ�E~M(��I�0R�2mC��`?�Jt����Z���	��Cr�fk������ba��������9���ZC��&
�9*���fT�%��c��4�����wdjh����10���p���DBl�l����{��g ���l�������G!�V>����F�P����������������r[[�o
E�Y��h��>����& I���Y����.�3�6�|�4��tB�iM�]��J��c�����k�#-Mm"Z��+�E���?:�;�X��o�qGh�d�C���m�%��p<��u(�����k�C�
�/��Fo��'�~��r���gJV�����
�M:
q��n�e�:hK��� a>=L����c���fT~T|����U����~E�H���+���jK�3����G3��X�A�gW���s����v���J��|����<+W�`��y�x��L"�_Or�<2��<1)7)fd��Gy��$�����L�(���P\^���GW��'��	�%�cm)'t������ww��/|5a>�����rH�����i0K�/+�;���0��=D��:�[�.!Pmg���J=��uE�cM��V|�L��^�t���}����	#j-��hli��%-3m����q���1;?��)	)VA�T�
�.����d�o�~�phWV*-����F#H)�w�-�&��>:G��q~�h��M�]����>z����%G��6�7-O��o�k�T��XZ<�1^no����]�6�r6��{�������I^�xy���5OA �9��2��F��pBO��YV�����9!x%����I����,����*�BtF�����3]���Mt����`p���^������E���E������(��=9
~D��h�H�N���ju5����=�
V�| Z���<��:�fu���Vk{�g��rG�
g�fy?�,Z56�T��3>�OI�!�����.,� �j{Q�V�������������������������oO���ya��j��Xd��I�U����"�����p����y�����y*Ah���XZ��Jv�J� �,�3/ O^��X���p�\�[��"�����u|�s_e�����
���9�v,2��7����8#W*E�v�k�8g0�,��<t2��;�"D+�d;-��u���J������e=%���a���|#'�d��:����)���K^�1�����3�����,Ga�;AW���`E��J0�e�D����ir���"��y�U�(�Y?��R�+���*�@P����m��
l�8PO-��N�v%][hw�������j��~���?�os�d���	��}�G�??:!u:�;����%��7z���K���~`��JZ�,ZUe��9x����=����=r��bE����O/����k8sx��A���)��R_4,��$�vMJ'����[oo;��2y^9:��G�l[^�����"���x;����>e��on��68S�`��c��z��ym9=�.!��$���v�`l��+:u���o�����)���\+R��9�#C\6��ETz���B�t{4������vb��{��Y�MFB	H���JDT[���#��Z��\-�S�!�y�r vk {�ub�i��<,��/?�'����p9?�Nxz4��& ���k��;$��F�a������5��d2��+��d��4�(�V����O$
�Q��]���������d�@�Tq��w�
0q���x�h�T�����`�;��N7�S����o�IqL�P�^�f�}�q���x9���+��7 $
��,r�ztg��0�����.P�H���F~_���qd1G:�-w����M������C'�����^���-C��O�d9Mn�s�eB��������[���koo:w��d�e2�k���H�s/%����d%<���e|�����:td��%�n�%��y��e�$L�i�Z���X.}��3�������$%l��Q�
*��5��~=�����tXh�c1+PaPJ��
n���J������c�k����F���W:��l���,#sc��A�
I��������Q4&�l|�n������J����)%@�	��<���N�,�.�`��2�p���G�V(�vpy�%��2�a gm��r���%���RgI�����H����F<V��y�J�s$J��l��
W��7)���Q��i��j�GrS��Uf�n�
	��	�]��j_�g�z�p�����Q�o[������F�u���os����#e(�Xmg9he�	�VAmT����S�U�E%�T�z]c�!���s+����y��O��-�'+��9�6�,w��R�H����AK:n�}�oTj7�@����/-}���.�!'�J�.:h,Z��2����v���n�������:V�z��q�{WT#L�"c�)/_����t�uvP�V0��������Bo����TQ���}�ma.���j�����^�V)Q��.�����`�}��~������i���rN	�9#�~�7I��|�c�|��-��j	b��!W�mr��Y�1>(x�Y��M�I���h�����Y�)�9��M�!��}��!3J�9�M����7��J�0�����wN���hv6�g^����,��a<B8d�KJ���S�"����ht��;���P��R)z�p�:����~]���V�-y��z �w��i_{[[�^'c8���� ��S���'����t+\�����z�7�Rvj�x��X{p9���oy��d�b�Q���Ml��R��x�t�ew�9������N��=�9��8^5X:���,O�pe�aT@��)sO!��g�8����%������_��&���^m��;����`{����5���5��I}"��2h�R���e8#��C�u�%x����}�TD�Ds�����$$[��#Lhs��n��<�)/�4��L������h7%?w��cmsh:�������?����#�|tv.^"s����l/Up���R�,���z1�x��YL���,�R6��"���U����
a�#uc�U<�9��e��e���Z�.��&�{ooW��
^rJ
r�~�'&����F��3���F�����a���|4�JP���K[�|��%����i�m�t�&�g���iv� ��.g���-�	�V�i�^m�s��}���W[�U,�8C���0n�����S�(,�OI��&��DE`DE��q����T��:tt3��	�2���D�%�g�k�a��`�e��Bq)rf���
�I���0��N�����%��jI��<dN�40�$#����~�������d��[���|Y9�(��a��@uR
��)/.�|��q��d/��% A��2��l��S��'�(PnD�5�a���>�^95����b��j��J��]�$�ol�{Q]���
M��M���NU�
�h�)�������lc���X���@Z�����M��+��2N)s����
�s���1.K����(*��N��/B�W�����O�7fK�:-���b�'.F$)�*���.o����b��E��#j���8������2�e�n�����Y�g8$��)�:u����sCu�K�H���Iw� `'_��+�����m^FW8!J����%�S�V�r^�y6�P=���p���\��������gL�A��n'��RG�sz��x��'����5�HS�0�b_rI�����7m,�����uD9���5�sY�p�M����X��1A������=�EZ�9�3���#E��������vJ�Q9`��U9����	��)Wu^�c�s�����^�z��C��BTO�|������F
i��4.�>�����h�����	���%���D�r&1��\��A/��2X���LW�(kvo��Gh6-��l�����81�����in���������\��&k������ES����K��#N�w���:�P�Y���mU�fU�
���cQZ4����/��0]>���<��M��@@��:����;����,������|�E_O�c��Y/3�h��W��X�-����_���*h�-_o/a�.�/L9��g������Fg��y���6G�]��a4��x���j��P�p�J�0b��6H7���I�z�?���d��Z5�Rvc����?������8:?�pq�������R��]$O"qp�(�*�����9��E\��(�m�\	���z�"��"��L8�W/fK[0�+��
�RX���F��A����!�{J�A��ia�->?�5�^s8�9�'���hf%Qz"�&5�v;.���kQ�!JW��<R���fp�>�Hrwt�'�p3�����l���*��R�5g�����e�i4z��cL�����>�Y�d\�.�X��<�D�t��Y�/����X/�R������j��F����]�v������\�������j����6�Ka{�
�g�p��h�����;���gm�`W�Ee�A���[a2�@d�
�;$c�8��h��e
h�;�l�j�3$�|sw�3���KJ2�/���/���!<����y����S�����<�5W�������b�07����y���qvH���{M_��8&�*F���;�<)�Q��1������{F��r0/�Kg5h������SSfj�u�r_����Ml�	�6�}`�vw0c<�~�S����E���f��U�)>���W�=���P/�������hIb��KRg�Ff@��h�~��w%EY�"�
EY�����a���R,��ofK����$)�@<Ug	�|��
!���8IP�'����l��$Sk�J{�X2��[���D$UJ���X��pzuqm��������i�Y���M}�*7�"A����u��.����u~o��qG�y5�n��!���x��t�)A���5+�P��feU+�f%������J�����]nU�k"�}~��t���I��t�}H����+�!������;@_wz%���	���0��f(LK	V9a~����@�~A�D�.\�Q�Y�Y���>��N9#��i���k������8)���FS�V�l{B�s}�{P`���� �u
�Z�NA`%HJi�}�H���x@��(	`�H��'�wj�i�����
waJ�a����F]QA�i�ev����+����B��T���H����\��mI�b�2�����RjT�{�t4����wvC��.�e�*�3N9a
�l(AJ1s
������q��1�	I9���;��%����w?�������������������C/QB��%�c������Cg�`5=�%��f�����(%��T#��;y�������-�K��E�����[��z�0�m���j���MS�'�����D���]�7g�����8��x4���VU-����&7�����b���/�A��o<�$��Z�������������Onp����_�*�O],��hj"�N�#8���������8�/�	�2�!��(�+F�H��V�T�\��=��U��^/]-�s7��A����^)TRV��)��uh%��l���MLk"V.Qv���g������� ��&X��M�+��
�t
#36Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#35)
Re: GIN improvements part 1: additional information

On Fri, Oct 4, 2013 at 12:28 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

Aside from the pg_upgrade discussion, here's an updated version of the
patch, rebased over master. It also contains some other misc refactoring
I've done while reading through the patch. I haven't tested this much, I
may well have also broken something, but I wanted to post an update before
the weekend.

Thinking about the page format, I think we should start using the
pd_lower/upper pointers in the data page format. For a non-leaf page,
pd_upper would always point to the beginning of the special area, and
pd_lower would indicate the end of PostingItems. For a leaf page, pd_lower
would indicate the end of the compressed posting list, and pd_upper would
point to the "leaf-index" at the end of the page. That matches the standard
page layout in the sense that the space between pd_lower and pd_upper is
free, although the data stored in the non-free areas would be quite
different. That would allow us to mark full-page images with buffer_std,
allowing the "gap" to be left out. I think that would be a more natural way
to keep track of the used/unused space on the page, anyway, compared to the
current maxoff/endoffset field in the special area.

In the attached patch, I in fact already did that for data leaf pages, but
didn't change the format of non-leaf pages yet. If we want to support
pg_upgrade, we might want to refrain from changing the non-leaf format.

In GinDataLeafPageGetPostingList* you use sizeof(ItemPointerData) without
MAXALIGN. Is it an error or you especially use 2 extra bytes on leaf page?

------
With best regards,
Alexander Korotkov.

#37Tomas Vondra
tv@fuzzy.cz
In reply to: Heikki Linnakangas (#35)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 4.10.2013 10:28, Heikki Linnakangas wrote:

Aside from the pg_upgrade discussion, here's an updated version of the
patch, rebased over master. It also contains some other misc refactoring
I've done while reading through the patch. I haven't tested this much, I
may well have also broken something, but I wanted to post an update
before the weekend.

Thinking about the page format, I think we should start using the
pd_lower/upper pointers in the data page format. For a non-leaf page,
pd_upper would always point to the beginning of the special area, and
pd_lower would indicate the end of PostingItems. For a leaf page,
pd_lower would indicate the end of the compressed posting list, and
pd_upper would point to the "leaf-index" at the end of the page. That
matches the standard page layout in the sense that the space between
pd_lower and pd_upper is free, although the data stored in the non-free
areas would be quite different. That would allow us to mark full-page
images with buffer_std, allowing the "gap" to be left out. I think that
would be a more natural way to keep track of the used/unused space on
the page, anyway, compared to the current maxoff/endoffset field in the
special area.

In the attached patch, I in fact already did that for data leaf pages,
but didn't change the format of non-leaf pages yet. If we want to
support pg_upgrade, we might want to refrain from changing the non-leaf
format.

- Heikki

Hi,

I've attempted to rerun the benchmarks tests I did a few weeks ago, but
I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

The exact crash varies though - for example this is the backtrace on the
first gdb attempt (second crash):

Program received signal SIGABRT, Aborted.
0x00007fb3c0b40b15 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007fb3c0b40b15 in raise () from /lib64/libc.so.6
#1 0x00007fb3c0b41f96 in abort () from /lib64/libc.so.6
#2 0x000000000072753b in errfinish ()
#3 0x0000000000729c1a in elog_finish ()
#4 0x00000000004721d6 in dataPlaceToPage ()
#5 0x0000000000473d51 in ginInsertValue ()
#6 0x0000000000473262 in ginInsertItemPointers ()
#7 0x000000000046d915 in ginEntryInsert ()
#8 0x00000000004792bf in ginInsertCleanup ()
#9 0x0000000000479b32 in ginHeapTupleFastInsert ()
#10 0x000000000046e0b4 in gininsert ()
#11 0x000000000072d733 in FunctionCall6Coll ()
#12 0x00000000004977bc in index_insert ()
#13 0x00000000005952ad in ExecInsertIndexTuples ()
#14 0x00000000005a235d in ExecModifyTable ()
#15 0x000000000058c4e8 in ExecProcNode ()
#16 0x0000000000589ab0 in standard_ExecutorRun ()
#17 0x00000000006603cf in ProcessQuery ()
#18 0x00000000006605fc in PortalRunMulti ()
#19 0x0000000000661142 in PortalRun ()
#20 0x000000000065e4c3 in PostgresMain ()
#21 0x0000000000465446 in ServerLoop ()
#22 0x000000000061f553 in PostmasterMain ()
#23 0x0000000000465cd5 in main ()

Then I recompiled the sources with "-ggdb" and I got this:

Program received signal SIGQUIT, Quit.
ResourceOwnerEnlargeSnapshots (owner=0x200000001) at resowner.c:1077
1077 {
(gdb) bt
#0 ResourceOwnerEnlargeSnapshots (owner=0x200000001) at resowner.c:1077
#1 0x0000000000872228 in RegisterSnapshotOnOwner (snapshot=0x1f9ac60,
snapshot@entry=<error reading variable: Cannot access memory at address
0x7fff6b6151c8>, owner=0x1e81960) at snapmgr.c:588

and then this:

Program received signal SIGQUIT, Quit.
0x00007f48d298b8f2 in recv () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f48d298b8f2 in recv () from /lib64/libc.so.6
#1 0x000000000062ec6b in secure_read (port=0x1a110b0, ptr=0xc5f840
<PqRecvBuffer>, len=8192) at be-secure.c:304
#2 0x0000000000639e31 in pq_recvbuf () at pqcomm.c:854
#3 0x0000000000639ec9 in pq_getbyte () at pqcomm.c:895
#4 0x0000000000723743 in SocketBackend (inBuf=0x7fff3522f9f0) at
postgres.c:344
#5 0x0000000000723b22 in ReadCommand (inBuf=0x7fff3522f9f0) at
postgres.c:492
#6 0x0000000000728218 in PostgresMain (argc=1, argv=0x19f4b50,
dbname=0x19f4b38 "archie", username=0x19f4b20 "tomas") at postgres.c:3953
#7 0x00000000006d27ae in BackendRun (port=0x1a110b0) at postmaster.c:4083
#8 0x00000000006d1f84 in BackendStartup (port=0x1a110b0) at
postmaster.c:3772
#9 0x00000000006cea47 in ServerLoop () at postmaster.c:1583
#10 0x00000000006ce150 in PostmasterMain (argc=3, argv=0x19f2a10) at
postmaster.c:1239
#11 0x000000000063c0a8 in main (argc=3, argv=0x19f2a10) at main.c:196

So it crashes at various times, although now that I'm looking into the
log I see this:

LOG: server process (PID 12326) was terminated by signal 6: Aborted
DETAIL: Failed process was running: autovacuum: ANALYZE public.messages
LOG: terminating any other active server processes

So in some cases it was autovacuum that crashed, and the other processes
were killed because of corrupted shared memory.

But in all cases there's 'not enough space in leaf page!' right before
the crash.

The behavior after the crash is pretty consistent too - I do get this:

LOG: startup process (PID 26259) was terminated by signal 6: Aborted
LOG: aborting startup due to startup process failure
LOG: database system was interrupted while in recovery at 2013-10-06
01:26:48 CEST
HINT: This probably means that some data is corrupted and you will have
to use the last backup for recovery.
LOG: database system was not properly shut down; automatic recovery in
progress
LOG: redo starts at 0/2B0094B0
LOG: startup process (PID 12237) was terminated by signal 11:
Segmentation fault

or this:

LOG: select() failed in postmaster: Nepřípustný argument
LOG: database system was interrupted; last known up at 2013-10-06
01:39:38 CEST
LOG: database system was not properly shut down; automatic recovery in
progress
LOG: redo starts at 0/A013300
LOG: startup process (PID 12441) was terminated by signal 11:
Segmentation fault
LOG: aborting startup due to startup process failure

and then I have to reinit the whole cluster because the xlog is corrupted.

Attached is a log from the multiple runs (and crashes). The test
basically parses mailing list archives and inserts them into a table.
The unique constraint violations are OK (i.e. expected).

Tomas

Attachments:

pg-master.logtext/x-log; name=pg-master.logDownload
#38Alexander Korotkov
aekorotkov@gmail.com
In reply to: Tomas Vondra (#37)
Re: GIN improvements part 1: additional information

Hi, Tomas!

On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra <tv@fuzzy.cz> wrote:

I've attempted to rerun the benchmarks tests I did a few weeks ago, but
I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

Thanks for testing. Heikki's version of patch don't works for me too on
even much more simplier examples. I can try to get it working if he answer
my question about GinDataLeafPageGetPostingList* macros.

------
With best regards,
Alexander Korotkov.

#39Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#36)
Re: GIN improvements part 1: additional information

On 04.10.2013 14:13, Alexander Korotkov wrote:

On Fri, Oct 4, 2013 at 12:28 PM, Heikki Linnakangas<hlinnakangas@vmware.com

wrote:

In the attached patch, I in fact already did that for data leaf pages, but
didn't change the format of non-leaf pages yet. If we want to support
pg_upgrade, we might want to refrain from changing the non-leaf format.

In GinDataLeafPageGetPostingList* you use sizeof(ItemPointerData) without
MAXALIGN. Is it an error or you especially use 2 extra bytes on leaf page?

I didn't even think of it. Now that I do think of it, I don't see a
reason to use MAXALIGN there. PostingItems only require 2-byte
alignment. It's a bit fragile and underdocumented though. It probably
would be good to have a struct to represent that layout. Something like:

struct
{
ItemPointerData rightBound;
PostingItem postingItems[1]; /* variable length array */
} PostingItemPageContent;

And use that struct in the macros.

Then again, we do currently use MAXALIGN there, so if we want to avoid
changing the on-disk format, we have to keep it...

- Heikki

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

#40Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#38)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 08.10.2013 17:47, Alexander Korotkov wrote:

Hi, Tomas!

On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra<tv@fuzzy.cz> wrote:

I've attempted to rerun the benchmarks tests I did a few weeks ago, but
I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

Thanks for testing. Heikki's version of patch don't works for me too on
even much more simplier examples. I can try to get it working if he answer
my question about GinDataLeafPageGetPostingList* macros.

The new macros in that patch version were quite botched. Here's a new
attempt.

- Heikki

Attachments:

gin-packed-postinglists-9-heikki.patch.gzapplication/x-gzip; name=gin-packed-postinglists-9-heikki.patch.gzDownload
�cTRgin-packed-postinglists-9-heikki.patch�}y�F��������:�@R�nY�{mYv��k%�;;��~ 	I�)�
�R<�������A��23�����E�P��W��w���+��^�3�g�p}?G��z8FY�~O������x����x2�~U���Q�����`��y������n��|�f5F��Cu���]����x2�G��o�Y2����h�m�I��'�p�TM����<WG
:���q/���I�3���qr�E�Y�e^G�s�B����j���,��e6'��u$��������4�2M�!}��������*���fP���&��������i��!7Lno�I��ssTc��N^�~R
|~/�����9��&onmnD�6YzX����6xc��;L���P]E�jv���p2R�1q�)��D�v>�Q�(�6�,�fa<V��1�A���M���ISh���0�����4�U�d�n�;��%j�@��Y<���0�D���*S�7����*o#�9����f0��t�������g�k��u�����%��c�Hr�}r���D>u���!�\��Y4�h�6�z��	T��xWg_�Q�Q��Le�^�|�W�<:�"�it�jg�p�MYj��)����z_�w��BL���y�rE�m<y��v�1l�}�~��j�E�Q�]	��	N�D�����0���M��/�2���J�^O�x2�I2Bm�u���Q��fQ�>���$���b�	��5��k�!L��3\��]4������:������w�o?�A2r�~�41�t�T7���4��a���t�~��P5����-5����7R�k�G8h��
�d��
C�z
�3��2G�f����D�I�AF���r�-l2��8���t�������2�Q��d>���%���4W3K�5@�+ F�!�/��v�]l��0h:�np8@L�2�#9
�p�9��K��H��N�I�L;����h|%k����4��)t�������BM��:��������Wg��.����n%�
L%�!`�,�s�[p�%�8D�~2��iv�0���p�(dx�6��7�/��1>��)"b@]���$�noaVA�A3x8�D3�S�O�
������8~V���@ol8����^��}G���<%Hy��Q���q��WMg)0��U3�������8Fru�E3oVwa:��d*E�����{2�.����qr��t\b��
MS`}�S�:ob )#��G;St���8S
���7�)�����R�N� 8���O
�L��'%pN�B�k���B�2tP����~�_����H��������h���"�f���#�>�[S>]�~�	:{ � p�L�����Q�9��W��&,*�L��>�
%IK��j�[88�Ff����1|��G�h�$��������9�g���0�&\e�O`���i��[����G�;9����{GG�����,�g���H��K�4���^�:�^����td�,>��"�EY�g IO<b�b2�.�'s4�f����_4�'3}I�����	��������=,1���:"-�R]�L���_R�<���s�-��1�S��S�VeH��O�"����xl�)Z�����N�w(XA+"������4�wg�A����'�Qt(��	���N18����d���~���������U?� �&�e���}D��1������%�#ro�j�V�M�jH����pH0��#6�w�m<i���=i��jg��a��e�������A�������k�xN/�<�Q����>PB��O�9����	|���=}�Q����Vk�b��ZS������
x���Wm�J�n���x
��z�@bZOO`���E�H �A&#��IB��&)���;���!�yR��>$�:�����<%uG�pR�:��wF,qw�J��! �.t� *@�
%��I�d\��0�l�d�^=P ��"c%H���* e$����o����1�i�w�`����
V�a�y��������� �$B�YH�j4�#�����8;��������K���b0G����#�����i�_�<��<>;��<?9�8����>lv��t=C��'���w���H�C�r�����>L?����t���}D�j�c�ZL%l3M(�@�F�^���}5�%NG�h����������d�k����'h������n� |�"��x��q����X�Z8�lH��F�Qm(3>�_��g��AOgH��c��-L�%/n~�"o�Bf6���N���	D��"����Q�_�7�s���f�nBkp%����1>�R6��2�(�MM��V�j�nv���a��T)���u��eG}�O�����9�E�C�s��z�T
����
�C/��)�k�A�
��{���m��<~�Bm�i4g@�#�L���� G��GG���m��!3�G�qg��������GT�d�q�*j����z�|{��k%�h�e���0��	����j��y7ida��7��3j��A����i|}l.�|��z���%sD!:WZ�fKGv1�p�"{gVi8B{����v�>�����K����b
@��:�\l��G{�-3�db97�^���o���Mr!�2qgW������!
4�^�E|Z������c����2��G +I(x�=If=X�,�b+6�a�?���Z���H)hLj4��t�^��.B�zEAwz��L
�lr2nv����^���O'�1��W�3l��H����x���!�
��@���@s�����~
R9�s����������72(;BUo��5S.����w�z_���Y~�1��~��l|���]����;K���??�#�=��%�n�e�����;��-\w����32��O�Q���U�w�irkl��Y��d2�����
�s��+�*�����~����vFkU������H��.��~~�^n�_a~Vi8���@\�����[��B�����������j��*P�$�b%��N�
M�/�~8aFx��8B�"�?G���@���`�O��$^" �-
l����hU<r'�f�4������WL��wU��8
�2;
�}� �9,��Oev1sq�����'p
|�6+��#��_��k�$�*#�O^�r����s�� �k�#��f.�0~�tdd���X��#��!��
%�RJqZ�hc���q\�\�s�3�
i�����K���f��Q
yj��PN�,)���7�.PZ��2�u���z�/�"P�`P�<����x�"������Z��M�6���7�X�������%P�`�[���\�����p<����tX��A�PJ��H����x��I�~��=�����,������}�	�#E+g�F�g��������P-���>�<tH����$�.�De%G�[���Sd���e��R8T�d'g/�Y},��08\>-�.wn��T)�8D���x��f)��]�G"�i�I�fd���U3Xg��BPG�V���m���1"&K���S-�9�Eb���D,���@��1�N�2����qm�>R� �a�y�����O5�����2r��G%�cTF�L��u��U���f&�������{8������F�
�����z�{���f�97/G�q��3�XN��"���TPCn�6�7aJ�B��R�A�}H+L��LL[8�Zk��\��
��-M�����P�?�; ���O����n��A�2PY�oQr�7��5�F�?u��K�= CEfa0�p���
��_@��;I�����(��n��B��G��	�,lml��~�`���>�:��(����G��bS���tGZu'���gJ�!�t��a���bUg���a����NG[[�H^���z7y���^m/��M����S�y���������)v��b4bNf*��	���|���q� ���L4��M.��0���P��f~�n\x����=�oa%�_��]�>�p����[�����5>,��"-���fm�(Z���eR
��x8���N�Q�1�l���r���`��e~;�&����t�=�v��}�]��^�ScS�D�d������T�1��y5iS��r'�H�Q�dtAP��|����z��%?�?�	������J�������z�r���?�K���//p�-'f���P��0Q�!BJD�0����K�>$$y-�G�����Wd����;�w���HR�	�fIe]�.�;-W�-=�n7��HC6�35��|vE�u8"��2�O�;�;����a�>I����E)~�� x����BA�p�"g,��p�f����e]�k���w���������k�����-"���a�����mTo�B���d����'���������:+G�:�.@����2������~����3��!�J�����=5���V��as�A��a��x���t"7|)n
����I�	���g`l�Q�J-��������?i���>�0D�����O���t�Ge|T��n�a�]i���>F�z�K�k�K�����Y���v��;
�
1������fY���A�n�q��?���I����twDy����2?�#-R�^]#��������E	vg����XJP�CJ^s�D�|���f�m�gG������$�L�Q�������v�1Y���C0,&����Z�?�!��=�]����vx�g
���#����@/a��&�o��Y	��R"
J~2K#�?�sR�3Z-
�����	�,;m��5���]E����n�.���mD���4�7������j
eq(=�7 ����zw!�A�ND,��(��I�a�G�����R�j���g����N�R��1y�Hm�o�~�k���g�[��wf�r��#	���x
2������_��Fp�M�e����f�%�C�X��.�cn�4?"�*��+��es}��=�5��NgM�B�Z���'���5w:���@@�i��^��^oX�i�������03xrKK��ph�L�L_�p�@
��Kt�
�����*����xRM����X�P�q�z�
�g�a��~[��c4����x�5JrUS�h!������`=Xr/���"�[D�hF%4O�P�1]���d��^�N����1������w��������y=N�_��=$B��,��~����'��`N"(tT���K������a�b����D��K�� �h�����YF�6/�D:��r�������*6����]r}
�km��|V��r�����������:l[->Qb�C_r���X>���B��5�i�)�Vxn���&th|&!\�H6K8�T"��t������q��])-������kNZ ��^���%Y�Y$��z���/���3OO�O�3����:���������0��7Ad5�;q�IG���P7�?Ow�)��������qW���G���d�|g I�T����������0�S<�V-wuc)�-H��sk������lq0�RF@��{�~$���� \�M�
��`���������F�F����[��>$m4���Ou�i,�(���E{�s�e�~x�o��C�J�AT?soMQ�8�'����9��ew+j�+���T3K����'�/���D�������������-9�������������1�:�|�T���wa��h�4���
�o�qd|W���8tHh����E@����@��p\���@�d�B+�kx/�����B������\?=�0��n��@Y@����	��.�����x�#����\�g�p������;m���N�)������75N��s�_^�6�����@���tZ�2��#}�����g�(�;���5_W1�]���[����!�`8-��~3����|&��(����VWM)a�lO�%X�a��_X�u��P���T�;�rH��T���kg(��\0�Cc~1F����������d])���d��U2�2Q1:Qc��ft���q��3����8�:��p���!�P�G9��c��l��Q5���*�h�/����_�����+f��m9������o�/W����i��3{�lp�0�|%4(���~��������H��D���TW��X]���:��;�5$U����v�|&�����<�2�Em�2'q@��!b�V�b��,�!�.JXK���������8
K�st����y�	m�p?|�B�s����t������������������&-��!���r��'�q��q��PH��iu�6/�L��8l�-����}���R���R������(���9�����d,+�&5�>�	Y��L��|���x6�����Q\i���Fq����_.��vzq�������O/���������D�V������B-�k>l���Il��D1�maGj�mm��S��A�E/hWr�j�:�������s<�
���C��t�,k�:��o�6]N�+=6-��o	�	�0��L���$�V���rH�AC^�Rj�/��J{K�a�[��7��tP��J��*nkC\��S�a�(���R���l��I^k��B$w@{��Y2�D���J�Gv�������>�k?"W~��'Ry��9��Yz�5oL�<�����DL4�U���������\�*��!]�z8.K��L���g'&����������v�I���o�'����i��>e{��$��R�(y���]�\�Q��Pl�&g���4�:Z�XJ�������v� g�'�)5����S���
�b������^�!=gk.Y%KB��!e��N�'�B3`���6��[�$�*A���l����F��m���r�8i\�n��S�*�Pi����_��y
��h�a����3;N���o8C=��um� �����0��hH�Q���;Jq�}���������N��O^_�^����������������@���8��|��4�	�a'�SgbOL3C�5A���+��c�eO4/Q��{��}���{7T[HPp)XV%�+��;���{���z��N�n�F����2��.=]����L�����jL��n�n~�e<��D��@��,N[�J���drv����7l��BJD���@����	�E%6t��4&���p��2���|uR�������pb8b������b��X8,O�p�5�;��qx���oT|��q��i��������\�<u�;d��Hm�gY�q7�������cG��vIh���
o���=���?>�N��#�A��`&L|z
S|�1)o�����f ��<����?�YG���HRc-���������U.F�ZI�$��h���}Wid�
��b�����;�*6�%�V�v� ���vG_]ju
��~��RKC�w��c�df�U���
1m�AR�^{{���O�/K���S����w3���8Y&��f1��1�4&�3��z:�(
g�9mZ��.J2Z����DpW��7��6���)5��6��c�I]#�c<�]�
�RG!���{���(�"J�mziu�/?*�d�W�0B�]T7���%���	7��:9I�zV��������%cv\k[�]�u���p_1wsw�p2/��-g+�3�����.d���j�T[��6ZMy�f��m������5����[mG��R�Z���<�rO�`�lS0mz�����dF�pf�������pu�M��w[��?�^3���/D���-mR�&��1��/�o��,o����4:?�����;������9��d������<{���ER���l�mu67Tp��������!	��aNFR��q���[l�����HxA/�?��4��|��T/����H�5�r&�C�j����+I��l\�/���*�p��h9������mG��4Gk�:k��c�V�������p9����+�����y�����lw��nt�M���<v
���! �Oh�����Z���T�����k�(/�����~Ec��2�;������u|_����M��4i��w����>]mE�,�-m�����i��|Ou��z�>�\�Nl�����:���_`_����&���hl��hW��v)������V���n���
�#9�`Bu2iB�E�E�n��V@����~��Bf����PNB�X�JSU-�8�n���{Y���Sb~�!��������S��6���}A��:���)�hA��]K��?�A��]��p��������)V�"���K�p"��'4Uv�:Apj� L1���AY�pW��]m����&�d�L�
�t	�h�)�����(�(<p�m[�wI�G|���`Y����p�g�M����\_}�E�j�����]�b6�Z�����C�Y�=p��T1����|���;����[b>�$�|�,�c����)��kM�!��`�(����jS+A�4�.����<���[O���S��2��&�^v <\*l��u�RK%�����@�t �i��PjeK�h��D>�zg��W��b3;�|��m��Y�]d�U����,����������f�|�r�X������PJ���nw�����c g��`U�������?R]�VN�0i��E*����9����7gRrr��������a�����S2� ��zu�W��<zNF��z�_L�����r�� ��"�,��p�kU�y?Zm����������2)���X�����+����"T�f���J�Ts����������L�%��K�(-Kq^��\]������e��aO����D�fP�/C(H�r�������&���y�����t�
����R�je�������p%�h^�B��U�5J����>i���Z�yS��l,���H��KU")7[�IA#p�N*u���&D-��M�I~~���Z����R��gA�\�x���C��~�5�v����%<���������#s�0|�����T���*J���2�+��<�Fx���t��l����JU����9_#S
jY�+j�C���n�������AB7��J���CT�w��*�r7[e�h��r�D���=��+SL��Y�����UZ��_\��i'uZ����66�{���A+�]���iY�V��Tj����T��v�Z�o���uS��
'�C�6�F�W���8���1�t����f7ir����yLF5�*J��P���H�W�C���QB&����v$5���c�r����|����J�������(m���bgP�����PB�$^3E�hJ�-��^	 67<u��1��-�N�{�&&������-OY��H�Rv�?4�m���R�`�}	���"�U��I�cJM0���#��)�*��,���R�<�ik���<p��h��P�r�Xh��v5�?L��N'D�0=�
}�}(�,&��O�#t���q���D;;0:���)�����5������t�u���
iB�HZ��������2Q�|�S���c+���Yx�
�m8�����X�4�p]"���@��l�/�_Xb�0�l�$���+�l6��v���-��\?���c��:A��?������%�������Il��0S�,K'Hl^�����N�d�P(�������X_,�.�l�
������9�K��f�;�� �@/#:��q&���D�w�b2�S:@ES�?(���_�D������T7~�"�J������N�������//.?|<{����]z	���hR�]���-�k�0�)�?��L�_{:�f���l�����8���O<'���a����!�z��d������MA�x|t}������5�S.{���=�I^
�+�pe���)����`��*�_��Id��<�m�h�x��!Ln��u������3 %����')Ve����t>�����8�\�0��������Y�b.D�Cu��%� � xX�35�1i9G�pO�.�H������i��#�3�PPz))=�����d���B�c�x�\�$��� ��m�*���0��3na�>����jmu)v��X��Kc��b��Q�m�+s����������~���`������W��mjEY�ko6e�>HC���T0�1�+�	�����D�8���*�i�nC�_���W������`�fy�A����5�&/(�����'?R������!^��]������O=��,	�������:6C����_�\~:�������w��O/.O~<>9y}�Z�f��mv�z�� �����s�:�bX���-P1|��������?yb�Zs��k�0�������e��.���]�E���w���1
L�l���b�&.s�]N24���/m��{"���Xc5�lL*1:)��r0�,"�25�����*�%��G�a�@5xT
@�i_����z�z[�`�0�X�/f�p�X���N:^T��>�NnI���j>�!}D�)��P^�AKQqg�{����?"	0�����t���p��
�i)`�o��W�"!�4�B�
�S����.��/��_bh�zz��=����F�)+Z	a�{.�=C���o�B
�,!����VQ�hh�Bh���3]�y�d3�t�S�3�8��
i��@��ir�!CR�ww��b��*m7B���h����P!�� ���1��'�������&��L�m< ��z�	�����Z�\}���7c+G����Y�V�X�$�v���\���`��u��6�(1R��T�!b����	�,�������d�`F�LI���Z��T�Si���8���w��G��w�*�������L��Zz�en>J�����HQ����e��y�����R�o�����L9�R�����d�������^�h��nK���DL��W��~����=�>8��5�J'������ouvU��������0��O����H/�Q�RL��}.��._��Y�������!��`��7g''xB��%5�Nq{k����}N�����0S-���3jv������P�I�B��)??�g2����d*��X����v�RRq��b��I?�4%7�E�OP4�E�OP��r5��&]��h������'X��SL�Q���}��O���G_�<�����L@=t�N�r�0zP�fl���Pa%e�H�:\|�EB��2���_�J������k��vh%�,��
�A���d�q|z�����%v�"���J+GP���7���a��f/��)��j:|�*|�D��x_�������{�S�������P�d����*�:��%[gQ]�Tu��|#W.-d�X�T���u�k�U�F���=#��c.@�]i�~��erk�	p�b�����jQ:2�Z �E�i�7m��F��
��_���t�(��\L*|;	��4
��t���W����i�E�/Jy���/�e�Xn��-@-#��smH
T�iLd������0�����'�B��3�s�&p�WF�"2����d����T^��I$Z������x}-���������A�z�����QXW��>����
�f�O����"
j
�x/�����TI�X��/ e���6Z
zM���_�h��9���aT������oyM�:��s��Te��������I�Y����*2��9����)�|�X�O��\�CTZ��~X�yD���`������p8gQ�qP5���r]�jf>�a�&�
��x�@Z�l�c�N��~�5����y$<��&������&Cds�i�����w��Z�ol����W�f���:F���Fz�=�������0����xN�v���hS$w�m��QAg��I�!/�s�r�1�]��vB^(���c"��������:�9_U�Y�N-~i/+!�C0� ����������?��E	�r��<BJ\�lp{�F�Fe-���lx�*���S��F|/�W2_/����v��e�F�x(�h9S1�eD�]�RvL)��?��`����\
��j���N����)�|c�j)�b)��4�--Z�������b�T7��������X ��(f�R���0���������
�j�-���j�M�VsIoe�$����Z:c��m�T��A��xER~��m0}LW)�������A6����o��C�>���!��h '��|b�����pTE%d�����k�#��\��FA�i��7O�����I��s��p>���$1�At��>���J�9�9�
C`����N�����j@�N�)�������[o�a5<�Rv�oJ���g�H/���|��9�%���EI4���V,c�h4OI��J���]������3��P��[�W�l�����x�A���j)�Z������i�lhN��������@D?����~��|��5����c����^?|x���/B��������-���L�q���+����[��\����*=	%|)Tr+_/�Y��i�������E�myuT����
��gq�&���
%�1��$�����w1�u������Kd9���h�6�a��
K%��5�f����S�(�D��7�}����D*��}���mR�b^	*�A�p9�d�i�@uW)��^e=X�iZ����q:��17xa������|;m_��>������"j�q����6A�ZD}*Z�������u#�*�0���������ho��U�t���h2�	9����0�������(�q
��x�]�� �b�6&o��{�9�����Z�fS!9F�������@U���(�]���kOoZ�O?��^�c���48Ml��������=�+��z�
���������������������A����e��G����!�XVp^�����)�'���),r�pt�}����|Y�4��+S����H}�c�����.w�b	�@L��D&��*$5�VH��c�y���%tB�-���#�U���S�����V;���a*��u�����My1�"a9p��	������FCI��(�������rz���)"���$����e����O��_�� ���+�hR������"ii�h�����'�v��e�.���SL'M�b9���n�qZ���i[��K3�t�'��6A�m�-�����}�[����nrgk����"(�a�e���%
���-��[�q|v���������IG��x��U���2�cS|������$���xdh@�)9x�xd=�G�G+9x�xd���<f<r�X�����#���^�������9T�,L�_y����$V����U�����������a_�_@N�~$O�?�����[��r�����c���}�0��~�06���&<^������a��c�	ea��8���,k��G���8����`YY��M�
)pbhsZYYL�@�,G���e�_��3��V/���#Q#mB����J����x`&Z����t@.��q��+y5��G�K^����gr�k�?}��7�^p���<�`esA4o�Ze���S�����+���Q�����2~��U2��b������wYn�������V_�;{�-
�G��@v� ���y��h��[%�S+I��jA�D>e}-�D2+]��c�p�la��	fp��F��-�;���.���������Y�Op����k����`�f����g�����F���^�:��q ��������q���iXg��rV�t!�����7�����@5��s
���rr���h8��=W�<!v�7�7���b��)��.	 u��bE�����eX��5��a��0��$�h�[�b4I��7r��(���]���K+�{Z�|"f�Es���)]����_�_���|g�e-�_�ku^����s7Yg�P�8	I|q�E*��{�����2���q�Jz7*�J��vn�Zz7,r�����}�#	.AGx�9`
Zw��$�K{���~�s�S5]tmlv�D������`�[��$E��Pa�X�a���8^7�y���`k��`��������p���V��n�:���d����tb�%#��NH�O�Y����m42omH�Aj���f�k"�Up (:j8�y][R���)QN�S����a��������������L�[98�Z����`�t�����V�1k1g������V��n�`� �+�d��&��4��s�L��-�:�dE��4Wd��ssc���FO�m�w%�x�yRy��!T�&&V�p{�'�?���D����C�.xD������V,��pr�2} $�o���5juY�qVi��=�yc77����V�����yOO:r�z��^��d/�n���%����v��ny������Zw��V�����[��l�v�A�]$�K�z��MK��(��eO<zc7��^/��G���}�G��:��K�y�q�����{3q�k����������4A�������.f�9����V2s�G����������q(�]���8�JQ ���o>�L2`F�h��U��`�]��&*{;N�X��K�dz���0�����;�,�����Q�a���3RU�a���I�{��'.N���n}����S�]����gdD�IT����dW��\N���4�d�O���������\]���:��������T�
�vI���GlsGC�b�!N�M��D�T�M^����]hj�v,�caOpBr����]�N����.�~d|�O���C�v�uE#�J#�I�n��A���_���Qo_�J�_x~���U���F[ha�e�������
#�o~r����o�uz��������b�������LG�
@��l�-��8�V��V���,"��/��^�~������M<���4_
�!�����p�e�z�r����o8�dA�-%����@�s�=}p�G�����i�Mam�Y��9a�����e�*1����p�-�r,�����Ha��/L��#b���M���f�	��H����i�����1�hWW�����9�'QdQDV�z?�$�6����9�o5���(�i�dL"�,��
��Qf��{Gh}���V�j �\�O�(���C~��8k)��%r-�5���?����_���vZjr-^��5��O�-���#�� �	#��u\&e�T[���������Cd<�F@c�.���U����t��6_+�D,���/��tN����=�����g�X���F:�`wA��F�A����2��4������������:��L�Qt2_:���G�a��&CO2��5L!<�F:"��RW0�m(���g��l�������H����#Dr��N%�'�
G#�����FC���}1�Uq��\��<�&������_	8���[�P��wY=��Vz�m�U���DHsPX@~���dT�B��Q�j'�5Y�8/����h���W~!�H��1bk==��o.7 x�N�~}jL���S���+0pn&���S������k,�3`�?�p&��V���s}��V&o����T��9:�{q�9����<l���kF����K�f���5]��������nt����~{�#��d�C�����p���/���ug��"�8[����[������z���|H(���M��������7���K���2Mv��Kv��g��]�/�,��Uf��?{�[�)��U\�9�hJ���OUr��'��Q��	BO��z���+;���]O#r���E�zhy��\@���
����jlK�g�kR�yD����6����p��^��������?�~��~5�s��?=j���������E<jE
&i�sl���b�uv�E5��H�P[��������a��P[��r ��<�����k���Jb�)�u���ln�`�8<Ym��/������)@C�������O3���(�������
���sj��~�*�"�P�N:m�mIe������<���q�������S0��>@�c\�d,�{S1p�yG�w��d��C�?����5S����?��.��[��������d�V��EY�I������U��'T'�{��$�3�e���7L2��z�U��X����Chh�1�R����m�,��1�������?O���\A�`^)�[1������i�L�l$qc9*)yg�������y��Q>u��j����
1�D����,C�L�k�7$���X�"C��s��,N����������-U%���$��Z�49���-����	u�
C���J��q�-��W��C+n_+)�36|�0�J�:�
�0�)��'\�M���]���|��u���}�;�V$��M�������g_�ST�Q��%�Yr�����`?�������V�d��	�������L%�K}�u�G����Sa�%/��tJD��Fk����*��J�-�6��I�g�l��t�����a��Ymo`.�`go[��?`��]�2�.�Jd�(
���|�{h�rN���*����r �k���8��@�$��&�q�h�;�W�!�|I=��j�i�b���k.��dx#�&�K����<�]{��F{Z��Fo����'�����*w�x�sQ�O\�!��6nP6����7ms�����/�a����fT~P|����5�����)I�a��/���2�zR�8J��t<�}P1���Rx�����NY#;R	���?s��g��6v���?,tV����mH��GFN\$e�&���Zs�?+L����o�$�RC
��EGK{t2}r��oY����:	]�7;������?_M��g�H	m���?���2�%5������4������/t4��.!Pmg���J�;=�-Pu���,I��F�(�����,!C��0f:�R��0#mUf�q�����-7�6�����$�Y��\�*Z��?h7�5�9����Y\Ym�|_�@�|$�;�
�R��g��92e���F�%Y����;���#\��/9���!�ixJ��o����`H<�1G���n���o�r0f�������H��|y����Hi���Et����n~�t�F=]UU���z9Ea��!S��j	��z�,����%�B�@������\���Mt���p8�����ho����t��_M���hc�����?�}�,%��B��UT����I�V�5������*���N�X�����J����Q�'V�K�*���jU��
k�����Hr4HQ%�wO��Rm������Zs��I<����9�~y�R�N�;y�����Ynq;�/lP�R;��+,6������dpX�]��\��\�t_����%��J�Z�;� -`{%�D��;��j�P*/�e,n�N�R.l�g���E���E��W�$���TB=c8{�&���Ef����M���TAEx����\�&�e�t��N&�t']�x(y+K"(�\}�}c~�gO'z��"�r��������|1'_`��:���?������+�yn
3���c�)�qqZ�Z���`����- �?L�����Iz����JQ�U����T��*�@P4����m��
l�s��Z���(��GF�kK�M�F���N�-����F���-��/�j�4�������'�sv�[���a^2�Cc���M���G[YW��+�V8x������#�]�3��)6I�����{Xig��9h�44�p���c���$T�)X��" �m�7:��L�JGF�W�e��yJ,�)g����\Z���@�oR��������gj�<vL6W���#��h�����6�	����[O��N�{/�o�������p8�Dda��P�'�'!
!6]��>������;
A�d�c�����&c���jB%j�M�_��z-
�Un�����,�`��p@R�"!$�P���|PGY	�(�2\!PK^u
-�	�N��^��aT��0p�P6����e���,��Vq�:Q�^�F����� B�'�ro��+�3�j��&�/G>�%�9e$\@"��4��q���Uy�`��yG�����5~j�;2���7)����������.�5���Bo!�qA����f	��a����3X���[���V�t��]�>�X��-2K1��� �W������47�)LqL���a��0^m��mC�����f9����y�cr��o�ot�(�����v���t��B\�N�}_I�
CxW�
��lAd�=���k���q�"���$����X��
,�/��a������u�/�t���c���]�_"wK�M���~]4����b��,�B��]�E�� �����T�X�r.t?�Qc�j�+�VT�mX����sHHj�,K7`W�hvE��&<�}t4E�;nT���l�(�}l&�K�[��:��|���\�3� ���G�V(f	�3p����2�a gm��r���%���RgI"��%�����F<���yL-��Xl�c���	��y*������
�6�vQ;����d��Gk���<W^!����.-���������\=@�`�!�N�mv�,>���8��P��?��/|�V}�=���T�
^���M���]������5�E%��r����!�k�s+a]��������	�u��TD���#t�z`����v*�JY��t1;�-���n��\	�5���/-}���Z�!'Y[�.:h,[u�?���n����������#�:���V�Q��<�BD�eWk�PyM�������A�_"�j�����;�X��Qe���X�r&3��$������C�m[F�S`�������e#�^uUA��F)s?���V6���C��_���|���bA��Z�>�>���7Up�c}���	,s��z���/�>/�H�e�N6� �'�gL#� �%��R�XC��D{�8�;�m�O[�mVl���v�E-�-=jxr�z�.��	���I�	�K�a�K.��M��-�2��+s�������?e�/!sZz���B�t$��zY�O��Y�D�t����p������E/���X/����wmv�}lq�f.���W3��]p\�I�8�|>$&LE>I���u�KB&�9?��#1����MI��9^�X��{��}���C��P�;��6���g��O�o�����>r�w��r��`��G����2(,�S~���Z0��<�I�H"���"5�1^�*����wa���k�'�H?��-q�58������������F�T���WA�S���a��Kz:�JPc���-;!� md�\�L�z['@QV����<�:�x[��N$X_[�9�{���o@�������`)(F��4��x�q��#NQ�$�=z��Py�M�=�
����`5�qS1wk:�1L�Ner��J�&�Z���<���<�8`\qY_����o�������O����^��#h�����bN�,0�$����R����vm�����2��m�eH[��f�v��n}�:�9�|��������j��:�
�bH�����u��7��������,����B�R����.��������]������~ggo���
-�jD���N�{����5)L�S6���|chn�A���Jj��Svbe�C,a=
����z�	���`b/J$,�Ct��,����L��"��OO�����z��:��?�1��3��tT]��s�7r��Sah��c�5�T+�0��xvC�CMHl�Ak]�|9#��$���*6���T����S/e"!@#!$��U�@��|I�R�����m
�+�� 
��e�d)[�Y9�
�<�N�6O�
��LQ�T�v`D_����SZ��)��BczNO��LFa:z������4E����8��`~Er�M�����Q>��wM�0v���f#��h��9B��T���=����}�������
����]L��z���^9`�����H��]��U�W�X�\L
������'�P�;��S)�A�i`����GCZ. ���O�q,�$Z�tmkppr#oDDhI�f��h�=���r��.�$O�[��`���Ze��9����Q�T��-�2�iBoz����k�{a��1
s-c�m���[j�%�.���
�Mn,����X�\z�w�k8��C�7�Q��&/��"O��7k1o��V�z�2����
�F��t�d���X���R���B��n�m-������<K���*h�)�c�����-�������U�����4A��
)zV
�+_o/a�.�/M���gd�%�����FgW�E6��W6D��Q�F�D�t��z��$�i����E6������
$`����z5�Rv[������?�������<�8y�������3�
���8���1{�_����wD�Q�cS�Z���X������S,Q�EYY ����@Z�	�����;��
�ncjV�(��0h���g��a������S\c)�������
�������5����]e���ch��^�I�e������}h4������h�F�����a��1��L���]�����Us7�A�|�p������*��	)w���$����X���:����
�t=*�����9;��d�N�;ekw��=+���>��D��������6~����C�G���_
��Wh�8�����Y|1�[����se���	P���"
d�1���"���LtRe#����O@@{��e�Uk����^n�S����d��_=�Km�a��1ZU�����W|u����~|f;�n���h�.���Dt����m�Q�����
������*IJ�����R����0F���K��mm�n��v��yI_:������=���2S����zhQo�ld9���l��������Q�+ ��"���.���p<�L�Jn�sk���N3��}"�����%���0&0��}��L�d���,#Zc��(�mIQ�1����yI�����0(�/84�%����Dw���?��9����!'�<��V(�������%s�I�,LD�����M~����7������������SK�f������Tn|9D�F�e���]���9��(��#8L�Z��P���s�����'g�B���~�7�H_V����W��R%�p�q?t�Zg��4��*���c��J�F�gO�_�k�C���\�
�=�EvU��u�_B_A>���	��1C�pV^���0c�!8�_�&����h~�dB������3���W�J����$��8'���1�W�V�Y{B�s}?����r�S�:U�r� ��#�4	��Sd��|2� V�0aJ�SL�3�LF=�C��waJ�a��D7]|QWTPn�`��x2F���"J�����xB��^Dd���B����$��A�J�Ol)"�]������k�&~��
&�9�d%TVg�r������|!��6�P���,������J���>�����t�w�N�H_.����^
���
%�^�5�/m�e�po�|���$*�\[���k�X�j�[� N��������o���n&�<����-t�=�m�;�*~�Z}�|���1�jOg�D��������E��-��2�lw�]U�����i����e������`�)�[*�+�V��Q��3�p��7��a�'7���B�/h���.���5�C'D���k�D�������,�	���!\|���$�I;j��tv������.�CW[��9�c�a��p�,�J2�se~U6�MMy�����2�D�\�<��<C�M�#c�N]�)�O�@_�7�/����)d
#41Tomas Vondra
tv@fuzzy.cz
In reply to: Heikki Linnakangas (#40)
Re: GIN improvements part 1: additional information

On 8.10.2013 21:59, Heikki Linnakangas wrote:

On 08.10.2013 17:47, Alexander Korotkov wrote:

Hi, Tomas!

On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra<tv@fuzzy.cz> wrote:

I've attempted to rerun the benchmarks tests I did a few weeks ago, but
I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

Thanks for testing. Heikki's version of patch don't works for me too on
even much more simplier examples. I can try to get it working if he
answer
my question about GinDataLeafPageGetPostingList* macros.

The new macros in that patch version were quite botched. Here's a new
attempt.

Nope, still the same errors :-(

PANIC: not enough space in leaf page!
LOG: server process (PID 29722) was terminated by signal 6: Aborted
DETAIL: Failed process was running: autovacuum: ANALYZE public.messages

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

#42Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Tomas Vondra (#41)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 09.10.2013 02:04, Tomas Vondra wrote:

On 8.10.2013 21:59, Heikki Linnakangas wrote:

On 08.10.2013 17:47, Alexander Korotkov wrote:

Hi, Tomas!

On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra<tv@fuzzy.cz> wrote:

I've attempted to rerun the benchmarks tests I did a few weeks ago, but
I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

Thanks for testing. Heikki's version of patch don't works for me too on
even much more simplier examples. I can try to get it working if he
answer
my question about GinDataLeafPageGetPostingList* macros.

The new macros in that patch version were quite botched. Here's a new
attempt.

Nope, still the same errors :-(

PANIC: not enough space in leaf page!
LOG: server process (PID 29722) was terminated by signal 6: Aborted
DETAIL: Failed process was running: autovacuum: ANALYZE public.messages

I've continued hacking away at the patch, here's yet another version.
I've done a lot of cleanup and refactoring to make the code more
readable (I hope). I'm not sure what caused the panic you saw, but it's
probably fixed now. Let me know if not.

Some notable changes since my last patch version:

* I changed the ginbtree interface so that isEnoughSpace method is no
more. Instead, placeToPage returns false without doing anything if the
item doesn't fit. It was slightly simpler this way when working with the
compressed posting lists, as placeToPage had to calculate tuple sizes
anyway to decide how many items fit on the page.

* I rewrote incrUpdateItemIndexes(). It now operates in two stages: 1.
adjust the pageOffsets and 2. split the bin. I found it more readable
this way.

* I changed the WAL format of insert records so that there is a separate
struct for data-leaf, data-internal, and entry pages. The information
recorded for each of those was so different that it was confusing to
cram them all into the same struct.

I'm going to step back a bit from the details of the patch now. I think
there's enough work for you, Alexander, until the next commitfest:

* Try to make the code also work with the old page format, so that you
don't need to REINDEX after pg_upgrade.

* Documentation. The new compressed posting list format needs to be
explained somewhere. At the top of ginpostinglist.c would be a good
place. The README should be improved too.

* Fix whatever I broke (sorry)

Are we committed to go ahead with this patch in 9.4 timeframe, in one
form or another? If we are, then I'd like to start committing
refactoring patches that just move code around in preparation for the
Patch, to make the review of the core of the patch easier. For example,
merging the isEnoughSpace and placeToPage methods in the ginbtree
interface. Without the patch, it's unnecessary code churn - it won't do
any harm but it won't do any good either. I'm pretty confident that this
patch will land in the 9.4 timeframe, so barring objections I'll start
committing such refactorings.

- Heikki

Attachments:

gin-packed-postinglists-10-heikki.patch.gzapplication/x-gzip; name=gin-packed-postinglists-10-heikki.patch.gzDownload
#43Peter Eisentraut
peter_e@gmx.net
In reply to: Heikki Linnakangas (#39)
Re: GIN improvements part 1: additional information

You linked to this email from the commitfest entry, but there is no
patch here. You probably meant a different email. Check please.

On Tue, 2013-10-08 at 21:48 +0300, Heikki Linnakangas wrote:

On 04.10.2013 14:13, Alexander Korotkov wrote:

On Fri, Oct 4, 2013 at 12:28 PM, Heikki Linnakangas<hlinnakangas@vmware.com

wrote:

In the attached patch, I in fact already did that for data leaf pages, but
didn't change the format of non-leaf pages yet. If we want to support
pg_upgrade, we might want to refrain from changing the non-leaf format.

In GinDataLeafPageGetPostingList* you use sizeof(ItemPointerData) without
MAXALIGN. Is it an error or you especially use 2 extra bytes on leaf page?

I didn't even think of it. Now that I do think of it, I don't see a
reason to use MAXALIGN there. PostingItems only require 2-byte
alignment. It's a bit fragile and underdocumented though. It probably
would be good to have a struct to represent that layout. Something like:

struct
{
ItemPointerData rightBound;
PostingItem postingItems[1]; /* variable length array */
} PostingItemPageContent;

And use that struct in the macros.

Then again, we do currently use MAXALIGN there, so if we want to avoid
changing the on-disk format, we have to keep it...

- Heikki

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

#44Tomas Vondra
tv@fuzzy.cz
In reply to: Heikki Linnakangas (#42)
Re: GIN improvements part 1: additional information

On 10.10.2013 13:57, Heikki Linnakangas wrote:

On 09.10.2013 02:04, Tomas Vondra wrote:

On 8.10.2013 21:59, Heikki Linnakangas wrote:

On 08.10.2013 17:47, Alexander Korotkov wrote:

Hi, Tomas!

On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra<tv@fuzzy.cz> wrote:

I've attempted to rerun the benchmarks tests I did a few weeks ago,
but
I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

Thanks for testing. Heikki's version of patch don't works for me too on
even much more simplier examples. I can try to get it working if he
answer
my question about GinDataLeafPageGetPostingList* macros.

The new macros in that patch version were quite botched. Here's a new
attempt.

Nope, still the same errors :-(

PANIC: not enough space in leaf page!
LOG: server process (PID 29722) was terminated by signal 6: Aborted
DETAIL: Failed process was running: autovacuum: ANALYZE public.messages

I've continued hacking away at the patch, here's yet another version.
I've done a lot of cleanup and refactoring to make the code more
readable (I hope). I'm not sure what caused the panic you saw, but it's
probably fixed now. Let me know if not.

Yup, this version fixed the issues. I haven't been able to do any
benchmarks yet, all I have is some basic stats

| HEAD | patched
======================================
load duration | 1084 s | 1086 s
subject index | 96 MB | 96 MB
body index | 2349 MB | 2051 MB

So there's virtually no difference in speed (which is expected, AFAIK)
and the large index on full message bodies is significantly smaller.

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

#45Alexander Korotkov
aekorotkov@gmail.com
In reply to: Tomas Vondra (#44)
Re: GIN improvements part 1: additional information

On Sat, Oct 12, 2013 at 1:55 AM, Tomas Vondra <tv@fuzzy.cz> wrote:

On 10.10.2013 13:57, Heikki Linnakangas wrote:

On 09.10.2013 02:04, Tomas Vondra wrote:

On 8.10.2013 21:59, Heikki Linnakangas wrote:

On 08.10.2013 17:47, Alexander Korotkov wrote:

Hi, Tomas!

On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra<tv@fuzzy.cz> wrote:

I've attempted to rerun the benchmarks tests I did a few weeks ago,
but
I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

Thanks for testing. Heikki's version of patch don't works for me too

on

even much more simplier examples. I can try to get it working if he
answer
my question about GinDataLeafPageGetPostingList* macros.

The new macros in that patch version were quite botched. Here's a new
attempt.

Nope, still the same errors :-(

PANIC: not enough space in leaf page!
LOG: server process (PID 29722) was terminated by signal 6: Aborted
DETAIL: Failed process was running: autovacuum: ANALYZE public.messages

I've continued hacking away at the patch, here's yet another version.
I've done a lot of cleanup and refactoring to make the code more
readable (I hope). I'm not sure what caused the panic you saw, but it's
probably fixed now. Let me know if not.

Yup, this version fixed the issues. I haven't been able to do any
benchmarks yet, all I have is some basic stats

| HEAD | patched
======================================
load duration | 1084 s | 1086 s
subject index | 96 MB | 96 MB
body index | 2349 MB | 2051 MB

So there's virtually no difference in speed (which is expected, AFAIK)
and the large index on full message bodies is significantly smaller.

Yes, it should be no significant difference in speed. But difference in
index sizes seems to be too small. Could you share database dump somewhere?

------
With best regards,
Alexander Korotkov.

#46Tomas Vondra
tv@fuzzy.cz
In reply to: Alexander Korotkov (#45)
Re: GIN improvements part 1: additional information

On 12.10.2013 12:11, Alexander Korotkov wrote:

On Sat, Oct 12, 2013 at 1:55 AM, Tomas Vondra <tv@fuzzy.cz
<mailto:tv@fuzzy.cz>> wrote:

Yup, this version fixed the issues. I haven't been able to do any
benchmarks yet, all I have is some basic stats

| HEAD | patched
======================================
load duration | 1084 s | 1086 s
subject index | 96 MB | 96 MB
body index | 2349 MB | 2051 MB

So there's virtually no difference in speed (which is expected, AFAIK)
and the large index on full message bodies is significantly smaller.

Yes, it should be no significant difference in speed. But difference in
index sizes seems to be too small. Could you share database dump somewhere?

Turns out that if I do VACUUM FULL after loading the data (a sequence of
INSERT commands), the index sizes drop significantly.

| HEAD | patched
======================================
subject index | 42 MB | 15 MB
body index | 624 MB | 328 MB

So there's a significant improvement, as expected. I'm wondering if the
bloat is expected too? Is that the consequence of incremental index
updates vs. rebuilding the whole index at once during VACUUM FULL?

Tomas

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

#47Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#30)
Re: GIN improvements part 1: additional information

On Thu, Oct 3, 2013 at 05:24:49PM -0400, Bruce Momjian wrote:

On Thu, Oct 3, 2013 at 02:48:20PM -0400, Robert Haas wrote:

On Thu, Oct 3, 2013 at 2:43 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

It seems we've all but decided that we'll require reindexing GIN indexes in
9.4.

I thought the consensus in Ottawa was strongly against that. I'm not
aware that anyone has subsequently changed their position on the
topic. Bruce is right to point out that we've done such things before
and can therefore do it again, but just because we have the technical
means to do it doesn't make it good policy.

That having been said, if we do decide to break it...

Agreed. I was stating only that this is easy for pg_upgrade. One cool
thing is that the upgrades completes, and the indexes are there, but
just marked as invalid until the REINDEX.

One other point Alexander made is that the new GIN indexes will be
smaller so most people would want the new format in the new cluster
anyway.

I am in Moscow with Alexander and we were discussing GIN pg_upgrade
issues. One option we have already discussed was to take the old GIN
index code and put it in a separate directory, and call the new GIN
index something different, but that got hung up on how users were going
to create indexes of the new type.

One nice trick would be for the index creation code to check the global
variable IsBinaryUpgrade that pg_upgrade sets. If CREATE INDEX ... GIN
finds IsBinaryUpgrade set, it should create an (empty) index of type
gin-v1/old. If it is not set, it should create a new gin index. This
will allow pg_upgrade to work, and allow REINDEX to create a new-type
GIN index from an old one.

We would need to append "-v1" to the old index directory, system
catalog, and function names. We could then remove the old GIN index
code in some later major release, and pg_upgrade will then mark the
indexes as invalid and create a REINDEX script.

This allows users to reindex their GIN indexes over time, but it doesn't
lock us into keeping the gin-v1 code around forever.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

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

#48Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#47)
Re: GIN improvements part 1: additional information

On Sat, Oct 19, 2013 at 05:11:55PM -0400, Bruce Momjian wrote:

I am in Moscow with Alexander and we were discussing GIN pg_upgrade
issues. One option we have already discussed was to take the old GIN
index code and put it in a separate directory, and call the new GIN
index something different, but that got hung up on how users were going
to create indexes of the new type.

One nice trick would be for the index creation code to check the global
variable IsBinaryUpgrade that pg_upgrade sets. If CREATE INDEX ... GIN
finds IsBinaryUpgrade set, it should create an (empty) index of type
gin-v1/old. If it is not set, it should create a new gin index. This
will allow pg_upgrade to work, and allow REINDEX to create a new-type
GIN index from an old one.

We would need to append "-v1" to the old index directory, system
catalog, and function names. We could then remove the old GIN index
code in some later major release, and pg_upgrade will then mark the
indexes as invalid and create a REINDEX script.

This allows users to reindex their GIN indexes over time, but it doesn't
lock us into keeping the gin-v1 code around forever.

Correction --- the above is not going to work because the backend isn't
going to know, during a binary upgrade, if CREATE INDEX ... GIN is
coming from a 9.3 or 9.4 database. We are going to need pg_dump code to
do the mapping, and also pg_dump code to map gin_v1 back to gin once we
remove the gin_v1 code. We will also need index creation code to map
gin_v1 to gin to properly handle REINDEX and CLUSTER, but only if not in
binary upgrade mode.

If it would help, I would be happy to write a simple patch for the above
items once I return from Europe in November.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

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

#49Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#42)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Thu, Oct 10, 2013 at 3:57 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 09.10.2013 02:04, Tomas Vondra wrote:

On 8.10.2013 21:59, Heikki Linnakangas wrote:

On 08.10.2013 17:47, Alexander Korotkov wrote:

Hi, Tomas!

On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra<tv@fuzzy.cz> wrote:

I've attempted to rerun the benchmarks tests I did a few weeks ago, but

I got repeated crashes when loading the data (into a table with
tsvector+gin index).

Right before a crash, theres this message in the log:

PANIC: not enough space in leaf page!

Thanks for testing. Heikki's version of patch don't works for me too on
even much more simplier examples. I can try to get it working if he
answer
my question about GinDataLeafPageGetPostingList* macros.

The new macros in that patch version were quite botched. Here's a new
attempt.

Nope, still the same errors :-(

PANIC: not enough space in leaf page!
LOG: server process (PID 29722) was terminated by signal 6: Aborted
DETAIL: Failed process was running: autovacuum: ANALYZE public.messages

I've continued hacking away at the patch, here's yet another version. I've
done a lot of cleanup and refactoring to make the code more readable (I
hope). I'm not sure what caused the panic you saw, but it's probably fixed
now. Let me know if not.

Some notable changes since my last patch version:

* I changed the ginbtree interface so that isEnoughSpace method is no
more. Instead, placeToPage returns false without doing anything if the item
doesn't fit. It was slightly simpler this way when working with the
compressed posting lists, as placeToPage had to calculate tuple sizes
anyway to decide how many items fit on the page.

* I rewrote incrUpdateItemIndexes(). It now operates in two stages: 1.
adjust the pageOffsets and 2. split the bin. I found it more readable this
way.

* I changed the WAL format of insert records so that there is a separate
struct for data-leaf, data-internal, and entry pages. The information
recorded for each of those was so different that it was confusing to cram
them all into the same struct.

I'm going to step back a bit from the details of the patch now. I think
there's enough work for you, Alexander, until the next commitfest:

* Try to make the code also work with the old page format, so that you
don't need to REINDEX after pg_upgrade.

* Documentation. The new compressed posting list format needs to be
explained somewhere. At the top of ginpostinglist.c would be a good place.
The README should be improved too.

* Fix whatever I broke (sorry)

Are we committed to go ahead with this patch in 9.4 timeframe, in one form
or another? If we are, then I'd like to start committing refactoring
patches that just move code around in preparation for the Patch, to make
the review of the core of the patch easier. For example, merging the
isEnoughSpace and placeToPage methods in the ginbtree interface. Without
the patch, it's unnecessary code churn - it won't do any harm but it won't
do any good either. I'm pretty confident that this patch will land in the
9.4 timeframe, so barring objections I'll start committing such
refactorings.

Attached version of patch is debugged. I would like to note that number of
bugs was low and it wasn't very hard to debug. I've rerun tests on it. You
can see that numbers are improved as the result of your refactoring.

event | period
-----------------------+-----------------
index_build | 00:01:45.416822
index_build_recovery | 00:00:06
index_update | 00:05:17.263606
index_update_recovery | 00:01:22
search_new | 00:24:07.706482
search_updated | 00:26:25.364494
(6 rows)

label | blocks_mark
----------------+-------------
search_new | 847587636
search_updated | 881210486
(2 rows)

label | size
---------------+-----------
new | 419299328
after_updates | 715915264
(2 rows)

Beside simple bugs, there was a subtle bug in incremental item indexes
update. I've added some more comments including ASCII picture about how
item indexes are shifted.

Now, I'm trying to implement support of old page format. Then we can decide
which approach to use.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-11.patch.gzapplication/x-gzip; name=gin-packed-postinglists-11.patch.gzDownload
#50Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#49)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Mon, Oct 21, 2013 at 11:12 PM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

Attached version of patch is debugged. I would like to note that number of
bugs was low and it wasn't very hard to debug. I've rerun tests on it. You
can see that numbers are improved as the result of your refactoring.

event | period
-----------------------+-----------------
index_build | 00:01:45.416822
index_build_recovery | 00:00:06
index_update | 00:05:17.263606
index_update_recovery | 00:01:22
search_new | 00:24:07.706482
search_updated | 00:26:25.364494
(6 rows)

label | blocks_mark
----------------+-------------
search_new | 847587636
search_updated | 881210486
(2 rows)

label | size
---------------+-----------
new | 419299328
after_updates | 715915264
(2 rows)

Beside simple bugs, there was a subtle bug in incremental item indexes
update. I've added some more comments including ASCII picture about how
item indexes are shifted.

Now, I'm trying to implement support of old page format. Then we can
decide which approach to use.

Attached version of patch has support of old page format. Patch still needs
more documentation and probably refactoring, but I believe idea is clear
and it can be reviewed. In the patch I have to revert change of null
category placement for compatibility with old posting list format.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-12.patch.gzapplication/x-gzip; name=gin-packed-postinglists-12.patch.gzDownload
��xR��yw�F�8���)Z�76)��H�q�9^dGo�=K��w3��@$$!�^����~�W[o@�%������D�TWW�^���Lu���T���|p�4�O����`����t|�U�>9KG�:]���qr���e6LToccgk��t<L~W{{��a���������wkkk������6w��G���h3��Z�lrr:KG�a�������(�I��������S
�����}�*`6MG�����$������s�+O����<���x���C?+��t�'���c��<��>��������<�8��}��_�F���Y\�7<?q�$�4
�Avy���/��x}�W�[_�5��)t1J���a�~w�����z�����yg���?�d�o�7����,��EeiSF�X��,�����C��&�P�S��lp�t<���toC�2�^��x�Q����gSu��i��t0��Xb����")�3"���PW��N��"�L�����'hY���oNI<Q��,���k����\�7��Yv	X0��dg�-wz��<@<SgY~��jV$C"�f9!}�q��:�MU(�pFI|F�"L��������9u��S��x��&�+��qz��
��C���R��$Q/��s��1~PR��U��/������B4Vw����=_�B��M��E��Gl�N��J&Y:��4�����Q���?�������U:�PY>D���,`��Gus7�m���p�	XH�D^J��C2���q��T��������/^��l�9�!�2)���T7�I��|`��p�\����5H�)���-.@g���
�Yi��	:�)�&�~�e�) )��1a	��3E:5%?@�;B���;�A�?���oa��_������)��L�u���1��^e����4��izN�5��]D:�+!#P��d��M]�NMf��
��p�&qO3K�����@W�l�8�������"���m�=
)��]H���y�}�6Y~��`3�H�v�����f�f��u6����$)��R$Q`�E�
��L���G
�I�"�#	���aR������<��t�G������:������F`p����mJF�U!����K�H9eW���QO:R��z�;)x����:"�L����)�17�=���xvy��J<*2�p]=����@ �<���y��0yr	�����Hp�D�3��o#G�	=�A���"�z������e��p��V��L�6���������s�G��'9prp��.R@�����+��� VD�p�nH�"!Eb�Z����~p
�s�4��)��$�����0���%���S����~o#����@b���F Xhb�l������x��Mb8�o"`� �m�E��;���i��U3��Qo�;~v��'����LL���x����L��1�t�0�1����e�f��S<����t���.�]L��`:��{K���7^Z@gzO����a�B���2�����}����c���G=`Z@\	�������}��<�WN��LG�L�������R<�p���cv��#�_G��39�g)�s�4������<���1��3Ks��C�zH�S�$����hd1+�g�����������
0���i��B��S�x�����������x��rx	Y���#��@����[���;���@��G&�6�K�]%D�"��(���Ho�x
t����>Jp�#m< ���	��z�^����~�G�f�����u��<�F?�9M�N�����������
����
�]�R���0�[�_�Z�O�$P�H��GL)w6����������=�W�f ��m�V�u(������b
3���g��DA}��p��`�����;F���u�Gy�5<���'s�O��3�`��yg��O�g����������8"a"����/p���@r_���  m��������&�-O�L%$��Ar E������P���oSD{���s�G��2�.B���6(��������p��#�������O����/��w���Z�QA���g���^|��]z~1}���?`�ge�h�C�d����-�n����N�a�����O`b��y3���haW��������iz�Z�����8#���Wi����O ��6
������������O��;<>9:xz|��u�F����z=�h
����]�uA�������gi>�����KFD�_��{��,�Mp6���7���?���
��_u��0�7��>T������Fo�����N�fo/������g�w2*�/.a���������+~���wc����n�`�KM]��/��^����e���,)���Vn�b�SB{��%�@3� �!���a�7;\LF�t���sO�(g6��hs����
�qY��HH W�p�!��������g,���f[���.�m4
��O,��^�'�L�H}L��_~�nvhv`�w�3�J-�6�_��T�^�o�T�%�:�������������������]B��qr9!x�#��������;`Vj�6*�]@�f�&��;���^�1���	�$b���.!�J�G�v��������L@�}2C�@��Ek�@����?t�hz��,n�K����{����!l�	6�f�Qv~�hL�Ag9�8h"��������cK�o7����=�o���_~sovR��+���gs7�����qe�%05��u������5+
Q8�ND1�M�G�q���7���j/�y���n<n��}�����[��h��co_��Z0���9U+����Ms��G���L
��V+���v��k�X_k7!8�7&8��$8����6%8��u7���6���%[[��.|���4���7��D�By�a.��|6LXS��q���`��������uLg���g0��Ej&�ii�h��v�mx�?i�"2c��I�~q�Q�����L��pq���@?��~����UE�
��UB������a@�!R�em2LF)�WLY��Q
g��
`02������1��d{�h��L ����&g�H1��E��E2�sfB"���������<�`n�}��Nq��-�K��m$�pEU��������f���)��$T��L�k����^���S~t���r+W��-j�F����{W���S|3XU"�@����r��sO��I����"���G!i?z�6�<�|����:&�(
)���C��
FWh@�8*���DtV,@�0�;�G����;?>��+�8�>��O5���I�������]
��g�>����rO������2-����^��~�>d)����vb�_ty<�V���%d��=>~�>)����O��z�������syA-��G�T������l2���}���Iv�r�*�dYiYZ[|��o6�������7[ok#�moj
k{%�t$~jF#��X����Xh��*/�c8���H�e
���(qwg����r��Uz�P�_�%j��/�t�k�/��������z�7dq��(������0�ar�@|����1����������0�k��s�~@������f��]J��7������B��I
��
�������cG�oFp��
��@��?�#F�x8��mZ����=5f�����ho���!����5~����/�J�rR�^����h�3����:����&��L�[yF�^�y����@hG�<���8�iv�YK�=&�<=�i,V��i1���}p0���(A��3 ^���H+v�u2+t��
�u���x�HB���t�I]���wHCZ)L{��J��	�:�v:��>���]��/��VuM������(;��i�������@� ���a{T��ky����]"%&���a"7����8�u����%^�1�����K�9��������j /�|6h)���@9c��B���S����!�}���E��x�iz���	/�,�L'�����rE ����
r�os�. k�!�����s��PQg��D�q��p.�h;�#�;�~^�?��j��y��\����4����HtMp�����g�����W������e�#!0d������fE"�(����2�D�7�h�:�]:���O/�!�%,���u�����x���:Qkh�%Njy���W����.`;�������1N���.�GLp�##�X��+�n�6>gK�5����%�.�m���~:���J�.W���g�u����}����m�O�6�����������������`��_e�k�X��Pnw'�����8<��L�0%\{G�x�]�����mc�7��Z�Xk`VD�������A�fd7���'��p=��D�(�d�����)I��u'��wJ�_J�� �v����7��F������s�,��6����!�������?������Hq/"^����s��E<��Q�d�)�b���]\��P��a��7x�������k����r�i��@�J:_������M�k�����Y��L�a����X!x�����T����2x��o��1�)�d�i��w�$��b����-���8?3Ga���3��i��Cv�1���Y�?�e_��z5+"fXns�����Y"�W?p�,?7�����o��h<����l�
�F'*4����n����j]��x8���)J�!9]�fev���=9�Y��N��0,�����W7�f
�7�pp�d�!��%{.g�5lxfT3�r�r�
[8�Zk/��y��k���u{X1��3�C�	�e�CANN���e�!!uDG��K��v$Q8����������Y������v������h�����V;�#���-��/�������3���v�("���]T��t�67�����a3���}��T�����.�TU��N�m-���F�~����v��m�mt����r���[``�q���Q2Mjv�o�f��<*1s��
�NaS9 &F�b@��\������2�x,5���U��v�y���<�U�+Z����8�!e��mY�U����3���8����Nr=���2o���P~Op��4K7&�vKb�
�~xXBb��sX��4�Y�o��{�M�������R��T'��)��.y�!�f��W�&Ct#G���6�<M3��|�����pB��os�+N��
]�wy�������"�j��)�����PY
���[���$�Vs��>��&���L�mD�n�z�luA��s�n�(`9���1HY
��&D��t4*�u�z�6����G�b���PHY��Y��"�����������6a�x��^HW�Z'����5�����7��v����������������D���8�X�>�~�1t�n^l����zh1�l��R��s�/���Hl���0'�O�+�d���L?�6�O�'��N��q�
���/��������������f�	f���}�/8�?~yt��aP!^#m���G+�B����/���o<+@q1��
�F�X������8��V�I<�A�:Q���n��[�r
_&��:���X�,
%���!��_��K�M	��zr�xEor|�'�b���:M��L��d,q'��
L�2�8�N��A�� �C���~�!m����K��
�	��&*>������&g�S�������������3���.m���KN���|�l��$�u ��(�&�E`���U����[��v�z�y�v�����9�g����L�s*�x*�v~�#�����)�A�%�{
�`vyr�b��O4�q�I
W�J)�����
�<,�{�7�]�������[�b!T�Oi�Q%���y�%"�S�p������'EtT
�x.(��#���u�����$���S��������'|�����R�}�!n&�(��)��2�M,��D������+��k��%�0�����D���(���J��;�2g���!:v�0�Jar����r�#<��x��i<��N��m���qL-��y�7�ydl �	�f�A��0�:nr-^y{�Z�Z�B�w1��:9f�����7����X�:��2���:�,��X$�>����iSj�-������Wt[���5ec���W|���2��F����}':�CB��6(8�f��}��EZ�7� �*=���k�.�7��{�J�)�*!�U��.�������U�+�wn�F5�hWyu+-�^��v�xd���Sm! �e
�����&Bt.����b�S�y%��*{��?�u�	1�������!y���1E��v:g�������L�H$��0�&
��,��Nu��uU4Ij���Q6	�����L�5�������# ��!�p2��UzQr��	�F�:S���p�������D�HV`|�G�mQ�+��F[�0��
Ft���q�)��
gN�ls�y�M>��Q*�hp��T�����������(O�����J��z����ol����u|�a:�w��:����&*�����i��0�yKs2��~��^I?��D��>T�[P��'�V��������~@-���v�nv���mEe������)o{*'���D+��*�;h)�)��Izp���~.	.����$��KUw��q�q�Wf��(K�����9�'GqJb�<�i�h��t�������!
�����'s�@+�*kW�'�F��)��O�j�?�� �r�~��g�?R��
�b:��i��J�RVN���G��&#dE .Mm%��N�l4DB���<q�F+Z�4O�jb+����_�����j��c��:_�_��s.�o�'�v�p��P~��:��"'��J����3�C�D���6��V��d� (g���a�C����Rj�)��zlW�D^R|tN5�iD���
p�qD�0R^T"k~��>M�\�����D�O�'��f_�����J�h��@c���@ �&<��r�P�/`�=�wWw���=j�j��.���Twco<M���$3�V@ $
�x$�7��](9��;�U�{�.�[Y�Fyj���zb�%y��Ju��$�������7E�AdH��y@��i��uW�s;2i0m���);�xbOD�tJ�\������x�����prc��@��9G5��f�_Jo��Z|l�����9�S��9H��X����L'%���p���u`)g�E�E�tM�xLm�)B��� G����t��"qT������O���ft��cJ���cb7�k]�
&y>�-7�(^W�`��1r��N������L�g�����s���{���K<�f�*�:2#/�g]��fIQ�#���}+�3'��X��utN��7�����I.�dX��/��0����A��,��^�o�IW��v�����g@��6\o�&�rCK��!��RP!�1��b_�����R��n0����G��2;]�!BgOg��<�p\�|��|h�z��j�����Y��p�����C�����������$u>M����2�G'�4g��"4�y�I����9s&��z��YZ�[��K,�3��z.��-��J)T�>�;��p#����E��o��mApdpD��I��9�������%�U��1y��|��� 5�\#����H����F"�f'���sej#���U�{���M�X�U��/3���HF�y(����I�����d8�)�h?5j��5���R�
(�����!K�6��2��K.����*�Z]��e�������J���%��2��S��x�C��b�G�k�����4M�8�)am:�:'T7"�J��e2�����g�!�pO���o���
��I�T����'g4�"����*��V���?����-��	���H�O652�A�d'��6V_���?������oJ"�kI��1���Vc�]�&�J����2r7��C���g�'XVQ����*���	Ou`�Wf��]�w��/�S��|�u6�e��?�#�RG����d��^�:�~��i�eY|�	:���e#�d��]����������er������<&�:k3Oi�������~Z��~P��i����~k�����\V�9�goT-���������yf��vR���������B�D�m#;i���_`��'��$;k���Ed
��%�(���|��m�<�9)�Cw��k�x���bp��2��?�|����P 2��w�$1��5���f��s��e���/�q<�U�M���{����m����>�,T���(_g��ww�
F�UE�:?zU!�K��]r��:?��n���8O��!l��}��Pu��
���G[�m���{o�L� r+q+I��R���\����cJrX��J��Z0�u�q��&�2��9�����B��v^	���^J�����=�K�_w��|���_6{����[���X���]����-!@ak���w�����0�'�����'��VQ-���)u���N��-�"�+�qW�iF`�|K/P]��U_�:+fX#6���D������
����Lp�XRh�Dyn�%��������en��R��?$9��8VV$4��
�s�w�#�J��*�R�f��jr36^5������L�?;r}�����k#�Jn:�6Z���2 �)r'|[X��������%�\g/).�ave���7�u�^�Ut�.C���m(�n���"C7�CZO���G�L�^�xq��	�4�#�)U�����E5�vDL�����\-'Y-1�R�8�: Z��u�%��R }�Z>�L���<J�Q(jPeX�z������|�8���aZ��G�X!J�a(qt#�XI��Ty�����i�����l��X��"7oA�Pe1��P$��c�W�=�b���/�f<`M��=gzQZ*d���k[����i���x��B��D�$R�"-p�B�79���S\��+I�k����I9#W���8��/K�}�6�w���t\�;m�������'UJ���7�5&SJo��_X�8am��-bg�#���5�i���@�
��YiY������������t���Q.Lh7�O{e��.��*���U� W����jZ��$���P(}��J��<���:~:�v����N-`��.�<�t5w�-Qa�J���s����t���l}�U��AG��4F}<f�d'����=����"�{�sEh��4�fc���,U��d�^�0t��TLy
�X7�g�~k���
���F7�{J�j:�k;�q�d��^��\�\��,8��z��Z-P�GwQ����!�7�3�� �_Y�a>��)n)P�p�~��fSn�?yy�}j^�>�C������P�Y����l�=����z��N�	��^����[th���Bn��z�� �����a���Q�<�x���d��k	�������xX�:���y`\-���X+2W��[a��y�O�n4�#?�N�lG��{�4��9"$=_.�����,;�+,���\�4�85��������W��k+s]+U��������j����2���F}9UU%���&�"���U�.b�M�����/��Q����	)#
	��HFFGbM��5M-����&��;{�����&�����`�_���Q6����$������� ��\E��*��P��"�>W�C�8^���H��E,L���QZL�rH��(���s�!z�>$%���T��9��ZL�_�/xl&nO���(��505���07q|c�ty��{Q�-�7�3J���I'���/<9<>xu�������w'G��}}B�-K{F�0�b��r`Z���$o�1{�;^W���S
�2k��������$�\Qm�d����F�g������5	���������:�;ze����0�k�8�����a���7������f*xf4g�M��}���EI#�������<�+�������f�:���Y�L��������
��%)`_
h�N�]�C�
�;�:�^��~�"�o4m���=��vS�<��oLJ�T�tpE����r
a~a����-��^V����eQ����,�	��^cI`t���qky���0���w�j9�Epm����<��F����t~X��]
F��O�T�{\�C�+|�U��eA��
};�����7a�����O��8�_�n����g��0�y��Y���_�s�����Oy���������@9?f">B��{R{S����n����'��,�T	ts��0*#��a�A��Qq��������'N�x�����S����F��5>�����u����V��N#�PU!G�?`o����2!?l~0��&�L�tv�r`�&� �sO(����B/���]h�/
�{g���X���V	���&G|3s^u�e��Mf'�H�zy�l|�sCm��uX���-��Y��x����s�rq�]����������:XYfEso���\P��Q��F��-�M�J��yJ�49�Z�Y����F�u\}i���9=/���.�
]]F���.(x���_�N��yi�E�����ju5�Z]tB|���H���4�kG�����4�5K(K�D9$���`����p�yy�~����-+�;F��@*V��jL�����sc��j���$���-���������c4�"_t�g�?�x�U����z���#�O��MD����X:�4���:H�b��A���A����t�J����rGF��N�Q	�*�;�B~QRU)/���j���Q����F=��r�1��X
�3J�Cc������Z_�Y�����;�s���E��O�m(�J�y��_��nu�����@���.���96�&n(�~,x
��G:�e��\x%C�����egJ���i,�����!}��:�7�J�/auW����N
�B���t������-��	���h�(�QvM�f�!_���Q��+{s@C�����J����]������p����S�;7n����1�T���E���F��G�9��{I66�]��y���(f��?/�#g�7�������q,|&=�.��@X~_Hb�s�(����L����~o�����,��!+H]�F=�v*�E�q�7�S�{�u�tk2�9�S���M���e8G��]���vH�]�?��|�8
�������7��]
�l�C!�;��N����#��>;�Iq�i��^=������[%_sk����x��c��T5�Q�-�+�Q��L)&����1�����o��"���M�Pq�A����v����:�_�FD�T(W!A�3�7�;�'9vB�#���JC�����gg��O���
�M|#N��(�S$�x@��������[:��{tRb~$[�0�������8a��n$Q������xw�Y��
�1o"��&H���%���$X�gFB���AO�:p���}{�����L��hv�]���[{�]�\%���r.��D�1������m��E���rv|�<�Z��h�C	[�wS�qR��&���2��p�`��:����A�����!3������������qZ��$�.V��38PR����f!!�Dd3����iR��B��:eM������0�1�(��H��Q���^Y9���s*����5_�o�9�v���&� ��%\�xvw�Ls:m�Vk��@�k/p'��L�y�
i~�)�I(\-�8��(�*�"�o~�=�gB1b����
��j1����e��c�}�fw��������R���R��K�:�����Q����~�Q~_`�V>���/�D���|���l������SO
���$�W���yx��Q����wl�A���
o-B���[������%��3@	���Y����v�6Y�"�����z��FnXw����M��]nO)g�6t����:�5��@|�<��Zb_s�c�
�7B��F�qE���?�-��(���Z����!tG����8���[�#�_$�0L�]2���I�W�\�D���D2�6
��h���e�����t+)K�`|J[
7�j?���e���`���yP�����VK�8���9��'�h�6>�eEh������&!���-�����By��1�2���q�� {�P��~�w�lw��jO����|4�\����j�(�jUe$��<��`�������U��c���
-���������?����<}wx|rt�������yr6��e��^�N���R9?������ ���4��%����=�V�2����[P��3�N���8���,���{�����k,����/����v��
;0�U8�#��+�i�[����h��]�3���e��y����]Q�2m1�5�.ty����xmBN/���KU�}2?1=h�|��Y��+Y�A`�F�k$�T~����(�(�ib�S�*�l�{u������3TC�yA?��;x||p�����A���Z��l{���1<@yL!�t&�j������dA��H����}��CL�I���&��<��^��>2g>d��*�x!���t5��V�~,�X�aP�����s��-�R!���aj��f�)�_l�2Z�_�a��<!{_v�����]p�O9��E�s�a<�I��8� o���8��^�X�{g?�����@>��ha
=W\�U90�]D�TX|��8������7���c�M5U�ck��K,��h���RC��`��!�'�����UrF����b`��S��e,�T�Z������3�����i�
��mXh��43�\Y,c�[^K]�j����a�'FT��_�h��_���X�9��������?�'H�6P���}��������������S������������pwog�6������s(a����z;{o�$~&��l����y2Z�����?��K����5La�7;<s"�H8>E=N�NS
�%/),�Y
8���B������}%y�
�3��8��@iA�R
��a�H6�����;�3T3�R��:�R�����D�\��-����<���%���HL�\�Jau$��X�r%=Q6��=����;J>$#�&+@v��Y�x�t"�@�����-L)1*l�G	m��J��.Q+���8�~`�$T%�K�����:N`u<`K�W��t��>�{#�8��CVo�/�8�M�����1]qX%k�m0�y�O'�� ��Zt���p��*��J����7cv�:���2UE���a�z�IS��D��Hm���������C?[�G~p�_��������xv)�\�K���^�F����y�(!���
���QgL��!Z���b�-�`�;�@��4�:m������@��M�����%�M�0=����}�2:�k^�.��2��d4�:��������>����l�d�)o���l)���L[Z�c������-�z���%�j95���O��ion;�R�7�]I��;��B��-1+@M�@'HyN�P�7R�_xf�y1ii�j�����n�K�X�8D��R�,'���U�,��e1���F"N
*!���������O�"�2���e�k�R�F$GC.�D���qY>� ����l��9q� ��O1xL��H|��Q������1�aR3b�Y\��}�si�JW�C:8�'��|�H�����P=	�}����]�W�Y�N/��g[���L��k�������C�m���2`�{�M��B��_�d����F�����I��*�D��+������G���m{���w��0T����������-_KS���p%;���n������ZG\BOS
a��rSP�������\�6���N#�:x��0���]��{����t�:|���g�/p����_��y����,%q�.���[����7�LV2l������y��7/�=~u�����??=8xv�LG�A����u�9/`9q��G3,�K�H���%P;|�>G���w�\���'�hks����l|���=�Ez�I	(NgZ�C'G�X�/]j-�5����9��kA���f�|�0�,������a��D����r'�A�Lx����� ��?/���&�I��R�\�)��A�L�P��a\��.�,��QU���ZA����Pa` ��C|���6L��~0�%p�p������	��&*�p�k�d /WZ
�G��L���!0�U|�U;����K(�����Cex&(�
�F�jw|.y��-���:�y
	t�r�~GfZ:	g���wm*����I�}Hq	]^BW�n�������e1��i_[���abU�J&IsD��t5�$M ��R*��0=Q��I�$-	�l�]]��H�j��p���p"���#s8��GD#����-�e�QV4����F�,T�mT�?����'B���3pH���n��[�mi/oO�k���ko�������������JG�Ns�!,7r���?������L���L��&�t��\�����Qc�[��E�(�'����]bI��t:.�QX��pg�._+��P-b��,$sq���O�N�*�h����:~�vm�
�u�LJh��aam����l7$455}u���mt�����WrF���+j���Y�N�6I�dQ��G&
�h��~����5��v����jo7�$���k
�,�� O����2�D���[-o��y*�w��,�	W���eH�#+��Q���%�SJ��Y���CjD�Wb���mq�&��������x�U�7�~X����H�#�pvL��of����2��K���v��l:�N� )�%�j��IO���IF��]��<X
���	8�2�~w���������6L���~)����_���f 
V��vH�)�5���RK�;l%����dY��`������������P�`��Q
5���AK�`��A�����'�_��hSbB��v�m�w�=
�r�(�����h���oU?�W3l����7������,�������|�[��h���Z������`�p���l�`�����V���Y
�
���.#lh��j�����,�N;���|w�[�������u��>�x�P��n;�|	��*SQ��S��:�j��u������P,zok)���[���M���l������������~o���t��UG���t��Q�Al��_�4]�� ^�c�4�UP��%�~+
���B�w�d��}�����i������o�88y����k�����cO��{�������� �l�������9��!��(������^PM�����G%�����������e����WE'�U�	xUtJ[��zc�
��]u�0��������^��V��s�(�$2��y/4�F��K�m9V�|uYv6��Y�0v�\"(��8��d7e�*}d���%������o�v�9��G��/n���D��O
Qk��
&�i@+����g���	;c$'xC�`/K^wV�E�i�E���\�����r��e��Ls�8wqS�xG-0��5Z��/u�(��Z�&n}�
J�l�����x��}�M�l�"����a��|�T��k�
�w�i�_xCZ���/g����Ng��ZG���y����N��[���'S��c����w�}���h7�I2H�����Gu1=L�a�S��ts�
�Pb���
\��dPem�����a�Y������\�s�p�L��i��ik�i�T��P��0,�C'��jM�����,'���y2�G��d��7�f�K
�L��m�nD����k�e[����) �-�R��<!ep��������i|�;[(�p��dnU>��~�n��/����A������M1�T��}u$��&;�ghV\e�OD �^rt���,y/����\O�	 O
�p�T����.Q�g/��z&��/E���B
IkJTf��u}��`�<�
��]����-"O��f� (��s��9'.p|�����K�&� ��O�������m,�9�{9���=x�e�����k�i�e'�����]R��|�:,(T����D��������L��#��:�qi��N�y�/��.���#�j�3��n^��y�y�76O�Or>����	�$X�Yc��\��C��h<^xX��g�� sX�C�JK�������W-�p=Bxk��6	rv�������0�\O��w`Q�-'�+��������c����)t8x~�-e):���
S�f>&`z�jn���"H����x8d�I�B@��{�.����xb�Q��Umr���	[;0}�L��0H� $�FSd��\�k�'�%'������t�o5;���2eV�0+	A^��c�����[@1��:���"�(b�[�[B&��7;s��Z�oG��
@6;JR��J������S�N������<�+79�K��[8����g�"��������H�wD�7������!�2�SN]�0V}��.���KC�U:qH��oG[����*����}Q�^y�}����f�q8�O=_em�4r��v�`��r��l9�~
��q�����H���X���-7���f�m��`&n�1��f�)�H;JU���`�zk��dO*�<�E]���������Kt8��r�H�;������RQ��x�.C5�����v��^9r�e�%g����������\n�%B\�p�`"���Z�yX��T���$�0����t�.�K1<�`��,'])�D��t����YS�K�d+9���I�q�l,�5"��������]�Zx�d��$b�/:�����X��^�|���������^m�����^��������/���jKb����z�����wK*��z�����_������	���e��yz�u|C��&�������G��'�.$�5hxG��G[{6��-�b(0����T��0!�1��sk���0���[w�i�<����[�e��!��
����;1��M_�s�W�Lrb��YpK�������u�;���&����h{�A��"�2��,���O�������	L�+���VYCn	��9��|N����LIy�ZN�'���8��s����-�P�.MM�mPSM��>����E;����c7��g�j���DP�����e	z]�[���.���V�Av�����`�4d�k��/�k��[c�n�`wd�8�
����h��i�;������������n��E��a�&�~�$��LqmN��mG�&&z�\n�K����H�7�S���#�#�t��N�_I�O�!�i���>��w�6�O�o"w8s�h?u�S�����lsB��:��K��n����J�oR��������L��~�}�XQI���@^^^�{�3BL����2^a�j��yH3����+�Y
��{����={|�X}�?_<~���oZm����V��?u*i��y�d�����>-rKb��<����6��j��;��[IV�(��7���(�`�q������]�g�kT��|�q��`YA�b~]�����V��7�Z�)}T����7�Nf��.�����f�&�L�����������������:�{_����{E)3R��Uf;�9^��]>��������I��������{��bl�^yw�,���,��Ke���V����?��2���_'�Bf|�����6v�����l�%o��d&�����-3~�l����l��������`"`�Q�"s6�I|��,�dd*RwK]k2���e�[~H��Ej{�����9���@�?���������/^m��X}�4����6��[Z~�X��='�%�FH_)o�U�79�KeO|W�wI����Z�i�%@Y?]Jq�!�R	�zQo�z��T@���;-(��KG0p������,\o6Z���������dzOsx����#��Rkx�����L�X1eO&��Em�k�[)�*^9W�.c>/�����F���iY��);�����YTh�9����,�<��8����h�Hb4�K�P�
�^�l,��9Ps��Q�8�Zw�p���~\�OWp�������V�����3M��w�K��$���?$*���Q*2�����P:�n6l�0Q~��R�]������"s�b�3�j#�y�mB�;�����~�$�����T��5X�!q
�{�J�������>AB��F��3���
���h����qF1#;���f�<:JN�����(f�wM�Rz�����<�1J��{����8Q	F� ���,��!�"�_�L��.���z����<N<����:����C�V�d���w~c�m���_�T�Xn�S����x'�G���bs=
�wXw�uO��0v�rQ��2��
�uK)�Z+�o��c�������������~S-%��s8�5gH���������tO���_���jn
���%,���4�����Gf����8���h���u�qM\P���o��& ����e;����el�C1��(�$W�T�d�couuWM�;��ue���:����
,��
=*�g��6fu���Q����q"���Z�����9AdO�J�$��������Qo����zv�����Ku������|�L��;��<���������d�����"�;�u�6��6l�#*1ve:��Z�������KU��O����}$��0���L�`=v�X��r�?��������(<��d�J����=��A��� ��_����p����z��;]�7#����Qv��3�;�&�h�zS�,�j���C�B�I�4N�7.�)�����a��4vfv������������!���t������d1��k'��3�~Hj�:������}Y��8K���c�����f�~������J�'W��*7A���gR��*a;!j7��#O>����ypo2�u�f�z�8r��Ez��w\o�K�Ty��2m�j��.�M���0�dQ3��VV>���Zk�/�,�W8��+������_T�����>�kR�h�������z�%������}:\?MOF\�����T������UW��+��B�W���y*&��MV��Yi�?�_�������8������UhWV���A~�/d���S�S����9��$��z����>�5���G��]gd�P�T�0@G'��0���� �-E�U�����b����>QB>@�Av�����Un������Y�0���#$��k�F��,q����<�,z�������J"q*M��;uCV�����8����:���<�N��U�����
Vh�V��h��[��A��ClaN�<{� }�_��Y�#������XS������U5kE
<��=����
p��4;��N�!��tbXL������6���)?:�['�J-��s��Rw��S~p�N]����.'���b:h��a-���<�	�i���tCs�xg�si����PO���Sk����G��@'R��;Z�2���y������v�q�}�7�j�;��*d��s��?�}��T�$��@�hn�0��l���67O����r����@4
��`mF��Nm7�
k@8�u��a�2��`��xh��m��s�vA����
I�����r�����*���1��2l�t�*��J��8���C�4�.�� �v�������������H���3�,'���C���S�w��Y�U��/�7z��~�u��f[�Vz��-Y��F����
����C�����m)��V��[�r+���=E�^���#�D��V����^���������sC�0n
���'ZA�F��^q2z�]�������H)�6&{�����0�+�9l��j3o�p�����db/-�������K���8k6������y�<�������ZBbD�����r��,����e���e~�J��`R����$E�a3�A.TkL�mc@E�����������]F]��ECg@ 6$��KQ��l��<��(�+���/A!��6�\�[ �.�O��u�5����`AN���I���}��u��IS6,t���T�	�YN���Xq��SI��:N^�%��
��z��2:�M����
�c
M>��c����t�����8�1��D
�p'C��z8�w���&0,-�Y�\js�g����9q@z�� =|K0t��T�z�-��\�O��|�������FN��1^@C���F�mLN5'.r�})&���8.�����F�_��	�
-g��O��*���7td�[��T�z�I�[���<�n<>ar�	����skko5Z�*A��KC�8���P�.�5�pX��}e3g�eG<�=�&�|M�Ks��}���(�=�,���e��j�k���22L*s41@�	0(5e���v��L1�~x�����\�6�Jlf��S��..�z�����,w�&��0��1t�� N�����yT4�g@|pd=��E��~�H>���O4�W��[��h�U���O4��C4�
q�N4��7���8�m��+����������7����D���G�9��GE�Y���VZ���r��e����j�'�(������23��qe�j�����K����4@����P��[R,�tF����������>���%����c6��#������Q��&Wz� ��l?2�I�a���:_Q�	BMd��w{�*���t^� ���"/��� ]$in{"I�7��@N��M�X����o����"��z�a�`��������d��Z����*+C�]�4����p��������=3��	�@b���G�.�FC~�3�U�xi��H���j|
�{b���f�3s�X/�����&l�E<>�����lj���5����z����>����U�����KV:yd-'��
���.�����K�+���o�r�e���I�oK4�SB�-9F���F����R�����e��w����v�>���&�s/U�*�+�AW�t)*&�X���>d��]�B"�N�>w9���W�jCE��~i��,�� ��	eT��0�ug;�]���w��&@pI�I,PL���a�����~��p���$��w���F�����=�y�W���8�?O��,'��>�vj���)���(��ue�VV.���q�r�PL�WI�����6ww���_}}F��P��_8���b��q��K�Ux*v��%�,���,���Rt���~�X��^&<�2��;V�\N������v-�|[��hkk�Tf�U�_e�����.A�%g��k��v��\G�#H��5N�c����X����xp��^L����1�\gQ���	M+4��'����X��l�i��n�����o�������|
SPmg���7J��We���Onx���������<L]}������������Y{�P9�P���9��mE��}��A�[��6���j����1��y�[Z��m]i������S.
��@��q��"'�<�
lt�
� �\L:6�LF� ���2�#�����n�Pe��������k~\���y��2u}Y�%JU8���X��Ne���D!�����R�v^N�!��XoQ2~e� �@@n������ ��-��Ea��`cnN����>=���U~~Y����D&h�!6�5Ghvs������seJ2��68���{�����E(�
oy�Wnp�z{3������9$8~�l9;
{L�0�kx�B��z7�T:]�����	*�$�a���-3g���W������?�)�"~UW����4p�������g�A�zS������g���hg�K
��������R������G�;�o�><��i[S2���tCwI���r��%
}S�?���s);?aMq��p����}r"8�q�/!�a���m��j�2��E��LN:g�Y)�*���D��n9�/A	�2���[����C�`��~u�l��C��{�tv�u�z}'�aX*��p�y!9[����to}}����t�/ua@�4+��P��Q��m�D=�Z��8�f�L��P
[�E��q��w��ZN�e�m������B#�-��c�����.�R|�
wd}[�&!Gs�*��X���~�����p����2�z�Q�o�����������e������+�t��K7/��;�}��,��8_hz%jv[�@f��<����6�&�o�3����o^�}wptt�����A~$w��XM�'��n��C��L������U��s|F%��$f]��;��oQ��[���>���ZE�x�t���Y[�O�
����c:7���������ct���c���jJ+W
���2�����b#��'�����,�����6ctW%�a1�S���{�������gJ��=V�y+*��^j2��&�9��������
'VqM����Z��D�&����5�H��h7���@�%�D?��3f������[W����2�c�������0��/J��L�U`R(6���v3��N����l4�� vs�5vEG~����^N�C�������n\���IN���A�������'��H��'���!�����t4�|/�8L`�Co��,\{���|XR�A�|0r J��]
B���s]�Tx�v��!��?	��wO�O�@��	�����������o�������7P/��l�oc���~9�b������l�;��u��=UP%Tt	�P��u�GZ��9���c�.��"�
C~�������EO��j��-�6z��
3�V�zW�K��Vg����h���0.=�B�/D}W��kd���N9�=�F�W�Cx�_
��,�na���S(*��q��Y���
u��:��,rLuaa�O�vG�$��^W���e�J��w��ozfU����CT8����]p<������wv>��V���v���aB�F�����&!�X�i��f�������cV�QV"�%���M_	XA�n�����*{m��U7���,����R
���d�;gq:��	���%�t������}��He���b2x�p�lxZy�'#|�0��G�*��������m�HKr)�M���)��3*�N��o���e���*�#�J����X��N��[�j�yn���^��������5�q�;���G�
����Z)f=���r.�p��E���H�I�I�dG������Ez6U��)G�1C��8S��v����h���@GuUi�<����L�����B�<W�Z&���.=��q<&/1cH�'�� ��q7��	����Eu���sZ�����	�����a���pBv�hTn��n��uC;��
���*�����k@Y����5V���7���eoQh�	���Bj_X���5��4�N�R���W�<�a��O��3�g��]WBXb��������jbAc� �p_D"�]���j��y���V8w�e[������>p��k��5�IV��Q��v�������"�w���^�
g����L��k���B�k���:�\�������dG7��c�)e�X��3����0X%�d@d����G�����_��<y���_)?B������6{;F�[cD@��(�r^�xM��"{��{{���7g���#36�-kI�����4����!�x,��R<�r��U�6Um�t�#�@�Xd�2���j��EW����x[�7�GG�#�Q�>L���U�^:��N�e�#��pH��FEa�	�*��=�WO��Tk��5��FUtF"������������#)�l���l3	����9����;���u��bgy�����H���r�S�����K�F	A/}�V�6�*�������H��2����/��\�����aG^�0}�$��
����V�Y���r���q���\U��~#�*�k`y_F����\����K
�������%d6w�Z[@a�^].q8}Y"�h�\�Q%1��W��T%��I�bn3�a�U�.��E��s7�
;��q�����kNK���kr�c��a�sq2��,���^���D�i��`����0PS68�4�P��-��}e��o�	�K��������`��|(��^/��s�*|���{��VZ��NB��������d���!��{�/��6�rS��N����(�j�!O!��w@���C��m�os��M`����5�-�_������5��������+���%o��"�?�S�U���K�����^5���n	�2wV���i6����'�)��&��������^��sR����8_�a��K���h3��st�w[\.Y|tY��$fpd�z�v�X�0�92m��
���d2
�;�!�Oe�����xH��%e�@����������8j���Q��a>�.i�%.���/�sL���k�����j�y�u�[������x�������Av���3z��ZGS��~�*�S���f�-�D�o���
'�?�|�-���������5����k3�B���bW?�|������G������;������5��;���M��fg\~}��g�D������+n�_i����������\4��c;��Q�#A���X�4-���uM�9SQ����������~H��|(��Ok�X�j�����C@5g��&:��3��N�A���Q#�IJ���"�����:��A�s������O?�:y����|`0�!�W��CP��'��[�
�9�.�Cp�u[�Z
�i�j>-��$1*�y��r�����:����R��%1�Kc�OcV|_����X���t���x����K���k�lCm|�C��N&��w����v���f�j���?"�5�xN$����r9�����}���g�_����:86�����F�n_�_��U����X��x�U_�~��8�/}����{!��7�u�F�����K/�i�y<.����R��m��2;g������p�ts�l�^�)�Y+����e��i�Og�S�wv�A\����#�h�MJ�YUQ��!�?>�LF�[�m����#�}�T
�a�,]�N���p0����?��S�!�iXu2�h���tF�V�����p�^�y����o�l�6��3c"����.�])r��)����T�\@2i����}o+��W�%��+��8��\`��?�|��?�1��9-b[�P�,Z�G�<��K����T�2F�a�d�9����������C���l3���zg����8(9�K��s������h�$���Kku�f�b�N2��a���@��d�����3�g��D���!��r(�{��/����Vj�����O?�>����u����G��u��	��������y������B�x���,�� �U�NSL}����_W%��o>W�����
�����
��2�|���_�Bk�UZ��>b-�^��i���v�m����$��W��Q����~P���k\�}�z}����/����n���E_R��"cUu,%����_���m�����N�������@����'�.�R��|�4 ���������}�f������E�W	+C	)�(��v��oXx�z���Q�����%��Z���m��iW��1.��F�w���qa�w���&Z�y��:=w�=W������A�g�s������&����el�s�?;xyp|�,a���s5��",�R�,�/�"~�����^��o����5���h�v����&s��E������}st|���%�W1F�GXzl�u�e|Q�F���J�^�m6�{t��W��s5)�����|��v�er����|rf����S��v��ry��x%��Y'����5HT\b[u���%]�/�r����c��jK5[���P^i��� ������0��������K��	i�����H����������\��Z�������@�Z��}����?�jp�w�~�����Up�����3w������7�JizhZTKW�D�1������9��2]�fO9-pa]l��Y7���V�{��E�i�&4�����q:�E�9��:��zf��!u+��ikw{m������SS
L��GIn
O��I�N�����d�]���xo������k��Km
�����0����a�aa��5:�m>�n��E�A����:���!Z�0$�a��������{n�������_��[��M��8�V���F@G���:x���hn�47M��?�)W8�k(NL���o'!�,n|-�
���*.��H��O�h.����l�����,�A����0!��^������fX���6�PW.m��#���sw��hz���/l���#5���1���:�fL1�7���$�z�p����z,S�1���+s�e��������|[��N��$�4��m�%���f��<�A��)���b�:�����o�����5���zVw�)�m����7�	���Z���bx:;#�����q�+Lf�U�~N~��x���[����S��������;{�������%���O��7|�r�
��������R����x������~�����k�t����c���YUy���s��E�i����J)i��@.����hf]�x����C������=B/��ua�:�nn����
��1����bs��8t�:�Kw�Q���v���^c�����h^U�wMp�~��Z������������Y����0��2;��v���^f��������G�`��������� B�9����f���U�9
���������f��:y�����������>P{LO��Mt����Q�b,d���9u!�
�{
��C����G������3��&l�d*�+�V���������l`Sv0|�����%j����U���V��&����CxV'���
�x^���k��kn
���������0���A�����q4�r�~t��5�]�.p�3�X����oZ`��s���hs��P�@�.=OG	&mQ�8��l�>�0�Uek]���:�b��bG�W��^[�����'K%�]�6~�o0���]��]O���%HIJI�������0��<c�y�8��b���U�D�
�!�'�d�77��K���o��>���M^y+�on���[[�����bR4�<��hD�5l!�����K"�$r��,��1��t��ec+�#��sW!cc�9��A�M�W	H��x��c`���,^�B�������A�/���y������v �'��������|��A�X���2
��|���������#���^k���,)x8#dB�C���2rE|��4^yL�������E<��e�*�\dHh��2)�&��.@����9;{����$:������.Q�1�
�5����Y�\���~��[F�&t��}J��|�n�E�;�;R/���%�=�/W_9�y��s��N�=����&6�m�q�c��T\�P)x�.�{�\���l���.�l&F\#=f����O���G %.
���I�R~e/��JOP�~4����kg7��������T%p^��d��a:�/D(-�c@9Q�[��r,������8����h��z�Wr������h{�����^X�I
�uB�����8`\������}�,�K`J�.��Efr�y@i��1>E�	z�~�	G�%�v`�R���V�����K8K���e�)�;�`��ZK��1Z.H���>��s��*������q�UF	}i������?�������yzfg)��e���=qR���mF�������"��p����QK~G&�jZ�]�7���Yb:TO�n�{�eR���}[��Nt��T�T��]�W���O�4�o�ej�E�eP���%}��,��uY_�R��T�}�5���oIi������t-�9�}���@��H�,?��'�9��t�����&�l�U������bI�@l�M(�9���$���Z�m����<�
V��hGk~�(�H�9��@�==7J�����{���T��!��XY��	$���9g��_�VH6�������xN�S��T��)m�V@��a�#a�\��X��^�]��}�kO��T��	5]���AT��hgsOS�?�j�����Ny*sUKI�`�����5 ��p���\I�*�Wp�#�@����'�o�\@;\�L�w���0�BZ+��Z�?����2��H��>�T����������1�'�2��b���d@�D��n/��t���~?�����"��Iu(b�@��!�a?Jj�'��{^������Djhg��pQ:�����92	�y�Pzp����S��iq+NC�����I.�#��:�
�d�_���o�N����Y�v$;���4���|����x@g��*�����`���3!���$w:j��Y�`�0�����/��9��)*|G��NO��,����,r@�'��<��1�����|���O��J����l_�w�g~��E6C_?<h��&������h������;����{�@�����x�C���!�SZ}���������/_()�L)�+�
��*a+�=	��T�d���T�N-i>�{�1���h�'���JO�y�����A�����i�+}L�]���h��0�s�4}�-�:%*�Y���C'���&�x���'���6F@�luNbL���S�>��Vs�����n�S�Ha��G���w�o*9{u�a�������������������Fht������t�~���22N���Hq
����0
�M�P����q};�r[XD�L���lc����<�]���s��A����V��G�h���>���2K �|��h�'�-Oz[���EH�G��^W��^J��K3���h:=U���������t]oJ�J�WJ�c<R��g��u�����o9��������}��. ��i�*@47[h��W��#`���"CG��x,%��[e�|��mql�0�d"��
�o������^
#51Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#50)
Re: GIN improvements part 1: additional information

On 04.11.2013 23:44, Alexander Korotkov wrote:

On Mon, Oct 21, 2013 at 11:12 PM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

Attached version of patch is debugged. I would like to note that number of
bugs was low and it wasn't very hard to debug. I've rerun tests on it. You
can see that numbers are improved as the result of your refactoring.

event | period
-----------------------+-----------------
index_build | 00:01:45.416822
index_build_recovery | 00:00:06
index_update | 00:05:17.263606
index_update_recovery | 00:01:22
search_new | 00:24:07.706482
search_updated | 00:26:25.364494
(6 rows)

label | blocks_mark
----------------+-------------
search_new | 847587636
search_updated | 881210486
(2 rows)

label | size
---------------+-----------
new | 419299328
after_updates | 715915264
(2 rows)

Beside simple bugs, there was a subtle bug in incremental item indexes
update. I've added some more comments including ASCII picture about how
item indexes are shifted.

Now, I'm trying to implement support of old page format. Then we can
decide which approach to use.

Attached version of patch has support of old page format. Patch still needs
more documentation and probably refactoring, but I believe idea is clear
and it can be reviewed. In the patch I have to revert change of null
category placement for compatibility with old posting list format.

Thanks, just glanced at this quickly.

If I'm reading the patch correctly, old-style non-compressed posting
tree leaf pages are not vacuumed at all; that's clearly not right.

I argued earlier that we don't need to handle the case that compressing
a page makes it larger, so that the existing items don't fit on the page
anymore. I'm having some second thoughts on that; I didn't take into
account the fact that the "mini-index" in the new page format takes up
some space. I think it's still highly unlikely that there isn't enough
space on a 8k page, but it's not totally crazy with a non-standard small
page size. So at least that situation needs to be checked for with an
ereport(), rather than Assert.

To handle splitting a non-compressed page, it seems that you're relying
on the fact that before splitting, we try to insert, which compresses
the page. The problem with that is that it's not correctly WAL-logged.
The split record that follows includes a full copy of both page halves,
but if the split fails for some reason, e.g you run out of disk space,
there is no WAL record at all of the the compression. I'd suggest doing
the compression in the insert phase on a temporary copy of the page,
leaving the original page untouched if there isn't enough space for the
insertion to complete. (You could argue that this case can't happen
because the compression must always create enough space to insert one
more item. maybe so, but at least there should be an explicit check for
that.)

- Heikki

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

#52Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#50)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 04.11.2013 23:44, Alexander Korotkov wrote:

Attached version of patch has support of old page format. Patch still needs
more documentation and probably refactoring, but I believe idea is clear
and it can be reviewed. In the patch I have to revert change of null
category placement for compatibility with old posting list format.

I committed some of the refactorings and cleanup included in this patch.
Attached is a rebased version that applies over current head. I hope I
didn't joggle your elbow..

- Heikki

Attachments:

gin-packed-postinglists-12-rebased.patch.gzapplication/x-gzip; name=gin-packed-postinglists-12-rebased.patch.gzDownload
��zRgin-packed-postinglists-12-rebased.patch��kWI�(�Y��(�j["%	�������jls���;�uX���,�&S2f���~�+^��R��=�==dF�c������h�:��x���Y:x|>F���p0����e<y|r������X�~-���jksk����������n�z�[[k�Ng�kA,��/��m>m��T�?�=�n���J�a<	�[�1�U�d��Q�]S��p�B��V�35����,�"5����S4n����L�����l����{u��'C������H��
��4
oU2R��	��xw8����x2����n�����f����������hM������F��@^��7�&S�d2�	��!a]���W�� ��!~��y0M�Y<�T�8�=�Fw�����z�	��(L�m��3�@�������A-o��x�.`�I�.�K���%����N2A���ix��:���+R�yv���g�e��h��,2s�����N�k�I2��)c�v3�Y�G�f�~N#
�BJ�����[j����$�/l�^��:�W������>��V��T�����*.8��A"|	?�d��Y<�E��Q���m�o:�/��1>���[$�.��e�B��0� �k�Zpw,N��@>E����"~����b�>����Bol8�����g������P��)A����F����n��j:3Ch��B���o"�����h�E3oV�����+��a4�*ZY�'3
@��Nf����V�������r���d���i
�*�]B�0����i#��L�a��L)<R�3�x��F�����jfpr."�SkO������QQ�~R���5��Y�@��#�z4fx�C��;q�b�1�%cXc�#���Q����VA���&^G�}H��|":���t���O�$�p��c��`������������7�z�E�h�MC8�	o!�� �=��&�������7Zw����t���9�g���0�$\��-��'����1��W��O�����z����Y:��i�wh$��K�4���^�:�^�����x��0�y���,�����G,`RLF�rK��Mh-�s8�M��LE��,��`�oq��@/�]�������6�)��(�����)�T���6|�Kj���(��s���S��C�VeH��O�"���|<����������?�`��q�O�����,<��|���>���Ce,k��S�+�pvxj}��}��{����@X�d�H�V�X6����DD}��$����{;W}�&Dk�B�������`.KGlRG�u<i���{����'�Ox�T����p�����(����hk+�����^r�N;����D	��.Bx�fq�9�eM������M[��Og��Z��p�������|��j�����HI�
3��^��^�������><d8��!�d�4����$��$)��_�u��%C��F&�]�3��C7�������H�
���cd���wF7���	�'M�x�jP�
"0�2�
�I!SCK%��n���ww��A�7�l=��S��R�ngWE����5<�/�fG���z���@o���iT���ju^�����{x�6�g�'g��N��O^�~x�l��u
�)���:/�c�����)��Yu^\�G#<��'���z�a��Mp�n�`�p�6�Z�����0���>x�����|� ���n��`s{����0��T�O��
8-��$��&%���h$L	 �`S�(_5L&�fp�V��uHR�������+x���#8Gp@���E�."l	�:�����n�L�, ��$E���?{��\G���ms��.�2��������oS��!�xg���-���pr4/3�P���������7���~q}9�	����s\0l��'@1*�k�I
��F�q*��ig������u��#�|*``�����W��=x��
���7��>�f�c��?6t�#�D�4m�v�!6�����!���$p[��v�����Yb�@�f$��'��Y��J�W��o;���I��2���IB�����;L_���D�`A�����q�Q�>H����L!n����B�LX��������nw���f8���:-�������M���u���<�x>����8��u<�^=p��M���{�s
��OI<\�2�"�!����Z�Y��;�6�t�����������w�'����M��'������|>����<W����J7pH�i��)�z���(���*|D��� �\'�H�&����t�]n#0��#��H2��.�����(��)r����^l�Y�����%5:n\ ���k�8	������4
��U�&�=�kN&����W�e���oA���d��N��<Nx�B��qg#^�D�X�%O��"8�OD�|o�1i]��2��G -f8��q��$�ua��L���$�����C����������c:�D��t�VJhN/�������$�u��i���yJ��}x^MD�{s��D��r�k���xh+\�r�|����_���������=�|p=�?�1��Y��
��!$
V�A_�Y{|�����O�9�gM}���</�i*J��8���2�e�&Cw��	k�@���j,W�PP���N�4Mn2�c_i8A� "�p1�@��������d3�	o��X=��S*����"hB?�������R=r	����9�",�H��#����!-+i�l1<O��2@��30�|�N����CQD@�����������e��=>�I�#�
TaI|��;���_�? ��b-O���*�'$�yH ������@�~\b"xq����#
=G��Ky�x�W4������'�D�98!��%�A�:��T_����^ N�W�����u������c��i����bl��_�������7����m�@O�����z;���,��;AG.��������X�����U�Y	Au���������K�H.M����tQ3�E������>�|���%������s�R^���y2�smz}�u8\�;�� 6�����XI�j^�Q
��qr�f��
x=|����%qy�����
�=����,(	pz�v`ho�5b�}
KEd�:��x|
�Q#V�`���]+	��*g'?��_�:0(Z'J?P�ZJ&q,t����3�*�������W�Tf�r�	u������{��^�w���b\�C�B&PM^W�������=�w"^���Q@6�����0���oS�Hi����*ivq����'L����U�l^%By$���vL���2m������~��64��d���y���Y����7W4CZ�������I�����m�=d��6�m:��hj9�����������[.�+�|�P�<�]���	r=���Cs��a�j��>T���+���]y�p8���q�F.�]���l��:DWs813mGj���)Z��J���`�{(����Fw^)�;v%��_�hv�u^:?��+������N��Yq2=����5�1^��L�"F��h�Dr��b? ��/���-l��U(`�Q4�������.�@
�C�C�\�|u���i�:�m�?��{g1ng8��Z����������`:��U��Fd�|�,d�:�	%F.A�1���1�zk���T�%<#��z���S�������@�k�����$i0�J������r�Uwk���2T�`&�"������w2���Q�".�B��/v��#|d47�[b��Q���EQw��8�x'��[���H�������R���n�3bK��bUg��������j�����i{kcK���{��YT�r��$f@�v��C��	P����u�����������D�'��H�8���d�}����O��0����[��0�jy1	y:M�av0I��W$\('�#
8��b[�rh8�C �#�M�G]!���
����5R�*t^0k�PL4��-d��4�~W!�
a-{�sS�	�-?�M��Nw�������_,� Z�
s���P�y�#��L��S��<e���.-o9�1���ZF��i��00y���
��+Dxt�Cp��E4����(
?vR��$��y�M<�����CK8p���Dh{"�j;�M��|i��
/�?X�������=SO�����~:98����k�����w���V�e��g�x��W�N��a
'�d��u���|��bg��6Gg���X864jT���p�'~�&�p&��:{�?"V��x4C���q4y���6��bC-���LC�A��d;&7���X���7����!z���&��6��wt�&��[LnU�9f�]2����d����,��D��L��vTm6/�v�����\�
�-5��Wa<!���O�)M�<SMy��9n�^��S��
���������31�9X���7�?�A���]���c=?��I����G���E4@/�����%��S3����G<B�"��y�����gw�0#�Ht0O���O���"��'ZQ�����PK6�}�=�!g�^I!O����v>Us���S����0�W��l[
��$,B���1������E�>_j�`B8��i#�Y�"7v�y������d}���no>d���"a���G�m�����>�������a���5t�vn��)�Hl�G."6�������j�(=�g�[�H���I�U�v�q86��sp�Q�
?����[[_��.��^B���2�(���m���A_��.��BbE�>P��3��[]����q���3�x@��"2�����A����q�S�����!�F����Kn�t?���$a�D����d����r��?�-�:��	gm��K~�;��:F��y���E����l~��2���4/R6�J^��D	Z��%s�w��G��7#��,�/0�FbB����0VWoG��2�,���z�z���ulY��&�����5������#��U2���}��������9?yFz/:+��DHWCUk�dp��v��0�#G����L����e��3~�����{i`��E9(Ac��
��_�
I��s����'�!X���{����~@
�����fa���:5��*��_���������H���eq?�Vm��*z���f]��W_��U�p�F���ZN"��ui�R� ���������)���������-G@ly��9��]_}�*�:��p+�2�mD���T�����%�'���4������zz;�2X�D�|����c�b!����e���X�O=7��,����Z�q0.�=U_���&:�S_�f2��nD��b������?��s
���)ym�F��HJ�����x}fZ~i`�p�d
)�o9v����Yi�����}�?y
��<N.9�B����P�j�l���-���A����Y����pm4J�~�$�1g��B�k�;�4����\�� 4F�t�������2���DN*���3��f���L)�����	������/�=�����ZM�P��RAq�>PN��_X\�����$�\��r9�V�ZHN��	\R7:���I���f�{rp���u5��O(k�-�t�X�����G�����6^�;$W��a 4��~�4;��A�&.e�!���c��,����s�!��_�FnN��'z:KX�=O�?��4}.!��6�PJ��<�?����}��.����D9Z�$X���&�,_�	��y� v����e�e�k��K���
����������Nt�)�����ci�d3��/�3��"f^�g���
��5?r��2�s��i����b�� �K	���h�J���6�!���e>S8�?��a�g�������%0�.����^?�$3����S��$i�I'�����ab�n�!�����N#;��}fr�>����mO���$dj�{�0�:���P�����M�#S�5����Y:?1gM����,�nHB�s3�
��Z���U�;��-����C���	1_!)�0.t�����edo�nKZp������)�U=�|�1.�c_`��+%?�`w��p��~��6{p��6�SX1�Nn)��L�0C��s5�s$\gF�::�A�o+�L����A�����.���IB�8"�u)����
 =��p�>���D]v������Hs\�`O���8/�`<!A|@�X�� ���j�mx!�k����� �
8J@��#��#~-,G�uE�NFP��<�b21����p:$�k�!��y�p����`-]��J�<Pr�9�#(��S��G
;"���'3���Hm����n��i)WJ���R�tAQ��PE/V�Zp���G��DsN,a�������5_-�����bA�T�r���xV__W�&����mx������)F���j���
Z�QEH���YJ����$���b1�g���h��#���Fc���L
��YG�Y��!����_�����0z8 ��{���.W������������vn��c$@�a�������My|����w��/��8">k�)��&d���.�n�t�1�s��K�����a�
�SH��0��T'�eQ������R���gvqr��stw���v\�;Q�1� �/uJ&|YN�����.W�&�_d���w��lD�c����;����.�E�Eu�j�)��+:d�Y�-��.�8���;A��(�$$9����\[-����*_����EJ�}�\��(�%�2�K���F����	9�c$({'���������Yk��[������{n�<�>�Pv���9��HF�R�/!
��O	��K~�_5k�����_��/�����*�V����y����L���GG<3������Jb��^4�Y�i����0B���M����X�L�'�FE�$B����p����;�����(���v�� :��"�r��{�L�\������$��j%�u�)7Q��_���I8^�Fj�8
c*��:b~a���* O�a��HcQh����d�u(��[��D#�E�Sm���m���N������ �/�EA�S�v�is<�M��9���T�M��h���}B��j7���JJ���Q�+�n��	�����
��!��JJ��f�F�x%�������w���?:=�Coup��;���y��C����;�y*��"�Bm���'{��:�(���?H�S��=s�#��h8K^	���B2�[&��=�N���
�r����l�M���*����&�,y��������`6��fk�� Bm&�t��"�H��j�]<!����h\��g���;Q|#��l*���h��w��O�}���A���4,�j�kT��u�6��9��n+����B�~��F�}�;eS,�����4s_����4~�tR+�w��%�H�{�����-���_�WG{��U8��XD��]���v�]>4�������X������������Y�yn5���c��9ra�|,�������d�w��~L^�>��M���
�����D��8�[����J�����V� ����k����9=	B{��Ow�����+������-�������]5��]��D���B�O���}�iGP"���2A���a���q��_���&c��-�?@v�Q�?K<&��u��*�b ����`���i���_������1]�GZ~�Tx��������Z��Ki�-R&�7�_����x���RB$�$�1��6}����"�S��q����v
��d<\�Sa?�-��Oj&�{w}����%3�:���2�eB�9�����H��We��Xs�Vz�U�@S:�[�[��bo��^^�9e�VE�P�t��2|�/�	l=��!>(u�l����5CL"��u��)����/p<=oS.Z�H�Y�^ &���rb2\����O�\����O�N���lB$���i�2��DD�{���)+u;vs
N�V�N��\J&R���2�h��Yv^�U������B�*�I�elb}�{\"��[�}Y2Jy.f#�X�����:�&�|�������] ���j����&QW��S����R��Tf�,�lN��60=����Z[��!��H��N�HUW}0vwU��9�=�K���hn����_�����g���?�?;89?=���rY��6���3j���T�����mp��9��E��q-E'I�1:"I#_*��h�&+DZ�p�r��5�YT*�8Q�V���?f	�aB��R���CD�a'-��\]�����7���2����|O5\N�p�{�l@==S��3t��2�s\����q��c�Wc���%.�����H|*�:n	�_��iq����jb�+w��)�$=���;�3����:�Zj^z:������A�D1����jD���l�������}S�!"��Q�y�4w.2d�M��P���%#��Nt������PXfz������u��4��{f�l�fK|�5���G���y�O\�~�mJnB���oI���XyX����i�L�����;=f�k@A����z�k4w���7H�RGs���E���hZf�S	��Z�G�V.z��\����x9�����7���4���,4;,5$�03���N��E��|-�c�C2��X���7�~h�sV�T��5s�������-��o����f�u3�<eQ�D������.+,�k�V��J��l4��
�����"��u�x�Y51�Fr�l�r��
zJ'��q�Se8Y��Z�,�����=%z������	�"CX9I3.>6PoK��^��}!����Q	�q�������.�!R9�������['�Y���
�w����X)��H'RX�W��l�������)�	�L��a������M<\�U��m����d��e�-�
e���Nn;G.p�Lv��F}.������ pr�����[J�o�z5H,�H�W*�������i��f�k�r0p��z[��[��U�sj��|����
�_���%#�]\�Z_�.@�P�&�4c�1],�#B17�e����6��:>Xe��#�x����As���^[cJ��]���L�u?��dy����w%�3��bUP��>�y�p�R����������T���Y1��YW�9p��y������y�_>�~�I�����']�i�
�1�!�Q�&7Jt#R�[�]��S�����:@���>�4A�u�ct[���q����������=��h�����
�b�a�C�Q1�R�C+uG�d����<���H��1�7gVb��|#�pjL����9��2���QVtX��Yc	,5�*,9B��.�QJ%V�>�Q�%������b��	��!���/�I�an�Mo�u}u3�@�,4�<�f��T\�p��y��U�d��r�Z���������
��*��R�[�qO�eSd�'f�B�����%a��-7M�WD?Qj
���MHC�]�0�xH��=7I�z�L�Y2��n1����`@�8��Lihg�|�3���/W��,�A��m�#l��q<�3��^���/���Z�M���~Y=����@��nk�A���t�_��Z��'2_+��|�)�}�>**K��s���oa3��n��j�
1��FHy��k���5%M�Y����[,�bb��y�1�D�c�>��N�f��	�
��1���J,G��fm�m��t��r�E���
�y�G�k�������Ip:�[E�j!�����5��&��l��:�D(.�N����j7W��-�����]� %Qeq�.sQ��.��*f���n(��j����&�P�������|���M�m��)��[jM7�'��u���{���7���W�-�XK3kL�$�ha����#���^n&���������k�'���yY����������SM�S�2��)m�m�t��b}����R+���
�*U�WyD�SHY��{�(d�Z)DI��"F�"��T!�JR�n`�����vK����vo�T(�Og�Q�u�5�N��������U4���?:|���35SR�'�J���DY%4���������o���{���E�8�A�"h}�����]vO{W\�`�8	g,����B�gq �E�r-5�W++�������r��9���^���F��SH����4�u<.F1�H
���:wK����E���j�L)�o����c�BH�U����7/�79�B;�RN�>�4���S����-���WjIb��IO4������W�V�yK�J�[Fi����b8�[�v�>�ns>%�0.3\��e9v�j�9�JV�`�nktpw�X�	�0�R��c0����l����8;y��2���}��7j&{�*�����V4pL��^����E��.��#�%+b=t�3I��V���vK�u��.����S3����j�B�h�u\�'�������8k�fs��/�Q���0�n��BN�w%�)�+�nJT��<|�~�K���M���:F�8 >�W01�m��w�x�~=�)��5ti����P�w8�k�4~�.C�����vz���a��;T�X�"�z.�����CM�����Y�V�+'���s����Tm��]�Po�nM����qB1z��p)�q�@��@!�Lv�6$�A1
�������k��>Q6��o�H�Q�P����}>����h�����3O��E���q"H`��B�m�)�B�j���L��R6��v���&G.S]�Fq)����?k��E���&��O*�����)�%A�������+L?(������M��%���I�3�M���o�9�~���a��x�����g���L��x�z,��o��-���T����_��0�l����Mq����w2�3�@l>m��y�������=0��������������Wg��7�'RlF|:�|8y����?�W_�����7$i���7%�����*w�u��{e��ru�cou�7k����R>Y�s��t�+��([��%g�=/�4d��;��z�{^���VP���`�[;����[O���=Sz���x���6�MU~~2����;��W��7t��
[��)Y��U?��\=�F�3��B�.�HK=��6y}����M�|�
ph����cJ����C��Q������Z�(�u�xK/�I�]����{��S�X����g�����y�����k�|xK�:9�?;8?>;98h+-R��Bu:�h�}����X�����`�c�h������z��X������������������������t���A�Q�f��d<���io��|M�I<:���,g��h��z��qy���*t��,�r���h}�ot	�Y����R���� m�A���7�8��c��SWQ��>j���%�K�!���@�L:
�tI;�#���	��l��wRGue�4�j
������+N%/��3X������HP���S�T��o�#T�\����1�q�)c�K���A�n@>�n�Sq����G2��>�Q:'��[���"���i�h(��1��$��@����)�*�m��),�'W�v����r�Qg���x�j"���D�0�pr)r��%��=�v�.>�S�h�Li!:����O����^\�\$�>�o�����R|���.E��i�4!
0��_�
V�Q�$W�%b�Xq���B�N\G�r���z�FW�aOr]d��q	g��@%�l�_�t���^���V�j;��&����:�Ft���|<~_\&�y��|^��C�[��*n�����Ja:��Y�N���v�����y�%#����9pr���d=X�<�]6�K/��.Z�a���f�Xq��Bt�G��q�Xlb~=���m5�)[��)X�7����d�J�&��Lu��8�1s�gM��F������p�����%.?R�����d��fb~�d��
�H�Q�q�d:���!�y>��9��9������W����jx�h���vu|��_�m&E�(	�`J�[��l��D������-<�W�����s��.5��\�I[3��2f������2�ux4��q]+.�CU����R��j�$��������&OD�1��]Q�P�0���x��Eq�N�vC��XA�)����{�)����t�[���pJM�4��@)=U��X������
��"%�gWD<���=|��!��F�A�o
3>�����
�`�	�]���3f/����4��hm�8�f��]VZ���x�,���?}89c�S�`~���Sqo���^X_F����bL�Vn����������c;���&��;�X��B�2��(a����"���%�YZ�H���E:At��G:�E�
�8�=o���@G*����
�|��_�B�7�����U�����r�=���2����f���D�*�.L��7NN>�h/l��
�������oO����;<;?���������������fP����M��R����@]�{l`�<�s��l zs8{���dr���Q��@��CZ�+��@�+��=�>��@�l�$~��FC%�y�<}�4�D&����qw��rJds��
��/@F�C�i����P�2�N��#�����)
�q�e�c����K�l�	�N	y��D�	W����j>��X���TRT��6�!��h��c�{y,��x����.�xRn��5J#�V�h��W��L'w'����������9l�+4��\�����������m%�����#����T�$�������i�}�m�B�����$Bi��&w+���xA�*"~������
���9"�h�4M>��U��y���
��j���=���q���N�MB�+e�Yi>�Bd�C�����
V��$�QOW�'+�S�;��\��.$8�F+�st�Y~%Az��Te�C"
b�W@��	K9���|T	�'t�?+��r�N�������w�3%i�j�\����a2PI:K8��F��w7���*�|
?��C�
�_,�2^%e�U^��T�X������������=X��R�(J@��N�[���73�4,�E��vY�|��o�w��c#���^�NZ����b!R�����Z���3����1��5�Q���K����1ZZ�c��q6�*u*Y��XF���}�E	��Q��-q|������g������sLv�\
���:f����zT��fqH��3�J��
h��Cm�N�"$�5T|��|�G�B��
?��SL$?)Q1Z�����
>(�C��'}�����q��o�
�]<�X�����A`�o���;
���)�sw�����VnUW�.���8�%x�m���Ysk��z;�������n��YS:Yf��f�������V����8���xB����������?�\��0�#8_�%�������(��=8srp�<�����Oq�[�;�bMa?E��n�7��J��E�5{�E�1"r�m���j����i���U%�]���)@9&������jF���y&(�g��y&(JJ��}�yF;�
4�fT0��h��H��=Vh�RMPb�	V3�h?��2���x���L@'�� ��P��1�k;c�2�W�6I����E;D.��]\��!�,n������P;����%!�H�Z�mI��+8��l�����c'+�Z���H5,z�
�����	�9�v��^;��v�D�]��T�,�iwPi9�v�Si[ox>	*m7��R��l�2��N~�L�������]��T��bk�Z�yU]����G�)q��������:b�]&F�}g,Fd����w�i�W��M�H@�]y
�f���UW���,�8�N8Eg�z%zfdg����'O7�%�� �_������e��I<7@�# G��+@�?��������Xk�A���B���1����u��2��a��_�'~d1�E{�d@��Y~3�d�/�e�5��zp���nv���E8���2���2��[!�`�}_��	E�����Peps��L�8��A8�+pY���|�'����Yt�$�9�XGOMG#'�������������n�i������DMT�
�uR�������-���R��&���tBA���?��9��%�8k��\@��Ck`��s�M%R���L�C�.C��uA1:���z{�7m�5��mu��d/���"+/����F�������1�d�]��K))V_)j�+���A���3���G���*hp����JQ�6S��[kS��#��`�;D��w5v������
����@���:����KDw;���o87���<�.�T��V9BB���D��O��t�#pE��fsG�k��OIt��!Uf!K��Y���g������O�bH�D�Qc���,	�zQ�P-s`�96f���p��x�4�=�W/��u85���
[�VU�����o�&��3���@:�d>�!�S��.�h�R��SChB�G����j�i��[�r�}RF�����5!l�@Q��KJMAYIM����]�F���\Y����)�>�oKk^��<��
:��O�=��cn���Q���[l����l$��@��\g_����Zo��m�������>/�0�q;@����'A!_w�.E��roT��cr�Y�X�E�B{X��C����6��1{@�����#
�F�cd���s�9s�3J��}����3����^���2����������H��#s3��I�#����F�O��Q��f�������v��c����:�R��O���5#� '��^�����Z��@}�1�������X�����Q4e��E.L�]�.Z;��)�]�%�s)s��	�OY��Vr�9r�_�D>[6y���3�u������B/����5�"��������W��&�}O������"E�d���������Y�:nj�	%�z\�R�������M:���K^�pqz���}x�W�Pc�1M;X�������a}����*	���Wv�aL��t�J���P��|<��U�N[�������kP�},��1<�����gq�&�����'#���idg���T��v���i�F��gB�E�N�������~(��Svk����1�5�|�r���~"FJX]�o(��1�����z��]C����3��r�U_iw������	E��2�Q�
9q�
g(>���N��c������+�E��7��;_p�o8���[��;@�.W���}���>-�����Z�8����n$��^��hst���<
���F]���f���4$i�<����-Zf��h�W*a�+�w�0C4�F���"��zf���"����f�p���*���P�W���^3T����q���R��oHA��&��W^�zR�=��5�Y����5�f!��
�r����^�
�����
�
F��\���?�����x/�#���#�)������%��-qDp_�#�����~V'�����e�)qD�����:�L�� I��Oz�`Iz�8�}�mp�6\��5:����>qfH� �^u����Q�H���K�u[X�����T��)��]����|j�:���U[�V�o��{�����-9\9~iA~��BgP����w?�+dOrG���O��������z�~�_���C�g�(�m�����C��3������@�-�w	
\wl8���(���BH��Tw�h����Aog����B}8t�K�Y��Z-�(-H1�*�9B�8|$8=���v=�D2+(�}�����	A����a������XJ�M%�%��_F�sx��cG����������
�Ao*g�EKwM�hywU�;�Us �������=n�M�:���&-���bKg
����K�W� �=IjdZN���]
�2`�3kZD���G�!�s%s	������"ow����4v���������K"za`���~�$����(g���L-;��QM����=���
���nBJ������v��|p�^/���V�u),����:����IH^���S��q\:N�$6���q�J7��h����l4�QK�Duk��D{$��p�9��l�n��n�O�������X��m�;d������./�p���nqJ�To�1a�X�aJ����6�i�����o�{�
i�?4[!�|�GW�io��(��HA<:���Y���:=��r�������A��V��'4������f�ft�0�[��D��33P��u�;+�6�r\{���|u9x*M�*O((e�7S]F/O��y��t&_?^G>����|��J�$�=�u������v]���2C���\�S�������&�(���a���P�%.�x������������t
�?�)���	�����i�����*Ef$�p�����z�����Fo��&�{;N.��z���dz����0������ �]B�L[F~��@�xF��+X�s��:xd_�o�w�r�,,��i�	��&DG ���8�6q?e��c�_@]u
���%�^Zhh�F�x�d���XA�����8q2�h\X�������v(�B	��>��Ux����.����P��{�@_I����4���ziN���3dyf���=d����Q��3�:]T�u��i�$-�I�_����M�/��a�">'T����
��g���R�4��������4��(���{�~:|����3GS�	t���*��FC����0�=�m2�k���������'�l��^�x���4s&}�0:�`"����b��@@<vj/\fY�^Q
��������]ZR��9��&�G�T��L�E`��)ku�3�?�T�5����n%VU��ShaV��K��#�B�0=^�N�����35�I���kuO�F"�{jaI��=�����g�4I<-��_����m�lt�2
�e�>��.K���K�9�H������n���(��c�Y������������vck�7�*�}�N+��S
b�2 �>�h�6*;��B�T3����Gm�.]�Y@X���I`�;���(<���Q]�+L�)1�������L5'���� ��5�ZW�ba�zK�'��@'Y����Y�����|.n�~&��\����5�F35�PP�����2/���;
+���E�(�
�kD�_���S�:/p�71L�LQ����j��?�6��X��R��MOW
�4�R����y���xq>��K
/"2�������*.���soP)�8�"8�F(�_��~�E�OYuy3�H��+��kk��Wo<}9���p�ed�Rg���p���4�\4���'�,���]��W�a���0�e��A[�[q��7�����i41��(y��[�p��|���M�f�� ��^c�9���:�<�A��<y�^��I�uQ �7��`�_��������&WbV&�]8����h����Aa|c����T�����?Xl����t"G�[K�
�.+��qW���r�H$�]����z��L�g�}�`�P�OML�LJi���9B��[��!'�!8�R�-�'��k���,��G���jLw��/�+��w���k:[�(�Z�^E8�����7�V���m��8g����2�1�X0�0����jBI�5�-:���\E��c�}R2;P?��E�cwG��U��1�����8`[�'�{A�A�*�dL& l��r&=�D�����/?0�Y�<�e"C4����M�G�7�i����-�dg���bC:)1g~����������� ��@��������H6���r8��yj-|��C�����	@
GN	b^�W"�B��
g}��^\��h}!�F��+g�s��hN>^�*�~�B"�~Ab��s
�4�G
S��!^���������	-j$���>����[�q���R�o���������.���R���]���U����owU�]U�zb_�-2���Q�6�����l���]��D��1��|p����1�bR;$_4D��X"a����T�#�jEX������-u�Z[��Fp�)D��'�B\W��j�����o��Eb~���W�z��x0���,�f2��Z���b�W6B��i�����E�(���J{d�R�����������C���\��:TR�Y��3��i�S���'(�I]@����R ��H�C~P�
*�����$4(yE�������<�_D+���.�f���lR^���u��<w��*�P���x JS*&�W9��UG����Wn��������e�xh4P��]#�8��0�W��~�XN�����������s`0����Z�F�fw�g�'g��N�I:=xuv��}S��
}�K�/���e��E���N�27�+���&/��dizv�������(S#�� �Cn�O�w����C�Y..�:(M�]�JN��q:��7��]����K���4}���|�i���/����]��
r��3����
.D������<%��	���t/����P
�do�U�6�uc�x�%�Q�qf��y����h���S7b���mL��s�p���B�7�Iu�&7y�-�ud
���`Z�]Og�6E8w�27��&9�no����4q����03���Y�����=�I`y?��
��c��Y9Tzq��u)M���!����y
R��s�9�0�3�>�m�{�q�����w|)����se+��8fR�����>�����ur3A�e7�d�����u��5Z	0�+���c�*Bo�u��p]7.t�\0����"!��,zy�A����J>'�F������rI���1dB�P��E��*iM�chd)d�2�$��|jX�E/�W�����eR����(i�����y��:��"��(�X0^{q{\��N\�����I���3&�� �"ux�����ipO�X��y��W��[M�����V�i�������VJ�/@
H]N����Ji�F�%�)����,�x�@J�D����aFr����><��qK���_�8�!�WV��P�����O���@�����wfqeEk�}-��:x�n	�g��9He���F��K���0�5H���u�\�F*�2x���m�\���"M�[u�'�Q^�:�Mty���`p����Q��[�qR:Y�6)�H���ld�?�b�f;"�I4L�n�1�I�hQ�����I'�(���2��|��ZJ���-����g<���k���~���j�h���[�03t{O��
�g_kk�R��Qu�L���$�&oU��P\4c�$S��"������B���!x/���z��~w^X���r������W~}���������k��&A�'�����5���S������L��F����9>���|��"��8fl�\�6���}�/R��Q�w^�V�Z
�C%���N�K�K���T�c���gJ�~�9�"o+[��������������o}�i)�bRE�&�h&�<����IU�����;s?�BG�muw�	��(�-B�$&���'h�'��kp�A�cq����f~�j*%�'Xd�h���
��+�<qKV����1���D��2��t=��|$���OG����F����(Syr��NE���>��Huja7y
�O��v4
9��R��9�M��5.@�*��.����Y+���c=l�K�N�����z�	���s��j���N�w�����#�8�1%"g	�/��2�D���!�I��2����0gV��2e��L��)�2Y�)��&�<���������d����|�d-��:�!����� �����w{�^��j#���4���}(���}X�r���X����vP���?��Z�4��H�rJ��>���3`�\���=��D������2��k.q��UX{���t�t�H���C�����"
S~I��r��s�.t9��a�
>>��S��9��d<��"�*������
pt�6�ntId����`�>�.����-�k~�{��������������Xl�l�M\�������jfN���q���p��i�~�+�8��W�h���1;�0����������,���W�c�������yp�@����{����6����������s�������\�&>6�?���&��F�6z�;�L��j��NFzT;��Um��[_u*�,��`G����1�?�JG����7d��������P�LY%�+�mZ]V��D��r*�l@�*|�w����f��U��'���#�4����iE�1zY��/��qi��;�NK��v%_W�������G��;�i~��,�:�>4g����%�<eln)�,0wZ:��CL��;%��_�	����\�{e�^|B�|�N^PRl��c:��1��W�M�����Qf�(9r�������R��,n��j/(�����Rz������I~�PdE��;lx�}���~�-Z0�<��O���������N�z��<���&�
�%]@a`�eK�����m@B��Q�9l:r���-T���?������V4�f��{GD�g����4�3��J��b��N�^l5�
E6��moPn����Q��D�����_��V��y�%�-thg������/�i�(|_��2E�sB
�;L���=|{��%���B�t^|K�,����_��_b�$�Phih�l`������~�uGx�A���1Dd}%�

�D�
���������b�,���BQw�<�����Z����Y4
�p��6wQ�b��W%�+���so\�9�TiR����p~�����g��@��Xh���m�i����T3�}i�9�,��EXV�0���;�1�w8����L����{�[I2`���1���(��F�� ����K|ed�jg�u�~%G�`X� d��V��b �x��)�A��k����OS�)P����)�Xb����x��8���Af,����i������y��Zf�����|��G��S�<e���������mG]������h}	����?�]�SO�Y=@�E��&pEd��55���B��!t:��)�5��}�i%��+G�
U9E^bGa�����R(�|��ZZz����,#�Tw�Ac��K��6�v(c�gBV�}�7����uLt��-m��',:�r�2�2&�k���$/A�!&�������o��<��v�/0�D`�{*�����*NDL=X��G*SJYr�'�����v����E�^�D���U�������W46��l���tpG�*���u �q���p�qyM��=/Guj��e�����W8�9
�7�L%L6v�Qr��C�^%X^g.~
�x�=W�N�-�4*a�~�1������j<���ZI��I���m���<cY�R����t�e��,+��[�����<�(�[�&����f���+s�&#`�
�?�KI"����`���@z}�b
t^��U���v�P���=}2�v�����pw�CuIO�^�%m)���>��������y:Kq_P�r����V��i+��c�:9��R	4���*������[������$������}x{���������	{�)����xf����� ��o(K��}aaa2��;T�s
=�-������B?�7�������V����r2�X���K�J
�Z
����=R?�Go���d�;|'���/+>,Ze8�����[�{��n�������������r��w����u�Tyt�����Y�bW�E���_��������s�����]�75��[I��
�������?��V�Y]�\����v�7�7���q��]�;t��n���v�GxA/����-��6�,����y�a��j��m��=���u�)�n����R��
�m�-�O���O���BV��E5�[�E�����q����ugj�_������F��8��
:.
hT���4~����r���p��-��������w���oj�d/����+���$�/�.��7�>�m�^t��;���p)7������C.x{�I�����#��t�����Ih��F��OQz�?��o�������2a�y�J29cV���[���p�������3������O\�PMc;:�\6aFxl_��?c�����8�4>V��'����v:�e�tE��Y��i�g�';�IF@�B���:�_��^V���/����Sm���l�[���7�4�x��Q����(�^�������^����R
z[�}���[���N��j��N,N-lF��~��S����d~�-D�L�W���?${����a'�R��@�(�x��%_7�G�_��A�#b'?:)�mH�:����������.�������������^w]��[��	�Y0G���em�2(,�S~����hN�y(S���yA��H]�3��s���3��'_����r�v�����4�����>������i������Qm����,�v��������N>�]�y������6�����IN�/ngVmm��nq�C���R�Q�9v�	��=��_^Z�/����C����hf�<��m��L����X%���t�@DG��3�Tw�~5��V������|<>InL�K{|X�}�c�f��f�t�:.FL�������a�%=�����*@�P$K�o���>8:8;x]
\���5}�?R��I;��9]-)������������'����40�`���qvrpp~��������WL��R��0��,��s��8�� ���nq�:��9��[��z��B�M=i�_��U1A���x�9�f�%����j������c�6�4��3S��*@Do��d��?����9i})�bEP��Uy�VT��}R���V��L�s��������+���bs��e�k���OT[��a}����B$��u8�W����b���*����{��|�&\?�h���q7L��;���������O��`��[��#�2SV��-v-^@����z��r>�14��^���@�
����!�����v:
cf1<��Yo�5��iSW��8Ju=�6}��d>�?�����T�C1d��	��<�MQD�L}���IRg����s���	t��q�o.�?�]Q�&�e��m5��|�x��Sk�b�����PWW��DBt����|���;�?3E��>p���h��*_X��lq?[�Y9��8R����Z���K�\�E��[L�J����R�R���n'�0>`�7��0�Pi����|1�0qE��pX�2Q���{I~5R}������D��1A���G��G��A'�/X��<���)�"�<������n��������}����_�LU�yE������
Nz��q���d�z*�3(>
l�_y4�������2K�eK�59��7""������AR���F�����4���4\p�L�r�F�!l2�B�*�&�M�������^�)���r-��[��Zo���7��YgV�U�����h'�
�S��<>���P!�����"�3�"O��7�4�@f���e���`c����<�o�X�U��Z!t���Z�g����:0��9z�
j���X��@s��X���!�5F�c��Q�bP��*�(�4O����#����I��2������I���s��u��.l�1�������VU���C�%�m�#�����^�����"E)JC�O�?X�x�I�n����f}�.�Z���q5uTvW�?G���������g'TG�8eB�,��0�k]�u�
���,�>�*cq2���X5l��_c^��T��U�p�ON�K���Y�a��W/F;t�U\6^Fm�+��7t{��nB���)�k�����W����8�9������8���ZB���Q[����� ������s���JY�qn������k��_m���}�=G����x�'��N���xa���E�
����n�D��1�����)d�b���+#L���NU��W
��S��T�~��?9A�6>�7�����9�aG����j�f(dqM}
��6����3M&V��AX4-s]~�=?��+��n�������
�����X��:�b8)�e�=�x�����>�����?����S�����
�����M���L�#��������[&�(��f�)-<r9=�Sp�{�5�������+��e�0�i��	�@)q�*.�ua#�������%�	'N����Tr}8Yx�X�4�%T��1�/|��;Z�8'���)��|.��,m�������	�}���b���Dm����	�#95hW���
�2�k���}d$/#f�j�����!���'b;�a�O%�'_�����������iJ
Iydb�i�fM��;+�F31��N��GB���k2������2��"���	;�����x�����R2!6���t�d{��z�����p����a!���[$qe�����
f�*N
���VD�L?d� g)q�+�?Ec������Q�^���+O��	OR;��B�K6�Sy#v���fW�N��A��X=|�zx�"�%���v;�n{5�[y�l�_F�#@.,s�6a����`��D���B�����������:����Q�%}�|�M������T}���Q���lao/m�O����S���F����}���rV#a���p<�L�JB�rk��G{-����cB��^��X����]�������eD{��5#��TmGo�o��N��O�:�e��������|pjWp�D����pzC�`+�ftKR�Y�e+��Z���E���&�Fp�0)��i����~s������4"�\Dhn��2x8sA?���/�����dJ%���]��9���by�F���FBd�t�F�8��m�^��S s�nP)k������v������C�~au�����U�\���(��]!���K�F�.����B���N���-�S�%�U��������,��u7[U��U2;�������`N����n��?�?Er���OJH�O ���xf�]���`VJK���WX�j��JD?���!����{9�%�D�|<�[�vA��:6����z8d������i<sOA�T��/.<A5���xs}��r2�����g5�uV�Z���#V1PJ+��9��7������r��������3/t����%�d�)�)`PH�0��(��,Q�c���}^D��(t]!���s4�au=�Q�\��0>a�53���	����=&��?�4�����9:��9�d%I:�*\����T����N��_~���j�C�E?�F���O'
J���o�>=8?|t��@a��I!�S�.�9�D��h_YE�xZ,^k�����C��\�����o<�/w�Oe��MN���,�?�~<L��(;}���D&���<w>���O�ozyx�j��Qg3��+���Z�0)a�EUE�_��d�1��S�c�n@��T���\�9?=8k~jI��f�����w^��s�(�a�">'��|�������e~��l'�v��S����WMc���ke>W�!���o��^�'W����7/^�*�O],1iu�!�4�8���������%8�/�	E�!�Z�xp��p�{/�;�������0d�p�������{��5����f�J7��d\gB��|u�xk�;9��uM�wY�-���2K��*�����*�T=M�	�N������.H	3Ve��
�������S��������Hv��
#53Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Heikki Linnakangas (#52)
Re: GIN improvements part 1: additional information

Heikki Linnakangas escribi�:

On 04.11.2013 23:44, Alexander Korotkov wrote:

Attached version of patch has support of old page format. Patch still needs
more documentation and probably refactoring, but I believe idea is clear
and it can be reviewed. In the patch I have to revert change of null
category placement for compatibility with old posting list format.

I committed some of the refactorings and cleanup included in this
patch. Attached is a rebased version that applies over current head.
I hope I didn't joggle your elbow..

Just for my own illumination, can someone explain this bit?

+ If a posting list is too large to store in-line in a key entry, a posting tree
+ is created. A posting tree is a B-tree structure, where the ItemPointer is
+ used as the key. At the leaf-level, item pointers are stored compressed, in
+ "varbyte encoding".

I think the first ItemPointer mentioned (the key) refers to a TID
pointing to the index, and "item pointers stored compressed" refers to
the TIDs pointing to the heap (the data). Is that correct?

I'm also interested in the "FIXME explain varbyte encoding" explanation
currently missing, if somebody can write it down ...

Thanks,

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, 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

#54Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#51)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Tue, Nov 5, 2013 at 9:49 PM, Heikki Linnakangas
<hlinnakangas@vmware.com>wrote:

On 04.11.2013 23:44, Alexander Korotkov wrote:

On Mon, Oct 21, 2013 at 11:12 PM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

Attached version of patch is debugged. I would like to note that number

of
bugs was low and it wasn't very hard to debug. I've rerun tests on it.
You
can see that numbers are improved as the result of your refactoring.

event | period
-----------------------+-----------------
index_build | 00:01:45.416822
index_build_recovery | 00:00:06
index_update | 00:05:17.263606
index_update_recovery | 00:01:22
search_new | 00:24:07.706482
search_updated | 00:26:25.364494
(6 rows)

label | blocks_mark
----------------+-------------
search_new | 847587636
search_updated | 881210486
(2 rows)

label | size
---------------+-----------
new | 419299328
after_updates | 715915264
(2 rows)

Beside simple bugs, there was a subtle bug in incremental item indexes
update. I've added some more comments including ASCII picture about how
item indexes are shifted.

Now, I'm trying to implement support of old page format. Then we can
decide which approach to use.

Attached version of patch has support of old page format. Patch still
needs
more documentation and probably refactoring, but I believe idea is clear
and it can be reviewed. In the patch I have to revert change of null
category placement for compatibility with old posting list format.

Thanks, just glanced at this quickly.

If I'm reading the patch correctly, old-style non-compressed posting tree
leaf pages are not vacuumed at all; that's clearly not right.

Fixed. Now separate function handles uncompressed posting lists and
compress them if as least one TID is deleted.

I argued earlier that we don't need to handle the case that compressing a
page makes it larger, so that the existing items don't fit on the page
anymore. I'm having some second thoughts on that; I didn't take into
account the fact that the "mini-index" in the new page format takes up some
space. I think it's still highly unlikely that there isn't enough space on
a 8k page, but it's not totally crazy with a non-standard small page size.
So at least that situation needs to be checked for with an ereport(),
rather than Assert.

Now this situation is ereported before any change in page.

To handle splitting a non-compressed page, it seems that you're relying on

the fact that before splitting, we try to insert, which compresses the
page. The problem with that is that it's not correctly WAL-logged. The
split record that follows includes a full copy of both page halves, but if
the split fails for some reason, e.g you run out of disk space, there is no
WAL record at all of the the compression. I'd suggest doing the compression
in the insert phase on a temporary copy of the page, leaving the original
page untouched if there isn't enough space for the insertion to complete.
(You could argue that this case can't happen because the compression must
always create enough space to insert one more item. maybe so, but at least
there should be an explicit check for that.)

Good point. Yes, if we don't handle specially inserting item indexes, I see
no point to do special handling for single TID which is much smaller. In
the attached patch dataCompressLeafPage just reserves space for single TID.

Also, many changes in comments and README.

Unfortunally, I didn't understand what is FIXME about in
ginVacuumEntryPage. So, it's not fixed :)

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-13.patch.gzapplication/x-gzip; name=gin-packed-postinglists-13.patch.gzDownload
#55Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#54)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Thu, Nov 14, 2013 at 2:17 PM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Tue, Nov 5, 2013 at 9:49 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 04.11.2013 23:44, Alexander Korotkov wrote:

On Mon, Oct 21, 2013 at 11:12 PM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

Attached version of patch is debugged. I would like to note that number

of
bugs was low and it wasn't very hard to debug. I've rerun tests on it.
You
can see that numbers are improved as the result of your refactoring.

event | period
-----------------------+-----------------
index_build | 00:01:45.416822
index_build_recovery | 00:00:06
index_update | 00:05:17.263606
index_update_recovery | 00:01:22
search_new | 00:24:07.706482
search_updated | 00:26:25.364494
(6 rows)

label | blocks_mark
----------------+-------------
search_new | 847587636
search_updated | 881210486
(2 rows)

label | size
---------------+-----------
new | 419299328
after_updates | 715915264
(2 rows)

Beside simple bugs, there was a subtle bug in incremental item indexes
update. I've added some more comments including ASCII picture about how
item indexes are shifted.

Now, I'm trying to implement support of old page format. Then we can
decide which approach to use.

Attached version of patch has support of old page format. Patch still
needs
more documentation and probably refactoring, but I believe idea is clear
and it can be reviewed. In the patch I have to revert change of null
category placement for compatibility with old posting list format.

Thanks, just glanced at this quickly.

If I'm reading the patch correctly, old-style non-compressed posting tree
leaf pages are not vacuumed at all; that's clearly not right.

Fixed. Now separate function handles uncompressed posting lists and
compress them if as least one TID is deleted.

I argued earlier that we don't need to handle the case that compressing a
page makes it larger, so that the existing items don't fit on the page
anymore. I'm having some second thoughts on that; I didn't take into
account the fact that the "mini-index" in the new page format takes up some
space. I think it's still highly unlikely that there isn't enough space on
a 8k page, but it's not totally crazy with a non-standard small page size.
So at least that situation needs to be checked for with an ereport(),
rather than Assert.

Now this situation is ereported before any change in page.

To handle splitting a non-compressed page, it seems that you're relying on

the fact that before splitting, we try to insert, which compresses the
page. The problem with that is that it's not correctly WAL-logged. The
split record that follows includes a full copy of both page halves, but if
the split fails for some reason, e.g you run out of disk space, there is no
WAL record at all of the the compression. I'd suggest doing the compression
in the insert phase on a temporary copy of the page, leaving the original
page untouched if there isn't enough space for the insertion to complete.
(You could argue that this case can't happen because the compression must
always create enough space to insert one more item. maybe so, but at least
there should be an explicit check for that.)

Good point. Yes, if we don't handle specially inserting item indexes, I
see no point to do special handling for single TID which is much smaller.
In the attached patch dataCompressLeafPage just reserves space for single
TID.

Also, many changes in comments and README.

Unfortunally, I didn't understand what is FIXME about in
ginVacuumEntryPage. So, it's not fixed :)

Sorry, I posted buggy version of patch. Attached version is correct.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-14.patch.gzapplication/x-gzip; name=gin-packed-postinglists-14.patch.gzDownload
����R��iWI�0����}���b$����vq��Tw=]]'���P2�Sv���n�eFJ)�U5��O�
�����q���(99Q��i2U��<>:������Q4�y��4�<��}����:����$�R'�8V��(V������^2�����7||���>��G[;�����w���,s�������J�Q2��k�9�V�d�%q��!{����u�m�)���&*2��U4U��XO�8V�8:��.�q[����N����_��{�A���FjCg�>�U������Z�'���,��H���4>��&�i��muu��T>�7��Y]���bCg�{�sur+|O����	���a:�F������.|�?��h<�G���Uu�"����T��|z�Z����w����]\�Q�o�4�B?�8�BW{'4jz���#usOSu���l�<y!�0b��	�_\D�q���.@f����g8�l��F*�/�,��f��5��F�t5I'�3k��ni2����,���������n��'��5�I��h��6��=`w����h<C4[U�)�(�L&N/`�<n����0�������h��Q����Y1L
[������q�O'���F���h|�f��9LL)�����AW�M�x���"F|�P��Y��?I���*����G�1��N����'���-�A2���|�?��mu<N���dv~��J4�S���^L�ax �X��YF�������1x��>q������p'���F��Kz���''y<��ue��p������k+ue&[�ez}� �� �~�Vyr:IN��d
=���Bx�H2<K�F�wF�d���X��
�%�2����j�p��c�V��-(�M����@�[��� ;����F�0���N�Yt	�!q��[o�{�, 1������r��S:�W���hG���_DpjS�D��a<2���M��AO�L#�����������;����?�(��P^����t��N�����"���W]}��)�5�>#1�s^CW������v����aC�P'D'��p.�UZ��������
�@vY��(�;O&��Wg1a%Q� ��h��Z�x�.bM�S��z�H�#���e��=�����C��3=y������������5:�#�<rT��v���(�P��F�C�@���q�A�$
���X�������s�v]���>z����?^���!o����}����x}����~����p�fp���������
�1W��;q�#�:]�= �e��>�����tz�2��3$�DofO
|&�����x��&s?)��$'�1��SB%�/�	�I���P������`�y��%����9�f��t��}E�W ��(l��>����P��qN%�]�K(�	�v�xD��n"�%
���\��_9133��N��y0�Ix����	HNAX��)�N������'�4������,����8�)�p��a!G��h23���4!��b��]���!�#��$"�7o���h���!�{r.����_���>B��c�
�$d]9��m_�*���Q

���)��D/�v��?l����K��Z�NW3�	1{`��:?����xY=��R���p�e�m���{�����`\��<:�� V�S��|�-s�-��['�X��76v4'���hZ�B%�U.�'.0������`o�1�P�	x�SZe�O�$(�i>�
�9�&�	P��"�S���W0$�_E��Y:�
� �t 4#�y��A���-@�PE��;�8g����8F@%��G����+���z�P���jpn��"hqs������)/4�!�����D�.|-�����SB#���KH�������:�;�������?����V'�����"��m�����%4u8����/E��]��Q���"�$�&d��L����i<H`�����45��}4�������{�+3n[6]��bP���E3FJZ�����H����G��$t}�A�~D���]�����	�z����d�i�{<���$R$��J�*_�Id"s�ND���t1�h4��a�pv���
 ��DD)A
�����g��QD}6{���,��8 E���6� +��B�����[�
+�	�"ht������x�_��"���d�0�# ���EI?C��r,�f����y�J�)s�	�8TS��I���V����5�C	>z�vQ�$l I2����`�� :�ZB �]F�����U���p��E�r����w�+��K�6	U�G{��'S��2G�����$Tu���n�f��}���������x�x��1����9����+2hx���!s�p�_R����0���jo��U�4�~��x�"��L�����xxi�HeYr�
*���������dYdw������&J1��3�=Yaa����47�8�����������g�Mx�� q�I:�LP����!�����:�"�6D�aI,J�C��8�����9iS����� ���Q z���3M���}��@`f��yNB�LO����rp�b���������������'�V�
Ze��:��&��iC�D[�y~<;9AqV~���d@����d�j�/���+����K��u�M�^_�I�(
nkd���x����i������k4�Q��$S�T���$�4������7J-�v_����.������a|~A`���D�����X��H�A�y�2�a�3�iLZ������w��>�k����D,�F���������NNQ�m���CNPi������/�e��E��E����B��8V9b�@��0p����&b�{$?���������n��w��v�O�w��~souR}���c�������%*++�@'�����>���Y������t�a!����fZ8��.���@�!������R`1@�L����g��l,#!��DCW�b2�
:U`c�)o}��G��CLe���=��v���\1�����[���UCpV��;���a����%�	�7\$�*��0����Q/��*'����u	�w�Lp��l��1��\����'����:���"5�iZ�"����,��W�Z��x<��������x�=��(�H4�SI4N�����f�.$����=�@��.Y���8�]��������L�}����KD	������7�liEo��Y�~q�B}Q�?�����
��A�~O�M%�bt4�����y�rXxz�p���0�D7���Nc�_Y����+���E<k@W�$r���M!}�v��
��M����r��HnOml%
L�_BLNMc\���a��3
�W��8��8��gd_e���2`m/�X���g��V����r���)����,�;�zIN��^���e�Jc�q���k�D�U��$5w����7��q�@Cp��!+�C (�n@����U[�Z?�l������z��v���X�.��C�� Z��@�s�\�=��U��1���%����[�t��=���z�$��#;e����#w�@�����Tu<������o��R8�Tm���&��;���*�f��9�e<�jM��k��	������$$���a��m����{b?�_�o��d����}�g�0�����^�(	�Y��P�����1r�Y��9�Hc��}��S��Lh����?�H��Y�����S�*�tc��=5��,���	;��	
V�l�"��;�k�Pw��5HC	L{��J��
*��V�t�6u`������YD�=z�������MF��,�>k������x:��?���H0#`�B�������ZG~v?�/@�����v%��S=u�G}TQ-UZ�H�r�9����wH��X�j /�|5h)|GnY&��F���W d?�1�;���������z�x�iz���#^�Yp�NP
i�"�@W��
�E�2-��M�q�|�]���x�@E���8^����B�`�|�s�`���C��QUlm%�
h
���8�7�Ia Ke���������3�L�5+��W����w-2��W�l[y	/��8�WL$�Q/E�I���d�������x��,��[<�z]����p.}�0a��g�%��e�jYu� ��j�q��am(v��
�0D8�1�y�� ��6�����PM|NR��5����t���Y����v��W�G���G�������L��N�S��"|����g�������X7����v�g�s������,�v(����
v����������ko�O�C�V�T�a���u#R,f ��5�]�A�fd7���'��,��P>3��	��������co�K��vc���%uw�Y�
Ln�r���o��b9;z._X��z[<�3';D�A�')��-��"��(� �;����y|F��q�W ���5����4���k���u�6@�~���+��h�;�$��7xDct��������ok���
�,F�]���U�Wi��7�T����A���p{�S2�����U�ji&���;w�H�_���3S+�V�8dw���E��R��W�"��"���6w���%�{�W��k]I�>9�3Q��4{�L����D�F"�Gs�f�lu� P�9�u���)��th�6�w\��b�������p���1`Q�%��g�$������Y���n��C�d���e����1�0��Y7l�Hj������[��4�9���(�b�gn��(�X%���7��s� sDK�4
��8z�d���g�+���g�r_H���{�7����m���Wn�o;O]�����o��d\%_���</"���]T��|�� �hu�T#}��T�����.�TU��N�M����Z�~�]�6{�
rw����r���������_S4B��#U���D����"�g��C���]�W0^�mn���L�zS�!�U������N�����Jd��*�T����du�|h���j��V�b�3��F�	0��:���<��{Y�
7����)N���&�NAM�C���g$6V;G�
kc��6v����i���E���u$�*�do���x�"�����d�����2D�F��i�"�����(.���$$8�)��������ExW��\��yQ�-b�0�V����PY
�����]��$��r��>��.�6Q�T���-���4���*��
��B}BO(J�@7 �9N����c���� �O���i�`.fS
����gVc�O8�D��N�����5l�����k�_�e���q'^�k�������x�7�k�s�m�IuG���2X��k��'��4��p2�P��Gk�K����^k�rF�P��L��0�A&W_��]-��
�������qz*�����6��W�1EO5J�����g�N_�
�	�x:�A�,>��3=�(N=��2�{)��H�<V����	��9nr5������J���#�f��T�-�T 3��@�>����/��zo�� ���Y���r���;���<�O9�
t�A���H����C�E�!p�\.�:�\����^{�:���7�����ZUw$����~V�������h�������,�s
��\�-�	���UO�.�w*D�+vC���U2�9�w��� ��w���6�Kv��#P�!�&c#��/���/���|z�wxt��������V����>�����)��F����%f�������T_|��~��\o9O��tlU46���<W7?���])�'��~yH�>4�''��D=���:e�^YV)��������&�'�������.X���<E���.���]���F� �'�t���\#f�[7��l[:�tsB��t�0��<�b��0(�����8m�8E�T]��k��0/�������2Y�\�����f2�r��/������L��@�/m��8���(.��'9t�Q����\���I�<���7(�Ct��c��/�]'gY&X���!����d�y��m}���.BR���y���<2�7�1H��������nr%^y{�Z���BJC>N�:���(�>��K4���5��K��}�BP��!�$O�����1�I�A����l����=q���Z�g����VC���X����_����G?H0
r����5�pL�������D4;J��i�����(�E�z(i`0RE( �5a>(/���mU~��V�H�
>�QD�PG��Hf;M<RN'��������P�@S�7�s��Fc����[��&���������9:!�l`:��S�h�3v/l���RD���JrP���Ba@�����N���PE���~�e�}����v�+@�"D�n��	��b�"�L�~�^I�m��u���|2��
<�a��p#����yr�y�$���+��F�j����H��b����+N'�g�gc)%���V�8Yw�d��M%o�I��M��b�5�h��q�5�Kg`3��t6���{�?0�BvY%�{'�@��Q�\���L2�1�[h��w��j=�N��0�HQ:����{�X��kB(�Jh��%������'�b3��o�$��5j���zi�J�t��3~����XsL����u?�4����p:WL�JF"Z�b�jNmV��]��w�]���[1�!�h`�-t�]2>�����C��M�
���}�l�u��nD%���U��z�m(����k:��n�c$r�a�"86�r8�+��+�w���v��?:1G{����>}��p��t���]������G��z�>+h!w�����h�	M�qb�&�@�%���BQ��fW��l�S�p@ok>��}�K�+�	;<�u�G~�w�A�M>���MO8��@[�����b��8���c����"O�p��vW�;h�VK�����L��'J���Zq���2+�[�v���=}�9�~��j�4��hw�u��2�n'���V�7;n���?�����s�d���9Qso�V�)'�P���#+�/Q����NFA���8����?�h{%��v�����+m}���	~�?��|b�%Zaj+�3;����!�g`�������H���2�W_����]������f��dE���]Ov�����z��A���@�AQ
s�����o�q��<��_}|�{�i����������o��W���w_7����<?m�g��Yg���2��D��������u���3�g�������������m���xL�.��Ct�+�Sr�����fSx�XN�,��.*��9}��`���~��1���0���@���OS��R!)��6f"
k�M���@�r
��H��#2H��(c����%MtD��j��^�>��������u]�S1?�����D�Kd����:���4��dj3�}����@��&���r}i�;^`�����e���6�
��B�;�� 4���}�i�a��cJ��U�1������SP�����S[���}��-��Ck�;��3�@�3��V�
��gyr)v:]��RgINj���XJ2�E\$�U>e��{���'�M.�0de����kw����x���1�U1��9^A���&�siL!���|)�Q1���c&{9�+q|��(��X������K%-�����Tk���yh�5��
&t�d��D���h�A�m�A6}�0�[lL��@3:��9J���cV���rr:�-7�(^<m8e��V�@��	Z���Q�g�%2��F�
������I�-������
OaU-2���1]��W��������	��Sr	�\�)
o�6gj�������	��8b{!	0�����e�)Pp����n"���E������rN?���8`�)�]?&��R��>Wf�0����f�q%���|h�z�gj���s��Y���7�a[�����
t�S��#���1��F��]%�~C��6��K��7����={�4NR]�N�!�96�����F���+mL�g�M[:`�;u����G��*�8���E����}�p;�kv���X����3������������0�c;����L:�l�'Q���t���\x�J���)���~�%3�I�(�U���J����UD�.�S�R�[]����}y/��9KFt�S_Y���4�fHG�%�R�?�F����-uYC���d�b��$u7��1�J�@a��=��Y��~���_rY�U}uP�&��Zt�.�D9�,�-q9X�~(�9X���|
����+'����(�)�b6M� �N���K�2�I�P���zO�o{$C��Y�>�'S���X��Z2� =�#�W�jDX,]����OKz����i����?vZ�����c[�;�/�����������_�^|b(�}@�UHbpf�!��YX��vu� �*X�FXH�(q1~��
a������T�	�(�e�J���
yE:�b19�e>�:����D���y���;c�zq1��� `��O>;���S���� AgL�]�"I��`� �\��	�6� ���0�8��x�Nj��K�.��/���
h��
�~�V���[��\U���%��{�B�:�ee;���3#.���V�L��?w9�!����Fv��>�[j������'������.t�o	��I�������s�������o��L�C�~1�MS��������o�PI3���PZ�j��5��x��;b��h\��nAT�����
�����*\�
y��o���<$k�������g0?�t���0Kh�����JD��Y�'�I�MT�� ��JButQ����X�P��:!�(�������	������CN�n)��X�J�t��[:b,B���R�HZ���r3���q��	�"$,q���WB�e�@�S������S���;t@���o�/�������[���Y���V�<5bf)�#�bS��9X��'���O�!�DC�:���aV0?�4��i���R�fi9��5�,�e��V�2��oa��3�mmkg{����q�]�K��K�(`!�:�/�T��"�S�qF��27�a!����m���Ia���
�s���w��(�R�f��jr31@�w����L^\;ru�q����Iu�I��P).��h�b
��*j��rnU|I�����h�^���
u��=��\�4�m(W0��<E�*�CZO�B��5�_�0
���W,LI��8�0q���G�$�/Y8a�|�6?��jA��Q��i���c� =IZ����B��/]�����|
[�uZV��j�x������v������=|b5�,�ZdF�dgult��Z�/�w.��D���LS�	�8�G�:��U�/	E���QN?����]�C���0����a�FK�$��T��U�6�t�F���j,�@�B�R9�D���u�F��%�q'w(b��q�����*�g�j>����q|���!n�`T{#K�%���X�~^�8�	q������Dn0�Bf0�9�������x���i����{L�
P��J�"w��^��p`��r$k���vs]�WVl�?�U@e~/*(h��kf5
u��Y	)�y��e�c1�.���s~�9:�v���N-���.�<�t���)Q��
���3��O�r.���;�g�G>r������GC;Xy6��o(���H�(s�'Il6h��4�����}���L�\}�d�{I�T���m5r�b�%�GE�0���^v���k]�v����������2Uwh���`+�-��`�����sF/o|!F]�G��XVw�H)��~e���l~���e@}�i�)8�M��?���Q��O�OG$E{����wEs�-�����k��%�K$�*t��!27+bE�+����p������RG����z1�lf,!���Y���k}J��f��vu�
�������s-�c?EZ6�q�7vi�O <�������r���XN�������)��8V�dt�\o�z�u�:��m=u/��5L�����$���G�u���AuL0��	��a�$=����4�Fc�V]W0���mD�]'����.d���]l�iHw�%,���6y��3�HL~o9��)
���`�S|j�I&�;0��d��k&Y��P0T'q5B�.��H|	��`	�'c������y8�D���W�:���q��M��A.�9������>��s��f��t�=���NHS#*ys�����G@�o��&��&}LO:Y�}B��J;@�0�c�y�`�Sr
�p���\��Eq9�h/���	)P�g���D.'hmhB��7{\WM���J	AeK�X?������C�i�����������#0w���E)�5P���r�\���kL^L ��\��ZR�3�FF��x;��x�Xe��}V)S��=������I5�G{(���<�^g�k�U��YT����3��G�)�����*�u�R��}�!b�"���"�#[���,���Q����,G��^cA�r��rqkx����������J*��Z'A��y"7���%���|/��]
��/_T�{\�C�Kr�5�������5�0��Y7���Z�O�,���s�Jwc�����E��-R'	�
�N�mC{+?��;�:_���������=����L�a#N�%�rD�z��J�RM�Z��+�2��s�m�������32<q�+l�-������4�����l�u���wO�[wb}����:��x{b|T���a����	X�}�7����/�he�9e�U2����A����ay�#`����i�+Olr�7g�++�9g���AO�^�4��P�z�Q��)�������v�%D�:���[4j��7��
a������'O3o���T�?��� �m���$z����aS�d���$�NtY.�|9?���Z���R|_���im-cm-cm����D
������U�iV�`xm
����j+dY]tB�~.�;i-�;i��N|�*����+��������
'�'j�Jq&K�D1���
Bpg��1�~��g����g���]�!n6*R��jB9E��$�&\\8+6�L��TW�(����6O�m��_��n���|*@�g��-���������eK��R���0���k�9\"C'�G�����sP�(}�����{%�{�
�#'�lK1�]{|���/�*��Ex\Q�}$[�7�tmP�-��<t�|��[�U�PE�o�	Y����D�<���{f~��
5g�.,�K�<3��g��[�fM��n��3�����^���O�[��Q�)�gs��I��+J�'����{�V���2^��e�h����{!�'���f��.����B�����dx�i�Fq�s��k���s�$7���`$+�s������-�u���V��X1((�.}��=p�\kzW;!!9;��s���#��!��)���00Q�ms� ���R%���D�1"����������x����.f��^f\�{�^r���9��.h��PF���J1N
�2}���eB"E�
R����Tv��X������X]��ji'��z')���c@q�����j��;���G7���vn?5���|	�;���O(x�N�On>�jono�`�9���4G_\-����<����/�������J����Co�L��S���{���	��&�7��&E!@���o	��!��N{SGj3D7�{��F�gQ�K��)�kn��0��eD��Rd���A�#��G'!�5]���(�j�e�]�Q���x�ZZ��<�Zj����re��Pt_P�"�M�>��94�L�E�&��es]��(�5z����%��� �kH���I�!k�*w��[�*e�h-Uc9��c�63���xX���}o{���[�X��h�C)M�wS��p���"���2��p�fR�H�`�X���lx�;E!���*�_TJ�����I��mA�������Q;��<)[�R6H6���Y��:u7[*T��Ut�t�J�����!�E�����/�+�B�Nc�3*�������o�d��v���:��%��xvw�-L(:m�Fc��@�j..p��� K��E�;��+����F�L�P�~�K����<��&?B����Cb�����*����s��&W�]��E��M��P�����I�6��s�^kG��0�o�I+_������wLY��{����3�����9���;��L�w^a"R����[x��q�[�|�����g9-�3��&�Y\�����l���>�������b�h[[����4��a/����C���5tm��u�8���hom�D.^-t)��O�q���l.fk���5���L��	�)�"%3�\��T���[��,�D�$:��K6����i�r��W����$���H\�o�A\~�m�-�����	q�����0��V�Y�
�9�0�����mrj���~�K��r������z�9o�����������-J��������+����j�F�&����~��u�;���m
6�DK�/��^����:����aBJ�2�����Gf�����/������7�jS	������^���,P*�v%�������Q��'�:���2��	����7�����/U.���P�Q��$u��B��%���yHB����n���>Kl���U����N�`�����p5���4�=��t;7�}�Y���8���T�TI�*FO�-���?�|";�x�*<V�6!��������,r�Lr�69k�+Z��������l1<���x����#�}{�����-��j�������������8� ����.��5��(R��w�`(58yuH��u����S���,���i
_���e��z�4��;`y4��"/Z�gO�f�Q�
a�u��E�!H��`o�R�Ix��z����s�eD���o
�X�^�G�����]�{'}"�5���Vw�A������m�	�"n��l���GY<�����������S>���J-��:����JW=���:N(���b��W��`�gYz��V�,��p�+�2�����i��Hr�����d.������!�������\`G��|�%��o��iY��`�[|�8FK3f��r=$��p8^����������3{��3�/�1�� K�Un���R�Ir!�]o���
���6�Z�[��Z���CisM:8�~�%�c*R��q�qb�.`u<s����}���{#�8�&#�����$�M��k���*�`z��;�S�����9�����4�CbmM1��\�}R��\$7	������x@�WQ6��c�H��������-�KR���
:<:�+��XeS��J�M���3�D��dv�V@!g��D�?���W��i�(!?�������87MQ7�k	����{���Dc���N`l��.o%��'���g����&��(�MG�;��A��X�hv>���mu1�Q"uE�p�W4�:��I�*;��Ly]��k��^�3=lhha�q��G>�����iZ�O��v���d��b5pv��
j�G2�u�����zK��P���R�#����O<3r�j3ii�r��������'��w��Q[S�|��:���t)
D�mUF�0,��G��q�*������}|��D���|]5%8��`5<*��h������T$,��g��{~1��sNR
H$��3�gu!i��J�UqRqfeZ"#���f����������KW:�<��qtAm�G������	UL���������r2
F���u��u���$	
��l:�!���(�9���9K� V����-DY�%�xz�L�h���X�4���HWveX�T~4��#b�|�q��}9�%���I��S��i�m�L�/F�k:�<����Qu���������p
�K�"����������0�'>`����X)�u%B�)Sui�1?z���o��L���Y!s��L���i�l��@@���1�aEW*��5>����3�.����;)3@�St�������9-B`p��$�����-�.�����g{\����pR.7�0�,������a��@g���;@���3�EHn�f����N�t7�w�Q6N@r%|3	2cj�*��x���J%Z,,�f���h7����@P�q����Q���A�����R`=���m��u��R@n�)2EZ
�G��L��+!0+>����3��
=)���L�I*A���s�v���%�v���W����@�,�w�LK�����0��M� n%�x���	.��K�H"C ����Z��q@�P�p;��5u�e}#I�jG�$i�����w������P�Bjw*_�+X���I7����K�RYR*\���?���F#,���������)��t��2MZ�/g@^�	+v��#�#(C(�t�`�0O�c�-p���e$��8l�a�����#����0���T�h�i.>��F�4Y��p�JHf����\�������C$d�<�H ��=��+FpMt9NX��;���5�dR�#�:)��*]�R
��Z�,�YH�4�d)Y�
��0���Tr����V�mU�:�~������D�x_�
���@� ��<=l���O���
����V�	'�F�,�m�oQ�x3D��
:����Yoo��}j�����j���D���T*�I��|B��xb5="��������4[-�Q��Q����g�[
2[�x�b�_%�����tvz��9��%W,Q�l5�VB�@u2��!+��R�E����Mr!����l�K0MX���@�i<�*U��K�A�}P���3 ^2��R}�1�����*�x7H�i��{������*���%i�������]����ys��J�s�r�L9����q5���n<^o�
��P��O���B�`9�?]��+	M��[���"�d�,1�!����`���%�$�w�N)T��z)
W���������K�8*������R��#��z�����T�J^���eJ�`��^�B9�K�+��^)����F{��������k�2�&��fK�����L�P��<��I��mw�[[;����B�r���4���&��m�&��S6��'�0�'6�m*�,���bqi9/dzg�/G��������(>�;P4�~z�v�����.����J
��}]7~�O��%��������o�;�z����q����=���dv���a�x`�N&��q1��c8��n�pc?�Vvh�Z7�V�
i`n�&`���&���)�Z�S@"]L�c��*O��H"j:��B���)����������T�0����0���)4�xH�d>eo!&�;��Kn.Z�([�/������0�Q���j�{��lj�f�7�8�/[��7U�����#�.����a/K^wVy-��s-���\[�������^�2�oz���^�J�{�=oU��5oK����]-u��*^�:��:'�(�����Z��f�]��!�q��{��Rj���������_xMZP��/w��w�s(�����E1�0����\�M��X|�8�3�h�S�~��v�Bz���.�ar�9�����h8MFMN]���Wm���/�l�q��aY�a�f{�=���ZXi)q|�;-��yBZ�j!u�$�����j/��PdM�n�b�U�L�������fD}�?9O&�������M�Ym��	�����6=�B]mXx"�������r/�R��<%%���'��z�5Z?Y��p��tnU<h}�~�9�/�7��
)<�I<��wL��k`V����]r3I�������*N���v���n�k���"
�q�*'�G�;���pP����C`����r�U�������N
g,�-��7f����<����9��+�����8�qn�K�5^z9%�d����W���5������~��w�K�F�6�Qpb�Om��BI7�����7���
}|,h���A�0bx�h�;z�<��Wr&����zo��%�;�����v���5�o�8X��9H|g�����z+f1�2n�� ����S�(�V��&��?"������x
������oL���C"��*�2��V�"D��'F�Mv���vos��`���II�8���6+!�K�!4���
�����+I3=>?�F#6��
t�����e2=�.�0�������Tl>�3a{�G�8�*9J��%(���E�"�������Bv��
T��C��Y����Yi�,���1�&��Ew[7��w�b>�upg#�(b.�-�
N��I#�2����n���zgAI�^Wb�b\�k�p��[�I/i�C�r�#����C*��}VK*kq�-0��{������������9����W��������t|j����C���h{���cIWyUd�y������)�2�0X��Y�AM�z���Q`�Jg���&(v�� �ly���/�"�3������;��w��
'U�`{��*m���=�.�D��C����`_�����yk}�dOJ	�E]�����������u|�lB>�M��8>�xK*��7%n����G47{�������4�����'������0O.6�!���/���\\��|%%��-�/D����d2Q���\<����,#[)�D��t��}��)r#x��mN!���|6��j�l��vFt�n��r ��9�eI�@G�_y��9�~������������c�n��x���7����k���X����$��
�G�\��x�������o,9:��]�����`d�JQ����F�7t~o������x�hy��B��P��<
}�;y�L%��@��4�n����B��1���;X����%�����M�7�$���%�z�j�
�����9����������0�de+$�!����x�L_!x�_������F��s�����2��,c�/_������	L�+����w�L1s�|CuA�L�x�VN��ifL��3��9��|���i�O����.���{�	���V{�I��on��V��-4/��b�I5$!+��1~9���sSi'(q�,����o.	-!
i!����*�F���	�31�NvK@v�^�����,�a����1�?>�Q������G�L��<L�"'�^_���DqmA��=n���X!��{^}�����7��t�;L�g'wG��Zw���u���Zw���u���Zw���u���Zw���P�������Y���`�?y����G��A����S��RN�^��$�?�������~�h�O�/���16@�8�o9p'9[K�����]�l�a�����l�Y��V0��MB4�s�
����w�cp�`��5��-�	�
�n���4{i��9�$<�Qz�bd
��A���:�R^��2���I���@M����R�z���P(���0w�8��0��0��Mb���+,�|�9�yN�,�}u�����s���/=�=�}����U��!`
9�Ph��,�&�����i�s����( ���:��^��
�������)S�|g���c>~���q����d|�F�y,?Lq����7�N�g�E���J�
D/u��s�m[�O�r�O$��AX�XBDZ��i<=��<v��#��Bkx��D�rb�����%5��X��!�D���_��t���9/J���B2x"�*���Z�;\������|�I�K8MS��y�3�c����p����)�!
���M�������5�X*�&]�.�����w�����������V�����H�/��q�W�8I`{]�*' 0R��F�[	����D)���0a�7N����:��]���F��%���%��u���X�]��l���={�q��P��`y{�5��*2x��O����I��3��E*���h�7�uF1#;���#�<ZJN�����(f���XM�Rz����n���p�+:G��N��.�h�$���E{��toH�w8����@v_B�V�1�5N
�x���K����Q��#����Z.QW���d+��=��@EpU��Jh���t�i�8��H�)��4�)QM��o��]�������)j^��g�������.�����y|����������3��E7h~���a��������m�J�Y��>	���*&�G\r1�_t	���?~�v�G" ]F3��0��)t�t�\h���	�r��|rc�T����N���v������X�����-�oa����A�>�����a�=��)i$�`���I��BP�=n�����z���(g{��qt�%���n�l��?8k��1������(���U0�\��d���
M������W1�bQ�T\�8Ig9��{�����`�cx�H��.���������-����"�1�\����\���<�^Y������������*��uO*{p��J]xnn�1�Z59���_��V
�8:NF���h�R�����D=}�z[M���.�8@���s�=O���y��������~�r��3�^��F��T�-\Y��cG�J��h�1���'��������Q��
�y���z0�������2�&�b1t$�C����2��W�@l<ZbM<D<lermXqiP��@����e
0�;B����|���%���,�R���8�������Rg���E��%<3#�7��u���SY�"�bjz�����
-���1mil��v���Z���K�_2��+�j2����B>�.�.{=�#�_jm�YI�	��%�w���q��Q�d�l����lP��zG����pb?��N2���d!6^�w
t�����d�`�����7�������#� �]����q������qL>;,���j0����T�/����>�=��`�h������%�������RRuJ&*$�A):MkJ H���J��B�A?�"<l��T�K�@5��y]i�V�N�;�o�/_�G%��.�>*�=�~`o��R}l��^��gG����f�@�i~[�f��~o��$1�M�����f
�����1���O�����o����7g�
e�����~�c�!�K �|����'���'��<������bq�v����K�'���9B��S�Q�R�7*���v����=NM���4^�:"�_���D�v�S3q��i���FL��<����x������G�oo.�n�N6L�:����u'��=[����
��jT�>�����%0"�����R��\=$c��6����@�����S'����D�L�2��]o���S}�L�lB�A�o����v&��'�N/�O9;��������[
�\���G�a��<�����,���O���g��R�\�N�X��,N����&(�SQ/�#7v��~�M��y�b[�qr����T/�T��?�E��$��x��
h��,�KS7a�.��*�jB�6O"�����4^�.�agcm'?����]���4x�Ayj+��;�y�s��w_�S<dA��sr`��@Zq�`�5��^F.��Ke��b>��=N[��Tw���l��r�o�pV���R��OS�EO�����/�h&�S��|�'�wSS�j�K������r�B�@
�X��^�D�(�x�������8���'T�s����Mt�/���q��@��$�U�.��0�+
��	_w)�W2	��W�����v��������CQ
�S>�<�������]��8Ab!c�GX�V%�������ZH�1����M�EQolk��1W&������Y[�U�	0Vz���:�-��H�E��t��P���Lc1s� �w[XD\��(��t��[FX��4��qC�v%�B�z������4��Q��s��1I���	J����r.Gt��(���	[�x�^�x`�T���cY+�|G��~��.x��r�z��38�$���x�N�����QB������^Avk�s��W�~+F#����N��r��(�&��f�e&)���rU�����VH��'PX�PXo��M2���UZ�*A��*�p�>qDr�q���HF&g_��R���fS\UN����(���>[�{�@M*���h��M4��5�PN������	��4�e���vpW���VO�)w��:��������T���{W�f�/�9����K�7^�������|~\%�3�Y���+����,0�hC���@�z5���R����t�RAn�rm��eu��#X���J�����H�(�'��L�+����9�Y�?�}���w��c�����=�����G�>����{p���h�p�����{w��;��o�k����2Px��c�S���2�~�IwW������v��{����-�Z�s~���,��9��*a>����R�O�//��p��}
p���W�w\��E����jp�91�d*2��u����+��C���F�DbR[��D���������[����h��J�P,?�b��Q9VX�~9Vx5+��^
�
��[���V���*��\"��i���������-�o5�r�oq�%��/���uG��&{'���K��R[����}W�0�w���}W�,�w5�k��E��Vm���5G��+	����b�;��%�Q��sD����-����r7�����}�^�����fc��[������uz^2���_��%�S��)�~�tr�8Z�i���V���:�T(��t�T-~�����B���+�hW}���8Z���hWM8��8Z���8�R+7�6��zq�������8Z"Ul|"Y��.s����-�\��5?r�Luq�*�Z.ru�����a���x�����f�i���D�����.�w����{����l|�^�~��P�Na�x��P*�B�]�gsR���F6��I\b��i�8��|����!��7u�����"H�c����`�uh�;�����K7����E�����@���H����=��<����)��o����"��z�a�`��W�����d=��N\ =� ���c�%c��_�X���]�P ������e�x�OjB�d���>3+	6#�������5�'��{S)`Pf���i7.*G���MN���8�MMY3fS�n��(�V7�_}fa���_���'G�W�{?4LX��f���sk�R�c���)K	v�4��MS��l��Q&I_'����++�O�+���cUo�l��k1:j{Fm��5�H��k}�RDD��A}J$��c�,� K\�C����M���.f��^��w�5r�

��6����oK���e��un��fA�������������}s0�����p���_y^t���n����-���$�'���P)�
�|z"�"^�S	v��+]4�n^Q��S��^\� -ft)�qn�#��s+�;(����a�}��v=���.�r6�H�����b&N��(��UY�o �w�%'������J��0X��L+�0-���(��X�!%.�1�Oi���<A]f����v|�����J-vw��8��&KY]@5�wI�p��9%��K���(�.c�Ghf?v��<�WA2�8}��������Tr&/FG����g��X��F<���H�%��Q�6����XE�k��!.
��J]B{&�~w���$���D7�����[����>���N����C�'�ZPq��M����Zx�@Fd��y��d������ )s��&9E�?x�(C�����++gQ�w`*����.�Vl�Aq�����37[�t���3l)��8L_
��r���;���������zl�1�a������YJ_���<�2�Z�&(>��^��y��JU�����f�l�{�xC�1�9�P�D/f��2�L;��������,��tr�<�<��/I��J��k,�����~�����WV������������<]����'m%�J5D>�X�����f�)a�����Q��8���1�B)A��AY����	F��
sT�����x4l���������H��f����6O�^����Oj,������.p��}?�|Tx:��!mo�����NM��9��<�!�ZKYw�6��K�����h�����UX�Z�:T	-���/>���h\���������J�Qt����`Ew��tE�:��e����u���E��P%�����(
Cx�N"2����o�:I����-8��"����4p�������g���T�"���D�����(�wt=}eE\:�z���n�&w`��KS����2���pod'M��4������4r5,�KE���7�Lw�z<G����S�UQ��6����H�1����S�	q
����f�U�M�����e�3��FggCn����=���7��r�C�?wZbXPo�~|�k�x7�d�CU�������d5��Q�_T�M��F����v�;�G�'D���0�X���x8����������)+~�	$G�+�vGy�~|����C����I[��i6Rk���]��O��������Y=#���M���K�A���dN��F�#�lT5	9�Uj�K"�"�'\e���+
/�����{����=JxT��@L_z��t�����n��U����$S)!��{�����B?��}�����na.�D������B��B�+17�;� &F�!f���?PM�} �Q{�n�c�$|�2�?���
#`p-2�����sv����w|�?�
���kj>����l+�N�y^�;�eu�>]�6�0��,��=V���o��{[����C0���6�\5�R\��R?�����E�r��6�� Vq

RV��_��);�r�V���������/�sA.������g�@�U�1�f�;o��w������C����8�4�F�)���fp�H �d������J9c��hZM�ui�Mmk�3p���a FBL��w��l��+Lt��l��/m�fL�;1���:������9Q,��(OF��aF7(&�rocN�1�����90:�����o�D��pn�"]C�,F;�L�&s4������]M_���8���G]���=h���n�P��P�(���'�����#��8����I�5��zZ}�r,H�o�~7h^�	b5s���v�g�\;=c��b���c���q�[��-,���i[-�*��L��%b	�P��u�����%���i�jk�p����o�u)y!��3�&���MtGK������O[2=��R�gy���K���j�!��oJ+8/F~	��:�S#��{��I���6�
�[�jx�f!vk2_;<b.���PNL��N�J9��:[s�my
�����N���l��d�+�T��xeu�]./���Y���������w����g���[����G���q�������@��Z�1;��������!Kp�Lo)��������{��Hz�si����I7x����T��H���k���I����I��1LD\�}����I������lfad��c���s"����/�i����K��x����~�0%�����om�{�%���+����)��*�
I�$o���e��"*�#����	�Y�9\��'�I�yn=��^��(�~����q<������0���3��
T�(P>b(��0�"�������t���J�n�E��w���Z=Mm���^�������.��Jdy�������d�������tp��LU�k�^,,���!�
�7<Z4��D�QuT�<���L�	Gh)=���f�"w2@.t�������<>�D=U���m=W�zdB=9e��j���y��'�ix%��lF�����0r���p���hT	nG��e�v���(����v	���&��9�E+L���0����u�Z&���J�>�	[U����1h�C6������'
����&��;���2Kl����,�7����F�o���-l��+���<�B�
9K*�����c��aH�������
3*[v��
����
��S�n���o�X��d���cB_F��ly���6��(�����m��7��%�K�V�4�3���gR��)���PMD��<�u,�5�G/���������F�5�����z{�g�V�T"������-u�N��'{��{������m���E��a��\|���?Ng{����E�E�4��!��Q6&��kA;�D�s�`���t5k�=,�����hi�	?��20*m�7�N����}���'Rf��I)"=�VI�0�����i�^����d��%�Q%O���A�J$���j-<�F-���\���[v�,�LBdle�d0������iC���Y�x�/�����NV��r�I�,tme�y�2c-���f�O���;�\O~,�e�r�[���k��V:g�c����eN����(��������O�2���v������~-G0�ky_��]��L�����\5�������%d6s�Z[@a��g.qx�Y"�h�L�Q&1���sS�5������zr�*�$5��(�sx��#��k7a�5���pZ�4T����<�a�sq��"��`��z]h 
����ZPS��p�`p���'�|�o�kO�}g�5(v�E<P�v|�E}�r� F�������Z��~]�g�'x�J+����������`����f�
�}\n��Q�(�u�;a�c�Q�U(C�AbYo����r(l<n����`vC�L��if)�r���|��!%��ER��w
�Ct9$:���{����j�����y����-�����[~��-���
��m�����W�����E-����+-�=�n{+�P�q(��u	r`��U��W�:�S$���Z�/�Dg�������b���f1���4c�~�g�X�9��AW���V���p��jz�t���9j8m��~�gAF
��������4����n��<$R�T�E�\������������m���p�Ek�[n��"6�����cd$�[�Yn7/vsc�w�x�������h��D���8mg�_5��
Z��Q����J��C`�k{�CJ.��O�[v0��XSK�uZ��<���3�L��~|�����{v�������J�'��}��g���&UK��?�y_;XZ��L@.c��<rDM��$G�
?�G�,E?I��������cA�R9�����/K-���T���>T���o���La7�Pn��?��2pUX�C���
��(D������@�[��k!P��bD@���v@W���n���B`����~x�����: ��mH����i^��nR�?� ���:6��Cv_�[��:��V�$%�
y*��e�!���j���C���O����Kt�.�Q>�Y��W�/d*r�>�+�&����L��uQ�V����X�t�\�_h�M���A;�=7����'������;='l�z��A���<�+��}�9[,�t	Z�5]k�����������_�fW���7`��8@�_�~��������wB<�8$�F���������t�d2�F����"K.1i�������|F��p���vG[������3�K���mV�w���oL����E<�OT>�f����Yk�S}O�����/�{��&N�_��%����]KAn����'\�����^���yk4Y��9.%�>�b,�����W�!�������u�U�����CA�y��:�]qHBe��%�N�AWA�:N0s�I2�Z�����7_�[a2��nW�?n��?Fs����W4h��Z�m�>b�v{s�:�
6��&T�/4����~���"=����h^����A����������h�I�>��uy<�T�X<>-�S�����"3�V��T/�(�}��?I~�G*��1#|oO-�����w��q��^N4[F��1��)�(��f��_����6�A�� �Dk�Z*����"��Y���(3���+���.��'�3L���suzn{.�������P��������&�*����s���}�{��:a���s5�V",���|�o�b��(���^��������O9���������40	U%�t���{��������M�|y�NLa	�i2�}q�my�xt������K�`�N=���R}��!���4��}����Lo�<J��������,c�S�P�Y�.av���?>�������Su_?��A�%�`��Y���������{�����d�z��$�OfiN���f-5����7!�f���?��h�:�����V��*Q����2��j�;0h���1i~	
T�8��(x���k/
����3�u�g�������o�����������y�z���G>��\
��4��jXBnV��Y����F�{��EEi�&4Y�B?Q2�U�9�+�$zf�<!U+��ikvzM�0��*�SS
L��GIo
O��@�N�gS�L2��Gn*|��ht�J��_��2s�wA���g�oI��Csl
���o�����j�|���_���a����E�V!�2N�/f��nXU�������>�V�PS�������1��+$�+��.���TQ������A��r��%
b�������>X~�a�"R�y4���im���;��Mu9���%0"h��)�~/0t�������f�!F@I�(��g�������;�b<=#�8S�(�����1."��4�
L0�7��|+�a��2�#q���6�E�sGn'8��q|�S�/�a��S�����@X`k/�3�j����P�u��w���8���\o��1��0���Oao�lt��6��Np�����,9�����	���*�q��+,�7Qq����9��Q>��u�%��x����s���)�i��M���_TAn�"���c��E�n������![�o�C���E�h�Xe�}��~��5�����*=U�������gQ~�r:��RDJZ4 ����o=�Y-^:w�d���{�"��C�����+�U��������V
FUl�� 6s�CG�U���0�v�N�,�}n���x����K���Z�z����h�s�c.�
���w���w�A���o,�� �x���X`W�[H�E�8-K�Y�������|szsT�m'��N�������n����r�t�X3��w�}����pw��`���j���#�D���?��sJ� ����C�<d*���$���k����H�U��}1����(iLa	�
�j�6e��_�������,����lU�
Ya�^�[�gUj�~_c�����Q�)p0sp?e����0	#�A�����q4�r#2t��5�]$.p�0�QX���coZp�W��(.[��Ms�B����M2�1�BO�'�[�c�P_et������L6�j��r��0w�������,�'�Z�����:�V�hZv=�������d����,_�Q7��\v��OJW���
�h��w����D�l�#�s��s�����"���C�
���������x
>�����������V�����`+
�XU�&������|bF1�+���������U��S����/2�a��U�3^��@��Q	���k�����ie"�hR���{]���'����$@�O������R�|
��I�X����	C��x����������/�D��h���4�y8�"�F���2Jyt��XYD��A�����U<��e�*��^Hh��2�!�6��.@�4��9�bz��D�$:h�����3�L�2�
����eVY���?�~��[F�:t�?%wH������-���l�"�����R/��,�������S���Qx���u�r��tukq�B��Cb65�����4�g]��A����>��D����H�K<|t�_Y&��C�%����3{{ma��/�T��B=��y�v��9�G�P��4���,DYo�c0�2/��2;.q����h��z��'bl1"��������q�/��i
�UJ��c�5q���
�7��[n���PJuO�R�q�Jc
�����`]�����O������=�����x��u���S~w�����Ft�0-�|)U���L�vw\k:�|k�u+����.��Nt�K�s�{�d'L��ho:i	�������-(��WT��#�r����t�0����f�n�D��}[��Ne�����?��Yv����HL.t�4��ZzP+���x�:X
����\`��)����s�����)�����Zr1����>�$����Y�f�i�29��.�pvg �����
��r�#8@,Q�$zQXz��E�S��]k��d�(�14��A��\�hc�/c���o�%_NyOO�!��,��$�:���`�ALg.n
��^4"v�&K�^�
l2_��}�_MsS�m�g@��w�����[������1�
�Z��`J�JK�U�t���p�+�/'a�i���8�p�y������<��+�3&n����a����R�wV�CV����������7{��n?�xl���������F'�\F��,�Z�S���?�"��e2������I~!>���qK������V}C��8��c�LJO��E��B���]����l�l�)�|d��<�r��Q>5d������hN�c���k�@4���O�+�7���P��jTDd����"#����~���hMHg��=��>����(s�4��Z	�r'���]�D���tk�����������>��^����N`�b�+����1*�|L�g	$��T����|<>��E�r}��~q�]A]�N�d�������}�&�Fs?�Y�Ww�N���Y�wn��]D�0�Fh�J�B��Q�P�k{�������<�R���vC��#�cTY��|���RM�������u��VVRs�&��z{e��I�rO����t�1����
�����������)����_��/T�K�e�~���/��Mt�����o�A����|��mL���nRU���&���lr	f�~L?Si��3��m��gG���Kn�
dP�������<O.�����Q�89�t�U��,�)�����E.t�"��^8P�ogQl������m}�Ly��}���9Clh?z����~�c�)����7Op�zx�8x�,��~O!�bq�.]���(�Hc�)T��tz*����Q1�iWoJ�J�WJ��?W��g������O�_(C+L�nN���?%B��F����1�O"���F�NN��A�
���e�Ec���AU�Qh��q��j���(�~*
#56Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#55)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Thu, Nov 14, 2013 at 3:00 PM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Thu, Nov 14, 2013 at 2:17 PM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Tue, Nov 5, 2013 at 9:49 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 04.11.2013 23:44, Alexander Korotkov wrote:

On Mon, Oct 21, 2013 at 11:12 PM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

Attached version of patch is debugged. I would like to note that

number of
bugs was low and it wasn't very hard to debug. I've rerun tests on it.
You
can see that numbers are improved as the result of your refactoring.

event | period
-----------------------+-----------------
index_build | 00:01:45.416822
index_build_recovery | 00:00:06
index_update | 00:05:17.263606
index_update_recovery | 00:01:22
search_new | 00:24:07.706482
search_updated | 00:26:25.364494
(6 rows)

label | blocks_mark
----------------+-------------
search_new | 847587636
search_updated | 881210486
(2 rows)

label | size
---------------+-----------
new | 419299328
after_updates | 715915264
(2 rows)

Beside simple bugs, there was a subtle bug in incremental item indexes
update. I've added some more comments including ASCII picture about how
item indexes are shifted.

Now, I'm trying to implement support of old page format. Then we can
decide which approach to use.

Attached version of patch has support of old page format. Patch still
needs
more documentation and probably refactoring, but I believe idea is clear
and it can be reviewed. In the patch I have to revert change of null
category placement for compatibility with old posting list format.

Thanks, just glanced at this quickly.

If I'm reading the patch correctly, old-style non-compressed posting
tree leaf pages are not vacuumed at all; that's clearly not right.

Fixed. Now separate function handles uncompressed posting lists and
compress them if as least one TID is deleted.

I argued earlier that we don't need to handle the case that compressing
a page makes it larger, so that the existing items don't fit on the page
anymore. I'm having some second thoughts on that; I didn't take into
account the fact that the "mini-index" in the new page format takes up some
space. I think it's still highly unlikely that there isn't enough space on
a 8k page, but it's not totally crazy with a non-standard small page size.
So at least that situation needs to be checked for with an ereport(),
rather than Assert.

Now this situation is ereported before any change in page.

To handle splitting a non-compressed page, it seems that you're relying

on the fact that before splitting, we try to insert, which compresses the
page. The problem with that is that it's not correctly WAL-logged. The
split record that follows includes a full copy of both page halves, but if
the split fails for some reason, e.g you run out of disk space, there is no
WAL record at all of the the compression. I'd suggest doing the compression
in the insert phase on a temporary copy of the page, leaving the original
page untouched if there isn't enough space for the insertion to complete.
(You could argue that this case can't happen because the compression must
always create enough space to insert one more item. maybe so, but at least
there should be an explicit check for that.)

Good point. Yes, if we don't handle specially inserting item indexes, I
see no point to do special handling for single TID which is much smaller.
In the attached patch dataCompressLeafPage just reserves space for single
TID.

Also, many changes in comments and README.

Unfortunally, I didn't understand what is FIXME about in
ginVacuumEntryPage. So, it's not fixed :)

Sorry, I posted buggy version of patch. Attached version is correct.

Another bug fix by report from Rod Taylor.

------
With best regards,
Alexander Korotkov.

Show quoted text

Attachments:

gin-packed-postinglists-16.patch.gzapplication/x-gzip; name=gin-packed-postinglists-16.patch.gzDownload
#57Peter Eisentraut
peter_e@gmx.net
In reply to: Alexander Korotkov (#55)
Re: GIN improvements part 1: additional information

On 11/14/13, 6:00 AM, Alexander Korotkov wrote:

Sorry, I posted buggy version of patch. Attached version is correct.

This patch crashes the hstore the pg_trgm regression tests.

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

#58Alexander Korotkov
aekorotkov@gmail.com
In reply to: Peter Eisentraut (#57)
Re: GIN improvements part 1: additional information

On Fri, Nov 15, 2013 at 8:58 PM, Peter Eisentraut <peter_e@gmx.net> wrote:

On 11/14/13, 6:00 AM, Alexander Korotkov wrote:

Sorry, I posted buggy version of patch. Attached version is correct.

This patch crashes the hstore the pg_trgm regression tests.

What exact version did you try 14 or 16? If it was 16, could you please
post a stacktrace, because it doesn't crash for me.

------
With best regards,
Alexander Korotkov.

#59Peter Eisentraut
peter_e@gmx.net
In reply to: Alexander Korotkov (#58)
Re: GIN improvements part 1: additional information

On 11/15/13, 12:24 PM, Alexander Korotkov wrote:

On Fri, Nov 15, 2013 at 8:58 PM, Peter Eisentraut <peter_e@gmx.net
<mailto:peter_e@gmx.net>> wrote:

On 11/14/13, 6:00 AM, Alexander Korotkov wrote:

Sorry, I posted buggy version of patch. Attached version is correct.

This patch crashes the hstore the pg_trgm regression tests.

What exact version did you try 14 or 16? If it was 16, could you please
post a stacktrace, because it doesn't crash for me.

The one that's the latest in the commitfest: /messages/by-id/CAPpHfdvEQ-JhE_2z9pvw22Bp6h_o8XOaXCbjAGf87gs4p4Jmuw@mail.gmail.com

If you have a newer one, please add it there.

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

#60Alexander Korotkov
aekorotkov@gmail.com
In reply to: Peter Eisentraut (#59)
Re: GIN improvements part 1: additional information

On Fri, Nov 15, 2013 at 9:56 PM, Peter Eisentraut <peter_e@gmx.net> wrote:

On 11/15/13, 12:24 PM, Alexander Korotkov wrote:

On Fri, Nov 15, 2013 at 8:58 PM, Peter Eisentraut <peter_e@gmx.net
<mailto:peter_e@gmx.net>> wrote:

On 11/14/13, 6:00 AM, Alexander Korotkov wrote:

Sorry, I posted buggy version of patch. Attached version is

correct.

This patch crashes the hstore the pg_trgm regression tests.

What exact version did you try 14 or 16? If it was 16, could you please
post a stacktrace, because it doesn't crash for me.

The one that's the latest in the commitfest:
/messages/by-id/CAPpHfdvEQ-JhE_2z9pvw22Bp6h_o8XOaXCbjAGf87gs4p4Jmuw@mail.gmail.com

If you have a newer one, please add it there.

Ok, I actualized information in commitfest app.

------
With best regards,
Alexander Korotkov.

#61Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alvaro Herrera (#53)
Re: GIN improvements part 1: additional information

On 06.11.2013 17:36, Alvaro Herrera wrote:

Just for my own illumination, can someone explain this bit?

+ If a posting list is too large to store in-line in a key entry, a posting tree
+ is created. A posting tree is a B-tree structure, where the ItemPointer is
+ used as the key. At the leaf-level, item pointers are stored compressed, in
+ "varbyte encoding".

I think the first ItemPointer mentioned (the key) refers to a TID
pointing to the index, and "item pointers stored compressed" refers to
the TIDs pointing to the heap (the data). Is that correct?

No, they both refer to TIDs pointing to the heap.

I'm also interested in the "FIXME explain varbyte encoding" explanation
currently missing, if somebody can write it down ...

Alexander's latest version filled in that explanation (haven't read it
myself yet)

- Heikki

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

#62Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#61)
Re: GIN improvements part 1: additional information

Hi!

On Wed, Nov 20, 2013 at 9:02 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 06.11.2013 17:36, Alvaro Herrera wrote:

Just for my own illumination, can someone explain this bit?

+ If a posting list is too large to store in-line in a key entry, a
posting tree
+ is created. A posting tree is a B-tree structure, where the ItemPointer
is
+ used as the key. At the leaf-level, item pointers are stored
compressed, in
+ "varbyte encoding".

I think the first ItemPointer mentioned (the key) refers to a TID
pointing to the index, and "item pointers stored compressed" refers to
the TIDs pointing to the heap (the data). Is that correct?

No, they both refer to TIDs pointing to the heap.

I'm also interested in the "FIXME explain varbyte encoding" explanation

currently missing, if somebody can write it down ...

Alexander's latest version filled in that explanation (haven't read it
myself yet)

off-list

What's your plans about GIN now? I tried to rebase packed posting lists
with head. But I found that you've changed interface of placeToPage
function. That's conflicts with packed posting lists, because
dataPlaceToPageLeaf needs not only offset number to describe place to
insert item pointer. Do you like to commit rework of handling GIN
incomplete splits before?

------
With best regards,
Alexander Korotkov.

#63Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#62)
Re: GIN improvements part 1: additional information

On Tue, Nov 26, 2013 at 5:34 PM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Wed, Nov 20, 2013 at 9:02 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 06.11.2013 17:36, Alvaro Herrera wrote:

Just for my own illumination, can someone explain this bit?

+ If a posting list is too large to store in-line in a key entry, a
posting tree
+ is created. A posting tree is a B-tree structure, where the
ItemPointer is
+ used as the key. At the leaf-level, item pointers are stored
compressed, in
+ "varbyte encoding".

I think the first ItemPointer mentioned (the key) refers to a TID
pointing to the index, and "item pointers stored compressed" refers to
the TIDs pointing to the heap (the data). Is that correct?

No, they both refer to TIDs pointing to the heap.

I'm also interested in the "FIXME explain varbyte encoding" explanation

currently missing, if somebody can write it down ...

Alexander's latest version filled in that explanation (haven't read it
myself yet)

off-list

It appears to be not actually off-list, sorry :)

What's your plans about GIN now? I tried to rebase packed posting lists
with head. But I found that you've changed interface of placeToPage
function. That's conflicts with packed posting lists, because
dataPlaceToPageLeaf needs not only offset number to describe place to
insert item pointer. Do you like to commit rework of handling GIN
incomplete splits before?

------
With best regards,
Alexander Korotkov.

#64Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#62)
Re: GIN improvements part 1: additional information

On 11/26/13 15:34, Alexander Korotkov wrote:

What's your plans about GIN now? I tried to rebase packed posting lists
with head. But I found that you've changed interface of placeToPage
function. That's conflicts with packed posting lists, because
dataPlaceToPageLeaf needs not only offset number to describe place to
insert item pointer. Do you like to commit rework of handling GIN
incomplete splits before?

Yeah, I'm planning to get back to this patch after committing the
incomplete splits patch. I think the refactoring of the WAL-logging that
I did in that patch will simplify this patch, too. I'll take a look at
Michael's latest comments on the incomplete splits patch tomorrow, so I
should get back to this on Thursday or Friday.

- Heikki

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

#65Peter Eisentraut
peter_e@gmx.net
In reply to: Alexander Korotkov (#56)
Re: GIN improvements part 1: additional information

This patch needs to be rebased.

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

#66Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#64)
Re: GIN improvements part 1: additional information

On Wed, Nov 27, 2013 at 1:14 AM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 11/26/13 15:34, Alexander Korotkov wrote:

What's your plans about GIN now? I tried to rebase packed posting lists
with head. But I found that you've changed interface of placeToPage
function. That's conflicts with packed posting lists, because
dataPlaceToPageLeaf needs not only offset number to describe place to
insert item pointer. Do you like to commit rework of handling GIN
incomplete splits before?

Yeah, I'm planning to get back to this patch after committing the
incomplete splits patch. I think the refactoring of the WAL-logging that I
did in that patch will simplify this patch, too. I'll take a look at
Michael's latest comments on the incomplete splits patch tomorrow, so I
should get back to this on Thursday or Friday.

Should I try to rebase this patch now or you plan to do it yourself? Some
changes like "void *insertdata" argument make me think you have some
particular plan to rebase this patch, but I didn't get it exactly.

------
With best regards,
Alexander Korotkov.

#67Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#66)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 11/28/2013 09:19 AM, Alexander Korotkov wrote:

On Wed, Nov 27, 2013 at 1:14 AM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 11/26/13 15:34, Alexander Korotkov wrote:

What's your plans about GIN now? I tried to rebase packed posting lists
with head. But I found that you've changed interface of placeToPage
function. That's conflicts with packed posting lists, because
dataPlaceToPageLeaf needs not only offset number to describe place to
insert item pointer. Do you like to commit rework of handling GIN
incomplete splits before?

Yeah, I'm planning to get back to this patch after committing the
incomplete splits patch. I think the refactoring of the WAL-logging that I
did in that patch will simplify this patch, too. I'll take a look at
Michael's latest comments on the incomplete splits patch tomorrow, so I
should get back to this on Thursday or Friday.

Should I try to rebase this patch now or you plan to do it yourself? Some
changes like "void *insertdata" argument make me think you have some
particular plan to rebase this patch, but I didn't get it exactly.

Here's rebased version. I'll continue reviewing it now..

- Heikki

Attachments:

gin-packed-postglists-17.patch.gzapplication/x-gzip; name=gin-packed-postglists-17.patch.gzDownload
diff --git a/src/backend/access/gin/README b/src/backend/access/gin/README
index 1c1c7b6..72b0a69 100644
--- a/src/backend/access/gin/README
+++ b/src/backend/access/gin/README
@@ -137,14 +137,21 @@ with ordinary key entries.
 * In a key entry at the btree leaf level, at the next SHORTALIGN boundary,
 there is an array of zero or more ItemPointers, which store the heap tuple
 TIDs for which the indexable items contain this key.  This is called the
-"posting list".  The TIDs in a posting list must appear in sorted order.
-If the list would be too big for the index tuple to fit on an index page,
-the ItemPointers are pushed out to a separate posting page or pages, and
-none appear in the key entry itself.  The separate pages are called a
-"posting tree"; they are organized as a btree of ItemPointer values.
-Note that in either case, the ItemPointers associated with a key can
-easily be read out in sorted order; this is relied on by the scan
-algorithms.
+"posting list".
+
+* The TIDs in a posting list must appear in sorted order.
+Since TIDs are ascending sorted, block numbers are also ascending. At second
+and further ItemPointers increment to block number is stored instead of
+block number itself. Block and offset numbers are varbyte encoded. Since
+block number increment an offset numbers are typically low numbers, significant
+compression is achieved.
+
+If the list would be too big for the index tuple to fit on an index page, the
+ItemPointers are pushed out to a separate posting page or pages, and none
+appear in the key entry itself.  The separate pages are called a "posting
+tree" (see below); Note that in either case, the ItemPointers associated with
+a key can easily be read out in sorted order; this is relied on by the scan
+algorithms. 
 
 * The index tuple header fields of a leaf key entry are abused as follows:
 
@@ -210,6 +217,41 @@ fit on one pending-list page must have those pages to itself, even if this
 results in wasting much of the space on the preceding page and the last
 page for the tuple.)
 
+Varbyte encoding
+----------------
+
+Varbyte encoding is a method to encode integers allowing lower numbers to
+take less space. Each integer is represented by variable number of bytes.
+High bit of each byte in varbyte encoding determines whether next byte is
+used to encode this number. Therefore, to read single varbyte encoded
+number we have to read bytes while their high bit is set.
+
+There are some examples of how varbyte encoded numbers could be decoded into
+32-bits little-endian integers:
+0XXXXXXX                   -> 0XXXXXXX 00000000 00000000 00000000
+1XXXXXXX 0YYYYYYY          -> YXXXXXXX 00YYYYYY 00000000 00000000
+1XXXXXXX 1YYYYYYY 0ZZZZZZZ -> YXXXXXXX ZZYYYYYY 000ZZZZZ 00000000
+
+In worst case varbyte encoded 32-bits integer takes 5 bytes in varbyte
+encoding. However, these will pretty rare happens to BlockNumber increments.
+
+Posting tree
+------------
+
+If a posting list is too large to store in-line in a key entry, a posting tree
+is created. A posting tree is a B-tree structure, where the ItemPointer is
+used as the key. At the leaf-level, item pointers are stored compressed, in
+"varbyte encoding".
+
+they are organized as a btree of ItemPointer values. ItemPointers in leaf
+page of posting tree are compressed in the same way as it is in posting list.
+However, for insertions into pages finding position for ItemPointer is
+frequently required. It would be slow to rescan full page for each insertion.
+That's why at the end of page GinDataLeafIndexCount of "item indexes" are
+stored. Item index is a triple of ItemPointer, offset number of ItemPointer
+and offset in page. Therefore, when inserting we can quickly find relevant
+item index and then scan only small fraction of page.
+
 Concurrency
 -----------
 
@@ -260,6 +302,38 @@ page-deletions safe; it stamps the deleted pages with an XID and keeps the
 deleted pages around with the right-link intact until all concurrent scans
 have finished.)
 
+Compatibility
+-------------
+
+Compression of TIDs was introduced in 9.4. Some GIN indexes could be remain in
+uncompressed format because of pg_upgrade from 9.3 or earlier versions.
+For compatibility, old uncompressed format is also supported. Following
+rules is used to handle it:
+
+* GIN_ITUP_COMPRESSED flag is introduces for index tuples with posting lists.
+It determines whether index tuple contains compressed posting list. This
+flag is stored in high bit of ItemPointerGetBlockNumber(&itup->t_tid). Macro
+GinItupIsCompressed(itup) is used to check if index tuple contains compressed
+posting list.
+
+* GIN_COMPRESSED flag is introduced for leaf posting tree pages. It determines
+whether page is in new compressed format. Macros GinPageIsCompressed(page) and
+GinPageIsCompressed(page) are used to check and set this flag.
+
+* All scan operations check format of posting list add use corresponding code
+to read its content.
+
+* When updating index tuple containing uncompressed posting list it will be
+replaced with new index tuple containing compressed posting list.
+
+* When updating uncompressed posting tree leaf page, it's previously compressed.
+To success we need that compressed page can additionally hold item indexes and
+at least one newly inserted TID. Theoretically in some rare cases it could be
+not so. In this case error is triggered.
+
+* If vacuum finds some dead TIDs in uncompressed posting lists, they are
+converted into compressed posting lists.
+
 Limitations
 -----------
 
diff --git a/src/backend/access/gin/ginbtree.c b/src/backend/access/gin/ginbtree.c
index 7b9b85d..1bb5f82 100644
--- a/src/backend/access/gin/ginbtree.c
+++ b/src/backend/access/gin/ginbtree.c
@@ -350,7 +350,7 @@ ginPlaceToPage(GinBtree btree, GinBtreeStack *stack,
 	 * we'll have to split the page.
 	 */
 	START_CRIT_SECTION();
-	fit = btree->placeToPage(btree, stack->buffer, stack->off,
+	fit = btree->placeToPage(btree, stack->buffer, stack,
 							 insertdata, updateblkno,
 							 &payloadrdata);
 	if (fit)
@@ -373,7 +373,6 @@ ginPlaceToPage(GinBtree btree, GinBtreeStack *stack,
 
 			xlrec.node = btree->index->rd_node;
 			xlrec.blkno = BufferGetBlockNumber(stack->buffer);
-			xlrec.offset = stack->off;
 			xlrec.flags = xlflags;
 
 			rdata[0].buffer = InvalidBuffer;
@@ -446,7 +445,7 @@ ginPlaceToPage(GinBtree btree, GinBtreeStack *stack,
 		 * newlpage is a pointer to memory page, it is not associated with a
 		 * buffer. stack->buffer is not touched yet.
 		 */
-		newlpage = btree->splitPage(btree, stack->buffer, rbuffer, stack->off,
+		newlpage = btree->splitPage(btree, stack->buffer, rbuffer, stack,
 									insertdata, updateblkno,
 									&payloadrdata);
 
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c
index 5221f5e..8b4aa76 100644
--- a/src/backend/access/gin/gindatapage.c
+++ b/src/backend/access/gin/gindatapage.c
@@ -19,6 +19,17 @@
 #include "utils/rel.h"
 
 /*
+ * Initialize leaf page of posting tree. Reserves space for item indexes at
+ * the end of page.
+ */
+static void
+GinInitDataLeafPage(Page page)
+{
+	GinInitPage(page, GIN_DATA | GIN_LEAF | GIN_COMPRESSED, BLCKSZ);
+	((PageHeader) page)->pd_upper -= sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount;
+}
+
+/*
  * Checks, should we move to right link...
  * Compares inserting itemp pointer with right bound of current page
  */
@@ -102,14 +113,91 @@ dataLocateItem(GinBtree btree, GinBtreeStack *stack)
 }
 
 /*
- * Searches correct position for value on leaf page.
- * Page should be correctly chosen.
- * Returns true if value found on page.
+ * Find item pointer in leaf data page. Returns true if given item pointer is
+ * found and false if it's not. Sets offset and iptrOut to last item pointer
+ * which is less than given one. Sets ptrOut ahead that item pointer.
  */
 static bool
-dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
+findInLeafPageCompressed(GinBtree btree, Page page,
+			   ItemPointerData *iptrOut, Pointer *ptrOut)
+{
+	int			i;
+	ItemPointerData iptr = {{0,0},0};
+	int			cmp;
+	Pointer		ptr;
+	Pointer		endPtr;
+	bool		result = false;
+	GinDataLeafItemIndex *indexes = GinPageGetIndexes(page);
+
+	ptr = GinDataLeafPageGetPostingList(page);
+	endPtr = GinDataLeafPageGetPostingListEnd(page);
+
+	/*
+	 * First, search the leaf-item index at the end of page. That narrows the
+	 * range we need to linearly scan.
+	 */
+	for (i = 0; i < GinDataLeafIndexCount; i++)
+	{
+		GinDataLeafItemIndex *index = &indexes[i];
+		if (index->pageOffset == 0)
+			break;
+
+		Assert(index->pageOffset < GinDataLeafPageGetPostingListSize(page));
+
+		cmp = ginCompareItemPointers(&index->iptr, &btree->itemptr);
+		if (cmp < 0)
+		{
+			ptr = GinDataLeafPageGetPostingList(page) + index->pageOffset;
+			iptr = index->iptr;
+		}
+		else
+		{
+			endPtr = GinDataLeafPageGetPostingList(page) + index->pageOffset;
+			break;
+		}
+	}
+
+	/* Search page in [first, maxoff] range found by page index */
+	while (ptr < endPtr)
+	{
+		Pointer prev_ptr = ptr;
+		ItemPointerData prev_iptr = iptr;
+
+		Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+
+		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+
+		Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+
+		cmp = ginCompareItemPointers(&btree->itemptr, &iptr);
+		if (cmp == 0)
+		{
+			result = true;
+			break;
+		}
+		if (cmp < 0)
+		{
+			iptr = prev_iptr;
+			ptr = prev_ptr;
+			result = false;
+			break;
+		}
+	}
+
+	Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+
+	*ptrOut = ptr;
+	*iptrOut = iptr;
+	return result;
+}
+
+/*
+ * Find correct PostingItem in non-leaf page. It supposed that page
+ * correctly chosen and searching value SHOULD be on page
+ */
+static OffsetNumber
+findInLeafPageUncompressed(GinBtree btree, Page page, OffsetNumber *off)
 {
-	Page		page = BufferGetPage(stack->buffer);
 	OffsetNumber low,
 				high;
 	int			result;
@@ -117,18 +205,12 @@ dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
 	Assert(GinPageIsLeaf(page));
 	Assert(GinPageIsData(page));
 
-	if (btree->fullScan)
-	{
-		stack->off = FirstOffsetNumber;
-		return TRUE;
-	}
-
 	low = FirstOffsetNumber;
 	high = GinPageGetOpaque(page)->maxoff;
 
 	if (high < low)
 	{
-		stack->off = FirstOffsetNumber;
+		*off = FirstOffsetNumber;
 		return false;
 	}
 
@@ -143,7 +225,7 @@ dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
 
 		if (result == 0)
 		{
-			stack->off = mid;
+			*off = mid;
 			return true;
 		}
 		else if (result > 0)
@@ -152,13 +234,47 @@ dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
 			high = mid;
 	}
 
-	stack->off = high;
+	*off = high;
 	return false;
 }
 
 /*
- * Finds links to blkno on non-leaf page, returns
- * offset of PostingItem
+ * Searches correct position for value within leaf page.
+ * Page should already be correctly chosen.
+ * Returns true if value found on page.
+ */
+static bool
+dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
+{
+	Page			page = BufferGetPage(stack->buffer);
+	bool			result;
+	Pointer			ptr;
+
+	Assert(GinPageIsData(page) && GinPageIsLeaf(page));
+
+	if (btree->fullScan)
+	{
+		stack->off = InvalidOffsetNumber;
+		stack->pageOffset = GinDataLeafPageGetPostingList(page) - page;
+		return TRUE;
+	}
+
+	if (GinPageIsCompressed(page))
+	{
+		result = findInLeafPageCompressed(btree, page, &stack->iptr, &ptr);
+		stack->off = InvalidOffsetNumber;
+		stack->pageOffset = ptr - page;
+	}
+	else
+	{
+		result = findInLeafPageUncompressed(btree, page, &stack->off);
+		stack->pageOffset = InvalidOffsetNumber;
+	}
+	return result;
+}
+
+/*
+ * Finds links to blkno on non-leaf page, returns offset of PostingItem
  */
 static OffsetNumber
 dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber storedOff)
@@ -219,35 +335,6 @@ dataGetLeftMostPage(GinBtree btree, Page page)
 }
 
 /*
- * add ItemPointer to a leaf page.
- */
-void
-GinDataPageAddItemPointer(Page page, ItemPointer data, OffsetNumber offset)
-{
-	OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
-	char	   *ptr;
-
-	Assert(ItemPointerIsValid(data));
-	Assert(GinPageIsLeaf(page));
-
-	if (offset == InvalidOffsetNumber)
-	{
-		ptr = (char *) GinDataPageGetItemPointer(page, maxoff + 1);
-	}
-	else
-	{
-		ptr = (char *) GinDataPageGetItemPointer(page, offset);
-		if (maxoff + 1 - offset != 0)
-			memmove(ptr + sizeof(ItemPointerData),
-					ptr,
-					(maxoff - offset + 1) * sizeof(ItemPointerData));
-	}
-	memcpy(ptr, data, sizeof(ItemPointerData));
-
-	GinPageGetOpaque(page)->maxoff++;
-}
-
-/*
  * add PostingItem to a non-leaf page.
  */
 void
@@ -266,7 +353,7 @@ GinDataPageAddPostingItem(Page page, PostingItem *data, OffsetNumber offset)
 	else
 	{
 		ptr = (char *) GinDataPageGetPostingItem(page, offset);
-		if (maxoff + 1 - offset != 0)
+		if (offset != maxoff + 1)
 			memmove(ptr + sizeof(PostingItem),
 					ptr,
 					(maxoff - offset + 1) * sizeof(PostingItem));
@@ -295,33 +382,400 @@ GinPageDeletePostingItem(Page page, OffsetNumber offset)
 	GinPageGetOpaque(page)->maxoff--;
 }
 
+
+/*
+ * Threshold to split bin between page item indexes into two. It's twice large
+ * as average bin size, so after split bin will have size about average.
+ */
+#define SPLIT_THRESHOLD (2 * GinDataLeafMaxPostingListSize / (GinDataLeafIndexCount + 1))
+/*
+ * Threshold to append new page item indexes is average bin size.
+ */
+#define APPEND_THRESHOLD (GinDataLeafMaxPostingListSize / (GinDataLeafIndexCount + 1))
+
+
 /*
- * checks space to install new value,
- * item pointer never deletes!
+ * Incremental update of page item indexes. Item indexes starting at offset
+ * 'off' to be shift by 'len' bytes.
+ */
+void
+incrUpdateItemIndexes(Page page, int off, int len)
+{
+	GinDataLeafItemIndex *indexes = GinPageGetIndexes(page);
+	int			i;
+	int			targetbin;
+
+	Assert(GinPageIsData(page) && GinPageIsLeaf(page));
+
+	/*
+	 * First, adjust the offsets in any existing bins. This is required
+	 * for correctness.
+	 */
+	for (i = GinDataLeafIndexCount - 1; i >= 0; i--)
+	{
+		if (indexes[i].pageOffset == 0)
+			continue;
+
+		if (indexes[i].pageOffset < off)
+			break;
+
+		indexes[i].pageOffset += len;
+		Assert(indexes[i].pageOffset < GinDataLeafPageGetPostingListSize(page));
+	}
+	targetbin = i + 1;
+
+	/*
+	 * The leaf item index is now consistent. Check if the bin the new tuples
+	 * fell into became so large that it should be split to make it balanced.
+	 */
+	for (;;)
+	{
+		int			nextoff;
+		int			prevoff;
+		Pointer		beginptr;
+		Pointer		ptr;
+		ItemPointerData iptr;
+
+		if (indexes[GinDataLeafIndexCount - 1].pageOffset != 0)
+			break; /* all slots are in use, can't insert a new one */
+
+		if (indexes[targetbin].pageOffset == 0)
+			nextoff = GinDataLeafPageGetPostingListSize(page);
+		else
+			nextoff = indexes[targetbin].pageOffset;
+		if (targetbin == 0)
+		{
+			prevoff = 0;
+			MemSet(&iptr, 0, sizeof(ItemPointerData));
+		}
+		else
+		{
+			prevoff = indexes[targetbin - 1].pageOffset;
+			iptr = indexes[targetbin - 1].iptr;
+		}
+
+		/*
+		 * Is this bin large enough to split?
+		 */
+		if (nextoff - prevoff < SPLIT_THRESHOLD)
+			break;
+
+		/* Shift page item indexes to create a hole for a new one */
+		memmove(&indexes[targetbin + 1], &indexes[targetbin],
+				sizeof(GinDataLeafItemIndex) *
+				(GinDataLeafIndexCount - targetbin - 1));
+
+		/*
+		 * Scan through the bin to find the split point. The bin is not
+		 * split in the middle, but at the first APPEND_THRESHOLD limit.
+		 * That might leave the right bin still larger than SPLIT_THRESHOLD.
+		 * In that case we will loop back to split it further.
+		 */
+		beginptr = GinDataLeafPageGetPostingList(page) + prevoff;
+		ptr = beginptr;
+		while (ptr - beginptr < APPEND_THRESHOLD)
+			ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+
+		/* Add new bin */
+		indexes[targetbin].iptr = iptr;
+		indexes[targetbin].pageOffset = ptr - GinDataLeafPageGetPostingList(page);
+		Assert(indexes[targetbin].pageOffset < GinDataLeafPageGetPostingListSize(page));
+
+		/* Loop to possibly further split the next bin. */
+		targetbin++;
+	}
+}
+
+/*
+ * Convert uncompressed leaf posting tree page into compressed format. In some
+ * rare cases compress could fail because varbyte encoded of large 32-bit
+ * integer could be 5 bytes and we additionally reserve space for item indexes.
+ * If conversion succeed function returns true. If conversion failed function
+ * returns false and leave page untouched.
+ */
+bool
+dataCompressLeafPage(Page page)
+{
+	char		pageCopy[BLCKSZ];
+	OffsetNumber	i, maxoff;
+	ItemPointerData prev_iptr;
+	ItemPointer iptr;
+	Pointer		ptr, cur;
+	Size		size = 0;
+
+	/* Check if we've enough of space to store compressed representation */
+	maxoff = GinPageGetOpaque(page)->maxoff;
+	MemSet(&prev_iptr, 0, sizeof(ItemPointerData));
+	for (i = FirstOffsetNumber; i <= maxoff; i++)
+	{
+		iptr = GinDataPageGetItemPointer(page, i);
+		size += ginDataPageLeafGetItemPointerSize(iptr, &prev_iptr);
+		prev_iptr = *iptr;
+	}
+
+	/*
+	 * We should be able to hold at least one more TID for page compression be
+	 * properly xlogged.
+	 */
+	if (size > GinDataLeafMaxPostingListSize - MAX_COMPRESSED_ITEM_POINTER_SIZE)
+		return false;
+
+	/* Make copy of page */
+	memcpy(pageCopy, page, BLCKSZ);
+
+	/* Reinitialize page as compressed */
+	GinInitDataLeafPage(page);
+	GinPageGetOpaque(page)->rightlink = GinPageGetOpaque(pageCopy)->rightlink;
+	*GinDataPageGetRightBound(page) = *GinDataPageGetRightBound(pageCopy);
+	PageSetLSN(page, PageGetLSN(pageCopy));
+
+	/* Compress TIDs of pageCopy into page */
+	ptr = GinDataLeafPageGetPostingList(page);
+	cur = ptr;
+	MemSet(&prev_iptr, 0, sizeof(ItemPointerData));
+	for (i = FirstOffsetNumber; i <= maxoff; i++)
+	{
+		iptr = GinDataPageGetItemPointer(pageCopy, i);
+		cur = ginDataPageLeafWriteItemPointer(cur, iptr, &prev_iptr);
+		prev_iptr = *iptr;
+	}
+	GinDataLeafPageSetPostingListSize(page, cur - ptr);
+	Assert(GinDataPageFreeSpacePre(page, cur) >= 0);
+	updateItemIndexes(page);
+
+	return true;
+}
+
+/*
+ * Places keys to leaf data page and fills WAL record.
  */
 static bool
-dataIsEnoughSpace(GinBtree btree, Buffer buf, OffsetNumber off, void *insertdata)
+dataPlaceToPageLeaf(GinBtree btree, Buffer buf, GinBtreeStack *stack,
+					void *insertdata, BlockNumber updateblkno,
+					XLogRecData **prdata)
 {
+	GinBtreeDataLeafInsertData *items = insertdata;
+	ItemPointer newItems = &items->items[items->curitem];
+	int			maxitems = items->nitem - items->curitem;
 	Page		page = BufferGetPage(buf);
+	char	   *endPtr;
+	Pointer 	ptr, insertBegin, insertEnd;
+	ItemPointerData iptr = {{0, 0}, 0}, nextIptr;
+	Pointer		restPtr;
+	int			newlen;
+	int			nextlen;
+	int			restlen;
+	int			freespace;
+	int			i;
+	ItemPointerData	rbound;
+	int			oldsize;
+	int			newsize;
+	bool		compress = false;
+
+	/* these must be static so they can be returned to caller */
+	static XLogRecData rdata[2];
+	static ginxlogInsertDataLeaf data;
 
 	Assert(GinPageIsData(page));
 
-	if (GinPageIsLeaf(page))
+	/* Try to compress page if it's uncompressed */
+	if (!GinPageIsCompressed(page))
+	{
+		if (!dataCompressLeafPage(page))
+		{
+			ereport(ERROR,
+					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+			errmsg("can't compress block %u of gin index \"%s\", consider REINDEX",
+					BufferGetBlockNumber(buf),
+				   RelationGetRelationName(btree->ginstate->index))));
+		}
+		findInLeafPageCompressed(btree, page, &stack->iptr, &ptr);
+		stack->off = InvalidOffsetNumber;
+		stack->pageOffset = ptr - page;
+		compress = true;
+	}
+
+	endPtr = GinDataLeafPageGetPostingListEnd(page);
+
+	/*
+	 * stack->pageOffset points to the location where we're going to insert
+	 * the new item(s), and stack->iptr is the corresponding item pointer
+	 * at that location.
+	 */
+	oldsize = GinDataLeafPageGetPostingListSize(page);
+	insertBegin = page + stack->pageOffset;
+
+	/*
+	 * Read the next item pointer. This will become the first item pointer
+	 * after the ones we insert.
+	 */
+	restPtr = insertBegin;
+	if (insertBegin < endPtr)
+	{
+		nextIptr = stack->iptr;
+		restPtr = ginDataPageLeafReadItemPointer(insertBegin, &nextIptr);
+		restlen = GinDataLeafPageGetPostingListEnd(page) - restPtr;
+		Assert(restlen >= 0);
+		nextlen = restPtr - insertBegin;
+		rbound = nextIptr;
+	}
+	else if (GinPageRightMost(page))
+	{
+		ItemPointerSetMax(&rbound);
+		restlen = 0;
+		nextlen = 0;
+	}
+	else
+	{
+		rbound = *GinDataPageGetRightBound(page);
+		/*
+		 * The right bound stored on page is inclusive, but for the comparison
+		 * below, we want an exclusive value
+		 */
+		rbound.ip_posid++;
+		restlen = 0;
+		nextlen = 0;
+	}
+
+	/*
+	 * Calculate how many of the new items we insert on this location, and how
+	 * much space they take.
+	 *
+	 * Note: The size of the first item after the inserted one might change
+	 * when it's re-encoded. But it can never become larger, because the
+	 * distance from the previous item gets smaller, not larger. We ignore
+	 * that effect, and possibly waste a few bytes.
+	 */
+	iptr = stack->iptr;
+	newlen = 0;
+	freespace = GinDataLeafPageGetFreeSpace(page);
+	for (i = 0; i < maxitems; i++)
 	{
-		GinBtreeDataLeafInsertData *items = insertdata;
+		int		l;
 
-		if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
+		if (ginCompareItemPointers(&newItems[i], &rbound) >= 0)
 		{
-			if ((items->nitem - items->curitem) * sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
-				return true;
+			/*
+			 * This needs to go to some other location in the tree. (The
+			 * caller should've chosen the insert location so that at least
+			 * the first item goes here.)
+			 */
+			Assert(i > 0);
+			break;
 		}
-		else if (sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
-			return true;
+
+		l = ginDataPageLeafGetItemPointerSize(&newItems[i], &iptr);
+		if (l + newlen + nextlen > freespace)
+		{
+			/* this doesn't fit anymore */
+			break;
+		}
+
+		newlen += l;
+		iptr = newItems[i];
 	}
-	else if (sizeof(PostingItem) <= GinDataPageGetFreeSpace(page))
-		return true;
+	maxitems = i;
+	if (maxitems == 0)
+	{
+		/*
+		 * Page compression reserves space for at least one more TID. So it
+		 * must be inserted.
+		 */
+		Assert(!compress);
 
-	return false;
+		return false; /* no entries fit on this page */
+	}
+
+	/*
+	 * We have to re-encode the first old item pointer after the ones we're
+	 * inserting. Calculate how much space it will take re-encoded.
+	 */
+	if (insertBegin < endPtr)
+	{
+		ItemPointerData lastnew = newItems[maxitems - 1];
+
+		nextlen = ginDataPageLeafGetItemPointerSize(&nextIptr, &lastnew);
+	}
+
+	/*
+	 * Ok, we have collected all the information we need. Shift any entries
+	 * after the insertion point that we are not going to otherwise modify.
+	 */
+	Assert(GinDataPageFreeSpacePre(page, restPtr + newlen + nextlen + restlen) >= 0);
+	insertEnd = insertBegin + newlen + nextlen;
+	if (restlen > 0)
+		memmove(insertEnd, restPtr, restlen);
+
+	/* Write the new items */
+	ptr = insertBegin;
+	iptr = stack->iptr;
+	for (i = 0; i < maxitems; i++)
+	{
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &newItems[i], &iptr);
+		Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+		iptr = newItems[i];
+	}
+
+	/* Write the re-encoded old item */
+	if (nextlen > 0)
+	{
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &nextIptr, &iptr);
+		Assert(GinDataPageFreeSpacePre(page,ptr) >= 0);
+	}
+	Assert(ptr == insertEnd);
+
+	newsize = insertEnd + restlen - GinDataLeafPageGetPostingList(page);
+	GinDataLeafPageSetPostingListSize(page, newsize);
+
+	/*---
+	 * Update indexes in the end of page. How do we update item indexes is
+	 * illustrated in following picture. Let item indexes 1 and 2 are item
+	 * pointers just before and after next TID after place we inserting new
+	 * TIDs.
+	 *
+	 *                  1          2
+	 * +----------------+----------+-----------+
+	 * | untouched TIDs | next TID | rest TIDs |
+	 * +----------------+----------+-----------+
+	 *                  ^
+	 *                  |
+	 *                  Place where we insert new TIDs
+	 *
+	 *                  1                     2
+	 * +----------------+----------+----------+-----------+
+	 * | untouched TIDs | new TIDs | next TID | rest TIDs |
+	 * +----------------+----------+----------+-----------+
+	 *
+	 * Item index 1 wasn't updated because previous TID remaining the same for
+	 * this offset. Item index 2 was shifted because of both inserting new TIDs
+	 * and possible change of next TID size. Same shift apply to the all
+	 * subsequent item indexes.
+	 */
+	incrUpdateItemIndexes(page, restPtr - GinDataLeafPageGetPostingList(page), newsize - oldsize);
+
+	/* Put WAL data */
+	*prdata = rdata;
+
+	data.beginOffset = insertBegin - GinDataLeafPageGetPostingList(page);
+	data.newlen = insertEnd - insertBegin;
+	data.restOffset = restPtr - GinDataLeafPageGetPostingList(page);
+
+	rdata[0].buffer = InvalidBuffer;
+	rdata[0].data = (char *) &data;
+	rdata[0].len = offsetof(ginxlogInsertDataLeaf, newdata);
+	rdata[0].next = &rdata[1];
+
+	rdata[1].buffer = buf;
+	rdata[1].buffer_std = TRUE;
+	rdata[1].data = insertBegin;
+	rdata[1].len = insertEnd - insertBegin;
+	rdata[1].next = NULL;
+
+	items->curitem += maxitems;
+
+	Assert(GinDataLeafPageGetFreeSpace(page) <= freespace);
+
+	return true;
 }
 
 /*
@@ -335,230 +789,340 @@ dataIsEnoughSpace(GinBtree btree, Buffer buf, OffsetNumber off, void *insertdata
  * 'updateblkno'.
  */
 static bool
-dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off,
-				void *insertdata, BlockNumber updateblkno,
-				XLogRecData **prdata)
+dataPlaceToPageInternal(GinBtree btree, Buffer buf, GinBtreeStack *stack,
+						void *insertdata, BlockNumber updateblkno,
+						XLogRecData **prdata)
 {
 	Page		page = BufferGetPage(buf);
+	OffsetNumber off = stack->off;
+	PostingItem *pitem;
 	/* these must be static so they can be returned to caller */
 	static XLogRecData rdata[2];
 
 	/* quick exit if it doesn't fit */
-	if (!dataIsEnoughSpace(btree, buf, off, insertdata))
+	if (GinNonLeafDataPageGetFreeSpace(page) < sizeof(PostingItem))
 		return false;
 
 	*prdata = rdata;
 	Assert(GinPageIsData(page));
 
 	/* Update existing downlink to point to next page (on internal page) */
-	if (!GinPageIsLeaf(page))
-	{
-		PostingItem *pitem = GinDataPageGetPostingItem(page, off);
+	pitem = GinDataPageGetPostingItem(page, off);
+	PostingItemSetBlockNumber(pitem, updateblkno);
 
-		PostingItemSetBlockNumber(pitem, updateblkno);
-	}
+	/* Add new item */
+	pitem = insertdata;
+	GinDataPageAddPostingItem(page, pitem, off);
 
-	if (GinPageIsLeaf(page))
-	{
-		GinBtreeDataLeafInsertData *items = insertdata;
-		static ginxlogInsertDataLeaf data;
-		uint32		savedPos = items->curitem;
+	rdata[0].buffer = InvalidBuffer;
+	rdata[0].data = (char *) pitem;
+	rdata[0].len = sizeof(PostingItem);
+	rdata[0].next = NULL;
 
-		if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
-		{
-			/* usually, create index... */
-			while (items->curitem < items->nitem)
-			{
-				GinDataPageAddItemPointer(page, items->items + items->curitem, off);
-				off++;
-				items->curitem++;
-			}
-			data.nitem = items->curitem - savedPos;
-		}
-		else
-		{
-			GinDataPageAddItemPointer(page, items->items + items->curitem, off);
-			items->curitem++;
-			data.nitem = 1;
-		}
+	return true;
+}
 
-		rdata[0].buffer = InvalidBuffer;
-		rdata[0].data = (char *) &data;
-		rdata[0].len = offsetof(ginxlogInsertDataLeaf, items);
-		rdata[0].next = &rdata[1];
+/*
+ * Places an item (or items) to a posting tree. Calls relevant function of
+ * internal of leaf page because they are handled very differently.
+ */
+static bool
+dataPlaceToPage(GinBtree btree, Buffer buf, GinBtreeStack *stack,
+				void *insertdata, BlockNumber updateblkno,
+				XLogRecData **prdata)
+{
+	Assert(GinPageIsData(BufferGetPage(buf)));
 
-		rdata[1].buffer = InvalidBuffer;
-		rdata[1].data = (char *) &items->items[savedPos];
-		rdata[1].len = sizeof(ItemPointerData) * data.nitem;
-		rdata[1].next = NULL;
-	}
+	if (GinPageIsLeaf(BufferGetPage(buf)))
+		return dataPlaceToPageLeaf(btree, buf, stack,
+								   insertdata, updateblkno,
+								   prdata);
 	else
-	{
-		PostingItem *pitem = insertdata;
-
-		GinDataPageAddPostingItem(page, pitem, off);
-
-		rdata[0].buffer = InvalidBuffer;
-		rdata[0].data = (char *) pitem;
-		rdata[0].len = sizeof(PostingItem);
-		rdata[0].next = NULL;
-	}
-
-	return true;
+		return dataPlaceToPageInternal(btree, buf, stack,
+									   insertdata, updateblkno,
+									   prdata);
 }
 
 /*
- * split page and fills WAL record. original buffer(lbuf) leaves untouched,
- * returns shadow page of lbuf filled new data. In leaf page and build mode puts all
- * ItemPointers to pages. Also, in build mode splits data by way to full fulled
- * left page
+ * Place tuple and split page, original buffer(lbuf) leaves untouched,
+ * returns shadow page of lbuf filled new data.
  */
 static Page
-dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
-			  void *insertdata, BlockNumber updateblkno, XLogRecData **prdata)
+dataSplitPageLeaf(GinBtree btree, Buffer lbuf, Buffer rbuf,
+				  GinBtreeStack *stack,
+				  void *insertdata, BlockNumber updateblkno,
+				  XLogRecData **prdata)
 {
-	char	   *ptr;
-	OffsetNumber separator;
-	ItemPointer bound;
-	Page		lpage = PageGetTempPageCopy(BufferGetPage(lbuf));
-	bool		isleaf = GinPageIsLeaf(lpage);
-	ItemPointerData oldbound = *GinDataPageGetRightBound(lpage);
-	int			sizeofitem = GinSizeOfDataPageItem(lpage);
-	OffsetNumber maxoff = GinPageGetOpaque(lpage)->maxoff;
+	GinBtreeDataLeafInsertData *items = insertdata;
+	OffsetNumber off = stack->off;
+	Size		totalsize;
+	Pointer		ptr;
+	Pointer		oldPtr, oldEndPtr;
+	Page		oldPage = BufferGetPage(lbuf);
+	Page		page;
+	Page		lpage = PageGetTempPage(oldPage);
 	Page		rpage = BufferGetPage(rbuf);
-	Size		pageSize = PageGetPageSize(lpage);
-	Size		freeSpace;
+	ItemPointerData iptr, prevIptr, maxLeftIptr;
+	ItemPointerData nextold, nextnew;
+	int			maxItemIndex = items->curitem;
 
 	/* these must be static so they can be returned to caller */
-	static ginxlogSplitData data;
-	static XLogRecData rdata[2];
-	static char vector[2 * BLCKSZ];
-
-	GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
-	freeSpace = GinDataPageGetFreeSpace(rpage);
+	static ginxlogSplitDataLeaf data;
+	static XLogRecData rdata[3];
 
 	*prdata = rdata;
 
-	/* Update existing downlink to point to next page (on internal page) */
-	if (!isleaf)
-	{
-		PostingItem *pitem = GinDataPageGetPostingItem(lpage, off);
-
-		PostingItemSetBlockNumber(pitem, updateblkno);
-	}
-
-	if (isleaf)
+	/*
+	 * Estimate the total size of the posting lists we're going to store on
+	 * the two halves.
+	 *
+	 * Try to place as many items as we can if we're placing them to the end
+	 * of rightmost page. Otherwise place one item. We'll reserve two
+	 * MAX_COMPRESSED_ITEM_POINTER_SIZE. One because possible unevenness of
+	 * split and another because of re-encoding first item pointer of right
+	 * page from zero.
+	 */
+	MemSet(&iptr, 0, sizeof(ItemPointerData));
+	totalsize = GinDataLeafPageGetPostingListSize(oldPage);
+	if (off == InvalidOffsetNumber && GinPageRightMost(oldPage))
 	{
-		memcpy(vector,
-			   GinDataPageGetItemPointer(lpage, FirstOffsetNumber),
-			   maxoff * sizeof(ItemPointerData));
+		while (maxItemIndex < items->nitem && totalsize +
+			ginDataPageLeafGetItemPointerSize(&items->items[maxItemIndex], &iptr)
+			< 2 * GinDataLeafMaxPostingListSize - 2 * MAX_COMPRESSED_ITEM_POINTER_SIZE)
+		{
+			totalsize += ginDataPageLeafGetItemPointerSize(
+											&items->items[maxItemIndex], &iptr);
+			iptr = items->items[maxItemIndex];
+			maxItemIndex++;
+		}
+		Assert(maxItemIndex > items->curitem);
 	}
 	else
 	{
-		memcpy(vector,
-			   GinDataPageGetPostingItem(lpage, FirstOffsetNumber),
-			   maxoff * sizeof(PostingItem));
+		totalsize += ginDataPageLeafGetItemPointerSize(
+											&items->items[maxItemIndex], &iptr);
+		Assert(totalsize <
+					2 * GinDataLeafMaxPostingListSize - 2 * MAX_COMPRESSED_ITEM_POINTER_SIZE);
 	}
 
-	if (isleaf && GinPageRightMost(lpage) && off > GinPageGetOpaque(lpage)->maxoff)
-	{
-		/* append new items to the end */
-		GinBtreeDataLeafInsertData *items = insertdata;
+	/* Reinitialize pages */
+	GinInitDataLeafPage(lpage);
+	GinInitDataLeafPage(rpage);
+	GinDataLeafPageSetPostingListSize(lpage, 0);
+	GinDataLeafPageSetPostingListSize(rpage, 0);
 
-		while (items->curitem < items->nitem &&
-			   maxoff * sizeof(ItemPointerData) < 2 * (freeSpace - sizeof(ItemPointerData)))
-		{
-			memcpy(vector + maxoff * sizeof(ItemPointerData),
-				   items->items + items->curitem,
-				   sizeof(ItemPointerData));
-			maxoff++;
-			items->curitem++;
-		}
-	}
+	/*
+	 * Copy the old and new items to the new pages.
+	 */
+	MemSet(&nextold, 0, sizeof(ItemPointerData));
+	oldPtr = GinDataLeafPageGetPostingList(oldPage);
+	oldEndPtr = GinDataLeafPageGetPostingListEnd(oldPage);
+	if (oldPtr < oldEndPtr)
+		oldPtr = ginDataPageLeafReadItemPointer(oldPtr, &nextold);
 	else
+		ItemPointerSetInvalid(&nextold);
+
+	nextnew = items->items[items->curitem];
+
+	MemSet(&prevIptr, 0, sizeof(ItemPointerData));
+	ptr = GinDataLeafPageGetPostingList(lpage);
+	page = lpage;
+	while (ItemPointerIsValid(&nextnew) || ItemPointerIsValid(&nextold))
 	{
-		ptr = vector + (off - 1) * sizeofitem;
-		if (maxoff + 1 - off != 0)
-			memmove(ptr + sizeofitem, ptr, (maxoff - off + 1) * sizeofitem);
-		if (isleaf)
-		{
-			GinBtreeDataLeafInsertData *items = insertdata;
+		ItemPointerData item;
+		int			cmp;
 
-			memcpy(ptr, items->items + items->curitem, sizeofitem);
-			items->curitem++;
+		/*
+		 * Pull the next tuple from the old page, or from the array of new
+		 * items to place.
+		 */
+		if (!ItemPointerIsValid(&nextnew))
+			cmp = -1;
+		else if (!ItemPointerIsValid(&nextold))
+			cmp = 1;
+		else
+			cmp = ginCompareItemPointers(&nextold, &nextnew);
+
+		Assert(cmp != 0); /* duplicates are not expected */
+		if (cmp < 0)
+		{
+			item = nextold;
+			if (oldPtr < oldEndPtr)
+				oldPtr = ginDataPageLeafReadItemPointer(oldPtr, &nextold);
+			else
+				ItemPointerSetInvalid(&nextold);
 		}
 		else
 		{
-			PostingItem *pitem = insertdata;
-
-			memcpy(ptr, pitem, sizeofitem);
+			item = nextnew;
+			items->curitem++;
+			if (items->curitem < maxItemIndex)
+				nextnew = items->items[items->curitem];
+			else
+				ItemPointerSetInvalid(&nextnew);
 		}
 
-		maxoff++;
+		/* Write the tuple to the current half. */
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &item, &prevIptr);
+		Assert(GinDataPageFreeSpacePre(page, ptr) >= 0);
+		prevIptr = item;
+
+		/* Check if it's time to switch to the right page */
+		if (ptr - GinDataLeafPageGetPostingList(page) > totalsize / 2 &&
+			page == lpage)
+		{
+			maxLeftIptr = item;
+			GinDataLeafPageSetPostingListSize(lpage, ptr - GinDataLeafPageGetPostingList(lpage));
+			MemSet(&prevIptr, 0, sizeof(ItemPointerData));
+			page = rpage;
+			ptr = GinDataLeafPageGetPostingList(rpage);
+		}
 	}
 
+	Assert(page == rpage);
+	GinDataLeafPageSetPostingListSize(rpage, ptr - GinDataLeafPageGetPostingList(rpage));
+
+	*GinDataPageGetRightBound(rpage) = *GinDataPageGetRightBound(oldPage);
+	*GinDataPageGetRightBound(lpage) = maxLeftIptr;
+
+	Assert(GinPageRightMost(oldPage) ||
+			ginCompareItemPointers(GinDataPageGetRightBound(lpage),
+			GinDataPageGetRightBound(rpage)) < 0);
+
+	/* Fill indexes at the end of pages */
+	updateItemIndexes(lpage);
+	updateItemIndexes(rpage);
+
+	data.separator = GinDataLeafPageGetPostingListSize(lpage);
+	data.nbytes = GinDataLeafPageGetPostingListSize(lpage) + GinDataLeafPageGetPostingListSize(rpage);
+	data.rightbound = *GinDataPageGetRightBound(rpage);
+
+	rdata[0].buffer = InvalidBuffer;
+	rdata[0].data = (char *) &data;
+	rdata[0].len = sizeof(ginxlogSplit);
+	rdata[0].next = &rdata[1];
+
+	rdata[1].buffer = InvalidBuffer;
+	rdata[1].data = GinDataLeafPageGetPostingList(lpage);
+	rdata[1].len = GinDataLeafPageGetPostingListSize(lpage);
+	rdata[1].next = &rdata[2];
+
+	rdata[2].buffer = InvalidBuffer;
+	rdata[2].data = GinDataLeafPageGetPostingList(rpage);
+	rdata[2].len = GinDataLeafPageGetPostingListSize(rpage);
+	rdata[2].next = NULL;
+
+	return lpage;
+}
+
+/*
+ * Split page and fill WAL record. Returns a new temp buffer filled with data
+ * that should go to the left page. The original buffer (lbuf) is left
+ * untouched.
+ */
+static Page
+dataSplitPageInternal(GinBtree btree, Buffer lbuf, Buffer rbuf,
+					  GinBtreeStack *stack,
+					  void *insertdata, BlockNumber updateblkno,
+					  XLogRecData **prdata)
+{
+	Page		oldpage = BufferGetPage(lbuf);
+	OffsetNumber off = stack->off;
+	int			nitems = GinPageGetOpaque(oldpage)->maxoff;
+	Size		pageSize = PageGetPageSize(oldpage);
+	ItemPointerData oldbound = *GinDataPageGetRightBound(oldpage);
+	ItemPointer	bound;
+	Page		lpage;
+	Page		rpage;
+	OffsetNumber separator;
+
+	/* these must be static so they can be returned to caller */
+	static ginxlogSplitDataInternal data;
+	static XLogRecData rdata[4];
+	static PostingItem allitems[(BLCKSZ / sizeof(PostingItem)) + 1];
+
+	lpage = PageGetTempPage(oldpage);
+	rpage = BufferGetPage(rbuf);
+	GinInitPage(rpage, GinPageGetOpaque(rpage)->flags, pageSize);
+
+	*prdata = rdata;
+
+
 	/*
-	 * we assume that during index creation the table scanned from beginning
-	 * to end, so ItemPointers are in monotonically increasing order.
+	 * First construct a new list of PostingItems, which includes all the
+	 * old items, and the new item.
 	 */
-	if (btree->isBuild && GinPageRightMost(lpage))
-		separator = freeSpace / sizeofitem;
-	else
-		separator = maxoff / 2;
+	memcpy(allitems, GinDataPageGetPostingItem(oldpage, FirstOffsetNumber),
+		   (off - 1) * sizeof(PostingItem));
 
-	GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
-	GinInitPage(lpage, GinPageGetOpaque(rpage)->flags, pageSize);
+	allitems[off - 1] = *((PostingItem *) insertdata);
+	memcpy(&allitems[off], GinDataPageGetPostingItem(oldpage, off),
+		   (nitems - (off - 1)) * sizeof(PostingItem));
+	nitems++;
 
-	if (isleaf)
-		memcpy(GinDataPageGetItemPointer(lpage, FirstOffsetNumber),
-			   vector, separator * sizeof(ItemPointerData));
-	else
-		memcpy(GinDataPageGetPostingItem(lpage, FirstOffsetNumber),
-			   vector, separator * sizeof(PostingItem));
+	/* Update existing downlink to point to next page */
+	PostingItemSetBlockNumber(&allitems[off], updateblkno);
 
-	GinPageGetOpaque(lpage)->maxoff = separator;
-	if (isleaf)
-		memcpy(GinDataPageGetItemPointer(rpage, FirstOffsetNumber),
-			   vector + separator * sizeof(ItemPointerData),
-			   (maxoff - separator) * sizeof(ItemPointerData));
+	/*
+	 * When creating a new index, fit as many tuples as possible on the left
+	 * page, on the assumption that the table is scanned from beginning to
+	 * end. This packs the index as tight as possible.
+	 */
+	if (btree->isBuild && GinPageRightMost(oldpage))
+		separator = GinNonLeafDataPageGetFreeSpace(rpage) / sizeof(PostingItem);
 	else
-		memcpy(GinDataPageGetPostingItem(rpage, FirstOffsetNumber),
-			   vector + separator * sizeof(PostingItem),
-			   (maxoff - separator) * sizeof(PostingItem));
+		separator = nitems / 2;
 
-	GinPageGetOpaque(rpage)->maxoff = maxoff - separator;
+	memcpy(GinDataPageGetPostingItem(lpage, FirstOffsetNumber), allitems, separator * sizeof(PostingItem));
+	GinPageGetOpaque(lpage)->maxoff = separator;
+	memcpy(GinDataPageGetPostingItem(rpage, FirstOffsetNumber),
+		 &allitems[separator], (nitems - separator) * sizeof(PostingItem));
+	GinPageGetOpaque(rpage)->maxoff = nitems - separator;
 
 	/* set up right bound for left page */
 	bound = GinDataPageGetRightBound(lpage);
-	if (GinPageIsLeaf(lpage))
-		*bound = *GinDataPageGetItemPointer(lpage,
-											GinPageGetOpaque(lpage)->maxoff);
-	else
-		*bound = GinDataPageGetPostingItem(lpage,
-									   GinPageGetOpaque(lpage)->maxoff)->key;
+	*bound = GinDataPageGetPostingItem(lpage,
+								  GinPageGetOpaque(lpage)->maxoff)->key;
 
 	/* set up right bound for right page */
-	bound = GinDataPageGetRightBound(rpage);
-	*bound = oldbound;
+	*GinDataPageGetRightBound(rpage) = oldbound;
 
 	data.separator = separator;
-	data.nitem = maxoff;
-	data.rightbound = oldbound;
+	data.nitem = nitems;
 
 	rdata[0].buffer = InvalidBuffer;
 	rdata[0].data = (char *) &data;
-	rdata[0].len = sizeof(ginxlogSplitData);
+	rdata[0].len = sizeof(ginxlogSplitDataInternal);
 	rdata[0].next = &rdata[1];
 
 	rdata[1].buffer = InvalidBuffer;
-	rdata[1].data = vector;
-	rdata[1].len = maxoff * sizeofitem;
+	rdata[1].data = (char *) allitems;
+	rdata[1].len = nitems * sizeof(PostingItem);
 	rdata[1].next = NULL;
 
 	return lpage;
 }
 
 /*
+ * Split page of posting tree. Calls relevant function of internal of leaf page
+ * because they are handled very differently.
+ */
+static Page
+dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf,
+			  GinBtreeStack *stack,
+			  void *insertdata, BlockNumber updateblkno, 
+			  XLogRecData **prdata)
+{
+	if (GinPageIsLeaf(BufferGetPage(lbuf)))
+		return dataSplitPageLeaf(btree, lbuf, rbuf, stack,
+								 insertdata, updateblkno, prdata);
+	else
+		return dataSplitPageInternal(btree, lbuf, rbuf, stack,
+									 insertdata, updateblkno, prdata);
+}
+
+
+/*
  * Construct insertion payload for inserting the downlink for given buffer.
  */
 static void *
@@ -574,6 +1138,57 @@ dataPrepareDownlink(GinBtree btree, Buffer lbuf)
 }
 
 /*
+ * Updates indexes in the end of leaf page which are used for faster search.
+ * Also updates freespace opaque field of page. Returns last item pointer of
+ * page.
+ */
+ItemPointerData
+updateItemIndexes(Page page)
+{
+	GinDataLeafItemIndex *indexes = GinPageGetIndexes(page);
+	Pointer		beginptr;
+	Pointer		ptr;
+	Pointer		endptr;
+	Pointer		nextptr;
+	ItemPointerData iptr;
+	int			i, j;
+
+	Assert(GinPageIsLeaf(page));
+
+	/* Iterate over page */
+
+	ptr = beginptr = GinDataLeafPageGetPostingList(page);
+	endptr = GinDataLeafPageGetPostingListEnd(page);
+	MemSet(&iptr, 0, sizeof(ItemPointerData));
+
+	nextptr = beginptr + (int) ((double) GinDataLeafMaxPostingListSize / (double) (GinDataLeafIndexCount + 1));
+	j = 0;
+	i = FirstOffsetNumber;
+	while (ptr < endptr && j < GinDataLeafIndexCount)
+	{
+		/* Place next page index entry if it's time to */
+		if (ptr >= nextptr)
+		{
+			indexes[j].iptr = iptr;
+			indexes[j].pageOffset = ptr - GinDataLeafPageGetPostingList(page);
+			j++;
+			nextptr = beginptr + (int) ((double) (j + 1) * (double) GinDataLeafMaxPostingListSize / (double) (GinDataLeafIndexCount + 1));
+		}
+		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+		i++;
+	}
+
+	/* Fill rest of page indexes with InvalidOffsetNumber */
+	for (; j < GinDataLeafIndexCount; j++)
+	{
+		MemSet(&indexes[j].iptr, 0, sizeof(ItemPointerData));
+		indexes[j].pageOffset = 0;
+	}
+
+	return iptr;
+}
+
+/*
  * Fills new root by right bound values from child.
  * Also called from ginxlog, should not use btree
  */
@@ -605,10 +1220,27 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
 	BlockNumber blkno;
 	Buffer		buffer;
 	Page		page;
+	int			i;
+	CompressedPostingList ptr,
+				cur;
+	ItemPointerData prev_iptr = {{0,0},0};
+	Size		size;
 	int			nrootitems;
 
-	/* Calculate how many TIDs will fit on first page. */
-	nrootitems = Min(nitems, GinMaxLeafDataItems);
+	/*
+	 * Calculate how many TIDs will fit on the first page
+	 */
+	MemSet(&prev_iptr, 0, sizeof(ItemPointerData));
+	size = 0;
+	nrootitems = 0;
+	while (nrootitems < nitems)
+	{
+		size += ginDataPageLeafGetItemPointerSize(&items[nrootitems], &prev_iptr);
+		if (size > GinDataLeafMaxPostingListSize)
+			break;
+		prev_iptr = items[nrootitems];
+		nrootitems++;
+	}
 
 	/*
 	 * Create the root page.
@@ -619,9 +1251,19 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
 
 	START_CRIT_SECTION();
 
-	GinInitBuffer(buffer, GIN_DATA | GIN_LEAF);
-	memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * nrootitems);
-	GinPageGetOpaque(page)->maxoff = nrootitems;
+	GinInitDataLeafPage(page);
+
+	ptr = GinDataLeafPageGetPostingList(page);
+	cur = ptr;
+	MemSet(&prev_iptr, 0, sizeof(ItemPointerData));
+	for (i = 0; i < nrootitems; i++)
+	{
+		cur = ginDataPageLeafWriteItemPointer(cur, &items[i], &prev_iptr);
+		prev_iptr = items[i];
+	}
+	GinDataLeafPageSetPostingListSize(page, cur - ptr);
+	Assert(GinDataPageFreeSpacePre(page, cur) >= 0);
+	updateItemIndexes(page);
 
 	MarkBufferDirty(buffer);
 
@@ -630,19 +1272,22 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
 		XLogRecPtr	recptr;
 		XLogRecData rdata[2];
 		ginxlogCreatePostingTree data;
+		static char		buf[BLCKSZ];
 
 		data.node = index->rd_node;
 		data.blkno = blkno;
-		data.nitem = nrootitems;
+		data.size = cur - ptr;
 
 		rdata[0].buffer = InvalidBuffer;
 		rdata[0].data = (char *) &data;
 		rdata[0].len = sizeof(ginxlogCreatePostingTree);
 		rdata[0].next = &rdata[1];
 
+		memcpy(buf, GinDataLeafPageGetPostingList(page), GinDataLeafPageGetPostingListSize(page));
+
 		rdata[1].buffer = InvalidBuffer;
-		rdata[1].data = (char *) items;
-		rdata[1].len = sizeof(ItemPointerData) * nrootitems;
+		rdata[1].data = buf;
+		rdata[1].len = GinDataLeafPageGetPostingListSize(page);
 		rdata[1].next = NULL;
 
 		recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_PTREE, rdata);
diff --git a/src/backend/access/gin/ginentrypage.c b/src/backend/access/gin/ginentrypage.c
index 89cde4a..46e8b8e 100644
--- a/src/backend/access/gin/ginentrypage.c
+++ b/src/backend/access/gin/ginentrypage.c
@@ -18,152 +18,31 @@
 #include "utils/rel.h"
 
 /*
- * Form a tuple for entry tree.
- *
- * If the tuple would be too big to be stored, function throws a suitable
- * error if errorTooBig is TRUE, or returns NULL if errorTooBig is FALSE.
- *
- * See src/backend/access/gin/README for a description of the index tuple
- * format that is being built here.  We build on the assumption that we
- * are making a leaf-level key entry containing a posting list of nipd items.
- * If the caller is actually trying to make a posting-tree entry, non-leaf
- * entry, or pending-list entry, it should pass nipd = 0 and then overwrite
- * the t_tid fields as necessary.  In any case, ipd can be NULL to skip
- * copying any itempointers into the posting list; the caller is responsible
- * for filling the posting list afterwards, if ipd = NULL and nipd > 0.
+ * Read item pointers from leaf data page. Information is stored in the same
+ * manner as in leaf data pages.
  */
-IndexTuple
-GinFormTuple(GinState *ginstate,
-			 OffsetNumber attnum, Datum key, GinNullCategory category,
-			 ItemPointerData *ipd, uint32 nipd,
-			 bool errorTooBig)
+void
+ginReadTuple(GinState *ginstate, OffsetNumber attnum,
+			 IndexTuple itup, ItemPointerData *ipd)
 {
-	Datum		datums[2];
-	bool		isnull[2];
-	IndexTuple	itup;
-	uint32		newsize;
-
-	/* Build the basic tuple: optional column number, plus key datum */
-	if (ginstate->oneCol)
-	{
-		datums[0] = key;
-		isnull[0] = (category != GIN_CAT_NORM_KEY);
-	}
-	else
-	{
-		datums[0] = UInt16GetDatum(attnum);
-		isnull[0] = false;
-		datums[1] = key;
-		isnull[1] = (category != GIN_CAT_NORM_KEY);
-	}
-
-	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
-
-	/*
-	 * Determine and store offset to the posting list, making sure there is
-	 * room for the category byte if needed.
-	 *
-	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
-	 * be some wasted pad space.  Is it worth recomputing the data length to
-	 * prevent that?  That would also allow us to Assert that the real data
-	 * doesn't overlap the GinNullCategory byte, which this code currently
-	 * takes on faith.
-	 */
-	newsize = IndexTupleSize(itup);
-
-	if (IndexTupleHasNulls(itup))
-	{
-		uint32		minsize;
-
-		Assert(category != GIN_CAT_NORM_KEY);
-		minsize = GinCategoryOffset(itup, ginstate) + sizeof(GinNullCategory);
-		newsize = Max(newsize, minsize);
-	}
-
-	newsize = SHORTALIGN(newsize);
-
-	GinSetPostingOffset(itup, newsize);
+	Pointer		ptr;
+	int			nipd = GinGetNPosting(itup), i;
+	ItemPointerData ip = {{0,0},0};
 
-	GinSetNPosting(itup, nipd);
+	ptr = GinGetPosting(itup);
 
-	/*
-	 * Add space needed for posting list, if any.  Then check that the tuple
-	 * won't be too big to store.
-	 */
-	newsize += sizeof(ItemPointerData) * nipd;
-	newsize = MAXALIGN(newsize);
-	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
-	{
-		if (errorTooBig)
-			ereport(ERROR,
-					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
-			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
-				   (unsigned long) newsize,
-				   (unsigned long) Min(INDEX_SIZE_MASK,
-									   GinMaxItemSize),
-				   RelationGetRelationName(ginstate->index))));
-		pfree(itup);
-		return NULL;
-	}
-
-	/*
-	 * Resize tuple if needed
-	 */
-	if (newsize != IndexTupleSize(itup))
+	if (GinItupIsCompressed(itup))
 	{
-		itup = repalloc(itup, newsize);
-
-		/*
-		 * PostgreSQL 9.3 and earlier did not clear this new space, so we
-		 * might find uninitialized padding when reading tuples from disk.
-		 */
-		memset((char *) itup + IndexTupleSize(itup),
-			   0, newsize - IndexTupleSize(itup));
-
-		/* set new size in tuple header */
-		itup->t_info &= ~INDEX_SIZE_MASK;
-		itup->t_info |= newsize;
+		for (i = 0; i < nipd; i++)
+		{
+			ptr = ginDataPageLeafReadItemPointer(ptr, &ip);
+			ipd[i] = ip;
+		}
 	}
-
-	/*
-	 * Insert category byte, if needed
-	 */
-	if (category != GIN_CAT_NORM_KEY)
+	else
 	{
-		Assert(IndexTupleHasNulls(itup));
-		GinSetNullCategory(itup, ginstate, category);
+		memcpy(ipd, ptr, sizeof(ItemPointerData) * nipd);
 	}
-
-	/*
-	 * Copy in the posting list, if provided
-	 */
-	if (ipd)
-		memcpy(GinGetPosting(itup), ipd, sizeof(ItemPointerData) * nipd);
-
-	return itup;
-}
-
-/*
- * Sometimes we reduce the number of posting list items in a tuple after
- * having built it with GinFormTuple.  This function adjusts the size
- * fields to match.
- */
-void
-GinShortenTuple(IndexTuple itup, uint32 nipd)
-{
-	uint32		newsize;
-
-	Assert(nipd <= GinGetNPosting(itup));
-
-	newsize = GinGetPostingOffset(itup) + sizeof(ItemPointerData) * nipd;
-	newsize = MAXALIGN(newsize);
-
-	Assert(newsize <= (itup->t_info & INDEX_SIZE_MASK));
-
-	itup->t_info &= ~INDEX_SIZE_MASK;
-	itup->t_info |= newsize;
-
-	GinSetNPosting(itup, nipd);
 }
 
 /*
@@ -493,13 +372,13 @@ entryPreparePage(GinBtree btree, Page page, OffsetNumber off,
  * 'updateblkno'.
  */
 static bool
-entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off,
+entryPlaceToPage(GinBtree btree, Buffer buf, GinBtreeStack *stack,
 				 void *insertPayload, BlockNumber updateblkno,
 				 XLogRecData **prdata)
 {
 	GinBtreeEntryInsertData *insertData = insertPayload;
 	Page		page = BufferGetPage(buf);
-	OffsetNumber placed;
+	OffsetNumber placed, off = stack->off;
 	int			cnt = 0;
 
 	/* these must be static so they can be returned to caller */
@@ -522,6 +401,7 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off,
 			 RelationGetRelationName(btree->index));
 
 	data.isDelete = insertData->isDelete;
+	data.offset = off;
 
 	rdata[cnt].buffer = InvalidBuffer;
 	rdata[cnt].data = (char *) &data;
@@ -544,11 +424,13 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off,
  * an equal number!
  */
 static Page
-entrySplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
+entrySplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf,
+			   GinBtreeStack *stack,
 			   void *insertPayload,
 			   BlockNumber updateblkno, XLogRecData **prdata)
 {
 	GinBtreeEntryInsertData *insertData = insertPayload;
+	OffsetNumber off = stack->off;
 	OffsetNumber i,
 				maxoff,
 				separator = InvalidOffsetNumber;
diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c
index 4f2c118..6694991 100644
--- a/src/backend/access/gin/ginfast.c
+++ b/src/backend/access/gin/ginfast.c
@@ -23,6 +23,7 @@
 #include "miscadmin.h"
 #include "utils/memutils.h"
 #include "utils/rel.h"
+#include "access/htup_details.h"
 
 
 #define GIN_PAGE_FREESIZE \
@@ -437,6 +438,89 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
 		ginInsertCleanup(ginstate, false, NULL);
 }
 
+static IndexTuple
+GinFastFormTuple(GinState *ginstate,
+				 OffsetNumber attnum, Datum key, GinNullCategory category)
+{
+	Datum		datums[2];
+	bool		isnull[2];
+	IndexTuple	itup;
+	uint32		newsize;
+
+	/* Build the basic tuple: optional column number, plus key datum */
+
+	if (ginstate->oneCol)
+	{
+		datums[0] = key;
+		isnull[0] = (category != GIN_CAT_NORM_KEY);
+	}
+	else
+	{
+		datums[0] = UInt16GetDatum(attnum);
+		isnull[0] = false;
+		datums[1] = key;
+		isnull[1] = (category != GIN_CAT_NORM_KEY);
+	}
+
+	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+
+	/*
+	 * Place category to the last byte of index tuple extending it's size if
+	 * needed
+	 */
+	newsize = IndexTupleSize(itup);
+
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		uint32		minsize;
+
+		Assert(IndexTupleHasNulls(itup));
+		minsize = IndexInfoFindDataOffset(itup->t_info) +
+			heap_compute_data_size(ginstate->tupdesc[attnum - 1], datums, isnull) +
+			sizeof(GinNullCategory);
+		newsize = Max(newsize, minsize);
+	}
+
+	newsize = MAXALIGN(newsize);
+
+	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+	{
+		ereport(ERROR,
+				(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+		errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+			   (unsigned long) newsize,
+			   (unsigned long) Min(INDEX_SIZE_MASK,
+								   GinMaxItemSize),
+			   RelationGetRelationName(ginstate->index))));
+		pfree(itup);
+		return NULL;
+	}
+
+	/*
+	 * Resize tuple if needed
+	 */
+	if (newsize != IndexTupleSize(itup))
+	{
+		itup = repalloc(itup, newsize);
+
+		/* set new size in tuple header */
+		itup->t_info &= ~INDEX_SIZE_MASK;
+		itup->t_info |= newsize;
+	}
+
+	/*
+	 * Insert category byte, if needed
+	 */
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		GinSetNullCategory(itup, ginstate, category);
+	}
+
+	return itup;
+}
+
+
 /*
  * Create temporary index tuples for a single indexable item (one index column
  * for the heap tuple specified by ht_ctid), and append them to the array
@@ -486,8 +570,7 @@ ginHeapTupleFastCollect(GinState *ginstate,
 	{
 		IndexTuple	itup;
 
-		itup = GinFormTuple(ginstate, attnum, entries[i], categories[i],
-							NULL, 0, true);
+		itup = GinFastFormTuple(ginstate, attnum, entries[i], categories[i]);
 		itup->t_tid = *ht_ctid;
 		collector->tuples[collector->ntuples++] = itup;
 		collector->sumsize += IndexTupleSize(itup);
diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c
index f2ee2fb..02c561a 100644
--- a/src/backend/access/gin/ginget.c
+++ b/src/backend/access/gin/ginget.c
@@ -71,22 +71,51 @@ callConsistentFn(GinState *ginstate, GinScanKey key)
 static bool
 findItemInPostingPage(Page page, ItemPointer item, OffsetNumber *off)
 {
-	OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
 	int			res;
+	OffsetNumber	i;
 
 	if (GinPageGetOpaque(page)->flags & GIN_DELETED)
 		/* page was deleted by concurrent vacuum */
 		return false;
 
-	/*
-	 * scan page to find equal or first greater value
-	 */
-	for (*off = FirstOffsetNumber; *off <= maxoff; (*off)++)
+	if (GinPageIsCompressed(page))
 	{
-		res = ginCompareItemPointers(item, GinDataPageGetItemPointer(page, *off));
+		Pointer		ptr;
+		Pointer		endPtr;
+		ItemPointerData iptr = {{0, 0}, 0};
 
-		if (res <= 0)
-			return true;
+		i = FirstOffsetNumber;
+		ptr = GinDataLeafPageGetPostingList(page);
+		endPtr = GinDataLeafPageGetPostingListEnd(page);
+		/*
+		 * scan page to find equal or first greater value
+		 */
+		while (ptr < endPtr)
+		{
+			ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+
+			res = ginCompareItemPointers(item, &iptr);
+			if (res <= 0)
+			{
+				*off = i;
+				return true;
+			}
+			i++;
+		}
+	}
+	else
+	{
+		OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
+		/*
+		 * scan page to find equal or first greater value
+		 */
+		for (*off = FirstOffsetNumber; *off <= maxoff; (*off)++)
+		{
+			res = ginCompareItemPointers(item, GinDataPageGetItemPointer(page, *off));
+
+			if (res <= 0)
+				return true;
+		}
 	}
 
 	return false;
@@ -140,15 +169,37 @@ scanPostingTree(Relation index, GinScanEntry scanEntry,
 	 */
 	for (;;)
 	{
-		page = BufferGetPage(buffer);
+		Pointer ptr;
+		Pointer endPtr;
 
+		page = BufferGetPage(buffer);
+		ptr = GinDataLeafPageGetPostingList(page);
+		endPtr = GinDataLeafPageGetPostingListEnd(page);
 		if ((GinPageGetOpaque(page)->flags & GIN_DELETED) == 0 &&
-			GinPageGetOpaque(page)->maxoff >= FirstOffsetNumber)
+			ptr < endPtr)
 		{
-			tbm_add_tuples(scanEntry->matchBitmap,
-						   GinDataPageGetItemPointer(page, FirstOffsetNumber),
-						   GinPageGetOpaque(page)->maxoff, false);
-			scanEntry->predictNumberResult += GinPageGetOpaque(page)->maxoff;
+			if (GinPageIsCompressed(page))
+			{
+				ItemPointerData iptr = {{0, 0}, 0};
+				int i;
+
+				i = 0;
+				while (ptr < endPtr)
+				{
+					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+					tbm_add_tuples(scanEntry->matchBitmap, &iptr, 1, false);
+					i++;
+				}
+
+				scanEntry->predictNumberResult += i;
+			}
+			else
+			{
+				tbm_add_tuples(scanEntry->matchBitmap,
+							GinDataPageGetItemPointer(page, FirstOffsetNumber),
+							   GinPageGetOpaque(page)->maxoff, false);
+				scanEntry->predictNumberResult += GinPageGetOpaque(page)->maxoff;
+			}
 		}
 
 		if (GinPageRightMost(page))
@@ -333,8 +384,12 @@ collectMatchBitmap(GinBtreeData *btree, GinBtreeStack *stack,
 		}
 		else
 		{
+			ItemPointerData *ipd = (ItemPointerData *)palloc(
+								sizeof(ItemPointerData) * GinGetNPosting(itup));
+			ginReadTuple(btree->ginstate, scanEntry->attnum, itup, ipd);
+
 			tbm_add_tuples(scanEntry->matchBitmap,
-						   GinGetPosting(itup), GinGetNPosting(itup), false);
+						   ipd, GinGetNPosting(itup), false);
 			scanEntry->predictNumberResult += GinGetNPosting(itup);
 		}
 
@@ -426,6 +481,9 @@ restartScanEntry:
 			BlockNumber rootPostingTree = GinGetPostingTree(itup);
 			GinBtreeStack *stack;
 			Page		page;
+			Pointer		ptr;
+			Pointer		endPtr;
+			ItemPointerData iptr = {{0,0},0};
 
 			/*
 			 * We should unlock entry page before touching posting tree to
@@ -448,16 +506,32 @@ restartScanEntry:
 			IncrBufferRefCount(entry->buffer);
 
 			page = BufferGetPage(entry->buffer);
-			entry->predictNumberResult = stack->predictNumber * GinPageGetOpaque(page)->maxoff;
 
 			/*
 			 * Keep page content in memory to prevent durable page locking
 			 */
-			entry->list = (ItemPointerData *) palloc(BLCKSZ);
-			entry->nlist = GinPageGetOpaque(page)->maxoff;
-			memcpy(entry->list,
-				   GinDataPageGetItemPointer(page, FirstOffsetNumber),
-				   GinPageGetOpaque(page)->maxoff * sizeof(ItemPointerData));
+			if (GinPageIsCompressed(page))
+			{
+				entry->list = (ItemPointerData *) palloc(BLCKSZ * sizeof(ItemPointerData));
+				entry->nlist = 0;
+
+				ptr = GinDataLeafPageGetPostingList(page);
+				endPtr = GinDataLeafPageGetPostingListEnd(page);
+				while (ptr < endPtr)
+				{
+					ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+					entry->list[entry->nlist++] = iptr;
+				}
+			}
+			else
+			{
+				entry->list = (ItemPointerData *) palloc(BLCKSZ);
+				entry->nlist = GinPageGetOpaque(page)->maxoff;
+				memcpy(entry->list, GinDataPageGetItemPointer(page, FirstOffsetNumber),
+					   GinPageGetOpaque(page)->maxoff * sizeof(ItemPointerData));
+			}
+
+			entry->predictNumberResult = stack->predictNumber * entry->nlist;
 
 			LockBuffer(entry->buffer, GIN_UNLOCK);
 			freeGinBtreeStack(stack);
@@ -466,8 +540,11 @@ restartScanEntry:
 		else if (GinGetNPosting(itup) > 0)
 		{
 			entry->nlist = GinGetNPosting(itup);
+			entry->predictNumberResult = entry->nlist;
 			entry->list = (ItemPointerData *) palloc(sizeof(ItemPointerData) * entry->nlist);
-			memcpy(entry->list, GinGetPosting(itup), sizeof(ItemPointerData) * entry->nlist);
+
+			ginReadTuple(ginstate, entry->attnum, itup, entry->list);
+
 			entry->isFinished = FALSE;
 		}
 	}
@@ -565,13 +642,33 @@ entryGetNextItem(GinState *ginstate, GinScanEntry entry)
 			if (!ItemPointerIsValid(&entry->curItem) ||
 				findItemInPostingPage(page, &entry->curItem, &entry->offset))
 			{
-				/*
-				 * Found position equal to or greater than stored
-				 */
-				entry->nlist = GinPageGetOpaque(page)->maxoff;
-				memcpy(entry->list,
-					   GinDataPageGetItemPointer(page, FirstOffsetNumber),
+				Pointer ptr;
+				Pointer endPtr;
+				ItemPointerData iptr = {{0,0},0};
+
+				if (GinPageIsCompressed(page))
+				{
+					/*
+					 * Found position equal to or greater than stored
+					 */
+					ptr = GinDataLeafPageGetPostingList(page);
+					endPtr = GinDataLeafPageGetPostingListEnd(page);
+					entry->nlist = 0;
+					while (ptr < endPtr)
+					{
+						ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+						entry->list[entry->nlist++] = iptr;
+					}
+				}
+				else
+				{
+					/*
+					 * Found position equal to or greater than stored
+					 */
+					entry->nlist = GinPageGetOpaque(page)->maxoff;
+					memcpy(entry->list, GinDataPageGetItemPointer(page, FirstOffsetNumber),
 					   GinPageGetOpaque(page)->maxoff * sizeof(ItemPointerData));
+				}
 
 				LockBuffer(entry->buffer, GIN_UNLOCK);
 
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c
index 556e318..cd791a7 100644
--- a/src/backend/access/gin/gininsert.c
+++ b/src/backend/access/gin/gininsert.c
@@ -37,6 +37,149 @@ typedef struct
 
 
 /*
+ * Form a tuple for entry tree.
+ *
+ * If the tuple would be too big to be stored, function throws a suitable
+ * error if errorTooBig is TRUE, or returns NULL if errorTooBig is FALSE.
+ *
+ * See src/backend/access/gin/README for a description of the index tuple
+ * format that is being built here.  We build on the assumption that we
+ * are making a leaf-level key entry containing a posting list of nipd items.
+ * If the caller is actually trying to make a posting-tree entry, non-leaf
+ * entry, or pending-list entry, it should pass nipd = 0 and then overwrite
+ * the t_tid fields as necessary.  In any case, ipd can be NULL to skip
+ * copying any itempointers into the posting list; the caller is responsible
+ * for filling the posting list afterwards, if ipd = NULL and nipd > 0.
+ */
+static IndexTuple
+GinFormTuple(GinState *ginstate,
+			 OffsetNumber attnum, Datum key, GinNullCategory category,
+			 ItemPointerData *ipd,
+			 uint32 nipd,
+			 bool errorTooBig)
+{
+	Datum		datums[3];
+	bool		isnull[3];
+	IndexTuple	itup;
+	uint32		newsize;
+	int			i;
+	ItemPointerData nullItemPointer = {{0,0},0};
+
+	/* Build the basic tuple: optional column number, plus key datum */
+	if (ginstate->oneCol)
+	{
+		datums[0] = key;
+		isnull[0] = (category != GIN_CAT_NORM_KEY);
+		isnull[1] = true;
+	}
+	else
+	{
+		datums[0] = UInt16GetDatum(attnum);
+		isnull[0] = false;
+		datums[1] = key;
+		isnull[1] = (category != GIN_CAT_NORM_KEY);
+		isnull[2] = true;
+	}
+
+	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+
+	/*
+	 * Determine and store offset to the posting list, making sure there is
+	 * room for the category byte if needed.
+	 *
+	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
+	 * be some wasted pad space.  Is it worth recomputing the data length to
+	 * prevent that?  That would also allow us to Assert that the real data
+	 * doesn't overlap the GinNullCategory byte, which this code currently
+	 * takes on faith.
+	 */
+	newsize = IndexTupleSize(itup);
+
+	if (IndexTupleHasNulls(itup))
+	{
+		uint32		minsize;
+
+		Assert(category != GIN_CAT_NORM_KEY);
+		minsize = GinCategoryOffset(itup, ginstate) + sizeof(GinNullCategory);
+		newsize = Max(newsize, minsize);
+	}
+
+	GinSetPostingOffset(itup, newsize);
+
+	GinSetNPosting(itup, nipd);
+
+	/*
+	 * Add space needed for posting list, if any.  Then check that the tuple
+	 * won't be too big to store.
+	 */
+
+	if (nipd > 0)
+	{
+		newsize += ginDataPageLeafGetItemPointerSize(&ipd[0], &nullItemPointer);
+		for (i = 1; i < nipd; i++)
+		{
+			newsize += ginDataPageLeafGetItemPointerSize(&ipd[i], &ipd[i - 1]);
+		}
+	}
+
+	newsize = MAXALIGN(newsize);
+
+	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+	{
+		if (errorTooBig)
+			ereport(ERROR,
+					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+				   (unsigned long) newsize,
+				   (unsigned long) Min(INDEX_SIZE_MASK,
+									   GinMaxItemSize),
+				   RelationGetRelationName(ginstate->index))));
+		pfree(itup);
+		return NULL;
+	}
+
+	/*
+	 * Resize tuple if needed
+	 */
+	if (newsize != IndexTupleSize(itup))
+	{
+		itup = repalloc(itup, newsize);
+
+		/*
+		 * PostgreSQL 9.3 and earlier did not clear this new space, so we
+		 * might find uninitialized padding when reading tuples from disk.
+		 */
+		memset((char *) itup + IndexTupleSize(itup),
+			   0, newsize - IndexTupleSize(itup));
+
+		/* set new size in tuple header */
+		itup->t_info &= ~INDEX_SIZE_MASK;
+		itup->t_info |= newsize;
+	}
+
+	/*
+	 * Copy in the posting list, if provided
+	 */
+	if (nipd > 0)
+	{
+		char *ptr = GinGetPosting(itup);
+		ptr = ginDataPageLeafWriteItemPointer(ptr, &ipd[0], &nullItemPointer);
+		for (i = 1; i < nipd; i++)
+			ptr = ginDataPageLeafWriteItemPointer(ptr, &ipd[i], &ipd[i-1]);
+	}
+
+	/*
+	 * Insert category byte, if needed
+	 */
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		GinSetNullCategory(itup, ginstate, category);
+	}
+	return itup;
+}
+
+/*
  * Adds array of item pointers to tuple's posting list, or
  * creates posting tree and tuple pointing to tree in case
  * of not enough space.  Max size of tuple is defined in
@@ -53,31 +196,30 @@ addItemPointersToLeafTuple(GinState *ginstate,
 	Datum		key;
 	GinNullCategory category;
 	IndexTuple	res;
+	ItemPointerData *newItems, *oldItems;
+	int			oldNPosting, newNPosting;
 
 	Assert(!GinIsPostingTree(old));
 
 	attnum = gintuple_get_attrnum(ginstate, old);
 	key = gintuple_get_key(ginstate, old, &category);
 
+	oldNPosting = GinGetNPosting(old);
+	oldItems = (ItemPointerData *) palloc(sizeof(ItemPointerData) * oldNPosting);
+
+	newNPosting = oldNPosting + nitem;
+	newItems = (ItemPointerData *) palloc(sizeof(ItemPointerData) * newNPosting);
+
+	ginReadTuple(ginstate, attnum, old, oldItems);
+
+	newNPosting = ginMergeItemPointers(newItems,
+									   items, nitem,
+									   oldItems, oldNPosting);
+
 	/* try to build tuple with room for all the items */
 	res = GinFormTuple(ginstate, attnum, key, category,
-					   NULL, nitem + GinGetNPosting(old),
-					   false);
-
-	if (res)
-	{
-		/* good, small enough */
-		uint32		newnitem;
-
-		/* fill in the posting list with union of old and new TIDs */
-		newnitem = ginMergeItemPointers(GinGetPosting(res),
-										GinGetPosting(old),
-										GinGetNPosting(old),
-										items, nitem);
-		/* merge might have eliminated some duplicate items */
-		GinShortenTuple(res, newnitem);
-	}
-	else
+					   newItems, newNPosting, false);
+	if (!res)
 	{
 		/* posting list would be too big, convert to posting tree */
 		BlockNumber postingRoot;
@@ -88,8 +230,8 @@ addItemPointersToLeafTuple(GinState *ginstate,
 		 * already be in order with no duplicates.
 		 */
 		postingRoot = createPostingTree(ginstate->index,
-										GinGetPosting(old),
-										GinGetNPosting(old),
+										oldItems,
+										oldNPosting,
 										buildStats);
 
 		/* Now insert the TIDs-to-be-added into the posting tree */
diff --git a/src/backend/access/gin/ginpostinglist.c b/src/backend/access/gin/ginpostinglist.c
index e5a15bf..1214f9d 100644
--- a/src/backend/access/gin/ginpostinglist.c
+++ b/src/backend/access/gin/ginpostinglist.c
@@ -4,6 +4,9 @@
  *	  routines for dealing with posting lists.
  *
  *
+ * XXX: Explain the varbyte encoding here.
+ *
+ *
  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
@@ -17,6 +20,94 @@
 #include "access/gin_private.h"
 
 /*
+ * Write item pointer into leaf data page using varbyte encoding. Since
+ * BlockNumber is stored in incremental manner we also need a previous item
+ * pointer.
+ */
+CompressedPostingList
+ginDataPageLeafWriteItemPointer(CompressedPostingList ptr, ItemPointer iptr, ItemPointer prev)
+{
+	uint32		blockNumberIncr;
+	uint16		offset;
+	uint8		v;
+
+	Assert(ItemPointerGetBlockNumber(iptr) != InvalidBlockNumber);
+	Assert(ItemPointerGetOffsetNumber(iptr) != InvalidOffsetNumber);
+	Assert(ginCompareItemPointers(iptr, prev) > 0);
+	blockNumberIncr = iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16) -
+					  (prev->ip_blkid.bi_lo + (prev->ip_blkid.bi_hi << 16));
+	for (;;)
+	{
+		if (blockNumberIncr < HIGHBIT)
+		{
+			v = (uint8) blockNumberIncr;
+			*ptr = v;
+			ptr++;
+			break;
+		}
+		else
+		{
+			v = ((uint8) blockNumberIncr) | HIGHBIT;
+			*ptr = v;
+			ptr++;
+			blockNumberIncr >>= 7;
+		}
+	}
+
+	offset = iptr->ip_posid;
+	for (;;)
+	{
+		if (offset < HIGHBIT)
+		{
+			v = (uint8) offset;
+			*ptr = v;
+			ptr++;
+			break;
+		}
+		else
+		{
+			v = ((uint8) offset) | HIGHBIT;
+			*ptr = v;
+			ptr++;
+			offset >>= 7;
+		}
+	}
+
+	return ptr;
+}
+
+/*
+ * Calculate size of incremental varbyte encoding of item pointer.
+ */
+int
+ginDataPageLeafGetItemPointerSize(ItemPointer iptr, ItemPointer prev)
+{
+	uint32		blockNumberIncr;
+	uint16		offset;
+	int			size = 0;
+
+	Assert(ginCompareItemPointers(iptr, prev) > 0);
+
+	blockNumberIncr = iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16) -
+					  (prev->ip_blkid.bi_lo + (prev->ip_blkid.bi_hi << 16));
+	do
+	{
+		size++;
+		blockNumberIncr >>= 7;
+	} while (blockNumberIncr > 0);
+
+	offset = iptr->ip_posid;
+	do
+	{
+		size++;
+		offset >>= 7;
+	} while (offset > 0);
+
+	return size;
+}
+
+
+/*
  * Merge two ordered arrays of itempointers, eliminating any duplicates.
  * Returns the number of items in the result.
  * Caller is responsible that there is enough space at *dst.
@@ -54,3 +145,63 @@ ginMergeItemPointers(ItemPointerData *dst,
 
 	return dptr - dst;
 }
+
+/*
+ * Non-inlined version of ginDataPageLeafReadItemPointer.
+ *
+ * Read next item pointer from leaf data page. Replaces current item pointer
+ * with the next one. Zero item pointer should be passed in order to read the
+ * first item pointer.
+ */
+#ifndef PG_USE_INLINE
+CompressedPostingList
+ginDataPageLeafReadItemPointer(CompressedPostingList ptr, ItemPointer iptr)
+{
+	uint32		blockNumberIncr;
+	uint16		offset;
+	int			i;
+	uint8		v;
+	ItemPointerData prev = *iptr;
+
+	i = 0;
+	blockNumberIncr = 0;
+	do
+	{
+		v = *ptr;
+		ptr++;
+		blockNumberIncr |= (uint32) (v & (~HIGHBIT)) << i;
+		Assert(i < 28 || ((i == 28) && ((v & (~HIGHBIT)) < (1 << 4))));
+		i += 7;
+	}
+	while (IS_HIGHBIT_SET(v));
+
+	Assert((uint64)iptr->ip_blkid.bi_lo + ((uint64)iptr->ip_blkid.bi_hi << 16) +
+			(uint64)blockNumberIncr < ((uint64)1 << 32));
+
+	blockNumberIncr += iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16);
+
+	iptr->ip_blkid.bi_lo = blockNumberIncr & 0xFFFF;
+	iptr->ip_blkid.bi_hi = (blockNumberIncr >> 16) & 0xFFFF;
+
+	i = 0;
+	offset = 0;
+	do
+	{
+		v = *ptr;
+		ptr++;
+		offset |= (uint16) (v & (~HIGHBIT)) << i;
+		Assert(i < 14 || ((i == 14) && ((v & (~HIGHBIT)) < (1 << 2))));
+		i += 7;
+	} while(IS_HIGHBIT_SET(v));
+
+	Assert(OffsetNumberIsValid(offset));
+
+	iptr->ip_posid = offset;
+
+	Assert(blockNumberIncr > BlockIdGetBlockNumber(&prev.ip_blkid) ||
+		   offset > prev.ip_posid);
+
+	return ptr;
+}
+#endif   /* PG_USE_INLINE */
+
diff --git a/src/backend/access/gin/ginvacuum.c b/src/backend/access/gin/ginvacuum.c
index c17c808..2d11385 100644
--- a/src/backend/access/gin/ginvacuum.c
+++ b/src/backend/access/gin/ginvacuum.c
@@ -33,48 +33,276 @@ typedef struct
 
 
 /*
- * Vacuums a list of item pointers. The original size of the list is 'nitem',
- * returns the number of items remaining afterwards.
+ * Vacuums a compressed posting list. The size of the list can be specified
+ * in either number of bytes (nbytes) or number of items (nitems). Leave the
+ * other one of those 0.
  *
- * If *cleaned == NULL on entry, the original array is left unmodified; if
- * any items are removed, a palloc'd copy of the result is stored in *cleaned.
- * Otherwise *cleaned should point to the original array, in which case it's
- * modified directly.
+ * Results are always stored in *cleaned, which will be allocated
+ * if it's needed.
+ *
+ * Returns the number of items remaining.
+ */
+static int
+ginVacuumPostingListCompressed(GinVacuumState *gvs,
+					 CompressedPostingList src, int nbytes, int nitems,
+					 CompressedPostingList *cleaned, Size *newSize)
+{
+	ItemPointerData iptr = {{0,0},0}, prevIptr;
+	Pointer		dst = NULL, prev, ptr;
+	Pointer		end;
+	bool		copying = false;
+	int			remaining = 0;
+	int			i = 0;
+
+	Assert(*cleaned == NULL);
+
+	/*
+	 * The end of the posting list can be specified as either number of
+	 * bytes or number of items.
+	 */
+	if (nbytes == 0 && nitems == 0)
+		return 0; /* nothing to do */
+	if (nbytes == 0)
+	{
+		/*
+		 * currently this function is only used to process lists that are
+		 * stored on a page, so can't be larger than block size.
+		 */
+		nbytes = BLCKSZ;
+	}
+	end = src + nbytes;
+
+	/*
+	 * iterate through the compressed posting list.
+	 */
+	prevIptr = iptr;
+	ptr = src;
+	while (ptr < end && (nitems == 0 || i < nitems))
+	{
+		prev = ptr;
+		ptr = ginDataPageLeafReadItemPointer(ptr, &iptr);
+		if (gvs->callback(&iptr, gvs->callback_state))
+		{
+			gvs->result->tuples_removed += 1;
+			if (!dst)
+			{
+				dst = palloc(nbytes);
+				*cleaned = dst;
+				if (prev != src)
+				{
+					memcpy(dst, src, prev - src);
+					dst += prev - src;
+				}
+			}
+			copying = true;
+		}
+		else
+		{
+			remaining++;
+			gvs->result->num_index_tuples += 1;
+			if (copying)
+				dst = ginDataPageLeafWriteItemPointer(dst, &iptr, &prevIptr);
+			prevIptr = iptr;
+		}
+		i++;
+	}
+
+	if (copying)
+	{
+		*newSize = dst - *cleaned;
+		Assert(*newSize <= nbytes);
+	}
+	return remaining;
+}
+
+/*
+ * Vacuums a compressed posting list. The size of the must can be specified
+ * in number of items (nitems).
+ *
+ * Results are always stored in *cleaned, which will be allocated
+ * if it's needed. Results are compressed.
+ *
+ * Returns the number of items remaining.
  */
 static int
-ginVacuumPostingList(GinVacuumState *gvs, ItemPointerData *items, int nitem,
-					 ItemPointerData **cleaned)
+ginVacuumPostingListUncompressed(GinVacuumState *gvs, ItemPointerData *items,
+		int nitem, CompressedPostingList *cleaned, Size *newSize)
 {
-	int			i,
-				j = 0;
+	int			i, j,
+				remaining = 0;
+	Pointer		dst = NULL, ptr;
+	ItemPointerData prevIptr = {{0,0},0};
+	bool		copying = false;
 
-	Assert(*cleaned == NULL || *cleaned == items);
+	Assert(*cleaned == NULL);
 
 	/*
-	 * just scan over ItemPointer array
+	 * Iterate over TIDs array
 	 */
 	for (i = 0; i < nitem; i++)
 	{
 		if (gvs->callback(items + i, gvs->callback_state))
 		{
 			gvs->result->tuples_removed += 1;
-			if (!*cleaned)
+			if (!dst)
 			{
-				*cleaned = (ItemPointerData *) palloc(sizeof(ItemPointerData) * nitem);
+				/*
+				 * Fist TID to be deleted: allocate memory for compressed
+				 * results and put there compressed representation of previous
+				 * TIDs.
+				 */
+				dst = palloc(MAX_COMPRESSED_ITEM_POINTER_SIZE * nitem);
+				ptr = dst;
 				if (i != 0)
-					memcpy(*cleaned, items, sizeof(ItemPointerData) * i);
+				{
+					for (j = 0; j < i; j++)
+					{
+						ptr = ginDataPageLeafWriteItemPointer(ptr, items + j,
+																	&prevIptr);
+						prevIptr = items[j];
+					}
+				}
+				copying = true;
 			}
 		}
 		else
 		{
 			gvs->result->num_index_tuples += 1;
-			if (i != j)
-				(*cleaned)[j] = items[i];
-			j++;
+			if (copying)
+			{
+				ptr = ginDataPageLeafWriteItemPointer(ptr, items + i,
+															&prevIptr);
+				prevIptr = items[i];
+			}
+			remaining++;
 		}
 	}
 
-	return j;
+	if (copying)
+	{
+		*cleaned = dst;
+		*newSize = ptr - dst;
+	}
+
+	return remaining;
+}
+
+/*
+ * Form a tuple for entry tree based on already encoded array of item pointers
+ * with additional information.
+ */
+static IndexTuple
+GinFormTuple(GinState *ginstate,
+			 OffsetNumber attnum, Datum key, GinNullCategory category,
+			 Pointer data,
+			 Size dataSize,
+			 uint32 nipd,
+			 bool errorTooBig)
+{
+	Datum		datums[3];
+	bool		isnull[3];
+	IndexTuple	itup;
+	uint32		newsize;
+
+	/* Build the basic tuple: optional column number, plus key datum */
+	if (ginstate->oneCol)
+	{
+		datums[0] = key;
+		isnull[0] = (category != GIN_CAT_NORM_KEY);
+		isnull[1] = true;
+	}
+	else
+	{
+		datums[0] = UInt16GetDatum(attnum);
+		isnull[0] = false;
+		datums[1] = key;
+		isnull[1] = (category != GIN_CAT_NORM_KEY);
+		isnull[2] = true;
+	}
+
+	itup = index_form_tuple(ginstate->tupdesc[attnum - 1], datums, isnull);
+
+	/*
+	 * Determine and store offset to the posting list, making sure there is
+	 * room for the category byte if needed.
+	 *
+	 * Note: because index_form_tuple MAXALIGNs the tuple size, there may well
+	 * be some wasted pad space.  Is it worth recomputing the data length to
+	 * prevent that?  That would also allow us to Assert that the real data
+	 * doesn't overlap the GinNullCategory byte, which this code currently
+	 * takes on faith.
+	 */
+	newsize = IndexTupleSize(itup);
+
+	if (IndexTupleHasNulls(itup))
+	{
+		uint32		minsize;
+
+		Assert(category != GIN_CAT_NORM_KEY);
+		minsize = GinCategoryOffset(itup, ginstate) + sizeof(GinNullCategory);
+		newsize = Max(newsize, minsize);
+	}
+
+	GinSetPostingOffset(itup, newsize);
+
+	GinSetNPosting(itup, nipd);
+
+	/*
+	 * Add space needed for posting list, if any.  Then check that the tuple
+	 * won't be too big to store.
+	 */
+
+	if (nipd > 0)
+	{
+		newsize += dataSize;
+	}
+
+	newsize = MAXALIGN(newsize);
+
+	if (newsize > Min(INDEX_SIZE_MASK, GinMaxItemSize))
+	{
+		if (errorTooBig)
+			ereport(ERROR,
+					(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+			errmsg("index row size %lu exceeds maximum %lu for index \"%s\"",
+				   (unsigned long) newsize,
+				   (unsigned long) Min(INDEX_SIZE_MASK,
+									   GinMaxItemSize),
+				   RelationGetRelationName(ginstate->index))));
+		pfree(itup);
+		return NULL;
+	}
+
+	/*
+	 * Resize tuple if needed
+	 */
+	if (newsize != IndexTupleSize(itup))
+	{
+		itup = repalloc(itup, newsize);
+
+		/* set new size in tuple header */
+		itup->t_info &= ~INDEX_SIZE_MASK;
+		itup->t_info |= newsize;
+	}
+
+	/*
+	 * Copy in the posting list, if provided
+	 */
+	if (nipd > 0)
+	{
+		char *ptr = GinGetPosting(itup);
+		memcpy(ptr, data, dataSize);
+	}
+
+	/*
+	 * Insert category byte, if needed
+	 */
+	if (category != GIN_CAT_NORM_KEY)
+	{
+		Assert(IndexTupleHasNulls(itup));
+		GinSetNullCategory(itup, ginstate, category);
+	}
+	return itup;
 }
 
 /*
@@ -98,13 +326,20 @@ xlogVacuumPage(Relation index, Buffer buffer)
 
 	data.node = index->rd_node;
 	data.blkno = BufferGetBlockNumber(buffer);
-
 	if (GinPageIsData(page))
 	{
-		backup = GinDataPageGetData(page);
-		data.nitem = GinPageGetOpaque(page)->maxoff;
-		if (data.nitem)
-			len = MAXALIGN(sizeof(ItemPointerData) * data.nitem);
+		if (GinPageIsLeaf(page))
+		{
+			backup = GinDataLeafPageGetPostingList(page);
+			len = GinDataLeafPageGetPostingListSize(page);
+			data.nitem = len;
+		}
+		else
+		{
+			backup = (char *) GinDataPageGetPostingItem(page, 1);
+			data.nitem = GinPageGetOpaque(page)->maxoff;
+			len = sizeof(PostingItem) * data.nitem;
+		}
 	}
 	else
 	{
@@ -179,22 +414,67 @@ ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
 
 	if (GinPageIsLeaf(page))
 	{
-		OffsetNumber newMaxOff,
-					oldMaxOff = GinPageGetOpaque(page)->maxoff;
-		ItemPointerData *cleaned = NULL;
+		Pointer cleaned = NULL;
+		Size newSize;
+		Pointer beginPtr;
+
+		beginPtr = GinDataLeafPageGetPostingList(page);
 
-		newMaxOff = ginVacuumPostingList(gvs,
-				(ItemPointer) GinDataPageGetData(page), oldMaxOff, &cleaned);
+		/*
+		 * Vacuum posting list with proper function for compressed and
+		 * uncompressed format.
+		 */
+		if (GinPageIsCompressed(page))
+		{
+			Size oldSize;
+			oldSize = GinDataLeafPageGetPostingListSize(page);
+			(void) ginVacuumPostingListCompressed(gvs, beginPtr, oldSize, 0,
+										&cleaned, &newSize);
+		}
+		else
+		{
+			(void) ginVacuumPostingListUncompressed(gvs,
+					(ItemPointer)GinDataPageGetData(page),
+					GinPageGetOpaque(page)->maxoff,
+					&cleaned, &newSize);
+		}
 
 		/* saves changes about deleted tuple ... */
-		if (oldMaxOff != newMaxOff)
+		if (cleaned)
 		{
+			/*
+			 * We should have enough of space to place vacuumed posting list.
+			 * Could fail in some very rare cases because of compressed
+			 * representation of TID could be larger in worst case and because
+			 * we have to place item indexes at the end of page.
+			 */
+			if (newSize > GinDataLeafMaxPostingListSize)
+			{
+				ereport(ERROR,
+						(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
+				errmsg("can't compress block %u of gin index \"%s\", consider REINDEX",
+						blkno, RelationGetRelationName(gvs->ginstate.index))));
+			}
+
 			START_CRIT_SECTION();
 
-			if (newMaxOff > 0)
-				memcpy(GinDataPageGetData(page), cleaned, sizeof(ItemPointerData) * newMaxOff);
+			if (!GinPageIsCompressed(page))
+			{
+				/*
+				 * Set page format is compressed and reserve space for
+				 * item indexes
+				 */
+				GinPageSetCompressed(page);
+				((PageHeader) page)->pd_upper -=
+						sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount;
+			}
+
+			if (newSize > 0)
+				memcpy(beginPtr, cleaned, newSize);
+
 			pfree(cleaned);
-			GinPageGetOpaque(page)->maxoff = newMaxOff;
+			GinDataLeafPageSetPostingListSize(page, newSize);
+			updateItemIndexes(page);
 
 			MarkBufferDirty(buffer);
 			xlogVacuumPage(gvs->index, buffer);
@@ -202,7 +482,7 @@ ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
 			END_CRIT_SECTION();
 
 			/* if root is a leaf page, we don't desire further processing */
-			if (!isRoot && GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
+			if (!isRoot && newSize == 0)
 				hasVoidPage = TRUE;
 		}
 	}
@@ -391,6 +671,7 @@ ginScanToDelete(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
 	Buffer		buffer;
 	Page		page;
 	bool		meDelete = FALSE;
+	bool		isempty;
 
 	if (isRoot)
 	{
@@ -429,7 +710,12 @@ ginScanToDelete(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
 		}
 	}
 
-	if (GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
+	if (GinPageIsLeaf(page))
+		isempty = (GinDataLeafPageGetPostingListSize(page) == 0);
+	else
+		isempty = GinPageGetOpaque(page)->maxoff < FirstOffsetNumber;
+
+	if (isempty)
 	{
 		/* we never delete the left- or rightmost branch */
 		if (me->leftBlkno != InvalidBlockNumber && !GinPageRightMost(page))
@@ -516,12 +802,29 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
 			/*
 			 * if we already created a temporary page, make changes in place
 			 */
-			ItemPointerData *cleaned = (tmppage == origpage) ? NULL : GinGetPosting(itup);
-			int			newN;
-
-			newN = ginVacuumPostingList(gvs, GinGetPosting(itup), GinGetNPosting(itup), &cleaned);
+			Size cleanedSize;
+			Pointer cleaned = NULL;
+			int		newN;
 
-			if (GinGetNPosting(itup) != newN)
+			/*
+			 * Vacuum posting list with proper function for compressed and
+			 * uncompressed format.
+			 */
+			if (GinItupIsCompressed(itup))
+				newN = ginVacuumPostingListCompressed(gvs,
+											GinGetPosting(itup),
+											0,
+											GinGetNPosting(itup),
+											&cleaned,
+											&cleanedSize);
+			else
+				newN = ginVacuumPostingListUncompressed(gvs,
+											(ItemPointer)GinGetPosting(itup),
+											GinGetNPosting(itup),
+											&cleaned,
+											&cleanedSize);
+
+			if (cleaned)
 			{
 				OffsetNumber attnum;
 				Datum		key;
@@ -538,23 +841,16 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
 					 */
 					tmppage = PageGetTempPageCopy(origpage);
 
-					if (newN > 0)
-					{
-						Size		pos = ((char *) GinGetPosting(itup)) - ((char *) origpage);
-
-						memcpy(tmppage + pos, cleaned, sizeof(ItemPointerData) * newN);
-					}
-
-					pfree(cleaned);
-
 					/* set itup pointer to new page */
 					itup = (IndexTuple) PageGetItem(tmppage, PageGetItemId(tmppage, i));
 				}
 
 				attnum = gintuple_get_attrnum(&gvs->ginstate, itup);
 				key = gintuple_get_key(&gvs->ginstate, itup, &category);
+				/* FIXME */
 				itup = GinFormTuple(&gvs->ginstate, attnum, key, category,
-									GinGetPosting(itup), newN, true);
+									cleaned, cleanedSize, newN, true);
+				pfree(cleaned);
 				PageIndexTupleDelete(tmppage, i);
 
 				if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, false, false) != i)
diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c
index 4e43ae9..11c9d5e 100644
--- a/src/backend/access/gin/ginxlog.c
+++ b/src/backend/access/gin/ginxlog.c
@@ -78,7 +78,7 @@ static void
 ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
 {
 	ginxlogCreatePostingTree *data = (ginxlogCreatePostingTree *) XLogRecGetData(record);
-	ItemPointerData *items = (ItemPointerData *) (XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree));
+	CompressedPostingList ptr;
 	Buffer		buffer;
 	Page		page;
 
@@ -89,22 +89,30 @@ ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
 	Assert(BufferIsValid(buffer));
 	page = (Page) BufferGetPage(buffer);
 
-	GinInitBuffer(buffer, GIN_DATA | GIN_LEAF);
-	memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * data->nitem);
-	GinPageGetOpaque(page)->maxoff = data->nitem;
+	GinInitBuffer(buffer, GIN_DATA | GIN_LEAF | GIN_COMPRESSED);
+	((PageHeader) page)->pd_upper -= sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount;
+
+	ptr = XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree);
+
+	/* Place page data */
+	memcpy(GinDataLeafPageGetPostingList(page), ptr, data->size);
+
+	GinDataLeafPageSetPostingListSize(page, data->size);
 
 	PageSetLSN(page, lsn);
 
+	updateItemIndexes(page);
+
 	MarkBufferDirty(buffer);
 	UnlockReleaseBuffer(buffer);
 }
 
 static void
-ginRedoInsertEntry(Buffer buffer, OffsetNumber offset, BlockNumber rightblkno,
-				   void *rdata)
+ginRedoInsertEntry(Buffer buffer, BlockNumber rightblkno, void *rdata)
 {
 	Page		page = BufferGetPage(buffer);
 	ginxlogInsertEntry *data = (ginxlogInsertEntry *) rdata;
+	OffsetNumber offset = data->offset;
 	IndexTuple	itup;
 
 	if (rightblkno != InvalidBlockNumber)
@@ -138,30 +146,55 @@ ginRedoInsertEntry(Buffer buffer, OffsetNumber offset, BlockNumber rightblkno,
 }
 
 static void
-ginRedoInsertData(Buffer buffer, OffsetNumber offset, BlockNumber rightblkno,
-				  void *rdata)
+ginRedoInsertData(Buffer buffer, BlockNumber rightblkno, void *rdata)
 {
 	Page		page = BufferGetPage(buffer);
 
 	if (GinPageIsLeaf(page))
 	{
 		ginxlogInsertDataLeaf *data = (ginxlogInsertDataLeaf *) rdata;
-		ItemPointerData *items = data->items;
-		OffsetNumber i;
+		int			restlen;
+		Pointer		restPtr;
+		Pointer		beginPtr;
+		int			oldsize;
+		int			newsize;
+
+		if (!GinPageIsCompressed(page))
+		{
+			/*
+			 * Page compression must succeed since we have an xlog record.
+			 */
+			bool result;
+			result = dataCompressLeafPage(page);
+			Assert(result);
+		}
 
-		for (i = 0; i < data->nitem; i++)
-			GinDataPageAddItemPointer(page, &items[i], offset + i);
+		beginPtr = GinDataLeafPageGetPostingList(page) + data->beginOffset;
+		restPtr = GinDataLeafPageGetPostingList(page) + data->restOffset;
+		/* Shift existing items to make room */
+		restlen = GinDataLeafPageGetPostingListEnd(page) - restPtr;
+		Assert(data->beginOffset + data->newlen + restlen  <= ((PageHeader) page)->pd_upper);
+		Assert(beginPtr + data->newlen >= restPtr);
+		memmove(beginPtr + data->newlen, restPtr, restlen);
+
+		/* Insert the new (or replacing) data */
+		memcpy(beginPtr, data->newdata, data->newlen);
+
+		oldsize = GinDataLeafPageGetPostingListSize(page);
+		newsize =  data->beginOffset + data->newlen + restlen;
+		GinDataLeafPageSetPostingListSize(page, newsize);
+		incrUpdateItemIndexes(page, data->restOffset, newsize - oldsize);
 	}
 	else
 	{
-		PostingItem *pitem = (PostingItem *) rdata;
+		ginxlogInsertDataInternal *data = (ginxlogInsertDataInternal *) rdata;
 		PostingItem *oldpitem;
 
 		/* update link to right page after split */
-		oldpitem = GinDataPageGetPostingItem(page, offset);
+		oldpitem = GinDataPageGetPostingItem(page, data->offset);
 		PostingItemSetBlockNumber(oldpitem, rightblkno);
 
-		GinDataPageAddPostingItem(page, pitem, offset);
+		GinDataPageAddPostingItem(page, &data->newitem, data->offset);
 	}
 }
 
@@ -213,12 +246,12 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
 		if (data->flags & GIN_INSERT_ISDATA)
 		{
 			Assert(GinPageIsData(page));
-			ginRedoInsertData(buffer, data->offset, rightChildBlkno, payload);
+			ginRedoInsertData(buffer, rightChildBlkno, payload);
 		}
 		else
 		{
 			Assert(!GinPageIsData(page));
-			ginRedoInsertEntry(buffer, data->offset, rightChildBlkno, payload);
+			ginRedoInsertEntry(buffer, rightChildBlkno, payload);
 		}
 
 		PageSetLSN(page, lsn);
@@ -253,38 +286,49 @@ ginRedoSplitEntry(Page lpage, Page rpage, void *rdata)
 static void
 ginRedoSplitData(Page lpage, Page rpage, void *rdata)
 {
-	ginxlogSplitData *data = (ginxlogSplitData *) rdata;
 	bool		isleaf = GinPageIsLeaf(lpage);
-	char	   *ptr = (char *) rdata + sizeof(ginxlogSplitData);
 	OffsetNumber i;
 	ItemPointer bound;
 
 	if (isleaf)
 	{
-		ItemPointer items = (ItemPointer) ptr;
-		for (i = 0; i < data->separator; i++)
-			GinDataPageAddItemPointer(lpage, &items[i], InvalidOffsetNumber);
-		for (i = data->separator; i < data->nitem; i++)
-			GinDataPageAddItemPointer(rpage, &items[i], InvalidOffsetNumber);
+		ginxlogSplitDataLeaf *data = (ginxlogSplitDataLeaf *) rdata;
+		char	   *ptr = (char *) rdata + sizeof(ginxlogSplitDataLeaf);
+		Pointer			lptr, rptr;
+		Size			lsize, rsize;
+
+		((PageHeader) lpage)->pd_upper -= sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount;
+		((PageHeader) rpage)->pd_upper -= sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount;
+
+		lsize = data->separator;
+		lptr = ptr;
+		rsize = data->nbytes - data->separator;
+		rptr = ptr + lsize;
+
+		Assert(lsize > 0 && lsize < GinDataLeafMaxPostingListSize);
+		Assert(rsize > 0 && rsize < GinDataLeafMaxPostingListSize);
+
+		/* Place pages data */
+		memcpy(GinDataLeafPageGetPostingList(lpage), lptr, lsize);
+		memcpy(GinDataLeafPageGetPostingList(rpage), rptr, rsize);
+
+		GinDataLeafPageSetPostingListSize(lpage, lsize);
+		GinDataLeafPageSetPostingListSize(rpage, rsize);
+		*GinDataPageGetRightBound(lpage) = updateItemIndexes(lpage);
+		updateItemIndexes(rpage);
 	}
 	else
 	{
-		PostingItem *items = (PostingItem *) ptr;
+		ginxlogSplitDataInternal *data = (ginxlogSplitDataInternal *) rdata;
+		PostingItem *items = (PostingItem *) ((char *) rdata + sizeof(ginxlogSplitDataInternal));
 		for (i = 0; i < data->separator; i++)
 			GinDataPageAddPostingItem(lpage, &items[i], InvalidOffsetNumber);
 		for (i = data->separator; i < data->nitem; i++)
 			GinDataPageAddPostingItem(rpage, &items[i], InvalidOffsetNumber);
-	}
 
-	/* set up right key */
-	bound = GinDataPageGetRightBound(lpage);
-	if (isleaf)
-		*bound = *GinDataPageGetItemPointer(lpage, GinPageGetOpaque(lpage)->maxoff);
-	else
+		/* set up right key */
 		*bound = GinDataPageGetPostingItem(lpage, GinPageGetOpaque(lpage)->maxoff)->key;
-
-	bound = GinDataPageGetRightBound(rpage);
-	*bound = data->rightbound;
+	}
 }
 
 static void
@@ -317,9 +361,10 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
 
 	if (isLeaf)
 		flags |= GIN_LEAF;
-
 	if (isData)
 		flags |= GIN_DATA;
+	if (isLeaf && isData)
+		flags |= GIN_COMPRESSED;
 
 	lbuffer = XLogReadBuffer(data->node, data->lblkno, true);
 	Assert(BufferIsValid(lbuffer));
@@ -352,7 +397,7 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
 		Buffer		rootBuf = XLogReadBuffer(data->node, rootBlkno, true);
 		Page		rootPage = BufferGetPage(rootBuf);
 
-		GinInitBuffer(rootBuf, flags & ~GIN_LEAF);
+		GinInitBuffer(rootBuf, flags & ~GIN_LEAF & ~GIN_COMPRESSED);
 
 		if (isData)
 		{
@@ -406,10 +451,38 @@ ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record)
 	{
 		if (GinPageIsData(page))
 		{
-			memcpy(GinDataPageGetData(page),
-				   XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
-				   data->nitem * GinSizeOfDataPageItem(page));
-			GinPageGetOpaque(page)->maxoff = data->nitem;
+			if (GinPageIsLeaf(page))
+			{
+				Pointer ptr;
+
+				ptr = XLogRecGetData(record) + sizeof(ginxlogVacuumPage);
+
+				/* There should be enough of space since we have a xlog record */
+				Assert(data->nitem <= GinDataLeafMaxPostingListSize);
+
+				if (!GinPageIsCompressed(page))
+				{
+					/*
+					 * Set page format is compressed and reserve space for
+					 * item indexes
+					 */
+					GinPageSetCompressed(page);
+					((PageHeader) page)->pd_upper -=
+						sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount;
+				}
+
+				memcpy(GinDataLeafPageGetPostingList(page), ptr, data->nitem);
+
+				GinDataLeafPageSetPostingListSize(page, data->nitem);
+				updateItemIndexes(page);
+			}
+			else
+			{
+				memcpy(GinDataPageGetPostingItem(page, 1),
+					   XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
+					   data->nitem * sizeof(ItemPointerData));
+				GinPageGetOpaque(page)->maxoff = data->nitem;
+			}
 		}
 		else
 		{
diff --git a/src/backend/access/rmgrdesc/gindesc.c b/src/backend/access/rmgrdesc/gindesc.c
index 663fd09..bd25e87 100644
--- a/src/backend/access/rmgrdesc/gindesc.c
+++ b/src/backend/access/rmgrdesc/gindesc.c
@@ -47,8 +47,7 @@ gin_desc(StringInfo buf, uint8 xl_info, char *rec)
 
 				appendStringInfoString(buf, "Insert item, ");
 				desc_node(buf, xlrec->node, xlrec->blkno);
-				appendStringInfo(buf, " offset: %u isdata: %c isleaf: %c",
-								 xlrec->offset,
+				appendStringInfo(buf, " isdata: %c isleaf: %c",
 								 (xlrec->flags & GIN_INSERT_ISDATA) ? 'T' : 'F',
 								 (xlrec->flags & GIN_INSERT_ISLEAF) ? 'T' : 'F');
 				if (!(xlrec->flags & GIN_INSERT_ISLEAF))
@@ -67,13 +66,21 @@ gin_desc(StringInfo buf, uint8 xl_info, char *rec)
 					appendStringInfo(buf, " isdelete: %c",
 									 (((ginxlogInsertEntry *) payload)->isDelete) ? 'T' : 'F');
 				else if (xlrec->flags & GIN_INSERT_ISLEAF)
-					appendStringInfo(buf, " nitem: %u",
-									 (((ginxlogInsertDataLeaf *) payload)->nitem));
+				{
+					ginxlogInsertDataLeaf *data = (ginxlogInsertDataLeaf *) rec;
+					appendStringInfo(buf, " begin %u, len %u, restOffset %u",
+									 data->beginOffset,
+									 data->newlen,
+									 data->restOffset);
+				}
 				else
+				{
+					ginxlogInsertDataInternal *insertData = (ginxlogInsertDataInternal *) payload;
 					appendStringInfo(buf, " pitem: %u-%u/%u",
-									 PostingItemGetBlockNumber((PostingItem *) payload),
-									 ItemPointerGetBlockNumber(&((PostingItem *) payload)->key),
-									 ItemPointerGetOffsetNumber(&((PostingItem *) payload)->key));
+									 PostingItemGetBlockNumber(&insertData->newitem),
+									 ItemPointerGetBlockNumber(&insertData->newitem.key),
+									 ItemPointerGetOffsetNumber(&insertData->newitem.key));
+				}
 			}
 			break;
 		case XLOG_GIN_SPLIT:
diff --git a/src/include/access/gin_private.h b/src/include/access/gin_private.h
index 714c8ca..5853aa2 100644
--- a/src/include/access/gin_private.h
+++ b/src/include/access/gin_private.h
@@ -32,11 +32,8 @@
 typedef struct GinPageOpaqueData
 {
 	BlockNumber rightlink;		/* next page if any */
-	OffsetNumber maxoff;		/* number entries on GIN_DATA page: number of
-								 * heap ItemPointers on GIN_DATA|GIN_LEAF page
-								 * or number of PostingItems on GIN_DATA &
-								 * ~GIN_LEAF page. On GIN_LIST page, number of
-								 * heap tuples. */
+	OffsetNumber maxoff;		/* number of PostingItems on GIN_DATA & ~GIN_LEAF page.
+								 * On GIN_LIST page, number of heap tuples. */
 	uint16		flags;			/* see bit definitions below */
 } GinPageOpaqueData;
 
@@ -49,6 +46,7 @@ typedef GinPageOpaqueData *GinPageOpaque;
 #define GIN_LIST		  (1 << 4)
 #define GIN_LIST_FULLROW  (1 << 5)		/* makes sense only on GIN_LIST page */
 #define GIN_INCOMPLETE_SPLIT (1 << 6)	/* page was split, but parent not updated */
+#define GIN_COMPRESSED	  (1 << 7)
 
 /* Page numbers of fixed-location pages */
 #define GIN_METAPAGE_BLKNO	(0)
@@ -116,6 +114,8 @@ typedef struct GinMetaPageData
 #define GinPageSetList(page)   ( GinPageGetOpaque(page)->flags |= GIN_LIST )
 #define GinPageHasFullRow(page)    ( GinPageGetOpaque(page)->flags & GIN_LIST_FULLROW )
 #define GinPageSetFullRow(page)   ( GinPageGetOpaque(page)->flags |= GIN_LIST_FULLROW )
+#define GinPageIsCompressed(page)    ( GinPageGetOpaque(page)->flags & GIN_COMPRESSED )
+#define GinPageSetCompressed(page)   ( GinPageGetOpaque(page)->flags |= GIN_COMPRESSED )
 
 #define GinPageIsDeleted(page) ( GinPageGetOpaque(page)->flags & GIN_DELETED)
 #define GinPageSetDeleted(page)    ( GinPageGetOpaque(page)->flags |= GIN_DELETED)
@@ -213,13 +213,15 @@ typedef signed char GinNullCategory;
 #define GinSetPostingTree(itup, blkno)	( GinSetNPosting((itup),GIN_TREE_POSTING), ItemPointerSetBlockNumber(&(itup)->t_tid, blkno) )
 #define GinGetPostingTree(itup) GinItemPointerGetBlockNumber(&(itup)->t_tid)
 
-#define GinGetPostingOffset(itup)	GinItemPointerGetBlockNumber(&(itup)->t_tid)
-#define GinSetPostingOffset(itup,n) ItemPointerSetBlockNumber(&(itup)->t_tid,n)
-#define GinGetPosting(itup)			((ItemPointer) ((char*)(itup) + GinGetPostingOffset(itup)))
+#define GIN_ITUP_COMPRESSED		(1 << 31)
+#define GinGetPostingOffset(itup)	(GinItemPointerGetBlockNumber(&(itup)->t_tid) & (~GIN_ITUP_COMPRESSED))
+#define GinSetPostingOffset(itup,n) ItemPointerSetBlockNumber(&(itup)->t_tid,(n)|GIN_ITUP_COMPRESSED)
+#define GinGetPosting(itup)			((Pointer) ((char*)(itup) + GinGetPostingOffset(itup)))
+#define GinItupIsCompressed(itup)	(GinItemPointerGetBlockNumber(&(itup)->t_tid) & GIN_ITUP_COMPRESSED)
 
 #define GinMaxItemSize \
 	MAXALIGN_DOWN(((BLCKSZ - SizeOfPageHeaderData - \
-		MAXALIGN(sizeof(GinPageOpaqueData))) / 3 - sizeof(ItemIdData)))
+		MAXALIGN(sizeof(GinPageOpaqueData))) / 6 - sizeof(ItemIdData)))
 
 /*
  * Access macros for non-leaf entry tuples
@@ -230,23 +232,60 @@ typedef signed char GinNullCategory;
 
 /*
  * Data (posting tree) pages
+ *
+ * Posting tree pages don't store regular tuples. Non-leaf pages contain
+ * PostingItems, which are pairs of ItemPointers and child block numbers,
+ * and leaf pages contain a compressed posting list, and a small "leaf-item"
+ * index to allow quick seeking into the compressed posting list.
+ *
+ * The compressed posting list is stored after the regular page header.
+ * Although we don't store regular tuples, pd_lower is used to indicate
+ * the end of the posting list. After that, free space follows. At the
+ * end of the page (before special space), the leaf-item index is stored.
+ * pd_upper points to that location. This layout is compatible with the
+ * "standard" heap and index page layout described in bufpage.h, so that
+ * we can e.g set buffer_std when writing WAL records:
+ *
+ * +----------------+-------------+-------------------+
+ * | PageHeaderData | right bound | compressed ...	  |
+ * +----------------+--+----------+-------------------+
+ * |  posting list ... |							  |
+ * +-------------------+------------------------------+
+ * |				   ^ pd_lower					  |
+ * |												  |
+ * |		  v pd_upper							  |
+ * +----------+---------------------+-----------------+
+ * |		  |	leaf-item index ... | "special space" |
+ * +----------+---------------------+-----------------+
+ *									^ pd_special
+ *
+ * In the special space is the GinPageOpaque struct.
  */
+#define GinDataLeafPageGetPostingList(page) \
+	(PageGetContents(page) + sizeof(ItemPointerData))
+#define GinDataLeafPageGetPostingListEnd(page) \
+	(page + ((PageHeader) page)->pd_lower)
+#define GinDataLeafPageGetPostingListSize(page) \
+	(((PageHeader) page)->pd_lower - MAXALIGN(SizeOfPageHeaderData) - sizeof(ItemPointerData))
+#define GinDataLeafPageSetPostingListSize(page, size) \
+	(((PageHeader) page)->pd_lower = (size) + MAXALIGN(SizeOfPageHeaderData) + sizeof(ItemPointerData))
+
+#define GinDataLeafPageGetFreeSpace(page) PageGetExactFreeSpace(page)
+
 #define GinDataPageGetRightBound(page)	((ItemPointer) PageGetContents(page))
 #define GinDataPageGetData(page)	\
 	(PageGetContents(page) + MAXALIGN(sizeof(ItemPointerData)))
 /* non-leaf pages contain PostingItems */
 #define GinDataPageGetPostingItem(page, i)	\
 	((PostingItem *) (GinDataPageGetData(page) + ((i)-1) * sizeof(PostingItem)))
-/* leaf pages contain ItemPointers */
-#define GinDataPageGetItemPointer(page, i)	\
+/* old uncompressed leaf pages contain ItemPointers */
+#define GinDataPageGetItemPointer(page, i)  \
 	((ItemPointer) (GinDataPageGetData(page) + ((i)-1) * sizeof(ItemPointerData)))
-#define GinSizeOfDataPageItem(page) \
-	(GinPageIsLeaf(page) ? sizeof(ItemPointerData) : sizeof(PostingItem))
 
-#define GinDataPageGetFreeSpace(page)	\
+#define GinNonLeafDataPageGetFreeSpace(page)	\
 	(BLCKSZ - MAXALIGN(SizeOfPageHeaderData) \
 	 - MAXALIGN(sizeof(ItemPointerData)) \
-	 - GinPageGetOpaque(page)->maxoff * GinSizeOfDataPageItem(page) \
+	 - GinPageGetOpaque(page)->maxoff * sizeof(PostingItem)	\
 	 - MAXALIGN(sizeof(GinPageOpaqueData)))
 
 #define GinMaxLeafDataItems \
@@ -255,6 +294,33 @@ typedef signed char GinNullCategory;
 	  MAXALIGN(sizeof(GinPageOpaqueData))) \
 	 / sizeof(ItemPointerData))
 
+#define MAX_COMPRESSED_ITEM_POINTER_SIZE 8
+
+/*
+ * Each item index claims that at offset 'pageOffset' previously read TID was
+ * iptr.
+ */
+typedef struct
+{
+	ItemPointerData iptr;
+	uint16 pageOffset;
+} GinDataLeafItemIndex;
+
+#define GinDataLeafIndexCount 32
+
+#define GinDataLeafMaxPostingListSize	\
+	(BLCKSZ - MAXALIGN(SizeOfPageHeaderData) \
+	 - sizeof(ItemPointerData) \
+	 - MAXALIGN(sizeof(GinPageOpaqueData)) \
+	 - MAXALIGN(sizeof(GinDataLeafItemIndex) * GinDataLeafIndexCount))
+
+#define GinDataPageFreeSpacePre(page, ptr) \
+	(((PageHeader) page)->pd_upper - ((ptr) - (page)))
+
+#define GinPageGetIndexes(page) \
+	((GinDataLeafItemIndex *)(page + ((PageHeader) page)->pd_upper))
+
+
 /*
  * List pages
  */
@@ -328,18 +394,21 @@ typedef struct ginxlogCreatePostingTree
 {
 	RelFileNode node;
 	BlockNumber blkno;
-	uint32		nitem;
-	/* follows list of heap's ItemPointer */
+	uint32		size;
+	/* A compressed posting list follows */
 } ginxlogCreatePostingTree;
 
 #define XLOG_GIN_INSERT  0x20
 
-typedef struct ginxlogInsert
+/*
+ * The format of the insertion record varies depending on the page type.
+ * ginxlogInsertCommon is the common part between all variants.
+ */
+typedef struct
 {
 	RelFileNode node;
 	BlockNumber blkno;
 	uint16		flags;		/* GIN_SPLIT_ISLEAF and/or GIN_SPLIT_ISDATA */
-	OffsetNumber offset;
 
 	/*
 	 * FOLLOWS:
@@ -358,17 +427,26 @@ typedef struct ginxlogInsert
 
 typedef struct
 {
+	OffsetNumber offset;
 	bool		isDelete;
 	IndexTupleData tuple;	/* variable length */
 } ginxlogInsertEntry;
 
 typedef struct
 {
-	OffsetNumber nitem;
-	ItemPointerData items[1]; /* variable length */
+	uint16		beginOffset;
+	uint16		newlen;
+	uint16		restOffset;
+
+	/* variable length new portion of the compressed posting list follows */
+	char		newdata[1];
 } ginxlogInsertDataLeaf;
 
-/* In an insert to an internal data page, the payload is a PostingItem */
+typedef struct
+{
+	OffsetNumber offset;
+	PostingItem newitem;
+} ginxlogInsertDataInternal;
 
 
 #define XLOG_GIN_SPLIT	0x30
@@ -403,12 +481,22 @@ typedef struct
 
 typedef struct
 {
+	uint16		separator;
+	uint16		nbytes;
+	ItemPointerData rightbound;
+
+	/* FOLLOWS: new compressed posting list to insert */
+	char		newdata[1];
+} ginxlogSplitDataLeaf;
+
+typedef struct
+{
 	OffsetNumber separator;
 	OffsetNumber nitem;
 	ItemPointerData rightbound;
 
-	/* FOLLOWS: array of ItemPointers (for leaf) or PostingItems (non-leaf) */
-} ginxlogSplitData;
+	/* FOLLOWS: array of PostingItems */
+} ginxlogSplitDataInternal;
 
 #define XLOG_GIN_VACUUM_PAGE	0x40
 
@@ -505,7 +593,8 @@ typedef struct GinBtreeStack
 {
 	BlockNumber blkno;
 	Buffer		buffer;
-	OffsetNumber off;
+	OffsetNumber off, pageOffset;
+	ItemPointerData iptr;
 	/* predictNumber contains predicted number of pages on current level */
 	uint32		predictNumber;
 	struct GinBtreeStack *parent;
@@ -523,8 +612,8 @@ typedef struct GinBtreeData
 
 	/* insert methods */
 	OffsetNumber (*findChildPtr) (GinBtree, Page, BlockNumber, OffsetNumber);
-	bool		(*placeToPage) (GinBtree, Buffer, OffsetNumber, void *, BlockNumber, XLogRecData **);
-	Page		(*splitPage) (GinBtree, Buffer, Buffer, OffsetNumber, void *, BlockNumber, XLogRecData **);
+	bool		(*placeToPage) (GinBtree, Buffer, GinBtreeStack *, void *, BlockNumber, XLogRecData **);
+	Page		(*splitPage) (GinBtree, Buffer, Buffer, GinBtreeStack *stack, void *, BlockNumber, XLogRecData **);
 	void	   *(*prepareDownlink) (GinBtree, Buffer);
 	void		(*fillRoot) (GinBtree, Page, BlockNumber, Page, BlockNumber, Page);
 
@@ -575,16 +664,17 @@ extern void ginInsertValue(GinBtree btree, GinBtreeStack *stack,
 			   void *insertdata, GinStatsData *buildStats);
 
 /* ginentrypage.c */
-extern IndexTuple GinFormTuple(GinState *ginstate,
-			 OffsetNumber attnum, Datum key, GinNullCategory category,
-			 ItemPointerData *ipd, uint32 nipd, bool errorTooBig);
-extern void GinShortenTuple(IndexTuple itup, uint32 nipd);
 extern void ginPrepareEntryScan(GinBtree btree, OffsetNumber attnum,
 					Datum key, GinNullCategory category,
 					GinState *ginstate);
 extern void ginEntryFillRoot(GinBtree btree, Page root, BlockNumber lblkno, Page lpage, BlockNumber rblkno, Page rpage);
+extern void ginReadTuple(GinState *ginstate, OffsetNumber attnum,
+	IndexTuple itup, ItemPointerData *ipd);
+extern ItemPointerData updateItemIndexes(Page page);
+extern void incrUpdateItemIndexes(Page page, int oldOffset, int newOffset);
 
 /* gindatapage.c */
+extern bool dataCompressLeafPage(Page page);
 extern BlockNumber createPostingTree(Relation index,
 				  ItemPointerData *items, uint32 nitems,
 				  GinStatsData *buildStats);
@@ -770,10 +860,77 @@ extern void ginInsertCleanup(GinState *ginstate,
 				 bool vac_delay, IndexBulkDeleteResult *stats);
 
 /* ginpostinglist.c */
+extern char *ginDataPageLeafWriteItemPointer(char *ptr, ItemPointer iptr, ItemPointer prev);
+extern int ginDataPageLeafGetItemPointerSize(ItemPointer iptr, ItemPointer prev);
 extern uint32 ginMergeItemPointers(ItemPointerData *dst,
 					 ItemPointerData *a, uint32 na,
 					 ItemPointerData *b, uint32 nb);
 
+typedef char *CompressedPostingList;
+
+/*
+ * Function for reading packed ItemPointers. Used in various .c files and
+ * have to be inline for being fast. When PG_USE_INLINE is not define
+ * we have only declaration in header, but function inself in ginpostinglist.c.
+ *
+ * Read next item pointer from leaf data page. Replaces current item pointer
+ * with the next one. Zero item pointer should be passed in order to read the
+ * first item pointer.
+ */
+#ifdef PG_USE_INLINE
+static inline CompressedPostingList
+ginDataPageLeafReadItemPointer(CompressedPostingList ptr, ItemPointer iptr)
+{
+	uint32		blockNumberIncr;
+	uint16		offset;
+	int			i;
+	uint8		v;
+	ItemPointerData prev = *iptr;
+
+	i = 0;
+	blockNumberIncr = 0;
+	do
+	{
+		v = *ptr;
+		ptr++;
+		blockNumberIncr |= (uint32) (v & (~HIGHBIT)) << i;
+		Assert(i < 28 || ((i == 28) && ((v & (~HIGHBIT)) < (1 << 4))));
+		i += 7;
+	}
+	while (IS_HIGHBIT_SET(v));
+
+	Assert((uint64)iptr->ip_blkid.bi_lo + ((uint64)iptr->ip_blkid.bi_hi << 16) +
+			(uint64)blockNumberIncr < ((uint64)1 << 32));
+
+	blockNumberIncr += iptr->ip_blkid.bi_lo + (iptr->ip_blkid.bi_hi << 16);
+
+	iptr->ip_blkid.bi_lo = blockNumberIncr & 0xFFFF;
+	iptr->ip_blkid.bi_hi = (blockNumberIncr >> 16) & 0xFFFF;
+
+	i = 0;
+	offset = 0;
+	do
+	{
+		v = *ptr;
+		ptr++;
+		offset |= (uint16) (v & (~HIGHBIT)) << i;
+		Assert(i < 14 || ((i == 14) && ((v & (~HIGHBIT)) < (1 << 2))));
+		i += 7;
+	} while(IS_HIGHBIT_SET(v));
+
+	Assert(OffsetNumberIsValid(offset));
+
+	iptr->ip_posid = offset;
+
+	Assert(blockNumberIncr > BlockIdGetBlockNumber(&prev.ip_blkid) ||
+		   offset > prev.ip_posid);
+
+	return ptr;
+}
+#else
+CompressedPostingList ginDataPageLeafReadItemPointer(CompressedPostingList ptr,
+															ItemPointer iptr);
+#endif   /* PG_USE_INLINE */
 
 /*
  * Merging the results of several gin scans compares item pointers a lot,
#68Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Heikki Linnakangas (#67)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 11/29/2013 11:41 AM, Heikki Linnakangas wrote:

On 11/28/2013 09:19 AM, Alexander Korotkov wrote:

On Wed, Nov 27, 2013 at 1:14 AM, Heikki Linnakangas
<hlinnakangas@vmware.com

wrote:

On 11/26/13 15:34, Alexander Korotkov wrote:

What's your plans about GIN now? I tried to rebase packed posting lists
with head. But I found that you've changed interface of placeToPage
function. That's conflicts with packed posting lists, because
dataPlaceToPageLeaf needs not only offset number to describe place to
insert item pointer. Do you like to commit rework of handling GIN
incomplete splits before?

Yeah, I'm planning to get back to this patch after committing the
incomplete splits patch. I think the refactoring of the WAL-logging
that I
did in that patch will simplify this patch, too. I'll take a look at
Michael's latest comments on the incomplete splits patch tomorrow, so I
should get back to this on Thursday or Friday.

Should I try to rebase this patch now or you plan to do it yourself? Some
changes like "void *insertdata" argument make me think you have some
particular plan to rebase this patch, but I didn't get it exactly.

Here's rebased version. I'll continue reviewing it now..

Another update. Fixes a bunch of bugs. Mostly introduced by me, but a
couple were present in your v16:

* When allocating the entry->list buffer in a scan, it must be large
enough for the max number of items that can fit on a compressed page,
whether the current page is compressed or not. That's because the same
buffer is reused on subsequent pages, which might be compressed.

* When splitting a leaf page during index creation, missed the trick
that's present in current master, to choose the split point so that left
page is packed as full as possible. I put that back, it makes
newly-built indexes somewhat smaller. (I wonder if we should leave some
free space for future updates. But that's a separate patch, let's keep
the current behavior in this patch)

I'll continue reviewing next week..

- Heikki

Attachments:

gin-packed-postinglists-18.patch.gzapplication/x-gzip; name=gin-packed-postinglists-18.patch.gzDownload
����R��kWG�0�������P#����;���5�$g2yX��@'B��-����o��n��Rp�s��5�T�]�v��^YYQ��"�?9���%�����O���y:z���������:��f����Uoc'�m�)�@]�����t�7���F%�I�&���V��H���O��"Q��<I�0���?W�0�_��Ou��������~�N��hG0|�'*-Tc�y|��3��$�`zu��w����C��&I^D��"�_�b����I<V��x��`��/u�~�����t��8��g�I���;���
��W�_?��z����b����0-&�U����y�[u9����q��m������0�����^g��@����L����Z�N�|�����F�b�'��M]��5�8�t�]cU$�8�'�Y%�Fx���x4��F�(qV�#�#M'E2<�m���?M)��]H��?���n�M�����_�:	z��:�WW�p�X���e<Q@XL�"^�,E�\Y?�������x�$q�o�y3LJG��g���a�����
�R���<�a�KBw������PpL�pP��bF|�R��i��?����������mG����K�|�[���:JG}�K�.�@��37���0���F��S}U�a�������6���:���y��4yr	����Hp@�bBw#�m�*}G�$��Y�L�u]���
\�d���`��V�,�60��f�"�o ��&REz>J����F�g�������j
�<��X����"R�tGbe0	)+�*�z�&���(�M����@�k����[��{[����1���%����ky_!��BCN�"R�O�g�M"w���h}�����t8���_N��d�|�8�{��1����ADBP�#�g-	.�m�`G}p^%����������2�I��a��^3ILG��Q���7r:�H���'x}�{_�=S�u��b�O��i� �M���o"�����	�����3��s����4&sn�P$}����z$V�0�	��e�pc_�T.3���������kdctP�$�S��GD���P�$�Qbx���5l�1X�Y*����x��	�'��.�$�O�x��������x�F�D
2�nd���]��������i����=	PA�����$�I�� �x�f������z��hL��uN��3r�NG/�I���o�x�'��C�?K��ttv��r�	w���;�sO������cG��YE2�'�gF?�h��_�5M���S�\���Qv�������B��1�,��xrz����QB��}�w���7���1���g���#I����p�!r���]d �b��h�+�H�/t�Uu@8�#3mF���|z��J������B��q���%T�M��w
N����?=2��q��/��*�<�wv����F&�:�����CeJ-�i���
���9C��L2�#��%3 ��]�;s�Ex6��e$�^Cnc�Sp�&�a��'�(��7�b�'�Q���3����T�1z����7��1���c��k��o������:c��O[��1Q�����7D�Bm��X���4��e�@�s�G�p]�p�G'��}940H#z���|W�9[X�7�E�wb���H��y�\R��6z<�9���x�e�y�tI�K[�6��p�����Z�gg�]����L��$�kD����NR�X�y�����p:1��fG�S�E6�Os��rIL��
���0>H��@�$cp!��d���QH�(0���H�t����[�p;b|6�����
���]��6��&N���
�(���"������-`0��@�Sd�5���;x<OS�i7e:�����:��t.��`��[��V7A
������~������M�����+��q�������<n�x��V7��90�����r���������B����\1���^����H���CO/�pHd������:9<������o?|<8::x���1��q�[�����t}��8�L���-i�_�������G)L�}69���6��6�����!|qX�0{oa�����E�XmW2�ut���k60(o?�P��CK�lJ�E#���!v�rz���7��z���mRRuf}���>du&�0�.��bVe��1�l�#�����a<���p�r�8c�R0d+�)E����;if"�x:�4V�P�j�j�	
Q�S��a��J.b����;dQ�������t��p�6���t���K������_��=���0	u�(V�v��=��7���:���_VW������9��[!6��D��f�)4��UZPe@�=`�@����
D �B�
��ym�&��4d"�R\J�:��p��������C�(t��"B[�$�3bjA�8~C�S�7�e:�|,��
��N��g��v��wcs/������(���o��������������J����s	�rl�iy�n@q�����<�J���/��9KQ\E���]'���f��1<E��*�y�`Y-?�x|�������������Z�}��'Oy��g��Z�Z{���9!�'�1����m��MN���2���q|3��A��`j��L�������[x����^�����MN��� �Z$�3��(���y�B.��6�" O�P���3<����6�p��a����\��}^�;��m����N2�>
���:B���=b�g��?�wt�%o��&�����D����G������!�f �D����/�<*49]��t�+�gt&p�2:�����mnl���-��KK���`#si	x�<�&�sh���7ohC��w/+���{�����w�5��r�C�����0�S������?]3����\��f�hl��Fp�a��f/c�
D���'7�1�~��a�X�bx��D@��d�>�)nP��DQ�����b��*�L"��4��,-U�C}s#���3��|�4!���Z����k���ri�d;/l|d���D��|�����H.�cBB�qr9�j�F�4��B+�m!w�%��l��1$�{~a��b��Y&i�x]��+���.��~�L�!q���dP@�N�	��6w�H�-���t:�W=���\����>�H9�~���G����_gd�����wi).k��B+y�B��x��~���a�=��H[Q�[:���T�"Nz,2��_O�	M��`w=����% �������-��A��F����������h8FX��&��#�sm�G��|�����o����9��(�>r���U�u5�i�8"�w=����E$	����T���jX���P��1)�jf���@l�|1�i:��V��<{�l����/��?�J� n�^<d�_��N�yz�
6�T[��L|y�i���0��eZ���e:*1�O�dh&�����O:I�����}qR$<+��I~�h���x���������o�b~_]e���p^m�$�'�����"��[&�/|�����L��9x�J~�ZD�\�-�{rVh��pC'����.��������Iacd+m��2d?����B���@}:�\��P50��#b�8���*�Q����E[?�c�/+���
�����&,=�������@�}���7��� ��bPd�{D�vR���H9���>��C��}V����4���@��mc$�>���!%=���x�##S3�,:��!������x����4#������$��Qk�]k6��,x�&(��s	�n��f��f�/%��B��Q��6"=Rl//��<%��W��1�������G%*�U8�I����$O�����,��<{���;$�!ON����1b��%�A���Po{8�������P���Tx8v��jE6�+�A�������<�{cg8��{-Z������c�K��Lr��s�3��>z��O_��
�Y��Sm`�;��Z��2?��s���]�&-&��,h^������*B��@�{���q=/*&�`���8���B��p�<��iD�t�6�2��r+V�i����}��okH�J;<�%:�Y���	�Na����������l3n��I�������r����a{�	�@	V��P}����H�@D��#�?�c0�;��V/�!�9TGUv"\�\g�E�a��!��I
�e�/���H�|�(y��� ������P�KZ��o���M!����7n6\��FCGZ��!���������S���3�.���:��x�p:3�R}�w�p6����Nj�^9C��5�9�Zt`���X��d�4����hsK�;� �~K�#_�~�����=��/�K �sSg+r	t�V7��U�-�L���V��F����u���
�V�1��83d4{;QO�����9���v����x�����!�	F����0m��uZV�	'K���}V��9���>�"�k�dv�����}��������}�DK+op���[��Xg��N���mP�<��������Z���w���-6D������wg4Mw��)K��3�L����25d=��gS9�=�������6���iW�2aXI���=��%�	zmtF�hR����4 	$"��v8�<��V��e�
u�nY������\/����,���0���'��f�i*��z���\���@�D�FmA:[����3tsW9��H�U	���f������lE�%�S��t��#&��3��,���H}"��r��F\s� �cxo�����j=���Z.�N���a�$kY�����12w���m�B��5zNp����O\��/My�����D�B4���omX�x�&9������"�%G]
z&��B���.���z��rx��O�q�����Vo{^d�����c~�C�q���B4�K|��g�� �����n3Y���?3�S �����������"��� AG��Q��aL��vD(���r;\V��2�"]1��.���������v�mi1�w=�wXT3��A1%b���{���N�}��Zg����l��%�L_cFht����66��]M�����q5�/�3�{�5���J�x��<xw���/�=xU{���m�	A�����-N[����#��M�}9W���`E���-��������C��H��Jr<7��E�c��Q�����gba�����r)Bl�aq0����}��,���kOuK]1T�j�VV,����P,��d�L�sr��M���S�V?u�2�����l���e6[��y�<��k�t�g#:���?�StH��AF��OK����1,Mv]i���wC��y������p���GW'D��%� ��0��d�pX8���N����J�!
X5u�������?��|��$�sx�yN���p�N,���:�0P���o��n���`�M�,������Jq�������.�p�r(7�s��&��������P�1���Yr�*�w
��q�{<�T;��e&et-��3����Oo���I�/��8�DE5"*h��XGJ9p��M�`L��aJ,���4w��.���h�%LA��	�lm�#�N�4���*}����:���+r1�SH��sM���NX�c�${��pb�k++����LC��M�=�hL�X&���,���w�s���1mOEs��������=wl�7�������uh_%�0�H��Zo����b�O$�$�������k�}�_��V�O��.2�R��g&]j��^���P���~C�9�����#A��r�J���������]�Ro�=��e������\g�#?��d���?��� �����t���G�A��}��&��V���g}&��z���X�h0Ke�:@!$8�L�����������������$\�)|\����P��J<�_�`��<�J~j�G�0U��&��o����"�G�8bs6��A��L��o�X-���V�������#��`W��N0�Q2�O"\�09�\����-���	!�a[����,&FU��z.F��/�eu�rI1&i���������V����Lh��Y�G��������iI�������V�p���O������~��g+4���������L����PA8��, y�'��)��qvf�7����n{��m�_��J��'�����������U�<�y.;���� ��m������:z������Wx7+��-�L�7��'c�����������O�P��]YS������6�R���\����bJz� |��ey��x^��;2@+�Y30Y�
�m?���*�&�2,���@W��-{�����9^y�������k����v���+0:����c��Y}�U�����J!��(�5$*�^��dh���V7�|�{[(�K<K�����$}�W����.V4��	*�hN�x_'^:���K2f*i'��L2�q��������-��>�(/�Q6�F&g���t�Ve���~Z|Gc=Y�36����{RF@�/���z������]u���P}t��E��}�|j\�g_�A�1{�m(�z'P�����!�7]3�� ��,�2�f�U�"����}�Y�%7;��|>�1-s��E���D���G�#��K$VjD��%��S~��+�MY	/�zW�I�W�9K��o��|���~�
��[���k9P�Gz�h�7�S�i�MN+�x��mS�F�`��W�.�63
fk��J3�p�W��7�5��z0GD���$<q�Y�{��9��O���E���Ir7�U*��`��.F)�W���lu����yR`�)����@������FG\Q���u���������b���$�~8��8��u'v�D����O�|'=m��_��0>���������G���R��������R�^H�M��li��4�{uo��>����8k��:�;��@A*gy�d*v��f ���I,��'�����8�.z����a[���cI�k�'q���"��!w�x:1	%G>�_` 7�lr�H _��@4�O�&p
��[9�rO���~E�%x#Pqe���U���:�%��i�S�%�"����()�KC�>q�0���u��+��&��
�[�x!x�TS
�#TN��f���T/�M��t�`��S<L�g���n��A��c�)����K(����2\S�Y�8r9'��+��pP}@	��c���3$������\K��^������x����;��}��I�����~�aZ�#�uM������'e-p*�T���3Z�(�g�P��96�����S�{��c��I�wt��}Wf7�X���y��Ix�����9������Y��%���'oI��z���k�\&;$�{��[Yb� dZ7���<5X�E����)8I$�fN�������O�L$���+��������Q}Q�����Wrv��X����F������D����9&�Q�;�UD-�w��
��a��Gf+�q��3�`��"cH�&:��`0L8��|S$n�=b�U=��sv�IQDd9&�6�I��Q�ttf�CI�M�X��l|�ec��Y,��Nt��UU4Ij��Q6���5'��k��+CDg�Y8��"���p2��Uz�'��q��c4G�����{�7���6E��b��{d�qQ�t��!`�G]�<�_8��6a������5����
�s?���-o����c�����M
O2��m�#�z��W&����~^	 Jl�e����Tn��k�o����d�����BLTe�K�zOf���x�95t1���nyL����o��Q�]�I�Ix����)�B��8�����	��XL�c/gXki�B�KF����8M��r���_���
�rP\|�w�tF�"A�O���]��R�Z�2��G���|���sE�)H�����z
�x*h>G�[Q�������v�T��m2����UH�q1���,;�H5�s�-g
1���{�9�����(������V��Asz2��Fb���������gs�g�YO4�+
h)V���ct�d��O��A�g0��D�+,�Qb��������dB���LR� �������������?F��s���8T���.��Fy�X�lp,]������A�7���O��ej��L��,G�PP�Q�V�|��yX������S`���V�[qtpC���I�i���=c�1��x$��HC�&��w�<�?PW����I�}��#Op8�G����N��Z�����	v�?A�^�N:%�MiiK�h�M�l8�����|B`�O��AG�������)h��y��4�?f�p3_������w(���8���w5r��i��"b �X�|��:>6K$d�:�������y�������#~�M"yo���	m��S6Y��N��R����~�����
�����i����a���)���K��Z�D��3,ZGt�-����D*�S�rHg��M�������4�z��r�i
��@��:���GH%��/lX�`�Umi�.�X�C���YV��"�	='���ON�������'��;>�xrt���y���w���2
iG?���Y���$�Y6@nm���r�gpr���w���w��T��iMw�wi�%��;���7M�Q#���l���a���,���V�f��}9���]zp����O��2�
_g+�O����-r��V$W��/����\T��h���sP�5�� �����S���8����R����gDW4����V�f
����\�K3�m�L��f��&�f<�aE2���{"���S����g���++��=E�nOGR'��]&�z0zZ�5�zu���a��K{�>7��Y�4W�����3����h�<����mGac{3�7L�����aL:��"%��v+ ������N.U�pT�f�,��z��V��V^�Zm���OL���JD%������Ez%2�fF�6_��HE�����u�u��O����=��^M�'�Ei�=O�]�����Iu�D��(:�q\h��7�1G�.)=j���������D���t�h�`Mp��s�h���"��ceS)������(4p���UV�G�M�
�m�Y�J�au��d)tQkU��<�
t/��?a�i��Xn�,g��f��i�/L�D�^��|��d��bp9��#Y��?�������B��)���z�u���)E�#=U���xL����%f���:�������*��^�z�,I��2��pk�*|)W�%���	P�9a}���#)�]
 ��>�J�He�n�@a;���t�\\T����x��X������@[�Y�`x��u��da���������h�eT��X�)���p���n���S��O������(?6��8w���u�pc�������R'�d5����y��]V�`r$��H�-�H*�<���W��d�r@,��.i�=��IG��w�^HG�bR���Yz]
�����#A7��Glh"�f�����v*������OR�eg$����L�
N0��W���:a��@�	C��R�+�Or��ZO4�����0z6�����*
�&�l���72���Z<��������cI����m�7cE����Z�X�*���J\=.�J"Y��J����^3{��U������;������S��is��p�e%T:�
�Zu���U9�����%��V@�s<��f5"�DZ7�j���F2�O��Xr����nN�Is�Y�(R4Z��>�1�M2�����Zg�&�BF��_Y�w�����E��1��?���pF��vP;|�=����O���.m:��O'�k�#�?�0q6~���L+�r�������s�J�&�^w\Yc9?�1�����Ye�����)�
H�FN�Upev��EE@L�xvKu]|��<��:���:����X� \�"�;����:"'I~N�����
aV����M������8I�=��pX����R���=�Cq����RIL����)����z�}L��G�������%U�n��53.�u���A��A�JP���&��itfi�kt�4N�g��oN�	� ���S��(���1��^_)����
��.��Ef���R����,��v�16w��K�3�:h�;|����#�><��;���HV4g��9���;����<+�;+�7#O�N���P����}CJ~����
$���A���D���_�)�:v{Sv���=�����\"� �Z������&�h2+W%�X��evK����4�s���cvt/�0`�������$��Y�vh�B�3w�C�v���Y���K����1+�����id��!���{����U�t^��y5)���)��o-)�X�9s�_��E�NOy2L�P3~6��Ffg<��L�d<���
��T
0[�U��(��`��7�j4M�8����=J�����R=��uj-�:����������������cf��<'3�/O���rf+%����"���i�.��`T"����k�}k�?^5�@B���E�q�.3�r-���<��]�i�&�r+[�U�0��J�D!?��]�����O������
9�E$B�j	�X�N`����4�7 ���'����j�L��P������O�Y���aB�k�_�~����F������/�V,kE��=��>g�����l#@+:t������-��'��hf�p-zB^%�a�I��m��U��5Z9�kF�:�=��N{���v�\N��2�87I���O�(t�=��o���O�vqG?����l��^�2��:<�]���2LW ��]�-���E�Mx6q7��(�����bw�cN�3`Z�W��,���*�A���X���������D��tR��X�����KX�hm1s����7i����� �|a��e���k����f3+gc�H�;b���B���N�K��E�"�'|�W�g�m] �t�TD�)�L���t��P�a1���S��f�*���F(/��8��Y�J�k�Au������I��f�����l�&cvId�E��v�6�����`sV�T@�!����Y��@]�@o������P�R��d�-�������q<�+^����u���������$�Z���m_��g��Q 	���]&�d�P!I��|�C8"�9%}Kv7	 �o��&~�8���8�R%l�����9@9K)3
2�iB��/Z|y6��h�����`�f��\j<n)��;��%�+�sb6_����|�:eLQ�������10�7�0������q��B��Lq:�FyfZNmG�$~%�"����x�(�B�0s}��9�G�|�c�V;��"d�d�m������v�d�jb�c�����s�a*")�X�7����Q`?��<�as����1A�x��Y��w��Vw{�����kmW������~\��'�kbyO�?%!��'�b����I>�����j�6+eF����dKw�/4�����R�;�Y��k����o�"/K�b��5����xw���
#��<�u�(-��������P������2���
�Y���d%��N'���JV>:��	��s���	�P*?����8^j�34�����6����eg*7���F��a���d�cI�[���	k�����{�s���V>�9�P����B��l���ls���s&���M���:6�W)��b)a1�B�L��.�)�~i��������u��������]A���4/������/_�
�&7&n���u��^������BZ��x��W��
V��p�yy���+�
x���@+�G��0^Y]7��GT��b���8?�G��d���-H�&
]�K�&�[�x cn�8a�������`H�GQgA2_/��QgC�|3��M)��3$�6<�T�cW�L��8�����x�a��VpO��������y ���L�*>&�F�M/�����n����8��#�{�PZ9��8���2�u����O_viq�������[ra������ik.����
c��jvm����l:��_��5X��,�������R`"������1�U����,�����FKF���v�7��_/����+���^D�z�����nn�w�����������g,gy�	�$~vwP�����,({��XX^���]�(��f`@C{Q�-�Rt�:��-:p���_/�a�.��G���d�w\��V�6��~+^��WG����������a0�+�#.�0��K_�;���/TkQw�����
�[��\�`����r�w�c��|���c	�Uv�9_�	E2d���������jkg3���S�;F�HN��2�,jS��^o���7wt���%a���	������"�ON���0��#q��`������Z���2�;��	"��4�*��4x8jg�RI��O�:-���~p��Y�+I����gH���!@7_�~
+"k�! Hr�+�Y/�����y��*_��y������F��������vk
�)����UCt�Ye9h}�*�:>�G�1Mr�k0���y���N
�'�����Kc8�M����x�|�llB3	}�c����_�_�t��{���d�^jv"�_u���pH���6�� N�lWkNa�����zR��\��"�'_a�s���kP�����������*-�]zE_Q��������-%��>`�$�eJMj ��E���m�����"oV���^���{[�FqmA�cL��1��.$��I���YS�hc]��;�}���B~��"[���e��z@�e�����O��b7ES�I=�n��B����
N�m:1�o����,iy�\�ZC����-�����4������O����u��w�D����T�SX!J�x��,���v�����:�c���x�A|��E��;��O8g8��+T��Inx���^�;y�����L��9x��]/���:�Y�j
��(�i�"�W�������v���Fo]�VC ����k�ni��3��F���2"9�\��<����}����M�u��%�*�ns��l��[�[$�"��I���Yy�t�
](Y�d��5���>��Gm�����k������4:���$���/���0;k��o��|Q^��[Z�=��JJu����`�~O�.&�����Un}#U�\]��&�,�l�]�T�-j�.��YeQY[�����+�����S<_�Yk}|{����%�����x����������������-������w�GZ�T`i����I��S}�z!X���a���9��e{n���:U��n�*~U�E�?)��Lk�����	��dUb�����
��H5^�m�[���"6O�������^<�M���'�<���F��t��'y24�u�+���+/<�,w����-9$���Z�
�:=���.�I�Y#��Rc���QLS���XI�����9���`����(�;�#���^=st�.��~
��8_�=�Rm�����X����������$��
�%����	��T�D��Lw5��k	5~��ol�Du`w�\%C�@"@�J��)�+!��t:���w��UZ��)U���$���7�������0�����3�,X	�����-9���R�5���)�0-�)�p2I��$S�(�C���!W�UXg��*���K��t�#��1�E����e\���_���Z��&���0.�)��u���A=m��D���3�f�;'v,��	������e��9|z��My*�x2M/#4mz�x@���t8|]�3D	�E��rb������!�Up/��4��������.�q����3���.��4�S��dd�5�xi�
}�2���WN/GR",R���j�(Z�c��>�F��l�����5�� +$9,���������~~|��=����gm��;���Io����e��]��)� �{�U���eF���?N������H�~����H�0D��Y�n/@�K,������J.Q��T1�N��iy(*�a�j��Q
���R��|���SVk{_yk(�=s��]��'\U�g��o���2>+���2B#9pnY$*��g����/�SkB��<�����m���H��).B�OY�=�cv��$R��f}C��bg.JZ"�cjS��$��D	�(��Dod$��K��tr���6������ �xH�������6�]�����&te.������M2y��"��]�l)S&m�7]���_��<���>�����pGw1@@�kxCoM�����nt��t�lD��`4�k�_><T��K��D��H^
J�N�m|���e��;3�5X��}�<���������w/~"�����G�JXr��nnFX��=&\�'c�nR�M��`CDm������<|�����'o���������K��Z_����y��a�N1'?�8�u�@��36c�>�k���m��������0���a�h���]J@q�Z�g�_���.�����:��+���j�,�8H��� `0Y4���T�����c��Z��Hc�N��},d�o���=I�S`^)6��D�L��pB7�*8]�"
R}��
OG6���7����B��5{��%e����� ��mvT��Np��R����3�0r#��]��`{���/`y&qA^����=U�]���j��O�a�T��Y
�����gRh{�B�k_^�PA�2�Hxd��j�b���Ha�x���q�]�����j$�;PY��1X�^�P;�����k�{��v�,���R!�
h6�� �N���[;����z���I<��.�++�R���	�aD�x��������8"��6A���b��#�2>]�MF,W�cT|>����7B���3pH��������mi��L���y�k���G�_��������JW�.s�%,7r� �1�p]|HW�m�i=�41��eZ���:�U4Td�u�b��0]�b�x�u�e���s�uV3Fa�]��e$8}��p��Z���0k��J�2�2�0�Fb�����W����Lst��;���,S�G�j��7*S�oW�0f<�9���U����r�]H�%
2�bJx�E���qso#�Z����\���8���D��=%JIpK�{�
��i�24�g��v-�`%��S�)����������$}2c�����$J�0p|�#qd���sH�6v6�
�$�U&�`���p�@��W9��+ko-��y������ao-��3n��q��=,��+�"�iC����ezXJf�f'%�-\����di�@�Pb����v���m�mF��5k�\�uxK�^lCZ�L���V*�a$l�����n�Z�(jUc\�ks3����py��z�5���k/�	�����S�+�T���/k���
���j��.I�/7�%X!��o}'���s��W����g�?���8��i���_�4]���h��th�3 ��"�;�_f��P"��N�d�Lb�W��Ar���;|x�����������0�������}�Ix�{H�����.}���}�+�dln�a����
��If4��h�*E�l���	+r�y�I�6������������A�0�u�N@�7.�w6�I���M��kWlr�mr��m��������3�
�����M���/��>����n���Y`�Y�(|��"���$�5���<��DA�1U�������V#�����x����g*����x�C��������:|�.�L��/9�g�GY�z�ZT������*-Xkj),PK��'��'<�]�'�Xo;�k�o��[�*�)[E��D�l��C|���X�od1�0�*"���2�G�����r�������ox��]��,�@y�t��1��`�;����P�8��
����?b<��J@��	�I?=K�6������'���YA�1::y��)3e�����6�6��p'A�t��T�nI3(��yY�jvBJ�����[���J�.���U`�Rczb=U+��pRDG�?;����N����`�ODV���7�����hk��g�a�1_��O��y2�y�D$�V!\��E{�J��C������Q}��G�X�vI���,�q�'����::d)����aZ���%��D���q4gyb<����J?J2�qD����cx�����R����g#���*�O��
��\{,�}���>���elr!���s�`9�:�Y2������04s���i�F��S8�y8/"��-���h���[\�������QK_�f�
"�����-�Z��cAI��P�?1�,�=HR�������v]W'�.v*���o/hM.%�r�H��A��o�nr��>&�T��^�J��U�5,��M��E��/2�N[�E����JoG�
��&A���#�G}�_��Q�=�m�E=��F��
d�������~#>M�>��;���8d������&^39���>�"69����I<�j�h������w��2[f�U�3��._��>c��l�7�Y�A��!A��'�J5�J����H*Ln�u��Y���d��T&�J�i����6�B#2��
��)��;s�5�@6y��%&L��_b	���1�3��A������+��:�}���5���"l�y��/��]���w�.����]
Q����hcsM���Z��[��pUo���%P���U������jL�*�8���������c����to!o*TuW>o����M�U�.T�'H]=g01t[������Yu�Hz�� /���AU��v���c��8q>1,�7l���E�{�w�k���j7F���v�(C�����J9K�����~���LR�K��(�N�h�GB������p��H��ir�qF�l�n�@��	ws7����.M{8���L�(�P+�C.�d�w���K��M�����o����kY���$3t0���t�.�K�����4'm'�D��4����,�<��w\�%�8wM���H�5���[����@�����@��gi���#yf���t3?�{�����MB;�w�Zt�ZW��mm:T��1�~bUb{����X
��#}�yK'���.��[�U>1���9�+���h��N��:�1��N�cJ��PRo�#�������MU�A�K:���+��M����O?}�#Pt/E;����6 ��Cy%�.�s�QLO����,!+0����@@�N|�R�t������V�vAg"��l��Z�[���e��{�?����7����kY����wG	z�J���� ��Y'�y�������m��vf>��f[�-��{-���SV��5���\�;Y��]�	��uW���QZ\$��S����~��[����/�W`g.~��+�a�IV�HBb��
a��0xk{+��q��^�'���Lo�m�|�5
eu�iNy��D�"��,LhJ���7,���j��jnPbKxAS���~�L�,�exEG��~O���8;���r{���lN�no�E������nE�YUj����hUw
8����5~9�8's[V���������]�����wU�Fs�_���W���nx����\����|�/;�7p�0
�:��H;GOn�� 9S�_�������u��M9?3Y��f����s������)YW���uu�9YW�>�uu�5YW���uu�7YW���u���T������!g�o���VsvC6!�x������\���Z�shZ5>�?����8��
�4���*�Q
^�{+�icl�Hy�_1��^��u�2Fm��}e��c����e��[��N0��mBG���5
i����el� ��
��-��CJ�`DgL�3/mXg^�0'@�-!/�s*��O�u%�	z�Y�;�hA)�,,�T��k�g~)=2rD&�F����D�\��_+|-��d��.�JO�t{��X���Z��Z�2@��1w�R�?��,��l���-`t_F�C���/2���zMF�k�5�#�J������^����e/+�KXg�0�IB��#�����|��{�`���+1�J�m�*dq1�����;s}��� !i�������Da�;�0�M��Vsq@U�P��70�M�a��F�+�+�;�7�q��L���'�S��DF�����9�e�zX��B�p`�����H;9O&'�i;�D��$Uj
�-�����=��6����Q.a"<��KYnq`/�\W
��Ebu)�5Qr�z���
��6�������;IMa�Y��/q��"��t�f��M�J�����e:[�2��������I~����D���$]���v�|�H�Z���P��y0.��D%���% ��pZ)9��]z�&)���B��&�u2���t%�$����C��%D�����?f�D���mE��Fkz��P�����+�C��bT���>AB��g���hg�U;0�������,��,��s`���-�r���Vw�����\cH�� �w\����5���m�E��+����0���Epg���8�9���w:���F{[�}��Wm�|�
.��r�1	�����bU��
�U��\��U@��p+�an���'����H���t'Y�4�`��))�4�)���^���_�# c�@�S�z_��|������ot���lN���T+p��U��a��d!���Kr���^B�����Xx��8'�i��'�GF�������
p$q��V�
O��vw}������av�K4�e�KTl�����
��@}�m��a�)(�	�/`���Q��BP�������Z�z��j2���G����'����~�[5��(��#�KlT.��r�B�<A��$��u�*_�WM�iA���d1�j,=
��Sp�-Y�D���~|���hc��<���L�So�0)O�G�KKW�9������9J�n����'	����*Cx��5q��*�]����7����m|r:�-���'��j>W>�H�����v[u5��j�����M^�	j�t��~��?|��w��^U�+d��P�*t�KK�$��7�US���o�;���F0o������^Q��J�y����qf���%��^3�$=�C�A�{�xp-YqD	S)nM��Vl���FU������$��J�|���U������)y���'�����'nN�z����9������{Q7e��L�g�:�^�������$5������U���1�
���A{���&i����/�`j5��=�����{�1�����
�d�V���U������U��*���[I!�	����[<Z�6`�����Kw�]6���!�%�[b��l7C���jPL��	���Pr�B[��.<q�{2A�$y�.�G�	9 I��b�`�#�x��"Lg����������N��9|w��'*�^��D�nt)�0;�����*JM����J��*����(O��(w�,���z[���#��o������j5�D���.Z[h�}
����vU����6���;�$ ���D������G&��mo��o���K�G����Qh����s�'�c���2�\��
~��}.�T�����c�!� ���x�4�����'��9x��~V�����k�z�_=�o����9#U�J+%������C!o}\<����[�|���a���^�g
�O��I��y��M�@�`��7�������VLa���A�_���Y�8�3�>E�<cG���T9�P�I��8����60����xt�fCW�]A;7��O��=���u�.���0�09����YL����r��8���SgW������\X�f����z��������H�"��-K;��K����vJ������A�'����R��o���g��A��j}�U*��Z]\�(�����To�����Mw�U�*��vU�
H��Y*
umD���q,�������{�9+g)��Wn��d4��zUt��{1��;H/���8a�1/2����$�'�,H�zND���%'����-mb<c�'UKC-�����<��0����l��jjo�pWO��RCJ��%���d����WN�	�9�E:���b�h#���j�-L��S�{((7V�Q�2��P&�\7iay4��I��!N(�5���j_&\����n����x�����u�:���R4��d�Q����y������DQ�K>�<�������h��KV�x��1�#�^�S%������]-$��
M��?{����6�u����2�@&v$���4�����������$��o��
���A�_�������X����c4�8+�0�V��,K�K�Pr�����|��f��eH-.6�,<��XA�����;f/5\���1|J�(�E�|6X<���G���e%�h�5���R3H1wt����z���-8N	#$���hq�F�s�����"'=�������>�f������@;�`�=��8����.���HJN��������	�����o�<�Bau���n8��~�h���J��<��ma�C����%���8�U8i���nJ�e�D[��r�M���^O���Ae�a��(��H���c�d�:���hW^oIY�>@I�I�n��S���A7��od�;��T:����}��w��_]oL��[�����F���q��H`��E����~��w�	?���!E�a �����)kT��C!�$T���\� bY����!!������:sn�����k|������;�0O�74�0[m��� W��:P���o��t������^��=�������Gr�v���00	D���tb,z�_*���:s�����p(�>�_}������%9��_���(���r�B������|�|u����K�U��{5�N��w�"�B�<a
^���l*<�8;��S��*J/��9!���-�\���P������;�s�4A������p
�E�G��c����������@��r �Xs�w��]���5xU���Wp��_����L��$��<��(�q���X�ze��{��-�G����@�/�����|�q�����|oq����_+�����bC}���
��_��h��-�)��d�yq��i������.�����`0a�����"��Y���j�`�@U�"x�����\[���T	I�G��*�F��T��!����I�mQI5

I�^^H��*��:�b�&$u����I�G4'$�<��������r�2C�m�Y�~��x�@��V!GL��� ����Eh����i�:?B[-���kftU3km	��v�^O������h"0/]�����}�UI�����#|����fp������r�&��w'?7v�r��LS)������$�m
����&��pf�I�<�.��7�9=M�-'�]�[��������t^��~"Q��� if{�Kn�x`�Y�W�$������"9�z�i%����A;#����[=�p@�Y3����f��X�}n���R'	.-0'zP����9|O�r����3�6g��P����a��ff&VST���{���l���d����E��AB��x�I���l:1���I[]]5�:���/?����{G��?���H�K/���k��&��,�<��,�/�f/F;3�Q$:%�(��i�9��}��o�\2$�L���GN��J�i��-�T�z�����:���6�i2D-���>M�$�)��AS��4�C�#E ���1z�jS��lEX1u������J6H�*��v�hw�$-La[W�������@���X_V�4}�m�(���=���Y�]����[��v�l���@.<W ����.~��g���L�C4�SQx������0/h�)�+��,s2C�ER}����U-?���i[������dv+X�#��q���Y8��D	^,��Gy�����E�##Ij,rT�`�h$0��l�hj##H�+���8�u*����H!�E�r���p������Pj}����cx>)�s�F�z"����,�iQ�[hJ��D�������O��GV����-��=	�m%wr<8����v��b59���<$�����Ueq���+�U~s-U3D����R���	�?t���AL�>�����==�!�r}m�����]�������AY�]Q�[6a���k�i��er�d' �x��yN�����|[W%si�".���\��W�)P���'����?c�z�k5�]y��{�m��@%,Bp�����v�M��w����(�1���_Z.R$S�Ft����Z�X�Qr9�����y�v�����mnl����F�[��I�q��*�0��>����K9�14�n�:��Q�B�P��/��3l�����gD�+����E;�k�����U�}9������D��gGY���Y����6�����wJT�J~�c��2�tIJ!��5���������l`.
��FH���+�0���Q�����[��1�
p�����7����^��&���$F��)�������������09
X�����$
o��Z/�]�s��tD�eg��7KfH3�5$��rw�^g��K���I��+j-
���EX�[��\-�k��fu1�_�c�ms�k��B��*"IIz���{��=�r��B!H�6v������^i��+?�)yJ�����h j�5y����������G)�(��>.�O[u��T]3��+�*;x��*�����8_�1��GW�.��8�����IF�9��BM�{�1���G*qYo�~x8��m�O�����'�r%.3JM~�P�r�:g?�'U����fuT�""�3qGr�^:�q
F!�a������j���7L�����S����2����n�Io})�/����A������-�6�K�P�:q����3 ����cT<4:�f��bg7���gB�"Q;:�����g���p?���?&}���Q���,��@������8��r�9�B�XO�'��E[���2v�=}%��w���#�-B��\��E9���?)�jSk4�guv�������)x	:o�h������j�
8�������p�N�t�[3������3�����+��\���]<��3�U~�-���i�h*���$���Y�����G Jq�x�n;�#��^�'��1��J|��v������j�hV4<,n���E"U���nCp�YR������)��n3ZOe�Y����p�b[���AG��Fd02�������qp���5�t��?�i��B�����f�v#e|����.����^�y�
S����;����^���H�!]:e�]/_�I�����������TM����}�����`�r���+Rs��ks�A7 �I�1�_�U���h.��y����y�I�������t�R�1��a������u�������O���o�
c��E���@
��o���R��!Q�U���D�����#��>����w�#FY����$�����Ft�i���L���]���M���$��8*��W��T[6��nJK�X������P�D����nOp�ZQ��BzqY���`/w�G��D%�RVD3��N)�G�_�8oFS�Yu�c�Qe?fqT���L�>�j{#��|�T/�z�cpo]�H7��J<W�C���2-���F��t9��;������I��n������*���x�%3M�&l@����!�HElsKL��jI|�b���x���o��9���*}�7��9Y�:�yB,�zo���TY������>;���zD��������'�G(�x�eb�x��2��&��������E:|�o�8�f�V��c���.��g�����K#�$x��M���{���A��-��=_u�7�g����j�U����������5�,XB�L�
�r�q	���!W%��!�������3�$a!�X�h���n&��ev��iU�i6��Z��.�q�����m��(,#�8��I�7��A!\*���:�mD����
�������
a��v����R����������!U�]����hC��7x����h���;���
.��uvEw^�{p���z�Z�����o8n��:C<�����yf	�a��ol@��fg7�X7:���sM��JR&PA	���'����H����4$-dnh{ ,
9=��=_*��{�����=�}y?�K�_2
r���������/~���N���o=)'V�Ix�;@�|-�YMu�fK�CQV3�I�Q�\���f~�|	l�� ;��Nrus����
'X��-
��ss�g�s���Js��]o�����=�fY�J��g6��������_j�~m����5�������.;����d���<�[UY���k��7�-[b9��Sc�sc�S�
Q������#c��bZ�s�F�0����
�,��hI!�[[���f9�s�.�m�����Y����[������o�G[��>�%�-�.�����S���EM��}��edO����Hi��;n
"=��MP��@�'����3���.t��k��f���N�V���	&C�����y�$�Y����.����zf�����4�A��Y�'%�������hs����p	i��9A�K��)8s�xB����){T��-�^�	��)���t�g�`�7�>�����&0�n��5��Nlh����%:�	����u��qs �S��:����K�� �;��ZA�F
�� T)B�����b�@6�
+u����y�i
������h$�;���R�`���$G�b��S|C���]�])���oCg@���v��Z���X�������\����}���M�?��f98�/v�o0p=-��k_�V}�z.���� k�oZ�U�}@�M=>~��Q�_=n��X����G�5�/���Qm���
�:`��i�6l�D;{w�
Ks�E~�(�^[5�c���}|���F�����
u�$��w��5�%��C�J&�����e�'��u��2�C�K��*
Y���!��2g�#�<s�����44���R��;%�����'xNG���������?��uk������1�_�D�%����U���l�����7v��e�����;5��:��|6��B�g�k��Gv-�����	t^]����Pq�c�%�6��A�������
��\8���fA��z��N���/!��s����������0�$6Q
Y�;8��
!�(���0�{�Y���;���_
I�
�)�'�u�l48���+�� �?�#��{������������Z&��_�85]c�H���:M1��Y:�<���	�IS�/��0�Dp����;���,����`~e���=#5hhV:���~$��0g�>���J�1*".�u_��������������K��]$#L������x{�h��P������i�������u\���������l"V��Tjv�
5�����D����Q����S2�R��F����B�?������wo����Rk-���mD{�����9aq�P�`��Y�(�� ���TK�0#�� �R����5�	��Y�� jX:�G]��2��L9�f��D�!���O��	T_����"�����1�5�-�A�.���:��3ML�������P�5�������o0��8�N�S�
���^ry]T��dU=�`&�bB�!�U�q���T����l����qAV��z�Qo����z�h�Y�1F��8#��&���x3������W����q�����302,�<�kuF��G�j���������]�e{C
���9o=r��<@��2a��k5����X�J�y�I�}�����f5��:�{����K-i`�~H�6���������G���^���^Ge)�:af�I:�c�q�uu��b�t���f+KpD�XB{i�1���r�/����>j�-Q��f�����+mH�~c�*;��?�Y�I�O^����\qRuR�����.wZ*���0�z�6�r����+��>@o%��8zx��yV0%�F]r��H�%������^���/EZd|���2*K��l�jQ����"��j�w`���#~k�����u��U��
��ZV�
��s��U*7�.V��H��?����Zn�\�[������o�/�9S��Z:@cC[�@��t����G�L;����M
k�
gM�d`"[���w�J+�T�X��C���S�����Z�R����W�N`�@���^����tS`��ezJ	�������e�O�"�������?���Z
����j�Y|M��p�
�������k0$t�q�(�t�#�	h9�r9��v���3�!)@	c�)�;�4�m9������H��6�o�S*e��
myr>��
�w���
Ek�5�0��8NY����>F�H"m�#�
���Z���Uq����vQU������]O���)��N*1�f����:�o����
��=����#=	WB��������?L��#5�����0u�a;)&���&��AR���"L.e|3I���r���X�����!wmG�IU ,�5����� Vp��x���7C�a|���}	��4�zXL�l�|��uwx�<'-RF@�c����tzFZ�*���P�	U�NV������N���5��<%��������8g���~:3�����gUb >�+R|vQjuuuI���Sv������k|����k�����c��YOU�T�+�3�^E���3���2R���\�}x����h�2��'�\���1\�1ZB/�,]��S~�fF��un��Q�3�t@���U���4�I
���v�#���vk��(L�����7��[����	�w���Oq���
���W��3�X������+�58�2
|��%��|t������[[��N[�H��"��ml�\���nO���r��h<N���|x����#�4�.��'��h���a��X1���:z��g��c�G�f�bx���T��:.��O�}��������Q������*;~�����n���d�:�����VU�%&����CxV'���_���tn� �h
m��K�!���{��%�@8�1�����i:����C�
;�U��92�#�r2PG��-�[�Y6��E��&K��P��_�����452+E?���T�7��@�EdbvZ	.���u+��I�q�a�0��>��1�o���O��vc\��+
��'Y�}N�
H@�a������o���������6mN�����yK~^+y���7�S����� �1�c�-\"3�br3$�v�+�FV��s\���3|�]^bi�B�.��!�����dQTc��1�S<��
^���Pw����wugs�]5]q4zP
�gsm)�#�/�'����P0LF���68n���3���,�<k���e_5�Y��}�a('�#A(�M���H��L�����kHy��I�����>m��7�F/���v����n��1G����wN����G~n9!��P&�,�e
g��\��,)o�$u��c.ml9�c���{�����������?t=7�6�@����-�I�P����o��.D�HS�y|SQ��
Fy;���[Zvl�!`�(�:���_��0��_�6���E������_�s�O9O�~�%v!@l���t$-:���h;�(�keV��c'����#.����+!z�C���j����;�M��o���,g�\�}~"Q��}���
�1���Ie�P��4'��ar��Td���h����
�_�T���m�mz\��7y�[�M�i������F��Q���a��Yv!��e2���_�pi�>(���$E

������~gv��W��B>����o��|��� ���Mv'^��q<��sk��$lH	�`9���ev=B��lN�%::f�y����m���{�������:��~�#,�S�?���2xmw�t���v�	���9fq���x8M�������E��Z� �^R{�DV0@N����N����8r�!�b�ecY����jA2*�7���|���]z�E���PI�����e����Rmg��
�&y���Y�]zN��\��.�NF�Zg���Gp(��#	��Xb�r�M>�P�F{U&?@	����:^	"V��hF	D�|�:�}-�}�p�{�g�`b�E�&w�~Y��%�Y3+�s�w�����xx��NN�\�<5f����a0t\�W�
\Gw��������*�i�M{���eJ'��?A0�����!2������� �~�u���0I�28������KL������p#����c5����'D��@'r����$��(�s�FG���<e�j������O���|����� J�v?�<WG�i�JH�9F������j�Aa�6TQ4�>����6;��k4��`
�����Q��j�h\B�v��8����~(��7��Pp~�]$�4�cQ��I�T)�'����p���~D���O~8:89|����j�0(�EH�DCQ,� �Q�eDw-�i3�p����2��nbHR8���o���Y�]�����V�-����.�Jq��!���G�g��6��8.�Y>���d�3.UgXL��m�zI��X=�����N�<nhUBu�{�j+�E�����D-�Zu����d��(�1R�����������E���������ih��a�^m�����DY�	�<��&�� ��r�;��m��I���_��??U-�,p�W������;<n�1����@a���]��3�����n����]M�h���1R�y�v��/��k�:<:�n'G��+n�
dRZ��f��}��O�}M����0#�_��).���V��M�P������v�������X�-���*O�H�}z?��>�
�r�g�h�n_sL=�F�h<�	��Io�����<Y��"$��#.���!J!�*�����H�^`g�
P�I9��C����Ci�^i��;��)���3�����S������"L�nM�tl����;Ke�@{/�6�hc9>���M.���j�H��<�B���Wm�1��G#�x��?cr�Ps
#69Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#68)
Re: GIN improvements part 1: additional information

On Fri, Nov 29, 2013 at 11:17 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 11/29/2013 11:41 AM, Heikki Linnakangas wrote:

On 11/28/2013 09:19 AM, Alexander Korotkov wrote:

On Wed, Nov 27, 2013 at 1:14 AM, Heikki Linnakangas
<hlinnakangas@vmware.com

wrote:

On 11/26/13 15:34, Alexander Korotkov wrote:

What's your plans about GIN now? I tried to rebase packed posting lists

with head. But I found that you've changed interface of placeToPage
function. That's conflicts with packed posting lists, because
dataPlaceToPageLeaf needs not only offset number to describe place to
insert item pointer. Do you like to commit rework of handling GIN
incomplete splits before?

Yeah, I'm planning to get back to this patch after committing the
incomplete splits patch. I think the refactoring of the WAL-logging
that I
did in that patch will simplify this patch, too. I'll take a look at
Michael's latest comments on the incomplete splits patch tomorrow, so I
should get back to this on Thursday or Friday.

Should I try to rebase this patch now or you plan to do it yourself? Some
changes like "void *insertdata" argument make me think you have some
particular plan to rebase this patch, but I didn't get it exactly.

Here's rebased version. I'll continue reviewing it now..

Another update. Fixes a bunch of bugs. Mostly introduced by me, but a
couple were present in your v16:

* When allocating the entry->list buffer in a scan, it must be large
enough for the max number of items that can fit on a compressed page,
whether the current page is compressed or not. That's because the same
buffer is reused on subsequent pages, which might be compressed.

* When splitting a leaf page during index creation, missed the trick
that's present in current master, to choose the split point so that left
page is packed as full as possible. I put that back, it makes newly-built
indexes somewhat smaller. (I wonder if we should leave some free space for
future updates. But that's a separate patch, let's keep the current
behavior in this patch)

I'll continue reviewing next week..

Good. Thanks for debug and fixing bugs.
Can I do anything for this patch now?

------
With best regards,
Alexander Korotkov.

#70Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#69)
Re: GIN improvements part 1: additional information

On 12/08/2013 09:56 PM, Alexander Korotkov wrote:

On Fri, Nov 29, 2013 at 11:17 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

I'll continue reviewing next week..

Got dragged into other things and didn't make any progress on this last
week. I'm trying again now.

Good. Thanks for debug and fixing bugs.
Can I do anything for this patch now?

I wonder if we're leaving some money on the table, by using varbyte
encoding. Googling around, there are many other compression methods out
there for compressing integer deltas that compress better, and/or
decompress faster.

Even if we use varbyte encoding, I wonder if it would be better to treat
block + offset number as a single 48-bit integer, rather than encode
them separately. That would allow the delta of two items on the same
page to be stored as a single byte, rather than two bytes. Naturally it
would be a loss on other values, but would be nice to see some kind of
an analysis on that. I suspect it might make the code simpler, too.

- Heikki

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

#71Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#70)
Re: GIN improvements part 1: additional information

On Mon, Dec 9, 2013 at 1:18 PM, Heikki Linnakangas
<hlinnakangas@vmware.com>wrote:

On 12/08/2013 09:56 PM, Alexander Korotkov wrote:

On Fri, Nov 29, 2013 at 11:17 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

I'll continue reviewing next week..

Got dragged into other things and didn't make any progress on this last
week. I'm trying again now.

Good. Thanks for debug and fixing bugs.

Can I do anything for this patch now?

I wonder if we're leaving some money on the table, by using varbyte
encoding. Googling around, there are many other compression methods out
there for compressing integer deltas that compress better, and/or
decompress faster.

Ok, I'll try to google around. Probably, there are some better options.

Even if we use varbyte encoding, I wonder if it would be better to treat
block + offset number as a single 48-bit integer, rather than encode them
separately. That would allow the delta of two items on the same page to be
stored as a single byte, rather than two bytes. Naturally it would be a
loss on other values, but would be nice to see some kind of an analysis on
that. I suspect it might make the code simpler, too.

Yeah, I had that idea, but I thought it's not a better option. Will try to
do some analysis.

------
With best regards,
Alexander Korotkov.

#72Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#71)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 12/09/2013 11:34 AM, Alexander Korotkov wrote:

On Mon, Dec 9, 2013 at 1:18 PM, Heikki Linnakangas
<hlinnakangas@vmware.com>wrote:

Even if we use varbyte encoding, I wonder if it would be better to treat
block + offset number as a single 48-bit integer, rather than encode them
separately. That would allow the delta of two items on the same page to be
stored as a single byte, rather than two bytes. Naturally it would be a
loss on other values, but would be nice to see some kind of an analysis on
that. I suspect it might make the code simpler, too.

Yeah, I had that idea, but I thought it's not a better option. Will try to
do some analysis.

The more I think about that, the more convinced I am that it's a good
idea. I don't think it will ever compress worse than the current
approach of treating block and offset numbers separately, and, although
I haven't actually tested it, I doubt it's any slower. About the same
amount of arithmetic is required in both versions.

Attached is a version that does that. Plus some other minor cleanup.

(we should still investigate using a completely different algorithm, though)

- Heikki

Attachments:

gin-packed-postinglists-19.gzapplication/x-gzip; name=gin-packed-postinglists-19.gzDownload
#73Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#72)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Tue, Dec 10, 2013 at 12:26 AM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 12/09/2013 11:34 AM, Alexander Korotkov wrote:

On Mon, Dec 9, 2013 at 1:18 PM, Heikki Linnakangas
<hlinnakangas@vmware.com>wrote:

Even if we use varbyte encoding, I wonder if it would be better to treat

block + offset number as a single 48-bit integer, rather than encode them
separately. That would allow the delta of two items on the same page to
be
stored as a single byte, rather than two bytes. Naturally it would be a
loss on other values, but would be nice to see some kind of an analysis
on
that. I suspect it might make the code simpler, too.

Yeah, I had that idea, but I thought it's not a better option. Will try to
do some analysis.

The more I think about that, the more convinced I am that it's a good
idea. I don't think it will ever compress worse than the current approach
of treating block and offset numbers separately, and, although I haven't
actually tested it, I doubt it's any slower. About the same amount of
arithmetic is required in both versions.

Attached is a version that does that. Plus some other minor cleanup.

(we should still investigate using a completely different algorithm,
though)

Yes, when I though about that, I didn't realize that we can reserve less
than 16 bits for offset number.
I rerun my benchmark and got following results:

event | period
-----------------------+-----------------
index_build | 00:01:46.39056
index_build_recovery | 00:00:05
index_update | 00:06:01.557708
index_update_recovery | 00:01:23
search_new | 00:24:05.600366
search_updated | 00:25:29.520642
(6 rows)

label | blocks_mark
----------------+-------------
search_new | 847509920
search_updated | 883789826
(2 rows)

label | size
---------------+-----------
new | 364560384
after_updates | 642736128
(2 rows)

Speed is same while index size is less. In previous format it was:

label | size
---------------+-----------
new | 419299328
after_updates | 715915264
(2 rows)

Good optimization, thanks. I'll try another datasets but I expect similar
results.
However, patch didn't apply to head. Corrected version is attached.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-20.patch.gzapplication/x-gzip; name=gin-packed-postinglists-20.patch.gzDownload
��n�R�}iw���g�W4uO$�@X�����$J���G�qn?�!0$�1� ��t����Y��"����$9�S�]]][WW���3�n��3>�����p�1�����a�eO��������o�����&��:����LF��u������(��z��p�t���m�6O���.��A��^�������2R�p�'��J��d>�h2�������H�4��`#���(���RW��B%�(����ctM��Q�����Uu0Q�ygjv��YEj�g��O�8�/&���:�����������i2��v�`��p�L�3MC�?�4����,�����Y�f�����*���}�S5�O�;>x��3��[�{�{x
��L
��,�'���)t�:�_��p<��W��4�f��\��l��ZE?���o���N�Q���,Ig0�upF#��W�|<R�0�$Q��9����'��~f*� R��4<�]Bh1���;����Pe�4La��(�k�'�8'#5I&�3j�l�4�e��L�m������*t1���p1�%�y8�����#!X]g��S8�#a��w�WH�H�K%s��d��d�U��a80Q���k�p�����������h���:��^2��T8�]�/-����@�2E�Q��
���MO�O�,����;��z�����o�1A��qc���&��8����63���y�>���(��p'�V���������js�f~g�����d����������q�p��j�F@Q��;l��:����pn_$�6Aos���2|�5�����c�8s�2T�O^����L���[`
w��=8�O2��
#��"Q5�w�R��:�=��U����~%i�HCw	;�h��S���:#�e=I/��O����x��0�b�Bi��S !u+p��D2gir�v:�r h ��0&���P�o�@�	��;���4���������i�6!���f'�x��L s��)6[A�1J�)(G�y�pO�D�E�	vQI��
��
K%�G���j*\��3�0w����U��%���{��N�a42{w<� � �3�yh�:BE.������h\C"t��l�������x3�D���
8K�@aW�"v����%��6�����p6O#T�"Q�\i#���)��#c��p�Cgf_0�f!�����`F��F
��d�c=x<�'!�����0�S�L������4:����F;�`�����a������)��48g����7`e$��K����"1�c��L����cn����� �CL����l���-�������*y������q�,]&^�6�f$�^&(���j���T�M��)�����@`����H��%E����Q;#�r�$��a�"�f"���_���F��Iaj��X��Bk��A�@D7s�t��@�����{�E3iH�i��Ekq��������"QJ��>#u��A��!�`����p�s9c��Z��^
1s�h�[��=�����	�!�:+�L�ZBNG' �q�1�w�����9hX�G��O��U�$.i�'��L-$�B��]���tI[z�V�$�����`h�����h#j������$���S1�A��Mr~
_�`mu�+0
�wJ*\`< �
����h���A�����]���@���mt�������7E�s�z1��pr��Z��E�e��,�5���H����,��\������ 3B��U��h�����|`o�?B�����y���,�F��0Y9����Zp  Z#��a��	yg~�L�����F?�|9.�Q�M�Fi��.�)N�����a���"��c|��0��ub*�q"���-v��0E6Dv���$���m!��ni���f	�Jz����b;��0UF�������a��a���VS!LU �i!�(��k��i�[����O@@�1%��$g���E� �@p�����FAV2�d���@�|��G�7%� .�89`I�x}��e����u�4d���
�;ME�	29X�\���
���u1"��$��/i� .����u0�����A����B~����U�i?S]�)�E>=
��_���4��=
��7������[���(��V�@�p#g�/���a��gN�x�f�5YA+��DZ]��f�p���H>Y��a9�����1�SQ[fV�{O]�
+=%i;Qo����M���~��F� �cG�
��OB��,�GmtZj�����c��E2�S�e���+L���j(��h�~��g�.�0�7/������	���c�
��`��
5j����4c��X]F��#�
�z�<��g���mU��1�x���RT��x���r�I���Z�F��L��|��e���QG�u��!%B_�x���m�e�'���v
C���������(Zd����`�������X���(�����H����:_-�?]��*������'/���p�t��R��C����c��e,������,��'���/^_�������4!����c��jx��g��J���9���A~��G
�`��`"��1+�R����Ra�:<�'�;��$~�"w������}, �@n6��af�w
�Q*�#���������%��\6M�A�P*!���E�G��<��($X%���=r���p�)�J�8j�����E�h(��0����@;8�=��/I�X��!���r~d,�9�#`������FL�0���z'�����x��!(���p>�I9;�`'��	5^x�SYG�W����D��R{L>E���2sTK�c+�6��Dy
<d�v���U�K"	��g4�)����kA���9�[�(MRTg c@�Q�&��g�#��pT�t�O':�a�i�m���y�t�t{c����{��������'�N��d�Wp�'�b��j�������@�; �����aj?�fm^X�y:Kn��6�������||�����*z�j�;���3�t���+�qt�wx|������h�����w��.�@�)���[S�
��c���O���?�*�-����9Ft:�8I�&����8	G)����
��&t�*H�_��-������8�]7���#j�x�D:����4��M&{y�<Ge�Bz�,�����<�Y��^�5����Q<Re�������n�pk�L����8���	��{b*�g�����
	���'����3o���Zz��.���<����R?w�0Thr0����`�I�f��$|'��������U
���W���p�:M���������`����i��R��.�b�Mw!<z9O�vt:�����8�+�%����M�M�>���6�/�����9S1^0 �K�������=97�Q���op��,�� ��#�q�����-m�#]������(r��� X���s���mlt�
��~���l�<N��Lx�7�)�Sb����]��#�C���)
Sc2�l��Oh�����06C��p��
��+����w��J'���U
���i�
Hu��FZ�!��1)���h�A����7��`u6-��ru����3�;Bp�G���$�H�a�J��z`/��c�<`
=�cd����!9A*�{)pQ��8�('���^�E[u���pz�,��@9t��������3��%8�kMy�F�����Gr?tu7v��6���qc{l��-�.Y���Tf`�~"��y"�"��M)��
�[��6���l6c?8��"�cK���'?�Dn���
��kh�gT�dL'Wr��h�\��:�3R����k��& �}��j�-�X�������lm���`g����]f�:MsE���--R��V������U������4��g9L������Qd�)�]�g%a
l�ul/���$e���dz�!#�aK�vv6��no��0�=�?o��qr
�%��&�K���0�)�Vd�!V<4���[
�)�L���KId#�oj"��x2�G��k��x����x2M�O�q#��2����2��_ QdO�hl��@���g�@����+�Hr�H��=��t�1����pk�����(��S�����"����:C�l�$?�����-t|���0���
��6�u�K����-0�8�<�<N�����`������cA:�hD��H��L��P��3�6��/��XQ��2?%1�P����Q!o�S�jW��PK+z�r�^���/�����W��=����f�s�<H=��Q��t����r���1�Ib<�p���hd"d�U=�SdL������,��k7����	rbp�`��B��i�4�.�h�sw���&�����oKt�^��z���������a���`L�i�7�1����Le�������xZ�E�EiuH>�L���cj�;+�5yTO�*�J�jSdM�[DL�E*%����6��-�$�=u�:�(`��>��f���kv�C�+$7�\bA"��8�z��O�$�U�iq�nOv���!��2��5��P�ra�x:K����������|�N6�sR���1�^"�0U����`���s�WI�+��!u�Zq��U�
SF�*?0���%&���?������A�+������z���F���Z0��)�%@�zf����y���phUv����Dx�S}4
�x��������v�Hc���;��h�����	Qi��4��P	�����bF�S�����&a�b4_aA`i8�5�B���w1�.L�)�!n�[��XK3&��X}_��U���+���^�X��H0�s���h�3Y;���S�)��56{2�\����D#�`	F����.E���G��#m}��4�f8��|��3�OjMy�3]��3~�����zD��C�_���#h��|�Tq/I�(� �������2���bFxz��Q�-����K
J{������1|����bIM��<a�������V������$ �@�n���KKH�'*�"G[v�r�b�b�*)S&n����F�n�#�,�)�N�`^K�
9�r��!����{O!�*�1�6����Yo�u�vN�qTjW_(H����R�
4������j�p����ao+�9�NB&�AFW�7��u/$!E�x?������� ��$����������������Y�n_����-W���+$M�?��ho!�>��+�+5F�����O�b�]P
{��qgd�&S^��d�Fr�7���jAJY&���e<�#�-v(+g������aq}����nW�����&��s�WZ����e�����%+�M22��D�����X^ b�R��Z��Wd�z�! ��B�(��c���y$-�`#��C�EZ�j�X�h���-�p����w��sB�����Ll�3�����"��C
G���d��#U���Ri�R���(�mBk�q���2D���j,Uf� ����V;�{y�@��$i=Z_���W�v�:�ZG9���H,���1���foal�v���k���7EX��!��-d�����6���N���H�796����8���#5$R��w,�k�x�px�
\��mR�d[:#8���!DM
��@��ZJ��t���0$w�������V[.�������#S\S����xC�� �UI��v�Lc��}[��p�l�5����y����`������*���LP��S0M,��XLkk��+�}"�TH���C���l�f����� *�|zw`���y�m���e�hQM���Eu!�ue����Eu��L�-������-�����
����$���m��M�d�q�/�>T��#W����66�*�"���O��7����{��n���'�'�~��g+���I2?�8B�Y�J��Yq@;�:������g
�-����i�) ����4d�E����
O��c
�L�J(���l�(��;�I���Mh%�J��1��r�C��O��P'�����U�_���;���7��%���s���rU�PD��H�"J�3�x<���%�B7@��0�Q��LL�Aa-���.H�����,���g`��I�Y<���*�i���(��Z�j�{�Cx�.�E�c�6e������S.��^���0�g��5���@���
E���q�""0��������u-�B�y����^�*��cf8Mo�T�9H�$��i�'�%|1K�+�b��:�,o]������q�����`-�g|�h����f��_y�5b���������A��S�a�x'��G��%C=Q��{�k3��wh��Y��]�iuJ��g�b���p��Y p^L������c��<�`4����>��fxR:�C��S��B�8���9���l�7�I$��<�NG����@�{��*���Qm���������\��2(Q����y�"����L�lr�m+��E�q�7���zC��������/�e�$�s�c�.7Z�#Ke��d�S�IA�R�L����6�S���~����|o��{%�w��^�_r_�t��X0�s�d�O�{��%�����S����o����<�9��W��:��4-�|�-V^�_%i$fB�)���W
)s
_lE+I�E��D��7����Bk�������k���(mYG����T(�C�O��C���*�DM�.��D�����xJr~��sd.�T�>c��G�HRS�ZR� �u��s�Ir�$���p���U���5����mh��8�e{��U�H��b�Q2q��S��k$��;�{>�e�����?���t������!i�b��{g���� O��p�3m
9��}(����<	�FH,�^�{�6��!���}��j����2�D#�e�:NZ.j��@k���
��(�L���Y����F$�N^�=8reL�3���Xv�"gk���5��d09?Z)~��1�7��)��Vwpd���',�X����PT�[���(�0�����m�M��\G�:���ei��XS�������h�_+h���f�Mv�:X�*������1Q�����C���{yc�g�v�ct��J�S�%�Ia(�0Y��������=k�[���]�)���cf�^�'C5�\��-�^':��M-��(��(@!���!eZ�o����I$��3J}��<4	������1V�^c�N��n���<����������U��@Z	�T��U��|�`��e�� ���
���d�Y�Erm-O��1���cFf�e�+���g��Po��;�?O�7�z������Q���G;W�8��|�
�=R�)x]&�Za�7�N�Y�����Z>��^q;a]ma/�g������o������]���?��L��y���1��9��
��|4n�j�[�&o���UN����jL�����c�isF���<OQ��
R|�o"�����$�+����w}�O�$J���������V�]��0��XJ�������)�������r�s�X�A�1�i�GNjr4��Dg�^���������MH���
��U�[G��24Sm-N_.G~�K��A2�vm�m�y����n�Kbk�bbv9���������#�GU���{R�G��`x�����s��p��jr�S1N�j.���$�����A~����x�=��{T�������P��DC>`o�~W��(���j��P�������Q6T�V��rK�����6���i���wOV�`8y�W���*��*��_��W��~���.�*+W!�?�b��)� K��E��%���(bj��)��K�t���(��� '%B�\"�[R*�e���d!q�eL�~�(�|x&�.�$M�;���-)��?<|����A���1m�����xy�b��J��-���Q�EL�7h�}��N�I�Yt�_C��W�������M�j��uvO��i�B���/�%:� 
�E�<��%)C���Z�*��Xen�
�\����c����p����T�������~~��W'�������������m����*gfd�:'���}�����h,g��v��SJ���m
n����C;�+�pi�6ml���%%=�K�����K�l�*��i�(�@��<���{�^�+F?������������}��b�����1<~>?���S,R�Q'�/�Z&C],�>����#f�F�	_}�����=���4gG��h��$E:�4-&nY�MF�2f_�|^`|@f�J)*fah0��!�3u)��)����Bvd��qn��\� 
���kr�q���]�tz5I�I;s�Z�r6+�pGi���$c.k������H��P��-v�W�	-��/�y���4��5��+~��]u�6�#��n�_������a��W�1��sRcW�'�K���6�`q�x��������������Q ?pv������<�@�+`����.,��?��~�M?9�����H�i63a���5��V��~�
q�����>��P������bp1(.E�_�Mu�+X�����Sn�Q��dU����Z��7�2j\��S�'R2�q�a��jf-�]�)7�E��!���BWA�u���W��e��I/�c4<2����,���hM��s���&'����C����Z7������HcoR�@�:�K6�)'E9�I�Q}L*w�}D�Vj4}���Qf��:y),��z_�l�X�m�/�������R�%��P�aWo��V��q���3<���D!Gf,�m���v`�������8u�`� ���x����Qv�{�o"���5_�S�trA�+���,�$6����Og����T�*�P����|�n
,�����'x
z���7AGn��si7]�O�66Z!����J`���� ����v������������u�����!<��m�r���]�|�Hv?���u�i@���VV�S��OK����a`TO0>�`�-���GG ��R�S
^S�`�Rx���tc�V`ao3�+�����v�MT����=&����k�u$23<��r�� ?��g���,��,����)f�*	����\\.�k$���4�����"�2_��)����Y@dpc�q��pr�{�u8Q#���VO��Z Rz	����9Jy�>c��$��HKA��fe���0C<�P�:����.O&��B�a- ]w�q�7%�r������2s�a|y�b*��q��=������U��$>��	Q�c�*]�6o��32���,�K':H��u�����s���\F�����k�� �����Q�19I��*���l}������n�l���jUEu��e�����E
��4������C~�@����%U\�)�E�G&x�v���
���g]�����>Z1�*�;J�a�RmB�[�d�f���%w�j\�uBsN�&���(B	�������N��g��gME��9z��VYt��<4�Obr�����W�l�eS��M#J���V�%��v����Gs�j
����I��i�N����hP���%�j�����@�Z��htd�u��hU90+����Dy�}eK�*�
O�/��@�����	��j�����v��if�/;O��n���)
�|�����A=�5?���������E�������.��c���=ix�?]�������G{n�sV�W����}O�c��r���������xtGGz�7��P��{]������#m�,�UbNr�M�x=��fl�/�qU��8m�]��Y�t���q1j�g����+���s(9�e�\�bz�����,� �<��B_{jM3�������\n&p}�����������p4��]�?�yU~�-y������n����;�����X����5���������V��Y��9P]|������������]BN���J����4p�L��#���3�:'����|�t��QJ���~n��\y�c��+7���E�
�7��+�J'�R�v����]�MY�.IK�Qi�h�\])T����+JnZ�b~BI����Y��W�E2^���F��z5�����K�20Cxa�D'9N<*k,e�������D�o�AE��yD�q�[q�r��R�#� <cA
�E�X��Ax�^���.������
�CE�9qa~�J��+t.�M�m& ��5Ne�����:���/m{(�M0[-��������`�d��gyn�G	e���}7(N�"�.��c�����Rq��)@s�/��]�`��r�f��GieAz�X�oX�|$����^m��H5���'�8���\���0��R���"�49"����K�=p��v�0_�~�[`���N;Q2�v5����W=�T?;��2{T��&4�;V,q4�K�@nI�&L���[�*0N���8�����l*�����:����Q����k������7����t���tz��
��M��L��q�k��>���?6C�@m�n������7�������ca���>��z�W	(k�O��S���)��r�l��"��T,;�fbf_:��50�����$�*^N9L���)R�l0*����5�e�sbuQ9��;10?�
�Z��hR(>���Q�"�WqB�3
�vm�FiR����	7/�(�.�aa<F��+� xs���}�x]���6�YF�-�M��]�!�R��%j�O�k��q�O$u��
��>�a9�s8�"�(X���5���i�\]w�X.��(]����������[�-���7�;����oIV�*������^{)��}��_r�!����?H����qr��H~<	8�!/f�Th�l7�/(��TRFH�5���1KSG�X�U�T��Gb�l��suS��52Fh&�Y]|"z�0Ph�c���9M�V�_�Tr���ua'b�X��������%��E��"jE7��*I��Hrt���Lm\>26�#P������kj ����s�GW��>e�����6��g��Rw���:����r��k<�����/��=N�2���\c�;f?}4l��S>�����@�h������0MC
k4�R~7de�-��Zo����i�����~�}�{W-�5��Q98��(������&Mfb:��S����S�U���k+q�)uo;���{G+��N��K&L--F������do�~/YQ7m���v���b�/�����
u�c0��:v����FY����6�Q�����'��]�3,p�8�m��^�i��~��@1R35�jEw<l����U[��3�����?e��=�����U�4�}��*ht�L�K��3��TT�t��f�������:LK�SJ��/_�+�����<�TM�E��U�_aX�-��������=s�wy/���H��p�_.r���Cv���L��M�|7c/���t�� ���T����!��rl6������������~��(s�����5G���?�������'�d,ZC�������]�k�5��{��DN)�����})�	�	�-S�l�G.w����Md8;���k�q��\�,j���rM�?���~�[��\����v��]�Y��a�%QE��$z����3��{f���SH|U��Y��
�Z�+A���.B�f�G�}T��{M��;�!��#�\����x,�����
��pR���i�����0��/fNNf�.<�]S��e�]7J�)c)�3�sA=��*�1RC������K;b����fr��"s��!�SH�q�fo�6�l����7�I�V�m���b��|�E��YR���	���,Y
�#��_j
�����o�!/�fh��=s��8Azu8[~Z~\[�`j�@�(���
����
���@]���eMZV4��.
�{����R�M^�+C�IY�;��Uv�-�$+���:��������O,A�@�v��H�Z:�B��"Dw�����Mk'Y%�\;����h�j�<�K��{<h\�-e�~T���)���}^����K-%�Q����Yh)9���GEk��k�k��&�\3�P])��>�
=2�ZXk�^�Xh���-��e�7��a�J�_���J�_���\�
�hI�D����2I�]���������9AQ�m>,�^��:�jT��(�n���9s)t\&���~x�$Tpvcg#��v��,&��u�I���c��V����7�Aiykc�{��'�Z����Q4-�~U��C�LdB�B��4�<���W2\%LtjK����|
���������Eg�$R�{����O���db��O�(7�9�^�����`�p����$XC��N�x6�_�32�R6�{�(���`���#�8M���'FU��*�����Y�]�p��"_����v.�|+Vn�A�%�p���0��3��*��j��}�����xX,�)GP���a�&�<
��������
Z��M��!1��#���H^J*�0S�<e�;"��'�NR�D�n������X'�~s�H(����;�5��%s�Vk�f�
���|��k
�4]z�;��'r�=��MAX!��_�"�7��1�=�S�f�>x��?���j��g|��g��6d����/	#2���4��j�	�_��m4�-N�W]���W�+����RN�����q�	�2��fW��S����c�F5r�9�t>�Sb<^0�2"m�b"��)����
T��Z�Q<L'>36	D��V9����A�},a��8����)�m��r1�����
�r^E�o�������b��������fA�8o���i�P}t�s�3�5u~eo�S��-��s|�R���^��
��DW	s��S-����}n��������^��_�o�3�����$��o���+��x��F�+�a���Q����s3$����=���'~`��vR��fm�u�/l�0��l���!>���8���q!���E�iU���N���O�v�la�d:�X$Ai����I��2����qV%e}m~�E��cH��������9"������p���(m�K9��0���
��Q��-G]K�"	�pD���h���Q����~�B��bSmZ��iW��o?� �v���w��Dl�0�a�X&����_|O>j�D��u�B�������[���p����3�^�h�g�`.,����A�Dh��N2��=�T��p�x����(y0�gQ8�D����>�(0b&	�0�������8%z���K5�(�_�
7�G���4������r�R0��G�=��r�h�T���G��h�y�R�D�c�I�|6Nf�p,A��x��@������!�2���:�w�M��x*��5Cr��A�cY��7nf�h����0<�Z
�y�J��%�z��&�3�6��+�H:v���?�����5�e���=:Q�u��C���	�D2�olqv��)������h���^���(������0e|��S��]<Qf�F�`b��+G�����"���
�1<��"�\��hTj���Z��,�U?��p���c�	��9��4K�M�^���XnZ�_���{_
Sc�u%����(������*S��#C]T���GXR�.s��I2�n6Cc�N�o�$s3?���e}c����z��(�T�*��-��v�P�l�dog{j��)G�z��[��_�soj����"���zbop��\[���r;Y=I����m�	�,w������G&�*��t�e���_�S�W�%����#���
�f�_����n�M����I�&:d��O�}v��g&&�<�$���X_���yC���n��mv�+�p�J���KO�/[I���.!������#��.�������J��*2]��%?(s�V�C
��-l���y���|�N�(@%m\�-D���E;��\m������^�z�o5���QYMK��<���n�x���h8��0[{�w#�~?�t5q �9�t������W��r�r�xn�����+
�,/�j
�@�UU	�]b��'��3�Kjd������;z������Hp��M��M�[d�oY�R�{w�H�t��
\��(�?�U�"��_)��l0����bg'\�b���,��y��D��\)OP���=kq�_�������v�8�B��T����w��;�=��r��a���2�K	������H���|�6������bz����|�k�7E%�����NG�v��j�^����MYDHar��G��mm���m�m��L�w#_�����G���F/i��)�/'Vj�=A�{�K�M�8��;�?�p|��(}��|��
|o���{'!��r���!k����IF���-�k�V.���1�%�����	X�������.���c���,>A1���p\�X�?����4T���=@��m�K��^�����@�U�6�G��N��=����&\��ku����O/��L��j����?���,��V�YC�����g��?M�wL�������a�g?q������hv�������C���=�������l���� ��e�{������4����h�L��R��qL�}���o��fZ�|�N� ~�}�����F��;qO���F�H��z�W�s��7�}e)�d�����a�5��e�
��%����}�$�=I������WIz�B�1��H��M����F���l��3��P�f��Ea �aU��Wbt��~�Hv<_h��X`X�����_.���H��WN�6��c��9,IcEA7V����Z@�6���K?,M#����~��=a���x(������6$��Q4��,�d�xD����9L�e|��.7���
2k��}��i�J��L'�d�q9x��a���������I��"���Wa:��Uh�4$J��?S]>H:�1��
E��?Q�?"kf������O����f��e�@��/�H�����/���IB~	H06
��VaT�9�i��#L��4M��$y�sfLxG��3��)����`}��_�/!{
}e���H�1�|\M��T�_^��=*�g�7��h\0����80�P�q�G��$����t:�h�������e70���(�J�4Q�[�����������~�?1�D������f��-���|'Mu#�E���C�<;D0���I�tC�
(H��nW�)��%+������)f�H�il�"������B��Jr����<Z�T��LO��=x�r����9y�w�g����e�.{���>�
p+��7��
�4��\=��������}������������������h �ev�|�jf�\q&�?��������U�K�t|�����������C�/���������yK/����eh��
�$��;����6����2jjbo?�9v�%�E���!��b�O;C��
vFM����x���������[�����O�����X~����[�EaCG�:��T�92��4-��e�
DeM
o��9�P{��d�\D����Q�����	�BS�����q��b�/O� �mhv;A�$��[�0��4�+&\�l�)����;>y�������������q�}s�^���,��W���i�)F,�h,����%�8�s|b�[�����z�y�
m� ��_��m�� �m���$�v3T3o)��;j�p��IK���k/I[ky�(Y�w��0�d�.<.d��[Z�~YR��(����]�I��|(%����g�U���gR�{C��iFU$g��������R	��hS��2�f�kP��
�<����	/�]F������
C��
A�@]x���5�{��TLwD��&���15�T��Z��X����c&�W
��o�s9<\��X">��z[}�g���ZJ�T�����s�'P�������f��o�VeX�~��R4�1bP�<p�]�1h8��E�F�v��i���b���|�b�+&���Ge�mH�o��3�~��=������
ah%�@����V���������Q���v"3��r�&#K6yyBD�!��Q��m	�'���36����V]9��f��|b%�����?��������B5l��0�q|^����T#=���
�}t���7
�e4rb~����k
�;dHB����	��8�a^�^����8AI�o�\�p����u����=������w�,�<�� ��Po�:rkg���Ev�4
����������M��L�[�$�������p��*����������F���������ig/�q4�5q��?��@
��|�O��|�W��I�UY���b�������D�?��X���<G��n����m+U���*�mx�7�X�!�!���nJ2B�nchms������5U�H���z-��R�z/�Q30�,�fKbB���p��������t6�;��>m���.��f�O�����mY��S<�_rHj#����=���]�6|2�f���������������W���tY�����!
�����y�H@gs�����tL���VBC[@�O�*�u�X�C�f�##�J��.|tY�=.�J���Px��T�^�N�zg�����%���'~���	���o���v`������oo����
����D��}-���b��>�GQ�����^?�u{�K�5C\���U~C�&��\e}5)5��
b����vpuwE7�8�X�J(�El7�+g���*�F&���bS�8�����z�4���*|GL�#�7��f�x�eK��Ia���#R��J'�2���|~���%��m(=f�dp�~f:���(����Ba�p���U�z1�!�R2{n�B_i�<�������y
�;N�4'��OA�D��K������qo��>R�8�zz}���V��SAN�����$/������Y�x��j�Id
�V]�v�E��?z%�S���]���� ��
a���������H*�4�������Z{�VPk��EC�p,-������$������v;�xo��5Gr��y�^��q���7�E"bh�����d�Dbo��6���([��Z0���d������%���_�e����,36Y����I8����DD���f�����2�Z5M����,������Bz�9��9���0��cJRCC04�2b�kY�0��lu���R��Z,���|Z�Z,�{��]�
�����C;K�����V����r����J9`{��,�O��

���Z��3c�_�Ss�K-
��n�]w��7����]e��wm��a���E��p��H�\���A0X�Zc�;&�3��[��bA�i�E����J�]����`���+������v�E������d��[�����~����wX+�nkp:s�n>��cD�Zv�������yZ��a:;�p�cS3X�af�k��;=���u���L�zc���8g���wV^�r�es*���e��o
J�V��H��)�Q��	NKbH0JjD��Gy����.B����M�e�8�S���e�iF��y��\@���W���+{/y7,QN�V_�t�4*�A��&X� �"�)�h���<����
x�8"��L1D��Z���k����g������G'��"h���IK�_i���H�oa9{������g�{0���AMZY��nt��
����SZ	AP@�G�e"�L��=�8��)����v�C�roL������KN�J��e��'�3,X;4�������[]$e|mA8�R8uTD���	�i��p#�����9��*��Z��Q������1�*C��t��2(Q�Ju"������a�w����(	��w�1y�n �Z��{9sL$+5gI����]H�7V�Y
W-\^��GtK/�����������o92p��K��1�����5|�#YJ_=r��)�W�6��x�,��:�	�������e�^{�6�**_��Z�-����ei�=Q�;�8{O��?U����[��Md�\�
���������8�,k�De��3����S�y
��=�g��O�667���-G��,�.��S����9�����K�+����$H��<��P�b��"5&�){�AO��+�Z�T�,��wO������
��r����Y������X6�7��w]�:j���nM1�����9'���J�^V90sjDA{Y��X�E��4wEEF~���e��r�jsWI��gO�	�n��k��p���(�hQ ��hs8u;����
����bIL��G#�D�8��Vr#��� ����\��R��W�!�^:HN��\|Y������c�����qxr�N�i
���Qg��"��-a3z�e�t1.��r�����VV�$�������a�%��EQQ�\�"m���wky���6�>O|(�����y��]�K�����+]���-x��*�n����)���J:��fh
���6��;(�u`�w
����f��/G�HFP�	YP�8�7M	�#LG=��Yr��V<�Ee�t^�n���,�s����i���1��C�N�/W�ta�+IUl��~����=���� p��w�|k��c�0�F�j�i)3'�-<��'<�?�	���>"~X��,�����ox�/��!��U�p�]dM2��v�[H��[Y@N/f��r��n�&�����zvz1=W^��Z���K��pK���Ew��Y�����t?AG+���9-��[��A
vuY��	�3�����F@
,��.��LYo������:'m_5VH����N��v���&��eF%���~�HK1��$�� �Hs�3LZH���An��hSN"Y�Wf-�'�����R�lQ�gI�4j����������dg3�un���1f���Z��h�]�l��o���1���`������������9c�$J�-6�*������C�B���vn,���s|����a��e�����"�]H2������b��T a%�p&�,���z���_�T{�4����N��uK9�S(cJ��V�[xt�-����zJ��r%�nk�@����L��S����~����@w]OMx��R��8��(��i��:"O4��0�����1��G�$����D�?�/�����q8��Ra�
���IQ;q���-1r_H��	H�K��^��9�7����Y��
����>A�2���:�����`�	w�^P�k=�BJ\J���d7�5�������q(N�Oa�*�2���}`j�>��\�K@��0:�������$�%�gT[���;�����{�~jmO�=X�^{���������7G�'�^��������W�0�������u��:�H��$�F����f���U����hb�P�����K�Q6��w���7����/���N0���0CrJ[���<@w����J�=X�yyAQ�)�|�"JT�E����{�<��qQ�F��b�$�B���b����8�^�1���.��O1\
����2�bf����>��7�2 �(K2���U��o�Y	�����|��z�0}W�������k��(�3fKR�
����zk�B��j�3���t�f�]� <������$�l����S���1hT(�U�v��V�[�W:���K��q�n�~�����D�=%�����,1�1��w0!x&�I���*}R�(���+N��9����	��S;[#��HU(��u��<4��T]j�!s���,�d(D��k��`Nqx��
E������J�8�n�uK�LL�,r�2��Y�>9��5f�W9Qm?��'�����s�\0-�����z���/e�����p�� ��xN�<�e�@�(v��#K%#��*�`xh.�*�P�X
�c��#���1������YQ�mQ��h��F��sS�*2���R�Ap�wJ���i�E��R�"�2�4������<��+i�O���U�<sI�hL[S)�^�����+Q�	Oh�[J/,<��i�p4)�����*OL ]�-�E��<�����j��C�H]�2������VC����$0���O�SB����,l��Q�(�Dq�O���R�*Z����4���F�V�������@Qj 	G���#V���9�d��������v#CO��:����$s�K
��L�'m�S��������q)�_�VL�!�XI<�'��U^��P��i�q2�%��n��h������N�7<;[�
�m�2{�4�;<f����|8��`�-���&�����������rV,��l\m<&�������v�.b
Y�=�"UAV����>�T
[`����!R�����L�'����]���V��a-�N>ar�PN8��,�)���O�c�0��������EY���?�|m�x�8cpz���h8_r+"�����F���Z?�n�OYY�Sv�*����)�����_�Z"����o�b9�5��W(�
&.�\Xu�c���������_+7�>����"�+� U����8a6��9S^}�~�D��
��+.�N�3�[���X��V�W��:�N�S��m���;�����a����+�����~�C2ci��+'f�*����(���i&+�!c���m�)R����I���XT�3I��l
i�14��QL�s������D���nu�]�������(Q�	�����8�YP8�B�X�/�0*v}�
�*��q
����HC��ko�V��2c�G���Jx
!��;K?��`�T]J�OkJ�vR�tT���:�t�Hn�B��#x����L����H�+��bPLy�=u+w/��E&�����h�$$O��U���a�.R�[��<�P�E�:�O
��l�	�+���kt��r ^ "�c�WX���e��������	U���*��`�h(�0�$���)�3��'���tQCG>�E���wN��	�p�c��F6lH
�IC�^��zI��*���cM�n7�	��2s�G��������Z5��B	l�l�G{8eku�:N�(l�e��]QFL�D�B��K���E�
��Q�����7-Gi�+���m�#<�$�E������c�08��^pW��{�W���/!Z��&<ZQNH�I�$���$�����Z>K�B��^�|�t��AU��u��6%?��f��r����dP�[�V�?U��u�
�|#��A��|��D�z���{��L;�[h+���R����p�NPet0���r�7B��Z�(��r�/�Xu��H�/��9yp ��L�����0�Z�o�A=���V"�*�;C�:e�����j��Fs��q�]�o�t��M}`��I��S_A�D�����^Eljdn���YF4�����~�%��S�����^�_K�������k��~�1��c��O���`�%b�a��]�o��(��E5G>��s�YxG2����0��=����'��{��vG'�`�����n��H�I-����uK�������u�e��m�h���5�:W�tE2�H�|M�S(��[�|i��-�/������~����:��r��Xe���[��)#ia{����x��mfH�h���������vS��%OF���/�nq���+�`H-y@2_�@������6X�������������A2���(h#�q���s3=1O,:X��c��g)������#�s��3��*�`����t*b�t:Z�!���W�Z�x�����r����>��������������Z�v������������a*�r_������F���L~o�1C_�]�c-'G����
�#�%�k�k}����Jl^��D|W	O����4M�Qj}'��j�1wTw���Aj$F3j�3o�_7f�M�s�Z�}$�B#1�]c������!�G�rX�����9�������E�^L����q��]x�r�%Ns���+����'��w��@�����`^p����!KWg���V)�aa�0�gdK;&�P4����nq���Y�������U�1'AI��5�PBr��2�)<�_�9������(Xb����:�f�
��pf����x-�4�q���l3���b��u�O�)���Oe
fd�:^���a^c�Cg�\.RV�p�R��(�IB9bE������z4����j��`�h���p����r?P���=9����K�O
Si��%bA\qH��Q�@'�'u���2�r5�\�X�����������.A����f�J���������Au�v�S��{YF���z�0�*RQ�!�<�+�s��ieq��S:�#dg�n����n,>z�,���U����0�������b.��ft�m�>�o>?cx?������dI1I�q�����`�q��N�������^���ep��F�Og�N^f[�=t��)�'�����8�.��k�0O�Ui����z'Xl��J�.�[����t��$�
Y���ut6k���C� zu�����)_F�g��9Y������O��������^.�t������m���S1$��Y(7����y�	���l�R�,�:"����-<)����������|�c�)���ka��T���?�r��oX`&7g�S�q��B�x���|��,�l2HGW����-��o�a���
�+k,��;��fvWRDZ;��$*��m�l����F+A<Yf��W��P���h'��]M���c�/��^��/������
d����~�n�'��*��L���)T�b�L�%3����#�v��p7^6�66�������2JX�1l���5
���������X�������ul {�9w��y��T�i�t�6]ie]�r
�S]��;�je������:�������8��o�b�kR��io��4���,�
��#�8n�0C'
��<J�<����(����'Vr��]�����y����rCp��9��8Y?���������N�	��������-w�F1+][�^�5����rS�L;k�\P���v�N�~��lr����INTs��@d5�7�A��r7YX�8Z��N�nmo��Mb��{]z�A��������z���M�rr���w�2�H-j������M��#�������t�"��H�Ja�fu���=����<8�"N�Y�����A��\jP3"�	�����2c�y�(.��It����	�H �T'o��]X6m���*�+���MH�Y7�����=��~}��������n�=\��3'f�y���fU�m|s�N<��1��y�RA���,�&�r�:�����������4a��|=x�#�.!�}��p�,������l�������!(�{�R�M>��[p����aV\���J�h=��9��6���i�_]�����9`��<�I�����/�ll���k��,��32��g�r�{�.�Tkj��~�w�w[�w�Y������?��+�R�D��po�x��c�(�>���WD��:JUWoi��X9��,^i����x���b�Pl���ZWnqp�{h���~��G��Z�ihM_���Fq��	�R�S��jzO]���O���+V�5��#�����G4�8�-��U�t����4�B�`1�L�AFq�G�i��CF�������|���U:��z;&K��6��s�����%�lfbM�:>�P(o����F�q'{�
�SQ
���M����`/�����SE82����\(��.����>���f.����wN�m��Y�XMS
D���c�Qa>fp�T���tOx�d���� ��>{�"�A������<�#q����p��y��"<Y��kW�)�^�����v!�v��.!I��H2�(�u�L���������<�RP 6�)fH��Ur���>��������m��`����E�#������u�n����A��;i�u��_�����������/^�l�E:!�n��'��r'%hzq��s�D��z���X~s�)hP��-o=^�r�bcA5��PKt��#�*H��'w������g����1%W�Q$�Q9�u�m�'�q�E9o\���g(���_�46�a��}��� Lp��W���7T�b=*?p���b{��J��-{�����i���$�g�Ay�1��bO�1E��]�0J�rF�v����*�e�uq�n��%]��U[��W9#�OE���&��0�+��D�������
.������x�����
N���ue����j9_n��TB:Y:���sf�J�f�wl�G2ek;��L�/>W�_-�$yUj���z��-!Bj�,���|���]��sR�T�z���>�����5;�g�-��d��K���A�5����oS�- ~��Kt�����L&����5S��Yr� �@�h����d�-�����N���S��T>O��<ou
Kk������d���G�K8�Y���[d������7U�H
X`���Yi����XA-a���!t'Z��+M�g����W��V',��9����X�<�
__��8����*T�N��x��@�n����$��l�}yj����1�I%
���Bs,���i[8�3#Y�dd�
c��������=�����`s#s�,�Ma���[�_������������`��\��Ax+~_<dj��x����2�@�|?�����v��� �s~�8u�`���\~��E���tW��b���R��LK����{�~��L'e>���ea!6����������Y�Ca��L�i���s���_UY�l��3��������&7�Q�f��O(m_j���o�f�6�\]
)��J%�J_h��*�����W4+�����f�5M�����5����U�����*�s�@?3��`j"	�������@��U��=S(r��b�/7`	2�R��,�5�<OGQ6�R��*���nQ�����l���tNG��h{A������%mKD�	�j�R\����;�j
��7Nbx$w-����uWG��l�1����������l��e���p��c�
-��}>�R��������{����C�����q�A������4�U����O�����N=~���������	�<���y�w������*d�{��N{`s+���n-@E�p3lV������3�����"�������7@�(�%���Jq������%�7�eh����?)t��\��I�������UB �z!�8�2@,Zt���r������'�NG���@7�m����Q���AL�Mt[5c
�r	0�k#.�d[
){-0%o,�����^�y�U��z�b�li,������9��XLE�mS�q�f��
B�57LAC�z�O���b���"�l��>������hk{���eAZ�la��$"��~��r�8����e5�h^r������f���b6������8�������@��?�t��m?*��e�������~��Ke��D���21�i�,`*sH&$p,����_����#��c�����P��S�k�^UQ8u�������P�������~������H5&�����\�_4LN��������6�9	H`�v�NcL�rc5Z�Fz��+��kq)���� X7�
~�\��<�|-@�7�_^���+��C~����cu��r+�Mg�?��*y}���7o���m�hV���&�L
+$$9L��\h��u�f�x����lQ=m��*�8����NC�(:If�8�i.P�
5��j=���||�+F�������M��1����v�x�������o���}��-��Eb~���H�lo;6*?��ML��f���u�	7�i��d�;K���d�$���M���R/)�������H������&��,t��,Mi�w:=d?5�������0��o���i�AO��+���/u�q�;^��j2�5o��,(��i2��� �%[7�Z_$�V���g[������#����rW��r��F�++�"b�3���F.����o����4)^��&���v��+������@�3.�RH���.`��fX��M<���;[A�;0;X��Oz�LnWsq�K9��X�������O��xt��]���L�1I�������f3�i�VK�7���Mk���l�~{�u��6�^�����x�Yl������P���?�E�*��!�^]&W�R���R�24�cu ��!�X���
�2�%%����.���9h��F�ru������ZI��9f�����V������v�`S�������95���hJ�tI�k�����O>�?:>x����99���������,i�y|]%'Z�s��r�����97o��J9����U��V�epx���ps��jK�V=�V������B��E�.up���O���&��Rm�'��h��f�?j�$��[=Q,e��F�J���2��� O�i�Q��I2iS�*�1[�#f{�AP���-�'�?~p����^%�x���I�����]�i��	�9i})���v��V������1�J'�|���&e���;'o����6V��H����@�m�Y�-o�/o/�����wNau�4��k�a�@�t�[�HB3�;���)gcf�E�~t��`�Ae �l�h���-�^1L!�#+��V�F�����l,�[��v
�d����\\��,����E�MY�����*B�`g�U�,�I�ge��JQSP(���"=��`��5R���Hq�UM���\&�0����2�Q���t�C�w{A�:?j��5�����[�]Lv���*�4:����h����������j�Xia��m��M�!^s�*���-�	�e�"T�e��C����D����
w��1���j}���)�^Y������S���Ds�v��3/�����.(���I/�x���2��g��,L'���iV]���d(!���`8D,�y����d'W���i+���a����L��Q���+��3�}�X����X,���P
`3����6LG����}� _��)��N�g�������/����Pf�9��|�>�f#vYa-9��O{o$�1��Y��v�gm�_�����r
���w���$��tJ}��r����K�8��}�Q	�f	x�����O����T�O�6�|��k�/�<Q����\�}x����h�����	��W�p|�1zqn���ky	�0Q��1��R1�cu;��I��jk�9F�jw��3��`���-�[�J7�j���jr��e\����n�"��9��q�������~��������������
4�qZ�����%k��o���&��F��)������A�A����I5P.XZIx����D�!���<��sV�"��,r��������Za�*vvf�BOg������g���������F�A����f!c���Y�\���<��m������M��z�(����J�joZ�A��U��J�C�m�F�Ze�������������l���l�����t����tD���E����{aD/�4p�e*�5�����/;>�%'��YYi����`���P<�a4~��w�g*�AJ��������;#@�bz1�J�����:�jh�>k3��`�T�s���|�Bz����3=�8����^4��$����8�II�P}i���x�����?qX�:����	��
���0��J^/����.���@�#��q@+�B���O!�"�%�7��8�c�Ayk�"������_\RS:3�"�A���c9X������V��^��
�t��PT>5����}s�vIV�������hr>��Q��[�c>�2����t�_vU��5�����f8�"�!��>�������V������5-^��y���Q�n<q	����>K��5�T?�X~����SG~4T�$Ium�.D���H���d���_�������Xb'���D����.���Z��x{��\�u��oHo�N���+{;�s�LO�D���0M�������8�
~�����A[�HY&J�����E|��>�i�X?m���`��|�h�s��<�C�e��������<�"����[R�<,�$����*�M���{���JP�L��X�%�]	e���zy��s<Z9���Bd��l�����.V��!z����H~���H���aLu����B��~�oc���|m�!�@	�����J��:)��Z���b��
\���� �t���hK����f�Ht5�UX����T��<!����K������D,���)z�|��3�yI�{�.\.�s��*�Gx�"�+���@6�<p0��U�2��������O�<>Lf�W��e�{l������K��~92�fK��'����2�m���&y������/�x�N�)�����m��	0�B'tC^i�@�2�K�F]����kN��i/�0$�M�9��e�T�]���_��A��HM*J�$=N���9Q�������G�����p��?����5�},FA�$�E�ZsU&�I�e��q��)�����t�)z-Y���[�{���Pj%�����&��|o��3�����"������Pp����b��TEs�K6�l��]c:���+G��kt���%����B_�����Ms^�d<�����+s���H-^��D��.6��omu�-��7���v�����n0�~
�'#��ZjB>��?��e�����,�'(����c�QYZkO����tS��^��]?+�����~�w�A�����3��-/���g��W����~s���{�>LF�stA���tDy�e���tL�Ey��v2�U����+� >�������N�O.��x�{R��fz���(��v��4�"6\���6;�I�c�����D��I�q}'w��5���h���������'Q6y,F�|�!p��WL����4M>�����/U��P/�gG��Q$�OG�{�/N^��{s�nc���{�������'?�K��Q2�4��/A5q��=<�QJ�����3>��L�L�Hio��?D��xt�!J�m>�g�zJ'Ge���j���
�/U��\�V��JU6��������n�������au��
p�[V�����{]i����:
���MUo�E?����+C�gT�'$��cU��h���������3LS\P�&C����!���<��I�����Y/�PWu����������I� �L&����4������0��$���N���2<������e|[?5���R���#���=�W�B4���
�-1�>/g �%���t������� �x<��n��v���A��X?<Y=���*���d#��W+g2Mb����y����[p��Qd�hE�=H�������J�7Z����V��B���I�%Q�r�:|���5��D�3";��\�[�@w�@8>�L{����P��3m)��Na|8
&��A�S�
�`�o��4eQ+&`fn���F�l�d�$�cD�@�i&�m	��0�L,k��U]6��R����T�����q���q!?��_��w��G���!��m�������93���j#cb���"(��Xb�B��.����
tSk�>v���V�G�\����������=Lj�������
#74Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#72)
Re: GIN improvements part 1: additional information

On Tue, Dec 10, 2013 at 12:26 AM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 12/09/2013 11:34 AM, Alexander Korotkov wrote:

On Mon, Dec 9, 2013 at 1:18 PM, Heikki Linnakangas
<hlinnakangas@vmware.com>wrote:

Even if we use varbyte encoding, I wonder if it would be better to treat

block + offset number as a single 48-bit integer, rather than encode them
separately. That would allow the delta of two items on the same page to
be
stored as a single byte, rather than two bytes. Naturally it would be a
loss on other values, but would be nice to see some kind of an analysis
on
that. I suspect it might make the code simpler, too.

Yeah, I had that idea, but I thought it's not a better option. Will try to
do some analysis.

The more I think about that, the more convinced I am that it's a good
idea. I don't think it will ever compress worse than the current approach
of treating block and offset numbers separately, and, although I haven't
actually tested it, I doubt it's any slower. About the same amount of
arithmetic is required in both versions.

Attached is a version that does that. Plus some other minor cleanup.

(we should still investigate using a completely different algorithm,
though)

I've thought about different algorithms little more. General problem I see
is online update. We need it while it is typically not covered by
researches at all. We already have to invent small index in the end of
page. Different encoding methods adds more challenges. In general, methods
can be classified in two groups:
1) Values aren't aligned by bytes (gamma-codes, PFOR etc.)
2) Multiple values are packed together in small group (simple-9, simple-18)
For the first group of methods when inserting in the middle of the page we
would have to do not byte-aligned shift of right part of values. I don't
know how expensive is this shift but I expect that it would be much slower
than memmove.
When values are packed into small groups, we have to either insert
inefficiently encoded value or re-encode whole right part of values.

The option I see is to encode bins between item indexes separately. This
still might be slower and require much more complicated maintenance. And
also this much complicates further work on storing additional information
in GIN.

Any other thoughts?

------
With best regards,
Alexander Korotkov.

#75Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#74)
Re: GIN improvements part 1: additional information

On 12/12/2013 06:44 PM, Alexander Korotkov wrote:

I've thought about different algorithms little more. General problem I see
is online update. We need it while it is typically not covered by
researches at all. We already have to invent small index in the end of
page. Different encoding methods adds more challenges. In general, methods
can be classified in two groups:
1) Values aren't aligned by bytes (gamma-codes, PFOR etc.)
2) Multiple values are packed together in small group (simple-9, simple-18)

Ok.

For the first group of methods when inserting in the middle of the page we
would have to do not byte-aligned shift of right part of values. I don't
know how expensive is this shift but I expect that it would be much slower
than memmove.

Agreed.

When values are packed into small groups, we have to either insert
inefficiently encoded value or re-encode whole right part of values.

It would probably be simplest to store newly inserted items
uncompressed, in a separate area in the page. For example, grow the list
of uncompressed items downwards from pg_upper, and the compressed items
upwards from pg_lower. When the page fills up, re-encode the whole page.

- Heikki

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

#76Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#75)
Re: GIN improvements part 1: additional information

On Mon, Dec 16, 2013 at 3:30 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 12/12/2013 06:44 PM, Alexander Korotkov wrote:

I've thought about different algorithms little more. General problem I see
is online update. We need it while it is typically not covered by
researches at all. We already have to invent small index in the end of
page. Different encoding methods adds more challenges. In general, methods
can be classified in two groups:
1) Values aren't aligned by bytes (gamma-codes, PFOR etc.)
2) Multiple values are packed together in small group (simple-9,
simple-18)

Ok.

For the first group of methods when inserting in the middle of the page we

would have to do not byte-aligned shift of right part of values. I don't
know how expensive is this shift but I expect that it would be much slower
than memmove.

Agreed.

When values are packed into small groups, we have to either insert

inefficiently encoded value or re-encode whole right part of values.

It would probably be simplest to store newly inserted items uncompressed,
in a separate area in the page. For example, grow the list of uncompressed
items downwards from pg_upper, and the compressed items upwards from
pg_lower. When the page fills up, re-encode the whole page.

Good idea. But:
1) We'll still need item indexes in the end of page for fast scan.
2) Storage would be easily extendable to hold additional information as
well.
Better compression shouldn't block more serious improvements.

------
With best regards,
Alexander Korotkov.

#77Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#76)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 12/17/2013 12:22 AM, Alexander Korotkov wrote:

On Mon, Dec 16, 2013 at 3:30 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 12/12/2013 06:44 PM, Alexander Korotkov wrote:

When values are packed into small groups, we have to either insert

inefficiently encoded value or re-encode whole right part of values.

It would probably be simplest to store newly inserted items uncompressed,
in a separate area in the page. For example, grow the list of uncompressed
items downwards from pg_upper, and the compressed items upwards from
pg_lower. When the page fills up, re-encode the whole page.

I hacked together an implementation of a variant of Simple9, to see how
it performs. Insertions are handled per the above scheme.

In a limited pg_trgm test case I've been using a lot for this, this
reduces the index size about 20%, compared to varbyte encoding. It might
be possible to squeeze it a bit more, I handcrafted the "selectors" in
the encoding algorithm to suite our needs, but I don't actually have a
good idea of how to choose them optimally. Also, the encoding can encode
0 values, but we never need to do that, so you could take advantage of
that to pack items tighter.

Compression and decompression speed seems to be about the same.

Patch attached if you want to play with it. WAL replay is still broken,
and there are probably bugs.

Good idea. But:
1) We'll still need item indexes in the end of page for fast scan.

Sure.

2) Storage would be easily extendable to hold additional information as
well.
Better compression shouldn't block more serious improvements.

I'm not sure I agree with that. For all the cases where you don't care
about additional information - which covers all existing users for
example - reducing disk size is pretty important. How are you planning
to store the additional information, and how does using another encoding
gets in the way of that?

- Heikki

Attachments:

gin-packed-postinglists-simple9-1.patch.gzapplication/x-gzip; name=gin-packed-postinglists-simple9-1.patch.gzDownload
#78Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#77)
Re: GIN improvements part 1: additional information

On Tue, Dec 17, 2013 at 2:49 AM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 12/17/2013 12:22 AM, Alexander Korotkov wrote:

On Mon, Dec 16, 2013 at 3:30 PM, Heikki Linnakangas <
hlinnakangas@vmware.com

wrote:

On 12/12/2013 06:44 PM, Alexander Korotkov wrote:

When values are packed into small groups, we have to either insert

inefficiently encoded value or re-encode whole right part of values.

It would probably be simplest to store newly inserted items uncompressed,
in a separate area in the page. For example, grow the list of
uncompressed
items downwards from pg_upper, and the compressed items upwards from
pg_lower. When the page fills up, re-encode the whole page.

I hacked together an implementation of a variant of Simple9, to see how it
performs. Insertions are handled per the above scheme.

In a limited pg_trgm test case I've been using a lot for this, this
reduces the index size about 20%, compared to varbyte encoding. It might be
possible to squeeze it a bit more, I handcrafted the "selectors" in the
encoding algorithm to suite our needs, but I don't actually have a good
idea of how to choose them optimally. Also, the encoding can encode 0
values, but we never need to do that, so you could take advantage of that
to pack items tighter.

Compression and decompression speed seems to be about the same.

Patch attached if you want to play with it. WAL replay is still broken,
and there are probably bugs.

Good idea. But:

1) We'll still need item indexes in the end of page for fast scan.

Sure.

2) Storage would be easily extendable to hold additional information as

well.
Better compression shouldn't block more serious improvements.

I'm not sure I agree with that. For all the cases where you don't care
about additional information - which covers all existing users for example
- reducing disk size is pretty important. How are you planning to store the
additional information, and how does using another encoding gets in the way
of that?

I was planned to store additional information datums between
varbyte-encoded tids. I was expected it would be hard to do with PFOR.
However, I don't see significant problems in your implementation of Simple9
encoding. I'm going to dig deeper in your version of patch.

------
With best regards,
Alexander Korotkov.

#79Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#78)
Re: GIN improvements part 1: additional information

On 12/18/2013 01:45 PM, Alexander Korotkov wrote:

On Tue, Dec 17, 2013 at 2:49 AM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 12/17/2013 12:22 AM, Alexander Korotkov wrote:
2) Storage would be easily extendable to hold additional information as

well.
Better compression shouldn't block more serious improvements.

I'm not sure I agree with that. For all the cases where you don't care
about additional information - which covers all existing users for example
- reducing disk size is pretty important. How are you planning to store the
additional information, and how does using another encoding gets in the way
of that?

I was planned to store additional information datums between
varbyte-encoded tids. I was expected it would be hard to do with PFOR.
However, I don't see significant problems in your implementation of Simple9
encoding. I'm going to dig deeper in your version of patch.

Ok, thanks.

I had another idea about the page format this morning. Instead of having
the item-indexes at the end of the page, it would be more flexible to
store a bunch of self-contained posting list "segments" on the page. So
I propose that we get rid of the item-indexes, and instead store a bunch
of independent posting lists on the page:

typedef struct
{
ItemPointerData first; /* first item in this segment (unpacked) */
uint16 nwords; /* number of words that follow */
uint64 words[1]; /* var length */
} PostingListSegment;

Each segment can be encoded and decoded independently. When searching
for a particular item (like on insertion), you skip over segments where
'first' > the item you're searching for.

This format offers a lot more flexibility compared to the separate item
indexes. First, we don't need to have another fixed sized area on the
page, which simplifies the page format. Second, we can more easily
re-encode only one segment on the page, on insertion or vacuum. The
latter is particularly important with the Simple-9 encoding, which
operates one word at a time rather than one item at a time; removing or
inserting an item in the middle can require a complete re-encoding of
everything that follows. Third, when a page is being inserted into and
contains only uncompressed items, you don't waste any space for unused
item indexes.

While we're at it, I think we should use the above struct in the inline
posting lists stored directly in entry tuples. That wastes a few bytes
compared to the current approach in the patch (more alignment, and
'words' is redundant with the number of items stored on the tuple
header), but it simplifies the functions handling these lists.

- Heikki

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

#80Oleg Bartunov
obartunov@gmail.com
In reply to: Heikki Linnakangas (#79)
Re: GIN improvements part 1: additional information

Guys,

before digging deep into the art of comp/decomp world I'd like to know
if you familiar with results of
http://wwwconference.org/www2008/papers/pdf/p387-zhangA.pdf paper and
some newer research ? Do we agree in what we really want ? Basically,
there are three main features: size, compression, decompression speed
- we should take two :)

Should we design sort of plugin, which could support independent
storage on disk, so users can apply different techniques, depending on
data.

What I want to say is that we certainly can play with this very
challenged task, but we have limited time before 9.4 and we should
think in positive direction.

Oleg

On Wed, Dec 18, 2013 at 6:50 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

On 12/18/2013 01:45 PM, Alexander Korotkov wrote:

On Tue, Dec 17, 2013 at 2:49 AM, Heikki Linnakangas
<hlinnakangas@vmware.com

wrote:

On 12/17/2013 12:22 AM, Alexander Korotkov wrote:
2) Storage would be easily extendable to hold additional information as

well.
Better compression shouldn't block more serious improvements.

I'm not sure I agree with that. For all the cases where you don't care
about additional information - which covers all existing users for
example
- reducing disk size is pretty important. How are you planning to store
the
additional information, and how does using another encoding gets in the
way
of that?

I was planned to store additional information datums between
varbyte-encoded tids. I was expected it would be hard to do with PFOR.
However, I don't see significant problems in your implementation of
Simple9
encoding. I'm going to dig deeper in your version of patch.

Ok, thanks.

I had another idea about the page format this morning. Instead of having the
item-indexes at the end of the page, it would be more flexible to store a
bunch of self-contained posting list "segments" on the page. So I propose
that we get rid of the item-indexes, and instead store a bunch of
independent posting lists on the page:

typedef struct
{
ItemPointerData first; /* first item in this segment (unpacked) */
uint16 nwords; /* number of words that follow */
uint64 words[1]; /* var length */
} PostingListSegment;

Each segment can be encoded and decoded independently. When searching for a
particular item (like on insertion), you skip over segments where 'first' >
the item you're searching for.

This format offers a lot more flexibility compared to the separate item
indexes. First, we don't need to have another fixed sized area on the page,
which simplifies the page format. Second, we can more easily re-encode only
one segment on the page, on insertion or vacuum. The latter is particularly
important with the Simple-9 encoding, which operates one word at a time
rather than one item at a time; removing or inserting an item in the middle
can require a complete re-encoding of everything that follows. Third, when a
page is being inserted into and contains only uncompressed items, you don't
waste any space for unused item indexes.

While we're at it, I think we should use the above struct in the inline
posting lists stored directly in entry tuples. That wastes a few bytes
compared to the current approach in the patch (more alignment, and 'words'
is redundant with the number of items stored on the tuple header), but it
simplifies the functions handling these lists.

- Heikki

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

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

#81Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Oleg Bartunov (#80)
Re: GIN improvements part 1: additional information

On 12/19/2013 08:37 AM, Oleg Bartunov wrote:

Guys,

before digging deep into the art of comp/decomp world I'd like to know
if you familiar with results of
http://wwwconference.org/www2008/papers/pdf/p387-zhangA.pdf paper and
some newer research ?

Yeah, I saw that paper.

Do we agree in what we really want ? Basically,
there are three main features: size, compression, decompression speed
- we should take two :)

According to that Zhang et al paper you linked, the Vbyte method
actually performs the worst on all of those measures. The other
algorithms are quite similar in terms of size (PForDelta being the most
efficient), while PForDelta is significantly faster to compress/decompress.

Just by looking at those numbers, PForDelta looks like a clear winner.
However, it operates on much bigger batches than the other algorithms; I
haven't looked at it in detail, but Zhang et al used 128 integer
batches, and they say that 32 integers is the minimum batch size. If we
want to use it for the inline posting lists stored in entry tuples, that
would be quite wasteful if there are only a few item pointers on the tuple.

Also, in the tests I've run, the compression/decompression speed is not
a significant factor in total performance, with either varbyte encoding
or Simple9-like encoding I hacked together.

Actually, now that I think about this a bit more, maybe we should go
with Rice encoding after all? It's the most efficient in terms of size,
and I believe it would be fast enough.

Should we design sort of plugin, which could support independent
storage on disk, so users can apply different techniques, depending on
data.

What I want to say is that we certainly can play with this very
challenged task, but we have limited time before 9.4 and we should
think in positive direction.

Once we have the code in place to deal with one encoding, it's easy to
switch the implementation. Making it user-configurable or pluggable
would be overkill IMHO.

What I'm saying is that we should make sure we get the page format right
(in particular, I strongly feel we should use the self-contained
PostingListSegment struct instead of item-indees that I mentioned in the
other post), with the implementation details hidden in the functions in
ginpostinglist.c. Then we can easily experiment with different algorithms.

- Heikki

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

#82Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Heikki Linnakangas (#77)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 12/17/2013 12:49 AM, Heikki Linnakangas wrote:

On 12/17/2013 12:22 AM, Alexander Korotkov wrote:

On Mon, Dec 16, 2013 at 3:30 PM, Heikki Linnakangas
<hlinnakangas@vmware.com

wrote:

On 12/12/2013 06:44 PM, Alexander Korotkov wrote:

When values are packed into small groups, we have to either insert

inefficiently encoded value or re-encode whole right part of values.

It would probably be simplest to store newly inserted items
uncompressed,
in a separate area in the page. For example, grow the list of
uncompressed
items downwards from pg_upper, and the compressed items upwards from
pg_lower. When the page fills up, re-encode the whole page.

I hacked together an implementation of a variant of Simple9, to see how
it performs. Insertions are handled per the above scheme.

Here's an updated version of that, using the page layout without
item-indexes that I described in the other post. This is much less buggy
than that earlier crude version I posted - and unfortunately it doesn't
compress as well. The earlier version lost some items :-(.

Nevertheless, I think this page layout and code formatting is better,
even if we switch the encoding back to the varbyte encoding in the end.

I haven't tested WAL replay or VACUUM with this version yet, so those
are likely broken.

- Heikki

Attachments:

gin-packed-postinglists-simple8-segments-1.patch.gzapplication/x-gzip; name=gin-packed-postinglists-simple8-segments-1.patch.gzDownload
����Rgin-packed-postinglists-simple8-segments-1.patch�\ys�8��[��tUZ�(Y���&5��NT�������.EB��!H+�L�g�w$��v:�]W��<<����F���t&Q!�-�[#?��I���Tjk%[7�'g������(	�g����h��
�{������z����N���
�v���*����w����h�����gR~!'i�(��H�82)�/?�b&��E��H)�W~�?���+1��L&�)�Q1iF����#
���6ESl�A"��c�_�b*���������A��y����~���=�����LB��5;������d�����2&s1K�����������|S�
|�����DQf�lvngJ�a���K�o@F� M
?J�,	�
q������c�jv^e�*�d"�H�h�D>���O�����s|���2 <�w����������C1��T��	�Zq���gb��&(~����r�Aj�J5���g�B����
*q2����$lv4��e$\+3*���z�59�N+j9���P�����Z�O�$�G�m�W�{���%�S�2-P�`*���� `
%=��a�� �Q�d�l���4;�WQ�������XP�1+��2���D�i�$��)���a4��1>���,�����p�R�����f�ZK��(�`PDi��1W�`�k���^g��V+���n�����[����	4�f�[���-�
���0�q:�8���3cT��mJ�1�1����]8���8Thr>���kT*��q��O�w�}���� �r9�p_�!�*���G�{Yh�mE��Lo��������6q��t���C�S�m���+�P�H! �x=�����K97.Br����Bz����x�L�����C���l�B�~���4��;�&9��8Og�����v
����������������'�
�P��ipY�F2o�F�u�wEn�V��p0nM
���P���=o���"5��I�$O~F�h�?����x
8&;�' ('���<���
i�w���J4T�#5�2�a����,0��4!mu�~l	5��Kc��d>�M��
��Q>J`����9�gMf�������8q�1���������(s����Y��@4m�m�K�i��.i�1�g�>&6����?�kYQ��*����U��|�")��������L�N��rR��r�sU��.�QF����Jk��d�}P����R���&e���,�FN�c��<�L��x�_1{ �cI�K�4��^��H�}I���	���qG�P4b�>���Q
���B�����IB��3�Hw;����.	Q'FT������gv�Nq���� �<��B�~�)rF�>�I����/�0zN����
h�������EE��)H����JD��C�6[0\
�70%���e
h�@Z`!	�#L���h@l�=O<��F����i1vS���o*{�����*[Gr	2���YZ��Rk���`�A�Fv�P*�{78������P<��\J���T���� m��@���������a�l�k���G-��x%��Ba?�Q9��N�xJb����Fg;7��g�~�6Az���a{f�a
K!�A����
I9+��N��Yt<��*�u�!e1��r&�A�O]'��VG2��Q��['(n�*�R��M�A�L�� �`=7�����,��[gX��al����M�1��h�Yt)�+���9���H�T�����@���u,��kMC��K��#4��]���$�!JKE$��0��s�!��)�a��(�*b�-� Q^*��4���sJ�4����9Y��0Q�"��IH��sIv7��W�q���M�2�j��>9C��R��)h�L���	s�SLZ��6� "���'�
3? �QD4I�����nB	������!g�t�Z*<�1�cBJ�������S��PT�@��T���a�#(��H=��U����|��25�AW�"�|���4��j�9J1����s�J�����vI���{�/���y+z�k�/zb��7$z���gI�a�X&�7$z���"	���_�H4��aj<���{�_Ep����2&����^t��(�����erJ��9�Qy{K��.����l>��W�:)�����Z��Q,M�G�3db�-�������rJ�R3�y��/������
F�[<q�\�'T���IP��Y�MaG���>�Z;�{��!�Z���P��s���1�$��Li��u<��D���/%�k.�sJu��p��U�=���
S��p]PK�6�Mp�{/\iaT�g�Q�������Z�N&���Z��e������C�T,F����{�}�\��� �:�Z��F2��1��@�t(�*�1���6��
�j��G:�W�Q���Cy���,V"<
P���b�t7��t}wz����|8<?��������SYq�5��[�RX�eh���M-<a�}��<�&K���b�(�J�q(��������~�a����G�`�9�R}�D�2
�*
����r+�+h
7�~�l'oPC���c�bW�Y\�Q���	8zs2��>��de����aH�F��{�,�v���x�C����2T��Y������u���8�"�+�~`�p(�5��V��`��nN�#?*���5CT�rFQ^q�Q��c��(��� ��&����Y_�rf�����mG|����8��
�2�(����R�;���W�g���e&�����4�i$
���.�(*+SD������!FK������s�Z����1�Q<��&US �i=[>�2�SJ;!�u���fQ�.����v�td�
��E�c�����ht�v��� ����������5C���!��C�#5<�FO�MEZ�&���i�'��C��bS��)�4�
0�c��C��7�c��n?F��������O���~^[<t��)�
�v��8��� v���
��������`xvr{r�������������7�mm�7<���t�+Bc%� �1M_��EH���xiy���jL�E��]�	����F1�����ie2��v.�O#��\�SM��2Hj@�_���l��,3�=���n����������1|�m�7,��[k���&����!���>���h{���'�I<����(�OR��:���s������'^K�_�7����hk_p��+�0
�*��������#����xl9��`�F�'��&n��d�J�vN�������G����7�9�U.�n�u�B���<�����q$u�[]���������e6U�$�������~�2E0H�8
yuv��������z��o@�/ZCgQhx��X��8p7�\�6]���Y���"�
��]�y5��
���o�v�9N'C��L��D#,��4-�����������������s&��-�2��2���Q	6�a!���,s�km���;������w�
�j�e^��Qp��11	]��������LT=��@�$�����W*4�V��/3�H�������KG�&��tu��t�]_".x9���EC����V���@�|��m4��Fc�I����C��'�'� �������}86��C�L|#��hw2�L�-U�E��FK0��S��}���4P��^S�����enZz����� e&8����p����Vo���m���Y�T��Ayir���/���W��R�#���^�����&�7P���<*L�2��*����OT���\�)��
!�B�0��<�z4w ��b������������
Qg9�g�9	�z�hd��y�`ki�-���_������=������_+�kO�>o�����~��=i�^�5�<�r�1K
/�
�������I��{��I�\�b��B7^�8_���+~�����y��8��]���3�|_G����z�"�����o�kJ#����h��:��C��Y���i����4��L�A�-���J��eJ\���� ��/'@ H��rJN>��q9����K�
Q3mC�.���h�WC��d�`�1��*>�yB�d�-��+VSjZ;y��`�2\����o���/f���@^�1%�K�����xi��QO�V�����v)e�`�[Vl���S�����-�����K�����n>���y�����*��D��j���bx���x
m��,���q�)��29d�i�{�^���F��ml
���e�?��p�)AT�K_I]E�.�e�U5�;�Y�W�|y�DY�������B�`L�0�����xf�&��a[7[�p�$�/���������<��cnqV��Wb��������6�����t��[�;�a������~�+_�J�=�M���Ej��>�eSlm��W��_M!6�?�.��
���{b��S�=������O5������=PiD��Mg��������<��v
�8����#��l�t�����w<�p	��v!��������f3t���t�R��b��H�?DI��~77���B��z�����l�^�oK��;��z�,R���d�s���e�k���!�B�+lK]HLA�P��z0db��
���0�e_���
K�|�s��Kx��bs�G���#hC��0W����a�j-@Og�b
����������wNG�L��u����-�d6��Z�]a��n��������1�l�e���#�8F��?0[����5k���=�LVNX��'5����_�����)�E
��Co�9(&���&#^d�	y�&�e�Yc[u�F��F#<~fl��i4���7�����8�L�0�	X����&~:���D�������4��K���>YZ�<�\��Q`��l�E=c�u��=���X���,�)�x>�m���T�S�I3��9���a�">7�jR:���.��V�^@+qm��<2��_5��{���'�dgr�5z+EV����3��M��#�`�2.�O2�Z�e��&z��4�Mi��'���/0��n����F����������,F� �2P�@P���L)���T�V��Q���������S1�&F���pr����#k��O�����z�����P���5��~r�o�,^��b{E���F�D�n���|�2�n�����I�VRB&�Dz��l7QY�Xr���oa�������]��[���UKwy��f��g�G�/�=���q3|�_&��!��V��������6���S���/_�Q�E�i�yy��8Il��U��P����L��z�9�Ua��e�Y[wJ9�?���v��q(������dH�\N?���up�^��W����o���|Q]��Zu+�5��"�e���u/��(�A�jl����4����x����
 ���[������vOc�#���`��x�R5���P��1�?O����n��2?J�t���Ee�t��F���r%w95wA�������{xT�����X�*�^�"j T�(&��A���o�I�O�2��BVAM*w�#H�Z�K��2TQ��������yG�5C�>i�EM����kN��!m�.6�xX�(�U;�-��``����F�iI���?�_�Mx�
����I�5�1K(��<*	]�FzE�Z��%j��^�uf)�?\ST��w��zg�BN:��"']T�!$�W��>���������� �W��������$||{]�goQY��N�8��P^�w�X�P�	�����!��W�`/_�q�NG��ox�s��LS�YCL�A�W<�n�-�TlG\~���z�?�a���� �B6P����Y�0z1k���X��v]��5��=��d;|��`l�3K�?Ap�|,�?��o\r���r�'�f����'������SM���`��bs�0a���g�x\44M<���5�����}!t�
,��Q|-P����r{���x]��73jy\�_��L6\��+1����,(+Lnm���\��N�`&p1�
y
�7Q>	����Os���D���~�"aV�������Y����p����������%K���m�����E����R�:k��3#�;����@��^����T����R>UM����dj1c1[���������M��~�����Gxt0�CP��!p0[�^�W��/�8��m��C�#�]����=���&���-��	�7�����[����)Y�4���C;�R���{B>|��
���F�K�l*�\Hr����%}FK�����]dC�BM���tKz�bIf���04�!@0��8��\�qpr^���_�0�t?V� ���W�w��,������E&�[q�)��"���$���.����4�6��7s[���a5
y������6(%*�Z�w�#���H3Ab��<��Z�Z(�!��1�������q���6Z�kN�������0����(�b*��&���Q��B��D�]g��g���H2W����TOM����B�����9���������?a��^�@��J*��lM�H��6���������o"s��K!��Q�1��[����!?Th�l�������]���Ys=���u/���^O�Q)�V������@
FWF�+o,4�f��;d��)��5��3�%	�n<Y r��Xs�H^`VD
����v�����!-$�44s@�#p�����6��!��vs�r�
�?�B��d��(���+�/��*��sm40�2 ������)?���h���2��~��C�_�C+�/�Y�+�A���}������Loc����}���&zY�]I���+���{��^�eV-6���8����k�����im��C��~k����	|��%��:M�0P��q����X�y��a�	����!�����@D�_���|�(�&����4?�f7����2Gp(��U0�7�����tdX�a1]D���Wi:�J3��$�'�p�E��jzl���N����d2����G�@��&����	�er�P�	W�cO�<[p��\M	+��������c��1�k]\Q]��l?��4]�_�3px��CuA&���K�4p���#5�XJX~�D���e�[��k?l>��6����p-0��B�4���1�_I���@�	����vmY����G��	ac��������`�+V�-��rgd�]�;0"�gSDP�aT�b�����kDz�[��C�iIU
�3�bL�W��U��C����R�B`^s3����\@eNoND�sx��e_��3u����9p�}��i7�?B-����c�������)/���s\�{��[�������^P=Az:�7����]���qi���=���i��n�+�Tv��V����#�-e���v�t�sn�6)_��q[�2�9�����P�#��t<�V�;##�Q�
MC�Gl�	���y2U���~x��E�#��@zB�N�WPjg���#1�:���4G'�X�aE'����A���������f:2�����!;��`G�����?����j��jz`
J������D�P'�qyT�/���Y�5C��d��@
�OP#\�,����E�Q���v�Z��o�f�v�����N2�k�������-�[�KB���F�
��sYL����H�����" ><��Q�y�P�_���9���*�JB< $7�j.���Fbmp�)��K��z��iV��D�Cb�,$��U�l�9�Z�v���a�^,5�`�:���Cm��c-S!9����s�^��Q
��Nq=4�����"�2[Z����U��6�5��&-��O��R�f����`���C�7�
��k
)Bv8��}�W�iV&2��_��r��9�Q@o����Y�*��%�I-n�����p�
F#?���������k�eS>m
�	IGW���+U��?���S�fI?��p�
]�>�~���!��ym�u��H�	cO�Q��k[�
��h������?�6�p�6q\��(4ss��9"e���=������YN�m)�_��`CB�e��e\��"E�8�;^����$�_�+��e������u_�y�^p�db�\_�<��n������
7�C������X���L5�_�����n��0+5�g��������&���7��T���+�*��1�5m��Y�b�;�&�"��~1y��
��9�h;�SA�~�w����pn���YH��y�E��������L������)���7�����73L"������f�<����j�������3���g�*�K��G��G��w��9��x&L1�j_��2?D�08<K
�=���"�b��-B��7����h�����MQ���9V"���KV���p����B��#0$��a��;+�����������,��N��Z�!����
�|_�C�� ��uh+��\?~�E����3�3H�gE�fT��J�\M�M�h�X�p}������i��&�t����RJ !jN���]?�atS��U+yd#��&�o�������GD�l�8�	h���`u5E���R[��+|� �ItD%t0����9�M�og��9C�2�����4�1�7��#��|�H�u��;MN����w�j������������*����6D�L�:@E�2��^&,8��e���	���q����:/�0��.���������N���R�]��.8X�k��m&�j�9k���9�	h��^��H �'�I����j
k' �������'�#NWxN��f��]�\?A���L7WCm_#���u�n��6t��x�	������=�X'��i!�j(�����_�$R�~F���g�y^��@�o=����S��~��a�p2���+D[Wps��[�Tuj��>�n���Y��A|��R�a�����	�jv��N'�O�}1������J�7hC�6}�UG.�9aXr���u��&LS�����r���f���'��sV6�2i�t�����k�P`�������7kzsN)z��_��&"�U���SX���7L<�	2"�C�Qk�}N����n�q�%�*���L� �O>�0H��AiGP�4d�����(/R:�RM`�A�B]5dS\�����d6�l���	���	T[�0YO�}+u��:�u�����t��g
h[@�~�}Zj���������S�G��O�q}5�?cK�N����eN�1�
k@���>��Q�g�5i����<���n7�������:�k�K%�o1��~���p1�:�:��/U�(��)y�$��+1��:0V����\b��B�<�TO�=�
����t�He�s�w�{�X���1�(E�)p��*Gu�0�����|���{x�6�i��x�R�2�P��$�=�E��W��}*�\�����V�������Ji�+i���V=��K�o��g*5x��s�\�^�1'�=#,��B�w��|��A~�Q�bO��,+�B����B��n�UU�co7)�R��_H1�o�/#�<I67��+�`A�����$�U����h&����}(F�i�����}��������x� #�e������ �Lo]�
<�����;�a��{��0������I�2;�`�^r�!�����j(���9�&��' E�K����q$Mr]�=�0a6N���=|QD��+>�H����������s}q����6�S1������:���]eD��R��3td����	��HY��&��������a�,u������p
P�@l����eY�d��?�������
��Q���U�	�����D�i�*��~m����]���\S��i�q��2G��WA��.z%��fT5�\����e������Vg��
�e���K��[	-�C���%����+��D�,��S��
����X���.����{Q<~O�Z%|�I{c�%�~���_%k4'\o���8�������U����o���T7��u��5HBjv�,[���:�\j��D�E���T;������{���BL�'�N4���f�e���lp������Q.�R�<�����I��W�c"*���d�?">���N�
��4��\�B�������G�7�����/Rm�j�b<G�ciw��4�c�y���3���8,[���b�y#����%)ae&�|R���I8�R�<p~qdKn$�kM�o�'s�s9D�#��3��3�a���>�j�������a�\e��{��Q�5;J!��.����\��)S��x�#���<�DB7���r=}&SP��!E�'�!u	M[��{�s-7�Q��_��3�CK����	�#5d]q6�LQd���������w�a��YE�=������.Bk�����C!����m�?�^o�=���d��C�k���|�����?�)T^�BFQ����I����r|T0~J;��3i��0��"��l��� �R��%D����"5��3����Y_:	� ~��M�|8������x����YJLT�B��hW�g	a������A �^{�!�5�����'�v�@eqY����x��#��_.1K��*K5��*/�Qd�������b��o$�$e�����v/���Dm�
�Y�>(���
Q6��'��$���F~�h�����=�|b�O����:q��L�*��+*b�������e�7	��!�����
x��>
���d�k6<����j�-��i�cT*,�H@M��"��X��j�z�b05h3�N/@D!�#�{��x��S���K/n����8��[����������i=�N/��_�+�����z�EA=��Mg@nF�\���KBH�����'N�D|L	>YGt$������Lt]>���Q�s����Cni}��7��'k�V�O"��o���+v��#���V�����-~���	u�����~�uok6Fp9Gp�z[�>�~|h��&����B]�~�;���� =��1��x�����w-P�Q7`<u�+`�wD������=1"���l�����tyt�u�N���Z��b�hL`e(2�6����kj{_*�,��_���l�#;'�W�4�,4�9�;YH�#W��9�����*���o��b4�L �����?N���2Z���;�8bz�)��0@�����.6!�s#~g�l�������6�`tss���lICC����rM,�����p`>�&PRA�����!���J4�
�!T�����8�Ui�3ur�w�F<,�,���������t�*>�������3C
����W����,���1���n����k��*RO�g�Vw���f8���}X�����5�4�2�'_F@���U��2a�Y�j���(�a.����,��]@�53z������x3�9XkU�#����,��4���$��.w����w�l��P�n���?#�A?X~#ZO��[p�Z��3�
5Q+������T;AC1���*��&\�v����I�G�����������M/�<���4,/� .Y�U�e�$�G�;
��c��]�I��A����9'��"Ws�K��DgC�����j�.'�?�Z=�����i���w:�����E��qm&\d |��7*�S���I�$r���5����@�����>�o�P����f��7C�L�3PlL���P��]DU�R��B��,�oG6l��x8�^i��j�>�#�Yf���������
(�5������V�d�����K����hU��d5���nQ-P(��&������lW�_��k��&�Oy���2��b;-R�d������~I�o��"�k�\4>��m��G�9YllK���HhW4�9����J���3������9"���N�c.j�R����bZ%'��S+���5�Ele������[;I�����B����/������$q����U2��L���B����Y��[�4�����U#���3���	0���d��������=�,7�>���X���rd�F5��F�����J�1��y�a�f$P�S��L����:�f�!��>L5ah�|\@���l P����J�U�:	�M��R�����]�]�#�T�J�fI����Q��mS��q:����[M�#���PY$5RFW���o��� ����&�"|
�
�Y���!��I�.��tl�fx&�Lpg����3l��m��K�]���f�E�eR���%��9�Sv>E\�o�����u����Tm����"[�-;�����j,����9����|�l�� ����p���w���od�'�e
$���`'�"X��<`�����y:����=�!�QOn�n�ynI�����������<�\l

����������`/�I'�v}��L��m���N��&� s�6wZ?�X�E��tb.�.��Z����[�8��U�j�$w,�	�|W��!u��l����5e�:�����#��m�LU���J����TT@;kZyUt��[E��)z��X�<��3K��V]����*j��3�\��-�����\�?}�No_�/��O�.N.�]�?9i��nP�����^�]��~�cI��!���r�H%L���$NR��B�� �R���C	�_g2�@��{vX3&�Z�Q",g���qt�`f��~9���eu�5Ur��\P�H����b�R�$��J\0].�/�
����������z�n����I>�>���l�{�v���zb��?�F�|E���\U+���f���Vo}{m-�����{�������nWm�A����*f�-����n�����F>;h�������l�7K�7��dd~ABn������������8��.����:l*��F���A���I<�)������>�i��F����io�w6)�������:y5]���E�)���l�2
�i�
h�����ljJ�@�n�q/��\�'�O��@��+p���i��?�O�s����$P��6N�]�����y&�����K�Fi��[
O6�E��%��M���Jm\^������l����%����9�S�C��b:%��0D~�D���D�S��?I�����$���(��9��r��y�+��l���@23�����J��6� 6������Ya��6������bl�F�$6r1H	`2��gz9���G6��a��M'_�t����+�=2u����7*�m��S�8s�p.�J�Q��n���`:��kT�:���Eh����gnP���b�`�8�g�:�Zj��>�(���5����P����A]2B���6A������k�f����P:�S �p�����������7��)��2��t8�k%����(�Xff�����f��`�G����3��g&���5��{P������d4����o0�QR�N!�?��QZ����0��nkc��".��L,*���AB���%�V���������WgRa�P��d<�L#�����U(w���t�����&�'�i�����a6���hA�$��G���8���>�"Li�� d��1�M/�6�
���������$hy�����'\���������_E��vc���r>���"��
�{�l!s!�"�~�����6��)
Hxz������}�������7��'���8y�	;M����������3NP���,L��w���3X%*��G�����
���V7`t�d6
��$,���1F��R"U�]�D*��x��eu9&�g8�F�Ab	(�iY#��/d�:����a�6�Z����g ��Q��l�41C![g�$���%�hI>wb/0�����-e��.�'�g����z��&�,�A���C����D�5��~<���c�=�9J��MJ�@���9'�
4k�t�r&��T�H	H���9�/Dc�$�[��!�I��..��A������`w67[� dl��67���d��K��4��%�����J��)�����4���������_�q �l����~�������(�GF���e�>�z�n x|iu!�#�U�u��n�O���D;�������`�Q�X� 6�XdN��[b����'�%?�WgF��8?�������cU��&��W�C��B�4�6���-������.Ih�Ga��Z�M�5����/��W4��}%!�=�*�92\O�Xz��$�v����o���8����[�E�z[�K'b��r/f�`/���kFY��bE��}!�l��N�E^�YO�S��KE�.D������X�EKf�"S!��s�g�q/�/����B$e;.�:H`(z�G�]�
.�g<����[x{���le�S����
eu����I1�k$m+�q��������6����6�-�o��^k���D��	���r?KD>w�b
UoQ��+8���V$�@���!C��c����ua����]��v��{cp�%�$��!6V)�'�b��Tl��AvCE�F��$e��e&�H���V8��W������ml�}c{s��?�>0�2IB�AI�P�Q��������Qzl����B�0d�l�y�����M��o��3��oOVjR48sj��J����r� �� ���\q���O��g��I�j�x�S����&��L��	�n���S���-q������TSZW�����Lmx2G���6������>Yl���|���
���#�a|�v:`6��['��O�I�v'�9�����M�#�v���ii�KW/������'����[}g-�;����fQ���_�k������n���t<`Q{zT��Y�q���k,��c�J���*����TjB?�v+��5�q#�u�O�������7������������+����EVs.���M`������w���o��<kn�`�5[���MS�����lt��|w�����������X�[s�?h��=K�H�^������N�4oEJ)�L�f����L����(�8k��W���C�}, (�~�^)*������e�����4����GN��z2�G�&�
�����;�N���U7�M�h�b	���f��s���vw���N�mJu,��T�HUkc����8�}f�|j���0���g���j��������~��Hd����r0X����G0���$����/D�TT/x1(����`D<*�Jy@@}1:�fc���W+�*����o]��I���VE�>�h�d�|�O^�\��h�U/@%XG@����l����;��q�P��AG���=��+D�6Z����}�&���,��l��\�	(S��B����6 �4��n�D�S��~��I�;���:Z���&Zl�k	\�����r������<[���<����!�R���o��B`l��i)�L�k� }�R����//�H�6A��lb��y;���+^�XnaP��Y�"�a;mK�i���)]��?�l1B7�W�
�rzuw��z�D��v��i��yz����37�-mY�gIL�7�V"I���C2{�.W�>�g�)�:������uy�X�����.�/��{3d��D������������n�;�o�^}���0	��
����/������1�d[��3�0��15XaKD����}vM��S��-����~~���~��x����^G������!�*�L-���:v'D�g����M�����`�p�Ea����[����P�E�����R�_�lL����	@!���b��%��7�`�:��
�N[{�W�3m)*w�4��?~N5RC�~��t����#0�C�rxL��e�62�����O\��/�fbO�����Qo%��!��
�
�JW��'lzE�@������"��gGF���ZR���?~�
�	
]���l�l$g�i�����$���Y4�gW��Q`�Q���g���s�0������K�w�M!�$)������o���V��$������m`���!��#��8��s���-���Y��0����X������9��"9������:�dP\�og�������������bkg.���]���5�:��
TR8Nb�"���Km�r;l0�%;'~�T�u����S�'�}�.�l�%���������b
��G��O�J2P���6�
�Eh=5��}��9O*%F�`��V���B������y}��w�[[��}�������(k��j�1_X%�b�����u9�FP��r
Gj�������BT!gH�hl�Z�����(bO��$`���L�H�������� ����������c��3~�(F��L.U�a�fS��h�:p�s������y'*W$�
$	����x���Z�j2BbR\L����Z��|�B1$�	d^0�O�M~�}�T#:��e���6������c�6(�sN��ovf�f���Ta�k�a6q�cc�U\�Po=0
/�H�sQK�����(:���{����L|z�Pn�V�!���^�G�rY��4w��W��u��<�������G.
���������29��u�f}�s������JR�P�[<Z������L��tJ>8����0�i+Ter�	R���vy�1]n�{�/�>:�$����$}�����{���j�y������=I����J���^�}b
y�pf�b13�'����8�I�kC�|���'����b��Uo���������7������m5���� 1V��0V�-����^���y�C@I������sT�G�D]��U#��JH71e������$��a�8)��(���!8v�Z/j*!bT��E���M6�4O'���k�����#���>���@T��0��A��A���ht�B���Ii���0�����E�1�2h�G�u*(�6y��+�|H9s�v��Mj��2M:����1�A�_P��X7��q��T|/1K5m�t�
��G���U�L�
�d�d�-=����4k�	���!M�!�:�����<5�0B�O�MXOi�������+`��T���m���r�#5q��!�{{���^��l�|)&����_�S�^GO
]j�IT����^���A��?�T'��&=��}����^�&��T����8���}��O)E�	V\���z���$Uph�����Y`���`7`���4��r�O`�
��no�#����#:Q=��K_��9���zJO�f��[�|M���^�U,�~H�����T_K���n������8}�D�pP�����U�6���� P[��{�0E��'x���M���!
D3S}Qa|{44B��tZDR�X��IJ"N(?T����J���v�������������&�)xi>��2�U0e�,���U��yHD8=�����2n�e@$���g3M�E���K��~
�����Fm����T���&JG� ���1"���B*��OTb�
m��s]o��'���4P�����*6�j�����A �������2K���QZ	������2�.����B�VU��*`i��^IA*�N;�W�kk�����,�*��u-x��hc����,��e)�a��xR�C��@4f�|RfV?��s>�;���#��~"Z������&����r���o��?E�c3<3�a?��7�-�<v[�[�~S?��<G��_���z}z~qyzv���'�/N^���B\��b�"r�nr�l��Gs:oN�lX�90���&�� �&� ��������!e��Y���w���}�������o�j(n��������w4���H����)B�d�O��A6t3�P��1A��� %�92�@>���g*���I�U�_�������H������*?�J�Z����e���=|�/
��R������?��������n�?���N�p���pa�_;%�
�c���a�]�����l�D7��6m�;�'�x�g�u��z���c~���w�f8�M���!�1N*e
����K�
?R�xc�[�@gQ3�$O�z'y�������?J65@�� �(���6���u�����vF��{����<~��L�����H�d��M���_�<`���
�?�0������c_y�b��#�����a�v>����j1��d$����7����S�mGTZ���*�1��4���5���?��n[U�v�c���d����\lpT4����X����e�s.�>��l+����/`�be����8]'ov�t-��4�}�],��4g��\��$��p�YRsL���P>y����:U}VaF;���ZB(��Z;�6�D��M��
��!^T��l�f~4%p+I�O��$����[.d������\��C�)���_��n�4�u���.je���C����r:��Gu�G}�������S:���p"L������j�g��v����Co�>=���}��ta#��(��]6C�s��B`n�y���}/�BU��0Zx���U6h�93^��]����U�I����^ljls�_^��
����V����C���W���j"��U�}�'��7��.�����AxLr@|lv����r�{|�~�������e�+R	�QZ�c`����!b��l������~����E�&���|i���W^���JG����;���������ob�����)�=���L��
{��o��jf���SG��i:�$}�'��3:=Bg��zG�M/�����
�M)���f�]*�m)b�P����x�L����s�BaNR�5�����6gH�!Rm���5+4S�'P��p���w�
��[Xp~R�Q��
����O�\h�
K�U7���{&��0$�i�u;Q+��+�c����2Q���n?���f�!(u�z;��:^ljA6>4���L>u�%u��h�H=�e�&�%��a{�������
SU�������C�b�Oa?��nw��������������1��U������nW�����n<D$����<��o�T��	��X�Ur���l���~�}�����<K��`?�w��w]�g'�eGU�O?�|��w�}�>oi�~7}�����2���wH�}�J�kg=`-5��xY���gaO�+
�j��������9�"���
����G���&GpVy�'���By���2���E���#V��`�u�u���2��S��9?�hb�F�{�pt�l�Z��{����S
��rxK/����ga7�!C8�N��8�G�r+�d�6U<��.�0_� E��"_����~���t�r{�Ns0����������� ����m���1u0�2�J��N�!Q�~��4����8n� R\��<��I'�����N�jQ�v��vw�=u�^�CJ|\����������t.�o)Q�/�.XA��i�..��8-����2_����t�@����x!�;���
��;�N\��2�D�{d���cG����
�A�&������O��OV�WwL|���e)w�w����j�4
���_�6��!(��C�G��9��q^�\�tW:�&6/�*�M
��{�Q2���j&�^{C��G����@�r���t�����2����%%t�*�a���Q���`�e��#<w�b��U���y��W��������`��sg^�)�W��n�����r�A�!��vf�^���I7wvZ[.S������mj�V�����zB4���A�i�����u/�N~;?�<:??�����zz��	i�w�e6������&|��9�� ��G�/�2��C��H�}]o�+�P����_������?�i-�=�������{�����P��t�1��;��,����xSB�������X>?���:@��.��3��>I3]t��+�S���
H����>��~|%��
-�}S�]�����
��W+:�{st�����678�_Pk\��+�p.������WR���cI5>���H���
��	��D��V{�T�	���t����@0����A�,�z�B�����v�����6{����U^l5�|]lA�hm��fk���_���|:�u���P���� 9����<�<[TQ�$� ���(�?�1Ec��$��<G6���Nh����nZg4A��]�!��,�����0������������u����,�����`���78\C!W��,�!'�
%+�TO99�r�
�F=������I�-�L�9���IY>}�#�Q�l���KW����b=p]�E��b�wn��C�!���9�&�Mz}��|�u9|�������I��� _�^��
�_�� ����#���a���6��O����4�)/O�HVJY,)ckX�\����*�V�&X&�5����-K"����w������jT�"��yJ2���l�x	S���6O�I�U~?0���k�MH�<u"�����30�i���G+�^\����X&|MI0/����q��D��
�����V.Fr7����[2��o�g���OA���������N�o�K~�O���F�Yee(P5���gD,��������R��!w�	;���R�����&H\%&��
�X��V�k_��-����-E�D<aWm"x��^^-Q�4B���X��K+����c�,����$��c������h���0:�*����S��_v�-b��sn4Y�G2~����{F�01v-#W�o���W>���I��\���o����������]�~����&/�SM����m�����F��E����������4��m|��O�����x�wnx��|	�r�&��$�x,"oq��Iz���m��60z��3��Bf�Y�e\r����^JtS���4�iz��A�����p,�W��������^$�}CkJ��6�Q��Ra�Q&2{��AX%ov��C�������o2Xm�EJ{�73�p�X������T��O'w��TQ�� ������?�n<uC�+��u:����p?����&Izc���� �K����_�1���!e�7�h�'U�Qrl�J���^���hr�d6v���������u�
#�w������P�`>�|�0��&��`���1��T;{�;����z�d.Z�v��2u��95oXx��<hZcb�<=��9Wh��}~��������Y�S�6,a*� ��p��uV?��@���a�M��Q��1~�b�
�������#l#��Y�]c��p��X�P��8��M�m��=�����d�j�8ilt���RBw� �o�dE�{�����Y�a����h&��0,@��x��"���cV�"Z���8��������6�;Nu���l9�:��KxeXg3�|���(3�.u��5���r��c���������=(�;��	I���F�2(�(��=��t4�	��B���@�dr��/Z��������.��7�<G�]o�f��)��.�z\��5!���eu���@bPP;d9�1����]��p���m�w��[��pc�G�Dm��7
�[7�����q�
����\Z�C~MP}�g������?��3�8�����L����z�X+���Bn���	���n����o1�K���FY����d�3�G����/O�xs���*��"�����������RY�����f��>�i(���}�LC�����4������.�>��0�^�����4����N�#?Z�O�Dw�<�B�K�[r�Xa}.��n�1��@���pn>��O�L��q�4����eW	����d�gO�����y�M���zm�����d�	f����J|���������j,)��M�L��Pi�#�]j�l&�x�M'��~�]�Q��y�~�m��$���b�e8����{����
�����#�J�
wI3��i�d��K�*�x��1}V��o�	�V/���W-V�j���?���sO�^9bM����?��>?!]4M���it/���P��
p<����>�z�D0��/8�Oci,�����?F��;B�x��� 7BG��~*���,��P�Av7"����M
��E���z�m�iq
8�	P2m�PI��a~�)\�vZ&��N��WZ
��Zm�"�a��x3��:�}3K'�!���R0j��*�qe�ni�2H���`w����������w��p��f3LXv��l�T�n��~�Sv`5N1B;ek�=��{�/��:����)�;s���>\[E:F07���:���3�q-Q���aF��"������@ @1�2[�{�XcP�]�~���J�����m���Ws��lwv*dg{�Y��#�9���j�����plJRvPF>��F i�"��b������^Z�9�*���!�B���'=���o[F�����"J��y�	��Sj,�:��c(���E<EC���6�6�
�3�mr�� ����n���x������U��TU����x#:A������D���
$�R�+�<]��~��E�J���)�p\�������
Y�^�UJ���Z�����:sfT�$#*��E�����Z�^kc����
���Kh��g�����40���r-����"7�)����K�Q���"���]�L[�rT��GyU��LL����?dP��SfSL�a������a;S������2ghv�������{�o0c/��j��W��w�h.�U��9������sR�������u�tg;����$��jX�>^P��\`�����`����!"d���3�8"L���G������
Hs���'
���0
 ��� �-���"��7��L���������ne(u�d��-�D�g���Ns���1��"�'�d��A>�9�!�yu��rnn�8�MV{�t�^^�!��z�k��w*qb���1�iLY��<���@� 0���~�4w����k
E�@MJ�V��g����Q��(;p5�(q�������Q�
|}r��w��p���o��sZ�
T��W�/�x�����'��'/!M9�^z��L0g8��g�S��g���`�Ni������l����3.a�OC�������Y������zx�i:���N1��z�����s�1jN%;��m�7��b��z.h��>�� 1VR����(�b�8y�	�{42^���� m��#�����$�`����:8Im��������X��xp~�J�Y�X?y�9�H����o=9F�[|9�%{����#�\"�m�C��>���3�&��R�V!�G��[8/r��M����|*�|q�����K�>���w���h�Z|���}�'����r�=�������h2���|����K�_�J~��=M�/}R5��A�T��`�
�t0��w"���L�g�g�0�33�P}3�� �w�`n8[�pfg5����t���+)���-��,���>HTu��e��[��1���6Z�	����(���Z��������MJ���z)s�������#��g�wy��e�x��5�q�j`�h[e�)F������=U�Q�b������r�������a��1�e��`��M ]��C�fe�&�:)-����l����2��W�L_��������T�Rw��>|RZl�?��\����l�m�����E�Tg������������&�S���a@��9p�*� $����4,�{Z.h=����������q�u0JE�[^���n�*V�>������Y�k��qV�������u��9j���rJ&����du���Z@l�2�O4C�Q�B�hh��v"������h�I���1�~[��<���k��;��u�%c:�F�R})��g�t��o�kP��"in~s�v���M*6�.	;�Q�6x�/�{�$T�����E���#�n��&}�X�������~H%�(J��6���~	�:E�U�����H�<=\�������~R�{f���!��Q����h��W��������h7���@(�ms�7�{'��U��G;�s8�<4������g���(�:��-��"%�	��h����6�"$��#�P5��H�fd���dy�6���4��V<�������YP�>����Cn�}V��`?Fh~A�9��X;�L]m9g[���34-���rbGi�g�D�f�l�(<�����z��eS�e��A���.��7��)`��1��}x��C���o�V�|���^�����z���iH��n�������t��:����O�,3�ce�M�5��g	����{;��YU��������������^��i��b%�)3�l%"����Z4����=�A"��Z]�[�A���������:��Ym�lxLx����.�Vy^������U�8Y��HfYi�J�"U-k����\��9�K�����n��l�1)�1�F�g���m���)F'^0�
��s4QU8vV-W|R!��NJ�A��tPoK��IP�y$��%�?�NRf��>���wu'����'��}��!S-���tt}�����^���:
��b?���||�{���"O�������]����e��r�S���y�[�_[������{}
"5�:D�"�����]{�\����t+7��������gN�e�<jQ�0 �
�N�1b�3���?bM4)��W4�pT����'��"J�v�	���~�$��	+i~�&�+������T�j&�e��f��&u��\���g���q�K�����_�����)#g����yrg!vv�����[[0?��N�]��@+���3s����qZ���C��-�"i�z���)��D����D��m�����U�y4���c���4$��U��D���������|�����9���}�����}�`��e��=	S]3�HA��K�}�.�����
P��W�����;o�pV��Z����7o,�o�h��9XJ*p�E��,p�G�S����W�pv���>���x�r�'�4�|��+���ng���M��v;����H������sn1�������(��L��l��a�X�Rx�,������BO�� �
^*��ks����08O����(cn����&�� v���$Xe��(�z�e��xL-�����f�*������#��gNK.cP�/�L]���m�������f�F�����Tg�oy��������T�r ��>'B\4s����P��,�S�	"�wvX�az@*���&�i�Oy~����3~�����mks3�(��PUr���Z'���O)�����/{�������v�
�wri� ��(�	�������O.N��p};
��RL2Y�[��$�$��N]��K�1�67��x���~��������/d0;������������={[�����^�{��+X<�o2��������t��<�(��>��|���$r�X}�����a�30�8�����kI���
�p���b'��(�$uP1�x��m:pE�_��y�:18��tc��[����?x�HxY��*�~�B� ���m6D\7�q5�p�T�]����j;
#���u�=�*B�A�n���6�j1M�f=qeT�'<�%(�{�z|l8+�0+WD��u�c�C��]�bF�3�-&���<�Mo����yh`��>�g&<88�Mpb�����D��]5�������������??}{V�|�s�o��+%���������'�z�*0`\���:&(����������[r�8�����y�Q������5
��=�_�ey?�l+\X�J��+6�+^����fPqQ�V����F*�(��w����_NY�z�u��	\,/����W���N�td����^��c��o Z�tS��Y�c�	:����z�]N�3�S�������8�������wo�/N�^5<��PB�������~O�v��b/0.m����mxTB�G\�-Uc;:K����Q}��FI�k5C�<�21�6x2���j4|
xz��;�������g�d���L$���H�
�������-�N���������/=Q�����M���������o?����_�z�_I[@cR�$�;����B����������������aR������'\���������_[��fm��@�O�M*vl��c�Bc�#�u
���r��m�b��,���\��������^u"i���5��,���~>	��~'��f60m��u&}���W��N)@���d��I`��\�����h�*`��`����e������&�Z=�O���y����>��j�{�7�1s�W������%�T	�C�4u(������G��-�-4Jl�[��� �IN|������![����G�@���Uk��I�1����u@g��y����e��`<�<�v�46M��9��0����W)<����s��E+z�O�����#��a��E�"W
�I������5*n[IN�bM�^)[�A�rM���=Q�f����l���k�l�5������oI@P��Sy�|�;imm�H��Jlz��6�	l��M�*e���X��jI�?�'�z���!��1�/�>6U��bP]����[���e�����]:8��Z�
����+�����E6n��J�;(���R
.Z�2	��P=��� "Sm�r�Nm��]+�Y��7���0�S����V�C�5(������������'_�n�<&����kX2����QV�s����������('��}=m���>w���Z6
�U#�5���s������m��H=F���>c��MS)�z�P�V��2���U;�T��DD�
K<��
��N%�Yr�Kt��Vu<��0���a0������X�}�I��U��\�K3�]
iP�:"�U+�hL�(J^2ct����>������(�����\+	;��'��
rJM}Jp4�����woO�.N�������G��'����|�L�����#b+��|Q�gC��m��J,F��70Z�/2��'�� q1���|�F?��d��)��5�G���;b!@uR'��3T��
��|����2PG�����;C�Boa�� 4[�*Qz!]Q�^���*�>�����>J�-�y7�Sc��+H��),k~�+�t�a�,s#�G��=@�jn�o�6b��t�Z��/�����H���#����N������V	����K<e7=|+a����R�W*%kY�4��^���$�_6����O9���h ����%Wr��;��
��^N7�S
�����<����?�����	�O��
�9�T�Qj��m�O��I&]v���h�=G[z�%��,�^�}�������/��z�Is�l����������0�(���$��A�4UB>��
Z�P�s�[�A����/	��1$;���n�-������2p]���.K�
�t�Af
��6��o#���]+�$F��1R��0GBe�����M��#����i�H���"Td��.���������s���R����[ ��k�_6�9������:���x������b.�rb\�A���}����S��u����R����%���������,��</�����$���a'�CR���2�-a�EYwC�-�4��������""��.� �8�B(:F���B�
�����~3����������g{����[e�����>�F��J�����S}Fn{�Iz���g1��f�8.��HC*8����O��y<���UM�����C�n�o\s������,��i�#�!d����w}��@��e����	��L�	�������C����]�#�O!�������CuP;�@���#m4+�aH��7X�����(������x��	������|#�p_�`��Ab4]�d%�,����.@
6wv��5��9�4���-��t0�lK���T.�����.n<��1>�(���Z+���`��m�]lvGx����F���{�x�a(*����d2�\�F��7���,@�n���
��j���jcw�DXq�Z({����P@�iK��md�?��
�	b��J�DE���v�%o�BGpcC����&!����s=�]�^b���]�Xs��i�t��g�z��������f�������SA��x����5
z��K�}�Q������]TN�
6����+U�aw��ek��%]�]\��:.N_<�O��q�:��SI�{7/����3��$�����R�7FNEqA�w�e��������2���&��g���#���hh@��x�m}��<������k�=�R��h/��~~x������=C�����d�,��5�H���e�,�WF3~>�I2!�Z�Sj�1��h��2�]���n���������������<��w���R��!���'3����#'��>�����B��.u{.-/u�J]�	b�����=d�f�8 �����7v��}'e�p���|����l����F�)��OF���,1_�%in�l�k	�w�����������������������[Q��G�z�������O��]Y���/-�+��z� �M���E[L�]~���<�[A/%��:T�&���;�M���Y:�� �M�z��'��0��M�&�`H�N~A�bI��-(�����R��=(�K���ml�@�=.W^p����������o`����sZ^��.v:\2��4����O^��|��)�>��:��7���=@�2���!��%u�}��a�J�2��:��<������t�h����5S����c�r1a���P���������A���G2��()���({\�il��cg�hL�>@�\I?�+���*K=1�������;���P�������/���E7�c�Z8���N��{4�����������K�����jTVO���
�9��Zh6�X��)�]�
\}m�a�C�8^�r����y���U�T����5����|�f�������������o/N._��<=;�ts�hT*\1��DL�B����`�t� ��O���V���LaV_��r�QqADR��s��+B�X�d��5��w����U5
:L+�����qo���jA%��~j��n��e�8�+t�G�����M����^���A���:�[��b��@���)Q��Cn�t���!��������/zy��S�
#83Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Heikki Linnakangas (#81)
Re: GIN improvements part 1: additional information

On 12/19/2013 10:44 AM, Heikki Linnakangas wrote:

On 12/19/2013 08:37 AM, Oleg Bartunov wrote:

Guys,

before digging deep into the art of comp/decomp world I'd like to know
if you familiar with results of
http://wwwconference.org/www2008/papers/pdf/p387-zhangA.pdf paper and
some newer research ?

Yeah, I saw that paper.

Do we agree in what we really want ? Basically,
there are three main features: size, compression, decompression speed
- we should take two :)

According to that Zhang et al paper you linked, the Vbyte method
actually performs the worst on all of those measures. The other
algorithms are quite similar in terms of size (PForDelta being the most
efficient), while PForDelta is significantly faster to compress/decompress.

Just by looking at those numbers, PForDelta looks like a clear winner.
However, it operates on much bigger batches than the other algorithms; I
haven't looked at it in detail, but Zhang et al used 128 integer
batches, and they say that 32 integers is the minimum batch size. If we
want to use it for the inline posting lists stored in entry tuples, that
would be quite wasteful if there are only a few item pointers on the tuple.

Also, in the tests I've run, the compression/decompression speed is not
a significant factor in total performance, with either varbyte encoding
or Simple9-like encoding I hacked together.

One disadvantage of Simple9 and other encodings that operate in batches
is that removing a value from the middle can increase the number of
bytes required for the remaining values. That's a problem during vacuum;
it's possible that after vacuuming away one item pointer, the remaining
items no longer fit on the page.

- Heikki

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

#84Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Heikki Linnakangas (#82)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 12/19/2013 03:33 PM, Heikki Linnakangas wrote:

On 12/17/2013 12:49 AM, Heikki Linnakangas wrote:

On 12/17/2013 12:22 AM, Alexander Korotkov wrote:

On Mon, Dec 16, 2013 at 3:30 PM, Heikki Linnakangas
<hlinnakangas@vmware.com

wrote:

On 12/12/2013 06:44 PM, Alexander Korotkov wrote:

When values are packed into small groups, we have to either insert

inefficiently encoded value or re-encode whole right part of values.

It would probably be simplest to store newly inserted items
uncompressed,
in a separate area in the page. For example, grow the list of
uncompressed
items downwards from pg_upper, and the compressed items upwards from
pg_lower. When the page fills up, re-encode the whole page.

I hacked together an implementation of a variant of Simple9, to see how
it performs. Insertions are handled per the above scheme.

Here's an updated version of that, using the page layout without
item-indexes that I described in the other post. This is much less buggy
than that earlier crude version I posted - and unfortunately it doesn't
compress as well. The earlier version lost some items :-(.

Nevertheless, I think this page layout and code formatting is better,
even if we switch the encoding back to the varbyte encoding in the end.

Yet another version. The encoding/decoding code is now quite isolated in
ginpostinglist.c, so it's easy to experiment with different encodings.
This patch uses varbyte encoding again.

I got a bit carried away, experimented with a bunch of different
encodings. I tried rice encoding, rice encoding with block and offset
number delta stored separately, the simple9 variant, and varbyte encoding.

The compressed size obviously depends a lot on the distribution of the
items, but in the test set I used, the differences between different
encodings were quite small.

One fatal problem with many encodings is VACUUM. If a page is completely
full and you remove one item, the result must still fit. In other words,
removing an item must never enlarge the space needed. Otherwise we have
to be able to split on vacuum, which adds a lot of code, and also makes
it possible for VACUUM to fail if there is no disk space left. That's
unpleasant if you're trying to run VACUUM to release disk space. (gin
fast updates already has that problem BTW, but let's not make it worse)

I believe that eliminates all encodings in the Simple family, as well as
PForDelta, and surprisingly also Rice encoding. For example, if you have
three items in consecutive offsets, the differences between them are
encoded as 11 in rice encoding. If you remove the middle item, the
encoding for the next item becomes 010, which takes more space than the
original.

AFAICS varbyte encoding is safe from that. (a formal proof would be nice
though).

So, I'm happy to go with varbyte encoding now, indeed I don't think we
have much choice unless someone can come up with an alternative that's
VACUUM-safe. I have to put this patch aside for a while now, I spent a
lot more time on these encoding experiments than I intended. If you
could take a look at this latest version, spend some time reviewing it
and cleaning up any obsolete comments, and re-run the performance tests
you did earlier, that would be great. One thing I'm slightly worried
about is the overhead of merging the compressed and uncompressed posting
lists in a scan. This patch will be in good shape for the final
commitfest, or even before that.

- Heikki

Attachments:

gin-packed-postinglists-varbyte2.patch.gzapplication/x-gzip; name=gin-packed-postinglists-varbyte2.patch.gzDownload
#85Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Heikki Linnakangas (#84)
Re: GIN improvements part 1: additional information

Heikki Linnakangas escribi�:

I believe that eliminates all encodings in the Simple family, as
well as PForDelta, and surprisingly also Rice encoding. For example,
if you have three items in consecutive offsets, the differences
between them are encoded as 11 in rice encoding. If you remove the
middle item, the encoding for the next item becomes 010, which takes
more space than the original.

I don't understand this. If you have three consecutive entries, and the
differences between them are 11, you need to store two 11s. But if you
have two items, you only need to store 010 once. So the difference is
larger, but since you need to store only one of them then overall it's
still shorter than the original. No?

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, 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

#86Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alvaro Herrera (#85)
Re: GIN improvements part 1: additional information

On Fri, Dec 20, 2013 at 11:43 PM, Alvaro Herrera
<alvherre@2ndquadrant.com>wrote:

Heikki Linnakangas escribió:

I believe that eliminates all encodings in the Simple family, as
well as PForDelta, and surprisingly also Rice encoding. For example,
if you have three items in consecutive offsets, the differences
between them are encoded as 11 in rice encoding. If you remove the
middle item, the encoding for the next item becomes 010, which takes
more space than the original.

I don't understand this. If you have three consecutive entries, and the
differences between them are 11, you need to store two 11s. But if you
have two items, you only need to store 010 once. So the difference is
larger, but since you need to store only one of them then overall it's
still shorter than the original. No?

I believe Heikki mean both differences are encoded as 11, each one is 1.

------
With best regards,
Alexander Korotkov.

#87Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alexander Korotkov (#86)
Re: GIN improvements part 1: additional information

Alexander Korotkov escribi�:

On Fri, Dec 20, 2013 at 11:43 PM, Alvaro Herrera
<alvherre@2ndquadrant.com>wrote:

Heikki Linnakangas escribi�:

I believe that eliminates all encodings in the Simple family, as
well as PForDelta, and surprisingly also Rice encoding. For example,
if you have three items in consecutive offsets, the differences
between them are encoded as 11 in rice encoding. If you remove the
middle item, the encoding for the next item becomes 010, which takes
more space than the original.

I don't understand this. If you have three consecutive entries, and the
differences between them are 11, you need to store two 11s. But if you
have two items, you only need to store 010 once. So the difference is
larger, but since you need to store only one of them then overall it's
still shorter than the original. No?

I believe Heikki mean both differences are encoded as 11, each one is 1.

Oh, that sucks (or it's great, depending on perspective).

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, 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

#88Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#84)
Re: GIN improvements part 1: additional information

On Fri, Dec 20, 2013 at 11:36 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 12/19/2013 03:33 PM, Heikki Linnakangas wrote:

On 12/17/2013 12:49 AM, Heikki Linnakangas wrote:

On 12/17/2013 12:22 AM, Alexander Korotkov wrote:

On Mon, Dec 16, 2013 at 3:30 PM, Heikki Linnakangas
<hlinnakangas@vmware.com

wrote:

On 12/12/2013 06:44 PM, Alexander Korotkov wrote:

When values are packed into small groups, we have to either insert

inefficiently encoded value or re-encode whole right part of values.

It would probably be simplest to store newly inserted items
uncompressed,
in a separate area in the page. For example, grow the list of
uncompressed
items downwards from pg_upper, and the compressed items upwards from
pg_lower. When the page fills up, re-encode the whole page.

I hacked together an implementation of a variant of Simple9, to see how
it performs. Insertions are handled per the above scheme.

Here's an updated version of that, using the page layout without
item-indexes that I described in the other post. This is much less buggy
than that earlier crude version I posted - and unfortunately it doesn't
compress as well. The earlier version lost some items :-(.

Nevertheless, I think this page layout and code formatting is better,
even if we switch the encoding back to the varbyte encoding in the end.

Yet another version. The encoding/decoding code is now quite isolated in
ginpostinglist.c, so it's easy to experiment with different encodings. This
patch uses varbyte encoding again.

I got a bit carried away, experimented with a bunch of different
encodings. I tried rice encoding, rice encoding with block and offset
number delta stored separately, the simple9 variant, and varbyte encoding.

The compressed size obviously depends a lot on the distribution of the
items, but in the test set I used, the differences between different
encodings were quite small.

One fatal problem with many encodings is VACUUM. If a page is completely
full and you remove one item, the result must still fit. In other words,
removing an item must never enlarge the space needed. Otherwise we have to
be able to split on vacuum, which adds a lot of code, and also makes it
possible for VACUUM to fail if there is no disk space left. That's
unpleasant if you're trying to run VACUUM to release disk space. (gin fast
updates already has that problem BTW, but let's not make it worse)

I believe that eliminates all encodings in the Simple family, as well as
PForDelta, and surprisingly also Rice encoding. For example, if you have
three items in consecutive offsets, the differences between them are
encoded as 11 in rice encoding. If you remove the middle item, the encoding
for the next item becomes 010, which takes more space than the original.

AFAICS varbyte encoding is safe from that. (a formal proof would be nice
though).

Formal proof is so. Removing number is actually replacement of two numbers
with their sum. We have to proof that varbyte encoding of sum can't be
longer than varbyte encoding of summands.High bit number of sum is at most
one more than high bit number of larger summand. So varbyte encoding of sum
is at most one byte longer than varbyte encoding of larger summand. Lesser
summand is at least one byte.

So, I'm happy to go with varbyte encoding now, indeed I don't think we
have much choice unless someone can come up with an alternative that's
VACUUM-safe. I have to put this patch aside for a while now, I spent a lot
more time on these encoding experiments than I intended. If you could take
a look at this latest version, spend some time reviewing it and cleaning up
any obsolete comments, and re-run the performance tests you did earlier,
that would be great. One thing I'm slightly worried about is the overhead
of merging the compressed and uncompressed posting lists in a scan. This
patch will be in good shape for the final commitfest, or even before that.

OK. I'll make tests for scans on mix of compressed and uncompressed posting
lists. However, I don't expect it to be slower than both pure compressed
and pure uncompressed posting lists. Overhead of compressing uncompressed
posting lists is evident. But it also would be nice to measure.

------
With best regards,
Alexander Korotkov.

#89Peter Eisentraut
peter_e@gmx.net
In reply to: Alexander Korotkov (#73)
Re: GIN improvements part 1: additional information

On 12/10/13, 2:44 PM, Alexander Korotkov wrote:

However, patch didn't apply to head. Corrected version is attached.

Update the pgstattuple regression test results.

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

#90Amit Langote
amitlangote09@gmail.com
In reply to: Heikki Linnakangas (#84)
Re: GIN improvements part 1: additional information

On Sat, Dec 21, 2013 at 4:36 AM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

Yet another version. The encoding/decoding code is now quite isolated in
ginpostinglist.c, so it's easy to experiment with different encodings. This
patch uses varbyte encoding again.

I got a bit carried away, experimented with a bunch of different encodings.
I tried rice encoding, rice encoding with block and offset number delta
stored separately, the simple9 variant, and varbyte encoding.

The compressed size obviously depends a lot on the distribution of the
items, but in the test set I used, the differences between different
encodings were quite small.

One fatal problem with many encodings is VACUUM. If a page is completely
full and you remove one item, the result must still fit. In other words,
removing an item must never enlarge the space needed. Otherwise we have to
be able to split on vacuum, which adds a lot of code, and also makes it
possible for VACUUM to fail if there is no disk space left. That's
unpleasant if you're trying to run VACUUM to release disk space. (gin fast
updates already has that problem BTW, but let's not make it worse)

I believe that eliminates all encodings in the Simple family, as well as
PForDelta, and surprisingly also Rice encoding. For example, if you have
three items in consecutive offsets, the differences between them are encoded
as 11 in rice encoding. If you remove the middle item, the encoding for the
next item becomes 010, which takes more space than the original.

AFAICS varbyte encoding is safe from that. (a formal proof would be nice
though).

So, I'm happy to go with varbyte encoding now, indeed I don't think we have
much choice unless someone can come up with an alternative that's
VACUUM-safe. I have to put this patch aside for a while now, I spent a lot
more time on these encoding experiments than I intended. If you could take a
look at this latest version, spend some time reviewing it and cleaning up
any obsolete comments, and re-run the performance tests you did earlier,
that would be great. One thing I'm slightly worried about is the overhead of
merging the compressed and uncompressed posting lists in a scan. This patch
will be in good shape for the final commitfest, or even before that.

I just tried out the patch "gin-packed-postinglists-varbyte2.patch"
(which looks like the latest one in this thread) as follows:

1) Applied patch to the HEAD (on commit
94b899b829657332bda856ac3f06153d09077bd1)
2) Created a test table and index

create table test (a text);
copy test from '/usr/share/dict/words';
create index test_trgm_idx on test using gin (a gin_trgm_ops);

3) Got the following error on a wildcard query:

postgres=# explain (buffers, analyze) select count(*) from test where
a like '%tio%';
ERROR: lock 9447 is not held
STATEMENT: explain (buffers, analyze) select count(*) from test where
a like '%tio%';
ERROR: lock 9447 is not held

Following is the "bt":

#0 LWLockRelease (lockid=9447) at lwlock.c:747
#1 0x000000000074a356 in LockBuffer (buffer=4638, mode=0) at bufmgr.c:2760
#2 0x0000000000749d6e in UnlockReleaseBuffer (buffer=4638) at bufmgr.c:2551
#3 0x0000000000478bcc in entryGetNextItem (ginstate=0x2380100,
entry=0x23832a8) at ginget.c:555
#4 0x0000000000479346 in entryGetItem (ginstate=0x2380100,
entry=0x23832a8) at ginget.c:695
#5 0x000000000047987e in scanGetItem (scan=0x237fee8,
advancePast=0x7fffa1a46b80, item=0x7fffa1a46b80,
recheck=0x7fffa1a46b7f "\001") at ginget.c:925
#6 0x000000000047ae3f in gingetbitmap (fcinfo=0x7fffa1a46be0) at ginget.c:1540
#7 0x00000000008a9486 in FunctionCall2Coll (flinfo=0x236f558,
collation=0, arg1=37224168, arg2=37236160) at fmgr.c:1323
#8 0x00000000004bd091 in index_getbitmap (scan=0x237fee8,
bitmap=0x2382dc0) at indexam.c:649
#9 0x000000000064827c in MultiExecBitmapIndexScan (node=0x237fce0) at
nodeBitmapIndexscan.c:89
#10 0x00000000006313b6 in MultiExecProcNode (node=0x237fce0) at
execProcnode.c:550
#11 0x000000000064713a in BitmapHeapNext (node=0x237e998) at
nodeBitmapHeapscan.c:104
#12 0x000000000063c348 in ExecScanFetch (node=0x237e998,
accessMtd=0x6470ac <BitmapHeapNext>, recheckMtd=0x647cbc
<BitmapHeapRecheck>) at execScan.c:82
#13 0x000000000063c3bc in ExecScan (node=0x237e998, accessMtd=0x6470ac
<BitmapHeapNext>, recheckMtd=0x647cbc <BitmapHeapRecheck>) at
execScan.c:132
#14 0x0000000000647d3a in ExecBitmapHeapScan (node=0x237e998) at
nodeBitmapHeapscan.c:436
#15 0x0000000000631121 in ExecProcNode (node=0x237e998) at execProcnode.c:414
#16 0x0000000000644992 in agg_retrieve_direct (aggstate=0x237e200) at
nodeAgg.c:1073
#17 0x00000000006448cc in ExecAgg (node=0x237e200) at nodeAgg.c:1026
#18 0x0000000000631247 in ExecProcNode (node=0x237e200) at execProcnode.c:476
#19 0x000000000062ef2a in ExecutePlan (estate=0x237e0e8,
planstate=0x237e200, operation=CMD_SELECT, sendTuples=1 '\001',
numberTuples=0, direction=ForwardScanDirection, dest=0xd0c360) at
execMain.c:1474
#20 0x000000000062cfeb in standard_ExecutorRun (queryDesc=0x237c208,
direction=ForwardScanDirection, count=0) at execMain.c:308
#21 0x000000000062ce51 in ExecutorRun (queryDesc=0x237c208,
direction=ForwardScanDirection, count=0) at execMain.c:256
#22 0x00000000005ccc46 in ExplainOnePlan (plannedstmt=0x237c170,
into=0x0, es=0x7fffa1a47580, queryString=0x231d158 "explain (buffers,
analyze) select count(*) from test where a like '%tio%';", params=0x0)
at explain.c:471
#23 0x00000000005cc8f1 in ExplainOneQuery (query=0x2353c10, into=0x0,
es=0x7fffa1a47580, queryString=0x231d158 "explain (buffers, analyze)
select count(*) from test where a like '%tio%';", params=0x0)
at explain.c:327
#24 0x00000000005cc5d7 in ExplainQuery (stmt=0x231e2c8,
queryString=0x231d158 "explain (buffers, analyze) select count(*) from
test where a like '%tio%';", params=0x0, dest=0x2353b40) at
explain.c:225
#25 0x0000000000784101 in standard_ProcessUtility
(parsetree=0x231e2c8, queryString=0x231d158 "explain (buffers,
analyze) select count(*) from test where a like '%tio%';",
context=PROCESS_UTILITY_TOPLEVEL,
params=0x0, dest=0x2353b40, completionTag=0x7fffa1a477e0 "") at
utility.c:687
#26 0x0000000000783835 in ProcessUtility (parsetree=0x231e2c8,
queryString=0x231d158 "explain (buffers, analyze) select count(*) from
test where a like '%tio%';", context=PROCESS_UTILITY_TOPLEVEL,
params=0x0, dest=0x2353b40, completionTag=0x7fffa1a477e0 "") at
utility.c:352
#27 0x0000000000782771 in PortalRunUtility (portal=0x235aec8,
utilityStmt=0x231e2c8, isTopLevel=1 '\001', dest=0x2353b40,
completionTag=0x7fffa1a477e0 "") at pquery.c:1187
#28 0x00000000007824c0 in FillPortalStore (portal=0x235aec8,
isTopLevel=1 '\001') at pquery.c:1061
#29 0x0000000000781dc6 in PortalRun (portal=0x235aec8,
count=9223372036854775807, isTopLevel=1 '\001', dest=0x231eef8,
altdest=0x231eef8, completionTag=0x7fffa1a479c0 "") at pquery.c:785
#30 0x000000000077be51 in exec_simple_query (query_string=0x231d158
"explain (buffers, analyze) select count(*) from test where a like
'%tio%';") at postgres.c:1054
#31 0x000000000078004f in PostgresMain (argc=1, argv=0x22b85d8,
dbname=0x22b8438 "postgres", username=0x22b8418 "amit") at
postgres.c:4011
#32 0x000000000071a811 in BackendRun (port=0x22d5c00) at postmaster.c:4085
#33 0x0000000000719f9b in BackendStartup (port=0x22d5c00) at postmaster.c:3774
#34 0x00000000007167c0 in ServerLoop () at postmaster.c:1585
#35 0x0000000000715eed in PostmasterMain (argc=3, argv=0x22b6350) at
postmaster.c:1240
#36 0x0000000000678890 in main (argc=3, argv=0x22b6350) at main.c:194

--
Amit

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

#91Alexander Korotkov
aekorotkov@gmail.com
In reply to: Amit Langote (#90)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Mon, Jan 6, 2014 at 12:35 PM, Amit Langote <amitlangote09@gmail.com>wrote:

On Sat, Dec 21, 2013 at 4:36 AM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

Yet another version. The encoding/decoding code is now quite isolated in
ginpostinglist.c, so it's easy to experiment with different encodings.

This

patch uses varbyte encoding again.

I got a bit carried away, experimented with a bunch of different

encodings.

I tried rice encoding, rice encoding with block and offset number delta
stored separately, the simple9 variant, and varbyte encoding.

The compressed size obviously depends a lot on the distribution of the
items, but in the test set I used, the differences between different
encodings were quite small.

One fatal problem with many encodings is VACUUM. If a page is completely
full and you remove one item, the result must still fit. In other words,
removing an item must never enlarge the space needed. Otherwise we have

to

be able to split on vacuum, which adds a lot of code, and also makes it
possible for VACUUM to fail if there is no disk space left. That's
unpleasant if you're trying to run VACUUM to release disk space. (gin

fast

updates already has that problem BTW, but let's not make it worse)

I believe that eliminates all encodings in the Simple family, as well as
PForDelta, and surprisingly also Rice encoding. For example, if you have
three items in consecutive offsets, the differences between them are

encoded

as 11 in rice encoding. If you remove the middle item, the encoding for

the

next item becomes 010, which takes more space than the original.

AFAICS varbyte encoding is safe from that. (a formal proof would be nice
though).

So, I'm happy to go with varbyte encoding now, indeed I don't think we

have

much choice unless someone can come up with an alternative that's
VACUUM-safe. I have to put this patch aside for a while now, I spent a

lot

more time on these encoding experiments than I intended. If you could

take a

look at this latest version, spend some time reviewing it and cleaning up
any obsolete comments, and re-run the performance tests you did earlier,
that would be great. One thing I'm slightly worried about is the

overhead of

merging the compressed and uncompressed posting lists in a scan. This

patch

will be in good shape for the final commitfest, or even before that.

I just tried out the patch "gin-packed-postinglists-varbyte2.patch"
(which looks like the latest one in this thread) as follows:

1) Applied patch to the HEAD (on commit
94b899b829657332bda856ac3f06153d09077bd1)
2) Created a test table and index

create table test (a text);
copy test from '/usr/share/dict/words';
create index test_trgm_idx on test using gin (a gin_trgm_ops);

3) Got the following error on a wildcard query:

postgres=# explain (buffers, analyze) select count(*) from test where
a like '%tio%';
ERROR: lock 9447 is not held
STATEMENT: explain (buffers, analyze) select count(*) from test where
a like '%tio%';
ERROR: lock 9447 is not held

Thanks for reporting. Fixed version is attached.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-varbyte3.patch.gzapplication/x-gzip; name=gin-packed-postinglists-varbyte3.patch.gzDownload
#92Tomas Vondra
tv@fuzzy.cz
In reply to: Alexander Korotkov (#91)
Re: GIN improvements part 1: additional information

On 8.1.2014 22:58, Alexander Korotkov wrote:

Thanks for reporting. Fixed version is attached.

I've tried to rerun the 'archie' benchmark with the current patch, and
once again I got

PANIC: could not split GIN page, didn't fit

I reran it with '--enable-cassert' and with that I got

TRAP: FailedAssertion("!(ginCompareItemPointers(&items[i - 1],
&items[i]) < 0)", File: "gindatapage.c", Line: 149)
LOG: server process (PID 5364) was terminated by signal 6: Aborted
DETAIL: Failed process was running: INSERT INTO messages ...

so the assert in GinDataLeafPageGetUncompressed fails for some reason.

I can easily reproduce it, but my knowledge in this area is rather
limited so I'm not entirely sure what to look for.

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

#93Alexander Korotkov
aekorotkov@gmail.com
In reply to: Tomas Vondra (#92)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Sat, Jan 11, 2014 at 6:15 AM, Tomas Vondra <tv@fuzzy.cz> wrote:

On 8.1.2014 22:58, Alexander Korotkov wrote:

Thanks for reporting. Fixed version is attached.

I've tried to rerun the 'archie' benchmark with the current patch, and
once again I got

PANIC: could not split GIN page, didn't fit

I reran it with '--enable-cassert' and with that I got

TRAP: FailedAssertion("!(ginCompareItemPointers(&items[i - 1],
&items[i]) < 0)", File: "gindatapage.c", Line: 149)
LOG: server process (PID 5364) was terminated by signal 6: Aborted
DETAIL: Failed process was running: INSERT INTO messages ...

so the assert in GinDataLeafPageGetUncompressed fails for some reason.

I can easily reproduce it, but my knowledge in this area is rather
limited so I'm not entirely sure what to look for.

I've fixed this bug and many other bug. Now patch passes test suite that
I've used earlier. The results are so:

Operations time:
event | period
-----------------------+-----------------
index_build | 00:01:47.53915
index_build_recovery | 00:00:04
index_update | 00:05:24.388163
index_update_recovery | 00:00:53
search_new | 00:24:02.289384
search_updated | 00:27:09.193343
(6 rows)

Index sizes:
label | size
---------------+-----------
new | 384761856
after_updates | 667942912
(2 rows)

Also, I made following changes in algorithms:

- Now, there is a limit to number of uncompressed TIDs in the page.
After reaching this limit, they are encoded independent on if they can fit
page. That seems to me more desirable behaviour and somehow it accelerates
search speed. Before this change times were following:

event | period
-----------------------+-----------------
index_build | 00:01:51.467888
index_build_recovery | 00:00:04
index_update | 00:05:03.315155
index_update_recovery | 00:00:51
search_new | 00:24:43.194882
search_updated | 00:28:36.316784
(6 rows)

- Page are not fully re-encoded if it's enough to re-encode just last
segment.

README is updated.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-varbyte5.patch.gzapplication/x-gzip; name=gin-packed-postinglists-varbyte5.patch.gzDownload
#94Tomas Vondra
tv@fuzzy.cz
In reply to: Alexander Korotkov (#93)
Re: GIN improvements part 1: additional information

On 13.1.2014 18:07, Alexander Korotkov wrote:

On Sat, Jan 11, 2014 at 6:15 AM, Tomas Vondra <tv@fuzzy.cz
<mailto:tv@fuzzy.cz>> wrote:

On 8.1.2014 22:58, Alexander Korotkov wrote:

Thanks for reporting. Fixed version is attached.

I've tried to rerun the 'archie' benchmark with the current patch, and
once again I got

PANIC: could not split GIN page, didn't fit

I reran it with '--enable-cassert' and with that I got

TRAP: FailedAssertion("!(ginCompareItemPointers(&items[i - 1],
&items[i]) < 0)", File: "gindatapage.c", Line: 149)
LOG: server process (PID 5364) was terminated by signal 6: Aborted
DETAIL: Failed process was running: INSERT INTO messages ...

so the assert in GinDataLeafPageGetUncompressed fails for some reason.

I can easily reproduce it, but my knowledge in this area is rather
limited so I'm not entirely sure what to look for.

I've fixed this bug and many other bug. Now patch passes test suite that
I've used earlier. The results are so:

OK, it seems the bug is gone. However now there's a memory leak
somewhere. I'm loading pgsql mailing list archives (~600k messages)
using this script

https://bitbucket.org/tvondra/archie/src/1bbeb920/bin/load.py

And after loading about 1/5 of the data, all the memory gets filled by
the pgsql backends (loading the data in parallel) and the DB gets killed
by the OOM killer.

Tomas

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

#95Etsuro Fujita
fujita.etsuro@lab.ntt.co.jp
In reply to: Peter Eisentraut (#89)
Re: GIN improvements part 1: additional information

Peter Eisentraut wrote:

On 12/10/13, 2:44 PM, Alexander Korotkov wrote:

However, patch didn't apply to head. Corrected version is attached.

Update the pgstattuple regression test results.

The latest version of the patch still doesn't pass the test.

I'll look at the patch in further detail.

Thanks,

Best regards,
Etsuro Fujita

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

#96Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#93)
Re: GIN improvements part 1: additional information

On 01/13/2014 07:07 PM, Alexander Korotkov wrote:

I've fixed this bug and many other bug. Now patch passes test suite that
I've used earlier. The results are so:

Operations time:
event | period
-----------------------+-----------------
index_build | 00:01:47.53915
index_build_recovery | 00:00:04
index_update | 00:05:24.388163
index_update_recovery | 00:00:53
search_new | 00:24:02.289384
search_updated | 00:27:09.193343
(6 rows)

Index sizes:
label | size
---------------+-----------
new | 384761856
after_updates | 667942912
(2 rows)

Also, I made following changes in algorithms:

- Now, there is a limit to number of uncompressed TIDs in the page.
After reaching this limit, they are encoded independent on if they can fit
page. That seems to me more desirable behaviour and somehow it accelerates
search speed. Before this change times were following:

event | period
-----------------------+-----------------
index_build | 00:01:51.467888
index_build_recovery | 00:00:04
index_update | 00:05:03.315155
index_update_recovery | 00:00:51
search_new | 00:24:43.194882
search_updated | 00:28:36.316784
(6 rows)

Hmm, that's strange. Any idea why that's happening? One theory is that
when you re-encode the pages more aggressively, there are fewer pages
with a mix of packed and unpacked items. Mixed pages are somewhat slower
to scan than fully packed or fully unpacked pages, because
GinDataLeafPageGetItems() has to merge the packed and unpacked items
into a single list. But I wouldn't expect that effect to be large enough
to explain the results you got.

- Page are not fully re-encoded if it's enough to re-encode just last
segment.

Great! We should also take advantage of that in the WAL record that's
written; no point in WAL-logging all the segments, if we know that only
last one was modified.

- Heikki

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

#97Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#96)
Re: GIN improvements part 1: additional information

On Tue, Jan 14, 2014 at 12:34 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/13/2014 07:07 PM, Alexander Korotkov wrote:

I've fixed this bug and many other bug. Now patch passes test suite that
I've used earlier. The results are so:

Operations time:
event | period
-----------------------+-----------------
index_build | 00:01:47.53915
index_build_recovery | 00:00:04
index_update | 00:05:24.388163
index_update_recovery | 00:00:53
search_new | 00:24:02.289384
search_updated | 00:27:09.193343
(6 rows)

Index sizes:
label | size
---------------+-----------
new | 384761856
after_updates | 667942912
(2 rows)

Also, I made following changes in algorithms:

- Now, there is a limit to number of uncompressed TIDs in the page.

After reaching this limit, they are encoded independent on if they
can fit
page. That seems to me more desirable behaviour and somehow it
accelerates
search speed. Before this change times were following:

event | period
-----------------------+-----------------
index_build | 00:01:51.467888
index_build_recovery | 00:00:04
index_update | 00:05:03.315155
index_update_recovery | 00:00:51
search_new | 00:24:43.194882
search_updated | 00:28:36.316784
(6 rows)

Hmm, that's strange. Any idea why that's happening? One theory is that
when you re-encode the pages more aggressively, there are fewer pages with
a mix of packed and unpacked items. Mixed pages are somewhat slower to scan
than fully packed or fully unpacked pages, because
GinDataLeafPageGetItems() has to merge the packed and unpacked items into a
single list. But I wouldn't expect that effect to be large enough to
explain the results you got.

Probably, it's because of less work in ginMergeItemPointers.

- Page are not fully re-encoded if it's enough to re-encode just last

segment.

Great! We should also take advantage of that in the WAL record that's
written; no point in WAL-logging all the segments, if we know that only
last one was modified.

Already.

------
With best regards,
Alexander Korotkov.

#98Tomas Vondra
tv@fuzzy.cz
In reply to: Tomas Vondra (#94)
Re: GIN improvements part 1: additional information

On 14.1.2014 00:38, Tomas Vondra wrote:

On 13.1.2014 18:07, Alexander Korotkov wrote:

On Sat, Jan 11, 2014 at 6:15 AM, Tomas Vondra <tv@fuzzy.cz
<mailto:tv@fuzzy.cz>> wrote:

On 8.1.2014 22:58, Alexander Korotkov wrote:

Thanks for reporting. Fixed version is attached.

I've tried to rerun the 'archie' benchmark with the current patch, and
once again I got

PANIC: could not split GIN page, didn't fit

I reran it with '--enable-cassert' and with that I got

TRAP: FailedAssertion("!(ginCompareItemPointers(&items[i - 1],
&items[i]) < 0)", File: "gindatapage.c", Line: 149)
LOG: server process (PID 5364) was terminated by signal 6: Aborted
DETAIL: Failed process was running: INSERT INTO messages ...

so the assert in GinDataLeafPageGetUncompressed fails for some reason.

I can easily reproduce it, but my knowledge in this area is rather
limited so I'm not entirely sure what to look for.

I've fixed this bug and many other bug. Now patch passes test suite that
I've used earlier. The results are so:

OK, it seems the bug is gone. However now there's a memory leak
somewhere. I'm loading pgsql mailing list archives (~600k messages)
using this script

https://bitbucket.org/tvondra/archie/src/1bbeb920/bin/load.py

And after loading about 1/5 of the data, all the memory gets filled by
the pgsql backends (loading the data in parallel) and the DB gets killed
by the OOM killer.

I've spent a fair amount of time trying to locate the memory leak, but
so far no luck. I'm not sufficiently familiar with the GIN code.

I can however demonstrate that it's there, and I have rather simple test
case to reproduce it - basically just a CREATE INDEX on a table with ~1M
email message bodies (in a tsvector column). The data is available here
(360MB compressed, 1GB raw):

http://www.fuzzy.cz/tmp/message-b.data.gz

Simply create a single-column table, load data and create the index

CREATE TABLE test ( body_tsvector TSVECTOR );
COPY test FROM '/tmp/message-b.data';
CREATE test_idx ON test USING gin test ( body_tsvector );

I'm running this on a machine with 8GB of RAM, with these settings

shared_buffers=1GB
maintenance_work_mem=1GB

According to top, CREATE INDEX from the current HEAD never consumes more
than ~25% of RAM:

PID USER PR NI VIRT RES SHR %CPU %MEM COMMAND
32091 tomas 20 0 2026032 1,817g 1,040g 56,2 23,8 postgres

which is about right, as (shared_buffers + maintenance_work_mem) is
about 1/4 of RAM.

With the v5 patch version applied, the CREATE INDEX process eventually
goes crazy and allocates almost all the available memory (but somesimes
finishes, mostly by pure luck). This is what I was able to get from top

PID USER PR NI VIRT RES SHR S %CPU %MEM COMMAND
14090 tomas 20 0 7913820 6,962g 955036 D 4,3 91,1 postgres

while the system was still reasonably responsive.

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

#99Alexander Korotkov
aekorotkov@gmail.com
In reply to: Tomas Vondra (#98)
Re: GIN improvements part 1: additional information

On Wed, Jan 15, 2014 at 5:17 AM, Tomas Vondra <tv@fuzzy.cz> wrote:

On 14.1.2014 00:38, Tomas Vondra wrote:

On 13.1.2014 18:07, Alexander Korotkov wrote:

On Sat, Jan 11, 2014 at 6:15 AM, Tomas Vondra <tv@fuzzy.cz
<mailto:tv@fuzzy.cz>> wrote:

On 8.1.2014 22:58, Alexander Korotkov wrote:

Thanks for reporting. Fixed version is attached.

I've tried to rerun the 'archie' benchmark with the current patch,

and

once again I got

PANIC: could not split GIN page, didn't fit

I reran it with '--enable-cassert' and with that I got

TRAP: FailedAssertion("!(ginCompareItemPointers(&items[i - 1],
&items[i]) < 0)", File: "gindatapage.c", Line:

149)

LOG: server process (PID 5364) was terminated by signal 6: Aborted
DETAIL: Failed process was running: INSERT INTO messages ...

so the assert in GinDataLeafPageGetUncompressed fails for some

reason.

I can easily reproduce it, but my knowledge in this area is rather
limited so I'm not entirely sure what to look for.

I've fixed this bug and many other bug. Now patch passes test suite that
I've used earlier. The results are so:

OK, it seems the bug is gone. However now there's a memory leak
somewhere. I'm loading pgsql mailing list archives (~600k messages)
using this script

https://bitbucket.org/tvondra/archie/src/1bbeb920/bin/load.py

And after loading about 1/5 of the data, all the memory gets filled by
the pgsql backends (loading the data in parallel) and the DB gets killed
by the OOM killer.

I've spent a fair amount of time trying to locate the memory leak, but
so far no luck. I'm not sufficiently familiar with the GIN code.

I can however demonstrate that it's there, and I have rather simple test
case to reproduce it - basically just a CREATE INDEX on a table with ~1M
email message bodies (in a tsvector column). The data is available here
(360MB compressed, 1GB raw):

http://www.fuzzy.cz/tmp/message-b.data.gz

Simply create a single-column table, load data and create the index

CREATE TABLE test ( body_tsvector TSVECTOR );
COPY test FROM '/tmp/message-b.data';
CREATE test_idx ON test USING gin test ( body_tsvector );

I'm running this on a machine with 8GB of RAM, with these settings

shared_buffers=1GB
maintenance_work_mem=1GB

According to top, CREATE INDEX from the current HEAD never consumes more
than ~25% of RAM:

PID USER PR NI VIRT RES SHR %CPU %MEM COMMAND
32091 tomas 20 0 2026032 1,817g 1,040g 56,2 23,8 postgres

which is about right, as (shared_buffers + maintenance_work_mem) is
about 1/4 of RAM.

With the v5 patch version applied, the CREATE INDEX process eventually
goes crazy and allocates almost all the available memory (but somesimes
finishes, mostly by pure luck). This is what I was able to get from top

PID USER PR NI VIRT RES SHR S %CPU %MEM COMMAND
14090 tomas 20 0 7913820 6,962g 955036 D 4,3 91,1 postgres

while the system was still reasonably responsive.

Thanks a lot for your help! I believe problem is that each decompressed
item pointers array is palloc'd but not freed. I hope to fix it today.

------
With best regards,
Alexander Korotkov.

#100Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#99)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Wed, Jan 15, 2014 at 10:47 AM, Alexander Korotkov
<aekorotkov@gmail.com>wrote:

On Wed, Jan 15, 2014 at 5:17 AM, Tomas Vondra <tv@fuzzy.cz> wrote:

On 14.1.2014 00:38, Tomas Vondra wrote:

On 13.1.2014 18:07, Alexander Korotkov wrote:

On Sat, Jan 11, 2014 at 6:15 AM, Tomas Vondra <tv@fuzzy.cz
<mailto:tv@fuzzy.cz>> wrote:

On 8.1.2014 22:58, Alexander Korotkov wrote:

Thanks for reporting. Fixed version is attached.

I've tried to rerun the 'archie' benchmark with the current patch,

and

once again I got

PANIC: could not split GIN page, didn't fit

I reran it with '--enable-cassert' and with that I got

TRAP: FailedAssertion("!(ginCompareItemPointers(&items[i - 1],
&items[i]) < 0)", File: "gindatapage.c", Line:

149)

LOG: server process (PID 5364) was terminated by signal 6: Aborted
DETAIL: Failed process was running: INSERT INTO messages ...

so the assert in GinDataLeafPageGetUncompressed fails for some

reason.

I can easily reproduce it, but my knowledge in this area is rather
limited so I'm not entirely sure what to look for.

I've fixed this bug and many other bug. Now patch passes test suite

that

I've used earlier. The results are so:

OK, it seems the bug is gone. However now there's a memory leak
somewhere. I'm loading pgsql mailing list archives (~600k messages)
using this script

https://bitbucket.org/tvondra/archie/src/1bbeb920/bin/load.py

And after loading about 1/5 of the data, all the memory gets filled by
the pgsql backends (loading the data in parallel) and the DB gets killed
by the OOM killer.

I've spent a fair amount of time trying to locate the memory leak, but
so far no luck. I'm not sufficiently familiar with the GIN code.

I can however demonstrate that it's there, and I have rather simple test
case to reproduce it - basically just a CREATE INDEX on a table with ~1M
email message bodies (in a tsvector column). The data is available here
(360MB compressed, 1GB raw):

http://www.fuzzy.cz/tmp/message-b.data.gz

Simply create a single-column table, load data and create the index

CREATE TABLE test ( body_tsvector TSVECTOR );
COPY test FROM '/tmp/message-b.data';
CREATE test_idx ON test USING gin test ( body_tsvector );

I'm running this on a machine with 8GB of RAM, with these settings

shared_buffers=1GB
maintenance_work_mem=1GB

According to top, CREATE INDEX from the current HEAD never consumes more
than ~25% of RAM:

PID USER PR NI VIRT RES SHR %CPU %MEM COMMAND
32091 tomas 20 0 2026032 1,817g 1,040g 56,2 23,8 postgres

which is about right, as (shared_buffers + maintenance_work_mem) is
about 1/4 of RAM.

With the v5 patch version applied, the CREATE INDEX process eventually
goes crazy and allocates almost all the available memory (but somesimes
finishes, mostly by pure luck). This is what I was able to get from top

PID USER PR NI VIRT RES SHR S %CPU %MEM COMMAND
14090 tomas 20 0 7913820 6,962g 955036 D 4,3 91,1 postgres

while the system was still reasonably responsive.

Thanks a lot for your help! I believe problem is that each decompressed
item pointers array is palloc'd but not freed. I hope to fix it today.

Seems to be fixed in the attached version of patch.
Another improvement in this version: only left-most segments and further
are re-encoded. Left part of page are left untouched.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-packed-postinglists-varbyte6.patch.gzapplication/x-gzip; name=gin-packed-postinglists-varbyte6.patch.gzDownload
#101Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#100)
Re: GIN improvements part 1: additional information

On 01/17/2014 01:05 PM, Alexander Korotkov wrote:

Seems to be fixed in the attached version of patch.
Another improvement in this version: only left-most segments and further
are re-encoded. Left part of page are left untouched.

I'm looking into this now. A few quick notes:

* Even when you don't re-encode the whole page, you still WAL-log the
whole page. While correct, it'd be a pretty obvious optimization to only
WAL-log the modified part.

* When new items are appended to the end of the page so that only the
last existing compressed segment is re-encoded, and the page has to be
split, the items aren't divided 50/50 on the pages. The loop that moves
segments destined for the left page to the right won't move any
existing, untouched, segments.

! /*
! * Didn't fit uncompressed. We'll have to encode them. Check if both
! * new items and uncompressed items can be placed starting from last
! * segment of page. Then re-encode only last segment of page.
! */
! minNewItem = newItems[0];
! if (nolduncompressed == 0 &&
! ginCompareItemPointers(&olduncompressed[0], &minNewItem) < 0)
! minNewItem = olduncompressed[0];

That looks wrong. If I'm understanding it right, it's trying to do
minNewItem = Min(newItems[0], olduncompressed[0]). The test should be
"nolduncompressed > 0 && ..."

No need to send a new patch, I'll just fix those while reviewing...

- Heikki

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

#102Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#101)
Re: GIN improvements part 1: additional information

On Fri, Jan 17, 2014 at 10:38 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/17/2014 01:05 PM, Alexander Korotkov wrote:

Seems to be fixed in the attached version of patch.
Another improvement in this version: only left-most segments and further
are re-encoded. Left part of page are left untouched.

I'm looking into this now. A few quick notes:

* Even when you don't re-encode the whole page, you still WAL-log the
whole page. While correct, it'd be a pretty obvious optimization to only
WAL-log the modified part.

Oh, I overlooked it. I wrote code in ginRedoInsertData which finds
appropriate place fro data but didn't notice that I still wrote whole page
to xlog record.

* When new items are appended to the end of the page so that only the last
existing compressed segment is re-encoded, and the page has to be split,
the items aren't divided 50/50 on the pages. The loop that moves segments
destined for the left page to the right won't move any existing, untouched,
segments.

I think this loop will move one segment. However, it's too small.

! /*

! * Didn't fit uncompressed. We'll have to encode them. Check if
both
! * new items and uncompressed items can be placed starting from
last
! * segment of page. Then re-encode only last segment of page.
! */
! minNewItem = newItems[0];
! if (nolduncompressed == 0 &&
! ginCompareItemPointers(&olduncompressed[0],
&minNewItem) < 0)
! minNewItem = olduncompressed[0];

That looks wrong. If I'm understanding it right, it's trying to do
minNewItem = Min(newItems[0], olduncompressed[0]). The test should be
"nolduncompressed > 0 && ..."

Yes, definitely a bug.

No need to send a new patch, I'll just fix those while reviewing...

Ok, thanks!

------
With best regards,
Alexander Korotkov.

#103Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#102)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 01/17/2014 08:49 PM, Alexander Korotkov wrote:

On Fri, Jan 17, 2014 at 10:38 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/17/2014 01:05 PM, Alexander Korotkov wrote:

Seems to be fixed in the attached version of patch.
Another improvement in this version: only left-most segments and further
are re-encoded. Left part of page are left untouched.

I'm looking into this now. A few quick notes:

* Even when you don't re-encode the whole page, you still WAL-log the
whole page. While correct, it'd be a pretty obvious optimization to only
WAL-log the modified part.

Oh, I overlooked it. I wrote code in ginRedoInsertData which finds
appropriate place fro data but didn't notice that I still wrote whole page
to xlog record.

Yeah. I think ginRedoInsertData was too cute to be bug-free. I added an
explicit unmodifiedsize field to the WAL record, so that
ginRedoInsertData doesn't need to calculate it.

* When new items are appended to the end of the page so that only the last
existing compressed segment is re-encoded, and the page has to be split,
the items aren't divided 50/50 on the pages. The loop that moves segments
destined for the left page to the right won't move any existing, untouched,
segments.

I think this loop will move one segment. However, it's too small.

Implemented this.

I noticed that the gin vacuum redo routine is dead code, except for the
data-leaf page handling, because we never remove entries or internal
nodes (page deletion is a separate wal record type). And the data-leaf
case is functionally equivalent to heap newpage records. I removed the
dead code and made it more clear that it resembles heap newpage.

Attached is a yet another version, with more bugs fixed and more
comments added and updated. I would appreciate some heavy-testing of
this patch now. If you could re-run the tests you've been using, that
could be great. I've tested the WAL replay by replicating GIN operations
over streaming replication. That doesn't guarantee it's correct, but
it's a good smoke test.

- Heikki

Attachments:

gin-packed-postinglists-20140120.patch.gzapplication/x-gzip; name=gin-packed-postinglists-20140120.patch.gzDownload
#104Tomas Vondra
tv@fuzzy.cz
In reply to: Heikki Linnakangas (#103)
Re: GIN improvements part 1: additional information

On 20.1.2014 19:30, Heikki Linnakangas wrote:

Attached is a yet another version, with more bugs fixed and more
comments added and updated. I would appreciate some heavy-testing of
this patch now. If you could re-run the tests you've been using,
that could be great. I've tested the WAL replay by replicating GIN
operations over streaming replication. That doesn't guarantee it's
correct, but it's a good smoke test.

I gave it a try - the OOM error seems to be gone, but now get this

PANIC: cannot insert duplicate items to GIN index page

This only happens when building the index incrementally (i.e. using a
sequence of INSERT statements into a table with GIN index). When I
create a new index on a table (already containing the same dataset) it
works just fine.

Also, I tried to reproduce the issue by running a simple plpgsql loop
(instead of a complex python script):

DO LANGUAGE plpgsql $$
DECLARE
r tsvector;
BEGIN
FOR r IN SELECT body_tsvector FROM data_table LOOP
INSERT INTO idx_table (body_tsvector) VALUES (r);
END LOOP;
END$$;

where data_table is the table with imported data (the same data I
mentioned in the post about OOM errors), and index_table is an empty
table with a GIN index. And indeed it fails, but only if I run the block
in multiple sessions in parallel.

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

#105Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Tomas Vondra (#104)
Re: GIN improvements part 1: additional information

On 01/21/2014 04:02 AM, Tomas Vondra wrote:

On 20.1.2014 19:30, Heikki Linnakangas wrote:

Attached is a yet another version, with more bugs fixed and more
comments added and updated. I would appreciate some heavy-testing of
this patch now. If you could re-run the tests you've been using,
that could be great. I've tested the WAL replay by replicating GIN
operations over streaming replication. That doesn't guarantee it's
correct, but it's a good smoke test.

I gave it a try - the OOM error seems to be gone, but now get this

PANIC: cannot insert duplicate items to GIN index page

This only happens when building the index incrementally (i.e. using a
sequence of INSERT statements into a table with GIN index). When I
create a new index on a table (already containing the same dataset) it
works just fine.

Also, I tried to reproduce the issue by running a simple plpgsql loop
(instead of a complex python script):

DO LANGUAGE plpgsql $$
DECLARE
r tsvector;
BEGIN
FOR r IN SELECT body_tsvector FROM data_table LOOP
INSERT INTO idx_table (body_tsvector) VALUES (r);
END LOOP;
END$$;

where data_table is the table with imported data (the same data I
mentioned in the post about OOM errors), and index_table is an empty
table with a GIN index. And indeed it fails, but only if I run the block
in multiple sessions in parallel.

Oh, I see what's going on. I had assumed that there cannot be duplicate
insertions into the posting tree, but that's dead wrong. The fast
insertion mechanism depends on a duplicate insertion to do nothing.

Will fix, thanks for the testing!

- Heikki

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

#106Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#103)
Re: GIN improvements part 1: additional information

On Mon, Jan 20, 2014 at 10:30 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/17/2014 08:49 PM, Alexander Korotkov wrote:

On Fri, Jan 17, 2014 at 10:38 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/17/2014 01:05 PM, Alexander Korotkov wrote:

Seems to be fixed in the attached version of patch.

Another improvement in this version: only left-most segments and further
are re-encoded. Left part of page are left untouched.

I'm looking into this now. A few quick notes:

* Even when you don't re-encode the whole page, you still WAL-log the
whole page. While correct, it'd be a pretty obvious optimization to only
WAL-log the modified part.

Oh, I overlooked it. I wrote code in ginRedoInsertData which finds
appropriate place fro data but didn't notice that I still wrote whole page
to xlog record.

Yeah. I think ginRedoInsertData was too cute to be bug-free. I added an
explicit unmodifiedsize field to the WAL record, so that ginRedoInsertData
doesn't need to calculate it.

* When new items are appended to the end of the page so that only the last

existing compressed segment is re-encoded, and the page has to be split,
the items aren't divided 50/50 on the pages. The loop that moves segments
destined for the left page to the right won't move any existing,
untouched,
segments.

I think this loop will move one segment. However, it's too small.

Implemented this.

I noticed that the gin vacuum redo routine is dead code, except for the
data-leaf page handling, because we never remove entries or internal nodes
(page deletion is a separate wal record type). And the data-leaf case is
functionally equivalent to heap newpage records. I removed the dead code
and made it more clear that it resembles heap newpage.

Attached is a yet another version, with more bugs fixed and more comments
added and updated. I would appreciate some heavy-testing of this patch now.
If you could re-run the tests you've been using, that could be great. I've
tested the WAL replay by replicating GIN operations over streaming
replication. That doesn't guarantee it's correct, but it's a good smoke
test.

I tried my test-suite but it hangs on index scan with infinite loop. I
re-tried it on my laptop with -O0. I found it to crash on update and vacuum
in some random places like:
Assert(GinPageIsData(page)); in xlogVacuumPage
Assert(ndecoded == totalpacked); in ginCompressPostingList
Trying to debug it.

------
With best regards,
Alexander Korotkov.

#107Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#106)
Re: GIN improvements part 1: additional information

On Tue, Jan 21, 2014 at 4:28 PM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

I noticed that the gin vacuum redo routine is dead code, except for the

data-leaf page handling, because we never remove entries or internal nodes
(page deletion is a separate wal record type). And the data-leaf case is
functionally equivalent to heap newpage records. I removed the dead code
and made it more clear that it resembles heap newpage.

Attached is a yet another version, with more bugs fixed and more comments
added and updated. I would appreciate some heavy-testing of this patch now.
If you could re-run the tests you've been using, that could be great. I've
tested the WAL replay by replicating GIN operations over streaming
replication. That doesn't guarantee it's correct, but it's a good smoke
test.

I tried my test-suite but it hangs on index scan with infinite loop. I
re-tried it on my laptop with -O0. I found it to crash on update and vacuum
in some random places like:
Assert(GinPageIsData(page)); in xlogVacuumPage
Assert(ndecoded == totalpacked); in ginCompressPostingList
Trying to debug it.

Another question is about dataPlaceToPageLeaf:

while ((Pointer) seg < segend)
{
if (ginCompareItemPointers(&minNewItem, &seg->first) < 0)
break;

Shouldn't we adjust seg to previous segment? If minNewItem is less than
seg->first we should insert it to previous segment.

------
With best regards,
Alexander Korotkov.

#108Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Heikki Linnakangas (#105)
1 attachment(s)
Re: GIN improvements part 1: additional information

On 01/21/2014 11:35 AM, Heikki Linnakangas wrote:

On 01/21/2014 04:02 AM, Tomas Vondra wrote:

On 20.1.2014 19:30, Heikki Linnakangas wrote:

Attached is a yet another version, with more bugs fixed and more
comments added and updated. I would appreciate some heavy-testing of
this patch now. If you could re-run the tests you've been using,
that could be great. I've tested the WAL replay by replicating GIN
operations over streaming replication. That doesn't guarantee it's
correct, but it's a good smoke test.

I gave it a try - the OOM error seems to be gone, but now get this

PANIC: cannot insert duplicate items to GIN index page

This only happens when building the index incrementally (i.e. using a
sequence of INSERT statements into a table with GIN index). When I
create a new index on a table (already containing the same dataset) it
works just fine.

Also, I tried to reproduce the issue by running a simple plpgsql loop
(instead of a complex python script):

DO LANGUAGE plpgsql $$
DECLARE
r tsvector;
BEGIN
FOR r IN SELECT body_tsvector FROM data_table LOOP
INSERT INTO idx_table (body_tsvector) VALUES (r);
END LOOP;
END$$;

where data_table is the table with imported data (the same data I
mentioned in the post about OOM errors), and index_table is an empty
table with a GIN index. And indeed it fails, but only if I run the block
in multiple sessions in parallel.

Oh, I see what's going on. I had assumed that there cannot be duplicate
insertions into the posting tree, but that's dead wrong. The fast
insertion mechanism depends on a duplicate insertion to do nothing.

Ok, this turned out to be a much bigger change than I thought...

In principle, it's not difficult to eliminate duplicates. However, to
detect a duplicate, you have to check if the item is present in the
uncompressed items array, or in the compressed lists. That requires
decoding the segment where it should be.

But if we decode the segment, what's the purpose of the uncompressed
items array? Its purpose was to speed up insertions, by buffering them
so that we don't need to decode and re-encode the page/segment on every
inserted item. But if we're paying the price of decoding it anyway, we
might as well include the new item and re-encode the segment. The
uncompressed area saves some effort in WAL-logging, as the record of
inserting an entry into the uncompressed area is much smaller than that
of re-encoding part of the page, but if that really is a concern, we
could track more carefully which parts of the page is modified, and only
WAL-log the required parts. And hopefully, the fast-update lists buffer
inserts so that you insert many items at a time to the posting tree, and
the price of re-encoding is only paid once.

So, now that I think about this once more, I don't think the
uncompressed area in every leaf page is a good idea.

I refactored the way the recompression routine works again. It is now
more clearly a multi-step process. First, the existing page is
"disassembled" into an in-memory struct, which is a linked list of all
the segments. In-memory each segment can be represented as an array of
item pointers, or in the compressed format. In the next phase, all the
new items are added to the segments where they belong. This naturally
can lead to overly large segments; in the third phase, the items are
redistributed among the segments, and compressed back to the compressed
format. Finally, the finished segments are written back to the page, or
pages if it had to be split.

The same subroutines to disassemble and recompress are also used in vacuum.

Attached is what I've got now. This is again quite heavily-changed from
the previous version - sorry for repeatedly rewriting this. I'll
continue testing and re-reviewing this tomorrow.

- Heikki

Attachments:

gin-packed-postinglists-20140121.patch.gzapplication/x-gzip; name=gin-packed-postinglists-20140121.patch.gzDownload
#109Tomas Vondra
tv@fuzzy.cz
In reply to: Heikki Linnakangas (#108)
Re: GIN improvements part 1: additional information

On 21.1.2014 22:21, Heikki Linnakangas wrote:

On 01/21/2014 11:35 AM, Heikki Linnakangas wrote:

On 01/21/2014 04:02 AM, Tomas Vondra wrote:

On 20.1.2014 19:30, Heikki Linnakangas wrote:

Attached is a yet another version, with more bugs fixed and more
comments added and updated. I would appreciate some heavy-testing of
this patch now. If you could re-run the tests you've been using,
that could be great. I've tested the WAL replay by replicating GIN
operations over streaming replication. That doesn't guarantee it's
correct, but it's a good smoke test.

I gave it a try - the OOM error seems to be gone, but now get this

PANIC: cannot insert duplicate items to GIN index page

This only happens when building the index incrementally (i.e. using a
sequence of INSERT statements into a table with GIN index). When I
create a new index on a table (already containing the same dataset) it
works just fine.

Also, I tried to reproduce the issue by running a simple plpgsql loop
(instead of a complex python script):

DO LANGUAGE plpgsql $$
DECLARE
r tsvector;
BEGIN
FOR r IN SELECT body_tsvector FROM data_table LOOP
INSERT INTO idx_table (body_tsvector) VALUES (r);
END LOOP;
END$$;

where data_table is the table with imported data (the same data I
mentioned in the post about OOM errors), and index_table is an empty
table with a GIN index. And indeed it fails, but only if I run the block
in multiple sessions in parallel.

Oh, I see what's going on. I had assumed that there cannot be duplicate
insertions into the posting tree, but that's dead wrong. The fast
insertion mechanism depends on a duplicate insertion to do nothing.

Ok, this turned out to be a much bigger change than I thought...

In principle, it's not difficult to eliminate duplicates. However, to
detect a duplicate, you have to check if the item is present in the
uncompressed items array, or in the compressed lists. That requires
decoding the segment where it should be.

But if we decode the segment, what's the purpose of the uncompressed
items array? Its purpose was to speed up insertions, by buffering them
so that we don't need to decode and re-encode the page/segment on every
inserted item. But if we're paying the price of decoding it anyway, we
might as well include the new item and re-encode the segment. The
uncompressed area saves some effort in WAL-logging, as the record of
inserting an entry into the uncompressed area is much smaller than that
of re-encoding part of the page, but if that really is a concern, we
could track more carefully which parts of the page is modified, and only
WAL-log the required parts. And hopefully, the fast-update lists buffer
inserts so that you insert many items at a time to the posting tree, and
the price of re-encoding is only paid once.

So, now that I think about this once more, I don't think the
uncompressed area in every leaf page is a good idea.

I refactored the way the recompression routine works again. It is now
more clearly a multi-step process. First, the existing page is
"disassembled" into an in-memory struct, which is a linked list of all
the segments. In-memory each segment can be represented as an array of
item pointers, or in the compressed format. In the next phase, all the
new items are added to the segments where they belong. This naturally
can lead to overly large segments; in the third phase, the items are
redistributed among the segments, and compressed back to the compressed
format. Finally, the finished segments are written back to the page, or
pages if it had to be split.

The same subroutines to disassemble and recompress are also used in vacuum.

Attached is what I've got now. This is again quite heavily-changed from
the previous version - sorry for repeatedly rewriting this. I'll
continue testing and re-reviewing this tomorrow.

I've repeated the tests, and it actually finishes OK with this patch.
The incremental load works OK, does not fail because of OOM or PANIC
errors, or any other issues. Subsequent querying seems to work fine too.

The sizes before / after applying the patch look like this:

object | raw size (old) | raw size (new) | diff
----------|------------------------------------------
table | 6093 | 6093 | 00.0%
index A | 2288 | 2035 | -11.0%
index B | 96 | 96 | 00.0%

and after running VACUUM FULL

object | vacuumed (old) | vacuumed (new) | diff
----------|------------------------------------------
table | 6416 | 6416 | 00.0%
index A | 678 | 415 | -38.8%
index B | 42 | 20 | -52.4%

There results are slightly different than on my previous runs - for
example in my post from 2013/10/12 I've posted this (after vacuuming)

| HEAD | patched |
============================================
subject index | 42 MB | 15 MB | -75%
body index | 624 MB | 328 MB | -47%

It was collected with slightly different test code / data, but I believe
the ratios should be about the same. However the differences are rather
significant. Is that because of the recent changes in encoding? Could
that be improved somehow?

What annoys me a bit is the huge size difference between the index
updated incrementally (by a sequence of INSERT commands), and the index
rebuilt from scratch using VACUUM FULL. It's a bit better with the patch
(2288 vs. 2035 MB), but is there a chance to improve this?

Anyway, is it safe to apply the second patch on top of this one?

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

#110Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#108)
Re: GIN improvements part 1: additional information

On Wed, Jan 22, 2014 at 1:21 AM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 01/21/2014 11:35 AM, Heikki Linnakangas wrote:

On 01/21/2014 04:02 AM, Tomas Vondra wrote:

On 20.1.2014 19:30, Heikki Linnakangas wrote:

Attached is a yet another version, with more bugs fixed and more
comments added and updated. I would appreciate some heavy-testing of
this patch now. If you could re-run the tests you've been using,
that could be great. I've tested the WAL replay by replicating GIN
operations over streaming replication. That doesn't guarantee it's
correct, but it's a good smoke test.

I gave it a try - the OOM error seems to be gone, but now get this

PANIC: cannot insert duplicate items to GIN index page

This only happens when building the index incrementally (i.e. using a
sequence of INSERT statements into a table with GIN index). When I
create a new index on a table (already containing the same dataset) it
works just fine.

Also, I tried to reproduce the issue by running a simple plpgsql loop
(instead of a complex python script):

DO LANGUAGE plpgsql $$
DECLARE
r tsvector;
BEGIN
FOR r IN SELECT body_tsvector FROM data_table LOOP
INSERT INTO idx_table (body_tsvector) VALUES (r);
END LOOP;
END$$;

where data_table is the table with imported data (the same data I
mentioned in the post about OOM errors), and index_table is an empty
table with a GIN index. And indeed it fails, but only if I run the block
in multiple sessions in parallel.

Oh, I see what's going on. I had assumed that there cannot be duplicate
insertions into the posting tree, but that's dead wrong. The fast
insertion mechanism depends on a duplicate insertion to do nothing.

Ok, this turned out to be a much bigger change than I thought...

In principle, it's not difficult to eliminate duplicates. However, to
detect a duplicate, you have to check if the item is present in the
uncompressed items array, or in the compressed lists. That requires
decoding the segment where it should be.

But if we decode the segment, what's the purpose of the uncompressed items
array? Its purpose was to speed up insertions, by buffering them so that we
don't need to decode and re-encode the page/segment on every inserted item.
But if we're paying the price of decoding it anyway, we might as well
include the new item and re-encode the segment. The uncompressed area saves
some effort in WAL-logging, as the record of inserting an entry into the
uncompressed area is much smaller than that of re-encoding part of the
page, but if that really is a concern, we could track more carefully which
parts of the page is modified, and only WAL-log the required parts. And
hopefully, the fast-update lists buffer inserts so that you insert many
items at a time to the posting tree, and the price of re-encoding is only
paid once.

So, now that I think about this once more, I don't think the uncompressed
area in every leaf page is a good idea.

I didn't get why insertion of duplicate TIDs to uncompressed area and
eliminate them of re-encoding? It would be somewhat more work during
updates, more work during scan, more WAL records. But is it really
significant for real-life workloads?

I refactored the way the recompression routine works again. It is now more

clearly a multi-step process. First, the existing page is "disassembled"
into an in-memory struct, which is a linked list of all the segments.
In-memory each segment can be represented as an array of item pointers, or
in the compressed format. In the next phase, all the new items are added to
the segments where they belong. This naturally can lead to overly large
segments; in the third phase, the items are redistributed among the
segments, and compressed back to the compressed format. Finally, the
finished segments are written back to the page, or pages if it had to be
split.

The same subroutines to disassemble and recompress are also used in vacuum.

Attached is what I've got now. This is again quite heavily-changed from
the previous version - sorry for repeatedly rewriting this. I'll continue
testing and re-reviewing this tomorrow.

Let's clarify where we are. We had quite debugged and tested version with
hard-wired varbyte encoding. Now we're reimplementing and debugging
segmented version of varbyte encoding in a hope that one day we can easily
replace it with something better that meets our restrictions (but we didn't
find it already). Is it right?

------
With best regards,
Alexander Korotkov.

#111Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#110)
Re: GIN improvements part 1: additional information

On 01/22/2014 09:25 AM, Alexander Korotkov wrote:

On Wed, Jan 22, 2014 at 1:21 AM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 01/21/2014 11:35 AM, Heikki Linnakangas wrote:

Oh, I see what's going on. I had assumed that there cannot be duplicate
insertions into the posting tree, but that's dead wrong. The fast
insertion mechanism depends on a duplicate insertion to do nothing.

Ok, this turned out to be a much bigger change than I thought...

In principle, it's not difficult to eliminate duplicates. However, to
detect a duplicate, you have to check if the item is present in the
uncompressed items array, or in the compressed lists. That requires
decoding the segment where it should be.

But if we decode the segment, what's the purpose of the uncompressed items
array? Its purpose was to speed up insertions, by buffering them so that we
don't need to decode and re-encode the page/segment on every inserted item.
But if we're paying the price of decoding it anyway, we might as well
include the new item and re-encode the segment. The uncompressed area saves
some effort in WAL-logging, as the record of inserting an entry into the
uncompressed area is much smaller than that of re-encoding part of the
page, but if that really is a concern, we could track more carefully which
parts of the page is modified, and only WAL-log the required parts. And
hopefully, the fast-update lists buffer inserts so that you insert many
items at a time to the posting tree, and the price of re-encoding is only
paid once.

So, now that I think about this once more, I don't think the uncompressed
area in every leaf page is a good idea.

I didn't get why insertion of duplicate TIDs to uncompressed area and
eliminate them of re-encoding? It would be somewhat more work during
updates, more work during scan, more WAL records. But is it really
significant for real-life workloads?

Hmm, so you would merrily insert duplicate TIDs into the uncompressed
area, and weed them out when reading or recompressing the page? I had
not thought of that. Yeah, it might be a good trade-off, duplicates are
not expected to happen very often.

I refactored the way the recompression routine works again. It is now more

clearly a multi-step process. First, the existing page is "disassembled"
into an in-memory struct, which is a linked list of all the segments.
In-memory each segment can be represented as an array of item pointers, or
in the compressed format. In the next phase, all the new items are added to
the segments where they belong. This naturally can lead to overly large
segments; in the third phase, the items are redistributed among the
segments, and compressed back to the compressed format. Finally, the
finished segments are written back to the page, or pages if it had to be
split.

The same subroutines to disassemble and recompress are also used in vacuum.

Attached is what I've got now. This is again quite heavily-changed from
the previous version - sorry for repeatedly rewriting this. I'll continue
testing and re-reviewing this tomorrow.

Let's clarify where we are. We had quite debugged and tested version with
hard-wired varbyte encoding. Now we're reimplementing and debugging
segmented version of varbyte encoding in a hope that one day we can easily
replace it with something better that meets our restrictions (but we didn't
find it already). Is it right?

The segmentation was a sensible change on code-readability grounds
alone. Yes, it made it easier to experiment with different encodings,
and will make it easier to replace the encoding in the future, but that
wasn't the only reason for doing it. It's nice to have the
encoding/decoding stuff in ginpostinglists.c, so that the rest of the
code just passes around opaque GinPostingList structs (previously known
as PostingListSegment).

One thing I have been pondering, though: Instead of storing the posting
lists one after each other on the leaf page, it might be better to store
them as Items on the page, with normal ItemIds pointing to each. So the
page layout would be more standard, and you could use
PageAddItem/PageIndexMultiDelete to add/remove posting lists to page.
The immediate advantage of that would be that it would make it possible
to do a binary search of the segments, to quickly locate the right
segment where a tuple belongs to. That might not be significant in
practice - linearly scanning 32 items is not slow either. And it would
add some overhead, one line pointer per segment, 4 * 32 = 128 bytes per
page with the current segment size of 256 bytes. But then again, it
might be a good idea just because it would make the pages look more like
any other page, which is generally a good thing.

- Heikki

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

#112Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Tomas Vondra (#109)
1 attachment(s)
GIN pending list pages not recycled promptly (was Re: GIN improvements part 1: additional information)

On 01/22/2014 03:39 AM, Tomas Vondra wrote:

What annoys me a bit is the huge size difference between the index
updated incrementally (by a sequence of INSERT commands), and the index
rebuilt from scratch using VACUUM FULL. It's a bit better with the patch
(2288 vs. 2035 MB), but is there a chance to improve this?

Hmm. What seems to be happening is that pending item list pages that the
fast update mechanism uses are not getting recycled. When enough list
pages are filled up, they are flushed into the main index and the list
pages are marked as deleted. But they are not recorded in the FSM, so
they won't be recycled until the index is vacuumed. Almost all of the
difference can be attributed to deleted pages left behind like that.

So this isn't actually related to the packed postinglists patch at all.
It just makes the bloat more obvious, because it makes the actual size
of the index size, excluding deleted pages, smaller. But it can be
observed on git master as well:

I created a simple test table and index like this:

create table foo (intarr int[]);
create index i_foo on foo using gin(intarr) with (fastupdate=on);

I filled the table like this:

insert into foo select array[-1] from generate_series(1, 10000000) g;

postgres=# \d+i
List of relations
Schema | Name | Type | Owner | Size | Description
--------+------+-------+--------+--------+-------------
public | foo | table | heikki | 575 MB |
(1 row)

postgres=# \di+
List of relations
Schema | Name | Type | Owner | Table | Size | Description
--------+-------+-------+--------+-------+--------+-------------
public | i_foo | index | heikki | foo | 251 MB |
(1 row)

I wrote a little utility that scans all pages in a gin index, and prints
out the flags indicating what kind of a page it is. The distribution
looks like this:

19 DATA
7420 DATA LEAF
24701 DELETED
1 LEAF
1 META

I think we need to add the deleted pages to the FSM more aggressively.

I tried simply adding calls to RecordFreeIndexPage, after the list pages
have been marked as deleted, but unfortunately that didn't help. The
problem is that the FSM is organized into a three-level tree, and
RecordFreeIndexPage only updates the bottom level. The upper levels are
not updated until the FSM is vacuumed, so the pages are still not
visible to GetFreeIndexPage calls until next vacuum. The simplest fix
would be to add a call to IndexFreeSpaceMapVacuum after flushing the
pending list, per attached patch. I'm slightly worried about the
performance impact of the IndexFreeSpaceMapVacuum() call. It scans the
whole FSM of the index, which isn't exactly free. So perhaps we should
teach RecordFreeIndexPage to update the upper levels of the FSM in a
retail-fashion instead.

- Heikki

Attachments:

gin-recycle-deleted-list-pages-1.patchtext/x-diff; name=gin-recycle-deleted-list-pages-1.patchDownload
*** a/src/backend/access/gin/ginfast.c
--- b/src/backend/access/gin/ginfast.c
***************
*** 21,26 ****
--- 21,27 ----
  #include "access/gin_private.h"
  #include "commands/vacuum.h"
  #include "miscadmin.h"
+ #include "storage/indexfsm.h"
  #include "utils/memutils.h"
  #include "utils/rel.h"
  
***************
*** 434,440 **** ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
--- 435,453 ----
  	END_CRIT_SECTION();
  
  	if (needCleanup)
+ 	{
  		ginInsertCleanup(ginstate, false, NULL);
+ 
+ 		/*
+ 		 * Vacuum the FSM to make the deleted list pages available for re-use.
+ 		 *
+ 		 * gininsertCleanup marked them as free in the FSM by calling
+ 		 * RecordFreeIndexPage, but that only updates the bottom FSM level.
+ 		 * Since GetFreeIndexPage scans from the top, they won't be visible
+ 		 * for reuse until the upper levels have been updated.
+ 		 */
+ 		IndexFreeSpaceMapVacuum(index);
+ 	}
  }
  
  /*
***************
*** 599,608 **** shiftList(Relation index, Buffer metabuffer, BlockNumber newHead,
  			}
  		}
  
  		for (i = 0; i < data.ndeleted; i++)
  			UnlockReleaseBuffer(buffers[i]);
! 
! 		END_CRIT_SECTION();
  	} while (blknoToDelete != newHead);
  
  	return false;
--- 612,625 ----
  			}
  		}
  
+ 		END_CRIT_SECTION();
+ 
  		for (i = 0; i < data.ndeleted; i++)
+ 		{
+ 			BlockNumber blkno = BufferGetBlockNumber(buffers[i]);
  			UnlockReleaseBuffer(buffers[i]);
! 			RecordFreeIndexPage(index, blkno);
! 		}
  	} while (blknoToDelete != newHead);
  
  	return false;
#113Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#111)
Re: GIN improvements part 1: additional information

On Wed, Jan 22, 2014 at 12:30 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/22/2014 09:25 AM, Alexander Korotkov wrote:

On Wed, Jan 22, 2014 at 1:21 AM, Heikki Linnakangas <
hlinnakangas@vmware.com

wrote:

On 01/21/2014 11:35 AM, Heikki Linnakangas wrote:

Oh, I see what's going on. I had assumed that there cannot be duplicate

insertions into the posting tree, but that's dead wrong. The fast
insertion mechanism depends on a duplicate insertion to do nothing.

Ok, this turned out to be a much bigger change than I thought...

In principle, it's not difficult to eliminate duplicates. However, to
detect a duplicate, you have to check if the item is present in the
uncompressed items array, or in the compressed lists. That requires
decoding the segment where it should be.

But if we decode the segment, what's the purpose of the uncompressed
items
array? Its purpose was to speed up insertions, by buffering them so that
we
don't need to decode and re-encode the page/segment on every inserted
item.
But if we're paying the price of decoding it anyway, we might as well
include the new item and re-encode the segment. The uncompressed area
saves
some effort in WAL-logging, as the record of inserting an entry into the
uncompressed area is much smaller than that of re-encoding part of the
page, but if that really is a concern, we could track more carefully
which
parts of the page is modified, and only WAL-log the required parts. And
hopefully, the fast-update lists buffer inserts so that you insert many
items at a time to the posting tree, and the price of re-encoding is only
paid once.

So, now that I think about this once more, I don't think the uncompressed
area in every leaf page is a good idea.

I didn't get why insertion of duplicate TIDs to uncompressed area and
eliminate them of re-encoding? It would be somewhat more work during
updates, more work during scan, more WAL records. But is it really
significant for real-life workloads?

Hmm, so you would merrily insert duplicate TIDs into the uncompressed
area, and weed them out when reading or recompressing the page? I had not
thought of that. Yeah, it might be a good trade-off, duplicates are not
expected to happen very often.

I refactored the way the recompression routine works again. It is now more

clearly a multi-step process. First, the existing page is "disassembled"
into an in-memory struct, which is a linked list of all the segments.
In-memory each segment can be represented as an array of item pointers,
or
in the compressed format. In the next phase, all the new items are added
to
the segments where they belong. This naturally can lead to overly large
segments; in the third phase, the items are redistributed among the
segments, and compressed back to the compressed format. Finally, the
finished segments are written back to the page, or pages if it had to be
split.

The same subroutines to disassemble and recompress are also used in
vacuum.

Attached is what I've got now. This is again quite heavily-changed from
the previous version - sorry for repeatedly rewriting this. I'll continue
testing and re-reviewing this tomorrow.

Let's clarify where we are. We had quite debugged and tested version with
hard-wired varbyte encoding. Now we're reimplementing and debugging
segmented version of varbyte encoding in a hope that one day we can easily
replace it with something better that meets our restrictions (but we
didn't
find it already). Is it right?

The segmentation was a sensible change on code-readability grounds alone.
Yes, it made it easier to experiment with different encodings, and will
make it easier to replace the encoding in the future, but that wasn't the
only reason for doing it. It's nice to have the encoding/decoding stuff in
ginpostinglists.c, so that the rest of the code just passes around opaque
GinPostingList structs (previously known as PostingListSegment).

One thing I have been pondering, though: Instead of storing the posting
lists one after each other on the leaf page, it might be better to store
them as Items on the page, with normal ItemIds pointing to each. So the
page layout would be more standard, and you could use PageAddItem/PageIndexMultiDelete
to add/remove posting lists to page. The immediate advantage of that would
be that it would make it possible to do a binary search of the segments, to
quickly locate the right segment where a tuple belongs to. That might not
be significant in practice - linearly scanning 32 items is not slow either.
And it would add some overhead, one line pointer per segment, 4 * 32 = 128
bytes per page with the current segment size of 256 bytes. But then again,
it might be a good idea just because it would make the pages look more like
any other page, which is generally a good thing.

We already spent a lot of time with compression. Now we need to figure out
the result we want see. I spent quite long time debugging varbyte encoding
without segments. Finally, it passed very many tests without any problems.
Now, it is just piece of junk. I'm afraid that we will have to reimplement
everything from scratch another two or three times because code doesn't
look perfect. For sure, it's incompatible with getting something into 9.4.
Remember we have also subsequent fast-scan which is very needed for hstore
and other application.
I propose to do final decisions now and concentrate forces on making
committable patch with these decisions. And don't change these decisions
even if somebody have idea how to improve code readability in 100 times and
potential extendability in 1000 times.
I propose following decisions:
1) Leave uncompressed area, allow duplicates in it
2) Don't introduce Items on page.

------
With best regards,
Alexander Korotkov.

#114Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Heikki Linnakangas (#112)
Re: GIN pending list pages not recycled promptly (was Re: GIN improvements part 1: additional information)

Heikki Linnakangas wrote:

I wrote a little utility that scans all pages in a gin index, and
prints out the flags indicating what kind of a page it is. The
distribution looks like this:

19 DATA
7420 DATA LEAF
24701 DELETED
1 LEAF
1 META

Hah.

I think we need to add the deleted pages to the FSM more aggressively.

I tried simply adding calls to RecordFreeIndexPage, after the list
pages have been marked as deleted, but unfortunately that didn't
help. The problem is that the FSM is organized into a three-level
tree, and RecordFreeIndexPage only updates the bottom level.

Interesting. I think the idea of having an option for RecordFreeIndexPage
to update upper levels makes sense (no need to force it for other
users.)

Some time ago I proposed an index-only cleanup for vacuum. That would
help GIN get this kind of treatment (vacuuming its FSM and processing
the pending list) separately from vacuuming the index. It's probably
too late for 9.4 though.

One other thing worth considering in this area is that making the
pending list size depend on work_mem appears to have been a really bad
idea. I know one case where the server is really large and seems to run
mostly OLAP type stuff with occasional updates, so they globally set
work_mem=2GB; they have GIN indexes for text search, and the result is
horrible performance 90% of the time, then a vacuum cleans the pending
list and it is blazing fast until the pending list starts getting big
again. Now you can argue that setting work_mem to that value is a bad
idea, but as it turns out, in this case other than the GIN pending list
it seems to work fine.

Not related to the patch at hand, but I thought I would out it for
consideration, 'cause I'm not gonna start a new thread about it.

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, 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

#115Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#113)
Re: GIN improvements part 1: additional information

On 01/22/2014 02:17 PM, Alexander Korotkov wrote:

We already spent a lot of time with compression. Now we need to figure out
the result we want see. I spent quite long time debugging varbyte encoding
without segments. Finally, it passed very many tests without any problems.
Now, it is just piece of junk. I'm afraid that we will have to reimplement
everything from scratch another two or three times because code doesn't
look perfect. For sure, it's incompatible with getting something into 9.4.

That's a bit harsh :-). But yes, I understand what you're saying. It's
quite common for large patches like this to be rewritten several times
before being committed; you just don't know what works best until you've
tried many designs.

Remember we have also subsequent fast-scan which is very needed for hstore
and other application.
I propose to do final decisions now and concentrate forces on making
committable patch with these decisions. And don't change these decisions
even if somebody have idea how to improve code readability in 100 times and
potential extendability in 1000 times.
I propose following decisions:
1) Leave uncompressed area, allow duplicates in it
2) Don't introduce Items on page.

Well, I got the insertions to work now without the uncompressed area, so
in the spirit of Just Getting This Damn Patch Committed, I'm going to go
ahead with that. We can add the uncompressed area later if performance
testing shows it to be necessary. And I agree about the Items on page
idea - we can come back to that too still in 9.4 timeframe if necessary,
but probably not.

So, committed. It's the same design as in the most recent patch I
posted, but with a bunch of bugs fixed, and cleaned up all over. I'm
going to move to the fast scan patch now, but please do test and review
the committed version to see if I missed something.

- Heikki

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

#116Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#115)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Wed, Jan 22, 2014 at 9:28 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 01/22/2014 02:17 PM, Alexander Korotkov wrote:

We already spent a lot of time with compression. Now we need to figure out
the result we want see. I spent quite long time debugging varbyte encoding
without segments. Finally, it passed very many tests without any problems.
Now, it is just piece of junk. I'm afraid that we will have to reimplement
everything from scratch another two or three times because code doesn't
look perfect. For sure, it's incompatible with getting something into 9.4.

That's a bit harsh :-). But yes, I understand what you're saying. It's
quite common for large patches like this to be rewritten several times
before being committed; you just don't know what works best until you've
tried many designs.

Remember we have also subsequent fast-scan which is very needed for hstore

and other application.
I propose to do final decisions now and concentrate forces on making
committable patch with these decisions. And don't change these decisions
even if somebody have idea how to improve code readability in 100 times
and
potential extendability in 1000 times.
I propose following decisions:
1) Leave uncompressed area, allow duplicates in it
2) Don't introduce Items on page.

Well, I got the insertions to work now without the uncompressed area, so
in the spirit of Just Getting This Damn Patch Committed, I'm going to go
ahead with that. We can add the uncompressed area later if performance
testing shows it to be necessary. And I agree about the Items on page idea
- we can come back to that too still in 9.4 timeframe if necessary, but
probably not.

So, committed. It's the same design as in the most recent patch I posted,
but with a bunch of bugs fixed, and cleaned up all over. I'm going to move
to the fast scan patch now, but please do test and review the committed
version to see if I missed something.

Great! Thanks a lot!
Assertion in dataPlaceToPageLeafRecompress is too strong. Page can contain
GinDataLeafMaxContentSize bytes. Patch is attached.
My test-suite don't run correctly. I'm debugging now.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-assert-fix.patchapplication/octet-stream; name=gin-assert-fix.patchDownload
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c
new file mode 100644
index 8504f4c..4be5b3c
*** a/src/backend/access/gin/gindatapage.c
--- b/src/backend/access/gin/gindatapage.c
*************** dataPlaceToPageLeafRecompress(Buffer buf
*** 802,808 ****
  		ptr += segsize;
  		newsize += segsize;
  	}
! 	Assert(newsize < GinDataLeafMaxContentSize);
  	GinDataLeafPageSetPostingListSize(page, newsize);
  	GinPageSetCompressed(page);	 /* in case it was in pre-9.4 format before */
  
--- 802,808 ----
  		ptr += segsize;
  		newsize += segsize;
  	}
! 	Assert(newsize <= GinDataLeafMaxContentSize);
  	GinDataLeafPageSetPostingListSize(page, newsize);
  	GinPageSetCompressed(page);	 /* in case it was in pre-9.4 format before */
  
#117Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#116)
1 attachment(s)
Re: GIN improvements part 1: additional information

On Thu, Jan 23, 2014 at 9:27 AM, Alexander Korotkov <aekorotkov@gmail.com>wrote:

On Wed, Jan 22, 2014 at 9:28 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/22/2014 02:17 PM, Alexander Korotkov wrote:

We already spent a lot of time with compression. Now we need to figure
out
the result we want see. I spent quite long time debugging varbyte
encoding
without segments. Finally, it passed very many tests without any
problems.
Now, it is just piece of junk. I'm afraid that we will have to
reimplement
everything from scratch another two or three times because code doesn't
look perfect. For sure, it's incompatible with getting something into
9.4.

That's a bit harsh :-). But yes, I understand what you're saying. It's
quite common for large patches like this to be rewritten several times
before being committed; you just don't know what works best until you've
tried many designs.

Remember we have also subsequent fast-scan which is very needed for

hstore
and other application.
I propose to do final decisions now and concentrate forces on making
committable patch with these decisions. And don't change these decisions
even if somebody have idea how to improve code readability in 100 times
and
potential extendability in 1000 times.
I propose following decisions:
1) Leave uncompressed area, allow duplicates in it
2) Don't introduce Items on page.

Well, I got the insertions to work now without the uncompressed area, so
in the spirit of Just Getting This Damn Patch Committed, I'm going to go
ahead with that. We can add the uncompressed area later if performance
testing shows it to be necessary. And I agree about the Items on page idea
- we can come back to that too still in 9.4 timeframe if necessary, but
probably not.

So, committed. It's the same design as in the most recent patch I posted,
but with a bunch of bugs fixed, and cleaned up all over. I'm going to move
to the fast scan patch now, but please do test and review the committed
version to see if I missed something.

Great! Thanks a lot!
Assertion in dataPlaceToPageLeafRecompress is too strong. Page can contain
GinDataLeafMaxContentSize bytes. Patch is attached.
My test-suite don't run correctly. I'm debugging now.

ITSM I found this bug. ginVacuumPostingTreeLeaf re-encodes only some
segments. Others are not even re-palloced. They are moved left
in dataPlaceToPageLeafRecompress by memcpy. But it's incorrect to with
memcpy, proper solution is memmove. Using memcpy platform dependently can
lead to page corruption. Another solution is to re-palloc segments in
ginVacuumPostingTreeLeaf.

------
With best regards,
Alexander Korotkov.

Attachments:

gin-memmove-fix.patchapplication/octet-stream; name=gin-memmove-fix.patchDownload
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c
new file mode 100644
index 4be5b3c..f18867b
*** a/src/backend/access/gin/gindatapage.c
--- b/src/backend/access/gin/gindatapage.c
*************** dataPlaceToPageLeafRecompress(Buffer buf
*** 798,804 ****
  		if (!modified)
  			unmodifiedsize += segsize;
  		else
! 			memcpy(ptr, seginfo->seg, segsize);
  		ptr += segsize;
  		newsize += segsize;
  	}
--- 798,804 ----
  		if (!modified)
  			unmodifiedsize += segsize;
  		else
! 			memmove(ptr, seginfo->seg, segsize);
  		ptr += segsize;
  		newsize += segsize;
  	}
#118Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#117)
Re: GIN improvements part 1: additional information

On 01/24/2014 10:03 AM, Alexander Korotkov wrote:

ITSM I found this bug. ginVacuumPostingTreeLeaf re-encodes only some
segments. Others are not even re-palloced. They are moved left
in dataPlaceToPageLeafRecompress by memcpy. But it's incorrect to with
memcpy, proper solution is memmove. Using memcpy platform dependently can
lead to page corruption. Another solution is to re-palloc segments in
ginVacuumPostingTreeLeaf.

Good catch. Thanks, committed, changing memcpy to memmove. Will have to
switch to pallocing everything in the future, if we make leafRepackItems
smarter, so that it doesn't rewrite all the segments after the first
modified one.

- Heikki

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

#119Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#118)
Re: GIN improvements part 1: additional information

On Fri, Jan 24, 2014 at 12:50 PM, Heikki Linnakangas <
hlinnakangas@vmware.com> wrote:

On 01/24/2014 10:03 AM, Alexander Korotkov wrote:

ITSM I found this bug. ginVacuumPostingTreeLeaf re-encodes only some
segments. Others are not even re-palloced. They are moved left
in dataPlaceToPageLeafRecompress by memcpy. But it's incorrect to with
memcpy, proper solution is memmove. Using memcpy platform dependently can
lead to page corruption. Another solution is to re-palloc segments in
ginVacuumPostingTreeLeaf.

Good catch. Thanks, committed, changing memcpy to memmove. Will have to
switch to pallocing everything in the future, if we make leafRepackItems
smarter, so that it doesn't rewrite all the segments after the first
modified one.

OK. What about previous fix in assert?

------
With best regards,
Alexander Korotkov.

#120Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Alexander Korotkov (#119)
Re: GIN improvements part 1: additional information

On 01/24/2014 10:53 AM, Alexander Korotkov wrote:

OK. What about previous fix in assert?

Ah right, fixed that too now.

- Heikki

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

#121Alexander Korotkov
aekorotkov@gmail.com
In reply to: Heikki Linnakangas (#120)
Re: GIN improvements part 1: additional information

On Fri, Jan 24, 2014 at 1:19 PM, Heikki Linnakangas <hlinnakangas@vmware.com

wrote:

On 01/24/2014 10:53 AM, Alexander Korotkov wrote:

OK. What about previous fix in assert?

Ah right, fixed that too now.

Good, now my test-suite passed. Results are so.

Time of operations
event | period
-----------------------+-----------------
index_build | 00:01:45.709546
index_build_recovery | 00:00:09
index_update | 00:05:45.732214
index_update_recovery | 00:01:17
search_new | 00:24:02.191049
search_updated | 00:26:54.122852
(6 rows)

Index sizes
label | size
---------------+-----------
new | 387547136
after_updates | 610877440
(2 rows)

Before compression results were following.

Time of operations
event | period
-----------------------+-----------------
index_build | 00:01:51.116722
index_build_recovery | 00:00:08
index_update | 00:05:12.124758
index_update_recovery | 00:01:43
search_new | 00:23:44.281424
search_updated | 00:25:41.96251
(6 rows)

Index sizes
label | size
---------------+------------
new | 884514816
after_updates | 1595252736
(2 rows)

So, we can see little regression. However, I'm not sure if it's very
significant.

------
With best regards,
Alexander Korotkov.

#122Amit Langote
amitlangote09@gmail.com
In reply to: Heikki Linnakangas (#112)
Re: GIN pending list pages not recycled promptly (was Re: GIN improvements part 1: additional information)

On Wed, Jan 22, 2014 at 9:12 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

On 01/22/2014 03:39 AM, Tomas Vondra wrote:

What annoys me a bit is the huge size difference between the index
updated incrementally (by a sequence of INSERT commands), and the index
rebuilt from scratch using VACUUM FULL. It's a bit better with the patch
(2288 vs. 2035 MB), but is there a chance to improve this?

Hmm. What seems to be happening is that pending item list pages that the
fast update mechanism uses are not getting recycled. When enough list pages
are filled up, they are flushed into the main index and the list pages are
marked as deleted. But they are not recorded in the FSM, so they won't be
recycled until the index is vacuumed. Almost all of the difference can be
attributed to deleted pages left behind like that.

So this isn't actually related to the packed postinglists patch at all. It
just makes the bloat more obvious, because it makes the actual size of the
index size, excluding deleted pages, smaller. But it can be observed on git
master as well:

I created a simple test table and index like this:

create table foo (intarr int[]);
create index i_foo on foo using gin(intarr) with (fastupdate=on);

I filled the table like this:

insert into foo select array[-1] from generate_series(1, 10000000) g;

postgres=# \d+i
List of relations
Schema | Name | Type | Owner | Size | Description
--------+------+-------+--------+--------+-------------
public | foo | table | heikki | 575 MB |
(1 row)

postgres=# \di+
List of relations
Schema | Name | Type | Owner | Table | Size | Description
--------+-------+-------+--------+-------+--------+-------------
public | i_foo | index | heikki | foo | 251 MB |
(1 row)

I wrote a little utility that scans all pages in a gin index, and prints out
the flags indicating what kind of a page it is. The distribution looks like
this:

19 DATA
7420 DATA LEAF
24701 DELETED
1 LEAF
1 META

I think we need to add the deleted pages to the FSM more aggressively.

I tried simply adding calls to RecordFreeIndexPage, after the list pages
have been marked as deleted, but unfortunately that didn't help. The problem
is that the FSM is organized into a three-level tree, and
RecordFreeIndexPage only updates the bottom level. The upper levels are not
updated until the FSM is vacuumed, so the pages are still not visible to
GetFreeIndexPage calls until next vacuum. The simplest fix would be to add a
call to IndexFreeSpaceMapVacuum after flushing the pending list, per
attached patch. I'm slightly worried about the performance impact of the
IndexFreeSpaceMapVacuum() call. It scans the whole FSM of the index, which
isn't exactly free. So perhaps we should teach RecordFreeIndexPage to update
the upper levels of the FSM in a retail-fashion instead.

I wonder if you pursued this further?

You recently added a number of TODO items related to GIN index; is it
worth adding this to the list?

--
Amit

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

#123Amit Langote
amitlangote09@gmail.com
In reply to: Amit Langote (#122)
Re: GIN pending list pages not recycled promptly (was Re: GIN improvements part 1: additional information)

On Thu, Jun 19, 2014 at 2:09 PM, Amit Langote <amitlangote09@gmail.com> wrote:

On Wed, Jan 22, 2014 at 9:12 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

I think we need to add the deleted pages to the FSM more aggressively.

I tried simply adding calls to RecordFreeIndexPage, after the list pages
have been marked as deleted, but unfortunately that didn't help. The problem
is that the FSM is organized into a three-level tree, and
RecordFreeIndexPage only updates the bottom level. The upper levels are not
updated until the FSM is vacuumed, so the pages are still not visible to
GetFreeIndexPage calls until next vacuum. The simplest fix would be to add a
call to IndexFreeSpaceMapVacuum after flushing the pending list, per
attached patch. I'm slightly worried about the performance impact of the
IndexFreeSpaceMapVacuum() call. It scans the whole FSM of the index, which
isn't exactly free. So perhaps we should teach RecordFreeIndexPage to update
the upper levels of the FSM in a retail-fashion instead.

I wonder if you pursued this further?

You recently added a number of TODO items related to GIN index; is it
worth adding this to the list?

In fact, I forgot to mention that I tried your patch and it seems to
be working for the particular example I am working with using pg_bigm
(bigram) (indexed data not so realistic maybe).

postgres=# CREATE TABLE test(contents text);
CREATE TABLE

postgres=# create or replace function rnd_str(length integer) returns text as
$$
declare
chars text[] :=
'{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
あ, い, う, え, お, か, き, く, け, こ, さ, し, す, せ, そ, た, ち, つ, て, と, な, に, ぬ,
ね, の, は, ひ, ふ, へ, ほ, ま, み, む, め, も, や, ゆ, よ, ら, り, る, れ, ろ, わ, ゐ, ゑ,
を}';
result text := '';
i integer := 0;
arr_len integer;
begin
chars := array_append(chars, ' ');
arr_len := array_length(chars, 1);
if length < 0 then
raise exception 'Given length cannot be less than 0';
end if;
for i in 1..length loop
result := result || chars[1+random()*(arr_len - 1)];
end loop;
return result;
end;
$$ language plpgsql;
CREATE FUNCTION

-- HEAD

postgres=# INSERT INTO test SELECT rnd_str((random() * 500)::int) FROM
generate_series(1, 100000);
INSERT 0 100000

Time: 76296.641 ms

postgres=# SELECT pg_size_pretty(pg_table_size('test'));
pg_size_pretty
----------------
49 MB
(1 row)

postgres=# CREATE INDEX test_bigm_idx ON test USING GIN (contents gin_bigm_ops);
CREATE INDEX
Time: 50517.912 ms

postgres=# SELECT pg_size_pretty(pg_relation_size('test_bigm_idx'));
pg_size_pretty
----------------
118 MB
(1 row)

postgres=# TRUNCATE test;
TRUNCATE TABLE

postgres=# INSERT INTO test SELECT rnd_str((random() * 500)::int) FROM
generate_series(1, 100000);
INSERT 0 100000
Time: 233369.366 ms

postgres=# SELECT pg_size_pretty(pg_relation_size('test_bigm_idx'));
pg_size_pretty
----------------
747 MB
(1 row)

-- Whereas, patched (gin-recycle-deleted-list-pages-1.patch) HEAD

postgres=# INSERT INTO test SELECT rnd_str((random() * 500)::int) FROM
generate_series(1, 100000);
INSERT 0 100000
Time: 32808.779 ms

postgres=# CREATE INDEX test_bigm_idx ON test USING GIN (contents gin_bigm_ops);
CREATE INDEX
Time: 24490.945 ms

postgres=# SELECT pg_size_pretty(pg_relation_size('test_bigm_idx'));
pg_size_pretty
----------------
118 MB
(1 row)

postgres=# TRUNCATE test;
TRUNCATE TABLE

postgres=# INSERT INTO test SELECT rnd_str((random() * 500)::int) FROM
generate_series(1, 100000);
INSERT 0 100000
Time: 153878.163 ms

postgres=# SELECT pg_size_pretty(pg_relation_size('test_bigm_idx'));
pg_size_pretty
----------------
119 MB
(1 row)

That sure looks good.

--
Amit

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