POC: Lock updated tuples in tuple_update() and tuple_delete()

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

Hackers,

When working in the read committed transaction isolation mode
(default), we have the following sequence of actions when
tuple_update() or tuple_delete() find concurrently updated tuple.

1. tuple_update()/tuple_delete() returns TM_Updated
2. tuple_lock()
3. Re-evaluate plan qual (recheck if we still need to update/delete
and calculate the new tuple for update)
4. tuple_update()/tuple_delete() (this time should be successful,
since we've previously locked the tuple).

I wonder if we should merge steps 1 and 2. We could save some efforts
already done during tuple_update()/tuple_delete() for locking the
tuple. In heap table access method, we've to start tuple_lock() with
the first tuple in the chain, but tuple_update()/tuple_delete()
already visited it. For undo-based table access methods,
tuple_update()/tuple_delete() should start from the last version, why
don't place the tuple lock immediately once a concurrent update is
detected. I think this patch should have some performance benefits on
high concurrency.

Also, the patch simplifies code in nodeModifyTable.c getting rid of
the nested case. I also get rid of extra
table_tuple_fetch_row_version() in ExecUpdate. Why re-fetch the old
tuple, when it should be exactly the same tuple we've just locked.

I'm going to check the performance impact. Thoughts and feedback are welcome.

------
Regards,
Alexander Korotkov

Attachments:

0001-Lock-updated-tuples-in-tuple_update-and-tuple_del-v1.patchapplication/octet-stream; name=0001-Lock-updated-tuples-in-tuple_update-and-tuple_del-v1.patchDownload
From 7bb1e45353f5b81a9963cda843b1aee0f65b05ad Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH] Lock updated tuples in tuple_update() and tuple_delete()

---
 src/backend/access/heap/heapam_handler.c |  99 ++++++++--
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 227 ++++++++---------------
 src/include/access/tableam.h             |  20 +-
 4 files changed, 181 insertions(+), 171 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 444f027149c..ffe78bb6b25 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,6 +45,12 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -299,14 +305,38 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	if (result == TM_Updated && lockUpdated)
+	{
+		bool		updated = false;
+
+		if (!ItemPointerIndicatesMovedPartitions(&tmfd->ctid))
+			updated = true;
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, updated);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +344,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,14 +372,34 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	if (result == TM_Updated && lockUpdated)
+	{
+		bool		updated = false;
+
+		if (!ItemPointerIndicatesMovedPartitions(&tmfd->ctid))
+			updated = true;
+
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, updated);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
 static TM_Result
-heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
-				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
-				  LockWaitPolicy wait_policy, uint8 flags,
-				  TM_FailureData *tmfd)
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
@@ -363,16 +414,30 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!updated)
+	{
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	}
+	else
+	{
+		result = TM_Updated;
+	}
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
-		ReleaseBuffer(buffer);
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
@@ -559,6 +624,16 @@ tuple_lock_retry:
 	return result;
 }
 
+static TM_Result
+heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
+				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+				  LockWaitPolicy wait_policy, uint8 flags,
+				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
+}
+
 
 /* ------------------------------------------------------------------------
  * DDL related callbacks for heap AM.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index b3d1a6c3f8f..94bec180814 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -307,7 +307,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								false, NULL);
 
 	switch (result)
 	{
@@ -356,7 +357,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								false, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index a49c3da5b6c..41a955d7072 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1218,7 +1218,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1228,7 +1229,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockUpdated,
+							  lockedSlot);
 }
 
 /*
@@ -1373,7 +1376,12 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:;
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot(), slot);
 
 		switch (result)
 		{
@@ -1432,81 +1440,28 @@ ldelete:;
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1569,7 +1524,7 @@ ldelete:;
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1838,7 +1793,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt, bool lockUpdated,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -1972,7 +1928,8 @@ lreplace:;
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockUpdated, lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2123,7 +2080,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2176,12 +2133,32 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+		bool		lockUpdated;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			lockUpdated = true;
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			lockUpdated = false;
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, lockUpdated, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2234,12 +2211,12 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
 					 * Already know that we're going to need to do EPQ, so
@@ -2247,73 +2224,19 @@ redo_act:
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2557,7 +2480,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2764,7 +2687,8 @@ lmerge_matched:;
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   false, NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2782,7 +2706,8 @@ lmerge_matched:;
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   false, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3733,7 +3658,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index fe869c6c184..2d990163487 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +528,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1461,11 +1465,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockUpdated, lockedSlot);
 }
 
 /*
@@ -1506,12 +1512,14 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, bool lockUpdated,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockUpdated, lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#2Aleksander Alekseev
aleksander@timescale.com
In reply to: Alexander Korotkov (#1)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi Alexander,

Thoughts and feedback are welcome.

I took some preliminary look at the patch. I'm going to need more time
to meditate on the proposed changes and to figure out the performance
impact.

So far I just wanted to let you know that the patch applied OK for me
and passed all the tests. The `else` branch here seems to be redundant
here:

+        if (!updated)
+        {
+            /* Should not encounter speculative tuple on recheck */
+            Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-             ReleaseBuffer(buffer);
+            ReleaseBuffer(buffer);
+        }
+        else
+        {
+            updated = false;
+        }

Also I wish there were a little bit more comments since some of the
proposed changes are not that straightforward.

--
Best regards,
Aleksander Alekseev

#3Aleksander Alekseev
aleksander@timescale.com
In reply to: Aleksander Alekseev (#2)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi again,

+        if (!updated)
+        {
+            /* Should not encounter speculative tuple on recheck */
+            Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-             ReleaseBuffer(buffer);
+            ReleaseBuffer(buffer);
+        }
+        else
+        {
+            updated = false;
+        }

OK, I got confused here. I suggest changing the if(!...) { .. } else {
.. } code to if() { .. } else { .. } here.

--
Best regards,
Aleksander Alekseev

#4Aleksander Alekseev
aleksander@timescale.com
In reply to: Aleksander Alekseev (#3)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi Alexander,

I'm going to need more time to meditate on the proposed changes and to figure out the performance impact.

OK, turned out this patch is slightly more complicated than I
initially thought, but I think I managed to get some vague
understanding of what's going on.

I tried to reproduce the case with concurrently updated tuples you
described on the current `master` branch. I created a new table:

```
CREATE TABLE phonebook(
"id" SERIAL PRIMARY KEY NOT NULL,
"name" NAME NOT NULL,
"phone" INT NOT NULL);

INSERT INTO phonebook ("name", "phone")
VALUES ('Alice', 123), ('Bob', 456), ('Charlie', 789);
```

Then I opened two sessions and attached them with LLDB. I did:

```
(lldb) b heapam_tuple_update
(lldb) c
```

... in both cases because I wanted to see two calls (steps 2 and 4) to
heapam_tuple_update() and check the return values.

Then I did:

```
session1 =# BEGIN;
session2 =# BEGIN;
session1 =# UPDATE phonebook SET name = 'Alex' WHERE name = 'Alice';
```

This update succeeds and I see heapam_tuple_update() returning TM_Ok.

```
session2 =# UPDATE phonebook SET name = 'Alfred' WHERE name = 'Alice';
```

This update hangs on a lock.

```
session1 =# COMMIT;
```

Now session2 unfreezes and returns 'UPDATE 0'. table_tuple_update()
was called once and returned TM_Updated. Also session2 sees an updated
tuple now. So apparently the visibility check (step 3) didn't pass.

At this point I'm slightly confused. I don't see where a performance
improvement is expected, considering that session2 gets blocked until
session1 commits.

Could you please walk me through here? Am I using the right test case
or maybe you had another one in mind? Which steps do you consider
expensive and expect to be mitigated by the patch?

--
Best regards,
Aleksander Alekseev

#5Alexander Korotkov
aekorotkov@gmail.com
In reply to: Aleksander Alekseev (#4)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi Aleksander!

Thank you for your efforts reviewing this patch.

On Thu, Jul 7, 2022 at 12:43 PM Aleksander Alekseev
<aleksander@timescale.com> wrote:

I'm going to need more time to meditate on the proposed changes and to figure out the performance impact.

OK, turned out this patch is slightly more complicated than I
initially thought, but I think I managed to get some vague
understanding of what's going on.

I tried to reproduce the case with concurrently updated tuples you
described on the current `master` branch. I created a new table:

```
CREATE TABLE phonebook(
"id" SERIAL PRIMARY KEY NOT NULL,
"name" NAME NOT NULL,
"phone" INT NOT NULL);

INSERT INTO phonebook ("name", "phone")
VALUES ('Alice', 123), ('Bob', 456), ('Charlie', 789);
```

Then I opened two sessions and attached them with LLDB. I did:

```
(lldb) b heapam_tuple_update
(lldb) c
```

... in both cases because I wanted to see two calls (steps 2 and 4) to
heapam_tuple_update() and check the return values.

Then I did:

```
session1 =# BEGIN;
session2 =# BEGIN;
session1 =# UPDATE phonebook SET name = 'Alex' WHERE name = 'Alice';
```

This update succeeds and I see heapam_tuple_update() returning TM_Ok.

```
session2 =# UPDATE phonebook SET name = 'Alfred' WHERE name = 'Alice';
```

This update hangs on a lock.

```
session1 =# COMMIT;
```

Now session2 unfreezes and returns 'UPDATE 0'. table_tuple_update()
was called once and returned TM_Updated. Also session2 sees an updated
tuple now. So apparently the visibility check (step 3) didn't pass.

Yes. But it's not exactly a visibility check. Session2 re-evaluates
WHERE condition on the most recent row version (bypassing snapshot).
WHERE condition is not true anymore, thus the row is not upated.

At this point I'm slightly confused. I don't see where a performance
improvement is expected, considering that session2 gets blocked until
session1 commits.

Could you please walk me through here? Am I using the right test case
or maybe you had another one in mind? Which steps do you consider
expensive and expect to be mitigated by the patch?

This patch is not intended to change some high-level logic. On the
high level transaction, which updated the row, still holding a lock on
it until finished. The possible positive performance impact I expect
from doing the work of two calls tuple_update() and tuple_lock() in
the one call of tuple_update(). If we do this in one call, we can
save some efforts, for instance lock the same buffer once not twice.

------
Regards,
Alexander Korotkov

#6Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Alexander Korotkov (#5)
4 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, hackers!
I ran the following benchmark on master branch (15) vs patch (15-lock):

On the 36-vcore AWS server, I've run an UPDATE-only pgbench script with 50
connections on pgbench_tellers with 100 rows. The idea was to introduce as
much as possible concurrency for updates but avoid much clients being in a
wait state.
Indexes were not built to avoid index-update-related delays.
Done 2 runs each consisting of 6 series of updates (1st run:
master-patch-master-patch-master-patch, 2nd run
patch-master-patch-master-patch-master)
Each series started a fresh server and did VACUUM FULL to avoid bloating
heap relation after the previous series to affect the current. It collected
data for 10 minutes with first-minute data being dropped.
Disk-related operations were suppressed where possible (WAL, fsync etc.)

postgresql.conf:
fsync = off
autovacuum = off
full_page_writes = off
max_worker_processes = 99
max_parallel_workers = 99
max_connections = 100
shared_buffers = 4096MB
work_mem = 50MB

Attached are pictures of 2 runs, shell script, and SQL script that were
running.
According to htop all 36-cores were loaded to ~94% in each series

I'm not sure how to interpret the results. Seems like a TPS difference
between runs is significant, with average performance with lock-patch *(15lock)
*seeming a little bit faster than the master* (15)*.

Could someone try to repeat this on another server? What do you think?

--
Best regards,
Pavel Borisov,
Supabase, https://supabase.com/

Attachments:

pgbench-run-2.pngimage/png; name=pgbench-run-2.pngDownload
�PNG


IHDRJ���SrbiCCPICC ProfileH��WXS��[RIh�P���D�@J-��TATBH(1&;*���E�������
�Z��(��XPQ���
�7!]}�{�����3g�S2s�:�|�,� _Z ��a�MMc�P
���(d���he�����
��\rUq}?�_E_(R@�!�*�7�d���Po3�@��b�
�0@�g�p�/S�L5��o����2���g����BA6��~��T(��cq�@�B�����I*<bGh/�x����8����9���gbu^�B�(dy�i�gi����)|��F�#�U��^����4����1��ZC�N"T��*VF&��Q3�����	��Q�A.�����3�$�<��jA�J
x���E��
�z�����%�r4sk��~�*�enG�],�
��.'�@L�J�c ���@�����������2^�-�l�4"D���g���5��|�@�X�X�����qb��>�N�?~c��DRN��H16z �(4L�;�*�&i����
B�5s�eyq{�,��P��!6U&h��#��T������Du�xFT�:�D.,��-L9@��U��G��A6W�f`FJ��>@�"P���B��4�U?]AV�ha��\��|��oe�,���d�j$�y�X�`S�}��@M�F��e�X����Hb8�	7�q<>�as����@�_�	�m���+�v����b�7����?\�q������� ;d���)p�=�={A-W�*w���s0��j����QP�%����Lmgm�AUE���:����rG������B�G}k�-��a'���i� VX��;�R��5��

x���'�H�����TUR�V����Q3
DST�;I6M.��8�+ b���aCY�n����)���+f��a���+~
@������]4���-������a�:0�T�@)/T�p���:pG�`aF����`F�X�R�Xg1\�r0�sA	(��j�l[�����Ap�g�p����<��
�E���b�X"v�����@$�F��T$�F�����C���:d3R���@�"��6�r�D^"P���9j�G�(�B��h6:-B��K�
�
����G����}��`�������1.��aY����b�XV�5����ua�q"��Y�+\��x.�'�����:|^�����{x7��@'�\~a,!�0�PB('l#�'������H$2�D�S�9�����
���&b���D"��\H�X�T@*!�%�"!]$u������dwr89�,%���;�������]���KR�Q�R�R)�)�^���@M��P�R+�������WZZZ�Z�Zc�$Zs�*��h�������Os�qi�4%m	m;��v���N�����i��z5��.��6C{�6O[�=[�R�N���s���Gg�N�N��>��:]�]{]�._w�n���k�=z�z�z�z��v���{�O���������L�c�0�cc+�8���h�`�3�1(3������P���0�p�a��!�v&��g��y�������F�F#��"�Z��Fo����K�w_1�`�2	3�5YnRor�7u6c:�t��q��!C�����;��j�lo6�l��9�s�s��Z�c�]L�`��U�-:-����U�G,��YV������2���RZm�j���v�N�.��m}��j����Ye�l�mki;�v�m��M;��Nl�����[{������8;��jn;��';V9^v":��r�68]pF��������]Po��������C�C��^s��r\]k\�
c�V<�~�������/~r�g7/�<��n�F��5�xD�������J��t�p��
/<]<E�=�{1�F{��������[�]���c���������^�>�K�
���{�����_��^���]�s�w�?�0R4r������������������AUA��m�����s�89�]��!n!���!o�~����P,4"�4�5L?,)l]��p����������M��������x�<���=�g��Q-Q����uQ�����������F�};�.FSby�+c��9�M��}qL���1��G���?��H���3�MbH���[I�I���d�������)�)+R��;s��T�TIjC)-9m[Z���q��u�{���_�0~���L'�M84Qg"��BFJ�����X~�'���>�[��<W	;E���YY+��dd������]�d��ENd��������s��R�v���3�H�����I��Nj���Jd���&���-��oS ����xx?�tT.P�+,�,|7%y���zS�S�Ms��h�����������gX��;��L�����Y���g���?�cN��s�ss��Q�V������y�������`A����y�����_(Y���c��E�K��g�����>.,>���+~�[���u����������.Z�c����V�^Y����t���W�.�,����F���"��a���ek?���RR�{���E��nn��1xc�&�Me�>�$������uU�U�[�[
�<�����������n+��i�t{���-�>��;�v.�Ak�5���w]�%���Z���������=�=O�����������j��m�~���:�nZ]w����!��������������V+Zz�zx���#EGz�dM]G��>h��|���c�[����:~�D��c'9'��
8u����g�g��z��;�un�^�o�n�;�s��������m�/]<z)������g��\i��t����k����������f���[snn����S~��n��N�n�n?t/����	�o=<x�P��c��G�G��-W?qr�3����qO;����v����������;��s�c�;^�_��\���������{�z�������������O~H���w�G���ON�?G}�����'����G64+����������w�~A���~�V����Z�����&��f?r�:�'��c�iD��������]_�+sH�|����n������
�&���*!���O��.��26|#�{�W9~�U����_"s���!�o�eXIfMM*>F(�iN����x�J��ASCIIScreenshotL�:	pHYs%%IR$��iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelXDimension>2122</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
         <exif:PixelYDimension>1246</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
��e9iDOTo(oo6w��@IDATx���E���@@H3�J�EZ]BMz��*�C�|����t�R$���}4��HoQ�����=sff�������z�s���������s�3S|=��LD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@��)$��WY�(" " " " " " " " " " " " " " "�PB7������������������������������@�! �D���:Q	%t�������������������������������J��K��PB�������������������������������@�! �D���:Q	%t�������������������������������J��K��PB�������������������������������@�! �D���:Q	%t�������������������������������J��K�h7��^{�����;��.h��b��e�_~��y��W��L�~�����^�L?D@D@D@D@D@D@D@D@D@D@D@D@D@�h�P��w�1���r��K��6,��j��?�in��V�����g�m6�����-���I��?4����/��"f���oX�K9��3�������2�,�Eu��}�Ys�e��-�a�i1��>�����{�r��w�5��������m��v����q���3?���B���������}��
G<x�A�#k�������������������w�y������>�,*��2�[����~���2�O�����`��6h� 3d���"}��*�Oz�"?�������e��v�UV�����'P����;�0��y���~���k�Q�L?�!�����r�-
�O�;������f&L��r���8��f������"�V��?������:���^{m3��S�-�cT��.cZ&�x��G�u�]��x�UW58d}���c�=��dq����hX�}�������+������]vY���7,��}��9�����)���ay����nk�,��B��.�&�'b���������Y6����w�k(���T'Bflm���_4^xa��~����7��a���"��n��.�
6�����O>95�%^���#G�9������N_|�y���N��0�[���_|a�8�����n�������nG����c�/��f�wlX��T�}�������2��~z]���w)�]�������.m*YvU�_]��i�uvb���H|Gyd��5#oHL2�����vER�S����)S)!Z�e�]R���$�*�����������<��{��������}�B�4E@D@D@�$����f	H(�,���_UG��O?m�����8�L3��:�n����s�1���j����Z�����u�|?������
b�����#F��_�h��$�h��I~���f��1�����e%���_�2�li�w�uWC�Y6�z���3�;��l���I'���CB	/�
�}��BN�	w�
�FDdD�JZYB�3�8����O&]�wD�eU�W	%��l)�]>^����k�5�=�X�!�J��z�}���]�����f�}�)#�>�FU�W	%���*w����" " " �$ �D5�k����]s)�6#UuD�F(2��[l���:�:9�s�W48q�����F�)��"��V�����"�>��<��g[�!��Q�����i��{-���~;�t�V�P���c]k����P�z��V�}�x�������|���L�%�@��z��s����U�~�P"�}��r�������qs�5�4$_�P�������!#�Jx�xW�~�P�s�=�U�z�h������@�" �D����?Y	%�����XUG�Yg�e�����]�����VX�nY��'�|b�;������1��:s��$+���i8p�:O@B��]�/�������;�83Q�P�Q{��k�I(�������$���:w(C(�TS�{�0	%��Z��I��Z��kDs|�2�D1MY������U�~�P"�}o%�]L�s�O=�������(K(1z�h����y�%����������T������&	%�y]���$���K����#�5Bq��Qf��g�^����������
���r�y�����}�{�3s�=��m���~�3q�D��������������b�M61�,�Lp�l=	%Z��u�I�&��c�C��!�������2���x��1	�'�'=���ge%p���m�I(Q.UW��4�F��}��"s%�-C(���Q$�d�e}�P"�d_�_%�H��[�a�����iebB	�5.�l%��F��������x+�39�3���D@D@D@D�/�P�/\������#���#�y�O<���+0f���o}�ay���[n1<�@�3�\x�����n[������1l�0����{�MH����w�7��N�#�<25���/�.�������""��L���Nz���m���f�)���������������/m��K/�K.��[�,�J��_�2|p�\��za�y���.�e������_#���v�f;����b���
b%��3�X���wo��6s���7A)�f��\��dn}�~�P�}�}K����i�������~����!��0a�9�������C3F[j����$Q�}�J�*�D��X�n>^�ZD@D@D��$���u����P�k.E�f����t�'�NwWgir�K�:��c��3�B�~�����N;��c�=��3��\�\�����E�H.����"�	%��'�W\�i:�2��(48�O8�3�S����8�g�}�p���v������w�i����LYmV(�A�mt����n��RK(�gU�'LF4�fW�	����o.���TdiV�P!��/��p��`
;tx"���~;���Y�;|_�_]m�2��u@+��*�^*w�����`�g�Y�.�4Dj�����f��V�w��^+w�R���S�F����,�����T�2V�r�S�t\�j�P���k�BB���4]���8"�@o��F���'���Z�l��fu���6��:������>��w�w8W�x�3J�NY���-� �>�].	%���K��O����O�m���Y�#ky�l���������>h��k���{���])����O�e�]f^�u��w�B��{�0'�m8p��$��O�
��sDX8��p���+�~������=����p�A\�/C(q�G���Q���$��_��s�E����>�.����;��N��k>�b�*�D���
�^*wt\x�����?�t��J Bf��zm��^)w����W	%��+��
�n��VD@D@D@�	H(��H[4A@B�&���]����/�+���o�kno��9J�=��`g7Q ^y��8�����/n��r����_�H���k��t�Af��fr�����P����x�	����8�Y���\a�����C���u�P"���������_�L3�4���}N�4)� A����8��
%I �����Z�_B	�z�o�s������^��a��+�9y��������oD�!�5+��9h����%�vq��F�Xb�UV1������J�we�O�s�T8�{�z��E��7;!�e%�?�x���7��c���i{�������
�WpA���	j�������d  �DH��8	%���+{V���V�rgz���~��Yg�5�i����~�\u�Uu�x����-K���m;��B�F�G�]�g���Z�
	%Zw' 6������:H�B	B���-���,������m%��2dH��mv�d�Y�S^������\��J0M�%�v�������$��O�
���.&��q���j�P�j����m�D �0����/t�f�L����-���f������m;���%�����nZh��D��������1�{v�\�~�������2<�@��pl��P����������������7��
�n���JD@D@D@2�
��t�,'2�B���I8`���w�0r����38�'N�hm8�t�E�����73�8c&�el���|���y#/��eDLZi�<������k1��3G�N;m�C�J�H��w���Z�2������������3�cs/���s�s-q�����]������V��Q"������~7��}��[~qn���<������WGD�ZR��|���E��1c�D�@���,����B�/���f�m���b�|�Ms��g6�o�������m��Ff������7�N�
�����z�����6�(�{����F���r�H�n�\�	��?���!=��m�P��K�^�@�G�A�G��������s�r��c�:����c�9��$�iu��Y��y��g&L��<\�K��n��gAH(��3��v����0��c�(L��3n[�B	�@�~K�,"��Z)�����j�=�)���h��v��2m8�����3D]����>�R��.��2Q��vF�:��S�z't]h����Z�����Y�Qen��v;�(��@/Y�a�G'��d���_���V	%��������)��O��H{���}(\�������r�w����F��"������:k�����4m�m�]����G���p���k�����r��K�OD@D@D�	tT(���'��|�����@^l��"�#b�2:ry�C'�kt_�8t,-��"Q�h��y���>i�
������q�����������M������@(U:��0����������B���QI?���39��%�L`�'��	2FC����<N������:���C]���dtE(���Y�!�0�����/�����G?���t�M#�h��������SOE��6�i�s���I�<�e�aw,�)G��S7�B(s���VZ)m�}�:���:�xr�����g|m�p�0�*���([p���V~Q��{?��������?�[o��>T��'�EQ;����k����;�
�_;
�O>�dTF��{�/�H�k��<������
������?�:����,y��g��k�)��:=	�,e�/��r.�'��`>G/��|��k����������>�����]j��j�f���]��F�c�m�y�����k�i��������Y��G�p/P�"��5��	�y������Q�@=�JK����9�y����g[��|Dh�1��n��f/.�w�B	�:�a�=�\$^e���-�e�N��em6�n����0�����N����v/�O|���|K�;p�@���(.�`�vv2����9�9Dv@HH��6���������i�q��6j�(S�}�N�����7;/D*�}���}��U�_�J�f���(t����u�N�����T���yoN���������w�y�y���\���;��S���Y��d��Y����6�NO�P���/�M�K���-eA/Y���0���k�B	��v�E����!:Z'" " " ���Pb�5�07�p�a��<������(j8"��,���A�7�����5��8��4��6�l��}��7r����H"��@��O9-�v|����Q�q�C4-/D��#�C�&��9���������
?:G��Gu��	�4���
�:`/��B������t>������r:�o�������t�Y�5�c����9\�����8�u�]7rV��B�t�� i�C�{��s�M}��� ��f<�t��F��y�a��N��w�O�(�������	FBG�������\���$�3z��("��s���j����$$&�����g�Q�Y#=P&�r�)
I�92�&C�����o����&0��P�g���\o�*��%G���3y�h�l���c7��]nd=n���>�#�����P��~�����)@'�>��c��so!�s	�B�G���dm��*���.��M��"u�
�����1@Y�j+K(A��#$r�����E`!JM3�`��u^^���Ms��� �a���}�����c��,��<����9rP!Z��1h[�B(q���;�MY�
����2����w����>E�#=�{HZ��W�jJq6S� R��~��-6�pCg�4�&�g;�|m"���C����]<4��o����n.wCB	�������V%~���E�w�����Z`�����Z������e	%�����U���h��������O��B	B���w�u�rz���"U�#����c�frt��Bp�2J#����d8�����[[m�U�Q"������r9�\���3��>�FH(�(R���:�o��]v�%��@�P����8>�A�����K������s��z��&u������e�������q|O��~�����#�����#���s�s�/������)��M(Q�9�i�:(��,��}L�7��+��2�������hm{W:>���{�m���jg�W:<D�IQ$�^!$�Ino���S�%��#�������N�f
���,Vv����Y�q9rp�!6���,[!�@�t���7d��������g������}�@a*���BTwD/��/�\B	D?p�(=��Z!�@�E�5��6�KDbD�J���vY�!�`3m�,�|Z�[�|�5P8���5�q������'�s�����qH�����!�d,��l������O~	��S��B(�p���n8�9������zK�-Z�E��<�u�3�Q�!������>�_�J��w��7�_��������v���C�
%$����!h�uc��J TE<h���B(q���7D��Zs�1����$�#}�<�q���m�.����k�B�N�E����]��~�������@��](Q��$�Y����C�Q�e��^z���\B�x`W����
�����ea%���Nf��u�P"5��0w����|�N&�J�<�A����'2�{}�����3v�9�L��Q�l�vt�&<y�-���,����M}����������}��D� �V�A'7�g:�]F9QTT�J�e}A(At"���B�h:�4���1q��'�J���0��2�P����>�km]-��`���@�WFy�L7��U([F���k������7�l�TGn��F��e�&���1O:e��I�
��}���0�yg~h���g�.�~&Ly���s8�n2E��&�������=�w�k��1����r')���BOkc��B	�=�h�v���G��!��g4��{�<s�e���`�Y��o�'�8y~���3-�j�Y�Y�������>�r�l�{�	�3�h���IGu	�U\��Z!�����\r�H4�c�i���g����hW���y$"M�9�x����/��/m�1?�<E_����9�����np��i���~��w��P��;�0��{��z��gc�����M
%xD��\�
�br�-H;��B�g�y&���r�	�.�!�BO������a�v��R�r.}�~mF(�����}�r7IC�E@D@D@D���J(��/Jt��Z��y�Q���'�j�����4����D����T&�@�\B�����A@������/b�YF�9JH�4#M^�q���������P"v�>6��qq�f��\B������s��l�_y�'��6����<�w�h9DmH������D�3��8]����H�8c.�g�.�'��b�PG"�.���t"��1^�\������]�v��7�H/��
����c���V�%D8eN�qSgpo�=�E��}rf��iyI�gt:����FO%�������������Y�����CF>(�UF$���?�y��P�����r#t���`s���G���OBB�V%������������{,�)q����ydidN��
)_8DI@��ig��CR����������(C�J ������p\L�0!�h�
��Y��c�e�Y\����v�%vyWDCp�f�W0�9��$��#��F�����������,�q�"�`�b��E$��4�t����n[���+�C���V%��2�Q~�����r��?�����
Z}r8�t�����x��,y#Z�N��hc���Y�S�kq�u�i����>d�0�=����.�f��D��b��;(*�����>kf�4_�E�w����g�,�m��!+[(���~���E9C[(��)�/9iC���M��r}�~-*��t_D|���I�SD@D@D@�G��B	��L9@'x�;��?��#^�Tm79dq�����;�9�"��g{��D@���C��e�:��
%x����.��1��P'�6�lS��7���Dxp�q�y;\���	KD�|p "����g8Q��f��B	�MtF����%�w�>�!�r^!�V��,���Q�n��c��y^���hU����p1r����O��s�w4,�@��xA�����(Fh�:�������`(��9BCy��r-��j���?C�n�o���Mr������.�F���{�if�}��1��By�����(�p�$��.D�	#d�y��3z�6�+������;9����{���V��a���8�#�`��O"a��%P�p��y�����r!9'�:���|F��7�hq�(w���Y���,�P"m���D����7�8IClq����*��Hc����JP���u#F��<m�v���qGg}C�`b�e��+���e���8�F������������\T(�`�(?!��F^��7��|�d���!I�N��(R>�^�����4"]{��^t<�5���
%:�>����7�'��|��>���V��p�#���nr�V%���i��ic��h��h&-���z� ��S���]��M;��#��Z�q6S�{���������x���wg�9��=~���%?�D��D�A��=��c�������}�
�����?���G�{7��#�����vL+�����nU���B�N�Ep����'Yy�:*������PT��Ql�8g9l��V��!#l��^9�\���>KJ��A�YFg%;:��%���eD9r�kUmY����o��wN
M
���3�P�N7�c,N�e8��t�:����(4B4M(�=�����q���C����!6����P'�N ���',����������{���2:�q��l�4;���kU�,���
���!:�1�S�g&�<�:vy}S����u�l���:��\���g\W���;��N��K7�r���e�_�����]3�p��q��$��1�����7�|sP�����G�`r��{�B��#:6:�(�q� ���r��=�<^���Nn���{��o4L��4�F%���r�_>�����9�(C1�K��r�w.�^^�#g�+�q�)gZq��i��B<��������L�Yu����2e[�B	�VDAj�!�������ST(��2�cP��^����)���L�r�a�y��p���4�������caj�<����u��q����R��u��2��U�j�v��O����#D���(�Z���N�����z3�7�/��O<]�,Q���4hPt�y������E��D^���g���NT������!vHp�`���w'��
%|���lB��x�N~vk��"�n�e�)�_�u��g��o�n-w�Z�JtC_���]�S��" " " "�ZJ��B�*��i��C:j]�����]��'r_�,������It��W7���y��^�G�P"���O:<|#0�D�G����F2�	g�o�8
>a��p�MG.IKJ�tD���S54O+"�>	%�Xg�����>'C���v'2F�]r�%�����/�]t���g	�C�9����HsxB9�,N�SVG� ��g�e�����)K��!m���9�tA�()q�e|RF�t�I��g$���4F
��� &`�rV��\�T���Z��G���^��+�	��\St���?q$#��Y�P��+���]Y�����6����m��6������r�u�v,+�����)QZe�oL9����y��m��s�E��i��h�P��E$����~<��
�1�� O�|��E�a?_�(VD�rY(���}��'��!��g��uN#t ���Be`Z�/���O<�)�Yf�e�&�l��<sD�^h���X�D�����K��K��<QD�>��o_���9�7.����E��	�����}11�
����?"�,�<Y��j�������~�.#j^�.���\}Sx��;;�w�G(����Z>c@��!C|��ny7����{��
	/�����5h'�~���������E����r��O��'" " " �%�1��k���f����_|������D
>,�d�a�N���>��qr$��y��!G^H��I�P�@h4����xD.cJ���	%�:�r��('�/N:���i��d�t���Zr�k��c��A���6=�V\��!M��J�e5��c���g!�g��rW���4�'���^�	�gDv�o��Z��<�,�z.��5��5����7:|#+�PH���X�mB�EY�������\��B�+y�C�����������B�J|���QT���P/���wE�AH���ee��c�cY����3�J�q�P���`�8�}���4�.��Y���>�������i	�s���������-������!r���L���tF�����"m4e�!���,$�rm�2���3�t���v9e���^.�.�ul�{�7~B�'��J��	<�B�6�Y�2���j�|fQaZ�e;rh���O3�C��#��
D[��|�"5{J��>�\Gy�3�3��,zf��ooS���U�q���,$[n�����\���!��=�'x=yZ(�`�N�dJ��#��H�c����P�r�y��4ND���	��vE�E�S\���=�����h��n(w�Z��JtK_���v=}:�������4��P�5j�1k�KB���y'}�%�LS���]�c|��C����P"-��+=�qu���x�9��:|N�a����C���J�MYRK$��	#clKs<��t!��z/U�7�*��1����q�o��h�o:O��HZ�c^#�.Qlu��m��Y$/i�FC�db������F��9]��c�[o�eN?���C�p!2D��rM�r|���t�2�7���m���uv��
M%��0�eo[H(�6%��Q:�|vY�~��3f�+�h*B����{��t*tT�� �:��.7\���ee;r\��<GP������\���J�>|xpJ��1��;S%P����	���m������6N^qg�.�R�}��n"j�O����_F���!����S��J��`:W{�1�"���EZ�_�~u���c��|�7���2���������Ui�����'���.~���Y(�:�9 ���0��s&O��;�}�5��~���u�u�"� �q	��Y�v�D���y���A�����H�����7`�S}Y��6%�h�w����-�;U�r�y����{�����Hd��`1�&}�_~y�M��	�R��1��f�w��-[(�-�k^�D��E��m�)��" " " "���%x�G!��|���HhE�|��"��8��K��i��&����J)�h<�c�7��M����v��y|���G!����<�L{��nl!�D�p�����6����g>�/��{�j��v[�y���%:pm�2���i"��d4�8Oq�)����vE@�s������):T�Fu9"����g�}�yzt2��F��F�#0�)��O>�ad�O�J'�:o����!9��V�/bP(BA�<�FC�I!�D^G3���7�i�&uu`C�� ���������������+�����w�B	_���gZ���Q���q_WW��x��,��1oOK�������k�!o�'�K�Q�F����+�M{G�
��Z��������}m�s�1A!�/SD�z����vk����J�<�����W��>�q(���
��$������rK$�p��6��n���F;
g<����H{���qyh���v�D���y�����j�61
�|���T����;HJ�D��;����o���Z)kw��<�nl�e�����=���?�3���>�5���K�]��]��-����5�P��"T���)�qD@D@D@D�M��B�P'�;��]:~�x��z�\��P�4�I�6�lv2����F���!�V(3���o��o�F�3���J��%���FU���d:>���1�j�������/����~�2����B�,"W�|��n�	����9"{����XF�D��4��O����u^����m��M~_i���9���Z���kt�[la��-jo���ad��\���P"�5�E�Y~��#'�+Oi�|s1��FN�������!TQ�YK�b����	%���q���l�B�����u�O�t,�g���Q���FCPH"y� q�}�]�>�g�%&N�E�������_��L��� �������/����T�W(�{f��w�����Xr�%��#�6'���l�������]��I3��RGR����3���,�����#�/m���M���6�����O4���4�KY�����Q�7�e|�nJtK���}����8��q����Z�A�_HwW������Pb�5�pF��O}��v3��3O����*w����M��������d��`��"j�������r���}\��6��S�n�B�n�_�
%��/B�n3O����	�](�Lg6����2��M����*��������B���fD�mk�����6�P����P�.��v�mgl�`���7;��S��e.�	%����<�Ff�F�������J�}���Q�iS$����^�Z�4�QC�r���Yr9O�[���9O��k.��^{�������HK�0����n�fm[Od��nf���F��?m�_zY����	���
���a�Q����{gi��k(mWgjH(a�1��%�1�	�O���`����J��_�e�6�lQ��Byh��~�#C�j[����~�~�-����(�g��t ���=��C���ov�Z�	�L��?���h�7�q��Z���i[��+S(�L�z�'u��9��#�:�w_�`4<�,��
%|�3n/�����67���_}���+��K�]��I3P(�����wE�����B�8���'y�\d�E������}���D>9��c����z�z�=�X$�	���v�D��N��y���2'O������y������wj�'����]����wC��<�n�qtL�Cs�=�wz�P�LI�[h�s�AEQ������
�n�B��s���<B�P���������O���%�	����7��xl�y���������	%�:�\#�9�P�)2�i�j��f�^{m{q��}�:��}���������P"4��+s>�D�r�B	:C0�
g#p��G���+���Pb�E5�l�M2�L�Cwi	tK'�����8����pE(!8�Za���z.;�|l&�A�<��@��2����n�\��q�r�&�'�(R^��3��E��t���6�P�i:����6��3�<��������F����UB���O�$�[�E�.!�\�f�O���
�~5k�g8�X�|y�He�e�Ff�UB��1���mE{89*3���-�P���W�����I����m�O|p�bFW������?��|���>a���7���N���g-�����
m�=F���OX���w1�����(=�v�9�c4���n0���s&c�k�u�]����\w�}�La�����E���w�'��qJ6����>������9�q6sq/����`o���%�������������2����H$�8�����(�3�Z7���K�{��s/�?Ss^v�e�]m1e7���T�V�~�o�<B�n���K�n|��)" " " �D��B	��Y������e8fp�����t���\s|r|�P�������B�k���<���
I�/�
���'��a��sv��sHJ0,�:��O(��Fx�1����
����%���B	���x��sg�GS����>�u����vpMc��Z��g`*���mO=���x!kf��P��u�7��pY���Hg"��m����I�	%\���~���)�p�^Qs�>���	�y��W�P�����>�D�r�P�J���9�"ao���lQ�oj���eY�9�~�2�-C>�`�:��"��!��������B	����m��
%�N��m��i�v�����.Q��|��'
����!���>����Z��A:�Po���S)�!DAT����{���{�8�����0Gl�\r�y������>��8`��B��.��F$|S��F��u.*�����������q6���2"�������eR�����f��
hg#,�j��Z���(f���]�����z�en���A.��t�~��r�j�k|/����p����/�/���u��������t��%pj63����o�E���k�����{I�	%��~�B���
%1��gv�M61�,�LK��E���-��G�����#��H����Pb��W7k��V��4���`L��4�0�_q�
����]����
X�F���c���A�r���w�i��8d�:WBi����!��m>���]�o�t@�G:���J���'�s}wu.����v�Z��}B�f��P>|�|�s_e�r�w�V/�G��	
������0�]��4�
g,y�c����l�%�,"?��zA(���wM|�\_��Q�lc���f�7����8��C�S���m+��24o��WN�9�"u��_~�3��%J����H�%Ze���	9w�k�)��TDi��B������!����l�/;������������r����}t��}�O�`�x}�O���}G�eh���������/�9�����t�)�D���0�s���I+���v��S�k���U�_�{-�P�[�"�R�_'}�������@7h�P�����o�����k]�k�v��U���N%|��7�l3��RK�
G�n�%x���*�u�P�Q`�S����ms9*���:���Mn��{G��C3��A|�j�9wZ}�d�?�������2�wD�+D	��[om[l��&-[���)k^o�P�v\p�>���s�i��1W�"�7��s��>�����N��e��<���z�����9��v���3�<�Sj�P�����#�D��>�Ja���kyo��^J��)�0��=�?�P����'�����.�����7"X�<�}��'�k�5�����/C�*@��%���G��*���f�f�-��lGXi,��O�c�)�`�5N �i���J�3c*8�N�����V��5��j��:��1Xx�����n'Y��W��"�N�dJ��2�Wn���[(�+�.7Y�{��M���_|q4u���-rog��K�n����>�#��1hw_D_*w���O�&mJ���^&4Z:'^��0�����#�<�Ln��fr.ov�B-dpb��i���C.Og�}NYK(�'����u��������������DH@$�d�zK���9:���:Z%���v�=�4�Tn���8u�l�X�v�mT��s���3'�U(�H%�Fn���
�i�2��n��t��{��
��=
;x�p�	���>jXk��f����P��0�c�=!������	%Bs��������]n���~>'F;���y�E^b��w���7�|���!� *#�{�1�S������VX!�^�_�~�5���	������B���sYB�3�<�P����z�E��^���/��k��=��k�&�(�}�+'��M+�(O�8wM�:u!�������������mB	_������^����v�#.�=��7$4va��d��ve/�Z��q��|m�;����{�������������N��E��^p���;w=z�����G���@IDATM+_����LJ���eg�q��P���7�e
�v%z��l�{�y!�����n2���Q?3EWl��_{���Z�_�<B�n���K�n|��)" " " �D��B����.�`+�p��U��c�=�����j������{�Y[>;-��M�Q�<�i%���+�`����:+��D�s��47t0��-"�4i�s�nJ�I�����P���O�v���R��/��W���c��uN�9�	������v~��9������;5�+�s�v��z��)�����b�-�P�/�M�8�}��
�������at�m<�H�2���������2��'�^p�����evxmW��~�e��V���<�L��
��\�"����SN9�k��/���/����Q�x���7n�aS���-�����=�
����6{�={}�CB�V�O}�Q��*�����#�����C=d~��\�.p?�,�:yz�����w�8rp6�D	v����.kz�<��Hj��D	���c���w��5��rz�P��V�������+�:��8�B�D�=�e�|������P������g��������H����;�6c��������]�%��k�{�~_y������!���k-��_{���Z�_�<B�n���K�n|��)" " " �D��B�M6��,��2���>$f����}���/���;uZ(��D2d�aTu+MB	?]��7��T|#��#���Z������b!���<%�+���sD �9rd��(>Gv��f�����}��P��JG���>>/D4���������+#�#���Zh��k4���*Q��A3l�0�8�����6�P��w�1��z��y�����}���
;�v�n�#��L�������O�7�.	�S�PN|��W��E�*9
���dBg�_|�+]�r1����+���B	X���O��_Q����8lm�+��MaW���n���7��b�d�v�[NFYf[;��kw��0�����W7��h��.0D$�c�G�#�^��m�V8r��s���Xd��Qr[��|u���nj�^z��*�|��E��kG�!r!���cL��0m�E��o��Q��U�_c.y���)�B���q�>}Q�\i���v������k�}�s���%��G�z�r�7�GW�3��SO]��
�.'�����|��?���Z[�r��P3�k#��%ckE�Z�r�j�k|�}�������e�Y����n���k�n�E��mJ�	���"��<p���up\FPN7�tE�Ph�N%|*F"�^���$�X�e����m������y�>�����k��~:��#k��/GuT�W{9�@�KV���\y�������5�h�<B��( -�S�{��s����� �Xv�e
s����He;^|q��j�<�=�����{8&�F>O2�*tV3*d�b��	NG!�x.}��K��M:R|��c9W<.c>f�e.j�"�	6�2��N>QC�s$\�UW]���/M��w.k&��+��e�z�/G����+S��C
�ZQ��H%=
������s���J+����?���ZV�P����g.'�t�5_��6���OC�y���l�6w��R�����}���������/��>���$�R�~E��t�����>��k��u��T\k��F��Um)�qC��t�Q!=\�6�3x���|�C�
F53���������wr��n1_���t�T����]��ChPH�Q�|�AC�l���������s��}>��+�����:�u0��}Q�r~y�]���#Q1��F�M3Ql|S6��h����
�nU��<B���������'M�E@D@D@D�=�.����f9��.���!�~��UF��v��c�f�����^��,���Nc>�Q���P"�/����lw�H(��=���G(q����o��6W2�)�Z}/cl��B	^f����V�ql�v�?]q{>j������E����#�%|�L4_�e,G�C9e��E�7�3��C��)��=_t2Gt����Jp~�)@�
�O�4�
�'����r��x�e�����`o���*���������o�������h?!�o�p#y����Jp<�����532�b/W�����Yw�u����B�	&���;�! XM��un�Y��&�����Yg���(IC�x���&E�$22���s�=!�m,���q�k��
%��}�����RQ��>i����29>�3�y�����Q�l.�t����������#2�S�����f9V��)S(�M�kg�o@�G�M�S���g�i��g�k��N��Jp>�\s�a@����g��]���U��P��&��b�b�5��+��TsDNL|�J3��*��U�_�%�����r7���mE@D@D@D�|mJp
E���F�0:�>�|�������������G��L{9����F��N%�P�S��)��}F��5_g���/���l����_oy�����w�q���s�=7�4$:yA7%������hd�+�,k��.G�6�l�1����)�s���H.�g���4�����8�V}2W=��]�����y
��G�,�1�5��L�#���\Vd
*:�q�����P�7�)�[�Qv�o�Q��iJ$�h��|��HH�����i�y�w�N��+��|���D�a������J��7�1O<�D��63��.#��|����*�P�'�#a;�u��= ~p�K�������w}�)�
%�S7�O�O�a�������d�x��&s����-l���P�<|��HD�%��68���]�%�����r�5"�^���o����{�,Q������f"���a[3B��^z)���N���6i'��%����a��_v���P��*����{�����l��n����u�]vY4��k�N�z���j��W(�
}*w]O���������@�tD(Q$\�/����s�u��G}�I�H�	��N��9g;-� o>�8#q���8��hlD#���:$��	��w���#������r}}#��vxqD���n�����z
����&M�F �����;,�����`��}�:��}���#�[-4r�h��z�!�)�x���E�
>�6�6�+���=c���u���L�@j�q2�N�������K�q�.7�t���{���)�"����Yf��y�ZZ�s��`���u�PA�>�� �H/��c��:E������������]eK^�����c]����%�B���6�E�����s�k�r\{J&���M����'q^\;��qN�������29��%pe9� �r����>��l_T|�;�o�K(A�����������k^g����n���>�%+z?�|������s�i�{�F��;("� ��=�����K���}�L�%��G�]N5��������y�6�
}"D��c�ijZh!�����I���U(w�Z��JtK_���B��v�RtD(A���cCG]��Z|����[n�L��>0'�x�s/e83��n:�z�B���8�������:>��z���<�l����:L]�\�|Y0e�1Qb�uH�����Q6�q�3:����-�h_h��W^�����v���y�L������s�y�]s�������.,��Y��yp��F�qy�����|�:i�\���E�!��s~����t�w�qO��W�{��Qf��g�|
���S�:s��/[(A�.�����A�!��6�?�sB�y�eYm�����SNq�G�O�d�[v����O_���z&�L��������7���R���E��%��3�v��ykG^��L����C�xV�	��s6���k�i�Xc
�6���	�BB+W����Z���Z��c�YK���{Hx��^{e�PByH�9bQ���c3r�����g*M(�
���Db�u�RK-eV��8/�&N���������
7�`����A��~�3�:��P��P��J��e�����0��4�L�L�m����k^gs(�	�L��{Gs]4_9����A��|uf��[}8�vN�Q�rfy�]�����>k�>.#��>���Y�_��������� ro�U���j��W(���
}*w[��*}���P��:$�:�h,2:�"��M�q���_|��k�1�#��xi��q����c�v0.��3�n�(A�|!Y�<�L�6�,���a)�t��G(rV�Fp��J��Y��C��P�������� �/���9�����Rd��71�
���Y:�p���OZ����%��a2������1�2<���f���J$
������.�����.+[(�
q���D?����������`�[�����f�4&J��c2�`*��H�k�����	���F'u�Qv?��������G��M$�
�6���je
%`��@g�K`�����kD&��?�jh_���Pa�'���cP�I,�!K�)��z�)W��e�����i��������&!8Ex�2���aI���I�<��t7y����;��lGNh�(��U��X��K.���6lX�~�~�yx�0����#?E�Q���������2O?��#���b	�r�Y�k>K{��D�A3B	�*���s\��f��]�z���A�{���w"����B��4iP���2��hS���P�V�~-"�����[���xzuh$�1�Y�A��V[��wa'q"�,����y��w�����t~2��Q���%"04s*�^���`t���E(�����MTB��:��p�]w�{��7���s�}�m�*�D���<B�����:uqv<��3��1>r-c��������+\V���w_fu���/���f��g�uny��F.Q���g��:=��\��Ib0�
4����L�������r:��T����{��� ��ot�=��c���N��D�9���
#�\V�P�c�FP�~��!�P�uN�?�|4������X�P����W�#>��n���^'+�����>(���e���h���9\�N>�	����^���'?q�c�Wp�0��g�-���h��|���A�l�����Yf:K>�-ee}H0eO}f�V�i����G����7z3��+��34���Yw�u��	��/�c����!d	z�}�:�^]V�#��YO��x��ND��w�����M�Vtgb}daU��"�f���|u�D���S����6�#}F��z#d�20��}�%�������;�c��6�y�8%��k����!F�%�/}F�@������:�6��O��[d��������E����}�r��<}:O�n#�Q�D�J�&�#��(>��p�i#���7]B2mg(����AL�rD����2�����9r�����%��:�9<8�i�w������B(N>9w�8�|���w��6�B�����J�$?�%�;��t.0:���~��:�>��C�{�>Y�����������B	�Q����_(��7g[��K�b��\�uP�1
L^�R��V��qD���zY6-�M��a�(F`�9KY�=N'������8�3�6�G+��(.!G6������8e���sr����g�P�m����t�����	��onk�����x�ge����zy����#�D��������r�{�)����|���~����;K[���z)����;�I:�CF=N�F���qe�o��^�i�BVT(A��hG��{��c�����l�c�w>P��+Y�.��`���N
�G[�v<y���2�gg�����#:�������r���dzxe��g��pY���'/�~B�����}(7y������$���i����}�cW~������E��i"5��jq����[o�e�G�~�mo��~����0������f����s����\�M��.��}_^V��
1M�G�NT2�e�����_H������8]}6���b�ZD(�N�E�WH�nLB�" " " "�>]!��{�t\1���S��V�N^����Y�Yw�P��g����:g{"F��LB	�o��J����#_r����l��Y�u&�"d��h-W$����g��:�t��,����j���S���/.��Q������1o�w[��ar�M��B�k2�,����Y�3��9�CVv�:V+����C~���"�����R�<*�n_��B	��EE(�G.���"'5#�@d0v��H�U$��}p>s��F���A����7���O��P��^m���s��o�#Y"yY!�����,�����8�C�s������G��:=V���J �3f�W,�����0�f�]_������ ��7�|�
60+��bh�s�j�ZT(�N�E��H�nLB�" " " "�>mJ0��[n)|����aEH����8oZl��;x�$'��&�����#���_Nf��w:�l�c�eJ��|�,�P�����Q�O5��W���m�g�W�te;<�pD����}F�2��>��?�o����b>�����Xu�U�:����a#��:�����\���g����[�3��;��c4�,�M��a
�(RE��G}��KV����������y��@�D��]n��U�[��!��q'�2�H#G�4�M7]���4Z%�@p�e���(�N�f�m2�m�%8yg���O>���m�%��D�y�������4�����z�}�,�n��U���)�x'�E���6�n��E�������@U��f��e��A�(';��S��'��wP�P�s��;Y���)8 �f�]_�Yhg�Q�s���_?���;���	T�~mF(�N�E$����$
}��h�P��R|�h��1��R��:�b�^{m���������X�	%�3!�q��s�=�:q3�4��C&���N����s����~~���Xa��4���sN[������4t�P3l���0�?�rD�������M��cYv����;���.9B��2�t>��tp�3:���.��D'e5evQ�g�y"'b���Jp��\3���k8��F��Cmx��%8.�-}��E������.�h�$�.72����Cv� �
�uO;��V[-*�]B��}���J�|z�!s��7�?s"cDlZ,�p�B�8-��@����*�������z(���4�R�E�)�F�M���W�'�s��u�t�����%�\M[P��B-	�yG-z���W���g3�]s�5ME&Cl�C��h�]}e	%�/S2�����^{�Vi��q��`N�4)���x�	�&��8��V[e����`����k�B	n�N�E����]��~�������@��L(��SO�����!����	:�a<��s
��$0bu����W�M��qD�`���W �����QG8����7�h~����v�uW3h����������;
/�Y;�A��y���
%����������c��Q�F5,O[����m8�����Np�k��<�$_�y��K��%"������1���,�h�A�4W���F�����jNS�y��p��W�:�����i�!EZx���sE�Hc��������f;D�5�ii����0�=��q��D0��r�q����J��g�2e�m���������o��P-�`��a��`����I[a�������2}�qJ9��-��)I����8#�g�h�����x����K/]JvK/��i�1���2d�APc���6��N����wF}��A{����TL�&�
�i?S�q�i/�1����vZ�.�-��a��<���g��h����6[4�s�����<��m�9!}���2�L(O�>���>��������#����<�de�_���(�����@��rY��Y�[���Z�2M�]�!��\���)�h�g��@(L{��������������0�J1�1]��'���e���3��:�w}__��Q��
q|��w�w"���F{�{�������j�U�~%z�k����3���2��/��1��>2Z." " " �h�P"kq��|��� ^��>`���"�4A"-����~��7����'FNh:�q6�?�+��!-O�Z��,PO��M��y�q����N��#Q:u^U>.�n�`�#(���!�����_�y�<��H(�N@�@�z��������ip��F���"��/��u�!��������\����Y�S'�R�"V �~����G��r�����(��q�?��SGL�ua�&����G��'0��h�����6
e<�h�S_�v�����L�A}�5�l��z�r`������[�cq�"(`����`?����c)�[eq����<PG�~Ap��mXx�D �m�%���x��ho��$�Q$��������!���+�(����Sgp��6����H���`�9�l)\��o�J�z�w"�B�Q���{Q\��� 2�����[������������{�+�" " " �M��B�����������������������������������T���U��:� 	%�x�RD@D@D@D@D@D@D@D@D@D@D@D@D@D@D�J$������������������������������������	H(���" " " " " " " " " " " " " " " U" �D����ED@D@D@D@D@D@D@D@D@D@D@D@D@D@D H@B� ��	%�t5u." " " " " " " " " " " " " " " AJ�h������������������������������@�H(Q���s�P"�G+E@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�D@B�*]M�������������������������������@���A<Z)" " " " " " " " " " " " " " "P%JT�j�\D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�$���J�*�P�JWS�"" " " " " " " " " " " " " " "$ �D�V������������������������������T���U��:� 	%�x�RD@D@D@D@D@D@D@D@D@D@D@D@D@D@D�J$������������������������������������	H(���" " " " " " " " " " " " " " " U" �D����ED@D@D@D@D@D@D@D@D@D@D@D@D@D@D H@B� ��	%�t5u." " " " " " " " " " " " " " " AJ�h������������������������������@�H(Q���s�P"�G+E@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�D@B�*]M�������������������������������@���A<Z)" " " " " " " " " " " " " " "P%JT�j�\D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�$���J�*�P�JWS�"" " " " " " " " " " " " " " "$ �D�V������������������������������T���U��:� 	%�x�RD@D@D@D@D@D@D@D@D@D@D@D@D@D@D�J$������������������������������������	H(���" " " " " " " " " " " " " " " U" �D����ED@D@D@D@D@D@D@D@D@D@D@D@D@D@D H@B� ��	%�t5u." " " " " " " " " " " " " " " AJ�h������������������������������@�H(Q���s�P"�G+E@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�D@B�*]M�������������������������������@���A<Z)" " " " " " " " " " " " " " "P%JT�j�\D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�$���J�*�P�JWS�"" " " " " " " " " " " " " " "$ �D�V������������������������������T���U��:� 	%�x�RD@D@D@D@D@D@D@D@D@D@D@D@D@D@D�J$������������������������������������	H(���" " " " " " " " " " " " " " " U" �D����ED@D@D@D@D@D@D@D@D@D@D@D@D@D@D H@B� ��	%�t5u." " " " " " " " " " " " " " " AJ�h������������������������������@�H(Q���s�P"���W>��f��If���6��;oW��G}d&L�`>��s3�,������L3�4�����+J;�������������������������K/�d��������:����_����|��������(�����~�����/�h.�������?��a�������1c�D������#�8�n}��e����6[d�EL����v���K���\$�����6�����&�lez��w7g�}v��{��
�<��.��=�����W_}e.��"3z�h����6l���;���:��6�l
�\�Zz.Z&" " " " " " " " " " "���{�=�����2y��G|*�0�"���C5{��G�����\r�9����c>��;���>��1bD��������[����9�/o�
6H�E���C���z���y��N0K/�t�]�m�P��/N3Y{��W��!C���~%�G(�*�%f�����9�������+�lP��l�y�1w�}�8p`h�(o})� ��ZJ�4�$�9r�ap2��`�&��s�1�{l�h��76g�uVru�;~�m������5����u��V�t��F�]v�:thr���0	%z������o�VX���o�m�U(A�=`���~Y���'N4��������\������h�
[������>3x�����}-����)" " " " " " " " " " "�{$�(v��I(������_=:�-�\�I���n����}�����o_���#�"�FB��D�g3�������;���BB	H���P��/��}�S�I��dJ�{��f�5��%����?�a�����k�i�]w������/�"M5��k���LM1�����t�]w��%d�c�=V������K��������������������������	%�]�nJ|��'u�{�{�93������RK-e�z��h��7��:5����/s������H&&�D���{�N;�4s�����U���v��y�������6	%z���rO�q����.���,�%�P��3�0���om�7�|3�P��C���~hf�i��D�������Z[��/���l��f5���q�����5�k��N\_D@D@D@D@D@D@D@D@D@D@D@z����.[�%��g6�d��$�s� i����2dHm�_��3�t��~�_&L�`����H��vJ�$��e�C��v]W����j$�����������i,���U(A�@��i0�y��d2����:��j�\}��f�-���N~!���2Km�n.����o�����N^?D@D@D@D@D@D@D@D@D@D@D@z����.Y�%.��3z���$6�tS�������4[n�e�(�p�4i�9������������
H�e�[l���|�����\hi�H(��W���2+��r�Yu�Q��#��-gz��c��~��,�����A��nh���z�����Ygs�����#r��SO]�mI�4XG�����6�k��N\_D@D@D@D@D@D@D@D@D@D@D@�>��c���_G�g�a�����o�m�z�)��+�D����{�h������h}��b��i���j�hz�X�|�;���������_~}����W�		%��M��x�
3����E]��<��Y�U�S?�����_�~��B-d��o>3�4��m���������y�����O?�������.�)��qH�48_���3�h��sN��`��fKnZ�JL�81�e=������]b�%
GH���/cJ�[n�%�I${���/��0���Zk�SN9%�>������u�YuS���m��%�w��{�Y��Y]�q��������^{���?0��L%�
�I����gG9��c�k(/ZWJ������{�k�Q;*�k��6O�
VfJP�S(�v�q��C9$���������1����F������������^ZW�f�����}-=#-�/�����������{�����g�}�(������u����?��O?�5�e;���9��C�6�lS����&}+.��
+�E
�����k�����W_�a���	Q�O8���g������=���#a�k��<9�a�t�.>|xtL!C�@�����Fmd��o?3p����\B�x[��Xm���|!��k����oo��_���5��1��c[z��#���
/6�J���0��sN��k�����_��t�I�x�^��V�'��������)#F����n0�,�L����J����������Gav�uW�w,�P���7��
jA�TBe��E#������Q�F��r�������Z����~���!����^
������������������������x	�nF�'��	����.#���{��ZU�l�W4L/��K/E���x"6[(A��.i����F��/��|��d��3f�Ah`����&���D&�}t\y��f��A�����<�L-!-�xx/����Oc�G>3��jZ_8��n�-�cY��?��7������_�i��'��(Q���rJCT�V
%y���^{�^�8�DW�v�m�-"���u���M�,�S�$}�/��B�S�I�"�s_AaU����O��-J���j�-,>�~�� �0��f�(q�%��v��v�(�%�2*U
sW%��p�UV��F�!;Qm��P�'C,�9��y��������F�E@D@D@D@D@D@D@D@D@D@D D����e�����&m]��)��3�Eef�v�&������kFL��g�K~���w�}f����[�f���33�4�a�)���	%���&Q�����mQ��"��D���g0,B���-* ��l'}�����!C�)$��a�%��F���Wr`l����#����Q&`q��w�"K��vqr�8�x���a3}~��'u���)�?~�~��z����3����w	�� �������,����iD�������|*FP *�F$�A�1��D�F@��GQqA��%7�M���;sg�����[o=������N�����u�E�E-Z��"\'�R:JH�r0I���{w��+V���{��u9��9vK>}��9q��WO����O�M)��|��9��d�r�0`@>�^�p��B�*r��
�?���`����<����������TWQ�(y����Lr�P	m<��# @� @� @�KW|m�[��B����w�ohzw���s���Uh}��h��y,��������.(U�����/��������8q��|������1l����V
u�����W^9I���k�F{4J��y�������M�~]o�@�����6���cT�a�6}a`�M��%?9��c���[G�k�_��5�[-�C�n�:t�y��G�69��z�����A����3
$�\��H6���y��w���;/�O������s��m���cb�H��f�Q�w�]Q��z���^�J�(�(��_�e���3��v�����m2z�������5�$�\�h�s��W�z}���(��S.9�>�hs�E�-Z��B{�Q�
�V���:J����9�M����QN�l�8����^���K����;��eeUD���W\����{��n	m�|��@� @� @p	�(����A�r~�����>;���>o������C�o�%��f�Q�����G)����8Jh�������n�P�������(*�6�my������\����:4�v{L�WNrP�%��6�U<Y���4n��d�
����|���W4
���^\�jU���{z��7���lr)���)S��K���M�f�6I��ETi`������RR�E:��(?���L������^���\c���[��"'	E�p�d�5��7r�3�z6}4�9��i�b����SK���z�Q8�?��L�qh�8JT���%��t�?���������ZX�i'o9���`��P���5����GG�T�M�}��f�<��R�=yl���������C9$
�����Kr�� @� @� P%��y��gL�.]�78�����������Q��FE�������x����tqC������B%��`���N���T����{�F��[�����w�{n���Z����W������"����]�m����+�M�6q���Gyd���n�������w���7����x�1�H69v����Y7�,X���~9c(��-J//]6�(}�M���?�)���}V�������~u�����k,�Z��������*��}<7]��/�h��k���s�K�b�������eL���h������NP��9s�d������v(����C�YWQ���~�+$�|��(����6�d[�6~���g\[�hQ��C��?|�f�2�X���r�m�|��]��w�?���r� @� @���:v�h:u���h^����:��M�*N���n�����(
JC`S:��6D�1ZWIn��s�(��tm��).�4rJP�[l{���t�`��/�l�B%���o_s�}�������\pAF�����'F� ���O��qC�-m������+� �����Ez��7�{��F)��[b�TP@IDAT>��#���$�����u�Z�Bd�]v��>&�E7qS�<P���"^}���U�$���7Lt�N�t�F/�1c����wt-��$���i+���>e�6b���j~�����7����J�r�9�dD*��%9��cYk0�$����jIG(�H�E��3���/��m���9������������x����w�����f����|?
q��x�8����D>B\� @� @�|'�\�-[��Y�@E�(��6z�^'��~�6,�3i�$#�����7.����/�w�a��R>G	�����T�����h��~�����Tg�u����8{��hs�vPZ�=��#:Mn�koF)%r��?�8�!����7��rJ�����
z}H[���KQ��<WI�A�f��E�L�=�����v�)���+���QI�~���n��O�Ed�m���*���$���HWv�O��`c���h�s�������'}D�g�Y�f9����O"g�X��r���/'�����DU��8a]��B%��A�qJ�a��ZLy*��-��:���i�����_����*���P�8J��� @� @����������KE�^������F�R
80�=f�3b���<WE!�m��|��R h�q�X.��23x�`�4��R���-[�6�m���x>m������IG	7�H!9����\�"D��(��i�JEz�Q8�a��	>���3�6����-J#��ys�)k���Y�Oc��C�5�/_Y�dI��������GC��|�z���sK��^{m�L��E�Wp��z�^@�%�����
��@a��\Gn��\+��V[m_�/m��W	m��������s�����FI{o�jeQ�J{���F4J�{�T+��@V�{V,4B�Q���W+������4
����n�*:����%�V��'�JW�l�����\V��~�>��"_r��:l$�K�1�=Z����5jT�A�k��%��
GqD�� �Xu�+Wrn����p�%�s����������u�7�c�92v���f;&��w�q��K/��&�4�9�6w}��kM�_R}���q�����y��Q��tV���v��������o�#�E�PY�h����k|M�����������:����/G�lx�*j&�@�	`�W@�l����f"T��^q �F{/j&�@�	`���G�u���{��u�;w�9��#�>���7C�1�/��_:w����Qb��)���q�l7����z��Q���3@���H�����O�>FQ0T�����MS�4!��M�K�����+������s�9��3s��^(�F2�����j~��_�)s,X`���_w��b�Q�CM<A
�R�K���!r�%������8J���zKX��������V����P
���&��9�+���!UG���a��i�
7���/�;��#>�VQ�-��H��������6^6>���/^���������6��%����/�C�'��O�@���^Z���`��kG�u���C]�O�����M���7���|�;���
2�&M���U�_��s��8qbFZ�lc*J���T�u�������y������w�n}��lC��������7/��m�5rJ�W���RU�o��4m�4�^�\
u����OM�^�������[��%y]��}�(1|�p����Rl�'S�v�a�����:���t������'�u)V�:J,\���X���n�4ib���+rnR�[n��6s���S�ULG�*V^>��q�8���3�=��cy=��
g�^�(}��c��]�������<�p�
�%���b�-�����N�,x�*f&���w/��(��,��^���PB@�,���`fxA{/^
8J�cv�	'��/��N����37�|s������q��s7���[ni�{�9����}��|0co$���"W���������O_{�5��U��}����O��+�H�_���l�S�N���5k�����(�{���|��N:�k*���c�=�&	�X��(PSq�9�$#�,]�4��aw�|�R8JhNE�X�xq4�Vf��;���IN<��n����X}��(�r�:_�u��eK�����=�����[��4V%�K_EI[���B���?��W������y�"o49.������g�}�(\�-�[����?4��=�������z������I�8��x�����/^�g������&��'����13@���/�@���^z��_`��kG�������m��
NMQ�m�	5'��;�(��-��p���v�W���vCZm�%�4���������{�������
tQ��^LR��#GfD��5`M��y��5+�t�]w����?:O{��k�1�_~y<���+�����oN;����M�R�\i:J��[\�E�x��b�����QB�z��X�����~���y�b#j��2Y�M�6Q�b�����y��g�N�/���n2���9�{��_�c]�S�18���������(������r��!���^nS\����2�>r�!�p�Q�����������2�[��M�Q�����k���'O�l�?���\����X<'%'��W�3�!��{�
�@�	`�%G������*%'���1@��{������f�G�c��h����z��)�K4�In�j�P��le���F{��q���s����"hcTv�m���*r�����j�4��(�{�=���^��w��5k�"*�s�=q��W^�����J~����Uy������o��fO���?�#F��h/H��*�DrcY���� n��G�r4��D�n#d$�:j���	���<��(��)E^W�~��6^m&L����v��1j�W)���t��1��!H��=:]�>�����(+r��C�-���WG��=���������l\'J}cK�����X%j~J#%P���?5�����#2���j�e��9sf�}5�dk5��k�33����P}k�%����;������j��'���G�~���q��x������/�����v&F�*M����@�q���~Y\��K�:7��q���A�%���4��E���?^[�R���/���5�����V�Z[����{�����
����\r�%�4~M����!��]X�����=���j�Q���v����d�W�����Q ��z��{F������|�M��V4��f�c���rt�}5��3����n�-�_�_M������r���6�em�sAF���kk�d�{���j1���?�S�\��+�d�oO;VM��Z���Or��9O���s���?�)��_�~�;�����n��$����N���{jR������B���	�yR,���_k��w����D�X[��#C�e�D�����.���sFi<�(Q���XK1%����C�NC�����������(��"B$����������W�[�B^k?����k��a:��Z�jm��h,	<�K��A!�%��K� JB{/	V����w/��P(	��$X^���T��B%�tO
��~�Ej�3gN���v���>3��
�zO�A
��r�9�����?�0�c����{��M�E�N�M����=�}���(��[�u��s6�h#���/fDjP�DiE6�p}��$�|_�)�f39�X��o���3�s�q15���f��v25��M6�$j/V��"J�l�������4)z���f{9�7�q������*���P���={�I�!E���&Y��W�h��\�>
yN2&��I}����k����fT�V��J��E�Q$����Q�����J�u��5SQ(������K6�l����0J�QWy��7�G��C+W�l)7�}C/�~�KC���peT�H{�Q+�����K��Q!�#��G� JC{/
WF����w���L�
\9$7��I��I�����`������^�G���n*������N�]L�Q��3�45�)���*��n�sSV)�5�M�m��o��f����#�������������l�5k��*�Qi!���K��O�r��(�4'�pB$�{�9o�B�T/^����l������SL�>����=5=s���+���h%����1��b������#=�z���&��N�,r����w���:�q���(Q}:+X�V�Z���K����.�^�����[��\�H@�������;�P���Es�YgE���)/F���}��� tJ�/^ie<�K{�W7H��	`�ie<�K{�W7H��	`�ie<�K{�W7�I�m�O�>f���F_�'��A���>t��-y)��6����h��FA�W��R�&��	Bo��nKM�����|=��Y�zu��M��>��?��o��Y�����3�\sM�����"5�}��Q$�&M���R�z!��`/�;�>���:*����e��1�&e�=�8*���)SLM:�Z�-l�.� rLP�+WMJw�����CH���~z|^hE�/���o���*"g�(�EMJ��I�'����`���_�x����@9�\`E�~��r��I��S�s�:th���_�>�yN�y��7���9d;7�|s�i��s��FI-Z������&��Du�������<��x���l��m��MnH�b��
S�P>���0K�����[;T�?�����
"��WA���FA{ojd(��^&:A�Q���Y
"����Nh��F���,"���FD�F��#>���(��>�l��M�r)B�>�e��IQ�n{^�Q�$/��ruB��r�Y�fu�����`��EQ���;��k��$�����V�4X�t�Q�}�������T�*���<���u
Q��4.z��,QMEzF�W�t�:u�����t�E�$o��v�d��F;����b�-BE��q�F�,��/^u����q���@�.�{]t���E{o\�d5���^�A�q���>K���%�3��	(r�6�w�qG3x��:�������H�2c���wo{��<%�����A,@��x�*/of�@%	`�����(/�����
�$��W�>sC������f6T��^I��5w��
�����L�6����~�4����o������hS��d���@��p��B
T�/^���C�|����f&T��^i
0?�G{/kf�@�	`����C�|��������v�x�����!Cb,��w7w�}w��+W�4C�5�?�|�w������n���@���p��W7H��/^e��T�0���
`z���^F�L�
��+���@	`�e��T�0���
����v�����L�~��{���Aa��A�K�.f���f������c���6��<���f����h���$����zA*@��x�*3p��@	`����(3�����$��W>SC����2g:T��^A�U6u��Z����n<���I�Ib���f�}�)�:B�@e	�(QY��xB�/O�(�������=Qb@���2@f
xB{�D��2�����LQ
G	�Y�dI�Fc���u�:������#M����E@���~�i �
���B�� ��W:SB�B��
�gZT��^�L	�
��+�i!P�{�W����-3k���V��V[ExH�|��f��f�����w�1M�41����#��k/��E���b@(#%��� 	����n�i���&�x�����n�i���&�x�����n�i���&�x� �p�piP��%��W��g���T:K����Yx�������%���z �=@��d@�@	�(QF�L�K�/u�dH���6Q�����wu�dH���6Q�����wu�dH���6Q�� @�%���K�: ,^��U=����Yr���`U��$���t�,�=X���	`�*�%C��HG�2�f*@�_�x��$�@�����2�%����$�@�����2�%����$�@�����2 @.%\�!�`	����Yx�������%���z �=@���`	`�����H{P�,� PF8J�6SA����_� �&���M�� �/��_� �&���M�� �/��_� �&���M�� @p	�(���K��`U��$���t�,�=X���	`�*�%K{V�,<@�{�Jg�� �2�Q����
��/^��� �6�=m��	`���� �6�=m��	`���� �6�=m��@��KG	�u@ X�x�z �=@���`	`�����H{P�,9X�{��g���T:K� ���e��T���x��W7H��	`�ie<�K{�W7H��	`�ie<�K{�W7H��	`�ie<@�\8J�4�C���+X���	`�*�%K{V�,<@�{�Jg�����U=����Y2 @��p�(#l���%�����A2�M{O�(�A�_����A2�M{O�(�A�_����A2�M{O�(�A� ��Q��A�/^����H{P�,9X�{��g���T:K����Yx������!@e$��Da3 �/^���
�A m�{�D�����
�A m�{�D�����
�A m�{�D� ��.
��@�x�
V�,<@�{�Jg�����U=����Yr���`U��$���t�@(#%��� 	����n�i���&�x�����n�i���&�x�����n�i���&�x� �p�piP��%��W��g���T:K����Yx�������%���z �=@��d@�@	�(QF�L�K�/u�dH���6Q�����wu�dH���6Q�����wu�dH���6Q�� @�%���K�: ,^��U=����Yr���`U��$���t�,�=X���	`�*�%C��HG�2�f*@�_�x��$�@�����2�%����$�@�����2�%����$�@�����2 @.%\�!�`	����Yx�������%���z �=@���`	`�����H{P�,� PF8J�6SA����_� �&���M�� �/��_� �&���M�� �/��_� �&���M�� @p	�(���K��`U��$���t�,�=X���	`�*�%K{V�,<@�{�Jg�� �2�Q����
��/^��� �6�=m��	`���� �6�=m��	`���� �6�=m��@��KG	�u@ X�x�z �=@���`	`�����H{P�,9X�{��g���T:K� ���e��T���x��W7H��	`�ie<�K{�W7H��	`�ie<�K{�W7H��	`�ie<@�\8J�4�C���+X���	`�*�%K{V�,<@�{�Jg�����U=����Y2 @��p�(#l���%�����A2�M{O�(�A�_����A2�M{O�(�A�_����A2�M{O�(�A� ��Q��A�/^����H{P�,9X�{��g���T:K����Yx������!@e$��Da3 �/^���
�A m�{�D�����
�A m�{�D�����
�A m�{�D� ��.
��@�x�
V�,<@�{�Jg�����U=����Yr���`U��$����F��E���k�F+����i��U#^mzK{��7��5k���oo6�|��/b����o�=��k����O����O>1�^zi������/�0�z����W����,_��l��f�K�.�e���������U������{w��u�<wp��(��@����#*{��'L �FL{o��eiH��@8�@#&��7b��4$`�	 �B����r[��~hz���z��1f���9�������h���Q�F�_��������'���GGs~����������Y��c�����v[3w�����D�2>�����k����j����[ni<�@3r�H#�Ja��H����7�vX���3p�@���_���v�0a������D��	�(Q��Ct@ =�x���� �;��w
!�#������ �;��w
!�#������ �;��w
!_�p�(�Tf?�%N?�t3}��H��c�����g{�
7��/�8j4h��4iR�u�������3�4����u-[��;���]��!�����!C��-�:J,Y�������}�V�L�b���_hw�yNG	��x�@y��U��`�>h P�{y83| ����d�@y`����,������!
8J���O�}��5��-�"�����+cQ'�|��9sf����A�!~�����g����v��|��f�����M�8�u�Q��iXG���a��(��#���C���
>�(Q0�����DU�	!!�R�����������@����Rf|�C{�GH�R��KM��!���] I��(Q?~�8J|�������~�����f��7��U����y�����x�Vj�����5��M��Q��+��2J���i����w�5����Rs�k*�<�������|}�����;�����@
u���o~c������B�w��f�v���R�p��n�!= �^�R�0��{(	!��=%��* ��W��)��S�0��{(	"��DA�ju��Qb�����#����n��������>2���[��`���E��|��f�=���7�l33{�l��]����$�*F�a���v	��&b����g�P���{��h�lz�:8�����N�,�^��C�{ P�����RC�>���P�T'��:������>���I{�N�!um8J�fRH�/���r�;vl$��`(�[�����c�=6j��������N:)���+�����N�_��W�X��_D��{�63f�pz�Y���o��7�l��_'�B%v�u�8�I6��9	
%�*Y ��x5��B��`���/��@C`�
����.�{u�i!��{C�q/���^]�����|��Y�vm$�[la6�`��������^z�,^��t��!Ja����5kV����]?��/7n����������i��y4��U��W_}�7�tS��F����(��;�D������k��f�]v1[m�U|o1�~X�pa���U+��N;��}�{f�M6�;���u��q�/������kf�������b�w,h�x�����Z�t��M��6�9t������r��3�R`�����+:����n:u��_������y���0� �����o7J��r��G)5TW�=�G�6�'OVST	!��G}��3g���,[���qc=*zF�z����.]j��m=�J%��sR��&M�d.����.b���]w]�~��7�����y�J2
��_\K�������Q����A� ��W=�q���^��Cl���^h��*%��W��� ����@�J	`�U��
�����w�9��/���F�)��b�<�,��?��3����4i���q�M�����(j@�2|�p3j�(s�q��)4����w��(���{��
�d�v�m�%�\b�����T�|��5f��)f��	�F Hv�o�����1![I�{����Ms1r7��{?��hN9d�U���/�%c.��8���_��|����*�����Kp@$W��fL�8I���\�����k�8����>�l�,j�g�y&v��5h�QB�
�:��c����67�p��������z��}���_9�d\��I)��l�%�������W��ABrt�Aq�B%�>��c���Q�E���GG��t��!�,x���&4R�{#U,��@�{(4A�����bY����@�	����H[�e%7�������kJ����"Dd+���9����]�h�g�}�|`-Z������'l����"=(JC�r�YgE�6��A���������^j�h�,I~������:�����������~���������F_�gsV�;9����O���K����r���O�����CEI(�$�+��l}�9��H��������a�x�{Z�QN��zj^}��]a��!&�D����sb��w����"?��C�(�*R���Rx�7.����_��W,XE�������ZT�Xe#��7Pi4p�h4�d!�@C���z���"��W���
!��7��B��`���/��@C`�
����.�{��zi��f��o���Dw�������KMQ�)�a���\����hZ�li�������FA�����O���g4k~���2[n��y���
���9��(���1Aif��]k3;������tB���1����&�
������D�����R�(���k$�"K�i�u���gO{5�~$���(b������%���
l��&w6�:|���F�����v������QBQC�-�M��N:)r\)v����`���{��F?+V�0�=�\�������-��Q���?_]Azn��:q��Q���O7��O���NO>����U�w9^
0 ��\�B8JT��H�/^�3eD�J{�U3���	`��3eD�J{�U3���	`��3eD�J{/^3����������X�;~~�f�M��h������Uh}���&�-��{o������M����_F�nZm�N�8�l���v(����a�����R���������IB��]��L�4)J`��q��y�}��n��_��F}e/�z��a���r\s�5��Q���0�����&����H��~����������k�y��k*��:�Mf�����G����r���fpV������l4�\r��"i�HZ��w�i�;��x>U�������;g�{�t��������ODiWt.<��S�R��r����3�M�9��g@9Y<������Tq�m���]��mz���k�N������K
yN2&��I}%�d�x���fT:��.���h������7%���Ae"��W�@3
< ��{�D�@�`�e�4�����e"���	4�@��{�J�Qb=�A�EN�[�����ns��g�
?�����7�����6�m��$����3�b��������:�(��W_}u�����0~��xHE%�F�-o��v�����A_�[��n�����@
�d�?����T��=��Ci�h
�(J+��{K�A�(\'{q��UQ�w���7���G��%'�)S�dM��5�����\����"
��93�E:QJ
�H�rvQ���~V������.�9��.���.��sO�[�^����9I(b��$c���t��s�����.�����$���b%����%WQd=��(���Y&�8�W%�COH	��/^%�������2%&���0�C�#��G�@���^b��`��+G����y���K��
N����6{��wF�m�o��FQ���?�<��c��?�x��"nHT�0��T����l�������j�v��w���Ut��M�F�a������[j9k��^�:rF���R
,\�0��m��W^1m�������8��#�&E\PT[���
��O��k�?z���]���c�=���b��9���3�
l���K�t����!6������H.w<�Y���+����^.��h?��O3����R��zN�
�|.���44��d���OF��_|��k�.�%��$����(��K/���G�(��mv�u����~'(J��9s2��u�]Q���FN���U�:��$��W�4~�����A M�{�4~�����A M�{�4~��������M�RU�m��2}��(J���������$7j�9J�U�6��J�7
���.����g;*��"����/E�PIn������w�}�k�c2��\���'?���#�-������#�
9��m���VK�d����*�������W�|����3�8#>/���GE�%�E����[���"�����^�Q��H�2��J#���9E�������&���Og�`��/�7z��3L����.i?'��
�'�O�a%&W���l�F�8��C�o�[�����Ei]�9���H%;v�Z6�`�Z�i�>8JT���(^�J�!!�)��S� J@{/T�����wO�X(��P����W���i�W�*�*?��6lX�e��IFI'�7n\�/[E_������|���;����qClQ:�}��7:���n����:�v�y�={vF��e�c�=���
���>:J�k��?�8�!����7��rJ�����
�Y�f����$�:�����^�s��!@iF�[���F��i���6���|V��$n�������>���QEd�m���V�
7
I|!Q����c�l�yR
}N�
=�(a�������m���m�uTJ9�X�
uP��N�:��KC��Q��t���@	��U�	O	`��*� P�{	�2$<%��{���@	`�%������^�bp�X�,_*
�J����6��j`���1�1c��#F���*
��r���r>G�|)4�R�u�Q�t�]v�<x����os��;P���MS����`����w�9�%�(���($"G<P���+_��4%�6E�P��lE(�0aB��O<�D����v��p�Rg4o��m��+��tj�{��N'�������,Y�$v�Q_�YN����I>Y
�^_G�B�W?���k��oICG�`T*JG���gr@��x��	��@�	`��g������&��'����13@���/�@���^<c%�1+dSi��o����3g�����$�J���Q�*@��\���~hz���jT
�/��k6��%����c��Kn��5*ZC�1�r�H:+q�QZ�\c��^�\���N��������V�z]��N1d���a�
��;�����������3r������a��B�;�8s���F�$�4�9�K�b�%��/�F����R��i\�=�g,����~�i �
���B�� ��W:SB�B��
�gZT��^�L	�
��+�i!P�{��q�X��w���0`@����k�<�������������|���;w����(1e���������A�o��Vs�!���3@���H�����O�>FQ0T�����k��@iB�M�V�(9�+W�M�%�9�s��g�Z�w�a~��_e�+"��$�t�<IF�8��Sk��m��~�������X}��PO�B���"�[�9��~�'����:BB@�x�*d���'�wO�(�������=Qb@���2@f
xB{/^8J�cf��"8}���/�m��o���|�;��o4h��4iR|����
?�����3�jd����6g�}v|�/�K���g��������u���<���q��T��W��y��E�h�_N)���E��RU�o��4m�4�^�\
u����OM�^��������%�[��u-�G���wo��%�Qq�����k������z2E�a�f�����c&.��"s��'F��_%.\hV�Xad�M�41z^�97)��-��v�9����)�*&��D+�!�����KF����w�5�|H���KF����w�5�|H���KF������5���:f'�p������8n�8s��7�}�����w�1:w�h(�s�=g6�x��o����fDu��(��r���(��"���k��V�ZE��6O>���d�Fd�M6���U�/_ndS�:u�~����Y��k����p����bhc:�D_��h�z�=���l$�b�j��D,@M�u�����<�t�R����C���b����J���m�QF{'���x��h(9���=;vB�5��x���������X}��(�r�B_�u��e�x��*I{����[�l]i�28JT��(
^�J��Q!�#��G� JC{/
WF����w��L(
��4\>����
�����?��m�v}�S[�re�vB��������-��v���v���oH�-����^}�U��ysu�U�}��8��.�Y���_��%�9rdFt���S9��c��Y������������y���\s�������$o2�B|��r�����N;-n��S��+MG	�a �c���(<�@,��~����w�%='�R��d��u"�=�P<�u�]g?���<Y�5�h����i��M��X}��(q�y���S������������dENFJUc��W�X������8J��#$��@��2@f
xB{�D��2����) �	��E �@{/d���'������o����c����k���������
\��tJ���=�L�<9�t�g�s�=7>OF8���"$���nqU�$�4
���%t�������nY�f�QD�{��'n���+�O���\i*~�����<���f����h�'�����#������y��gKQ"��,G���[�2����9��T"j�2�z5jT��b�M�t�8����c�=Mq�UW9��e��	��k����v��1������iPT[��c�5�(+u�-r��D�k��5����3����F5��_%�����o�[V.��N����|�����:�(QzBJ@��x�*1`���G�w���((1������=R�@����fxxD{�H�������js��K.����F�B��i!����M|����n�3����ExP:�[o����3���q�PG����-Z�������9I(Z�-�������?;5�v��u��:����M�����_������(9�����o#��
����7F��9C�"����e�����>;����s#'�b�J�Q�k���FV�&��;�l���J�au�/R��r����/�0gD����8����,oj��}:?��S2�]H�����{��?����Qh���q�*���h���B�;vC����?�A������*���D���EIn:
Ev?�~�EN��������9�OG	�u���@��U�LO`��(1 P�{ 3<!��{���@`�e�������"�@��nR�����(R���v��
����a��e���?[]��J�`��~hz��aOk{��m�6mj���[���i���OEb�g�}����E��k��62/���q#5�����"n�a|[�_��V�2{��W-���n;����|���f��v2���d�M"���+-G�w�y�H'�,Y�$��A��6�lc/���z���%[���������T-�"A�W����g�nr�P�]W��dQT���M����QBkUt����'�9�H�r�s��IN/�;J�!��D��%+�@����VT�����h����UF{�2�!.@{o<n�@����La7��+g��A6�r9I���|��7n\F�{�5�"'(U�-�q�i��S�t�8��3������*��n�sS�����"R���q����k�N�;"�kI~i8Jhl}����Y�f��r�BN!]�t��+WZ�� �h*�4����H���"c��%[��?�9�d�VL[}%4��o�i����7��)/����yV$���%�.���SO�#��kM��#'��~���K�W9%�\���C��t82
���^
ZBF�C{O�#�@�`���%d�@:��t82
���^
Z�C�l�}��1#G���OJ9h��(��f?��=�F���?m4�0���\_�u�Qf�������Gi1\���|=��Y�zu��@_�'��(�G��������w�}��k��H%�vT���Pz�&M�������~Ey���k�nOkmCc�2f�3b�{�qT��)S�DiL��-l�.� rLP�+��_~i��~�x����O�����E�CTUD�2n���&>@IDAT���'�5��D�s�?���9���'[���V�Ze�TP����r�-���n�e��T5C��x�5��G1��;O���~����)%�!���U�3�l���o��M<x`F���i�Z8JT��H�/^i�d,�M{�[?H�4	`�i�d,�M{�[?H�4	`�i�d,�M{�[?>I�tDp#"h#T�>���(]�;�`��i������&M2r�(�h����_��N��@_�7k���[k�����,Z�(���sg��v���dt�Z7��AkUJ��K�E����JsP���JdE^��?�
/g�)D�bl���y��D590�QJ�����S��e�����Te�#��o�1Y�b�����;�l��b�T�a0��(��N��^�*�)!P!�{��3-*@{�t��@�`��������"��W|N[��D}��h��M�w��<��a���z�(���1������r� O	�(��b(/^����� PI�{%�37�K{//of�@%	`�����(/�����
�$��W�~u�����B�_~��1�i������/>w+o�������/�)�8�L#���@���^�! �J����`~���^>���J��+���@�`��c�L�4���`~���^>��>S���?��2dH��{���������c���f���������8��t�M�9@������ �2������
&��WXL�2����� Pa�{���(#�����
&��WXU4}���}������y���2(4�t����^��,]���������f��'�|�l�����@���p��S/H��/^e�t� �����e&���8�A����
�gj���^f�L�
��+���N�QB������X0	9IL�<����>�CG@�,%*���!O����"e ���2S@���'�@���^�LO`��(1 P�{ 7�)J�(!4K�,��hL�:�NRG}�9r����C���@~�Q�/} 
 P!�xU<�B���
@gJT��^!�L�
��+�)!P!�{��3-*@{��*�r��ef��5�
��j+�i�>��,X��,_�����;�I�&�]�v�c�^{�eZ�h��T�@e$��Da3 �/^���
�A m�{�D�����
�A m�{�D�����
�A m�{�D� ��.
��@�x�
V�,<@�{�Jg�����U=����Yr���`U��$���t�@(#%��� 	����n�i���&�x�����n�i���&�x�����n�i���&�x� �p�piP��%��W��g���T:K����Yx�������%���z �=@��d@�@	�(QF�L�K�/u�dH���6Q�����wu�dH���6Q�����wu�dH���6Q�� @�%���K�: ,^��U=����Yr���`U��$���t�,�=X���	`�*�%C��HG�2�f*@�_�x��$�@�����2�%����$�@�����2�%����$�@�����2 @.%\�!�`	����Yx�������%���z �=@���`	`�����H{P�,� PF8J�6SA����_� �&���M�� �/��_� �&���M�� �/��_� �&���M�� @p	�(���K��`U��$���t�,�=X���	`�*�%K{V�,<@�{�Jg�� �2�Q����
��/^��� �6�=m��	`���� �6�=m��	`���� �6�=m��@��KG	�u@ X�x�z �=@���`	`�����H{P�,9X�{��g���T:K� ���e��T���x��W7H��	`�ie<�K{�W7H��	`�ie<�K{�W7H��	`�ie<@�\8J�4�C���+X���	`�*�%K{V�,<@�{�Jg�����U=����Y2 @��p�(#l���%�����A2�M{O�(�A�_����A2�M{O�(�A�_����A2�M{O�(�A� ��Q��A�/^����H{P�,9X�{��g���T:K����Yx������!@e$��Da3 �/^���
�A m�{�D�����
�A m�{�D�����
�A m�{�D� ��.
��@�x�
V�,<@�{�Jg�����U=����Yr���`U��$���t�@(#%��� 	����n�i���&�x�����n�i���&�x�����n�i���&�x� �p�piP��%��W��g���T:K����Yx�������%���z �=@��d@�@	�(QF�L�K�/u�dH���6Q�����wu�dH���6Q�����wu�dH���6Q�� @�%���K�: ,^��U=����Yr���`U��$���t�,�=X���	`�*�%C��HG�2�f*@�_�x��$�@�����2�%����$�@�����2�%����$�@�����2 @.%\�!�`	����Yx�������%���z �=@���`	`�����H{P�,� PF8J�6SA����_� �&���M�� �/��_� �&���M�� �/��_� �&���M�� @p	�(���K��`U��$���t�,�=X���	`�*�%K{V�,<@�{�Jg�� �2�Q����
��/^��� �6�=m��	`���� �6�=m��	`���� �6�=m��@��KG	�u@ X�x�z �=@���`	`�����H{P�,9X�{��g���T:K� ���e��T���x��W7H��	`�ie<�K{�W7H��	`�ie<�K{�W7H��	`�ie<@�\8J�4�C���+X���	`�*�%K{V�,<@�{�Jg�����U=����Y2 @��p�(#l���%�����A2�M{O�(�A�_����A2�M{O�(�A�_����A2�M{O�(�A� ��Q��A�/^����H{P�,9X�{��g���T:K����Yx��������h�"�v��h�:t0�Z�j��Moio���Y�fM4`������o���E��p�Bs���Gwt����x��w��'��K/��6�tSs��f\�v����,]�������i�������i��E����!�j�*c�ft����n�:�\��:8J�$@�!`��
��{�	@����rY��N!��	`��X�,
	�{�h���F��������=z��3f�1bD|N%;9h���Q�F�_��������'���GGs~����������Y��c�����v[3w�����DN3f�0'N4�/���q����N0����F%?�F:R�����a���&�b�����������0a���W/��z�Q������@zx�J�%#A�w���B>�G{O�%#A�w���B>�G{O�%#A�w���B�B	�(Q(��~>9J�~��f�����c��5�����n0_|q�6h� 3i����:y����H����u-� ��K.��l����K�'<���f��!qk��K�,1���o|_��)S�������~��Q�s! P�x��3�@���Z@���^��`�>h P�{y83| ����dH�������D��}��e����ab����X��'�lf����aBQ!���W_�����1�?���l��rK��sg�#_|�E����>�\}��m�dp#y�+�:J<��#f�������8J��*:�(QjBH@��x�*5a���?�wt�$(5����������@����Rf|�C{�GH�08J���/��~������/������|���sUz��i�{��������a��q���o��Qz���������Q���k�}��g�^�u�`S>F�QY�z����;�t(��B%~���D:��&�[l{�x����v�!��y��Q�J���@�x�J�'�A�g����A6�K{O�'�A�g����A6�K{O�'�A�g����A�b�(Q��}}q��;w�9��##���n;�(n�����n��7-X���h�">���/���o���1�,�,��_2�Qp�����}�[��o��������Z�9,�B%����c�E�e���c�&��D��/��
$��W����F@{oJd	(��^ (�A����Y
$���nh��F�D��Q�~�/���r�;vl����:�L�81cA�������e�pO:?�����SN��=��h^}�����w���!W����(*������P������jV�\��M�uN��FCG�F�J4�/^
����.�{u�i!��{C�q/���^]�BZ4���z���"��W��*-�'�|b��@e�-�0l�AT����K/�d/^l:t�`�t�}���Y��z���W��Y�|��p�
M�=L�n�L����!V�Ze�����������6�(�.G	m�K���~�t������.f�����-���.�~Z�jev�i'���}�l��&y�q��n�:��h�����?~�n���q�3���q4��+��i��l��6F�;vt����%�������?��o����}��M�N����Sq9���;�<���F��d�L�p����qP9�����W^�7�l������k���_��?��_#�qC�r��'��3g���/}�Q�����[�=,]���m�6z��J�����5N�4�\v�e]�X�!�������o4?�����l�d��/���^��G[�#��D��)+��A��z@�T)��J�������UJ{�R�!6�A{�4n�@����Tq[��;��s<����F�����@�hc��3���4i�$y9�����7W_}�Q��le���f��Q�����S2h^E
�%����{�mt��e�l�����\r����_����f�3e�3a���_d���~��+��"rL��!������6��h��9�n1�~x4g�
|9;���K�#�8�����4���w3���(a����RU���0�-����?���s�5g�qF��hK�,1rN0`@����G������S�59��{Nm�\������n0W]uU�.�o���C��W��R>'��K�����W�^����:������8J(}�1��3c���w���J8p�G����/^u�����)��@��{p��FF{od
e9���^.A�����BK������w7TsM�p�r P��l����7��vZ�Km���������E���_�������t�P�E	�W�:����#W�Ef��A.�w|}y���9$K��RM\x��Y�L�{�������l���ns\W�}���Y%��T��O�>qKR.m�+b�M�wLT���z�(JB1%9_1�f�{�9�D��v-W�s��b��x�{Z����>kN=������
C��������sR���������=�P��i�(�H��7�|�7n\<����9�,X� �����G��"����F��o��h�(�hT�B �����!���E{�.}!-B{o=��@u���K_H����B�{!P]���������W��w�7���Nm���]6.����Mn���b�6�����-[��s�F?�u�Q��p�<���f�������k����[ni^x��hC5��N�9J��hLEAP����g���NF���*B�"E$���.Gm�j�I�Ew8����0��.~���n�E)$���,��w�����g���4>j,�H~93�Q&���G�#K��K�J�M�l�u0���O�����O���-u]�����Z�`���Ln��Vs�!�:D�~��L�rv����g�������u]QR��%�>��������!H���"�J�R������n�O�M)�*�I.�*���)���Q����A� ��W=�q���^��Cl���^h��*%��W��� ����@�J	`��+��E����?)���������k]����kW�����y��q�{����W�J�������/#�7-�6b'N�h6�|�x��~�6,>��B%�dp��WFN�w���f��IQ�;�����3���w�����6�+{���G�d����k�������U��M7��6�\��D�/�[�^�CmR_{���<��5�j���h���G�����M��R&h|��tf7�s�%n��a#Yh�w�y�9�����T����n:w���V���UXGW6;�O<�]��t��SO�Ky�o��V���|�r��c�E�pK.'�O��I'�d|�����j�v�m�k��q����c���S��m�$���GC���	�yRG	9-^����>�hs�E�-Zu��&�����A:@�Lx�*h����w��(��L����=P"@�L��2�fx@{/^	8J�g6h����`}����w�m�>�����?�������?���F�m�����~{�W��������\�B%��������_������������"[�s9?�k{��`��1�^9�A��l��w\�����G9s(���!�BiE���oo��0(��db/�Z�*���nZ�����H6���3e����R��i����MR��BE�9sft�t��n�������������7Y����1c���������#��Y;�(�%�-r�P��I�^�1�|#����'�]���!�I<p+�:J���SK���z�Q8�?��L�qh�8JT���(1^�J��!���#e 
JL{/1`���G�w���((1�������W���=��3�K�.����_m��{��t
���h���^�|���������Y����
��k�8J(���[o�*:�������Q��M�6��k��Mwq�-��r�p^�zu�� �X�pa�%��+��b��i�q+J�q��G�M�����$=���'�h/�:j3^�*�M�{��g�H,��E��1m��K.��H�
)Jb�z��O��r�s��+���{����:�r~������3�����_]m��R�>JC��(bH�>}2�������]�v�-i?'��(��XG��^z���G?��F&�h�������;AQJ���������2r��48J4=�
@��x�j @n�@���HY�
�����!PE��*R�B�����vT��xe�(��Y]�$,UE�F�-��O��4(
�M��k���h]%�Q��Q�������T��i���t!���<�Q�,1���_~�(�Jr�o�������]k�-.�����?��O�Al�'���9n���m����Zr%#��Sy��wM�^���s�=��������>2�.`Kr����[���E)Dv�e�=�Q"/���Q��%�E�e�7p��(���n��^���"l:����Og�`��%�
7z��3L����.i?'��
�'�O�a%&W���l�F�8��C�o�[�����Ei]�9���H%;v4r��`�
j�����(Q}:Cb@�x�*T�����wO�X(��P���=UbA���@eHxJ{/^18J�c��^����<���f��aq�I�&9X$��g��qq�l}���;���9Jh<w��F�"�
E�E�@��w��T_���*�:�,�-�q���������{��Gt��?����� �o����g8�����SN���Q�A?k���Z1��\'�t����s���"(�H}����;�����[������Wh]��w�yg�����H�WQD��v�xE�p����J�<�����'��������c��v>9�(Z���f����Z�O>�$r��� G�N�:��KC��Q��t���@	��U�	O	`��*� P�{	�2$<%��{���@	`�%������^�bp�X�,_*
�J����6��j@_��2f�3b�{�����+W����s���A�(u�QG�w�e�����o��6gJ��sm��4�
�|�8�y���Y��nJ�B"r�%*I��E�H�QBkS���F�P��	&dH��O��,�lWj�(}F�������r��ZmQ��y�����o��c��C�5�1m��q��%�C����rR
}N�s�������'�_{���-���QT}G��W!�� ��W�A{�=!%� ���A�1 P����RB 
�{�A{/^O8J�cV�&��(h���;g��/�mI�������U,[�,jv7������=z��"_r��:l$�K��Y��!�-�>j��h�<��u9J$��8��(�A���j/V���V�u��^K��^�O=�cG�1��q���i3���g�5�l�M�[j�'���#G�N�:;
�h!�w����K�I>
yN�)\M�5_���L�T4nk���{�"���_�@@�Bx��x��@`�������B�� ��W:SB�B��
�gZT��^<t%�1���~gP'��s��#�<2�3~�x3d������/�����s�x�|�S�L1�����g��it��[o5�r�I:t��1���m������cC%�
��]���@iB�M�V�(9�+W�M�%�9�s��g�\_]�/��r����������=&#J�z���W��U��,X`����s��b�Q�CM<A
�r8J(z��Fl��$b�q�����	!�2��������=Qb@���2@f
xB{�D��2����) �	��xE�(���uz������3����:������|'�u��Af��I�y�J�+�|�'N�H��m������}�������/q���={���{/���{w�������SI{\i*�*Be�m�5rJ�W-Zd���}���i��Q�b�j�����~jz���m=����-�����#G�����.S9/l��f��a�PY�J�q�UW��~����8 >�WI�h9������_��6�t������'��W�>|u�X�p�Y�b���6i���y�W���3��v�mQ�{��z	�(Q��Cr@ E�x��� �9��s!R$����� �9��s!R$����� �9��x�(���	'�`.���:�7��|��q�����f�w���4[n��y�����o�MV|�����%�B�u}��w�]^{�5��U��|�����'���i~�M6���U�/_m�w����G	��5�����(
��`�6��N������c�=�&	�X��(PSq�9�$#�,]��l����q]�C�?[�|��:�'�;�����+[���Ho�����y,^�8�*����g�N(����W\_v�X�_%\.Z����nZ�l�9[%i�z>�u���+mUFG�*S�B�!��Wi�2*|$����d�@i`����������V�	�!����+�B�G�{�Z�Qb=������m��opj+W���N�9�`���F&l���K3���v�������j��(!��W_}�4o�\�k�w�}7�l��r�x����~I�F��#��T�9�3k�������2���t���5�\c.���x.���
�����oN;����M�R�\i:J��[\�E�x��b�����&O�l:��d��\�#���Q+������"�=�P|�u�]g?���<Y�5�����+��6m�D]�������w��:uj���n��80>OV�d�T5�H�����l_���Q�!! P�x�2S@���'�@���^�LO`��(1 P�{ 3<!����w?���������Dwtj��t��;CZ�&7p5��(m@�2z�h��j[�8�s�����Z�1�	���[�G9I\v�e�R�s����{lt�B��e��5F�������+�4?��O�s����~����l�i}�O��h�NJ�r
MI�G�q:�H�	N�D#"��D%�D8�X���+2��J2!������V��������w��~�^���k���~�~��k��Y�,Y�Dj��S�O�{�9����>�J�*��o������e=0>l;�M;w�TB����^�:T�P�m�s?�={��E�����&v7n�L�:U���#��1y;:.�?"��.]:�N`�^�z	�Z�)��_t]��^� �p�l����8 ��rKL�i ��)]{�*�����7�x#.�8'�=�=����A�B���GI$�a|��0`6O��;d�2L���a�l�"@w�
	d��=���<	8D����1�wW��c��1_~c!!��m! ����E|l��/��1E��-U�|������e��**��P�E�n/Q���o��]J$ao�p���������AU��?������O����`G�"��������7����B����-��~��w
:A�H��B���7���c^z��R���S(Q�V-��������V�.]��q'�������\����F�4i��w�q�H���+e;��O<c���3���\y��1�.`DP8��SL3?���
-X���!�(���S��H�9�m����'��D�����."f�k�.&
�~� ��N�]��:AT��;�$��F���}J�o#��H |�
2� G��1�A���]��#����� �����.H��wG���.�z��m��~<QCna��x|�W��������7�t�)�����a�������y�"Ed����K2w�\�
��"1�h�B���������/.������P����V��+V������Pb�����Y���0��N�m���,@c0u��,�v�ajl���/���N7n��&��1��/����.�$J_|��book���m!����&l��ukoq����F�r��`Rp=^��j���kW������J�6mrp�0��
���	�D���1J[r&$@� ��|���$�e��Yf0��A���x�����=����@>������@���g��B�wb�� ��rI��{���Q�F�l����#�B�l���D\}���T�B�k��V&M�d��������/�����~�"R�-"��c��z����w-D�����J�m|���v;B���{���T�V�\Jw\~	%A�>�i�ia��
1�D���%Yz��7��!�<��?�ui��}�f�^��������+��E���G���P�B1�����B	Lv����L����zN ��H�z���+<�vJd�9~ _����l����=+��A��/���`d#$���Ya&�|!@�#!�� @�
391�x�M�6�!C��/�������
�o���������b�
�������r|���sg9p��ZP��`[[8����?/���S���vo�����B�
�Kq��|�I����c��+"R��h���.\����;v�PQ���#GJ����i�#�m�M�F�!}����1GD_�5k�����BW6l�& 
�����={�F��	����<��/�:	QE ������SE���	���V��)�{!�4h��.]�{)������������2��V5�z��y�5��G:���O���k��D���8�
L ��=�M��[x�:���-r�Vda��P"kM���	�I�/^~�d[$�6������H�O�w?i�-p���m�pt$�'���4�	�M����}\�W�`GD�B(�����UH��5k��G���W�^��U��N�<Y �H%a���?TQ' >���E�M��u @������kU�V��/_^��r�@��-
6m�$�������A^���!#��'�|��������6.x� �H7!Z	"Q �"��N�}�*U��Y�m?Q}��`Kl'Q�re��(%K�Lt[��!��_~��l��U ��W���)S�@����P�O	�	�A�/^|H :����5gJ�w>$�����3%�;���{tl���&J��mD@�,���SG�u���D@	��~�ii���>��H�H�QJ8j�H X|�
�7{#�0	������I X��`y�7��=L����%@�7{#�0	�����]}�-�@(��n��@�;w��j����D8����"q���DL��	�	8A�B	'��A�	�M�/^a[���@p����fO$6�{�`�$�{p��	�M����?	G���l��o������G�K���e��99����}����KV�Xa�v��A�����sfH�H��%@������H�$��a�+��=d�{��=@���B&@���$@6�"��	��C6@u��P������[�7�|C�c��R�Z5��o�l��I�����\?��#���^�*U�����H�H�MJ�i��H `|�
8�#�	��C���I `�����;��=D���&@8�#�	��C��e]�-�����Y#g�uV�$ ��9s��h�"�{X�H�H \J�����	8B�/^��� �����.H��wG�a�@��@f$���#��0H �� �.2!���7�m4f����T�.]d��!R�b���x�H�H�-J�e��H $|�
	<�%���C��.I $�����[��=���B"@	<�%���C���]n��Y����fP�\9A����m�d����e������p��R�|y%�h����(Q����	�	�@�(�6�"p�_���
GF~���M����������##�	���&��H�]�wwm�������~e{$@$@$@6
%l��	D�_�"kzN<���4:�Y������ �{��)G��=����#H��A�s�$@$@$ 
%���H��%�/wm�������~e{$�.������H�o�w���=p���]�pd$�7���D�	�	�	��M�B	��$@�%������ �{��)G��=����#H��A�s��%@���9���G���2	�	�	H�B�a�+ w	���]�pd$�7���D�	�K����m82����o�l��%@w�6	�M���7Q�G$@$@$`�P���<	�@d	��+����#H��A�s��%@���9���G���rd	��#kzN<���4:�L$@$@�P"@���H�]|�r�6	�M���7Q�G����k���&@��(�#w	����
GF~���M���	�	�	�(��i0O$Y|����9���G���rd	��#kzN<���4:�Y������ �{��)�	�	�@�(�6�"p�_���
GF~���M����������##�	���&��H�]�wwm�������~e{$@$@$@6
%l��	D�_�"kzN<���4:�Y������ �{��)G��=����#H��A�s�$@$@$ 
%���H��%�/wm�������~e{$�.������H�o�w���=p���]�pd$�7���D�	�	�	��M�B	��$@�%������ �{��)G��=����#H��A�s��%@���9���G���2	�	�	H�B�a�+ w	���]�pd$�7���D�	�K����m82����o�l��%@w�6	�M���7Q�G$@$@$`�P���<	�@d	��+����#H��A�s��%@���9���G���rd	��#kzN<���4:�L$@$@�P"@���H�]|�r�6	�M���7Q�G����k���&@��(�#w	����
GF~���M���	�	�	�(��i0O$Y|����9���G���rd	��#kzN<���4:�Y������ �{��)�	�	�@�(�6�"p�_���
GF~���M����������##�	���&��H�]�wwm�������~e{$@$@$@6
%l��	D�_�"kzN<���4:�Y������ �{��)G��=����#H��A�s�$@$@$ 
%���H��%�/wm�������~e{$�.������H�o�w���=p���]�pd$�7���D�	�	�	��M�B	��$@�%������ �{��)G��=����#H��A�s��%@���9���G���2	�	�	H�B�a�+ w	���]�pd$�7���D�	�K����m82����o�l��%@w�6	�M���7Q�G$@$@$`�P���<	�@d	��+����#H��A�s��%@���9���G���rd	��#kzN<���4:�L$@$@�P"@���H�]|�r�6	�M���7Q�G����k���&@��(�#w	����
GF~���M���	�	�	�(��i0O$Y|����9���G���rd	��#kzN<���4:�Y������ �{��)�	�	�@�(�6�"p�_���
GF~���M����������##�	���&��H�]�wwm�������~e{$@$@$@6
%l��	D�_�"kzN<���4:�Y������ �{��)G��=����#H��A�s�$@$@$ 
%���H��%�/wm�������~e{$�.������H�o�w���=p���]�pd$�7���D�	�	�	��M�B	��$@�%������ �{��)G��=����#H��A�s��%@���9���G���2	�	�	H�B�a�+ w	���]�pd$�7���D�	�K����m82����o�l��%@w�6	�M���7Q�G$@$@$`�P���<	�@d	��+����#H��A�s��%@���9���G���rd	��#kzN<���4:�L$@$@�P"@���H�]|�r�6	�M���7Q�G����k���&@��(�#w	����
GF~���M���	�	�	�(��i0O$Y|����9���G���rd	��#kzN<���4:�Y������ �{�^���~�z9p���a���T�Rx��M���>�����+T� �K����4ZZ�n���1C�Q�V-����c�����d������������\Ov�{�n��y�����e�&���-��o����g�5��\�r�l��~����k�.5��%KJ�J��l�#�P"EP�F$P�	��	�,O9���=Y��"N�������{����F��=��)��H����8�{��4����N6lhf4b�����9g&>��Q �i�����}�q���r��7�>/��"���{b�_�t�\r�%���c������\Ov�������+^xa�[x�"�~�t��A~��7����q��I����WLP����l��]�����e��)	j�s��s���?�X
�E�2o�<w���P(�Gp��H�`��W��'gC�����5(X�����
	$"@OD��H�`��,{r6$���=^�&J��Z.	% ���W9r����;fR��w��=Z�u��Q&O�s=������G��
�EJ�����q��l�2�>�J�f��6m��Ei�)�HY�n�P"ch�0	�@6��W6Y�c%�������&�l"@�&kq�$�?������$�M���d-���G���?~��J��.	%N=�T�v	HL4k�,fR�����2&.���������(t
%4�����{���W�^�;���P�%<�OI�H �	��+�m��@�����b=�~�%���@IDAT���!g@����J��H �	������	�J���*)�s��y��+B�;v�	'�`&�z�j)]��9G�Q�F��7���g�y&�������~�l�a7F��M#~�~w�y�L�8�t����g��R�fMs_^2�(�j���%2����	d�xe��8\��{>��V�2��,3�K� @�<�JYF���e�pI �����[�"@�D����Pb�����S'5���;N��N���4h���]�VJ�(a����?�\�����+���9�q��B��A��h�"�n<��3��P"P��$�y��H�
�x,{r6$���=^#��E��^�����@"��Dtx�
�{��'gC������l"@�D����P����#G�It��Y&M�3�7�xC�v���-����W�M�&c�����{B������~���
�����}_|��2e��p+��s�|�1���0f6O$@���W���#	�E��y�K�����=�@X��a�g�$<�{���#	�E��������~����)SF
*���~��|���a��X��T�VM}�_�h��&�����e�)V��4l�Pj��-�r�jg�����������.��7�'J|��Wj|_~����UKN<�D)W���7��~X�n��+U����[W�?�x9����6c�+[����g����Oe��Uj����N�:)�i�#�v���y��r�1���*U���|"���]�[`|��'�~������N���+�����9��o��Y�p�:E$�
3f�l����];���;T��#�0�
&O�,&LP��P�
���]$�����������/��B���M�����V�1��p�9I4W?�y���=:�]�%���J`�����Z�
�eE�Qv�o��������<h�i�m�|R�~z�KU(�������;cn�o��ZbD	�,���	�B�/^�`g�$
�{(��)	�B��
vvJ��������@(���`g�$
�{(���S,n��W�����_,�_y����7aa��k�UQ
.��s�����.A��x�w��2t�P��������t�M�z<�D����n������c�=V��#�[��E����/�f��q���/���^�V����oW��x���,Y���h��e�n��.�H����D	bDH�s�������z��1M�J������3�T��#���/����,�\s�)��b�����q��J �m��5��J�������/����gN=�T�����B���3�����[�'?l�r�%��.�~�ii���9�t&U�
�>��6L�o�wX��?~��~��q���0��=[ ���"^:�����-Z����P���~��}�
~�u� h�������(�p�"	�@(��
vvJ��������@(���`g�$
�{(��)	�B��
vvJ�����=+;�.p��{A:�I!�>��:^z��������w)����m���������+����J ��4$K�]w�t��� 0�M4`���J,�Bh�M^~�jb���qE&��X�|��G�F�v��#D?�%���JV��6mjJ���B>"f��`�o�\��yA��t���t��Ww��A�~��^�G�<���{���_�gR(���o�UW]��]�G��y����h>��~��(�F�2]�Y�FEQX�v������F�r��`H3��P��[�V*	b��o�YJ�(�:��� I%A��vJ&���(����B[����p�P�+p$@���W�&�H 0���P�#��=tp$�{`��	�N���	8��=}���,��/J�����Bu��"�3���f�������{%K������?�:�Q���7���k��[��b,�5k�L�:�(y���r�"�Xd��+���8�MDA��o��f��lot
}/" R�W��(b`Q���
���/���c"~���A��D�[D�����
c\�5��������c1��2/����,�l\X��6 X�����g�1�����c�������c�S��J j�N�`�E�"�L
%`L���_���o���������o�<�=���h6���7`��?��6���_��*�;�Wg�}v*�L�N2�"�t��5���$<����� �s�����	�$.�����}
�l�r�)r�����1�(>���o�7<�P}@��`�����7O��)t,C��c�pH��!��p��W��=����!@�;{%�0�����>I ��p��W��=}�������?�"Y�-�sG�B'���&��X�Vr[�Eh}lIq�!����x�����q!�����������X��4i��.]����/�W\a�u&U�Dw�q�I�^���<y���@�����+�B�
v����u!�`|
6�E������[���p��~�.���AD��e��Uu��?u�T�����|�b��v����K^|�ES�^,���������f:Hn�7D���,0�G}Tm`:�#��;�H��U������Bi����^}�U��
�a��_]_J��I��@X�p���O�.�j�2ex�G���d0�d��r�G~�������"#�( Y�]�t�[o�5��
����'J<��C1b+�9�L�"*�	�h`�;!Z�y��g���3U�	��+�����(;:A�!���&����f�'���$���6];R(��E8 �P��+���B!@;;%�P��C��NI ��P��S��=���B!@O;��u��Q�����3Gh
�?�|��������?��u�$�1c�Y,��8�Z�Jm�`��"���w�uW�����0v�X�$�`![�/��RE���X����Z�����;_� P�)�8��c�o��_����Wl+��Ms+y������w�V�����g�}��#��u�����Y��n��9��;W7-�q�idi@!�`K
;��� �����!r������Bnm��7��D��a�d�5�������S<{��9�����.?<s�����7
�����N��DB	��NK�,�Up�H4���Mu����[F���������H�&+cG�@1|]GZ�'�@��M�:p�U�^�N'
%�6G$�xE���@������# �����"�~H |���m��@P��A�f?$>�{�6�P� 3,V�V�`��C���������B}���U��={��E�0Y�x����j"&�]XLE(����T���>���I'������"E��*X����x��r�5t[8���O� `@�pa��u*���[������#�4u�������)B�D��+��W��_~����h���A�����k���f����6���1c��O��!z{�x�����/��]B�)���T��>��x#�m!bH��Mc�ky����|���Z<{��9���O>]~|�A���0�
�w�	���l����=��c�N~R"��>���+����7��U��^��=/O��B	-���:!zD��������B�Lf�$@YA�/^Ya&�|!@�#!�� @�
3q�$���/�	d�{V���$_����H����E��Tm�:�k�f��	�!�C�cA���wa1�P"�������4t��A�(����#0��xGlg��:}����/��������'��Us�-�
��o��
��oL6��;w*��-G}��-���-�~�����w42x�`��i0����/�.��w��Q�vm#h�"'�x������� �	���7����&���
J�,D7v�l���Iu���I���q1]~>�Gu��s�=Wmkq�������4(&R	�%@|��e����DB	�.��I'[����G�s���M��!CB$o��[g*��@�U�reB�P�~��;����@$��SO���4�d�N���"�_��&��H <�����g��=h����#@�={&��	���&��H <����S(�'3,��+�D��^�+���T�<y�@`����Q�L�x|�_�fMs)�P��}��3�B'��H��-U
|�noUq�u�Yw��"<?wu��'�|�:�.�w��Em��z�?��C� ���n�+���T��0`�~����Z:�����+����	��U>��k�v&:BD��u�v�>+vT�^�|�����uD���N��aG!���#l!�N��s�=����>�{�+?t-�h��Es�O?���"ZX���%	 �x��W�1���P�pai�����'�P��K/�W^yE5����[�g��y�����+V������P"^E�6F���VF��k�xH�B!��P��S��=���B!@;;%�P��C��NI ��P��S��=}�J��,�V��
��x,����:�#F��>}����2��g2�D�-�������n��	��[7����s�R�TN!�Es�M�w<������3�x���"�D�0
y2�q%��],N6Ow�sC�$�IG����q�T����������NX�>��C�����.��m���"�k��FE�Ht�m���rpn?�^{$���9A�~�L�����:u�)��o@lQ�NS�(�z�j)]���b�^\|��*����A�QS*�n�~����K/����aP`o��J�v�dB	��5k��i�����<�N���#�_��"�~H |���m��@P��A�f?$>�{�6�H (���H���=}P(�'3���� �Q�"�Nz�w��e�/�u�n+���G���$��������N6l��J��������%t���0�y�����[����b�"pnm�+Ow\���M�����_�:��%v�����c�
o��V��xGo���������UU/��<'���k�w�~���[�@l����L%l�Q�-d��y����3�8C��_�� �����U�(M&��u��P[�`��2e����S�J8e�H ,|�
�<�%��	���g�I ,�����_��=x����"@�<�%��	���gN����z�!9����"b�N�L��c�J�=r|Q�����@P�jU�V2�D*_\��>��|P��o/^1@�J�T$�y���M�
�@G�{�V�Z��)�6!s��MqT�����M�B�A����^;�8g�X��F�������o��{l���k���~���G"A�n��c&�y���!���E"�J�%4h �?���6���;;E�~�b�R|��	�I��W(��s��Q�U^{�5sk�mYLE2J8`�H ||�
�	E��i�C����o���"@�4�!��	����G@A���O�B�?�i�C"����7�&����c�����������cG�<y�9���~��L(1i���m5�������K/������^H�C���if�^�6+W�T���lO4,|	���+T� E�QU�W~�;v��������C�c���:�y�@(��wo����L,�{�h�����{����]��z��r����*���U���u�d����-\���yM� n�3:M�>]��k��iy����v-���X�P!����do������kW�P
)�^�F��me������n�M���n���ok���y�"�����R�re)^���b%��/����Nd��-���R�����S(y�K$��x9e�2J���Q�l��"@w�	d��=�x�8	8E����98�(�{�x)����e�]&�G�Np��Q2m�4S��W^�:u��s{
����w��C5u����DuH&�@�
�9%|�����*�~���*UJ�w��M������a�f���`!>��O�A�P�hQU��pDQx��'�0�0���d�h�/�u�� �W~��m�@<1����e����M�6I�b��y:�L%�?�yl��A
��o�����6>�xn��vs���"]{�*���`�k����%K�9��x��G����UM�,�P����1����;��D�1���o�-u�d�>���r����K�7�7on��elF���P�.Gf�|���9�vB�Q�lYS�b�B	��1�	N�/^�#g�$�{h��1	N��8rvH�������@����#g�$�{��)�8�l��Ur��G,�r��o7�N���`���*���e���1a�u9��r��3�4�(K&��h���?�C9�s$|��#�"?��CS�;�!C��D�0��%�\"K�.5%�=���~�����p|����u�xEVx���������E�����J���x�[[=��3f��f2%�s{��{��G.���\��#j��2>��#9��#�=���U��
7� �g�6����H���7�����?&Oy���'Jx���?c��������e��%���HZ j�N��>�[���_���@$J���O�5V�Xa�N%"��R�B����[ ����-{p4$�I��L�e�$���[��hH �������I�-�w�����@&	�����n���|���o��)TGN/�>C�l����+�.��K��Y����k��Fl�z#`a4h`� ���	rli�L(�{^�"������/��0o�<S|�w�?��s�m*�8�s���%K�F�1e������>}��S�T����LE��.�B����)S��Ag�e�&�|��.!�k��C�*�����)�����,Z��/M�8Q 4���q�d����lG�a_N+�)��7�AN������r�-��DY��������B	�?$�|��[����9��	%��X���^x!F�e���K/��Qt���n��C�6m�:A�c��t9�}���tz����I�&�4�P��6��
��KG
%\��B$�x����@����#g�$�{h��1	N��8rvH�������@����#����z"X�3f�Y0�B:B���B@��5����_��	b
l���Ul'����|����"�@]�����%J�P����K�$�E���?^/^lD
����{���jkDq�#`�t���1a�q$�����l!8��;��S 0�	�|��m,t��y�80����^*! �;.?��j�2�X$�W���:�_�'��sc��L	%���W^�v@�SN9�����VB��2d�����#��$��<����v���D���/$��i ����A'�>"4$��F����H(�{ P4hP���)<w�
R���p�}���o��&5n}�#�]����n��7���?�v�k:w�qj�-�J&��}�'OV"0�F"!����B�0��o g���Sp $�q���#f$���3��@H ���G�H��wgL���@�	��3���t�]��N�U�V�H
vhz]'���X<���+��������U,V���w�I��
�i�#��.R��,_�<���s�
��M����E�6"v��$�*^������1�Pa�x�)V������������Y�f9����N8A�m������[W�X����_B�����|A�qm��1f�<K�s.�����-yM�.���"u4j�(�-L B
�c�oBT����>�8]{�*���>��Se!f�� �l!���DU����oJ&����s��;�^@�r�J#���������~Ot�>���K^|�E}�����H�AbG�@o��T���������`��?�L���+'J�b	��H T|�
?;'�@	�����H T��P��s��=P���B%@?;'�@	������yp�����`n"	]w���2j���m:�5}D_����tB�����Z��W(q�����I���x����-�~���*"��""^;v����*�g�6B}�������Xl_�t��*�#���(�Z�j�N���K(�����Edo��
6��WB���L
%0&l��g�����G��YG.���k����|�UW����Ga ��^��]��|2���c��~�JB�N����?���R�D!�X�-;���P�?��9����[e����]KJ�f��H |�
;;%�P��C��NI ��P��S��=���B!@;;%�P��C�����[�m���2D}9��T��Uhz;����}���+V��f�|���sg9p��ZP��`[[8����?/�b[y��vo�����B�
�Kq��|�I����c��+"R��h���.\����X�E��F�)�{���9����6u1b����G��}a��Y*�?��K��
S�D��S����g���Q�4�0������� !��2v�p�_�~����OZ�v��n��4����oo��� b��O��#��n��:`?����#����'�|~�A���6mZ�n!�9���b���[1�B�vh�vw�uW�-`���������Mg�y�����rk�gx��������������>:G����H���G�QGx����x�A��0�J�A�}�	8G�/^���"����g-&����3	D#@�Z6L���;g�2F���1��a������Pl-�������5k��#�<�W�W�V[Z�F'O�,c�������������E��rk�:
 ��y_�jU�_���� ��`���`��M�ES|��m�:�L
��	��(e`��q���D6%��`KD�\��`K��%Kf�4|+�$_~��b�u�V�@�^�zR�L_��Oc^�������d��3�<��C��\��C�D���'��_�����H�m�w���������~�d[$�6������H�O�w?i�-p���m��4�DB����9��u���n��%l!����NO?��4i�D��H$@$�(
%5�E$,�x����@���a�g�$,�{���	�I��&}�M�������@���a�����J �m��f ��;WZ�je�����.��v�]�"x�����  'P(��8 ��	��+l���=8����&@����#@�5{"��	�����'�����c��=�-�X�x�����`�_����3'����o�^�z��+L�:���s�	�	���(�p�6	�@��� lvE!���lvO���]�@���!���@����fW$2�{�����J������uk���ob(t��Q�U�&����M�6������Gq����kR�J��r��	�	�I�B	7��Q�	L�/^gw$"�{���5	L��0pvG!����]�@���gw$"�{����k�����5k����J�D3g��-Z�|+�	�	�K�B�p��w G���Cp$�{��	8B����!8��=���!@w�	@����E&�@�q�F�����������2D*V���/�	�	�E�B	�����	�D�/^!�g�$�{��%	�D��xvK!����]�@H��!�g�$�{������7�������+'���W��m��]�V�l�"_}��.\X��/����5�%J���! ���fW$@��������H�o�w���=p���]�pd$�7���D�	�K����m82����o�l�H�H�H�&@��M�y ����WdM��G��=�F��#K��Y�s�$@���9����G���x	��#htN�H�H�$@�D���	�������m82����o�l��%@w�6	�M���7Q�G����k���&@��(�#  �	P(a�`�H ���Y�s�$@���9����G���x	��#htN9����5='A���S&  �	P( lvE$�.�x�k���&@��(�#w	����
GF~���M����������##�	���&��H�H�H�lJ�4�'�,�xE���x	��#htN9����5='A���S�,�{dM��G��=�F��I�H�H @J�]�	�K�/^���##�	���&��H�]�wwm�������~e{$�.������H�o�w���=   ��6��_�d����W�U�&5k����m�&7n�}��I�5�B�
yj'S7���������������=�X9���������yb�1!�x%���$P����99HH���/�@�"@/P��dH !�{B<�H���@���!  �P(��I������S�N����_r�������+d��a��[o���;c�+Y��4o�\F�-�5��������'���kY�
���~��7�>}��9R �����{��Q��R�J�Kq�]o/��Y�+�x���������N���#_	��}���H�i�w�����������dc$�4������H�H�H �	P(��&�?D���@�RJ���K���/�g�����u'L� %J��\9xz�e��C=t� ���'�,����@��U+Y�n�]�#�q������z��9����g�������SN9%s�e ��	��C7@������@������ ����C��H t���M��	�	�@�&@�D4��_~�">l����.U�Dn��Z�j����z��)3g�4}y3������W{���&����u����vB�l���.Q�|yy�����N��������2�q|��8bv@���;c
�2N���q����!@w�	d��=���	8C����)8  (�(�(`fE�l����P��G�����A�����Z�p��_~Q$n����zO>��t��1�'�w��#�8��7k�L7nl�s� 
�u�]���
7����5}7l�P
*$�}�����h�"]E������s;�z{�X��,�xe�/['���]��B�%@�,_�N.���d
��2K���Y�l�\"@w�	�	�	<J�����2h� �>}z��"��]�v�v�i�&n{^Q�_��WY�jU�����F���y��I����y:�~�A�:�(sD��-��+�2d���#]�t�����{O��)���<3���W ��		8A����8��=���� @w�	B��fvBN��;a�H�H�
,
%
�i�}�Y���w�m'��%J|��7R�resK��]��G5��2m��;r�M~��1Uz�!�B�_�^j���O�:N�8Qh�y�������9�3���B�
��W�^����sd\o/f�<�8�xe1; g���1B'@�8bv@���;c
�2N���q����!@w�	�	�	HJd�Y�|�Mi��U�Y�5JF�a����/��s�9�f���/�:u2�s���K.������;V�j.�����3&M����,YR~��')\���'�����+/�����#�/n����={��Y�L1"H�-[�����(3���W ��		8A����8��=���� @w�	B��fvBN��;a�H�H�
,
%��������u�Yf����'�|R�'
*d��	% @�v_|���{����i$Jc����o��TY�|�4k���#��eK�=��[��W^y�������L�2�s�Nu�y��'.L��7�������%�/f�_�2��������N���"����g+%'	���4E!@�V6JN��;i�H�H�

%���Z(�h
����}�
�H�%���C�A�N�v��#�8B���}��h�����oD�����d����m8J�.�u����m�������S�a����(��5jd�L�:U���Ju�z{f��F�/^��fG$:�{�&�H 0���P�#��=tp$�{`��	�N���	8  (�(��r�n��A��y����bD
�V&�+V��&M�z�>�j�*s���j�2e�{��5k����KM�������}��1�c��K�,��O?]���3��MA����~+�*U2W��G����A3�x���@������ ����C��H t���M��@`����fG$:�{�&�H�H�H�@�P��7SB��{��i��&o����7l�0���[�92O=��t��1�,�	��={��m�6�*��8���M�
i���9����E�1�z��)3g�T���g�L`��jvD����n�#@5;"��	��C7@������@������   �M�B�l�L% >����e��Y������/rD�1bD����j��R�T)Y�z�.�9"�D���M��9s�k���!Z�je�s��:w�,���SU]o/���<s���9�l�\#@w�"	d��=sl�2	�F����E8��{���ep���5�p<$@$@$P�P(Q��3[$�����{b���d���r���������w^LN:t� �=�\L�}����s�1����~S�h��_�����Ey��7LD�i��I��}MD�h���9�-1���;������mJp�z{�����#����e�$���k�xH s���c��I�5�w�,���@���3��-��k���Y��!  ��E�B��e����)���o�8P&M����q���n�)�'g�y������T^}�UAY������	'�s	[pt��M�a�D��i�����eK}��17�����:�/|�����7��X��H�H�H�H�H�H�H�H�H�H�]��r�����H�H�H����Yi����Pb���J����O�t<j�(>|xL�����W���*U�x/��O�0!Ft��_?A
��zH.��2S��e��yss�[�f��Ky���UU���m>��S(�*)�#        p���[��#  ��#@�D��,��"��n���w��\ ���Nc����n��.�w������K�v7n,����:��'�s�����������2��24t��������#�y%��H�H�H�H�H�H�H�H�H�\#@��k�xH�H�H �	P(��6�u�J|��gr�9���
b��5k�\z��1e~�T�PA�m�f���;����j,���9s��K.��q�����+W�\<x� j����A3�yjvD����n�#@5;"��	��C7@������@������   �M�B�l��%�z�-i������3���E��M�61e~�@�r�J�$��(R���_�^j��e�!x��!QZ�j�4l��T����e����������	�_�C��H t���M��@`����fG$:�{�&�H 0���P�#��=tp$@$@$P�	P(Q���W������c[����D��_S"��O?��5k[w ��i��&5j�Hzo�R��8��N�O>�D��D�b�����w��~����<���1Q'0�3�<3+��7�e�_�2�����K��.Y�c!����g�/['���]��B�%@�,_�N.���d
��H�H�

%
�M���"�X�l��l������'�,,���+��':�?�t���T6l��r�-�<^������U��K]�t�t��M@��u�V})����r�}��k?����)S�����(3���W ��		8A����8��=���� @w�	B��fvBN��;a�H�H�
,
%
�iE�J@HP�Z5�hZ�n-�<���,Y2-R[�l�c�9����}��.\��y3�)S��b{��?^n��Fs��W^Q�3V[�T�R���0���\o�+��'���3f$�
��+��8H ����g�H��wW,�q�@�	��3��=��+���X��   ��I�B��iW5�t��\s�L�<�i���`���;�����]���[���2q�D�������y�����SO5Ef@l��8tZ�~���UK��m@^�u)[��)C�������SM���3�g������,O2N�/^G�H��wgL���@�	��3����3�����!����g1; g���1B$@$@����N*����+[Q������T�^�.J����b�H��1Cz��s�w��D��3���M��}��sd�eF�~�b�p��{wy��GL9"E���f[��~�M �����Ml��y�f)^��)������1����y���\!@w�	d��=���	�B����%8�<�{��p���Kp$@$@$P0	P(Q0��f��P��s�U����x��g�����iQf��S�B�-���D��6v������3Gl1�����_K�:ur����,��7���K��m[o�:w����faF��+#X�(	8I����Y8(��{F��Qp���I�pP$����`e�$�$���f���H�
�b��1����d$n����d���j�*T���K�2oDO���H�|~��������~R�����������\�w�o�>���oUt�#�8B�U�&����>���w��7�~��9"���bf����{��Q�`m�\�r��������k�.���J�*��rx�P(�����P�8��`!��J���/*
��O?�Rsc���!C�H���s�������_,~�a�u��x[n�k��z{z�<f���G�x��d�g�N$4�{���	�G��{�LA��M���@x����g�$4�{���_�|��w��aC���#�O�>����~��G���NC�������@�Xk����U�]t��s�=1�/]�T.��Uv�������c����-\�Pm����bs<�������R�d�0�F�������^�����N����I�������sK�����}�vU���)S����b�9��#�������sq�i��B��peW�R�J����^+w�uW�	@�������k�����-1V�^��g�!��������-�������s��9�u�>�l�0a��t�Ivq�y���u����x���
��������$���}C��H�y�w�M���o����dC$�<���&�S$@�D��<�\J0@����F8r�H���w�h������U��O�<9�:N��.��V�\��Z��w�e����2��{��aJRJl��QZ�li�K5�(�m��I�z�zJ��J!��`�n�?��� T�L)RD4h ��-Z4OP������U�d��r�q�I�5�J�*��<M�7�D�/^)ab%(�����	�D���&V"�A��^ ��I�@J��)ab%(������(���c��P��SOl������S�~�d���(��[C�k�
6���|��ue��m&��]a��I��sg��y���C�*�x���W�^����J�	�%R~dX�H��'�/�m���_��~�d;$�>���6�I�/�w�H�p���}q�$���_$�N�(���\J�#�N8�L������5j$�|��*z��grl����[EH��`��;��Cm��������k5j���C�������j���E�����O~�a��
$U���w�)'N4����g��R�fMs_^2�(�j���%2����	d�xe��8\��{>��V�2��,3�K� @�<�JYF���e�pI �����[�"@�D����Pb�����S'5	D5G;}���*z�.[�v��(QB����[���O6�Gq�����R�|ySfg���>}���#�*��c0Z�bE\�
% xX�h�j#�]�6�S!�>���
%|��&H���_�����	�J���*)�#��'@�~r$�*�{��X����=�m��@�����b=�	P(�7�"�x��d���j��a���7���]���x�.��}��[n��vS�Z�]�v)a�/���J�4i"O?��U#���{���i�d���	�*���
�����|^������e��)�l1���}��s��`h� �_����H d���
��I @��a�+��=d�{��=@���B&@�Y��O?�$P�.S��*TH����[���d��
R�bE��A�
�h��i�_��o��-R�X1i�����][9��������_U��?\�/n�O$�S�O@IDAT����������K�U���x��R�\9so:l��n�:�W�T)�[����r�a�%m��W�lYS��=������U����E�:uRj�4�G��
�69��#��c�*U�dW5�DB	�	��'�|��#:�I'�$�+W6��%cs���p�
f;D2�n�0c��6H���S[j ��x>n��f�9s&�TB$�d�����,[�L�"�7o�E�)�C��_|��a��Mr��G��[I���$�����e��	1U��!���S~�������o��e�Q@F��������,]����,������7���T���J�����4l��?��������P�����;w����$?���F}8aD	 �	 ��'����!g@����J��H �	������	�J���*)�#��'@�~r$�*�{��X�����3 ^~�e�B��W^)x����Z�U�����c���}�]w	��K�{���C�J���������n2��	%�7o.���t�����1c�u���K9����/�f��q����@����U+A�%/�%K��Es0���{/��"�'?%���?�����E���_/��W�i*�PB���g�y�Wns���s���s9�����5�\#�H���o�g}���[�.D�N�B	�����p����'��w�L�8�.���z��r�m���������$^�2�Q��7n�X	$0��m����%�}�%�\b�A�D�*�*�����g��a�������������O?=�u����g�=\�K�&��-Z����P���~ST�;�-�/���D��k�xH�B!��P��S��=���B!@;;%�P��C��NI ��P��S��=�Y��w�_����M
��! �����SO=%W_}u�K1eXP��m��_�^����_�'t%�P��!Y������#�rDf�� 7���>*��
��7y�aa���qE&��X�|��G�F�v��#D?���'V1��x7m���x���|D��m�X���>����(	�$o�����A����]KT����_'�y�}��"����*e; �B�=�+"����9IuBZ(�()��s�=WE(@d�t���c��Q��5k�(����k����~P�5"�@X�[��@��T�������RIk!zI�%�V���D"�$�P�N������t�?B�b���5�J�`��H t|�
�	F��jvD����n�#@5;"��	��C7@�������]�����c��8��[]U;C�l���{���/���W�dIY�|����c,{�k��&��u�)��_�f��������{/�/��P�EF��B	]�#�Dl{���o�X��F���"B"ExEXT�����WT��^x�nF�ClU�-$�-�"�����n�j���>5G��?���v�	�x���Ld�d��6��"w<��v��!�g'{|(����:���n�.����W	W�m�aL���_���o���������o�<�=����3'���@a�8�"�0`���?_u����/Wq�����>;��&��L(�H1]�v�!j�8	�(�6�7������%oB$�.�@mc_� ��SN�C=TE��F�x���}����DB	�A��L}��7o��SS�X�B	����	�C�/^�pg�$�{��'	�C��w�Ja���A�}�@8���pg�$�{���o]%K�-L���Q��_����g��������������:=��9��G�x�k�={�(���-g'M�$�K��M�/� W\q�9��T��q�J$�{f���j���+W��
*�E��������k���.,��}���]��KD8���u���"|�_�lYU��S�NU������W+V�hI�^���_4eX�����[&�}�l����6.pC$
��|��G�v��?2����T�Z�.J;��*����n��W_U���6x�����<���-la���s�(&/
Bd�p���,�O�>]j��e���>r�H�%�)�#����=������5��DF^Q@��������k��d����	%z����S�L��m4�M�� �9����"�9s��6azES:��eG'�� �����������$�� ���S��kG
%\��C$
�x�����@(���`g�$
�{(��)	�B��
vvJ��������@(���c�P� ��;*������9s����M����/���9����B�.���3f�0����U�V�-��T�����������k�DT,d����_������^t�>z��
:�[Gl��Ms��q{A����mE��icn�"/�Q�"}q���j��^������x$�� "�5kV��R0'�
t��K��sD���<l�-)�B�����3�����,�D z���.�"?/	���u�H;l�����W|q�u�g��<'����J����%���xm���O,���sL$��@Q@��d��\�D�����T���[o�e1`{>�>���$an�2v�
��u��xB	�����@`QZ���q�t�P�i�pp$@A��WP��	�O���
8��=(����'@�	E��i�C����o
%2�Ba�j�X9��o��yL�z,�/^\�����,Z����x�b���)�d���%��v�*U<-�y���N:)fa��E�Q�`oow���k�
���O� `@�pa��u�J���>�H�<�HS��`K�N�:�"D\@T��B|������9������ ����]k��
A���Nc���2?	����
�-.��
���v	yI�����#f{��0�='���>��x#�m`M�6������������j�������;?�t�|�A���0�
�w�	���l����=��c*�GLa�'����B&�P*^W�.vT	�_x0���<m��
%��� zD����W��)��Y�K$�U���U��`I _������I �����\,	���=_�x3	d�{V���%�|�����B�?�%�&��"��u�����5lC`��G,�&J���dB�T�J��;������l���������"����
�<G�.��k�'�|RW�q�F�6lXL�����o*\��1��v�����}�����J�����_�/�������v��43��� ��N�y �F�����[��x���z�G����;a����&{Q�$��P�B	�����^���4i����9I8�4.z��a%&��|TGX8��s���zh�[����A�b"� Z��X�h�*H$���~�t��*��{�?�o��2D �A�F
��u�r�����+��Z��j�3��	���"���zJ��Y'�(�p�,	�@���4q�G������=�@���Ag$�{x��3	M��4q�G������B�?�a�_a'J/���\q�������uF�e����K��5k�K��h����he���:Q��@Z�l�j��w{�������3~������e8�����w�K�.j[]�{���b7�t�\y������K�.5���x���o_>|x�Mx�����%@^�3�"���+X`���Y������)[v��D��F-@,Z��Hv]�=�V����>��#����#��t��?t-�h��Euq�#�D�XD+P�!�����:���*(\���n��l��H(q����+�����F����z�}[,�����V�X1��TOl�D�{�����Z��Y��!�_�B��NI ��P��S��=���B!@;;%�P��C��NI ����S(�'�d[Q��7�>�����;t�`��1B���c�s�������@@�:�s����	&H�n�����uKS9���6��d,��W���J�[E���4��x��,B�w�8�<<��S�
�"�`'�����S��?X �b,�ck;a���C��b���n��=�<�"	4�q\s�5*�FLGqN6n�h9�l?�^{$���9��}���*�H�3�~����m#�-���c�eV�^-�K�VU����/�XE����B#�� jJ%�m��__^z�%u��=
�m|Ri���L(���f��6m���9��P�i�pp$@A��WP��	�O���
8��=(����'@�	E��i�C����o
%�d�1�6
X��I/�.[�L���N�m%t���0�X�D��q��w�I��
�U)��y�`����n3����>����C�rk3��W��]���x�������i����y��W'��D�D����GLs�
��G���S!���co���o����������-^>�yN�!�k��&�z#��Q[�@l����L%l�Q�-d��y����3�8C��_�� �����U�(M&��u��P�1�y)S�Ln�8UN��S��`H��"�����_��=x����"@�<�%��	���g�I ,�����_��=}�J��������>;!@,"v����;v�Z��~Q�����@P�jU�V2�D*_\��>��|P��o/^1@�J�T$�y���M�
�@G�{�V�Zf�l2w��G[-�qy��-�4h�\{����������o�1�) ���������7��UW]���xM�]�Vm������H$����qB(��!���E"�J�%4h �?���6���;;E�~�b�R|��	�I��W(��s��Q�U^{�5sk�mYLE2J8`�H ||�
�	E��i�C����o���"@�4�!��	����G@A���O�B�?�i�C"����7�&����c�����������cG�<y�9���~��L(1i���m5�������K/������^H�C���if�^�6+W�T���lO4,|	���+T� E�QU�W~�;v�����������blv�^�5o%z��m���%l�b'D#��W�lY�8_y�-^x��{��I��
n��V�����}���U���u�d����-\���yM� n�3:M�>]��k��iy����v-���X�P!����do������kW�P
)�^�F��me������n�M���n���ok���y�"�����R�re)^���b%��/����Nd��-���R�����S(y�K$��x9e�2J���Q�l��"@w�	d��=�x�8	8E����98�(�{�x)����e�]&�G�Np��Q2m�4S��W^�:u��s{
����w��C5u����DuH&���s$J�8��:}���R�T)u��[7����6"�v�����L�>�AB��EU]��E��'�0����WD`.����5���IG�Hw\�J��q���(��#�6m�b���M��C1r���r|y��-����
�8A4�
6������oJn�B�s������6���U���]�f��,Y��9^���x>j���jJe����g����w�y'&b��`e�~�m��K'�7�������^_R���yss/c3�����v9��0���o6����?@�q3J��M�	d/�xe��8rH��=]b�O�K�������I ]��t��>	d/�{���#'�t	���%&B��Af�V����>�`����}��v���X����NX�����r����g�i�Q�L(����w�UT�?)��� ��{��Q��XVlk_Qt��_�]������uQQ��PQTDT��t�HH���{g�7�������w?�83����{�<�o�]�j���s�:���V#p!/8���h����2e�Ot�����.�h9o���3F��z��^������5FVP�������
7��e�_��;.+�z����E/�a[}������N����3��)�����Q|
-�`��m�y�:������F��G�X�r%���+��kY�w�q��9S���/��	�k��1Z�/�c ���
�u ��Qpp�E����-�f�����"n��Jpb�G�PoK�>�/�����U@J<xPk,^�Xk:��<Ze�N �p	<���^���Fv���Im��\��r��;	������A@.�w�����������-,�M[���Mw�'gR�����:�ap�>�.��
0K������o��&��������0�������I�6
�-
�	%�^���r�}:t�qD���gk��>�(�����y����;N�������:w����^|���4y�d��Z�nM��]%��,���5k�L�z�[��d��]j�2�v���;�V�pb�P���/����J����#����i�����V�����S��>����6
DM��Q�Er4F`A'������������O����FM��CV���E>`������QS��P��H(��y�`���?�w�����/��Q��M�6iB���q��7����K����W_M,R�|@C�U.	%���o�^���)�B	������F/^��G� �8�����!�F��zt���;���k����G� �8������C��:^�~���C^H���m!X�[k�yk�_�XL1z�h%�o'���/�|���
E(�u9<>������ZVV��$���]�v�y��i����^����(���@:g����|?HXH�&#�`��,�?����5�8��b�m,��m�6���[}^z���"N���J�D�n���j^$����:l����?X�c�n��{��Q��#q�'8�@��=����u�]�����
�U/))Q�B����'���p��s��a=/V�^�EO�&����5�����p���I��48����5���#4��F���H(���@���n���}��;5	Gpx���4Q+s��>��+���>K�}��^��o���kj�������*�
&���f������6	Q�:n!�p�>���^��1�������4�����	��mG�@@�wiL��������#������s�1������:�������W^iz�z��#/R�b�����K���W/��k��
��E���������7&��0j�(�mD��%����Z�l�O���a�y[�����B���
>|x����k�^�h��=>�<��={/�������*���;�/�y\[�l�5����m[.R���~K,h1K����s�4�V-f� ����:\�&8B
��65��QMn����p�!�P�'��=8��1q��-���>��E/�w��`B	A�z���c��A-]�T�������5K�=Q����I�h�����r���p{,�G��
�H5�%jjj��>�o���SO��-���X�p�^�\���A�Q�wGq�3p���U��%w7:W	��]���A�Q�wGqGug�\^�3
�&�O$����������g��L=r_9��jPG�����K2
%n��f�>}�Vnv������ew���D�P��0kG�7b��9s�&DP����Jp��E>/�/X�@������`QH����:���*�G��h�x�i�#��+��.fi��5�8��,���
%�����9^X%������F.P�	�2%xNl������8@����BIt��Q�]��`B	n���X���"��t�v���x�o��B�`�E!��(&	E(�m/_��N;�4�n^}�U��eKJ�f�@�x�r;:W��]��NA��wW��Sp�����\!w;:W��]����-�6��L��|9n��������0��:�k^�_�x������g���������,�����z��q|�}������nL�-o���U+c���{��GO>���V������8����A��"��d9������^������:G���m�i���4y�d�����^�u%�?G/0Kw�}�"L�(�������s��Zl�o�Q����/��'�*�b}b��5�\�d�����K�~��_6��1���$%%��(�<������J�(#j���Q���Z��p��s��'��u�����c��x�����k��NX������/�Vc�	'���E�i�03��C��N��'���o���C��V�M���{c5�k����6���{.����"##�N�U�r�~�x��:u���@,�b��o�z�G%���>A�#�/�L���m����E�  ��t&��@�6�w���a���]:�`@ `��mhc�a�A�Byk�}��)!��t�B����20F
�1c�#����999J�	����5
��:uX(���������-[�$ct�:7;��s�-
rss�M��|������k�ya���J�����p&3V�q������X���o)�������A�6mM��t�,$���S����$z��M��5���H3�7��#���'��c�-b�'��\���D����^�����@@n�w���������V�D[  7������@�J�w+i�-���]n��4�@B�����	p�^���]|���������>��:t�z�#���� ���0������,o�n���I}�������Fo �&�����78K��,o�n���I?���Z(���y�
��o�M�s�v�?��i{���,%��q	�
����R��p�^��������c��@�m�w�-��A�9�w�X�'p���m�p���9�����B�y���e�]�a�����5���4i�$Z�x�Vw��	��/h�8�����#p�^����@�e�w�
��A�A�wa�+p���e�{p���A��
\&w�Q���B���;v,���������}��t��A�����>���<))����Om��������� ���.������0pt.���]�����Gw �"�����58L��0pt.���?���Z(��_�v-�p�	!�`��k��F�F�
�Tp����G� ����$��0@��w ����]C` �����HB�.�!0p����1��B	F�e�e��3g$u�y���)S(333`=���EB	������D/^.�G� �����%�D��xt.���]��K��.�G� �������m����C���h��8��Ui��=�n�:��};����4h@-[�T������d��B;  �P�A��
@@^x���6XM�n5Q�����k��&��(�y	����
FV��[M�����	@(���s����gM��{����F��=K��Y�c�$���1e���{����	��=htL@@$����������%�m02����j�h�%��6XM�n5Q�����k��&��(���PBO� �%�/��� ����){�������=H��A�c��%���1q��{���2��8HB	a�+y	��K^�`d `5���D��K�.�m02����j�h�%��6XM�n5Q�   �'����A<K/^�5=&�A�wS�,��gM��{����F��=K��Y�c�$���1ep���FW ��������@�j�w���=���]^�`d `5���D��K�.�m02����j�h@@@@OB	=
��x�^�<kzL����4:��Y�w��� ����){�������=H��A�c�   � %���@�%�/ym�������VE{  /������@�j�w���=���]^�`d `5���D�������z8�,�xy����	��=htL�����5=&�A�wS�,��gM��{����F��A@@�AJ8]��K/^��#�	���&��@@^�wym�������VE{  /������@�j�w���==%�4p �Yx����1q��{����g	��=kzL����4:��Y�w��� ����)����� �p6���^���
FV��[M��������#�	���&��@@^�wym�������VE{   zJ�i�@�����Y�c�$���1e���{����	��=htL�����5=&�A�wS	@(� lt  /�x�k��&��(�y	����
FV��[M��������#�	���&��@@@� ����9��g	�������=H��A�c��%���1q��{����g	��=kzL����4:�  �P�A��
@@^x���6XM�n5Q�����k��&��(�y	����
FV��[M�����	@(���s����gM��{����F��=K��Y�c�$���1e���{����	��=htL@@$����������%�m02����j�h�%��6XM�n5Q�����k��&��(���PBO� �%�/��� ����){�������=H��A�c��%���1q��{���2��8HB	a�+y	��K^�`d `5���D��K�.�m02����j�h�%��6XM�n5Q�   �'����A<K/^�5=&�A�wS�,��gM��{����F��=K��Y�c�$���1ep���FW ��������@�j�w���=���]^�`d `5���D��K�.�m02����j�h@@@@OB	=
��x�^�<kzL����4:��Y�w��� ����){�������=H��A�c�   � %���@�%�/ym�������VE{  /������@�j�w���=���]^�`d `5���D�������z8�,�x�n��;�QFr&e���&����%2�6������D��C�	��m��A@"�w�������@�P"��)���vm���M�s.�-�I	�SB\"%�5���I���8�M���J�����F�v��m��+8:����o����J���M��N~#j��d����	��m���A@2�w��������6�E�  ��d�p@@@ �@(c�t@�J���c�f��w�8n�[��`m�]��"1������x�p���Y(\O�Im����:D�o��������������f��u*e�d�����v]��!d%��2XO�n=S�����j��'��)ZY	��e��  �AB���#f(�.���J�����QDeMy��Z�@��Vtt��4��1�l�����*�(��r�����-4��:�Np�a�P�K���]:�`@ `��mh�0HG�.�I0 ����6�h�#��$���%b����F�������H;� b�>-�0�J+�B�Y�Z��eS�v�h�M�'��dDx�:������^9�~\������S�OC��^��C��* ���{��38M��4q������=�����NG ���{��3��x��^�2��i�k�b�n���6������xW�0i����F�:���Dx�"�9PE���)-5������(��ib�z��A�N�w;��m���].{`4 `'���t�6�E�.�=0����N�h@@@B	< ��[�1-���������N+�y'��~�o?�R��� ��/^�N��|@m��(�Nx!
�2.u��;����PG� ���;��+�A��u�	����������nPG�v��a����J�������bWW1�������C��Z�jE�����o�������*}w������
�q�C=��5i������r����J�������SFFeeeQrr�YU�!PQQA��3���Cii��i���m��QUU��.��Ek"�[>PC�;w����2%�i����ukC����P"�l��@H��r*���5�Nq
�(+�#�I�@�qM�4_%��P�j*��@%U��w�����E�:��d�o���wIG�AM������/Qnj��A&-�f��[���V�G��!O�]�.�OD%	ET��EW:{�U�2�M���"�M���n7W�2���h�	�!��+Z	��e�
�������:O`��������S������k��`/z���;��k��V�t���k��]w���y�Yg�3�<������.P���kG�-�)W/X�������i���j�v<���/��3F��Ipl��g�}��<���7�-&L�@555A��+L�6����
������������>��z����p���O>�V�Z�t=j�(�={����O%,���@@���6�Z��8*@��B��AGd�c�������@)*���B�����T�UR���#�+�kY`QI%�E��`KD}v��E�������
qG�i[^{�Z�}1�]1[l�����Y&o�qr���g����>^�:-����j�������=�N>2@�
^�w7�O���]K` `?������B�.�%0����~���J���LB�o������L��{������gR�=����J���i��>�|�{�n%��+��3Xt��Pbb��������.�L�
U(�e�=z�v_�'���:�Y$m%B�m=%�g�@�-y�~Z?/��9:DVz{%RD��NB��2R��SR��Vl�Q�-�X4�-�heB�&���FG�#�+/^�{���K���u����
q�������N�M��i���	A��:e����-���R����"\�������BEg  )������@��w��I���]R�`X `��
P��+ ��v��#F� �.�&��3�k���>��c%�B��������������y�����M��Hyy�O�y��GO<��O.|	�#y�%�
%���K�&MRo��"J����"��{~\�������h�D��("[,|+�h�u��M[���-��l��b��Vl[D{�v�{x�4�nY��hb8��D9���s�������m����h���!3�h"��]2����@}���q�����C�O�
��5V�pG	��8���������G� �(������J��*~t���;���HB����E(Q\\L�z��&�f�JMM���d����k�.%��?��5�}��G/���vo���c����#������{�=��E��	+��Nc���������W�E?�P��?��b�^��E�7/��r����1;�kD����Q�V�h�#�q�*z��i�X�"x�;[D�81�3�'�po`���x;-��!�(,�Q��S{R��������Q[2�\P�O_�|�V����f6��Ytb��b�_U�Y]}^^�Fz��C�$'���C�B}��7�sp��G�#��	HA�.�0p������ ��8B��ft�%�Y���E���so+��S'�(��o�>������n�:JNN������s���5�p�,�0�/���'���Oo�������7m�D���W':�
%T����+�63����q�P���kB��q�]  =��������dH?V+�m�FZ)�� ���8�&;g�R�M�h��Z�fG��[7�
_��K�7�y)�����������|�Y�oV} �~���N^���t��I����N2@�.�-v�E�  ��|6��@�.�w���]���]>�`D `��]d��� ��qY�/���{���$�=�\�>}������;����<�w�����]w�u>m�/N>�dZ��H�;�Y[�n�����*Q9|���S	U(�+��5`'��>���������Egn�?��F����g;����@(a#\4
 ��-{~��[���%TQ���W�#j��!DGS���b�>�0!�&�_U[N�W}�l�q�������c���Ft=)���T�W�����y��wc��	����[��N�P][A���'�b���H|�k���nL���@A�(�{���w(��%�Q�bZ `B�nY~	o_��Y�ft�QG)��w���������)33���o�|���Q#�<��W���}�v�������S���)>>^i���������&M�PB����H(���<���<�������Z��_Dh��a����_JJ
�����v�J��Y�/--M���~��7Z�b�2o���G�!��5"N�n���6IOO��m�Z�n����J���o��z�j�~��-i�������_�=��;���>����#�hx��W��q�t�)����>��'%%)���O>I�<����������Z����k���?�X�e�lO+?�[�nU�!77�222�������9	4�3f��?�S�sd�g�yF�������O���N�Q@����:v5����p������;��oY��
��o��_C�V���3���o�6�����il/T��������v~�y��%%d�� `)���V�(i�M�8���t��&���O=Z�)��GW$���[)"�����{��wk>���!�qMhL��iT�S�����������������ZD8	��ft�s�MQ<��*u9�UV�-����h��#�_����L$��xB��5V�/�BP��	�F��B�>\���(^[��{�_��#������.����L��J�����@�.�{]&��X%�U�b^ P���.�������{k��?/��W�,0&^������(
40�\/^���x�	��f�����;���.��mK�����L(1r�H�{�m��V���%�<@c������:t�^�u�6m���4x�1�����oE�`�������,�3����Bg�u��g�|;��<F��/�o������O_fB	��?{�V��E�&c��o�����M7��ds4�-[�(�'�x���h�<n�8E����"�`��Z�������{�9z����U�#F(�^(7Kv>'f��X����!C������|�P��O����.>��:��m�CJ������}��TPP��W��=��3F�mz���3g�{Xpa�H,����P�������j��a5��e��y����u�:B(�y� �8�Uy��
�x�n�2�=Xq��M[P������6��Uo���@y~wQ�El���G�����W����wdQ�#�"	^��;�T���^��;sB���>g�IG�R]Y*�X����m?���;�����M�QJ��?��y��?��Q��'��sQ�6�GK��
��	��#F�@ j����T(DL�1B4QC�5�r}��n��_���o�n��5�Yz�����n0+����={���
��k��VO���B	���Q�����o���_�����}��P���,40&#?�j��{�1�����7�x�:w�����y����L��U��0�a��i9�q�B>G���`���s������$�����s�Y��n�M��Y��<��EM,�����z��'����C�GW������3�|�zNB��*��()����z���##�+�x��������^�v�"^Y�n�" (,,T�k����*��<	E(�������P�����.JN6�������H$��0��O��,�{������B��M-����V�@%P#����D�4��}(���W�&��h�y�V��bZ��v
,�����;i�8� �����~8������N��kBu��w��E���B9���yJ+]�j���{8]8Z�B�#Vn�I��L�v�q��H:k�$,��CT��95m�J����1�R��SJb�H���^	7��@IDAT���M���e����DC  =���&�A�2�w�P�!���=|���+"����~�������zg����qW?R^�����M���E��?}9o����4�|����}�y�o�����ysZ�d��/�y���dJ��|�69
o{��?�Y�6F�P��)�(B��ub��(��(*��g�y���r��+���O�B�l������
���^jGn��x�����2�,���-�D�q�6o���f���'��8���O��Y(�QCBM��=i�$&/��2�?>�&��c����8�>}������/��R��l�<�=����p��s��}���%n��F�3g�����;�'�b�2�bU
&��H1^xaQ���3�Q�7����o	����#I�q���7�2�2h� JLLT���L��@B	��9�mc�����n5���J�A}�HC�#�&�����o��C�o�������"�D7m��f��#D���"��vPie�Y���vM�D���&�����_g������wI�3{SVZ�/��#��E��?�����6'��M�xB�&XD�"DJ�
!�h����et�z�������A v��c���	#F� ;���cK����#T�|��oEd�������O�����w�Z��a��?������[�+������J/���������Sjj�6��?�����J�Z=	U(�"�G}TI��f����j[|\�t)�j��a��u�Z��������_�"^l}��'�>�L^��M��4���H�����4�v^�~����~����������R�������//��9��	����L]��7.���4�H<�7�|S�.@�P����������
����P�4���
}��7��+|�6���o�����[�*b�����W_}E�C���x�u����|��V��_y�������������l��e�#?���9��W���%Xdd��������_~#6�__L(�����Gl�b���zJ}���m4x�}�h��v�>�^{�5%��>�(�b��7G�Q��XH�
S�	%�^�fF/N���$�����lG%d�� �
����r'J.���rh������gpq
��c���"�558��aqD�N*�,�Osa����:��y�����������4��i�����n����uZ{j#�m���K�� �y���e��m��������F����.�}�v����X1� ����k[����F"���%�]�bf `$7	~
��F'NTDGr����5�n��V-���O���^�~��w��x5��$��W��B5��+V�P����"��m?�x�	����������������<%��z�����*hP���q�,2`�����9�?o�aL,�������W�Vd��q������(�"����BY��/Zo��Q���k��1�����n��sz������8.� ��4�~!�6�-)��m�bN]tQ�������#S�N5f+���������%L+��������E�C/�Q��h��8���df�H���H��
%��cQ����1�4F���fb��$�`�G���������#����Zu�=���5A�x�|���������h�(��i�L(���o����a���:v���R'%�6 �����bZ�c)����6�ZE5��6������C���@	���������4"$�/�ygq����Hm�y��X�XqD�/�m��H�����E���O{���F����=*'�A�%�@ f��c���%�@ f���7%�G��Ba����d��8l���#}���B}BB�R���/W��Wo�7o����zm<CJ�W�m��16�\����|6y��a��J9/����x�����5�
<xP#�����?�A�����+)==]��v�[z�s�9�5G\��j2
=�+�+��B-�s���cca�d6�u��i���X���&����2�������-.�����K5���mg����+}��f���K��B���C�
��]��e��e���-f���9�7�p��J,_��N��0�B0������.\�3���z�X�I
$�`��^�dJ���[��#���J��(�1�g���_�PBa��j��1,��4�����G%�&��A��@(/^w��&��:mb��"C���(�2��Q��6�/��gt�D,���vnQ�KX�����	N�Q'X8��y����_�O�V�#G����~�
�3{����S��CM��T-�7���T%�j��UB�S)���y\���k��R�s^M����"��Y}���|�zc"Ky(�.�X1����#���A �����Z+DF�?�
�D��� �8�,P4	�*G��t5�����'��@*�Dya4P2.,J��U:/��Vj�o����.DMj�����Yp�5���y����_����{j�:GcD�����'r����'%\�zc�����*�
�ddd���W���;wj_�s#��~�"4��d��}���d�G�����&h����}����Y �d��H�P6l��s��	�����|�C��/js�����
x+7��Kx���C�*�X��H�F���0%�_b���a��SOU��HLL�so�r�m��D*�h	,>��Nc��@B	�]��'5��*j����<~�x-{��)�BN�H!�o�V����\YYYJd�PG�L����>��$��}�>�f���PBJ�`P N����9����+h���b����!����R�Dd+�O�8"������Y��wk�Gs��cq�G�k-�$�e�(��wVD5d���he����`����<��u4�m7�zg�����l�~�UPIE!�cQe�UQay����"�H�[�Nt!��w�3�����p���1�Mg�����^@@�w��1��3���pF/  �{�V�P�03^������?�����J���3�F������zf'�%~�.G>�
&����}������B'��v �G�V������*�����5�����yqWM�-����K��y���l��5}���?��������0�����pN��������{������U>o	P�����"z��I���O�gE�D_/�s^���7�(�{��T��r^�VG��G!Q��G�y����h�H���H��
%��X���B�m����]�XTT��ETaW`_b!���o�Q�un�e4h�����m�H(q�����_��m���k�������b�-i������>��z�J��c�����lyJ�f�@���x���Bl��������=��Q�F�BD�`Dfj�?�EdSzR������J���_^���k�a��{fQ#�Q��A��D�q�V)��S�+�E�~E`Q*���~�?�~��x1%R7��ky	����
FV��[M��������#�	���'
��af����Z��������6����S������K�G��g0�D�-��:��s���{������/���RD��	/���T��	x��w��Z/F��~K�P"rh
N��
!��Xl���K�G���vR�p���i��|��@��Yx�����'^�����g�t�b	���8����K.��u��Q��[x��T��[�l�9\�����7�sb�����J��������nQ��`�E�=��@'k�����T��������V"Z����F,fbQS(I�f�>}��/�Pn�o��m|BiW_'�P������4n�8�mR�C(!�y08�X�����kw-'���]�N�U�lj��%!Bl���M)�������{i��\�+�L;�o��6SEM�S�����S�vC�W��/�>��TQSF�"�D�O��)��iG�f=%�t��M[�M��E+��
2A�!���N�n;bt���Kc
l'1��������6
���&u�w����_�������o<rz^���_\���{�R����TI������
6��K�m�{T�!|�q��;�T����@�F��q�_�f������jS��������	'/���_[,�8��Sh��UZ��~����m�];1>?���k�r�%��C=��b��sh���l��p����
�M����B	��h��Q4{�l������;N������V.�X�F�	5B���BJ����yi����f���PB*s`0 n�����`
m�_�D��-2���V"RDK�}o�:�b�����?�b�~g�V*[g8���S����h��F�������jV�����
J�M�=��h:w�_M�d����e�+�^'����{���K��\�N���'���{���P�0����?t��'�����s�V����.���_���%>/lgggkmJ����~�n���_�����Q��uk%��y�'��
#�������u#u��&����qT�������B��n��n��f�I�x��ls5����4r�H�2��Q���������A�[�n��E�ZQ���k�@��}+�N%8z�F���D�J�#J����>��3���G���#Q\s�5>Q)�n�Vt}�F�G��5k�Ye���Z�`��h%8�PB#` �����6����Kh{�&�'�y� W��P����$�H��
�>m�RO9��i������w��p��ki@�Q~�e*���d
��%��/Z���e����������L���[B���T�C �s����M�z�v�����C���'��3�k��W�����O��V��M^|���[��/��R��B�����U���p���������=��6l�@��{�V��a��J�p��P��������
=�1����X�e�:,�������8�	��+�+��R���9o���c�ieo�����u��-g�y&=����n#� �_��]q��}��CV�����)??��o4h@��K,n�-f���+�(Q?X$�d�m���x<����������d��\x���B)N�F�0
6N:�$z����6y�z��'�s�?�������	G�������,JHH������s��U���};��J�B����u��[��/��T��%�9"o�'�;�D��6"������f��$9b��Vcu�#�|	���3���7}3���-In��oJOjaZ.S&�]&k`, `/���|�:�D�.�50����^�hd"�Jf�������������>z���:_�5���C��o��a���JLL��O>���������������W���o�QJJ�r}�����m^�o���V���2��x���X���Q#����E�# ����"����h�_��I���"J���Q/0�#����R\\��	�|��q��S��M�>O\����&~���['���I�c����-����?h"��������V���"\{�*��s���]���6m��������|t����jHy�������������?�D��
t'�5�����
|��w��[nQ���D�H���^(����Y�q�]wi��o'>����<O ���*������8rG;�����[�v[E�������SqD����KfG�������i����NkG7��fZ&S&�]&k`, `/���|�:�D�.�50����^�hd"�Ja�b�
���8��;+((����lc��{��W�0����C���W���_������4�J�h`��Uo��/��F6��x�1''�O�d��)S|�c����.��,X�e���[4f����p�z��bW��#+�K���>�p�
Z��%z���R(��	[�����~���xb�/(���Gx�Z�ZjTc{�\�m�3�<Cg�u���v�F�P����+WRzz�R'\{�*����;h�����_x��0a�vm<1FK`{�?O�0^J]t��?��k��b���Z��c�G�PoK�>�/�����U@J<xPk��GM�D�Q��u�P�-��@@*x�����������S�����+��W���O�PYU�����y*�p�i�,��wY,�q������3F  ��,��8@�~�w�����=|K������,R����wd�����C�m��5�.W��x���_=�B��n��&������:xa�#$�����E?�p�-
�	%�#���r�}:t�qD���gk��>�(�����y����;N�������:w����^|���4y�d��Z�nM��]%��,�������[��d��]Z�!�h�;��S�h
'V
%.��r�����x����i�����V�����S��>���\��9�Ijj�O=�`�O�4�x�5�w��e�A,�0�������?��e��4,�QS���U(a��@���Yp��G��P��H(��y�`���?�w�����/��Q�|}��G5��
5��G/�R��h�f�������	%�^��&�h���� ���"��+���
vt�r����2��)M{����W�����5
���[�
��������	��-G�A@Z�wiM#�����yq�������t����E���q����/�����G�V"<�v/����W�j�P�\�����������eee�HB��B��]i��y��A������������A1�H����v�o`	I�d�l!8����X`�&�W������m�F��z��K/��X��)�qY)������P����{�V���_���P]]Mg�q�EDm���O�N��,��c�b}�~>9R@����������v�v�
�
��-))Q�B����'���p��s��a=/V�^��C�]�Y�,@8��S|����/,H�o���]��>��E�!�V7j}�@B	��*��v����S��u�QJ>Gpx���4Q+���P��^���]9����Y������x��]S?����*�
&���f������6	Q�:n!�p�>���^��1%�.�E��9�O�~�M���������{���q���$m������������N�F_ �.�����;8I��$������k�
oc�_��C��u������+�����^G^\��J5��������^�9��y��
i��Eu��~�mecGb5j�6"�����WBB-[��'R����/�����i��Y!���������/���������������'�b�����J�`A�����e��mR�Yj��-)��o�%�J[�nU���p}����(�]�1�c��5f�|��:\�>&8B
����QMn��������B	��o���DY�����(lB��8������~i
&�`����j:~fX�t�RM�����6k�,��D�S��d�����r���p{,1>��H5�%jjj��>�o���SO��-���X�p�^�\�������_�E;
����sf/�r���eng���������c��@�m�w�-��A�9�w�X�'p���mDO��\^�3
�f�O$����������g��L=r_��jPG�����K2
%n��f�>}�Vnv������ew���D�P��0kG�7b���wU����Y!�����|^l�GHP�4y[��o�^+
w\V	%8�G������H�7o��pd�K�U?G	��d���,����l�r����9^X%������F.P�	�2%xNl������8@����BIt�h�6����wqq��
�E(�#�������������%�p���C�BJp�����i�����^}�U��eKJ�f�@�x�r;:�r������Q��j����g:���273��n�G� �,������I��&}�
���;�������n�����p�
FS�LQ�7�f���Jhz}�}c�5/�/^�XYhV�������?��s���W��{x[�p�8��>����q����l7&����h�����������'�|�g+}E���[\�t�I��A}�r���AM��{/]u�U�e�#G��6�4u�T�<y�z�s��������������[&p}
w\UUU��sg�	���7��]�z�����Ga��>�p��k�Q�X|��CM���J�m��^i�������z_s�^ ��W�DQ��v�:��2>�k�p�}?���[��'�o����l�_|��[��p�	>[��V3�;T��4�x�	�-��;=���o�t���+�7FQ������i�����K.Q~/222�4�[u�o!'���7��SG�0n��P�����q�P�
��@@:x���$P�X�����I���a�����o��w7��Op������ w�:�w�����^A�
�w7�Gg�F!�>"/������SB�w������-���5k�m�Fg��A,�%��sNN�u����z�F�B��N
p�5�}vv6�_��-����d�\yK���\�ES�:��9��|�2G^X�z��</h�E!����m\�yb�D����p$
����A�Nl�6m�����~FxK����E�%J��rn�.���g!I^^��$??�X ��woj��Y}������8�w}��=�A~�'��\���D����^������F�����_7/0�v���e�#��WnZ��L��C��
H@�.�0p���!��$ ��8D����&�P�>��h9��{��A_|q�f8:=��>����^�   )%$5� �,�x9�������4��;��t�����F�
?��icd��-��&@ J����P&X@�nD4QB�%��0A��w z�	�����G������t�1�h���p��������m$|*�@@@
JHa@�mx�r��?�	��)b	�8w�54�����{�����E���|����#����"�vA@>�w�l���]��v���v�J��7�.��2
T�>}h��Yu��(((�I�&������&L�^xA��	���� ���6������ lt�~X�9}�����kG7O�7�'�0-w2��$m������������N�F_ �.�����;8I��$����j�DII	�;�v���f�����}{:x� ����G}�S���D����6m����@@@NJ�i�
@�ax�r8��Y�}�0���c:��i�����L�����;I}�������G� �$������K��.�N��;I;���Z(�4��]K'�pB�`X$��k���Q�B�A@�%�����;��$��%�!0��'PU[N�}|+�U���et�S������9�	w�4��	����FN��;E��������#����"���!�`*[�lQ���9sf@H��wM�2�233�C!���\ ���
��K���xt�r��������M{u�����������>�C�.�-0����n�h�!��	�M�n7��j��mt��!eR-Z� ��`U��g�[���o�N;v��
P��-a����)99�������� �p6���^���
F��X�}����o�D���%%45-�;�n7a�����c��&��0�y����Fv���M������	@(�m�c� ������_�E;
��6�9�]9�N�2�3��vF�  ��<��H@�n�w�	�}���][`$ `7�����>��x����?f ��x�Q�	W���F5�M?��4����evf������A@.�w���������v�E�  ��\��h@�N�w;��m%���� �/< `�Uy�������
����~��(���Am�����r��;�����6A@N�w9��Q����vPE�   *%T8�x�^�<m~L�fs~~��l����fIt�iQB����vd�����6A@N�w9��Q����vPE�  '���v��@��w;��M��*	A<M/^�6?&o3���54��)TX����^����co1-�#�nU�	r���i�
� ��*�9	����Fv���Am���� �PI� �ix����1y��	��~{:g�d�q��r+��V�D[N��-��%��EJ&%�%9�}���:�a� Po��z��� u��Qg2�M�^ot�@@@ J�	U@b�^�b�����~\?�>^2�t q
�����(#��i����w+i�-'T�VP���i���h��UZ��qM(�iJOnI��_��KOnE�I��i+���O��^�~������J*�Si�~*Q����a]N�^���oR��� lt.���lt��;]����	@(�A�c� u	���.���^��aZ�3����i���i����wa�)�������P��E�v��z������(X<�B
T(�
!��J4
�{��d1���!�`��BTCT��C��k�+�*	��C.�]O
Z����^�<��E�w/Zs�*��W-�y����3 �p�3z��^�$7�3*k���OnB��s��d�0�R�2�2��V�D;V�=XMk��J�s�[����(8EzS�J���b,�=�'��C`�>* G8,z8,~�<!~��e�i��=��<����o����^�>��5�w�Y��2����������� ���1z�x��#a�1C`��5��������n��Y�}��j��Z|a_]#����@�����Z>��j�X-��\)��9����Q���*��Ar|e6�@���@�[����	>���"P{��~��+��]��$��7X?�"�Y[:����=D�H|�[�+���~|W�-��eee�:�fI�iH������� ��p3�,�=���q#��0�.y�]K�'�{^j�`p `)���8�HM�.�y08�zJD�	1+���
�hB'����4�G~o�E��?��k�����C�n�5�h���hj���U���K`e�O�r�/�v�Rr��;�
��Q����_�������p�Jyu)-���V	�[��w| =����G^���M,A�����������rWG��UO�t��QB����C�����2Yc{	������A@&�w�������@��P"�l����^��
��@�������)�V���q|u��%"M���mPZ��;A��$�f�Z�����/�8���x��������E���-}Vn��Vl��6��u�o��R��e��e�u0+F^�[�����^�pY$�"l�,�&��;5Ml�fy�������1y���{�����	��=m~L@@l'������@4��W4X	c�5�����Lq-ty�<[���.���h}�D|��PoE=�j,����8b��Q������H�#��H����"*,�M��_a��W&�e{��$_�b&��B�9�I�"���9�T�-tV
������i��F�|�?
�DC����m���4����^*�*������X/)�)%'����h�������8��{�J��u\��8�{>��1��5���pD+ 
���`%�@@����k;�@�Bx��&��0���o.x2�;����tt���l��.�����#�v�2!���VqD�������uoe��>m����CUm9�-�EB8Q(x���z�����8�1����Y��n
�t,5k���J�y5�e����#�����='�q$�i�U�0�����M����$�������!)A�*�����G��yM�()!Y�7�T����	?~������X�]'�5����U�(/��>��;������.�G� �0�������x��38� `N/^�\�Nx���h��o����>xq�s�^J���Y�)-���}��� �a�J�[?p��*� ��[��Q��J���#i��^�lQ�Q(�����"_�Q��3�'��v-��H��G��_{��Vo��V��kw,g����.9�j���4c�@B'��[^�$
K����0���B)���	��8o&�,�b��Y*�.�W��F��o����o����������X�.�����<p�L�����@@@�}J�o�@@x����g	������N�Jve��A#��@cJ�o,��?��[$�%*[4�KG>u���d�*c��u��:������.�Bm�~C���tt�m:2{+Q'�}���E��,��[�X��U�-,x�3RqA������<��c18t��M����m;��/jteG��E��9P��e)	�)�IjpTC���
Z�>v��B�v�xk�����W+���Q(�r!Px�����������n'�>n��2s���q���}�6�b�}|�:�Z����U�b^ P���.��@�����e1/���r��p�^�\6��<��������B�(D,|`���F��qB�e��F��g-q4���WQ��������g�dj�5l���\���#��C��~y4GQ.�k�W�Z�8�������8b�X���)���-���#���0������f^����s�h�9�l;���I����v��%����G$`JK����U���a����A��s�O~X�9}��A���$:}�eA����*j���y�����~3~��������Q��O����6=��)t��K���B���cq����a�w<	 ��w��37@(�u�	  �xIgl#��yQx�����B8!�-��6@C��=1A����yQ�������)bo{��7���r�x&r��,������J"j�}�n"L�Pek����"j���y�8g�"Z&D���_T��p�������%���@u���,)C�7\���&���N �*Yt�M��\0�J*�l��&�h���g��C�{�j�������[����g������Y����4�G�����F��N�:������h#�6�a� P������   �	@(�j��H�������2(���M/^���b�@8��a�7�Hv����TZY$=��"�EZSN4������&����JY�M���)8���k����CiUq�����>mY12f��W��e��v�z�-AQ�����v���%#�]FS����
���b�Y�b�U�LJH�?��Ql��;`=:O�s/���0��o�cz�F����o��7}C���J��X�u�q�*�V��B���Nl{D���si@��vv��A j	���G�0pp���!��@@<JB	���	,�PN�W�QA�Ae���6�sG���-^�d"0>��@$���dm��&�"���5T][i��j)�Q5Q(8E�&J4
>OQ)����"��5k���J�P{�Fl�P#���8V9���������c�H��ba��u�z!��Il3�#�W��}���������m�#������nY@+D�����Pn�w�Fqt��J4�N-{m'�x�
_��C�V������>����S�z����zu�4����o�����3��o���v.QL�T~K���"5�&���R�x.��[�n%�]���7�?�+�6�O�!]���mO��� p�@,�;l	 �{h�P@@@�~ ��7� `������9e����@B�M��t����B�x�I�b�����W��6����6�v��p�"
EG��2iBD��#�1�����(��x@,(V��E9�U!�)�#c$��1GrK��EiI--�b��K`qD��QRY���4�H}��-%:�"��_�4���8��.���������J�y,�Q�+���_X�[��au,*����f�MY�[�eM���^Rr��ED�u,�i�$gb/;
7�k�����)�%2���������GJlG��z��m�2�M�i7�Fv;�:����
@�+����b#��"��$�0#����8J�Vh"G�(���C���.�.;���'�x��B�)v����"����V����J�����"��!��[8s�7m��)Z)��`"�<a��`U�/G@h�����?t�D��p�Q������Hk�/������0���@;C=��^}e;�]������"z��'�6�UQ��y����Qvz���Ph����7����o;��s���o���e{���Ra�^��Hh�H���?��K�H,~���m����W9�
t���j�-'����0�X�k��h�wO���m��&A@@4Jh(p�G gK%u�J�&	
��$�VF�sJ�b��!��KV<]>.C����o	Z/^A�����XD+�_�W�T�?��WS.���ST���X�y|��z�1�����7��G�REd����B�XD-��pZ���>m���FZ�"�AI|3GY�}1-�����p�����#��v#���-7���eo���}f��s}���hD����#�^o�0]��������?����H�<���k�>L��m8��F^K:�
X'Ze��P���]'"H��l�J}�:	q�ip�cid����B^L�&�iC`r �������x��6>������f�V&�=;��wjL��7��FG�>�����G!�X��,,��~��Z��U����F���������p'D�h���Z!�b
ET����B\����}T\Q@E������m/���N����eqD!��Hi�D�1��r�V'��,��{�+s��'x��>�C���-��L�����4����nI�B���^i9K��Pc���-�����z�Ds��r�
X���O����=��4���2
�������&�Q�����6���W�^�=���b[�n������	��@4�{�1�xA@V�wY-�q���@l�P"6��Y�@K7U�;�������"�������:�dT��N�H�X"���9�%2�����?���5p?D�X���UTP�O%����|��!�(T�(���H�h����n;�����[��	�F�����}�X|��R��T�����������[N�e�6t����EJV�z(�����_�%����H�6���1��-����_^�����n����	X'�
e�w=�u;�+$��m�g[~����m9u#��-o_����h��/hL���IV#Y<.������9�<���[	@(a+^4�x����lS��p$�>B4��cc��m�h���}��Tl�QN5��NA[5"��Q�ywM�25�U�F4y|%'F��^�T�8�@�������B�F!��p�F�([R����!H���������l/uz�+�m��3���-�����m�;��	�#Y��������H*�Q�3|2��������
����|EPu�P-5l��4h��5G��c����@9��Q�q����"��2��#�r�F�D��h����_�E�9�]9�N���p��/W�p����2��N4����������T����?�����u?��{���*�.�W	z�0�u#D'���j��e�����5
�����I�����A�Bt�����(F����k�@@b���`E�L<��^������nV���H�4�)3�n�z����?X �����2�i���������u����.-�!]{Z�4iX�������p#D�{`��V��`�XD�`QEyU�"v��:9
!�v-��(^,�X��x��@���9|T��*�2� �����4��H� =���w
��!-��=g�"zo�T{0��
�g��������?s���B���Q�:o��Fb!Gkaa��[����Kg����~��o��&������R,��#�����#���D9n
5�OX/
e���y?��U����BF� "���T���:�.]�u!-\7����r{j�G�P@IDATE��a]O��"BR,$��Z��[�q����8����t��S=Q����2��xc� �&�����7���>%b����G	�#��#Jm���u:i";#^_�yi�A��SF��+��=���KV<�<0�������ien����%5��������K���/Z�@���G�I������>����?`zoDc��%�jI5�����E�"�5��%���q��9�8q��Kb;�%�Jl�v\��%���b��A�����3��e[fwgf#�gf��s���������)�����TvY��o�98���Fl�}+��,&�h2z����v���������_P�����?����|cEP$�a�X!��?��GCt����y������57��
��
nJx�v���t�����p�c;��"	�����%!�r�z��o���S�W�x�(�)KB����]P/�z�:�[#h�=��P�H�'������g�D�~��G���{#�n^z��d�,!F��MaA	+���"9���w$lO����X�+a� ���`��&����q���3W�)����F�5�" ���AE�AQ�"%,:���E�$!.��F����Ct�|t�_Qc�����|���z��_T�;�aQ���u�X��5��A��`���[�,��Q�[�r��`A��X�^#���Bu�K�
�S��E��������agM�����>���P(����#����)�a��u
[��xu�z{��o���?U�������W�\DVg��]��w�=
�U��b���<U5���{F*��h��}�����BJx�;V�����Q{/qyY���{�_����zC���|��;8,�}TUTQ�Tj��L�sx�������
,�z�����6�T��q(�� `�ws�#F  z%��^g�
�}t�y��^v��k��U�,�R�Y8!�.B����@"��!�|�|E����1��X�I����Cy��%$�����D�7�
^��BY06������h��\�EO�a4�3u���R���E4Q�W�X�]|��>��j=�5���L'�x`�����s�Z0i�Q�{������z-5�������T�����������KW�x���m�;i���#�'\A	�q�E����+6g�x^XV���W��]�)������Ks�=�D����?IQ�1�T����� `�w�L%  �$��.���	����&�<�l
{���������b+��������2-e�x��'�?�������1��'V=to��!<������������7��0���[���M%d����1��t�"�XS���m�Q#8��2���c����W�H���c�W-c��o�~��?D����,��u���VJ�w�D�L��j��$���V���i����
�%b�$a����G/�q����G���+y_E��WREAMhvR��~7����8��BH�F�����[�~-�B:"�L{����HK����v@@�FB���FC ��B�L���k �����bM��v������\m�~z�~{P�}��J|���C_d����5e���9	���9��E���.��?��ot����������b*�)!�%#�����hl��aA��(�~�s9���������������Mo��5#
Wp��
�����V1�\�E$��(��n������T����(��5�H�*z[�������ry���N���,>�(���MoD���������)��?JG.�J{/�@=�17)�XD4!���5T�Ss]���7���#~G�_��{B�i�9�z���)�F����C@K{7���SHO����w�@@�EB�d�F; �S�}~L�(�&�G�����b#��
��1_g�����
�-���������d��k^D(�!{7�Tb  0/#�����������c����)^�WFE��Y�[�a���8�B9/����
M�\��@"`8����>��j��f�hm�����Vew��������e�,%MB |��/Q��D��Y3�=�z�����0[�������,���D�0���u��g����4�T���~N�<������?�3�VUT�$V�n������'� ��9}�H�m�w�x�XT��mn�&����s���`��z8��U�r��w����I�!�{�o���E�����)�s�j>2�E`>{7�h�[�p`��� @@@ ^J�K����4wzY4�����4���{d�99�F��k+���������&�:`g1��/����,lH����vj10�E�����}�~���xa7�0TBE�e��4����Yl��p��0�&����1wI�(���vZ����E
J=g���������)�%>~���Q�j�gH��g��8�a�;�����(�&/���xo�p
mt��^����;H�|�b7#"�`����BF����E�c���
6Ds[B���zh����c�+�gD��$d��
�6��:�MXJ�~�����N���B�.����,�V���o?����%���hY��i�������nL��5���=5��*���%�e�1N����V7�<J�������n���I;�%V ����n������Y�����6,���L��W�� `~�w��1FAf��v���{���{�Pq~��W�
^�!�	t�d���,v��������s17W^�������/�����W�m����j�R�!��W�<M-]����u��m%����xa\u��<��X�9���k��v%4��=�L_T����@B�T�y;|���a9��w���x�XTq�2�E�7�-k�P]��/������B�&b��Kv����P~�09�����I�z���i�G��"{CYL������nP��6$��=��� ���%�j�1X���o��l�(���3-��Jo\��x�(�����8�a�_/�x�m�i��oT��+�	�� ` �wM�
q���	0E�����=���W����6M{�m�Q<I��hZ��+����������)�����gm���DUQ}�uu
^#�;1D+��+��i��-�^K;W��=,�c�T���}�.����gY�tV�\��Ycq�**�)���F:������)�������oS�kD������o�C-����>q����`A�U��	��]���.�@�������( ��@ b��	��R<M4�{����<��b)HLu�O�:<���=�Z74u��;7����r�'��f!A�����S����,��YH�p�����(�9�F��[�opk6}��&�e�~����/o��h�G'Z��!���gXW�[�,�z*+.����(��D�@b�}���OV�l����0�c�ij�8����t��b����������e�*�a�eDx!a�}��TC��9�S��
f�DX#���~��6#�$��=qlQ3�������D`ht�N]q��ZG�����U��Dh����r��������k\���	��M=�L#{��������{������h7���9��w��/��8�L�fo�Y0q��u����%�YDE2�o�K7�2���y��."	���}�~�9(�C>�;�9�@��f����i�15u�g��)jd����>�{.m\��=H��0���s����|C��|���R�m��^�&d��~�u3�$��=������5%�z�1x0'��>?}�w]$0��-+���[����5�' `z�w�O1S`�S(Lu""�����h��t���y�&�����B#�;�$�hS�*'������$�s�9%,x(T�r GE�0)���%�� @!:^'��^�l�UEut���8��6��Vt������/g�,�����d����C��	��]�������`�Z�D]   3	@(1��ALA�����v��[],�qi6��m��L1�DD�&S���b���V��d�D[O��e?���W�������6����,V���!zc�D���m9����<+{�p���%��X�x��c���!l���aog��u�8q�:���n`m�������kD����/����P-��j=������'���s^�+H�{"��N� %�$p0���1��3]44:�:�5
���b���*"d�����M7������1eF��u:r�5:��9�G��1>�����r�)���A]�i�S"�h�����Oh�J�+�<���T�WIe|^UXKvk6�=�P��+��%���'8\������Kwj^#|���}������O��0�LD��33Rq�g�}����o �-���<Q����tJL��+����]7�BS��:;�.l����a��9N@�Gh1��bD �F��F���W�.��O�+V��:�pO'Z�,��e�4���j�,����
En���pt��7�����3��'.��	[��n]~m\tgr;���>J�.�I�~�e��������+����vj�1���]s��@@@ ��!0p
 `N��q��3��=�W`Y���X4@��q�PB2@���SL#��G�	�@ !�:��`b��r�F<C��(��UT�b����;$��Ye#I��GB)�������m�U!�����c��U����w��z�&{O4a�  �MB��������3N?x�����T�\��������7��A���	�-��C�"%{����@b	\b�m��YQ�^"!3�n��5Qs����_cOgT����M�w��#C`�����A���h@@����;�9��o�{��Z����,?}��
ZTiO;>0���%]f�"�;> �>`��3����7�����e��wU��?���he�F�|d���=�s��@����E����@z�P"=����%���?|��._��ep��z����e�	 `L�C�1�
��X��c��{@��`����T���f����g�C�������P�B5�%{O-��${O&m�  �GB���s�@�	<�B7]h/�(+��m/���,00���D�����<`��B6����D��������>�W4���5[��>y�W���n�|$���=���:$��=������%�o�1b�IO��CgZ<��x��|�sM���P@���c�z	Z��kAu��1���1Oz�e�`;}��/�����[9�<K|�J�*��Gb���S�-�@�	���M����@z�P"����A��#����������*m��mET��9;) �"�?�j��Y���=.|�E�n���Mg��4�v�-��|s�� ��>}���<�2�	(E����G� ���@G�   �F �H���PA�&p��K?z�:�|�Cl8�z���iq��!@���CL:	���k����!��
1M��dc�z�������p}�=K����e��\����Fk �J��T�G�   `~J��1B��?�&m�����E�������i�DP3��������A@ q`��c��A@o`�z�c��d�~z��Q�t}�R���_Q�7RF[o�ndq�*#u{Z_a��p�LM�n����@@@ � �H�� z |��6��7���3�[�N���bZZm[� �#�w���
��A�@@3�w�P�"�=����H�<|������s�����m�S��{���7��������JWo]~/�s�z��������� `J�wSN+  �!��n�H%�����n�'_���v��]�ue����W;/(�w%t41�
$��=PQ%���]�c�n�t������T{�q��?n��j�3D"����Y�++�����'T]�0+O�	�w=�����k�����L'��t�HSs=x�=7B�;8@���P�
��C����(+|A�����\����� ���k���n	��u;5���S��_R�wM�"Z�pm\t'�����R����h��i���i�=0oW�^�^�������K��^f�����'�1Z�t&�D:�>� 0E@���{�O?��G�z}Se�N���O����e#@@'��]'�C7@4${�&�����|�����M:}�p�^[3���n3m^�����-�����>��:t���=Q5[[��>p��PQNYT���0�=��&���=5��*���%�e�1N���{�z��Az��p�:$���J�VLE����E�����S�+�
 ���DPE� �O�w}���{�����.���h�B<Ll^��������P�@+�>�o�W��,;������w�UO�o��'�0�����g.�0#%�8��@�"y�����'_������8V����6.����@ �"����-�$��=�����]�`�^�����]K�=�������h-�\�}���~��k<K����v�{�/XG���c�W-���{*��mH.�{ry�5H7J���c� s�����'z�@?�������j���w��f	M�9�@�	Dj�)�&����]��B�n��2X7G���o/~�:�E����r��x;m�=�����n8��:�q���w5\�Yy�������2g$��s�=7?L+k6��I�%�=�s��@����E����@z�P"=���A ��3W���7�h�=1�����N�����l�}z��������&h�w�8�r�����	�����2J�[��I]�}�u�y��	�eY��U������>\���|�!@@�`�����&{��(�%p��5:x�%j�������M�i�ZV�6�{f��yh��]���s4�������p�q�;h��mJ�N����������I��E���m�(?o8�-����d�F; �z����z  f&���gc��@,^.�8����t��;o;���Mo�TH��y���I4ux��zH��$s[Xa����hi5j�c�w��� �o�w}�zZ��kIu���F�/�HG����wD��jzQn)m\t'm^��r#k1����>C.�Ln���
C_\��n_�Z^�>4y����?����n�Z��0�����P}�2�"IM��'7�����?��P��S��DB ���F�7�]/����YDJ��t	eL�\��~�btoyi=��r+&�i9���B����	 �&{����s �)���8QY�6�Q�L4w�����"7��D�����7�����������������.q]�V�s��Qea]�bJ�������J�#=���o�����Kt�{�	�~���~�=3�P����1�DM ����1��DK�o��km]�3o90&������}���s����:���M5�x�=��G� ���G�
%A��`�F�A���g�c����4��z ��b��d�;����:��������cQ�e��swr���)�Y��^���>�#:r��y��(����*/���l�
��E�������7'������f�M�@ fZ=x�t|�^xsh�~l[�Co�X0o90���.��k���t5&��`B���]��N�L#{�� `j�wSO�aw��^:�����IZ��t�����a�f�����C���F$������6e�b����:�������;Z�t!�D��4�	 ���^m=>�(���R����~��>�-�7}�V����sv���?��>D�xYA�sc�]����)�hi���A�����M4�
�C�> d'�@�H�����a�=�������
c��;4��3H�����<Z4�/���w	����
��L�hRK��Z�h@@�NB	��0� ��|�����~�{����U6z`g	9������o/�'����$b��Pf&�5�BY�g�8��u�ee(i�|.e{�<�w��\r�(#���h��\Z�(���"mOO���w=�
}�N�>��@��`�f�]c����t���t���&Y\�����U�4�O��C�/�o����~�Z%�����7}Ds�F�Fa��� �E�n���h@@@@o �����? )!����m����4<���]Y�E�[ByN^E�f8�;<@��	��v��:G�2�f�}���Z�vj�\����vJ�Y0�>�nZ�>��D��L��H=�{��=�d��'�4����x�8���C�vsh���5�l������+�IUE�3�v�;�I?��mj��4o�j7�{n�e�r�-o�{�q?���8s������	@(a�YC�A4'����8���nj����� ;����$,6����~�N�k���/����V��6(�f���0�vr����	&�����K�/�H��'m���@D`�aB!0��)�1mq��0{�x�.\;v���a��;����m|���������c��?��	Z^�~������C�������5_�-����F�1�@ !���e��/u��k^��K��?�����m�e����j�<��!�-0�ue��OL8?��.�i�5����E����Crl^�33�4���w���@@�`�&�D"${������h/{�/�� �7E���^��t'���2_�o�'��3u
���z��d;����8�`b��wU������nJ1 �%t5��@�$��k��u2�4���Y�}��:���7�a�����*
��!d��z����D.�(���;�����L$����y�8@��`�F�=��#{��J����kG�h����1lXx��:8����1�~��y�W�WF��O��t��e�-{�����q	���;w�9����F�%�@ �������!z���1i��9�n[����	k�{��.��{)`���8�Ji�>D�Sp���>1L}��n"�-�i�;�������yL��{�t��E9Y�����E����=�D�{�����&]1=����������[^0����CJ8�����V����U,�4�{��p����S������!@(a�iB'AM �^�.��/�;�;V��;6�-����������+�>�FE���Jx�<S��2�6�h��a���0n"���&n^��.t#�I��e�g����E����y��B����a��V@41' �$���$u��DA�,
x�nz����cO��5�/���[hm�V���E|������Dp
�%{7��bd   �J�a���H����kzbW�������A�^�r>���Q����nj�QITeq��R��g���Qz��u�G.���� ���J
�6�/��&�H������]^z��'�r�=���v���-rRm�-lYd�hC@K{��G�@ Q`��"�zA <�������Q�H��3rU��U��O�������g��%������������@(��I@@RO U^��.��-�.���;K�i��T�`�=N�{�;�����J�Sj�9��
R{ot�����a��pBD6E<Q��	={����{��q������ry��8/�D�na6�#��f�@@C����]AU 	&{O0`Ta{��{�M�O�)����r%{��Bk�n�g��E�wu������mF1�%�5�
�@����K]{�'��kya=|��C:�h�����}���s���F�YJ���u#iK��]G��z���3�����	�:Q�{�����b��U�x�����
~%R>���C����&����vb�w�ZGM �${O&m�s8pi=s�'�5�;w�R�T��Ml&�5g�;`�sbA"�������A����n@(���@G@RI �^.�8=�|O��\�����*Y4�-�D���g��d\���uvI���5�B��CrRs�z��h�&a'�+��u"��&��'��w��q�Ck�1[Uq�_�M7rx��K�1v�� ��'�}�	 �<����FK �@�H��2k���R=������E����:�6a�fO���O��	�����S����@J	@(�R�h@@/����#���:{���E�<xw	-����AF������,�E<������q
��,�8>D�����6<	�Q[��:$dXD���2��{S���]�cZ���PB��%���''�������DM`>{��B� �[�w�N
:���z��d�>:�r�����"�|�:�����n���OO��a���s����~��7������z�
�@ e�������t��+,��YDk:��Afl�z|,���@~�
���-��5`��Z��t����;���"�DmeY,��:��a!�qdR�3SS�\��=��#VCBk��"2��W�a4����.\t�i�._�Ol��%�Y�#��l{�|�@>��$���p@�I�n�y���C�jO#������48���*s�6U�.�-���Un�7���{~�;0:%�>��?��&������!z��P���}S>m[��2�# ��<�M�0Z���s������D�G�$���KW4�1����e�D����;2E����B���{�2h<o�Z�jW�aF�9�M��i�R�����1��c,�8���x�-��I�4ds�fV�`P%�w)�7NU1!LA�n�i� ������ebo�K#���F�e�]TQPC�VPEam\u�����G�����+G����M�)G7y}n����y���x�����a!���R?�@s�}�)*!�D���/=>x�������vR���`xt�N�����+����HB�$z�x�CO��!	����s>�����|D8!�����N��"�[��B9��B�"�P�|-��+W��j����1wS��H��
K����U=�#c,�`�'��I<�
�v�}U�b/��4?	�O�q/$�������@�����Tc�&#��y��lz��\=L.�H\�sX���|5�hba�r�+]W}�yn��|�~���h�w�����������C#�X� ���r����tC����z��r"�`�sX@�)��&�E��B����65��n�����+\�l,G	�8�i����'�'&��<�"��(����Z�f"�j(\�����9����� ���(�0$�>x5�{�G�x����z=�#1�����n/�a�M��z�\8.�����,�*f���_���*��j;u�M��rx������6-���IS�s��s4]���Zx�
�>1��DB����]d:da#�9D8�UX�\���s�� '���2IE|]��bK�:87;�����;�� {Ou�	��x�$���G�Z)��Z���b��pB���rz�C�k�C.�D��>����1p-�c��!(z�|>�������FPLz�x�`��<E`a�dL�X���/�;F�����;FY���0B�Y��V�SB�������[J%�/(^�E�������6t@@CB	�L:
 �Hz~�j�����w����[���Vz��R��������mn:���3�=b��>�p��d�Dy�x��(*��������"�O_
������iM�6����,e%�D{��prl����B���}���#�-�N���PBD'���=&�K��CKAN�&2��"��(
���l(��$�v�����ox�����z|�(�#�dfX�=�]�d*��<C�Iy�?��`r�P����Y�.���24T%=��G9���}@��8w�(��z���j��_]\��&VP=�&W��l�y=^b���K/)������(�+�03�,��������wS�}����g����P"���:��N���K\�?�|u
�/��d����(�:�:�2��-�5b�E����Vy��,NV���r�<Q��	�)�8���m��������S�R�;Kh��������eZ:�	O���p^S4h2�*D< �56��h�7Q76�
��xS��D���'y+����J���JJ�S=������),s��T���<���!(~t�Q/#���!������5�����Fuev�����n}���{����${O$]�
�%p��M:����*���MYA��q��t	-��%y�ZV���$��������.��Hz�h0�*X4Q�_5)��0�,�`/f���n���8@@@@� �����W I&`��Q����n^TV_\�?|o��a)��
Y?�*�7����<�i#�{����&d�,��::�z��j��)��N�jdhG@�M,���A�8{PS�h��=��<�D�;���nQ6���E�����hU�s�E�V�9���	P��rm��L>�p,`	�a!�"�������7��Io"�

"��������.���:,T_a��m�PaS����{h��w�S�@@`����M�L�!z��3t}�2�Mh��{.?.��N,7L����-����t�����I=��?1��8tG~5�@RK�E
��z}bJp��}O0`T  iNB�4�`� Fz����^:���R�����9���~q^���;�!/^'��W	�q��(�g�����n��$���WJ�,���z�0.^�D<�"�����4�\O
*�<\x�p�X��F���"����:ri�N���x��[���L��h"0����,�����E@��sy�IV_����~��:$��=Y����@���G[�V4A�]������!:���e��u)-�ZC�+�Q/:�i;�������t]�S�b��5�J�,�m���:������8�e�F��Yp�"��\��tt��%w�{6?��E����K�
6DvJ����@� ����������>0@{���4)y�%�@�"��T�%|^�+����5"o{�n���5�����0��]�-����2�.�;����B�|�m�	�����1�����B
T��b*M�X`10��<�����m[F�<�F�D4�=�W<.�'�� ���u��|S��By"����	�.�����7Z�
�M�������5{���LM]g�Ds�v��Y��Xa�f�^GK+��RO��d!?���h����bc�=����53dfX)���=+p�4k���m,�v2<���6�[���lB��,��4�5'���w*�>�f���}�?�Ypy&�YT1����)�uP��a��l[.�����Vv'�g1����7J��RG�����Z^���B��3ZV�����=�
��� �DZL3	 0#>x�rr��=��E���	N��9��|.����%@@������ce��V�9yw����,����){{���S�g�3A��1I�D/��i��DF��h�t���E�,����w(��g�O#n�{����Q�[������V�8aWBIh�X7�B���-��	������	���\�J���X�Q]l�%��������������6�����{G����"'����?G��WcNm�Z���eUk��tY��Dv�������]t��Pd7�����o���2��ba��������5�>y��<����B�4��N���;���>�J1��!�`��,�?vo8m,|���Bv�"~��|x���;Y�������V�`�D�@�����_"Qm�7��D���������{�:��A@@MB	CO: ��>xo�'_��
�������A�bQ�*G�da����e�������O�E���X��(�RD����	������^L(
���������f��9�|D|%!���!��q���'h�#�����	�8>y���	I��������X��#��K��������J�
���9���gQ����n"����k�(�/�����a��G���]+���O V{��&M4�h���u�v_�t��9`I�*E4���F�w�]��?JG.�F�/����kQ�W^PM[��M�����������D��D+u���G�1���l=��/�1U���b��$vM������<t@@;F~���O���d!L;�s�$�{�5B�"LH�&��A�C<RH�����J�[�o���>U���#`d{Om�6 �'�(8|	�,��(��q�>*�^9���{G<������� �������@BD]���vy��E/5u���cJOEY��	Qv;�>����{��W `f�w3�.��	hi�����-]������I{[�"�e��Cu,*�!�E���V�w�z�E�1_�����j7���w��������# �/��D{3{��F],������i�ySS����y�S���SX@K{O�0�4����N	@(���A�@�K��^�9������&�{|�#����I9)�� o�w�y�-?�y�S�}>eQ���Ku���\H���n�z��7�&X8��(8���V�'��
Up��"��W���m��DQ���|Eq�p("������W��6�8���x���x���qXS'B���7c�����g.1��@"������qB	��q��2������W���"��0�E
s�w�e`����h�{m^�C� ��7�h�Gy�t���=��+g����gT;VUT��%�@�����H{����/���P"y�����	���+�6��������[��V���V�3��S�!5��l�5PHO3�{� j���kRT��l�Q^�3w�s�jD@�6�t�KW��Sp�z��V���x��a��(jYH!���
���h�A���y@/@ �i�"���~�.^?��v�^���#��K�������"��N^=���h�=�v�jzm��e�=���V�2�HO^��~��?�����W�#;��I��DPN��'���@@@@� �����w I"�N^�F�wHv�"�P\�O^����D\�qD��W�c�7�@����'�)������Z:=�pR�
����Y���E<!��J��5�B�[����c���� �f���f�0+�T��o�C�g����t��8?Sw�����h��{T�S��sh\7$���_�&nO���0����WT�W�Z&U���T�����$������@tJ^oML��hBP�W�q��#+\�����^�d�.�N���N���B���z|���'8T��C���������,v�a��P�	�,Y'w9�b����c�$}hco�:%��un�8/SN��y�u��(`���5�� {��<� �z����:�vT�8q��x|�	~q^���.��x;�7�Ix{h�<~����T�!�I��G��"U���IE�^�=cG�   �'�D����Wd���O�pb�]�[�0G��~#�J�@�`��3D
�!��!�����n��D�����������B����X��AN�%�K�"�h���p�w>q'G<�y{M�(JXDQ�^(�Sd��CK�������������iA�d��\uS�5�g�E��
���pXZ�!X�^����<]P�t�������jr\�`m]z��C�
QIZ��������T�����C;>O���Iv�^�=�����@b@(���@�`��e�	CwA ��8��V!0�.m�,�`�D+{�����x�^�T���
�J�AC��(�>F�N/m�|SLu�&c���1�	�L��������t�����s���(����6M8X<a�����	�&X8q��)��z�e�z�������QQN��lt5�IDATY���}���'�o���dg1���Z����=F/��Z��i��w~��J���If��=�<������ ���'j0(<xt��m���=h�"$0����q��m�}��#�����y��f��
[`���3���P�E����/�61._�����.�y���S#FN��;Z����,\9A����7�>?UEu�u�=���V�f�iq�>	����e��R��<W/��y�x���x���9>:�Z����5%}R`1���^<�I���'��v�zjf���5�Jl�ZR�f*-U'F��T�B�   ��P"zf�@����e�I��@@��]�A A\O<O��	OH(�Toy�j`���*;�T�o�b0.��w����	\��+#.�������c�K���pBO�:�`���dQ'������_[��n]~/���Lm:�nP����EmM�
8�NI���z^�^���OU�C��XG������)��#M�I^Av&�mpR��i����5���@@@4&���@Q��@�D/�v�'������[���t9-�$��=!XQ)DE@���������1e��%d�'����v"��DC��=O�#�
e@tB��:��t�Z�������>C%��$�4�]
��qO$�A�D*Cu����=�411Ay����'L�A��"�8�	���7K�>�d�*l�&�����Ma��f��[ie��V�;�t�Fh�H��f���e@@@�GB���FK �Tn��y"
Q�e-�?��%�}�5�/��������w�@2�"��'z����B���N����=�-�Dp�+����m�DO���33�M:u�M��G�_%��\�������uSo�����|t_o�f�u������v7]�pR��=H�mK�p���O�J@��]�s���d��[2��X�'a�7��%n[f����,ZUo��,��-�-��}.�H���Z�D= �3��}��&O���������S�8�N^�y�
�L�n�����N���������gplRH�J1�O�����o�v�8a�<'�)����~�u1
	���6��2J�yO�p.tP"�����!�	�(�
����
��H��@9E�1Y��ism-]^��Q��9���[%��ZZm���	`x9������pB�(�����Au�C���}*��#�\)�~�����3d��0l��Y,qO�2�2%��x����e"�n�����<�x	@(/A�:%��G���7B�r������I8�$�/|@ }���g�1��# >������X�7����=���W����ZQn&��<Nl]���( �1��kT��7�mn:�^#�����K~��Dc`����"��,���t��v-�v��;-�qP�#c��\�q1���Nx�z�<V��eq^&�17K9��">/��^t{�6��H/���7��@�EW:})��v�Z,�d�=���&���X��q7*��@x����c�=n��@@@ %��A��\B	O����_��yh	�;�����.	��u9-�$�@�������/��v9�<�/���W{�����w��F��
@ �B�}��
�m�'���!���*a5���I��"' �F$d������������z'��'D@q�'9��%,�(�]D"�����b.�M���?(�=�+�^:���M.�D��x��q��6/��*��2�&"&/{R��D�o�<|����L�����c\���>9�9_��|�Z,��Y�Duo6�Y,����s��6���5���t��c��A@@" �D�P�H@M(!c)�����5���g<x%-*����nJ�!H�p���o��h�
�&����^��I|fO,`��k�8���Z��:@ �	��w-��w�ly����n���O`�=N�Y!�#.��/����9k�p��~)�#V�5��"��V^fo"2l�J�pb�L��g��"�YT�{_g����k�[n^?�8�A@s��=u��K��sY,��m��<�nZ���q�#�q�T'�wd�\�����c�@���?��bD��Ei]�#Jy�KD���Zo��ueV�����&�����}W,2@@@LMB	SO/�����]���� �RI_�86���A��!{O���HA {t�My���h�~<8+�N��qbA�M�>!�2^� �h�=�z���h���Q���@�����)�$�z�(�
D��|+]Dv��-@�dLF�����x�#��\H8
	����i,c������".l������z7 �(����MK+���FF�,{�9��#N�wU,��FlX�M7/�!�e�l����[r�v�����;>;-_����BIY����K%�^���i�q   �%4��*@@����I��hU�^����p|���P-�.���j�0�8A�(`�F�)��'����qY
��H�b��g����C�wT!tG����jW�=C~���a?
��oxl�(�����EK�=��yw�xW�-|�Iv���G��)e8�a��yl��~W<�>W����x�(�y���[��G���3)[�"��fQ&DH!!��"�0��
y[�F��c�!*xme��V�:���6�4�x�P\�+��']����������t�no��q%m��)(n��l"�5��a��%�6%�����6��J��$����N	�!^'$�U�D/lKw����\M�jh
���g��|��n�t��A�Z�a[��$n^�Kk����>W7���}���W���l�����`��=sU���|�G��H3��~���"-�r    %"��B `\_�}�z&�U�m)���������Z�aU82@RN���)@@ i��wY�E�&>J|�X�R�2xy�N�k���{hY�Y�6^�O�����0������,���+}���&�"�I�&o���Bb���������TP����K6uZ��,����qN�E��F���o"���B�"�(�	�)�<��%�0��:���q�;����}t��G�x�,Vw����/���:'�[��P��|/��B�^El�GZ����~dp���PD\. ��r���t�������%�1bY�=�����R�tt���>�e�Y"�[�"�������9����|\�@(m)��X!����@���u6,
x���ws,��*�%����^S�����d����������O��.��n��q��j��
�A@@@ ,%��A&���7|F��T���X���c�S-c�-��jvF����,3�q���m��?�_��������Wu��B����YD!^����.�
%O)���,�������E�
Y������A�����7��w��B"�@
����+��pI~�"��p-"�H��q�W�����6���5N_M�*����YD7A�'DD��	EL"���3"v$�5\�1>����|�4�y����F&��F���e,��*H�M&�/+
]�+a��6N��JM�(M����Z��s��h���3�`��|gn�!����3��f�`��kf1D�]E�s��K"��w[��m6.��8$�7�o��������{��(�������m���9i"����������B�������@� �����Q	|��9j�8��};���8G��P���3������`l `F�w3�*�sH����������t��m�>��������N�����m��ia�M��L�����>%\J/|D�G��Go�T�}.��<R%,�����Ek��l��.������,�������
R���� a%F'�A�,(�jq�jvWC������,xc37��.�`1�"��+��<��R���%�^H�=s��x5�0j�x5������9��=HH�$�o������-����
��������p�GM���L��������B�����0����� ��
��y�����u�����O��Y����R�Z����a��0.H��t�e��b�"���u����m�N������k�������n����]e�([x�|J<�b�RP��B<T8����H�]^E���Q��4l�! ��U�V���Xj�P��h��H��pB~:�x�<V��.,�F^���6�DX��|��/�-B��]a��
l�"�~��6���%U�}����hi�1=��7����y�������Z�.l�
�XO�����������i��1Cl��t����m����DCB�hh�,���w|_���#�#������%�2�2f����f7��H�����1�+=���!�Z/(X4!���Z����ky�[Bt�%��'$���W<�K���w����v$l�,V[����"��
ab����B��&G�������/���w�����"����{�$����c�r8J�\���K������}EY����!5�����������Z��{����j�*a��|�.�`"*p:*,�����t�Ci����T�6��������(;!��IT�U����
:�z4�����X0Q�"�z�*���U�uH��2q�L����}q7�w�����M    �FB	52H�������>�f�����_��R�Z�l�?���6l�`��a< !`�!0p
&'`4{���WBw=O�xB��5�V�	�p�L�v�c
�X���}�>�[��BE�YT����C~����"�^�x����.^��/���+����������,���:�����e:;������o���X�(�k�nu����Z;�#�O"��g��,�Do	,YD!i�E@Xa$�T4L$��x�X��T��Ds/��@�@�����xz�� �lv�Dt\Qcg�D��]�
(�p������D�����������
�A�N��pP<h�c�[�m:����6m�;=1��{��}bAQ����j��XH�����rd���uA(8���hFB	�P�"0���N����i��/}��-�����1S��?��il��t���<pf&`{���q��En^0���<�`����^���'����u�,J�O�bCm���Ep�7�z.��SD"�
�9�(�
s3X����LEQ���D$�5�x�e�D@T�GO@D1��Q//��������p1�g�)Q��,&�	�&"
��e{�`7�W�tm(;.�#�*m���5
�{{X>#.���x�x�Q��k����"����S��8�[��.�����f��|�
�%����9�����QIE�-����uy�|A��S��S,e��k��F&�#�;'"��u��/p���F���8,����E�u,�ZX��A$L}�1:x��H��TFBwT�����]f+�bGm�|[Lu�&P#����@���{td���#�$+}:��T����[���3���b�a�� s���I `R�j�"���pBU��)�,��ZL
,�|_�/�^e/��*����P�y1+��RB�?�egLy�P�C�0����Nc-��`��_a��G�����iR���Rm��`��u+-7���0���G��@����\�YH��%~���^�2F�z�� �*�s�Lx�����x��������K�J���3�yW�9-�a,�2�\��������&���h�jA��k����e�Y���K�}$B��5TV5�7� B��"�,a�$�����������]�;�����.�� ��� `z�������Ju��E���G��X�Z�����c�@`��$�@���G?����j����q�o�^^��~�5����C\�B�o*#]6Y�RD,���S�*$l��I�^"�9�a;j�EM�tO"�s"o+"BH�S�� ���xN�'t�M�Dq��(+qw�I�����AA���L;��!DP�EX(��>�c�)N��D��.�+�O����	&����u��qIv�0�t���J�A����J�����X�e��R+'��z���*�0Jjm�k���'�����_���WX�y=!( �HVT
  iOB������z}���(2(���{Z��B���3"�C���������)��!{�f�e����7F}�@��E�LQ��o��@h3Z��"����x��)X� �)8MO�����(�R;��!�s��-�=��8b�B��O�	Z���]�w��=gF�j�0'�����[V�Du�Y
�7*��oaA��'�v�Uz����������=F���[�	\�iTD�����L����g':���^C(1��A@@� ��u\�k��F>�����i���=LLLP{{;577SFFUVVRmm-ef��vI__566������
���#��3�t�/fP���������W-%b�?����,c�j#gD��#�}�t'{O�O��N`�����^'Zxe8�^'�9t�,x�0��=��l�=4�\Jt
��E�V~;Xv�Ba���^V7�j,�F�y��/��~b�}f/6����,����H�\3T�b�\��R��I��H�NHx�|���	7fB���]��N���M�E����
�d
�9�6}���������R���9�#�l�����{�)��(   ��P"J-��_������*���'?I���w"IOO}��_����uOyy9}��������$��:+���K�=�}�+_����YEy���W�JUUU���JH���b���]cO�c��Vm��H�Whe���e���Z�:^����=�gcO7�����V^'d���=DQ�{�
���H�@��������N�u{�E+�:b�fR�����^�+ ����]���~zXL���x6	�P��	OH9/aE�dZ<u'�^	KrUBg�w|�cT"���n@�82y�P�=C9�u��M�2(�w�TB5
W��m����&D@!��v�>1�����>���;���a�_   %��A'n�n755��u�hhhH)�Pb���t�}�M�������O?��O);;|�FF�~��t������E���]�h���a��[}aa$ ���g��1uQ��%>��EZ��)����x������e�h	���%�� `\�����L��32���%V~�JJ8|{��b����G@�j�uB��#���h�e���q��������	�Y��)Bg@@3Z���w�������ary�L�
N<O�e((DDQ*b���/�K�������MN�xgr��a6H�#��B�,x`D�� "���3��u��U<O\�k�S�����������������$��	�����^�J��r���Nu R���s�h����D5554000+��;����z�


��
=�;v��C�B�)//O	�1���x���{7�\�rZ��E��w��{�v����f-d��e~�6d��Z�hZ���h�FA 	���q�1�t%{����N�����-�q	���uB�,�����G��(od���*��T\���{9��#�gN�9s��
S�80���ab��a�}b(i�����g�@!�����?6r�s��'h��i^����1����y�^1�������B�dY���������h�u�F@k{���@@@�� �0���G�|p�HB��PBD���w������������������~���_���k_���$?���+!<���5����_��,]�t�>��O��/�,B�6mR��J9I��B�����c��/�����f~�6gn[�(�x�2�L�� ?�{�Q���(3�~�����]�+!;�	�>��e;��&��P�
s&E�b�H���#��2 `��w��t��0�vr�X��mnE��Jx���PY>��	��H��k�;�   `tJ}'����G��������sD�%^z�%������A��~�3�Z�Sir���B��o���/+�����C�Z����JJJ��D$�g�����J���M�{���7���T����i�[@�V��8N�����|�K������,Q�tdl/�|��i��S�����tk�[��rzO����g�����c��@@�`�z�!�/�
�Q[��:|��uA�@Hz�6��V$Q��@2�}��z��0�wX:o"h�-�Q{�����"$d6H�d�{���v@@@�GB	��I�=z�����G���af%�%���w�3�<3u�!.\8uz������������������S�r�O��O���~v*��'��|�S��'����b*����G}t�ZN���i�����g���?e���m^�oE��C-D����c_c�����,�������Hn�������X�")S<x��
7��!	��
9m�4�D�6��${7���� �d��{���S� �'�r���[����������h!����P5�v�*b�6H!�d�{
���A@@RDB�����7�x�n���Y�}��_�/��S����������	��9��{����{nf�����	�3�d��e���o*_NDH!���&�#�v{�r����(=��S��A���h�:���x�'��v����n��6=�����(����'�_	+������fP���>zg��b��*
�	^!0p
&'{7�cx B�� `r�w�O0�!�b�^~7E=����bR@�74N����� '���K��1��h�0����^��F@/��n�1^HJ|�_~�e��s��(�������"��X�rc:�P�����~���z�{�����O]�u�����~��������x-���BR����w�o����s�H]Rgp{���B��[}A�g
%��o|&���Oc��pa�=��"��H��I;��f}�Vg��Y���k$��i	��M;��"{��	 `Z�w�N-���%lGPH!��!�N�i,�p���B�Y��{ �a�(�"�����!4r�1����0���:   %"���BA�D^^}�K_����$��E#�x���I�]�P�B0m��[�������T��c�h��u�����i��Sy�7�rn��n��q��������?�i�:������\B	����X��{�1��8~�~��|����
�2�p�_��:����	^3���K�n����@`&��L"�����wn12�I�����Oz��'��/{�e����\�����y9�2����z\L���x�]%u�D	���L�W+��z�����z,�M���X�L�\�R+-��]
T���{?����������>��{xf�<����*pp�����h�C���>;n`���_&l�u����)x
  ��L!����_�w�^����}��p:��������CHOO�"14n����="��9s&������c����WY�v-F�)�D;&&Fko������cB��-BxUN�:��o�Y�L�<�������~B5*��j���>��C�-�
���,)IT��F�;����&����Gu
��=�%s����^<-	T���:����E��n.{��$P�����Z0�������	�	�����P"??����]w��M@�LKK��Z�y�f�U���1c&N��1AN`ED(1u�T��;W�v�D����*��������)))�0a��i6���~9��������^E��p8���{�=E��~z|����B,K�������h��,=K �s����(���aBQ?���PP��d�j�u�D9���]�}��W��q!	����t&��I����UF��$`:�w���&�*��W�����Mg2�H�H�LE������Cbb"V�X��5k�M�&�����]���c�a���K���D(!Rv,[�L�...�4r��]���G�&99�?���^�f
��'�DD��}�������G��w�}�����H�/�(��!�
�W��V`{f#����[�\F���S�Tq�����(V���D�6^:V����C��+'
����%t��ei_-T'�/��8��O��n~�$`���()�#�������	%@7J��H������!o@$@$@�L�V�EEE����!�h�!��F��f �>�9s�3��(��3f��;�#"!d�W���w�yG+jn����}��H �y""EBB����O���/*�x�5k����2DK+"�����Gu��B�W�/K��~6�^���O����L��^W�q��s��uE��i4��dh���_���D0=���M���a�w��8�LO��nz�$`���0*N$�������	�	�	�4�ZJ,_��>����"33S�[�jbcc}�_x�\�p�-��m�����Ge�_��*J<��CX�r����Pb�������\3g�-J��)3�������[��O��W�'���~���?q�N�,�����!&�o�w����;6��x(
|��C����r!\6�>�}����	���,$@$@$@$@$@$@$@$@$@�xG66���H�H�H�H�b�"�<x06n�(O&�h$%%�u��Z���C���!���_���h�������8}�4����\V�"�����iP�.�v��l3�������{w9�t�REB�T{zJNNz���i�}�>�����������~~�J�%o�n��i���z��?�wD���P�w�����(��X:������.�!�����	�	�	�	�	�	�	�	�	$@��AP�F$@$@$`�@�%���eZ���3.]��&M������y�>**
YYY��M�6������Y)#�-:�,���O>������h����"��H��)��|���1j�(���ID��g��%K�=���W�Jy����������F�n���O��}��x�o�r��Bid,�3�w�{��+*d���x$         J�@a	�	�	�@���P"//7�X�fm��M!��C^BD�%<��������=M�q���8D�7o�y���O�J<��sx����G�A�v�d[�����������>���
��"���A�����Bv���;w�Z���S�N�+��������p�+=^����7m�8��-[VIDu��f���g�Up���!n���x�4��	��������&���2���H���������I `����q	��������I `����q	��������I�H�H�j\(�� 22���>��0b���/==C��mQY�x1�x�	���H	>-�D(������xIh��m����l�U���1i�$9$l��<�N�:�1!x�����={��[79e���HHH��V�OB����g��=�
�
�7��jcv�H0�{��k�������QY���H�(�����b�%���$O9�����P�2�'s�-��OO���B�sI������OO���B�sI������OO$@$@�N���999������g����c��:���C�����'��$DT	Q^z�%]B��'I �Dnn.�p�S�|�M���y���B��I�!&��)����^RR�z���u���x���d[�����1c���O?������V�OBBe��.t~j�2��
��W�vEwat�T�be�<�S���Tt��#N��8	G�R��
8�7��R�2��	��_h1�y|��=X�J&'@7�y|��=X�J&'@7�y|  q5.�8~�8��m�a�7.\��������{t��Y"8p D���(����/���������J�@��)Q��~+V������{�����U,��k�.m���0�>}����/���7o.�Xm?y� T�>*�����y�cvLKh�w<���v�=�|�����{�&��z��F��C��?
�T0�JCb���D$���#����6��O��u���	���5@�!@���yS���k�H�H�H �j\(�v��p8����Y#���o��S�L�sE�|����,0�g�J�QQQ<=E�XZ�h�i�<z�P����3g�����gc������O>����+��9�M�6��t��"�w��~�wF}��+����w�8������a �d%�����/|F�Kl�v�7�G��Q�
K��odYd�r��$0)��bR���$P��*@�0)��I
�c�@����KH����&5�M$@$@&!P�B	�e���X�z�D�������c>"	1(�O�n�Z�w��m��_��D�����A�����L*�
%RRR/O��#�`��e��}��>??_�x�z�@���ZQ9x� :uR�4��"��7o�F|!��L�<�-�L�8��	d[T�������x ���)���z�}���w�	��'�vo��+�����_>h�O.�M��/>�W�S�6����J�I�7�Z�/'������Y���2������[���j�}�L��ne���V#@���y_  �Y�"��*};q�D�Mz�c�������5d^{�5L�4��~v�T(QXX�	�h�SD
��K�J1��3g
o������H�5�����X�j��b���)�)**������!������{������b���/����O���*��2o
��<�^��e����wx�_�q��B����=������������f�~f�n�7������C�n\V�`�������g���N!J�/���ax,�{�rKQ��5�EA @TnI!J������H�H�H�����`��o@�!��=���
6�7�O�8��e��;b�����h���w7�^J��B�0t�P�]J��
�������3&D
;w�D�v�|�=
a���;���~!|i=���/7n�����m�����z��=��QWp�4��5��h�����0YY��U<��\�=��wn��9o����G�p^l�~����c0��n\���9|��{�-8��EM.�W"�#���,J�����	��Z�+gq�����;��!u��
]��H����6>�n9�w����0�������	�	�@
�5�����M��p�B�_�^���60l�0$&&��g���?��IIIp8�����STE(!�����#G^#n(��M�";;�n��111����+������(��j���0���u��pUQ��
�J��6�]iQRvn1��������u���o�
M|S����_���V��e�>�(�����\9j��-8�|�j?��Zt�/�v��7�a��!:�`	\Wu���S�1��$���W�^�g�ue��H����^Wl�{�@�	���M���@�����-x6�{�	s  �6����;@IDAT��|������M$B	��z�UPP�\�+���W�����UQ��U�aA@�^��N Zh�����wf1!eg3��~������{v����#�t����jEQQbbbtG���o�^�z>|8bccu�q�%U�TAvv�-���[o�u)�����4�y��X�`���w�}7�y���]�n~����\<������oK�T����C��+��S�N��u���=]��ev�x�������x��(�|gdd(x��B����WZr���������������"�A?q,:J�]n�|���a�Uc����#P���Gbq��U���]m��1��"�a�����������)�fZ��aus�����X��e���	0 �����	0���;��K3�`&�����cg�`{w��fL�	0&��# �P��!si_�X,��k�n�
������Y�fHLLti�.������e��?ok�I�&HII��\"��J/�R�g>Rt�y�	�_��������Q����q��<.
��p��g��$��Us�Em<&n��{���g&D������h 6q�v!
�A^�-�
d��a�kOD��@i�'����@P�?�d�gH 1
i$��N
�n�`���\4��`�wo��v�@�`{���1�K��/��3&���C}�y~L�	0&��K ���&��s�p��)dee!!!����wA�K�{gaB�����j����t�@j�8~�U�)/X�y��`&������	E�P������4N�>��'�#&Y�P�hB�Pm�~�i9��d��(��^Y�}�:\PO�-���VBL6?��f�=&T��]t�{�8������{b��@�4���)�'�(���L �	����B������{"7����{�,�	x��� rL�	0&���.�%4q��9s0k�,|��wv�2���c���7nF�m�l�;#�`L�m��a���hr-�B���kx>u��>X��{����.0�����/��w������f�hu�V��&���G�P����&��Ne�)+)��N��7�SG����h��H�y���f�:��Bq�U��L��1�BuT��A�����.�"W�����XB	}O?�j\:�Jz��}s)���@�{����3�`{�,On�	2��@^�,�w�����`L�	0���*���9�s�=X�|y�Q9����3�O��O�:�g1��'p�������g���g������q�����/����x�(7�(���H�|cd����z7^�q]!��/F����v�a�c�')����V���b�2�����`������w-L�M���\lc7���B�V������a�R3p��W�J�0Z���B_L0��X!�x�\�+���+�9�h����cT�I����h��I��� us�w.�B�@ �{���1�`{�/��	����/is_L�������{gL�	0&��&�X�n�us���g��y����1����N���O7���������}T�����a��.�F�sOE"6�X���n�&N����$����lt�f.���16��"�F3!���h&�v��*y!~����I���Mn��a[�	�V3mB���A�@d��Qd�
�Nmf��H�2W�nf�~$P���ch�(�/�/�Q���gJo��Xb������t&���<O�	�����s�L�O�����e~ �����%`L�	0�0"��������E�
a6Z�nm���aC$''����HOO��;�	+�[�lA���P�_3O�ev�x������x��(�|Od�Xe��G,��i�����w^�D�F���0r�������?$�(~��tm����n��Dc�4R*q�'�AGFha;�=2�C�������jC_�m~�a�p�<F� �)�),�A�W�38�\�isr+�8�G���_��E*���Py#����5���S�S~+�@b�����0+����OM�s��i$67�$�a!I ��=$!���@�`{���a0`{�d��	��Y`L�	0�%����O>��_~�i��]����c���O�Y��=������z#G���9sJ���	0�x��<������o�0���2�Z�����+��sU\���l��/��b9e�@��<�����A5��{���2M�^4�|�fl�-�(������V��\�����{�����6 ��s"����M�$�!Z]�K��Brq����j��>�3�!�m������Y�a�P��P�1[�g�;D�z
w��#�!��>�Pt�}�wo���%�(��H�oCG��mx����^~Uw����=���+6�-�L �	���2c�l���<&�}l��g�=0�@!��(+��`L�	0&�|.��Z�0�/mdj"�%K� &&�R���b��I���oK�n��m��)��&�<O`�?�������}�IN���b�t}e+y���N��"��{"�j��/M�q����/�Lb��E��f��5��(:W�P
���N���������GF�a��(�<��J��.�jT��E,�5
��yzM��E�0Qz�6`{8,��������o��7��sp�� Z�=�$����3������Y��2�a5K�z�j`�xG�@�t�Z���������K������FUf�|��m�a��	����asWL�������=�!�w����`L�	�!�%�PZh�������S�N�e�����h��%222le?��#�z�����L�	�N��@E����r��6�Q��Q���H$������w�/��o:�Q��\\����8j��6,S(�Fk�;���+�9���
�I�� ���#*�3T=l:IUI�b���v�����*�y�?y�4�����3�o �["��yZ 
��X��q�t/�M����g	�b���B�,��"�D���	$J7���G,T>+�T���h<b��D!�L:_0�P'�/{u�<?&���qUxLL�;�����[e�H��=W����`L t�\(�|�r����F�G�X�z��4�L�����V���/�����`�h�-G��d���B}[�^�D������74Wo����P�!���8:�u��+��A���e���-#�����dSq���CGU��g�)����t���c���qs;H����H����$'5�	H���ut�(�Kg������#��������`$�%TAU�D
�j
u��d��m`����M�b��~j�����
�j��2[,��	$���`������]�>F�@��R�N�|$����C�NA����0���dI��= ����B���+X�Q&���rYxPL�	0&�B����[�nE�l��y����G���^�SO=e�z�����+��+�iL�	x���MV�N,;Q�p���K�'��?M�z|��D��s�u���	7`��JcF�@A�����x���e���|����hs���N�T��M/9�����9@��AD��":u�����D,;7����id�[
��/fB$b�D@��0)�-4 !
QWlH9Q�)g�<��OQ�<���3h&���]�"$'���c��t�Z^����(P/�+T�e��H�z�S���������<O�g��5�t5>g!K�W��ybL ����b�P���������@`{����2&��B>JX�V���TEEEe�K2�L�0�����O?��q��9(�YL�	x���?��G��l���h����"�y��Ft�
��������\��P�;	��c�����9UQ��n����F9,W!�D!=�x�����.�'��R���<5oY�y��������(�P)e��E����f�V)?���b���'��8�dcD���������}��?a�:�)/"�c�x3�I�n��o$}��E�W����O�?���.!�%���P��sa�@��=V����`{7��K1�P ��
��s`L�	0&�|.��P�5
s�^t~�����w�1LH���.]���?z�(���Sr�'L�	x���/��Ou$jHU��>T���I���y\��x
�K�U��{,��QZ\]�}_r~1�J��������%���K��������_���D� V���?{��>���������]I<�����=���T����#���S���Th��j��_�4�Y�Om�@T��R��h�=z�Wb���r9|�,O�{�~7�k�D����.����M�B.oGW���*���k�'��u�V��i
��u���Pg��c�J��=XW����'���<3�����{����	0&��@p��Pb�����n�=������@���@f��������_7��L�	����U:���D
�B9�B���)z����	�o*����m�v�t�D��H���{�y�����u�\E��3F���7w-�����X��Tw�"��3=�Y���K'mZIh���p��>��=����C�
���	�c.�8�lF�/�Y�i�FO��6���y�*��QF��2vx���������+K�?�s�(�k�H��x��3E[������U��1O������L $x��CO�	�8��_`�(E���>e!N��=�����`L���"���������k�-�~rr2�}�Y���u��ERR�0��Gzz:�O��/�����v�z�j�h;l:G�&Mh��U��	0&P	o�x=�t^�i�[���i_smI����&
��+�qC���h������Y�N�8}F�w��\�>E���EW<��C�
2d|r�3�dvtX��]�����[{�
{�X'/���$<�g�yg���4[zb�n�������8��4�V�Pc��I���p.x�����L�G�S~�Y���H5�H �]�t]W*�l��p����x���+Ms&�����$�	0�w� 0��!��>k�3el��`L�	0&��I�/B	M�u�Vdg;v�������;\}���6�������=�c��7�=���5��)����7ntQ���q!�nNd�l��6�������'������^'�k�/�f�hpW��I$����AE6���c����P�P���"I�8 vT�b�������CN�
�H�������{?�$������$�!�v������>H������%�zG]�=�3�����L �	�b�A=a<cl�a��<��#��vK�cl�a��<u&��`> �����!--�������q�UWy���	0��'���C�d<�t�� �Q=
�hD!�G��
+n����6e=�g}�����B_�5�������J/��)��K��c����icT'�{���G��oa���a����x��:��8���F|��E^�Y���S�������	�(u7\'\��
����+��sHh@nW\84��q2zH]���*�j^���|
��w�����z������Q{�	���(!��^��O�@�`{�%�	2�l�%(��	0&���Jx*7��@����kvN=�����o t�U�;Q�<�>�l��26n%�+QnQ��;��;��
�M`���Bw�n~�s���%-��|�S��g�7"4/-�n�"�G}�����
�<��fM�Q�������)�X�G�C��MX[�:Bk��B;1U��O�s�x�r���RGq&���t\��6������s�L�	�����XsOL�������?��w�����`L�	�#�%�����,�Z�X�~���N��w�h��`L �����5}��/R7��,��"������+6,�s�2=]���26�xb���N_�������k>��{;�mB�&��{OFT��t�Pa�����(��.:5!)�i�^��T�b�X����3>-�m/�x�*O?�����X<C{������?`�������
{��B�#1X��%����d�6��-w��(_��^����t�n>g0�`#`���m<^&��`{7��K1�P ��
��s`�������`L�	0��E(��P�`L�{��K��\�wX�|�_�\��*�.4����y���
��6���c=���}�~�2��Gp�7!����K������{����6t�������U�g����e����.y9(f+$�w�.�D���b��d��i2��*�1�� ��"<�JO���t<G"��pZu-$�	
��&]��b�����I��Z�%���{���e�& ���b�(m��������9py&��`{7��K1�P ��
��s`�������`L�	0��P"//�����}�0h� $&&�6{������x9�(�R����Ny4�.4�xL4[9n�NnN��Xe��52�V�J���/���	���"b��K����������,��������E���jfZ�a���j�Y;w�m�W�����A�&T��@��y�|�B2�Q^�M�#D�����[�`c�"��F.M��K��"�DOq��{�K
���Q�0�k�J����`FKw��4�b�0� #���A�`<\&��w7�qU&d���l�x�L�
l�n���L�	0&��@��"����v��m����\W�ticl���0`@��L 	Z�i�	��;=g���Y������T�V^�T�D�.�n'�K�:�r��WZ���7���3���=I��|9�m�����4O��Ftt�xH�T��[���n34G#����B{
����~������9T�#���n���x�����l a�vVw"K=��G	f�zc��j���l�������;d1Nz=I@�f�����cg�`{w��f�L��=�W����#���/.��`L�	8G�/B�&M� -M{<PU����KY_~�%���z�f���@����kZ����0��Z/Lf��4���8��J~�?�1�tv��"��H�&�J���V�����Q��LZ��}s���c�Jl�,����>aQ�r��98�n@.�Y<v(��}�c����y�a%R������0���
�����$����G��C�:Ga&�(p��
�k�����X��W����&��/]�$L��D'�g0O�����=�?<��"��V���
sl�a�������Zn�,`L�	0�:���5k����?��������}�;d�N �Bfo��d�
���[����J(I��K����g'�|O! ��[�V���0B������Y�E���a_��v���O�[�"�����|�q��>93O��_��T�"O;(ZI�����2�>�-v�yQ,��S������f�>�����p�x�&v*�����Vw���N2��2cq���h�b�4	B�;Mt�
�J��_��&����<���t�pd�����cc�%���Y��dl���:<6&�Yl�����1&��`e	xM(��O�c�=V����-ZT�>h�1��Z�
-L���K�j'k��E��]���`��]�p�t�'���tC�}a��S)|�U
������$��������d��&���"����p{�%i����q�BM8:��1�t]I��g,_e���2��U��HI�����	x���K���Ae/�+K�G]�l��S�S����5E�q�O�!�x5������Z�0�>��KAu�&j���������nE�Q��8�|5��� ������(��J�����gy���4.w�^C#��n�`�J��uex\L����=��[d�J��=PW���<O����L�E&��`L��	%�����];���\,�KC3v���G1�CcC����0F`�����}�n�HS�M,�������W1	�������u:����b��H�a�4���+�9�����P�^��W��m����EoiHq����|+H8�|	'���b��b������#�%&��Rl$�[�U�d������&h���*�E"yj�����Dz�NB�$!��
)����Q�a����9��r�3���5�Nga8�H�+�9[=$��)������s����8M��h)v@��\h��9�	x���{07���{-�	x����s�L ����b�P�`L�	� �	%4V�/�Q���}��w1e�W�r&�	%�'_5:	�A�jM�����o�<����s���1v������6���0�t�m0i�|d}�a����'�^@s����64��W��Y	�o��/�9G��X�,�u�Y�1��*��n�*�?[�������0%�����+�Pfj'1$t�����������Ido�.b�$�����j&2�4��H�U�@$�3�3�ZK�b|9m��	�%_�{X��I3�$�����Cb^"���%��,`L�	0&`#�U����C=���W���f����=����$	������E�
0z�h�1��>aL�,�{�����&�\�IhD���H���S"������k�����s�`���K��;0��RK�7v(Kn�G"���t9�Cv�������AD�_�1a���c����������-��V�`�I��k^Gb�j���h ��e����F�����+�q��Fg���KL���'�	-�Dh��bG���>��?	x��=��A-�gc��
������}	��m���^�D����J��Ej�&J�|�h��y�������h�K.������=l�D�@`{����27	���	��3&��`	x](a��&M� --������"���������!�(�Pk-juB�Fi
������G��B�(���/�A�C�	�Km���=����M����9�����*����_F�wO���=��n!�����|
�z�G����x�D��A3km�1^��&hD�"���}}�q������Q��3�����B�+	����P�H���<O� ����
I��*O��h�<��c��{��3���2���bC
��eI�����A1&PB����0��'���K�dL�	0&�W,��+~��	x��U�`����~�/�j���f)���Bz���7^�Y����b�2�a8��FR_��{�/TV�p��#
��*�%_����c$���t
���2Z�*�?�����p��:��'�sp��/�(Rsi-���(U{�Z��O�����B��C2]Wv��WFx��,��M�t�D��������hE�'��L����%����.�Q����]jS Q�u���^��R}��B�����LxNL T	��������@El��p
`L�	0&�9~J�={0�LHNN��l�%&�t	�ec��8xz�n��q�U��� 4���tr�����o��w��X��@�%t6�u��E�	��ur]O��SF�+i,:���h`���h�(4�-z�Q���>xR��D����,�N��$�8E��$�8�2�q�8���#�f!�H���W���fz
�������\l�*B���e��;�s)�-��8������3-�@�j��	������o����p!����+l�����0,�Y
�n�`il ���|F�{����#&�<J����8�1&���zyxpL�	0&����_�AO�'������G���<���44�qu���T���)mC
h!��������@�Q��>A����qi���HS�G����\mE���@n���$��#�~�m��m���=���~�kP[`�������Q���B���E�HksU��Db��O�D|�S�:Cb�,���C�����*HB=�(�9�jh&�!G��V�����}���Z���
v����kD�u[��<��<��~u*;q��Mb_y��>�<M$�!�-��B�� �!�rV�pX=��jN�����'�
a��LBI@���I4!���q,��x����x��y<(-q��*:�
��
�i�8���>���V�c��I���,8���d�'P���`~#`���6@��	0�`{�Jn�	<���_" `L�	0��&�B��^><p�������X�5��Ftm<��[��x�wQ��a�����)m��&��hI��>f�-��{�C�4�	����x��C�I���X0�V�n4"I���8
�����~���_+����1�M4��_�`���#�e��l��������] ��%*�d�Gp�0�������$K=���6Pw�H`/y9�"�-�?r�R#IPPM�KB�f�����H��q�Q��C�>!�H���$���|��-�HlSJlEU��,C���_:��d����k�����s���r�����2�$��F�
�&����6�������h]��=���NR�������h��2��'����v<&�J`{/M���@h`{����1&���7J�{�&�G���a����G��~ot��&�;���*E$��GAQ")�A|�k.������o�*#�����X�|Aq�/�:��M�{�o��\�����"\���X�k#`�o���
n���s*���G�����ifj����<�b!f�3.���O��7����Y��`�G�(�u������vZO'�h`����=�s�g���i�f���[�A��3$((�����un"A�6�M�Phe�BR[�g���$�HW�����z���$�����S�&Bw\oz�<`��i�w[��w*�H���
���������$Yh�N���g��=����$�)"a`,����s�- U�-�H-$�F�.�_�0G{��/������K��r��B�@y{�y������S����{��5��	0&���?�P���O&`������8|v���E�c���?���d��U�?�k��^��
��{�]��	"�k[���Y)�Q]�j}4���j�"���7�����R���y1�+�0���_6��|����3=�>�s��|C�g�\���I��e�}��]c����B]���2���"�\n���e�s�����1r���>P�}�2~�C�/K��������"a�
�� ��b�c�K����v
Q�'��<h^|q�'$�&Q���/6#�4&�q�oA�!��	�9>�/���>4���e��[]x�]���bvao�:��� )�Xr��8�!1NWqzJ��h�����E�Y~����C�g�5��w���wf��2��&������/l����<[&��`�&�B	_���@8�ukH0��w��(�F'�u�T��=l���CY1�H!�eE��)�y�h�L��ku@�x�y�/�a����x}�����>f~�1����U!nz���A�{��=f��%��g1w����2\���F!6��
�@���g���y�P��:�&uo�V$9zd�����@����R���xN�r�B��AQ�~\�P
m_���L�A+�C@8�<�,�-B���.72	�cI���C�Q�n�����Sv��3��hb_����D�a&��@�}wa�\�	0'	��;	��3� &�����CgL�	0&X(��Cd�&���zl<���������bj��j�G���
k����jg������V�{>�w��w^s���k2ZH��C��u�����vmM>��
V��Ty�����x�������=����M��$�����
6�|��.qe/�mF��[c#s8Gav+[(�N��Y�Q[#u���m���H ��t�QO�'���q�y��1G"M�nRc���&�m�S-�QP��QiaA�H���4T�g0�P#����Pc��a�N��=�W���<G���s,�%&��`L�"JTd�)L�	�\�
���������0��-H�jM\/�x��-,*]6!�o����SD<�`�~���>,k�����E<���2��"����c+�z	T^y!
QQ�y�����������F����n���g���jH�|��+��N��G�4��	�n"@�\5��[i�{;����sj9����j�QBT��5�z�q�bQ����P#���6�<:�G.� ��z/��X����<k(�+ X�Aq�6���!g(��%O�u��c�����}���+6p�_T�Ss1�����9���8W�nvX�3�@����{�0�yd����z�)��Y���3$����4��7���'���k�3d����I�;`L�	0&�
,��Un�	����g�I���8g�q��wLD4�kuB|T�����aTaW��@E���nF����7F<�^*���wA��9�bN�_�p����.�����^5��i����go�{F���gY0{��E�+���m��
1z����/y�8�&��������D�S�^	q$��$��[#P����r���8��{����jO�QSJvq�W�%
�K^�Q�&��/4C=����^�Ok���Z��KW����#��&���|�Fr�sHW����@.'�]��^c���~e���������
�c{�y^�jBuW��k��,�V�N
�T�m~���,����A�?���$�Buz��WM����`n���������8��_��$�^g�w�^�[�Kb�|�G!�j����ui���� �.G
�Gh`{�u�Y1{���Q�4&��`L�SX(�)��qG��'��\(843�U��-4G��-a/m*���x���i���Ut�����)�}��1�������H������2����P�^`l��q!�|���7�]�q�����y�����6��>�b���e�kQ:�>N�:=D�e#��Y���h���>-����8y�tC�Ior�P���%�������6�w�s��HX�Ea�������
�!j��"4B�!Z��
��C�>|)��l���_)���?LO��i�M�j�Q>���{T(5<���#Ih��������b��1��!6(��"AH���7-�Gw�DM�Z?�Au�nH&D
q�&K�G�
5�h����f�6qR�P��<93�	x��=���7�\5�Z��z�����,��H��	HQ���%����{���]��8
�(Q$��#t����Z�L�@e��+#��L�	0&���;X(�=�������k��BrX�B�gm�E�)
��hzE��#��>������g�����fb�����;�t�Z��&�ml���)v��/�X8���L-������W|��=��pP���j^1����,���|��	W������(�����\:�i2���H�iml�����}.��(��Wp��g��x����(b�0	����.tT�|�O����X��C�C��e��a��_~<��>���~�xb7N���8C[�b�I�j�C���h(��y�`7��Wh�<��Oi3KGlU�zq&������
y>�T�"������22�:�%M$�������\���9ib��Lo������V^�E�w�"��Gz��.���(�����*j ��hN5�;Hu��O�:�7�q��}������|>lV�`���`	�Unz���Q[h�^$��&��N'��O	���7w��J������s&��`!O��!��<A&�y��<l<��Y6��M�@��MA���b�IBD�B����l�	�9�NnC�B
m	15H0���s����x\|�UL���B4C"!=�i$�|���K,q�=��1�����������������b���]�@H��n���*�.�	{�;��_Z��j�\
C#-����F�eF����Fn���;w�x��r|�����O�M��]�?��@t��l�\>�h!������C3�6��I�1P��P��
��p
�h����@v�0�OD�S�P?�RSS��tew*����y�n��u���"��-�6?�	����X��N���{�G
k�)���"��&� �EW��H(�Gh���{h�����X[������0�Y��GTy�};4:��4-���W�I��= ����B���+X�Q&��`L�o,���`AI ���#����.<.���&� �D'���|���z�+:]COU�l�G��`���h���woOB1�>��M"���E#>>�7�Vp��,�U9����o?�t>�U{?}Z����������E�����"F�0x�o�6�<���������Go�������%T��D�#��1�����W�U��{\����]���_�
�n9=0	h!���b�C@=���8�-\������F���r�j���)4�8�v���SR ���D��G���a����+��=�Tu������u�����,�'�B��$��"���#����r �<�
�JlUV�0���5y�;�6�K��`�
�F�U��o����L�E&���uex\L�	0&�B�%BcyL l	XrI0��^[]��y��Uj���"����4l?,���e����b�`��($'{�;�n�:��x��P�X��}{�f����K�`F!�z��w�W��x�A��%��C���|��?�r�+�m��`d4=�x��=��z�������B�:]������Xi�	���F�xa��+��
�UH�!�K{�j��f�%���J�)]{ie��n��]K���/�_r�ZL-���#��I`��J�d'��E��B=X�ib#G#��7=�x�j��5���_���?zG��P=�=�Kw E�o�v����li9��e}�j������h�D�e�dja?�+?��z�H��(�y��)4C{�7	'���@?�|=�p�w_,�fy
�����9�k�==N-��!'B��@���B��[����Rh�����4��<�`^h���P�I&���taxXL�	0&�B�%Bd!yL�	gr�c���H;��Vc7��U�bH�q�q��������f�Z�������l]X=;U���	�a���`k�q_=y���<g_HP\&���e�.Q�e�+]�&�7�]�Q���F���y����"��[G�U�W�)����E�+a����,]n���[��:MY~����}��0v4����e�X�'A�<��T�9�6�z�0�4�ng���e�{�UNy$�6��p��6Tj�i�����BS-�������Z
}q��1�e�ef�g1G���E$�!/KN&D"�Ba(�������G����$��L!:Z��9��
�l�n`�Pu���J#M�l\�~���	C�D!�����8$�`��%Q��t��j����@���s�+�H��~G������M��&R��n������):�8l��$< &�5l�^C�
3&��`D���1`L $	:��D��q��K�kA!9:5����M��!0��B��b�����6�����(��%��^�)��[�z���!���%H#����������E�7���WV��k�����b��!�)��7�C�d���B~�9�k�U
�������E�69����`�y�<	|F�82Uc�����M���j���c�u��MNa���F���H��4{�#{�W>�����C.�8�V�����rX�8s��s���QuGq�S�����*��U�wB=�S�	z�z?O��,d"�HL��� �B'����m����6J�*m�����]]��&��XMq�lO%	���x!��I$z��8�,���$zH&��f?$����zyV*�I0���9i��j��K��pE��o����n+��
gl����<w&��`�'�B	�3���#-4�^
������?��HZ�NE���Y0�4�����kx�C�?(�����oE	���h5��b�_���"��iY/�Kv��]����|O����jZ��Q�-YY*f|V�w�Q����")l�#W�������7�F�$�K���6/��H��=W�w�9d�����n�����{����o����i3Z�'TF\�E���N���e�u��J�T<-o�K�~�y��8���Q��T]�����X��By�p���M���:�p$���i
'�IB�S�q�%��9�.S�S���{��w�Mc�3R)DG������&��n��5����.!�pYD���8>4������^��z=�����s��2�&q�C	f4R��Bs�)�~%���W��9�)�w�����`L�	�J������@�8�}�&�H���"�6��8X0��0,z�}��>G���>?{�Q@IDATf~F��>:Z��������=!��[/yW�_*�Rm�3�$UHe�(���OJh�z�m�[�Fa�����rZ;Q�#�Z��l���C/t�����iVC!N1
��^��(,G(��/�d��3��MuO?�����&��(�D�����W|����_�5���3!
w�^A}����
e6y���,���p��-$��p9F��r��[��� 'h�w=������
8�h��G�'�KHX��S���A��]��I���a'�6�&��'-�Qy�h �E;Ft�zz�y������xl����9.��^��M��\�+�O���}��l���R<N&��`�I����n<j&��$�vj'���	gCs�"��!��`usx\=	\{s>�]�X,�#U���:�7ym������g{�Hzv����nao�H��K�8���]y�]d��9N\pA�B��{G���4o�^���q����<��@^�J���]��,'��m��Vp1?��s�<G���9
^`�u�^AvT���G'����$'��`����/�o C��v�f�V���5�4Mp�-���%d��|h}�4ed�:�&� ��{�s�~�R��S�6.M
�'���\lPVPh��4����xfs�)�@#P�6�/:H�*��`{/�����Dkb������n\i��x�&yW�@����(uw�5�U����"�'$A�����o$!����@������~X`{����2&���9J�9w��@ �)<�ui�p��N����vLh!9X0��/<l|l50Ir�0�����5��	-�{f�}�rL������X���C{���
q�[����C��b�V���o�p��DE	p�a.hbM`q�=���t�����]Y���d��	����u��n�&�1�G7�	�t;�����O~�����#
��/M�`i��UK��VKP�N4��oZ����f�ye"��!-]K�U�l���+i6o�i��<���T����T����=�An��.��l��$Z����HS7�(�T�8���&�h"tB[����h5��X-/�*�w�$��3�x�!����T��"���!��l�A�H<D&��`AL��A�x<t&�<G`���8Q�Y�q��J�	�kwD�z,�0-�j��}��cc�s�!'c�6@��f�����A�|n�?g���=�}3F3������d�pw!V:��n��1D��[����7��
��/�W��?��-��	t�<t����6��p����o�\�i(�C�P����6��=���	�b�g�C�3�HM�b�x�G���n=Zt��
���HW�������=j�P��w�b�J�IJ�B+\��j��K�NYHSv���<cM� �Ac�#�"�����|����<�,�gc��r�S��Sc5��B�x��t�!T \�=�����`{7��2&��`.`����
`�G����������L#n.r�-�tB�����D�}4����s*�������UK*�IFv0��t`2��������
����=V�{o�f�dD�y��i��o���%�W�A��"����#�s���z�_V����a���$��|�J��%%�yq�^�����^�������z��LR0J��Q7����Z������]�?�����r��/��s4z`�i���P:����K^�m�
�V���s����d��Ja:�����>4�b��jV�0b���"G�O�;GYaD7FP�6>pB=�?���B�X�Q�a�}��C��Po���.�(�yL�����I��fL�	0&�X(�k�3dL���7^9��9}9���l���"�H������<LD�c
����G��1-F '�3skR���pbPs����g����v;k��^��"�w�kn/��4�x�$^A��)��0dPxx�(3�0���T0��"�:S�� ���C�}��0�v��;���p��<�[]h���[�Blg��Se���;U9
k�>�*�34�h!=�1i�`�|(��l�����Oa�<]nt����������A�/�
�F�r9B����3X)/�u	�h��C��Z"U���pw�����������W$3y�y�<�m����P�wb���@P`{�e�A2&��Z,�����3&�Iz7^�E�����Ol4��&�hY�3�����	��B���}2��b~���P�!4�&�6���E"���huE!�Q7����"��=����.G��G&�������^�~��,������GV�;��������rL�@t4{#���b�wr��
���u9_����C��:y9~�_��S�u(|�p�Z�;����O���(_O��)�qD�+���-TECt�0��Y���f���P��c�a���a����i��S�w:��8]�>n�n
�Q���3������)�Gf�G�P�wa�n�@P`{�e�A3&��,�����2&�M��x��`����{|3d����������D��z�.��Z�`��_�Px�"��x�n�=�1��i$�7�]��{�N��q��sx�������������?�����C��)\��K,���&�s��ue��~R@v�y��a}�M\T�I�@GqFIO��|T$���c��{�u8�f�n�V��8�b�����4������B���V�by�hEa��m�2�P���$��C�;)�C!���dF�|����Y��n��
�����nC�B=<i~_7�3<G ��s4�%&���C{}yvL�	0&��M���^��	0�� `��+��kL�<����%��V)�hW�'L�m��X�e��j�����\�&k�Z�:WH�a�� �2�%y��P�������v��
��#�-mv�z�P��������A���_1'��:�Rx���Q���������2m���N�V���Ex�[�������,�B����E��f���#�y#��L�����Ci�~P������,��0+p[��fylfD�Fw7
����d�z`�����=��l�Au'N`?���e�N�a�����Iw�"X�����,���u�<\PO���g��BO��������qe	����������4�����T
�z�@���7Xp�L �	����
���`L�	��%���{gL @8{�U@��mk���z�&|9U�h���� !:���r_.X��D���s��e�]l�t5z����(�������;k�����	��K^�f����X�m,��K�hy���w�r��	d���VY���*�P��x�p\�X��q"J�G5�E
		-�Ll�*�9��#S=�]�f a�1�A6yDPi�F�f��?�t/bi>�8�����7+���3��m�$�BM����45�Z���m8 ���lU���@"��L���s�������1�����{��=��	0&���/�P���&����7^��|�`b��
���0����+:��P���TN`�.�1�<N�?Xy��%�y���W����R|�����w&�m��N�`����r��"��O���O
����s��	�Sv��M�S7��z�t���E�'���@}�9�-�Rl�����r�l�P6b���nd�\7�b���E��L��=�`����^,��
�R����W#���%
��P����B�w,O�l��� �F�0]����{wo�\�	0�bl��$��	0&���Jx�*���@�p���HL���a"���5��6�n=x�����X���E$���<Nl?z)�����|�1���C������0g���,3>+�+_(8}A�|`��!����`{�9r�����Rl!o��!�@
��D"U��@�		(Z�����z�����^e+�s'��4�<C�\)dB$J�a�4����:�j�Y��'q�vu)
T?��\�&R��0U�nRDQX>�K�?��H0��;�+���]����T{w}F\�	0=l�zd8�	0&���Jx�"���@�����&��qt-mf�E��  �tn���	��� �'�m�.Zj��e2��R�v�R�I�����h�����O�{��9!�	<�\^�J��@ �G��BJ
������l�^��M{��Y
U����6�W���N���p�sm�=FH$��H@�
(� ����)�Iz/@�;]�\7�B�\%��vb��4{_(��5����H0���]�!$���4��]��K���O�v����bz�����9�
�f�nL��2&P	��Jq6`L�	0&�J���+3&*<}�eU�H0��3�@���cx�IHIl��ap�^ ���`��-T������?�^fO�{e�q~�rEn�?��M�U�b�gr����{
-7�%;���0�)LG.�(���N�I���+64� �}��+���a;T���z$M�S���W��z>"�yy�r'��/�����g~�DI�}4���&�=<H�,���	���
xL�	0&�B�%ByuynL�	&��/�b��c���*�`"B��I2�$���%�t����8���"(_+KeJ����B���������������;��*Q���pA&��e�����e���3
�.@V��:�\#����>#���3�a��'��zu��Hh�P�����<
����8� ��������<!Tj�7�h*�C+�#v�d���S�F	]p��~T!O������a
�1��5�Y^T�0u���H�Q�1��#V�g�%�Z���c�0)������sD�������b�M��=���g��`L��X(������r����8�{�.���I6��&���	�3�P��p^�@����Vt���Q6�}3F��a_�!���H�W??�V�qZ/M�L:5�����EOh/	�����*�~�S�����Z�'�F�'�������\�)B�
�ZH��(�=Z���($�6;���*�P������������h��tr�s_��5��_�Y�y��
c1�����`ij	�!�#h	hv���9][���<Ib�H�`���K{��x�
&�\'���:;���`L�	TN���3�L�	��P���+��O�I=�}��
��cp���`Ey�L@�@����9����o!z[�?� cARR���j���Me{������WP�<����h?�wC�}KP�"�D[	��+x|x'��Wv"]�K�=��������"��d��9�m�Bl���7�i�1�����C��T��0���Y�ko��q��)G�@�g�t�c0���bh,��/y�h%v0R��	�����E~[w��(����t�9�8o����pI&��M������}&��`�M�����<{&��&J7^'��c���t��K�Ah_��n>g0�P'J��k�����|��N�;��
�
c��q�g	����Xe���2����G~m�=.��]k�Z����D�o�{vU���!W�a��Hg�'�tmB(��D��"��{��&���,D�M<�F�#�>�B:y?8���{�v�(�:j�)��mm��:����#W����w�_]M����Y��H��*�t�������k�4����s�=�~����e���5���-^��� {E8-D��~�������G^W�5�����x���������w��~�`L�	�J��:�,���@��x�<�k��������VU����	�!�P��0\�����*�������{�8��m?�S=F �����
��t;������$F���T�W<is�5�E�`{���BK+`h���g7XpQ��3
q��:�b�v��yM�mc����C{Q������BK��h"���n��;q�H��������(���h��bc�
y0��z�X��qu��V�����D������~XI#����(��Mq������������0�.#�dl|����oa��Hw���d�����p��+o�K0&h��mEx<L�	0&�B�%Bk=y6L�	�H o����i�v�%a���oC\d����B�@(�{(�W0�m�+:]Y�;��0a���������;�`��Ex�g��HZ^�U�pJ"���H4o��M��>���@����
��G���8�*��#B>l�~e���A�1z�:�:�H�x��Jjjj�y��te?�(�(D�.�("W=�1QDq?fD���C���)�)N��0#0��8	�v��z���0]����	����q.`z����p:`L�	0&�	,��En�	0��'�7^�l��3�'��ObL2���f7��@(U{�5��M��w���:y�?07��f���8��}�b�����V?�-f%���?�7c�@:����a�A����u�	��	m��Fyf��R��lC���q�
���M(qP���$�8D��8�T�C��*$��FB*H�S��v�r�4�	���V��b�^L�r��(�I����s��w�'����|TU��wjz#$��@��)�"(M��v��u���-�m��������mU\��]A�
��$!�T�e������N��>�����=�d������L�	��z��	0&���'J��.���@���/^m�|��EL�I�4f��"l��;�|A R��/�p�!p���xk�����Y��M���_��zoo�b��d=�U3���������>��?��|xDqx�	~���.�19��Q����m;-�������Mv��.��+w��p��jL�J��
k��K�2�!o����-$��qz�a��n��^\PK 
�9������EM\4R	�[���%t2�!��S�(�)�D*��+����6p��	D!^�Q8�<d&��`$�B�����]������V�^"Z�<��>K6=	���#9�$��yn3�	D�z�������Y1��v���?�{Jx��X����P]�eef<�����6r�^
1 ���L����{t�n&\%�Ip�����
��j�r��g���xb�[��t�a���{~���7k0`�" �D�y��*��|d,��CbS;A��l���	����X��n@�M��{�'�����\��	��O�� [";\&���.�32&�2^�.���L�	0&���X(�4.��@���/^�+�����e'����"#)W6=P	u-5X�c4����T)�������d�h"�(���D�z�9����1�R�$���{�o*�pmd������eCm��Zm��/�r��#
^�Y�����")I
^'�����m(��X����P���gmC�d��`�N3v 1�a�l�}t!b�8���"�5G������!���X���Rm��i���|E�3�Y�@_e�b<g�9���?����/!IJ�[�c���w���H&�C��f��$��a�������FkG��6�x��L3��8���1[y�{��x��5���`L 	�P"g����@���k���PR����ED�:WL�q������ql#v�mr��J�A&	:�H8�M����l��9�	�#
����9.��|���~g�����S-���d���
�PX���V,^b����q���^��s�	?�W����BS���I����6�>�����v����G_��^��Ya�`��Z��������e���l\�;k�w�BDa��=|[
�h~<���o���nRc�Y������o��A�u��xz�A"2�!(� kcI1�w�f^�c����GdE>qR~�~Z�x�N����ha���
�k���Qm-�	z��V�5$kh#kI&X�f��$+������;jI�rp����6����Q��F��]eL�	0&�X(���]fL�������b����Q�z�.���,\6��i���o���C���Q�B8��2�^���@��1p`�D�zw����G��������n�N���211����>�
�z?Rd���1��U4�2����&�C�+�������(a�:#��O�!�����{A�Y�{&��s�%l����o�A��c_� /��n.����F��?1���t�{qH��?p���922��g��q�xJ�-�S��s�f
��������ad)b�b�[�93���������O��b���d�9��@0���z�gL��@�������mo 1�?�Bn�&).�u�{C�;.����K�8`L�	0&�!Jx��1&Y���W��l{������/�����]������>�Z��AV	'N��H��]GL��hY�����!D`��6������JX�|��D�u�@0��'+��K&��o���F ��J�|�&h���b3��F�M��W~�����v�q�����jE�y�8�l�O����m7~�o�k�+o���C
&w����W��%B�N�w���/��}oZ%4H����$�*��H��I�2rF8���_Y��v}�4?V�E6�:����G79��$�0�=d����
^�z8,����]�U���`L�	xB���P�2L�	D�h��U�X��������C`��>Y��~
|�S�����E�VK�&�I8A��AH����j��0'M�=��*b�_Zj��z���_���.
�&l$�zoh�����xr�5����b���Sa����� ,����u<��\)�_OD����������`'\2X���\n�i�iTu�������,(;�4���'�GI�c��&F�k��G�EQ����qn�\�&K�R���s,"�W�O��u�l&(.�����s��wf��������6��*�pu�����U�$HI�	x>^�G�
2&���*,������2& G ��x��������K����I��[�k+�������Nd�pb��H�I����"�@���H��p���p�C2������=*p.����~����Z���W&9����{�v����������Rz����(��{4��	Mw��c�=�hi,"�e�����'����4!��b��:���w&�������=(�)�s����2�5���-������+���rd8>	<e�%��e�v��r,P^�����@��@��&�[��
�����,�F��
s��c����7�����`L�	0��!�B���J`���/^~����v��ip���C�_�&]=6R�'�+�V9a�y��?:c+*JQY����C|�8��`�R��4�X����Xm��A����}�<����
��}	<��v<���
�z���X��E��s���/���������>$_�������5�!�Cw*q�-��������g��.H���EAAx�{�%��3�a�����S��y�a������;�L�9<q�b�����_*q�]�qo�f������u����N4[O8�f�4*��X��������RTY���z'��(o,�I�
��HU������\��x��h�6�-��(�~�mU~+/A��O�tE/�
C�����j=��k�)���YR�������G�
2&���*,������2& G Z�x}��erQcK��l\:�v�i�F����J��lq�c���Y#�Dzb��&uu$�(�	'��`0��z?�BE�����&����1��BL"�������k���("��h]�3�6���a�q����9�{�a����r�����$����"�t��~v��N?7+>3���\���q����MX���F���6|��������?������������9W�.�"a��1HN/����2��'��Y[���n����[Z$b�b���F��o��Au�Pk�F����e8�
��V�Z�[�`q���U��0.���<�5�W�J�3&���{�W�����3�xTB�)	HG��!�"�^1R4����I����J1t����%�����QZW�.���7�~�R�@d���@P�6�`L�	D/JD������F Z�x�����%���n4�NGfM��!��"�<k�5@X�8�\������1��a���ds%*l'JP��1m�(:�RA�R��#7m��'��=�����������������(q����t����#�h��<n����?:��N���]����� ++t�5t����{��0�F���x��������g_C�[�h�$��v����������������x	�	]zMk�D`�L�����^U��������S�Z��x/m���;G<U�'����E����
=}��$!D	!j�2D�����x���vz����-O{/�a���U�G���S.\����*�6�J������.�	�)�&�H���rlB�li`H�w�2�����\�{�A�~��q.��_���_d�^&��`L@`��L�	0"�_��I`�r�R������aH�X�t���[���:����O�&a�����<P�*�������rr�Q����d)���r����A��Bd��WA ��������
���/�1�.�
��h0~\�lV
���f��1�����_�"��=x�
7�Hf"(�8a���t�VP:���$<�x�<�\UeA���Q"�7/	oKb^���x�C#^y��
:g����{������yK����w�r
�!p�r/�~����R
�I�b����t�N�B�����p��dBgmvic�Nu^G	aI�4
3W`�r���q�O��e/�6?�)����&�.�R*RH�N�*�U�,B�H��F�[����	�nui���D���$R�)��{��s�L�	0&���%�d�y�L�	8&�_�������/d!]9�n��&�+AX�Xw�C��H�0	g��J�{�r0^Y_js�Q�pM�zW��<j�����W����dm�������q�����#�Y���N����;v�0t�		������7���CO q�L	�P���D�������l�c���������r!���m�t�~��_��?�B�#�{�����k�-�j���;f�H���c���VQ������u8�k��e�y��6��m�y;H�����z���-[p���f@�5��su���'��(f�k���O��=)���-;m.2�,$J�A��7(9j��AJo��KY�~b��)r���ZP����t(F�"�^yH�����`T*���Lw���pk3Wyf+/FW������F�`L�	DJD���p��O�X��%����'�WL�Z���CTm��%_�d�y$�t���xK9�������VC3���l����R��Nl����L�MG�&rS���	�|������ui������%����
��O6��k3�~m�:�a|���B`��
��@��������>��	�<a�g;�)L��q�����
%�n����������H�,OW:mMu�?v�����9�����x�������L`��1��].��G����rc0���9��<����G����������)5.����z�����pZ�O��2��J�~rF��o��1%��\��~�����n��� E �L���qid�<�t�r^@�*��s\d����C8EV7�dw�{���MH��G���T)�����xe�����\�������+f4����-W)��z5����@O�5�6=����.��,in&+
�}������El��t�M"��w��r)�������m1&���>,���9�3&`������;_C]k�B�r�q�����	+-� 8����!����1����Y��vc�M4�fh���B�mt�
qm4���CaaC���Il�6��
�����A�������8u���Y:���w�������Z��n���XIa�FF����t��L��?z	�)�O��y�U640O����?�������������,��a[���'�T�3�N���\�R���tTD����C�u��Cf�����e���C
���l� ����?���R���]�����3\g�{���7�g����3�����y��`�`�b�}�4��n�jS��e�Y��	#�H$a�TR:h�IB8w��A�%h�q��+B]�!bD��<���+�C�b�5�i�6���](!��q�A4X+}*,Q�-�z�%)E"���i���}�b(r�����G��Z��z�����}~�=��Z��\����Z*[az�-����%^��k�b�b��aG\Z������F�G]	��q����d�I~�	F��	0&���!�B	0��@t�/^��FB������Mcr���Asz���w`K�Z��a�b�����F�'�Qh#K�B@ah��*��B\�l�$� QE;�*��������MX��I��x��s�z�5=����m���
z����h��k�8:�<�1)�7�:��#���}v�<�l�l������ly[��[��:�o2a�f36l�b�q���y�t���f+1�B��|���'+��?L��f��*���V�6�y��f����V�����0,������
���8��6���������)�3�D�]g�������<���ZF,���x��J�������Xgy�����Df(��L���w���~�6�Y���i�KO�;���r�'���������;��
0P1�O
���>��7�c�]�9��>K��.C��	u��8hE�C���m��D��`��Er��N�Db�4����A�Hz
�JR_o�?�"�#o����g�-���%�v��^��+�������_4�}GB�����f�����a�k����b�QjZ#��~���)>����z�w��8�	0&��`�`��g��`F��xuMhUcV�^�����WbP�Qdq���y/GE�����
�y�����6_�!���H!�B@!�j�*PM\}�
���m�����6Q�/�u�"��\���\�L0��g�8�%d����v�q�Mz�pD��6�:���k!��=�:<	ZUf���/�^����	$���������;��	%�b��"�D^e��D&|���;�8b�P���46�w��Qb������H<m��*��x�H�FC$�6oy����������N��N��_^������?=����_g���k"�3��\��Xp�:��'��t<-�����uW�w��I/z$�z���/"����_i~�,<l�'����[�#3�Py	2 �V��|G��P�t}����K	a!���H�!�����dJ�n��h��3�o,+��C�[uvf���F��hx2��0a��.�BU�.C��8j��J��Z�����6B�(�)�t��QH8Q����Bm��=���Y��i�h,��q�	��������zTW�B��R,5?a��� L �7��w%{T��P�'+(�]�@i<nW=�xr���h���M��	0&���,������2&����	g_�|W�E���W�-����u�+�V$�J-����n#���l@eC)*��Q^_�}�O�$���\t���q���
B�@����A\[�:�%�FzQ<	 DZ�\��`R�LLx�+Y]����eT�1�.��
�v�������w�6q���0b�kwYq���k�� v�(`�,�����	���d�sf���Os�	�����<���=}�	a~�����r��6�K�e��".N^����S�n3����7�|����.���-�_
yL�?�b_H�}4��������rL����?��;I������X��UV�>c���v<}M{�]q�����;�S\gy���R�(guuKV ���o o4�M��r�����p���|��V_���l����$���A6	!r�r
��g����OYk����X��lY�w���8�	�� ;��/E��m C��$eI!+$9�P�`d�bZ��7H<+>��e��K��&��n���
x���Z����<i���}�r�a�q�y���$�6��N6���`��J���������R&��`L *�P"*�����3���/��?BI���	.�d%`��+��w�Dtekh?�rM�Du�1��!��>Zq/�����y
�����9g�44X1��v�l���9�?��JX��~�v�����K��$a��81W���.7/���H Q��~�G�K���Z��v��{0��{���/~����h��A1����s���WI:�#f��
r���?�7�\�x5`/
o�d��?�-'{$��������/���(�w�r��5���l*�^��k���iy�YY���*,����R[���� t�8$H�1�1Jq�)�r�m�'(�]��-;m�9�l�9��In�6�$.�[[h�$���A�mW��+�s��$T���]cQ^<h)t�����u��/W`����|���3�����.����~���1DAc����R������i>�!I�<i��P ������4���N���������i;\�	0&���N,���y�Q3&�����.����;_C]�;������=x6��GF9�D�D��PNnL�O�IW�R�h���M��QW���`������C����&L�V��w�����/'��if�Pa�$����/���j�_�ik��p��e��hjq�nz���+%<L��L��F�k����F������8�������~�4��F|���������&���/?�����v����'-��.��u>��B��<�	�w�s�9����`�����!��|�8���T����n>3��o����Z�|��P@�d�6P@O��!a�X�k���7�}�y%�����B#�A�"�fr������bm$���F#��	�RK����#�
�ENAGn������ �G�~�0�XH<�A�����3��� ���������?����W?g����k���*
�Z-�`^���Wm<z�{�&	�E��0C9�n:G�(��a��r3sB>�)��WK��%ER�oI:��AV=2lb
!��������.�fL�	0&��@o,��M����J������������`0���rfRf��bS�����
8~�Y�(AUc��0z^Y��<g�E�5��Q�z�
0�g_��'�p���I�����d����
��
�G��An�o2��5&|HO�V�o�~/h/���)���j���s�Dg%��;I��q�3���/'Z�a�{�o�S�������v�s��yOU�_��>�x�����O�����o�]:E��c���wS��#���o��]�G�
xe�	�n�q�N����5�"�M�h��G,����M���zC]��O����$���a
R��@�v������>���[�&d�������fTnMBs�$�&���)�1z�O���6T���$�(j�� i�MP!���F��la���)�5!�G��}��u�t�0��a1�sr�W��&�&����QK�ut4tG������1mr�l!�3���\��$�LQ\�kTw����8 ���,o����T���"�H����8c�
X4����q`L�	0&�Jx��0&y���%��t�Hl�����+B�l����s�L*G{C���(*��UG	�\�A���|UV�]���o�:�v��C_���Uqt����Q�A!ulz���m��N�9C3�c��K<�&�w��q� �������O���%�=g*Y�8G����0`��b{m�����s>_g!�C�7��\>��������O~��h�������*�K��s��'�W����v��Sk��Q�58���dE���h��`���S������v\{t�~��	�3�2����,N�s���)���{aGHSE�f���������\�����{��7*q�uj���}_o%W���c�e%i����9=@5mMfI�H1�\iLF����|�����}�	K�1���V�z��fn��W~�	�@L�c�������Q�=	��������*& �l{Ymq���s'J�<^�)��~s]t�RBB�j���$�H\Q��&�J�}���inR=@�R#iXAK����G�u��a����O�.���`L�	D4JD�����p��'?��Zw$��W���|aw(��
a��+��f7�#}K�����8F'*�]��Ek��B��@�P�~�H����v��85�b�%���!t�B�@�Z���������x����o��}����c��i��=�$jS\��|������0! �9�����0>��y��D
�8G��T�?)�����X������c[i������_�T��wk�y�y�{������|Q;6p�V������G�@IDATe~�3-���n��XK�l��j�����>W�������S��V�tO;V�p��K���5�X	P�� �a�L{��~`�K���(������MV&nR����?��0���w����n��)9�$�O#R���N��z�����7�Z�9�zq�K������c[�|&��I{���hE�>E$�h�����s�+�����5���%��0�@���T���g��]�l�^l����"�������D���K�J��^� )����(ma��+�o�'i�u�#�B������`L�	DJD�d�P��'��-�5D~�����v_��N.�������%P�x�M�m�*$f����$nP��A\+D|����
�?���x�yC)|ud%U;��Q+��5�
��
q��������C���}&��������Z��	a��f�96�sq��&���k����$�xg��-��1q������;4���~����9������x���u'�4K�o�����m�|��W=d��I�sc���������=�S�����r��<��zoq23}'z�c��]���o5����xi��V�����%�f��oEE������4N!4���
�q�����z�)�3�i��8qR|X� ���������gv]�g�������>�r�>��th$���=�r���{�o�T�~}]��D9
�IT1P(HPA"���p�������)S_q��i���;j2F���*g�*�������q�T�CLU����1~!����n�K�}*5(�����Ds`L�	0&��!�B	o�qY&�"���Z"f�>�������H���F\��x������{����B��Xg
�v\
��]%��B�������������.<W���Q����?�z����M���5f|!�vv�V3��?�@BX��e���K�����Kz<�3ZZ����	����1o�����\@O;���V=��E�����Dfn��|�=�hr2>Z�+�R���������<DarC�K�2��K�8R��	�"�^����z�_����Ng���vl���������k�G��<l6 ������0b�2r����&v>k���)��������d�a�',�f�
vX��6�<L�e�kV��D2���$��%!	(	�$�V)
w�����<ar{=��s�?X
Ua��(A����w�����W�k0��������0er`�>y������R���=�����qM8�V4@gm��'�����x<����#`L�	0&�B�%Bj:�3L�	���Z���Pn�U�����������M�[�k�����B��p���q���ln@�i�����6��\���������%p��#Gx�t}�Z���k+7Z�D����gJ�r�o�#����9�H9��D�G�7�l�s�#�����������������6|��{L���%�����"���� s�u�xmL:	^-����?����L@%�������l����.���7_��w�1vLp7];]G����'�����k����7�� B�a����D��w��Z��u�KM���\��nRc�P�>c�5c�Nr����owZ��Qj��A���C�x�d����`�D����e�Z���0N���In���@�o�9�_y��1��� �����!��ws�1DC['�5�:S�YO���Md��u$�i���F��V�'��)x���d�gL�	0&���GX(�6.��@����E�k�d�5�`!C�h�a���P^_��Oq��u5�'�8���]G�����#8�\ag�6'��8
����	0��y��H�^�Zm�c����{�Z�[�;nq��������Q��+&%�b���a�z�����?{�>��TFeO�A
5mD�h��`�yy�1����;��;//��������VNd�L��n��u1�LU~������?#^YG�Z.HI��u�����t�G���[Qr���ef:�y�%��=%�(�#�I��C�f���i��������{��	3�l�`�+��y�����b�D	5���/�p��v��6@O�	��*�z:���v}��b�Vz�N3�kz��_��CqQ3*���h�C�!7 1F(�&��L��'I �2�nw~|���Z����=�n#�sM��"!�T�"aE=	*��@�iFj{.,�����
�`L�	0��&�B���=`�	��|+0��'���f�aq���N+��Q�g����^^Wd�q��Z
�v���M���oA���I*��8�	D!�p[�Q8E�!��i���6�����"�����~~�?��YY=7B�hS�`�^�I���jB�m��1�p��]���.*�������0�9�($S�d&~h�0O�!�?���}��^Bl�o�n���0b�^�F���L��oSc�0��7�Z�])�B��7MX���:%b0<�I�W���,	Yt� !���f����O��QZfA1	"J�YQ\J��
+v�����;�N�5�U���5���PN�.�n�[���w{�8X��<��������_iB�z����X��	�]C�\5ZA������/���C������:�8`L�	0�� �B���&�$`�&�_��M��g�!P�XF�8���D����~�q����R�}B,��{���,F�1FT5��dq��@aQc��[�C�ts`L�F ��;OSOB��������	��8A�����������y��6|}�G�3����{�7M���Is�w�X�w��8����1*�/��@���
��Q��tmt�zw1��6c��&|���/=G3G���[U�
�p�SWg������23���y$�%k��<6�d��B)�%������A}�&��GI�G���2A����HPo_���d�G�{ITw�"5�������yQ�����������%V���J�����I ��C
C�Ow�O<����kq��J?�D��_����{{|\��\��:`L�	0�H'�B�H�a`.�/^.a�LL $��U��{�A]+=f� $����1�"9&�G�P\���FCX�8v����z��E�:�fY"����	0 �;��sb����x�
��O����_�}�#�����0����������=����rq4�����b��Ix#m�1�(�����s�!���Y��	��zd��s	��Oh����O	����o���a�s�-hkt��������������n5y~J#�����nRa��}���W��'NtX�nH����&Ed}c_%���y���'��dA"�CC���O.#���A���#j\8+��	����|DL#�	0&��@�`�D�N
w�	0�@�/^���m1����3����2aQb��+0���3�Ba��,������#8^_��w�fkU��x��H����80�('
�=�������X�G�7�����l�[�=cu�75r-r������(OC)���%
��g�����#Y����'���.���5��U�V��F|.�Fx��Y0��6.[H;�Q>����^'q�7�Ec�����d=�f.�D��g"u����(���"�F!\����V�?A9�X��w��������/(K~�g=��s�^�;x�o��t1�9�|�"����X�`L�	0&�{,��=S��	0�0$�_��p���L�������+����s6��kc����k ��i���
G�:U��~m'�*?�R�R�Dm2�
z��CT�z�
�������M���?����?�������Zq��tx�,�b�!�c2���6��\{����p��,S����ii�������Il��\m�'��(=i/�{qd����(p��d�K�h
��[�x�3��D&��tG\��-7F�\����F�������E�k"����}&���|�S�D�xaQ����"++z�F��z1�y>���{��`L ��P"�f������������ :����b�2���%3)���w<�o���g��qR�XF�#�HQ���Z�4�/~r��`��`�v�:�J-����dc6
���n�T����`����!6�$���&"^���z�s[\�c{�k9S�O�������9���[L��?X!���n��_�.7��	@��MF�?(�v�v��/'��2O:�;�7A��B�J1��R���JA�9�"r��u0��,-5c��&�Xc���T��V#:{t�4	?�]�����~'��cq��.1��M�qN�^��;SB�H�p(y�Bi�k�A�j�b.�����2���d&p����F<�G#vw���"~���K.�l�$���I��bL�	0&}X(}s�#fL���e
G1�0"`�M��?AY�a��n)r�c����wG(a4�����f��l6�$^���V�@y}1�����������B�������U����A�.H��p=r�%2H$
�ds%q�F���7AX���(l�$$�$#N��b
o��,��z��,*6��2��.X*�M��������!E����I��bK���R+�����*��%��*���08�����3$��u��L	�d�"����I��bcy���F������(B_�C\6A���
\}����d�;XO��@X����������k��Z+�����F�y�iJ>/��B��b0� �B��D/q��������<NN� ���<��	U
�Q�������u��
^�C�
1&���J,���i�A3&����M���@x�S�-�e_�����H ���)g&�	6M��x���N;�-�tL������:B� W���#+��me�����e��k���������#V$�BL�%k�*�8�e�8M"� 5���r.����w92�/6������cd�i���w���8���
�%G�8Zf�!�Hq�(��[_Y z+�H����\!� �Y6Q�T�����T45Yq��/5'����q,!���"V�&��E��]����J�:_�3�oZ�Z��CH�)��"1E�+��B��]J	mH�����&����]�������p�(����?����R�#��3������
�CH�����`L�	0&�X(�S�cL����Z��	�6���cX����o�{K%%�?��!�p�D��=�x��.(d�z�u�N)��.	u-58N�:�K��&Wm�~tsG]KV@��an�~��#�/���x����f�t����,��|�]nD��W���%���������o��D�I
�k`���m*������F�)�H �R�$�HN��/MBB��:��������.�HB� ���8�=%6����'��b	WN�Rk>r����4�?�"���
,��Fff_}�pD�T��
a��L�C�@����|��{��7,nm���O���RU�(�:�>�?�W
�L�?��J��{P�s�L�	0&�"�%"~�y�L�	�B��x�B��0��!�fh����������tv� ��
A~�p$j�n���v���a
�F_O�:�j�F��
]V#��b'&<�����r~�`���}���	�����1����`���{i��+,(%W�����1+J+�(��'�is�����'MI1d��^i$�H#�EJ"�)���H�U�k:O�4!|�9a��:����'�J	�Hp������E�+p�<����>�9"����=���C�#��t��G�xi�n�N��G�Kx�Gf�]~��U�zw���`L�	0/	�P�K�\�	0�� �_�"cyL�7�oKVc�����v�Vj�b�P�K���B���}����A|y�}���=����0O��[O�K�r�Q����`w���Y,�>��������T�re�!:�����,(;f!qY� ���V�����[#�B :Pe�B�q�t	�(q�\��x�e"��Qw�{��� ��/�`�G��.�������G*����~4Mg���~�0&��`~ �B	?@�*�?��+���{�\%p��l:�&���">��@�"
�� �C�������U&�_�{�^���F\�A�G���������� qD���h34��KB�"��+y��$N�`�WojC����N��	��^�����E�����B8�%���z��h�w�.P)4PH$I�BI�
��BR�>*lq���\����GeDY[���ig��I�~Z�������a�O������c��U
��5
�Jq��.�%wM��=���r�\6��F�Wa���sj}��z�1r�O���&<�{�>�z[�������M��V��z�/'����s1`L�	0�@`�D is[L�	�,���S�c>!��~
k������^��T��R���Mx%��J5]k���d1Bl��Tj��O�����u��V k���U�	���/�����V����
�d�c���������g����7��&����$�h�W#Z�-��$�������I��7]�� ��i:N"�en��k�����t��EHO�_�}����@�:&�����)w���V�� k�n,*������E9i�ZB^���Bz���!�s��7[��$)@-s3�F X�=�8�x:|����jB	��\
I���w�(p��Z�+#W�q>�	�zw��`L�	0&�\'�B	�YqN&�"�������1�������W��E=�NO��k��lhTZ��Al��D$t"	:�;�B!\g�K"�5�������a14sB��Ttb���:r��m�v�j��'�J C����M$���w%k��^��PK���u?����4�\:�v$����)~�)N��	�4�pX���B
!��9!���+�O�**�*!���:��<�>*
N�R��~��R`��J��V#B{���w�����&����K����3f��u��pT�/$�?�`� ���s��}��+dL�	0&��`�D7|��@��/^�;�<��#M��������P,1}�|�����AUVm�	$���^�����~�d�c�M$�Ue>,\A�C>����CQ,���l=���~"1^�dKt�H�E����}���`�L �{e�u��e�����vNb
q<UO�F:���ZWT��=y�����J��d`i���K����N��
d�uf�x)�����
.��!�����s^����x�?z��5�n�W�j���Sa��j�u0
k�����CfL�	0&@,� ln�	0��%�_�Bwn�gL���m��l���=o:�t0�pFe��k������=��z��>8j\�6�N�����K
���AX����)����}�m,�0���������[�E�K'�NV]b|��h[�>���0�0%���k���o �E�iaE7��W�S�)[4�X��L"�tA��!����lR�+��^�!4��������(r���<���U��M�	��x��5���`L 	�P"g����@����`K �{�X�
*d���A�16w�l��	��Vc��oP\���������lba5"'u�Gu�P8X�.Y���>�����I����,�J��&��q����&�x�G����@7�����S��l��?k����5������V��C��$�����^�gP�	`L�	0&�,��T��	0��#�_��o���L�S����Z��r�0�t��&����������P^W����B��p'�M����V#�
C��l|�qb�5��9�,,7����{�B]k�C���g"3)�a������h���V'�-"����,����������d9d��k�\{z���S^\�	�3^��<{�w&�^������!�g�	�=m�[��UH�8~z���~�A~��������&`L�	0&��I�����u3&6��W�Lw�	xM ��{}k-V�^�I������8{��9��I.6�Cc�I����g`Y��1��r��9�p4��a��%�\PJ*\8�*��*��'�;�m���
�u���#.�Mw%!���+||��h�CGW�z�Qgl��$���)^�D[z;Hu�������_���	_���w���L�]���%��}I����'�m�SY�{5_9M�/~��9�����^�����{����	0&��@8`�D8���	0��/^~G�
0��!�����V�z��y)7)#��`���r�g�
����rTn��R�N�I��y���R�N���Jb���cXMV.���\��b1�
HO��������?���]�u��{dJ������}�;�c/]�h�$t�;�H� �;�z���i�C�(�^=���������X�X��)^�Nq&1x�G�T��@ZZ�x��z��4�k���q,m��OU��*��tE�tV�������d���5���P\���|��g�t��#���]ez�����F:D�=�t��WT�D�����oC����eL�	0&���%�t�y�L�	�$�?����WL �	�z�u
X���
���s�-�{+������8B�&�{�Q
����AJl?�uGbd(�%Jj�a����M�I�E�n�'����u�pQr���l���ad�Y���x�;���������kPVw�+2@gb�[H,���
��	 ^���M1� ���	���X���<k��G}�F�K
��P�����)2B! Gz����x:^M��A�=^$,�����C���H��	0&��2Jy�y&�B������`� ����r���,K,A��I����8o�%g�O6Wb���Qz���8WN�J-mtO������w�H����?�����p\sG]�w;�m������J������f��a>%���U�e���~9
3����%�z�#�/�El/��U�g�sjFb�M��R�oL�C��=���@����%]^����/vG��8��=N�L
`��`L�	0&
X(
��cdL�)���)"��"�����l54��pr���L�}���Ds�\6��	�d����a&�7@!���V�]^"r������;��-G�	������v��	F�������V����K����n����}\f�	{+���c_���������co���I��z�����0�x�;����'p���=e���S|A 9^��],��K��	0&���"�B�.|��@�Z�x�y�QG��{�)o3�������BzB��������2b�q�
�/,K�z���5M���\p��\�B�[�����]�!��x��HO���l7��{_,�e����]��-�K�s����=Rg��������	��&��j�y�����|e���04�^����;%�=���`L�	0�H$�B�H�U`n�Z�F��@����w����]K��~�o�1���aL�4d&��Q*����
GY
�|���o;���#rba�����`����V�K&���X���z��(��-%k��]%\?S*T���
��8�UtNG1_j5]ws�Q�XNnVJe+�N����(��	L@��w92�"������HQ[��]l�c��Qc_��_\��{X(�5H��	0&���A��=p�`�J�h����qG#^��g]oj���o������K+%�f����iH�aS����]��
G]K
>���I�"��X�#��r��5�����Z"�"A��K'��Xu��~�z�iMo)Y�����Dqd%�ZI�9��6�?P�A�KM"-��8����i���Q^_�=��ynj!����G_0gx�;#��L r�z���������O�`���A����z��t�Vz���ZI�*z)��v�~Mu�x���Z�q��O���Q\S�3���������(��l�<J����T���$�~�0H��Y&��`L R	�P"Rg�����[���pqf&�x��O���nK�j���t:El���9��'{�Q���(��k��u������49��������&\�P�U{���cJ\�,q�m�^6%D�zb��%_������H�s6&<��tl�x__�-&r
��C�yiC0�=����y�����1�H!��=Rf2���}�	�-��"�1��@����}E��d�����!���D`L�	0�&�B���`�#�_���[b�&�����z�X�dK���b�}L�T0�n:G�G��_����j�-8o���Ms�������tx�l"!3)�����f)�a�I<Z��~(����,,=�F����h\�b
�>�5�Vl�$�������9�
#���aj��e�80m(���V6��@w��������@4��M��c�v������3&���/J��/���@��/^a2Q�M&����C4�
�|��8�\q&�2�?6g��
=�'�!��Xbk���1��������_�0O(&������ZN�`�'r!�������qlt�69$=���3p�������d1b����m�����,��N��������1�H'��=�g�����z�b�gL�	0&����	�P��L�F&����
�I�.3	�zw
����b�2���0.o:�%p� �����b����E������?��N�a�N�V���}%����c0s��v��e���:��G�Dc{�]�#�I�\p
3��N
��f���:��)�7��:�}���@������-�^�����2�P$��=g����`L r�P"r��G��������(3���l������%�f>����'��G��#�������v��8����)���;D�z?�\�o�>wztrQ+�$|:��JA��+���#�����1k���m�K����b��;L �x�?7�J��{@qscL�	0&���%�n�y�L�	�#�_��Q�8&�x�G��F��*��b��e0[M�C�^8����#�ZU���I����[��r���l���Q�g�H�����o���/q����ut12k2&��*�Q���L�X�{)�ZO��aX�x�7��tN�n����{Vy�L�>^���p,�D��#qVyLL�	0&�B�%Bg.�'L�	��
"|n�	������& ,K|��
��uH�I���7 1&�3*"�f������\v<�����:�i�]�	v��}[��������8�p.�bR�e
z����������l_�f����,���	����x*y�L�)^�Nq&1x�G�T�@�`L�	�$J���p��4��h��^��c�-�N�������z��93��0w���(c�.���Ov��p#}����:�6�HZ�B��l#�f�KS����de#+9�����Igl��%�t��]�1��H6=�N6W!N��8Mb$
�/c����@\)� ��#h2y(L�	^�Nq2`L�	0&�Jx��3&)��W��$��	8'���9#��K����_��c/�i#}��W��o���J����!=1����(�x]	*���m�f�������Abh���Ias-�xY�p$��s�
�6cr����:l>�5M��M�� �,��k��K��D:q�aa1��@�t���OH�Z&�x�G�����@��� �&��`L��X(�C�\`�K��x���q����x��K�����b�I�31a�y��j@�nl�����a0����U������h��3��'O>s�'5��m�����6W��M!�w��N�R�r�l(fn%a�����Y� ��1�Sq��9�������&� �!��8M�'�)HPA.W�5������/1��wGt8�	D^��5�<&���wGt8�	0&����%�%������+"���\"���%L�)�8K�q�B=LWN��`���0Y�vL�&#_9	*hm��(�V1������bH��Xv��,rx�DL41dM"�B���fYB�&���L)�@.9���Pf��]�x3 �*�&��'�Db�P����IBL��*�V�M�A/���A���v�@VwN6W�TK5�[O�d6 +�Y�z)%�_@�������3��@��zyn�	0&��@t`�Dt�3��	0'���@��"�����(�=��F���17�RN��9���R|��������R��N���� �����c(o a��hl?�������bj�<$���_8LJ4�X���!�q�����c��r�!/��l)^�C5;�����L�e���A���������B�\}k-��N���u-�6C�l��u���d���xb0YZI���	�I��{x���	xB���'��`L�	0&�*J�J��1&���WDO/�	� ����#���d^��q7���)a4�t�h�~�;��l������)��������s9���W�X���R��c��������B��&]=��XBoj���d�*1��K�[(���o�WCgl����K�,�2}r�#���
���c4�q�,D��t	"�N�l5y�q��i�6����8i�w����y����q���x�{��0&��`.`����8#`�L��xE�����@O��{����" 6��������F^��co�V|�-%kd[���0,o�-]�P#�\h����b���@MV:�
b3���(	#�p�^�6��mKl`��=C3'�[4��7���;�������`L����p�����$�)��&��b��s�~�}��1~�N#����nl=����a���������c�I8��l�������Cx��^���e����
=.��`L�	8#�B	g�8�	0�� �_��b�y�L�F��;�L 2	l9�{���zp1�8�4��W4*�mM���'�;�5�C�j���8�G<�\�p��N�dK��}��@�� Gl��F^��d>>�3)*��:���K`0�d�?u�\��9[6=�����\zJ>=a��itl!7$������f��������
��c���01<k��U��<��������"+�RD�i����������L��Bf�@�i����C��}��b!N��{�Ow�	0&��@�`�D�O w�	0��/^����0�p ��=f���<#����(���Y�)��������aWHvy!�����K|��u�rA�%�5E.9h�u�Q���r���!��\0�-�Gc{�(�pB)��MH�w .q����8M"Y4��$�P*T��!s�����
!�8�\���J�6W@����'d#+5��	�D.Td��Ch��Z���a�$����t�n&��`L��|0&������	D^��3�<��$�z��!�������yiC�U�H�K����^�l���=o8K�;t�
&�������-}c'f ��P��0�WA<���^o�J�tZH�!�h��+L��M	�*cs�cd�$�@�'�����)�Y�Vr�q�5��m�����>������L�$J�I���S�
�H�T�JQ��d&��er��\�dq��c�����m�Z�6��B�J���7
���Q
�wW�:�R�����d�I}:��8����9�T&Ix�G�l�X�`L�	�J���p������$^�A��2��+w-!3��s����g%��wF��&�
���>*��m� ���"�0c�B�� ��x�a���J������I������I�^��'�����������f_4��$�!�0	���� X�p cY|0 >`�X6�
�P�����`�a�K#�h��f��������}���=�fevuuVU�������=w������rn��s�G���[��Z�����������R|�qPKQ�F�0q�����7�<������~�9�/������>�)w����_�u���/=m����i4^������6����2{Q���������� b�{Dvt������>Xvl����s�����jD������h�����S�T��Z�����<w��u����N����*�0��L�JDb����G����Z>=U-��-�L ��~��� @�N�D�X? ����Z���:�f��K�^���s����Jo������o��}�	�^'�������"[EC80pLF��N�E����uy�n�����W�N����x��
����lV�t&&�x��w��r���9���^�k�[�^"7����>��^~VN_}�b|�*��V�����Io��*�z1�v���d����*8SQ��BcT&�T���:�|�sD�;�u?���aTqD-�K�G��8���sNT��&���"Y<|�q��w�����>w�[*J���u����={eG���#����/4uQ�� @�@(�)^:��B �����~!������X���}Sr����dd�����LvY2��^gri���8�ed�3��z{4L�����w�~�����W��g�_�o�,���������������������������\Qt�}!���w6T����Lxr\_��p��NT������c���{�="m���������n��S�/9�����u����{4���BE]*��sUX����"Y��\�����0������b�}�
t��s���0���2L@g�&F�4���YW��r<���7���#T)w?��^��}y���2����2�sf)Z�zv�~�v���\�81����g�����h1�7������� �d������+� @~$�P��VaN�@�	���p���������!�pn��R,��"�b
OXd����^$�3*���#��{�:vn/b��=�N���5�%������'U
:l�:V������o�Fth��k4�xM�������K��a��{�U���~.��>#�_�NE�C���"d����r/������[���n������.?�"�������k��B$�^M]�(S�F����Fs����^\��e�E������p����OW���=�}��d��T5q��,�	�^�����.����}���h�&���:�f�<Y�6�^����Lg[^
Y�g��u��y>�s��v�x^����z�����m�����7�	�(��@P��kY#m!@h��c��������#c0xL�0�C�G�w���\�<%�����<����4#��T8q����x��*(�vE��/�9�N�LvWT��,J����������O���HC"����������c~0�gs�������"z�k�����xr���j�K�16{�Ud�d�M�U��{�bjM��"R�<Us��.�����dH�M9��=���2�wifiRF�O��LW/�u�����L��"���Z��}����{���eC�BE�D���b �j	��U-9�A x�����C�Z�{����������W�����hu��������__,���'�N,��v�~U���������U���c/hJ�'5���9�K�>���Kt���}r~�G�����WkoV���o�lL�p����e�Y'M���DE��s������G+���JU��KO�+���m����h2���)�Hl�e����l.�P,���@�DN
,�<�Dm��QNvh��!���Rv�k*	�K9f�
�)Y�s?�C;n�HCo�t;�O��a�������j�
@#�a�*k�\���52@ �������C�5��5��78{��<}�d!3��Z��
&,��~���SW_�h��v�/z���HUT���N_}E�?��L-������;����j
���UR�/�n�#�(��������J�~S����
F?gV��K2�<-s�3���i���C����R���n�{�/�t����s��X0������~�&�U�K�.~���g�����u^�����J�lZ��_e�*��4W��i������3gOI^r�����DZ��7�,��#�V�M�T0����;4�L����I/���o�pY#E\��W����{�e����J�=`C(���_��+�+u @���3�< ���P�>%����0L��=��.3�26s^�h�����2�p�)3�T�}���)�x�����s_��w��C;��/���������m�U���E��4nKJ_��y����"o���5����_2����x^���������h;T1��i4�Md�":��m����������T��[G���` ����M#��
j�n@IDAT��*^�U�n�s^~��U�j+o�w�|1>;����������v_q;��������*r�%��V��mE�bty��5��\uB,�czUD�\�����/�W�bD��.� @��J��&}A�%��W`M��!����
 X�{`MW���/��g/���K*�� cN���{Ub�����&����WC���'����v�������������,��=b|��������;,Gw�-��������-M]O,��\Z�*��*EL������"
�M9��Z�"J��`fyR�{�	�0y��y����8�*j��J&��(1��}�����;���#�ot�������|zV�����Fv�:{Y���V%br;W����1�B�G6��;5�D5ii&�/k���2�)5�T����a+&0���E�@��J��\;�A� �J ���u ����+�&f�(��K(8�@�	���7qM��(���(��Y����bc{������q��+3�����ut����8*�x��{��v�+7������e�q���7�.�q�n�6�sb�V��B�������M���\���
	��K��U0Qi��������:	c*�����������W_��N�*�W���qk���_���m�a��
,�����U������wl$������������Y����n�?����c�%u�;�1���kM�pl��z����9u���E�)W�����\{���M�u����}ov��lZ�-I�ZoIX,� �J�FF@ �x�
�UY����s�*�H�U�[S:���&.j�����������#���X5�����T�k��U�;��������4��/���s��TSl}�ij���T��6>&���g�5
M��Fz���?~���F-�"|�������������r�}M������	�&��t��B�1WLj�l��d<��sfeA�z�^��wH���vDL���bl�?�������*��S���WEIWm�U�R)�,N8�y
�H��k���@=����i@�@�	 ���Y P�*�D-���+�TF���6'P�81>s^%�[*[���{��#o�_���������������x����Q}����v^���l�8yJ�^;.�'^������S�h���G%}��@Jx	�V2�K�o��S�"o�S�^��^����F��3�e�����S�*��U��{@���f�q����^�{q������F�P�����(�F)���}"���j��*����E�ivY����-��~��Tl-w�y@��4mI����T���3�����dF��j�iG�����6 ?t��4�����7������e0 @>%�P���aZ�@c	���X���f���I��!�X�{cy��h���K�qQ�v\���Uy��;eXN���q{���]���4&������w{�l����^�����^�VS�����_rSZ��|zF�9�eM=�jE�4w�}����-N
��i%{��3�d���Ba�)V�l�.T�]�z���j	�������]�&M<1��&,�����
(���c��7�l����}�0bw�����l�y�o,�g��KO�`�YW)�l��v��>�f�Lv��U&���]J�C�8bN���biF>��r���*mB�:h���q�t@���	 �����E`)�*���d����=^��u[v�����yZ��tDe�;&=qg��k���:^u�Ig�5����ar�+���8�50��sg�!������J^����Y}�v��kN���B�/���__��+�F��6�G�G���&�z���kd�+���J�{���K����
l�szn�������T4P�
Q]kZj���X��o����&��H}bB�����yY,m�1���F����P��mo_��=���SZv5������o�^�����phz��F������^��k����_��C;n�G���F�J���5����=Z�B� �d%�l���W&��2���O8��B�
*p(� 
�������wC�*������'TD����wz����t	���}j���@�K������|��75w��z��/��_���y9����E�9M�q��q�4}��<6V><t�X{KO@��F��_�����b�=����'�������Fr�(4*���&��������R���;G�"F��}�\Ei����e�/�_~V^�T5n#���S={dnY�*��RfX��F���
?��;v6b8�P~�w@�@�	 ��
Y���Kre��0�e;��b["�&�Q'���Y�	�j00M!0�{��t!P��x4�@�k�L�>�}W����������;XjW��[�wK�pV��g���Vs��1��5���#w�������6-D�^��x�)yA_
7����G��(�|��K� �J��o��KO�hB�vX��9���E��M��mt�����o��J������	�
c��������e���g�=���< @�� �h1����!����r�j���n�8'L4aQ'�5E3^����h,����
�$��7�>cC�r&�x�����+�U�Hkw�uR��?��/N-����h���dl����7V�N������~u?��k�m�!�-����NU��<�m�FT86r��}�Q�N�5b�����w�L�h�Rw�%:���-�������]���,M����eG��c��xK�Y���]�a�����}@��C�Ds�3*<'���E9s��B��b����&��M�v42e^-�9�K�mY6��7��&`����}K�_y��D��wKwF�����7���#��8b|����6V�L����7�a�M�C��@�,��S���+5F6�t.�XJ��{�#��[�t����]�I����D�U>g�}��7eB�ox]L���C�:uk�M��;�$����������-�`�o�TC�{�����	�����% @�@(�=#j@ ��zI^����^J%D�q�����^�{u�/��H����6aF����Y����3����'������-�-m��:������2����rp�m2��o�m�!P7�&^�gNIf����3M8��v<������k��oOu&��|�������N�`�[5G2��*�TA��#��7qD�����-=�����}c�:v��C?$w�}x�zTpOw��� TN�D���	�@x����r>]��M���G$����$�<���^�����o�*d�+*2/�y���K~��!]W��&��+luL����ks��%���tL�	������"��i
���my��s�[�6Z�����&�����W�L�	�t���}}��_��_�"@h�xM�v�3�%�X[���Y!��e������EG0qq�����E�*�PQ�E�(!zUa"j)cU�+�~A,u�Vew�!�.���g�[U��K��K`T� @���pQ�!p�jF�_�:���La��� "��AD���� ~�e�����&&fs*��N9a�����N���Y�Bx������@�������@-��Z���!PL}V����M,���8b���w�n���!��-�����"4D���.Z�
��-c�:9EO����*�����f�kdK����C�z��sK�����l'�0q��n�	ApW7��{�P� @e �(�K�@}	X�����n����j}X��D qb�/�D��n��*E5���#�TH�� �"������Xu��D,)o��*���8 +g���z|����q#	�t�i�������w�����nW����+�D@��&�P�jt4��%�� ��&�XL�_<���8�	�6a�::R�'x������@�����3�@���j���&`��}��S�����`"��d����V���d��-��� �o|���>a����QM��2���r��z����5-B���K}��������G�([N��7�w�)A�BD�D���R d��k�:&K);r��s��������i��b���H�=�O��Y!���"	�'�l~Y^����t����7,����j�������7��6���m�0�>���7�����<��rR�vy�~�!��,M����rq���jz�tn���u�ze�
m���	���{���n!�@6�����@�	,�W��TN��m��]8������B����^���������� �����V���V"�����Yk+0�����L�.HG�W�;���<&�h����v�����5m����g���OH~���I�-��}o���m��U_�>+�N���32�8���X$.;{��h����qL�S}��7�2��(��@hM%Z����$0��&��DN����A�~��E�������IoGTz:b�m���~�W�S6/2�������/���t������i�
 p3���f&\�@X	��a�,��������pa%������\����|�������-0����.������V7��&TqJ�F��+3�%���@c��6��i���Gdo�n*��K���b	�@'���+��@K�:c����i���9UxTz;��^N�����+��[Z�YC��D�k{KY�Y��#.��Ji.J~I�#��&���5���[����vg��IoM����$�������j�(���WN�?��4���#���x�z����ct��F�8%��N�|z�x������h�T0�O#4ui��f��Y�� �J���Y%BO�"+XzK�qe*���U���WPt��B7�>��V��b9�*�k��[t��%�Q�Z��#r���II"�9���	�-�7�@���uCIG�=���&b����n(���N_}Y����Jn%�e�w�}X<�Ce�\�Ua�i'j�����u}��]�M�"{�o�=��2����,e����/j����#*2y�
�A @h%Z���-E`)���&�rY�M��"��3j��D5�E1����S���X/�(F��Y\)!�D9��b8���N�QM�u������(p������	C�j�{��h����g2&��	��U��a�.O�W5������
u�����.�Gcra��\�8)��g$�Oo�����H\Fz�I��\�>+��"���M��;({k�	�6�SQ����,fdY�����e9�(�i;��%Ga��	Mz�C�S��BEcQ	� TJ�D������Fg���&,M�����W����H�#� X[t�z�z�;�i9�e"Y�.��!�?��TL5��kFH�=0�b����^3B:h��N���r���t}���G�����#f�~GT�0�Q*N���*�8[V���~��}CN����*��*-��a�C�sKz<'��J���^G�W������}n@� �j ���m ���6��	�8a�:��UK2.rhgRE��^�*�������3������@�u���ckV
���@PX������E�����d���;��#���T�}c�M�M,qA�u�3K������d�]~���e:�� ��@(C�@�6�y�%��$$�����a�[����?�?l�2�T���=���=V4R���U��������({[
�=���x�TL�!x�{�M� P1��bTT�����W�L����<K{��w�Fp8�l}��e>=��&^w�\�9/��\=��k1I�������'�A� �| (�����Rv��hbVE39=^q�FC�HETSQDT�T��a����'#e�ri"+'G32�3�����V�D[�|�n��>�D`3��� P�{}8��@���#�C�Gzi,�<�Uy���]��k�����9bW�A���6��d���Y�8uJ�k������.<��P��t
@hy%Z�#@�������N��B�&��z��>�C��"Ct���=�*��}�F�����<O����XF�Ud�7�p�r�V?�j�N;xE���{5���'��{�� ���_,�< �=��{���
Kw���)���M�Hv����*�8 {�H2��i�F��Z�*��0qB�f/4bHg��D��8�S2Ky����'�)?���n��@�@k@(�vf���6��-���N$
GD�"yM�Q,��AtwDJ�!z:���R��G%���X���&L�����n����)I��p���>#P/���� P��^
� R�{H
�� P��^
�C �[�T_�+3��9'b�R:���R��}��k���rqRE�]�:���c�"l�m�q�oSAH{R�&���ME�vM�������{	� x@��P���T@���j���X��f��3yy}tY.]s����~`8!G���W�]P D^�{�0g���V��.�L��	W V�{X-�Z�:1��t��;"������%L�����������C,"FAQ=����;�[������� �
 ��U ��h�����������3�+��r�$�"�mQ��]�^��bz-�i���"Y��Z����I��3����an�/���<�
~&����:�
�%����'�A� p#�7��hQ���u�jFN�f��l�n��h�D�Ek����&����*�(�Z���h3��j	������G���1�%��WK�v�=x6c�� � @($k1W@�3<x�N/��������JuA&*�QGJE}�����}��[t�Y=*�HE��w��h�����j9�
��w��h�����j9�
��w��h@�@�JT����@�	��u�q�X��������������v�,�G�
&v
$��H�4eq�z�{��h	�����f1���	�����%�F���/�'��W���� lO�������67�����M������<���'&F��(I�	�Y�B��{+X�5B�@����!�����Y)�w>h�{����B��A�D3�3& �;<xmo�����v1-�39Y\^�:���{0.�T4�g0���3���%@�B�{������C`D��
	����B@�Y @��J��8L
h����h�������hbAE�_��W���������#��&Rb'(���^))�A ������@�R�{��������oCV�J	����� @�@(Q
5�@�#��W�M���
'���61��s���_L�J=����(�u�E��z�=T�d1����%nB T��P���@`K���x�	�P��CeN@���3	��A���S_��:)<LL1��	GT�B�y=7AE�e�;&�5��pJ,�	���p�����k[V�����D8�@x	����-+��F��F"�C� PO%�I�� �����_��]\�3W�r�jV�UPQm�5��*��=���&���v�{�L�� �)�}S4��@����3)�����M�p�#�����,� �+%|e&4�^�"���W�rrv,#�&�U����D���(I�#�����]�}Y�������&�������	���ip�p���m_V@h6����C� ���/���$ry��2rn,+�3�-�nu�=qG���A���X���V��.�L��	W V�{X-�� p3��f&\�@X	��a�,�� ��B	��Y@M&��W�
�r�%M�q�JF���ea����*�8����;S�$��K+�:�\�1s�%���%F}��\�1s�%���%F}��\�1s@�@ ����# �9�<G���sy'5����Th"��%'����F��<�P��Cm^���7���&�����,7��o��	BM�yY @��J4�L���`���pi"��&.MT���)����������}B��K��/��� �	���t
_��}i&O���`�S����K�0)@�@h ��)Y P�j����������#�������dD��J9[����tvU.\��%���s���XDb#��D\���ZB�������]+n�Y����=��e]���~3�@ ����Z�uA�f���L������jY�@�������L��&�����W���+Y��V5����uoJ�:���cvqE,j��n�
@��.�(-����HE��-&��oOE��-*]����A�s�@m�����A"���Z����k�Gk��$k1W@�@� ����1 ��<���.�����xZ.^��E�p[�--GR'�6������#��8������U��a[�!E�
(
�*���vV��.:��*��1`������>2S����w��=|D��1�
<&��{��!@-N�D�X> P ��W�}�grN�
�4�[q�~���[45G����w���e���\�{oN����F��9�NO�S���Q�k�����B^���o(�)P�2��6���7��9 �<�{��32Mo4q��@����c��� �V �P���!�m	���-��V0��������,sUDl�7��()��S}Z�nq��
#&�26���K�FX�c��b*�^Ms���t'���J�z��}vQ�|N�Ta��7�D����Hm�����u@�������7�A�	�����A%���r��	������ ��	 ���5!���+��u�4K�qbtY.^s��^����C#���X���G�N���[P6'W�A�#��J��'����zE5��VM��	"4Z���#��B�j�8��C;���A$��	r�K�o]Z��&���~�n��nhQ�&���~�� �w%�n!�4�^
��AL�p�rZN_��rv����q��;Sr���M�&5���D��6Fp5�Ze�V��?.{�Q&uE^#U�4<�E���W�}��������X�g5<�E���
���O�����y"�D�(o�b;_L�8",JD1R�}&�YF��*�H�����'W���F������C�%���v�n	��n�Q�%���v�� %�`%�xN�/�v��pb4#�fUQ�����M�am/�@b1]����TDv�0b�@�I��R��M4a���fb��t^t
������� ����T�k��h��������a���r�=�.��6cj�9GP��i:C��e�~F�����-��/�@ h��������3_@���,�B ������C���,�B� ��B	��h��^a�j}�4�/�Oj��3W��R��������5"){����*�
F!KyY��*�XR1��rAD���zGc�v��5�����Vc���D"�T�I�\K�q��>�����`E������q��@�Y*#��W��Z� TG�Du�h��^!3�����
������K�)&,��.F�JJ["������#��h�b���&���E�K��I���F�����5��9��G;	��^$��'������E�{�{���~�B@�@3	 �h&}��|C�/��"P�2����i���<�d\��{4�����XJ�V*��8"�����.�8�0��D~.�����~��a�@w\,r���q�JF��e���QL�qp$%C��G�T*���~I�t��5��_#pP 0|��`L5��k�GS��0�1]�@�M!@��B�mQh<x����[��\>9�q"Md\h&�%��I���=������=O��xB���(v<�a4��V��-	"L8`��J-c*�9��������SsIHG���f9kB��� �D���)�Qy���L�R%R����[��,k�w>
h�{����B�3@���JxI��!����+0���D��g���&&�4GG�bQvk����u���]����4c�	N�h�b$
�FQk1�C_�E���-��~���n9U�Lh���M>#��c�9�`�R��|�_����5)!��!���"V���v�,��m�L�:h:���n&������� �t�{�M� �0�{�P3 @�%	 �hI��h@`#�6��VS����#+C}qG�{0YJ�Pk����@!����(
(TL���J\y8�!Ls�*�hD������5K��U&���_�g�����C�v*����l!tz|����,%�{	=�=�&f�(��K(8� @�%<�J��@���<�1c�%`�Q?yA����iy�w�������rrVSs\�Z}jO&�M���M�]��.�
&n7���M���h0����M$��7>CC����g8@�@�@(�bg��@y<x���U������I��&�\I��|��DTi�������N�&�D�i�!?�����k�$��%���[�����g�-IoI��h@�@� �hj��L�/?[��A�������+N�	�4���>5G�����TD��t���#�9=�Xz�JR����;����@�/���~��< d�{����!������!d�{����!@�'�P��6b��@�������_������\����b{� ~�h��	"l_�b�J��:��-�?�(��l���kt�=D�(O���&Do4#��@X��a�$�������Qa!������� �O%�if4�^
�ph"� �{Fu���*��������H����S�
���m��Q{�����|��EYLo���]I��p��k����� �{��4���H����������!�H�{#i3 @�� �h=��b@���@�BJ ,�>��"��Y���Jw����xvIN�f��t�@��c2��*
�D ,��$|�@��e.&����5��1E���, @ pJ�dL��^^P�O���^�]������*�.qdWB�:�!�����t%+*b�mU�����8�z��[�S�^�V��Z�cm�z�������p_���V������F��L�1kTC��m L�{0���!@A!�P"(�b����x��/�C�W������/��,�D{2"����cz>'��y������Xz�F�������eHEC�o%AJ%���J(Q� ���������+�D���;�
@��_	 ���e� �P<x57�A�������6[�.�����)Gr��I0����!t3Q�n�y�T$~+�1V����<���x�o3l�|����f44���L��
������� �L�{3�36 @ �J����_�����:uJeddD���/���U����U�0nI��-�p�"�����]���K�������y�X����Zb�bR��*���A,�&�P��#���K����{?�������F+��D�1gTG��� @��B��8���g>���������_��_�����M}����|�����V���n�v��L&#���/����m��������G?�Q��k�M��]�{���������<�
~&��{g�	<u|A*�.�8!�i~t	B�0bRSh8�"�U��2�sRt8�	�8��������	���Yp�����na������,8� @��J��i {���>&��Gj������������>>���	1�����O������&�x������__���������%9t��M��_�{����w�����~��g@���woM`�%^>�,�/����K<p�]�&����BN���������,(���� BSg�,�[Q	3K�1d'l�"���=le=����9�@ l���Y��@`s���l�@�@�J��0=x)����;��W^q�i3��������o�g�y�������t�K�W��U����o�_<�{�y���^�3f����KX���_[����sV�J�]�$�\7�E���aE�*zP��#~������z+k�
����b).t9��;����:�t_E*�UE:�B�\��is���9,�Dw{T�1��
L���9;=q�����f�K���
m6��T�����Qe�d4-��uL��������#����� �s���
�� PG�{a� @7@(q���`b������x�/���|�k_����O?-=��
�����t����|�t���E���E�0QG�X��?��?�{��G_>D�����������O�8�}���-��?�{�����x���/�C�O���Z���������K4vV��f�����t���+&���y#������U�����5r�`�ev�U;�vD{=���K2�YH�i0f
�~w��8�=�d�pAw��� �&�P�52����o~��X�X>��O������iio�3����?��������������I,51���O>);w�,]����ey�{�#��]����}O6�S�{��s�<x53�@�����aJ_�?����.3���\7A��!��{���2�Q&L4QO��~�����i`��}]*���I���)�@p��[1S�J�� �!�{pl�L!@A$�P"�Vk����~N>��O�f��~P����t���3���|�(]:q���r�-�s7�������KM��O�D��?�������cdd�t���?���,������a��xN�/�3|Co�)^:�,���wt�������"�������y��yni�MX������/{�������eW{DzT8aQ'�:Q(H��_{1��&��{k���������j[�����g�� �	 ���p�����>'�}�{K�:v�������L&K��X������w.uww�������.7���������R�9"�J��7X��?��?*]�����s��W�(
!��WC03|Ao��5����e��%R�n��$�(D��l���S�K����3�q"+c���C���'*#wc�hD?7m�g��y
�bdW�?�YY��|��p��zZ��p������j�"���N�t"6g�&��@��	�����g��Fo5���V&�����Y; @�{%�g�fgg����b�������<�������v��cXy���._���o�S����������9��;��N�����-�n�f��O�?�'��i����\7=!���'X��$����,/kd��5���%�B�x��b9�JJ�+�g��#^QD%\�9�����&�N����`�F�d��T� �(
(TTQS���_���Gdg�E�@y�J��0����0X�5@�2�{e���0���`E�@�/�����f���|D>�������?����O~�t�� ��K<�o(��o��o��������'���^K����+w�u���
o����b���V���n+]����M��G?Z:/w`�#���n}���_��_q���_i�4�^
C�@h:���&(M`v1/O��(��+R5��!��#p�������!�?�W��s/����������Wi*&���pb:�D���+�&4��Sl�lv��8�����������SO���s\�{����/Kf%�l��6/�
]��������������H�[$
��CeN�-	��[��&BE�9Y @�wJ��$���+��"w�qGir�F���3288X��������XLXq��q�(�����>��������X�������@�T>��O�>���y��+W���]�J�~�W���.�����9h���� �t�{�M� �0�}z>�i_��vdE��XS�,iJ��L,a���		s���IP��6��_��� ��	���3���K1O@�@0	 ���>����������q���@>�����|�_�w��]�nmzmxxX����������P��l����x����E�����y�K��]����_>��O;U��_��p�[<xy���!�'�����\ �-�J��"i9G8a)HL@a�)�	t�[�����H8�&���*K�o��
����Y��������	3� ��B�0Y���X���G��z�h�����t���o��o�������%{������H��E����[K�>��������tn!{����f�X���w��~��8g��#��W�X3�Mo��#P��/�WdzM4a�	g�H�	$T�<�_�4�K�M��������A�[����3�w@����z�?����_�03@�@ ��=^����������4����Q����7���~��~L��o������(�|�;e��}��L&�������_�P��G���������'��Ku�z�)y���T:����sss��w���w�w�����l=\��^���g����7�0xG��.�&LD�i<L@��&}G��]Q���	K�1�}=�[�>{xE��j���F���!$�{���\!@�#�P"x6k�����d����1-�����h�����mo��}�k��_��W���+�����~��7��?�3?�\��?��?[���o~S}����f�	%���f���wx���-=C�o�w�Y��@�;���9M�W�������u��@��N������]���f~)/�9Y��G����������#)qt�}��YZ��1;Z�����g��HoE��f@�@� �h�@��_���}�C����o��|��-�ow����4�hT����e��}�c���|�T��~���"PX��g>#��J��|�Iy�[�R:��`}�����=���}�����6[O��GGG���� @��2�)Y�u�R^���������%��/J[4-�HF�\�}� @�@k����[c��� ��@(�0������g�y�4��_~�����5���Jooo��|P����:���.�~��K����/��������/�L�Q,��~��8�j�%�%G;@� ��VV��Xb!�.��N�Kb����#�"�hF������REB��z�@� ��J���1 @� �P�C�����������u�]�������8����R��|�;��?�����OK�?����{����y��k�����P���?�a��V��_i�U ��� @��$�YM:��E�8Q�h��&�H�h�DI�z-��"@� ��#�P��L��!@�@(�9����O|B>��������4�u<���}��gK=Z��X,&'N��c��������[u�s�=�*��{�'�����������9hr65A�������	@�a�woQ�T�06����Y�2������j���HOGL�����{;���JW��Hr�O��\����XTv��)[�����M���*s�lI�7!@��B������?.O<�Di�ab��}����������r��U��o}�[���#[5q��������s|�������b��D�z�����}�����������}���_��W�mo{�S���m�&�{G�/���3�F��E��#��{��\�3�yM�dLEc��rU<��k�	�z���=q���bvqEN_I������0&b"��r`8%C�zB���~.@ �������A�&��MH�@�@	���e@IDAT ��#�0u�QHp��a9u�T�K���������R���������N�����K�d����[�y�{����>��������o����/�����a������������_i�4�^
�� ���f`h��!���[�hSiB�M\nP��r��������%"����Z^y�����ddbv��"����5%���D���{�{���~�B	��E�!@��B	/����_|Q�����J~�'~B���/���;�x��
�',:���n�W�W�����V�z}����������(�����,o��K��,*��={J�)l-��c}�{�����x���1#@�/�w�X�y@�{����+�mb\#M�,�e)�}���s��kD���������29��S��*����%�����e����n��U}�}+:��@�����'���V����p� �Z	 ���`H���������-���~������K���z��������~���}�C���O=�����o.]���[X*�b9q��;v�x�9����I�������.>��O���z�����������0YN<'������!����L���=G\�&
�[���nsK�������k�d���#�Qb�F[����#�����t��5Yz�T��U�eT��^5:B p�����	C�j�{��h@�@JT�����������~i��������~w����O}�S�s?�s7T�O��?9"�D����}����_��_�������_��������>�?�����[��/~���{�n�Z&����������?Ju,M����%�J����_q���'�����~!���������g��Y�<1�h
�L<QP��>�uV
�����hB�sX�	/��F���4z���=c�F���$z��k���&L����?�`&����5a�� �6��m�MW����G�����t��^�;���t^��Eq��?����p��G�\.'��d�/�z��������S�����m��vS��~��,a������������x�9�{e'�EO���	V:��/	���4���'�wO�6�SK�a��B4������N��0P�����jt�z��G�����t��G���	A��#����n���kB��������k��������jQ���F������%���}j�zJ�Ku\hW�w7��.�M���=������. @n	 �pK�E�?������O�V���$mmm��J�(��YQ�������o��D��M��:uJ~�'RL��])�rcc���q��{C�/o��+�H��U��!��{�������9����NZ�Z�	�mG4qp$)]m�?�l�����=��TuyD��9�+%C�1�����dF�k$�Z���+z��?!�
"La���y���n�������M�I]������H4�"Q������e����M���`���C�
��
-�B� ��B	��Z��w�!������c���k��V�����/9)1�}n�����������x���	0,=������]�����|�c�{���l�������r^<x��)=B���w�Z�yA�����3
R��*�87^Hu���>�CW�M��Hm*`���X������H������;S���|(K�q�jFL�Q�h����,�DR��n����NTaB�K���������z,����m�O����t*�X1��@�����l��[�����g�� �F@(���Q"099)'O��'NH,����[�=*�x�,5��`uUC��9#�?������������#�g��MZl}���m={��B��Z���"���^����k���&00��E�����E�po�Ic�WE����k�k��������#Ta�+,�D���UE���v�����=qY�H�*��H���Q�����OS��.D�h���xK��wo��;�D��5� @ |J������^U@�	J���6� ��W��X4��*n��-O�`wLf�R�H!��<,��	$v�����.�M�jM�7H��Q4��H��y���\!6|��������7g�@�j'�P�v����^!0"K�@���
AQ
! �����.��e��xV,�D#���+�L�������(;���B����lU"�����bG*����*�R��l�,�#��{�L�� �)�}S4�� @�J�"]@�'��W�m�
 P)��RR��@�	����a�V`i'�]���419_Cn�2��V�����tx��(3�]��b	��a[����dD!t���SSzt���-*�
)E4��d�+���J:+��qvU�����~Im��b�<0�tRt�v6�>�Xc@ ��~�UY����s�* @�!�P�>�8�n@��w��
����n�&MayESsd5�DZ���Y?���	M��l�Jn��t�H��&��6��#*���� "���T��[=�E�p&�PQ�r� �(
*��
Z,,eeE�5
��a�&R�%�5�����i
j����E�,�>����Ht�����Q=�h%����3���X���v^�W�fv�@ ��~���7����3� @�@(Q9+jB!&��W���� �����1�=��m�����*���W�E8hOFJ�#:TH��b"��	]��&�h��r�	[��L����Q!��\����~\�H���]��+�7Y[������~�4a��z��8��U��*�(���D�/g�J�ZK=UX���tw���^?���[��v/����u�D�^����6N]���M�R��hbE�%���!^)K��w>� xI���t��c*&
��	��5#���Sb�c�9�`�9T4a���=�="%���V8���K�2N�K�aQ"z4ZD�F/
B�it�QM�R�c�W�5:��H6��� �T�0���%��a	K�������w���;*�����+��44��?�k���a\#k�
�w>	� xI���t��c*&
��	��5#���Sn��4}���������IiK���<p�
����w��� ���\,�D-eGOL�ULbb�fG��e�nk(�U0a�	'��f����A`+�
�% P)��RR�� @�%��F@ tx�
�IY6%��o���=t&eA��@����h �,�HD�N�U������B#P��W#P�����*���m8��I���5 @ (J�R���^���s����+s0xJ�/�C�W��wK�rQ#MX:�+S�E����M����OX
�@a�<(�K�o]Z��&���~�� �w%�n!�4�^
�� ���f`h��!�� P��gT'qIEibl�9������'��2������m����������U�V���� cU�<��P$�A^swC�Vw3u!��������!@a'�P"�f}�@Ex��� 
�{(��" P��"LT�@(���M4q�j!���L}Dm��t�E�-����#��HE��v��z3JN��
*TQa{;�k������<�\�kk{[8�Ju�N�~��s^��@A���������f�d����7p�TA�M @��B��QQ3��l]��	��7��a&������
7����YM��H�fUAP�X;���T��!�Z�m*�h�2��&�r29��I��/ih��E�88��[v���Qnn�^�{sW���@9�{9*\� @�^J��$�@�&��W����!����
�!h�{����!��@#�})�*5=GDsc���C�@��(���L�T�����s����o��E�8�3�'��7�5�@#��y�cd@`=�}=
�!@�7��&J�@ 	��H�1iTE�
� H�{ ���!P��*l�j�������L9Q'
�',
J=��Y�E� �G=�6������$��7�6cA�Z�B���9+�����.A �����eA���.A ���pvay��<1�',���(�+��u�7.Gv%d�P���h�4�{��30No8r� ��-enlF����p�#���������7#�u���>�n���L8�����bj�:�D*aQ&RrxWR�4�
%8���fl*+�&����c{R��L!"����b)� �$�P�%0�C�$��W8��� P��^�
� N�{8��� P��^�J�\;;��SW221�o��(#}q9��(U�kJ��}vqEF'�re2'�37�}iOF��mrd'�H�btmY^�{�e�� �@��
88�Z�^�jy�����V�:knU�{�Z�u�"���~����V��hZ��g$s�{��+���JD4�DRn����Q&� ���z�����\Vq��F�XL�n������Q�Ll�
��z�{�C� ��B����@����:n��@	��A�s�@u�����
A$���j����F�8�Q&��e��F��?�qo-���Z�})����0q��tN��en�����y�]���.@�3���g��c@�BC�DhL�B �Z��U=�B X��`���B��{-�h�`���e�F���L���K�QM��6�2����"�D#���Xn���2N�G�,T���dB�1L���o�@�'����?z� @ �J����
��^��"O�	Y*&��W���<�=�&l�,%����G�����u9"�XL$��&�p�vY;.�+���cQI���z./����������f�hOF�-]��������1W&32ji54�FV��u���]��d�K?@�n����
DG� �$�-iv
l$���F"�C �������A`#�}#�!^�{xm����Q&,5G#^�o��hD�*�(-
b��F��p��� UD��[4�X�
B,,���G��&��4ZGGJ��kJ�Z�UD���>�xMX��:�����E�Pa�F��6��F�=f��L�U���5��	�0���`b#O�!P
�r�^M?�� @� �(G�k�@�����L��[�����g�-Go9���&�����k\�y�2q��(5���Eih/	
�8�Q�Dk{�SM1�E��mqMQ<Og5DD��N]G���#*��k�N�.���dV�9��H,��3?K�ab�=��w[!|��|^^<�,c�����o(!wh���u!H*lK��0��	���>��Q�������=+� 4�B�FPf@��x����� �F�J:���	���7�@���uC����H��F�8s%-�������Ee0QA1���+��-!���-l��������@6�XB?�VQ�	#F�Ab��z��/�Y��y
�Qa94��;T0aQ4(�#`e��s2�QCfuS��z�ZJ�~M�b[�F	�=�BkG����� @�F�D�Y��Be	��U!J�{(��� P��^!J�{(���E]���S��2>�D�(�w����
#��@bG���M�p�ZV^8�$�K��K��N����5��&�r�s1eZE�+*�(�"��wE��P�K"
��B����@�K@�JJ�Pp�2�Z��������fq�����V�>ko5�{�Y�1����5-��1�2�m����
�r)5j��XF^:��iJ*L���c{Rr��6I�k����k�BX��1�&�X��L�u������F���	(,�D;oKm�
|�o��� TO�D��h	��^!2&K��6��mq!"�����,�������	���k.��n�z�������YJ������������k��v]����5/��:R'�D$r�����^���������*nRj�:��iy��r�b��m���D��X��e��]�%M�b��2y�VeE��tD��=*��1���O	��k,F���Sa���XX�X��c>qc���3w���T���.�� �M ���!��"��Wk����6������[���Z�f��Mom�u�Q�T=�[ZdTX��/~�/������B�rL���l���u���Zw����8/������������_�RM1������m��}J�j�,�1��v1-�/.;�,^�j�JD4GJ��NmU��g��\������q4qD5���]�:c��D&�0{7�8k�h�������i�OL��U���V7�E�h�N�����'�<�J�����-@�j&�P�f�t��^a�"k�@e���8Qa ���������+�D�`X/4(F	H��E� �/����0�z�{qo/�m3!D�
!��}���((
+
b��X`rjN�����Q�K�����L8sm���e"�W�/�k�2�n��f����Rb�&n��Y�p��`..Z����"V�Da�Q�����ZKYP���,)� 
���}��8�R��#.�v�dW?9Y6�����D8� @��J��&}A�%��W`M��!����
 X�{`M��!����
BN�^D�
#R�1}�]���fQL �z���
q����|nIN_�z����ZT�b��B����>G��� �����!�4"��	zL�[���!^-��+��?z:bN��^���E��[���9���y=V�J��;*���f�$����/�?����:A�w��? @�@(�[z�D����B�F�{�i���d,�
�	��5�9D H�n�"^:�,���S0���FH�8�E���%#�b��RL(1��	M8����/�?����F�H���d`DL^|���^��>!@��B	o��; <x�PLu ���"]@  ����iB���:@��@�}F�������>������11D�����Ov�e�����*�0���E���J�6��C	'5��'Z���[�F�� d%�l=���^uCIG�=���&b����n(��'����DLu#d�6���O/��\�n<�w�J����J�n�>�����#��c{�o�����XZ��EM��a*��s����3��!,]F��!z:�9�}�/�f}�."O�p��"WS�������H���d)=�Ws�K�A�w�0d� lN���l���Z��,��	��-�@��[��,��	��-�@���jd��O/�Xa�����
���>�����Z���U���'�T<1��	;�u���[�U��")X��v]k��Ma��v�w�E��w���K���;.Nd4���W�(��rh$){w�:&`���ds��H'��l� �)�u��Y�33�(��1IE������2]@��N���-�� ���?�4�@ ���%@�B�{������C`D��
	�����g��xv-�C!
DAQB��RI4�X���eM#aB
��`B
;����|a�.���X��:��%b$� /�h�E*�H(� ��~�PP�E(TD0RF%DyhdjD4X��F��#%>BA <�
��8�@�w_�������l������Ux�q��u���=����a��y��������~6���k�`�m���|pE�VV�,_:s���_���3j�������&��+���������0��P����3��!�_W3�O�F�����Q����D��v~q�Z� @��J��q?S%��7Z��pv�@��~�@��@�����I�@��~�@��@��}�n��Y�Y'��_/���x<U-{�7{���?���=�:�ck~�����VT�?����_�L D\^��:�g�x������	O�xj�����'�~���@�a(b����g;0�*���ZOV{�f�UYb[ @���%$�� ���i��}$���~���#��������~���#���������f��x���<9;|���M���`��96�h�zy����3@�f���A��D���0���e�je��.��cjr"@�
0(Qp��N�@{�hi�R$����+$?�	���,E"���~��B�#���~o�R����%���Z��f��%���zkUk���������ZOU{���nn; @��D%&b�]�FK�+l��V@����5]��]���#�[��[�t]@�w���o�@�:�;�<9s���/~���M:}�A�N��� @��5&`Pb��{br�FKN�����=���r��9UC.�
������I@��T
��	�G�>5��w��e��O�����93����kU���V��u�������������sf�_���7TkUOU���Qb�v�{b� @�cJ��q7�%��������n�>�����%������v���t���O��~��z����Z�����_WK�9��j�<o������v����]��s�|Cab��!�g�!�`�3��]'.9��f 0��A���lE�@�xu��v�@C@�70\%�q����=
���p�@��{�l���=�������g���=����A�
f�6����9k����7s�9�T��~���U&��X���eS�+������g�������+���[[{F`X@���M�������g�������������L��@�v���a�g�[g��k��b�vh1�~oS( @`��A�9$� @`xMc����
��i����F�>�U���*������{��4V�>���������f�#�;sv�/�������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`Qs�@IDATP��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Z������
M 3��YA�C ��~O�+4���{f����=!��2���D: @�c%:VP�C�@���87��(��K���	�	��87��(��K���	�	��87��(��K���	 @�@9%���L	H(��+!��2���D:
����B�L@�gV�H(���
M 3��YA�C�:&`P�c�;�	8��s��@�������@��~�s��@�������@��~�s��@��������#`P��Zu&�G}������e��U�n�i������`�
��o��ECY8���yy<H�S��S��3�����x�@��{��ig�+����� �N	��N��� @���JdW�5����^]q����!�R��]��f����g�Y}����,Y2g��>�:��c��6�l�c����x������v=E#���~��:r#���~o�S49����#7�
��v=E#���~��:r#@���(����A8���a��������N<�����X���Ku��7�|���[o]]v�e��^���]#N[���l]��W���V@�g[�h]@��N* �l�{������{���V@�g[� @��N��D����z��d�MV9��A��K�V���[���x ��n8�u�������V�n���������~�p����3�E@��R	yH/���{���\*!��{zc�@ ��K%�A��)`P��u����/��z�k_[��{����7���=�����^���s�����3M��F������o_���Z����Z�����.���z��;�X��G?�o7�L[�����V��WZ_�	�$��s��\���i}E'���~��r!�V@����@N�=�j��tO��D�j����S��Tu�G�1�����%��+�<�H������=aH��+��^�����+��/���w�����v}�O~��j�v�o�+�o`��H.��+9�' ���~��!�\@�''������B"�������@6�=�RH�tR��D'��Sp@��/}i6@��|0:�)��R�������s�9������v�J�
�M7�������>�������i�7��n$p�����F@�gS
�H.���{���lJ!��{rbO@ ��M)$B�:)`P��e���?��?�n����{��W��o|#:�����T_|q�>�9b����o_ii���$6�x�z�i�W��+�E���ja�$���Y�AV��~_-���@�=�2H��j�������B@�gQI @���
��liW}��-[V����N��c�Xu�1���W���O?]m��F���?>�l�=��.���yC|��_�������\z����^������Fpe�	8�Zm������k� ����j��D���~_�%���&��W�'"����/� @�@�Jt����s?��O�w��^���������������������/}i�'�'�+^��j�u������+_Y����:��c����������y������w��]���-^���jp����=�5.���x	$@`�	���F���q���K �M@��6jOD`���5^	 @��N��tyWm��:������3J�q��=��S���r�	'TGy����+��������z�/|�g��h\y����6������~w�/��/���-^���jp����=�5.���x	$@`�	���F���q���K �M@��6jOD`���5^	 @��N��tyWm�����T����Wi�N;�T�}���g�h._����{�w��S��
o�o���^c�u��:���0�.��Fpe�	8�Zm������k� ����j��D���~_�%���&��W�'"����/� @�@�Jt����s�y�k�+��r������Z�tiu����y|�m������j�
6�;��s������o�3B���.��qW�Zk���}�������6{{�����6^���X��}��@V��~_m������k� ����j��D���~_�%����A�N�w��[�re��z�
,�r�-g�zc��w�6�x���}�����p�x���m?��U�w\}��>����o{}�����^��W���]���������}x��E�E]4{}����q:^�lE&���~��"�!�N@����@n�=����@:���Vd�	���*" �-���g��������o_-Y�d6F8K�e�]Vm��V#c���x�[�2��-��RG���<�~����~�X��e�����[����8�j�TD�
��\+#/����ME$���~��2�"���~o�TD�
��\+#/ �
���ck{�|����{��^��Vm���q���7T�\rI�M�z����o������mo{[�X�J������o������}�����W�:����Lz�}��W�� @� @��.��;���'@�20(�YAJJ�?��?�����1�S}�c��y���W���O����S�����o��������^�~��C����p����"������ @� @��l����Wn�a����g��D @��n��F��^�~����_������s���.���_��_����^?�<�D}����~�z��^T�{��GW'�x���i�W#D^1(	g @� @��l��f�$���D @�@�Jt���uo~��_V��{�W?g�g��[n���f�m����C|��r���V�o�}��I'�T������=m�jW @� @� @� @�U��r���{���"�Y~���Wo~���
6�`������j�����9��#�SO=u����+���[�~l����������=��W���j���������������=m�jW @� @� @� @�U��r����~wu�i��;p���V�{������6|�3�������������W_={{�M6�|����QW���wVg�qF����>Zm��F��i�W��+ @� @� @� ���A��(����|�z���T��a�608Q?��+�ap����������W�����N8���?X���w�S���n�������b�-��3\��*�Wq4/����� @� @� @� @�@;%�q,>�<Pm��f������i�����8��S���������E���.�����r�-�6�lS��������x������^�W�3Z,^��������8���v�2m�v�
 @� @� @�hE��D+�������:�����	_�q��gV��[��l�������N?����p%��!B_�����_�r}w����/�6�|���V�XQ��=����v�/�y����j�����U���x���B� @� @� @���h��A�.]:�u7�|��m������o_�w�}�g�xp���'�\y���w��k^��W�_���(��"�Y"M_.������������=m�F"�� @� @� @��JD�us�M7�T�����
7���n����W�������o��n������������o���F}����i�7��n @� @� @� @�@��A�x���\�re����:�����	"�t�x��^W}���^��WL���_��:��#��|�+#c�����N<���������H�F @� @� @� #`P"FmJ��z�������[��o��z�_8�[m�U�@�y�wT�^{m��c�U[o�u������b�-�bN[�($� @� @� @� @�0(QS�B� @� @� @�t]��D�+l� @� @� @� @��Z��DM�
 @� @� @� �u�]���#@� @� @� @�j�5�+ @� @� @� @�@�Jt���� @� @� @��J�� @� @� @� @�]0(��
�? @� @� @� @�0(QS�B�@iW\qE��_��z�K_Z���X��{�^u���W?������^�z��_\m��V�:���������E%a�	<������4���^��j������e��U��~{��CU/|�g�}��6�&^t"��@�54��z��Wm����[l1���{�>�hu�m�U��7�t��%/yI����������:(�t�����������~��e�����w�Y�s�=��������m�������x�� @�Y����v�g����@8��������E��[o]=�������q�����,"@������8���{3��f�{�;��J�?������:�^��~n��&�c�=��b���c�o�'�!�
��W������7RF�h������z3��x�/�����^������c�����c�
���JOnc���fo�����[n�e�#�H��?���{=3`�;���g_������|p����[c�&~b�"���~���7���=����~����O��k�����^?�k�9��3q��a��V��mL�C_���z�m��*��=0��k�|:#������������Z�59\�.����m�����M�#6$@����v!@�@Q3�6�m����A��J\y��k������s�^���B���-�|'�e�/�p�7����&.���y9f�8��w�}�����~^r�%��
�o�'���,^�x��o�~���]P���m��6��?��%��o���8�i���>7���J�v�i�F�����;���h��7����@G8�������a�i������������E |���#����-Z�{��'��i��������	 @���JU.� 0sJ�^��i�
�I%n����C!^s��{�]w������v��O�S p����u�Co�7MG�h���n�s�a���9�l��w��X������d$�q��i�~�7�O��v������<����w�qN���c�'��}����.m��<�'0�7�t����dP�k_���u�w�������}�p��q����{���m��vd�6_�����h�5��x�RS�I`���W��v�e�9=�k}=����|����^[���9��(S��D�u�5�����K�I,t����J8�����;�I��x�0�c�1��1p��x�� 0E��-�o����N�k��v@�?����:�o��7^�ix�/]t��7d�W���]�dI��������S��o8_�	L�@zl�q�>���c��a�pv��v���}��6��������0z�-���_������K���=��	L�@������C�.4(>	���p=|MO�wH�w��g�=g�qg�j;�4�����=�]���/�����:�������L���H`�a@"������>��O
�^�#�1�����
�w7J�} @�@[%����d�<�H����sP��e�I�~R�������]�����K����'��'Q�-[6���)���7�	�A`�����>��Lu5T��o}k��;���@�05�r���l��O~r�f����|w��O<q���OF]����7J����%85�������x��S�_��'?��]���<�;����?<���>^hP"E��
?O:��������?��v�Q��>�$^[�=��{i�5��x��e�����f��!�;��c���{���x��s�~����"w @�-�hT8�>�C� ,\�dP"L�7��������H��o8���I`�(�}�Fp����?���{������9�����7�i���
`]�res�^����A`
��k�_��@b�w����m���������O���s���M���O��A��K�����M�@o�Ln���?���i��:��U=��+���'��������zg�u���r8�S����������u�"0|,�<���}l~�^x=>�n�������'� @�e�(�~�'�i��?���D
�_?���w���<mn������}��is8#�*�yi;^3���Q��fITX��>�����
�,m>>����~3w���m�k>���M �%�������Kp����s����e��E�,_�|x���o}�[�95/m�k�v����Wd�O��_��`Ds�j�A�����^��3��w	��?O���}h`���
w���
������.�!������h�5��x�;f!�������B���]>���{a�����w��G�_�k������] @���	��^M���|�;���`	ol�?�\q����|�s�A�k��f �)�����0���i���-��
tX �qz�����'=�IB�-t	m�ox6/�����G}�Ns��?��S�7/m�k�v���
,Y�����}�����t^�pf�f?�O�6/�wH�
���d���pT��om�[(��F����C��}���W��Uu��7(�*������hA��pV�*����x����V��W����n�m�&�/z�,$���a��o�gsi�����=�}���W��D������J�7P�'���_�&�7H�8��3�Pm�A�8t�������p������O&~C&|�x�2�D�������4�������x��� 0^ |
,�1����{����n�i���A����������:������O�8���z6|_y�L:(>�����f~��������������O�*N����~���a09|�V8��������o���m����o}����~���[��������{{��-�����kk;����O��-`P�����@�n����i���[�t���l�-4(q�q�
��|��s�
�q��������^o�v�:�+L$0��.��^7|z���I.�����������I���?���g�0�|��v�m{�?p����m��]�����5�~���%m���B�@��{�8�~��W�L:(������'�~�������������
�)������>���.���|<�[}�+��tm�&������U�}�{_���N���O��8����;�X?z>�=2�I2M����^[�����~ @�l�e�O��V����B�Gu��Z��������5�S�o\�'@`�@�$Z�����~��0���|��)�z�1W�i����xi;���w73���7f?iz�A�����������>��������_|��m������
?�_��v���v���
��~�
Q�����wA��a&�|�������?��o�|lC������g���%�\2��������I��L`�����=|� |�^l^�����5��~���x�\]'@��#`P�;��'�J�y�����!�2p�>!����������k���xu`W�W�������{�c����;��s`���x|��7�������a��m����'0��_��|�o��;=�9��S�nXs�WLD����>��k��Wv���|�S�������tPb�-������n�?���^[�k;^�S*������m�?����h^�~Mn;^3W�	L�@s2C7�������{��s��~���xsv �	��(�� 0}���%�i}��O�u����9����em���B��X������K��w�y���O>9�&|���M�w6�������?�v�~\?	X�d�@6�8\�~�5�.�����~v`�UW]5g�Qw4�,Z�����xu`WL��u�]7�������L:(1�w�qF���g>3����m����#0M{���@����p�����f�~��z�_�re�]���m��u���
�F���k��?��^x�
��_���{����o������kk;^3W�	 @�����N-�	���X��
J��=mn?	��G?��O����Wv�������O��O��{��s��^��3N�Y��;����v�q��~�.��C���]>���>������k��������#���/l���"�qm;�D���@��w�7?A�P2�1�J4�=0�%��8����o;^�S*�����._~��c%n����m�k��g�]o��kr���D]!0�������w�i��������o~�@����.�pV�����������O @�[%�UO{C`j�a��B��������H^�2|���I����x��~ 0W ������z����;�n<sO8�Ds�����\��
@�_�����'�~������fO��_�|y�8|�q��+���~l�+�5��2�K���q�$0�Gy�@����?I3(N�=����N�!�9�iJ���O�,��2�A��{�Y���N��C=�^��kr���D]!0������������c�=6�w�}w�y�����N� @�S%:UN;C`z�a��B��v���/��-[*|�����{n���xu`W~33���[o=vH",����z�#��@�q7v�}�z]x����x��~ 0����Kg����>���w�yu��m.����Cc�O�5�5�(�v��Ix���~l��q�7v��l�o`�y����<�\N<���<�_�v�I��
�8m�����_�~Mn;^?O?	L���d�8��)���#����kk;^?O?	 @��n	��V=�
��h������1�3��K���q`���7�\x����m���B���@�#���;�����i<�����<������o]�����5�K���q�$@`r�.�`��:��z�%�\2�Xs���h�J�=��w��G]o�v�:�+�P�y���s�|���O�_��p���vK�,������l�7q%������<�H�U����� 0������ �~Mn;��;hC�s�=^_�_�3n�����
�Y�xq�i�����N� @�S%:UN;C`z�ov.4(1�]���%'���q�UW�����
�'�|�7|������1F}��(�����L�\���h���%m��
<�����������o�y������.�\s����N:�^�v�:�+�P����l�7�>�}�+W�\P���Z!�����-��
�#�<�L�G�~Mn;��q�)��5_���?�cA��n�m`�>��zM�����N� @�S%:UN;C`z�c
J��+on�����X��m������E`����=��c��B��O�6����G�k4���B�������l�K����]'0m?�p/��z����?��^x�t�K�j��v�mW/	���|,��s��W����5�_~y���xu`WL�@�7������	'�0����]��'����
����P.'�e�G}�>����o����v�yF�p���������������
|�3��__���)��� ��~���k�~���x��
 @��"JY6I ��3�\hP"�^���[����o�6O��o�dl@`
��{���@���=���Wy���R�=�-��c���]t���m���)����5��������X�:��4?�:�p��0d��N��v�fl�	L�@�Z�0�4����p����o���kts���:�~l���a��'W��m����L�����?��������������;�������
$��)D��]���5_������K�~���xu�� @��0(��r��#�<�ZhP"�����8L�.�S0��Gu��M��7�	�A`��K�}�Or��QL�o�|���Y}_���yz����p��x�� 0eK�,�������~z^������>7���?�������wo���/�k~r5<����x���&@`�@�������.�,o�/�!bx���/���ol�v���n�2����{�?��!�z��y����=��:����������s$�q��a���T�c�{��������:��w�u���m���v��d� @�:!`P�e��O��f�$���Mx�A�|������O�5��:�o��������o~���
�\��o~����`��7d�o��x�^{��(�g���zX�v������	4� ����N��?����~h~�<,���0�0j 2dv�a�F}��xcw�����
J��+v��V��a�n�a`0j�-���?�_��7�m�$��6���|����B�#k8o^�~Mn;^3W�	L������i���m��uf��vk><{������7'aw @���(��v��t
4��dPb��e���hs]�
�'�x�|���I����q���q�$0�{���@o�>]�x����w�ys�>����o��3C�/���+��	����_��d�g����A`�����������?`�����9��;�������m��D�mO>�d��C�&T-_�|�~��F>�;	�VeP"�V�~�q�C�?����$�����G]��7�9�G`Z�<��9�y��'�V�X1@���~v�v��G]�~Mn;����G`Z����gk��o|�g�����_�G���������'�	 @��n��F���h`M2(�����#�v��w�s���2|�&t����]'0-�>-���I�:u���+G���[o���g�����|d,{���>�L��{���9��a�q�}��}suT����Ns����
C�o���k-Z4���c�\rI���m���� @`@`U%��~��s�:���D{�����005��v�q��~� >����_x]��s�=G�^����^��������k�����^�C�h)<��6���{mm����	 @��2J�Y7Y�z���W�9��D@���f�p=l3�T�M���5c�N`F}�l��=jP"�=�������o��6�1<��^��|�����\#�u�p&�����e�v�6|bm����������]w��f���5c�N�����J���O|��{����_�b�	�n�o(���J`�����<|���?pF�QXm�&�oT��#0MW_}u/|(a��G�>��C�^nm���v�i��}%@�]0(��
�?h;�O������n���>u�����w��!��7���@�i��������Aw	�8��SG�A"�o�|��XpH���x��~�V��}�{�7l������a�-�q���;^����^��7������	����_���c��w��K/��������x��SN���nOzi;���k;]���B������g}�t��~Mn;���a;]x��G{t��c�0y���N��m���v��w�� @�@�k��fP\ 0u3��^�x���u�]W������L�?��?�6�x�(���E%acf>�^]s�5��w�]m��V�=����?v�<�o�����<�����7�<�_xM~�+_Y���Q5����}�8w�qG5sv������������[l�E��$,"@`���<g�M�M7U/x�������=�yc���@���{.����#�<R�������[�u�Y���?������zs��f
��+0��������o�y����l���1Y��^[��b�� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @�;Fp��IDAT @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @� @��0(�O-dB� @� @� @�$0(�Xx @� @� @� @ ���B& @� @� @� @�@b����'@� @� @���o�^C���?���Y"hy��6jciJj*��ev���������1/i�����JJ����������%P����BJ1�t<g��y6�3>5�q��>f�Z���~����_�&@� @�@�J��� @� @� @� @�J\``�'@� @� @� @�
G@P�p��� @� @� @� @�X@P��= @� @� @� P8���.�� @� @� @������	 @� @� @� @����(�wa% @� @� @� @������nO� @���O���O����c��}���?FQQQt��!JJJ�E�Q�V�J-���S�g����uk���7Z�n�;w����G�:u*u�d�o���7o������dM���q��WG��
+}? @� @��+A��2N� @���A����x��7��W_���	F��'ON�	�����������cc��Y��6z���6mZ��_��sr[�l���������+�;?�����3�D�F���) @� @�����DU�\G� @��7n\D�;Kl��A�\�2�w�^��u����?�� Q�����N���������j���~���l��^������Y�fOP%@� @� PIA�J��N� @��BH�
��
+���5�\]tQ���;-ZTf�_�~iX�L���~�!����s�q��wF�v�b��]�v��8v�X�9��9��m[��t/^w�uW�zn}?��s�����#V�Z_|q�� @� @�TV@P��b� @� @��� BHH�d��o��6�t�Rf�I��k��eI�"	?��3g�D��}c��5�R<8�|�����+����G��G)p2dH|��g��������UW]����
���{/7n��v��,�����sc����
 @� @�U����� @� P��N���u�f+�0aB����Y����3b��1Y���^��'f�O>�$����������_EEEY-�(--�#F��y�r�X�lY���?���5+F�������_~�j��j���m��S�N�n$;N|��7Y_� @� @�@U%�*�: @���������Vv��7���K+�l���'c���q��WF�6m��k�-�SD��=c��
�����-[����6~���h��EV:th|���Y��;��%K�d�M�6��Zd�s��{o�KE��Mc��}>�9�� @� @��+ (���  @�����V$;?������4iR�+C�f�r�����g����O�X�zu�k����{�w�}�����cl��5m�8q"�����������+Wf��?��S>|8��o�~B��9j @� @�*+ (QY1�	 @� P�o��V<�����[�nq��w���^�zE�:u*�w���t���`�����#s�����>t�P6�|
�v���n���Y}���1s����A� @� @��%�K�� @� @��JKK����K?���'4h=�P<���(�>�]!��!����
��U���qc���#���i���g��� @� @��K@P���� @��Y`���1q��8p��_�����O=�T6o��i�"+T��~��4 �l��t��m�y��x���r]g @� @��& (Qm�~� @��/��.��/^_}�Ul������2eJ�E2a���q���fs���������_[�l���;g����+1~����A� @� @��%�K�� @� @�:+V�HC���+���m���={���}����8;vlL�>=�W�q���H>��;F�o��F�[������z�6mM�4�p�" @� @���
JTV�| @����S�"	9���#=�92j��]��<7�|s���3��{w�k�.����[7����'V�^����X�n]$�m��e����������5�$���~.��C����K�.-��E6�A� @� @����2� @��.���0n��l���}���+����1cF�3&+/Y�$n������S���m[6�f�����w�?�q���4q���l���#��a�����t7������{���n����?o��vV���_���.�� @� @��" (Q5� @� @�@�`�
7���.�����>�vu���1bD��3'+o��=:t����}��x��G���;��
��K.�jg7�~���9sfVJ��={v����O�������
�/����/6o���u���r�-�|����A� @� @���U�s @�
P���4�7o�}�"Y������^�K/�4[���'�P���c�ZIII��D�S�O�NCI8"w$s>���2;A$;I������k�����M�6E��]���3g�o����L�;����&M��J�j��6lX8p �-X� x����A� @� @���U�s @�
T���?�!C��[]�+C��-�����n��2a�d��E���{�)s]����g�Z�i��m�8q�D�^�:���F2>u��2�Ij�q�N�W����G����#	X�}�92f��uvI� @� @�@�%�L�B @����i�b���k�
4�$\�)*:��_����;wV4\�6n��4(Qn�?��k�����w���d���.�z��e5
 @� @��D@P����� @�,�&M�+V��p�-Z���n�)�PE��D���?��)S�������D��n���1y�����[�t�s���	b��9�v�H.Jv�H>����A� @� @��) (���t/ @��@J��cG�Y�$���u����K4n��J�=r�Hz�]�vE�Er�6m�D�F��t����m�"9�j�*JJJ�y��QTTT���� @� @�@>A�|:� @� @� @� @��% (Q�^��!@� @� @� @��	J��1F� @� @� @��(A��:= @� @� @� �O@P"��1 @� @� @� @�F	J����a @� @� @� @��|��t� @� @� @� @�5J@P�F�NC� @� @� @�����c� @� @� @��Q�5�uz @� @� @� @ ���D>c @� @� @� @�@���Q��� @� @� @� @��%��#@� @� @� @�j���D�z�� @� @� @��' (�O� @� @� @� P�%j���0 @� @� @� @�@>����9���IEND�B`�
pgbench-run-1.pngimage/png; name=pgbench-run-1.pngDownload
�PNG


IHDR^�����biCCPICC ProfileH��WXS��[RIh�P���D�@J-��TATBH(1&;*���E�������
�Z��(��XPQ���
�7!]}�{�����3g�S2s�:�|�,� _Z ��a�MMc�P
���(d���he�����
��\rUq}?�_E_(R@�!�*�7�d���Po3�@��b�
�0@�g�p�/S�L5��o����2���g����BA6��~��T(��cq�@�B�����I*<bGh/�x����8����9���gbu^�B�(dy�i�gi����)|��F�#�U��^����4����1��ZC�N"T��*VF&��Q3�����	��Q�A.�����3�$�<��jA�J
x���E��
�z�����%�r4sk��~�*�enG�],�
��.'�@L�J�c ���@�����������2^�-�l�4"D���g���5��|�@�X�X�����qb��>�N�?~c��DRN��H16z �(4L�;�*�&i����
B�5s�eyq{�,��P��!6U&h��#��T������Du�xFT�:�D.,��-L9@��U��G��A6W�f`FJ��>@�"P���B��4�U?]AV�ha��\��|��oe�,���d�j$�y�X�`S�}��@M�F��e�X����Hb8�	7�q<>�as����@�_�	�m���+�v����b�7����?\�q������� ;d���)p�=�={A-W�*w���s0��j����QP�%����Lmgm�AUE���:����rG������B�G}k�-��a'���i� VX��;�R��5��

x���'�H�����TUR�V����Q3
DST�;I6M.��8�+ b���aCY�n����)���+f��a���+~
@������]4���-������a�:0�T�@)/T�p���:pG�`aF����`F�X�R�Xg1\�r0�sA	(��j�l[�����Ap�g�p����<��
�E���b�X"v�����@$�F��T$�F�����C���:d3R���@�"��6�r�D^"P���9j�G�(�B��h6:-B��K�
�
����G����}��`�������1.��aY����b�XV�5����ua�q"��Y�+\��x.�'�����:|^�����{x7��@'�\~a,!�0�PB('l#�'������H$2�D�S�9�����
���&b���D"��\H�X�T@*!�%�"!]$u������dwr89�,%���;�������]���KR�Q�R�R)�)�^���@M��P�R+�������WZZZ�Z�Zc�$Zs�*��h�������Os�qi�4%m	m;��v���N�����i��z5��.��6C{�6O[�=[�R�N���s���Gg�N�N��>��:]�]{]�._w�n���k�=z�z�z�z��v���{�O���������L�c�0�cc+�8���h�`�3�1(3������P���0�p�a��!�v&��g��y�������F�F#��"�Z��Fo����K�w_1�`�2	3�5YnRor�7u6c:�t��q��!C�����;��j�lo6�l��9�s�s��Z�c�]L�`��U�-:-����U�G,��YV������2���RZm�j���v�N�.��m}��j����Ye�l�mki;�v�m��M;��Nl�����[{������8;��jn;��';V9^v":��r�68]pF��������]Po��������C�C��^s��r\]k\�
c�V<�~�������/~r�g7/�<��n�F��5�xD�������J��t�p��
/<]<E�=�{1�F{��������[�]���c���������^�>�K�
���{�����_��^���]�s�w�?�0R4r������������������AUA��m�����s�89�]��!n!���!o�~����P,4"�4�5L?,)l]��p����������M��������x�<���=�g��Q-Q����uQ�����������F�};�.FSby�+c��9�M��}qL���1��G���?��H���3�MbH���[I�I���d�������)�)+R��;s��T�TIjC)-9m[Z���q��u�{���_�0~���L'�M84Qg"��BFJ�����X~�'���>�[��<W	;E���YY+��dd������]�d��ENd��������s��R�v���3�H�����I��Nj���Jd���&���-��oS ����xx?�tT.P�+,�,|7%y���zS�S�Ms��h�����������gX��;��L�����Y���g���?�cN��s�ss��Q�V������y�������`A����y�����_(Y���c��E�K��g�����>.,>���+~�[���u����������.Z�c����V�^Y����t���W�.�,����F���"��a���ek?���RR�{���E��nn��1xc�&�Me�>�$������uU�U�[�[
�<�����������n+��i�t{���-�>��;�v.�Ak�5���w]�%���Z���������=�=O�����������j��m�~���:�nZ]w����!��������������V+Zz�zx���#EGz�dM]G��>h��|���c�[����:~�D��c'9'��
8u����g�g��z��;�un�^�o�n�;�s��������m�/]<z)������g��\i��t����k����������f���[snn����S~��n��N�n�n?t/����	�o=<x�P��c��G�G��-W?qr�3����qO;����v����������;��s�c�;^�_��\���������{�z�������������O~H���w�G���ON�?G}�����'����G64+����������w�~A���~�V����Z�����&��f?r�:�'��c�iD��������]_�+sH�|����n������
�&���*!���O��.��26|#�{�W9~�U����_"s���!�o�eXIfMM*>F(�iN����x�^��ASCIIScreenshotd<�	pHYs%%IR$��iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelXDimension>2142</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
         <exif:PixelYDimension>1276</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
Q�u�iDOT~(~~E����@IDATx��	�5Ey��qLb�(QFYDTq! .(��hP\H���
.���A� P@A"e�MDpA"Dq"hd�AG�e&�I$������[��z9}��=��w�9�����k{���}~s��$ 	H@��$ 	H@��$ 	H@��$ 	H@�@g�Qx���;H@��$ 	H@��$ 	H@��$ 	H@��$ ����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	H@��$ 	H@��$ 	H@��$ 	H@����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	H@��$ 	H@��$ 	H@��$ 	H@����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	H@��$ 	H@��$ 	H@��$ 	H@����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	H@��$ 	H@��$ 	H@��$ 	H@����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	H@��$ 	H@��$ 	H@��$ 	H@����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	H@��$ 	H@��$ 	H@��$ 	H@����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	H@��$ 	H@��$ 	H@��$ 	H@����	H@��$ 	H@��$ 	H@��$ 	H@��$��������M��$ 	H@��$ 	H@��$ 	H@��$ 	(����$ 	H@��$ 	H@��$ 	H@��$ 	H@=	(��	��$ 	L��~�����������l�Iq���g������-n�����b�5�,��G,[�	H@��$ 	H@��$ 	H@��$ 	H�?��^���?-����~�*7�|�b���Y���I�������}�s�����/��u�Y��j���-���I��?�yq�e��\���nZl���#�i�;����w�np@���=��h��n��8����-{��Tp�>��_�� ?������|��o~S���Z��C���	OxBq�������g� �����GR��g?���?����.��K��*�O��?�{���?��?��	'|T��_�B���O����m�Y}��K�����������ys����#@�������w���$;��C��F�����'`����p�+X�m�q��b��~�����������")�sBVb�z�����������b�m�]����������/\��������[W?���[n�����N��?�x��_]��S��$ 	��Bxq��W���gFn�6�lS����������G1r�8���/�rd�V?������3���?��?*v�e��������Eq��G�$�e���}G�W.���!�����)[m�����������f�R��
��r	��EGwh�'R ���C��SO-����.;�����k����e]����Kq�!�t��q�����s����7�������8��F�?���-��s���.(����������5������.����������� ��/;Y���hSi�	L*�%�sLq�w�OL�-��w����|dtk��(�������^�����O~R|��\����1������
oxC��W��Vb���j�'��w���&����:�`��%#sA+������\]84��;�6h�w#	H@��$��������l�^���{
Vj'����������2�D�8���-|��.����/[����x����lY�#:q�_{���M���H���<���\��^������!��b:���&r�G}t��:�h�+�)�H����_����QGU0"�nC	/>�������������I��<;�����n	j�������A13��Q�/K=�.��_�����A�����lY��^|���/����,;�?���/����?��V�c���U�E��W�E7^������.����/;�P��Y�A�]�?$ 	H@���^�	���G@���X/��Vj'hl�+�,����$������F��c���M��L{�����l�I���f�(����"
���;:�����������j^I�����w4F�{��#�?�6���|�}�����^,�h�6�|a
��$,W�Sx���Jmst'1�=�������H"�^�|����7�<r�q(�hOp%��
/�?l����Im}�5�g�u����^��
:rA.��$ 	H@cPx1<w�.�����g[����w\���h�-�y���g<��������������/*���=�)~�wwdy}�8F�x1�!�`T����!�1���������o��t�����[4C/���<u��bX�F��g������kq���c6������)zb�m�L�E;R��w=�(�I���a���6���&{������C	/;���J�:���
/�\�����v�A�������>������3��&`(�������r�$ 	H@�I@�EOp�6}
/��|���R;Ac�\��o���xD��X0�������>���o~S|�#�����C��b��7.�Yg�����o�PFK��?�o�������t.���
/fs����Rt���)Bx��g�$L���T^����������N�N2������O|�]��z[������~�3�)�������B�Eh�]b�l6w���W���?��"������w���V��U�E�sP�"�N>�A*���M�@S]t(���������% 	H@X�(�X���_����ySJ�J�e�����}#�G�H)�9����'�}�kS���ss��&��[l=�����rDjd��[o]�\�����#{����a*mx7�tSq�i��H��^����{q�AU�[�I�������wr��!��SUx���{���(CO9��!�]tQq�e�������e3�-N`Z�.gg��	m���/����.�_��Wk��Vt��(�������^���Dt��"7�pC6EC/n������N9"r��u����n�C��}W��U�E��X�E7^Cn���|���(gC/f��]��$ 	H@�@W
/�s��Px13�s���	���t0�
GK����
a�o�����b�v(��2��g�Hly�D�Xs�5S���		�($6M	N��?�������1\�^L�>���K.).���V'Wx��`h8
��{�p���uv���t�=)��;��������2<��7�|sx��)���3^@��	��y�i����E8��t��G���}&��|�;����`*�*�]w
����~N9�����l�b7Do�m����s���p����|���Y��������/���"����;�?��?X�H���/�R0�l�l�gw�m���s�$ 	H@�B@�EZn;S
/f�!N�R:A���;����+��/*�����|�+�- �G����>�&S���~�8��S��_��WOz������L9r��'����/{���-��2����E@��t��?��?��~���*w�q�_����N
G�I���tW�������}�c���R ���?}.Ez8����������Bxq�!�t~��C�)��>����_~y��G=�t\>�������/�Y�����~�6�)	�wC���WB��b�eD�y����(�n&3�-�����^�F�F
�^ �#�~h�i{�m����k�.��|Ux��7���"��������?�i��f��u�y#���G?Z�����g��,�����[��$ 	�C@��8��w�^L�B�l%t���ca�w�e�r�p��w����#��:�����t^"�@��4�]k�O@��d�!s[����m
U��^ ���+4����:C���W����ZF�S^<�9�����]w]�2&����Wx�r4<�!)<���)�vY%��H��g?���V[mU�������s��n���g<���m�P�w��M��?��?*��/�U��zZ��#�wZ��1��������#"R��v	��������/..����L��(V	/��Z�V$�2���������U�*�A�]��1��N�*�E���=�ae��c��D������*���!��l����e��$ 	H�/�}����	(��:��;�J��C'��A4�t}���^<���o�������������e�">����-��`/�c����5��������q_|��#�=���.���7�,w��Px1�{�{��o|���b.�>6�����`����d���z���<�#��\��;��(��S :������q�{�L�#�z���H�;��������^0���C{�S�R��������
/���������y�w����
B��?��b��7��|�;�����	/*82��gzBp������S�DD���;��N�s�+��]D,4�@���B�E=����-_^�����+UxQ]9��g>���_����>C~2e������_�j��!��e��E��$ 	H@HXq��8�@������)�8�����kO���Qp���H����*9��k�����Z�x�����/�3�g?�Y9*����P�gne�L������?/�����>���sv���f��C����!����a�H������3��s�,����5s/���8�KF��<��g�����?��<C����~��#,���#��QN���q�|��VB'h�^��s�1�E����:�|FV�v����?���}���/>��GW����M�h�t!�;���\�G�C�F�,��4���}?�`�:�kx������k!��$������������?��>eH=�m����v�ms�3mO����Is����M����B�s�u��5g�6I��~��Ue	�q���h<��6�I�Jy�3�{�y��1���H��.����,�#��>4�#��r��pj0�WxA�����#I�y����E�������0bP����C�{�I'��r�����#��M2������PU��j��O��T=w�#^����[lQF�����#�c��=����h���^���?.�=�����#����#��yANxQ����"q�����I	/�k�'Z����C>W��(g���
������1��Cm�h�A�������[~Bx1�6���@��$ 	�A`�/�v�=��b��+>8
���'[n�e�9Z-�����}�ke������i�n���eH�>s�q�8���n�l�u�W]uUq����������8���$�3��!G=�^_}���P�t��8g�S���z,-m�t�3R���&�#'	mL�&t�����g>32��*�:i`>X���4�,���1^��W\Q>_8�bF�(L�0�������__�Gt��Ho2�+�O:�4�9G�L�C�p����:�t����<<?�
��
���O��������A/y�K�:��Lf����Y?(y���������p����� ��������t6���tH��-o��.�.�(�i���}��G���o���yo��c����Z�;A��*���gt��7.G�R�t�g�����#_����2#�<�gSv�z��^ �������]v���r�K��t�y�����/�F�������R���9m);_���6��S������U�zUY~��������8���#�<����N�����{d���vR�����]q��76>W�/���e�s>���^�p�
ey��-g�g�Kv�q�R����Z7�������Q�1�]����5=��y�@j���wM���/|��|��4�q���W���~�}��q���m�>i�~���[���I����I��\�!�2R���Al;i:��f])��v�=�O�~���_�S;��C����Z�Hm�*��g��������_lsO�M6��s��~�6�����D�A(|��'���{����������m'��E���-�����V�:������3}a?���y��z.}��y)o��I�%����K��n�)z���k��&���N���U��I��<�iO{���5���k�������nu��n�V��S��$ 	A`��8I�=��'Ic���^��^��<86/�G�A'k�3��>��sng9�����:�o{��JG+�eD]�N��?�����c�:#����F^Wc<��2h^ ����>�t���?:f�:����w8����v���8:�L�������t����B�]�� ]�������P:��<�U��Et��1�Dg�[�������|���b{:�q���	�;M�]ly�F��t8�k��T�����wW&a��vZ4<0�^%������O/��m�>�����.��@$�3������/}i)Pj���������:��s��)����:�L%C>Z������]�Y�N�]F�~�c+���[%,����������y����kY������6	�E*���2f�6����IN�����6��|���}
A�.!D���j�xg4o��y\���}�C#N�*�<o8!��W�}�~"����WM�S���D�����tl����������l��_��&!�x�{���"��!��uOj��|b���9��������:�M9�pn�������e�*��E]i����B7�8��u�&QW������.�4�v�m�Tb(�������Q&4
�r���)�$NQ��U���I/R�����U��X��q��k����|�y�P�s��\��&p����=�q���L�������w�.s�����j�P������6��:.����g������>'�����vU�����3U�N�
ZO��% 	H@���ZxA�K��]��u`Ti<����#��Nh=Y?_�;i�����6�^��>����J�����[�,�"��'?��Y�f���{�����	/p�������#x���j�SJxA�_<��q�����1���_�������2F�0
�I��r,��`�_7��zhy�Tc�M'(��j#��{�{�3n[��"�0=I��H����M6O���SO=u����^F����/_�iQ-�}�~��A���������n�h)D
������o.��6�zx��o�Dfi�N	/(K]�����is��61 �b�Vj��&!�����Z�jh�;F7��)��������������}����`BY�(t��y���\�������DL/U9�R;S�f>e�3����;�i�8?u]]�@8��7	Ub��Z�3
/8��_�����?��^����Iy��8����X1Z����Q�BD~�=�u�]�<��I�}(�u�KYx��'�\�0B����L��qe�q��wgUW���O��dy��5�q\)[�6G���8��w��������;��CZLxA�5���mR��E���R�/��51�2<�,~[�.�>����k��3�8������t���Wxq�Ee��(����!4f��mcsi���|�k���1Y^ |E�H��������U}�u�J����$ 	H`-�@����x8Lq����m�n�VF66YLxQ������x�z�����Z�b��q������+f)�El�>��}��/���'&��?n��p�1Rk{�[��u�T�f�����l����?��?-���'�6)�������[�h
�^�WD���v������t���4�i�����*��%}�/f�FaTJ�������n+��)�]��@EhU�8���^�}?�spM�,��x�Vx��Y�|�p���nz?&�@<G9��l�%��3�;yW���I/x6bb�w��]�C��@��8$�n���qH3�������}��q��F���p�w�b
a����Ri�+������1�.R�])dH]c��:y m���t�!��{�A������;��$����� p��GXqD���<{����%e�#s��)����E,��.J����������~��:�MM�V����������D��x��w?y/�]������+U��"����j��'�Ob�Hm�X�c��ky�(G�l:�P]x������E�����]��U�x��!�aZ<��}D�R/G�����F�;DU�a�O��{)�C�:���g��c���	�Db]{��[?j��GxA�F���l��v*��L���r���|�;e����B$SE���'�u���e������yv�c���n�����$ 	H@���^���q�� 5��G�)�6�n�����Y���1����B'Y�h(��x����"�=�������J���K�aA}_�M�����cRa��������g%BAh}�Ug$���{���������1�E}}��4���!nS�f���JG��m�����a��4��*������w��.:5qL���,�FcV	�9��um?�Y���t�"8��S��F�o: �uHKu�y��c
=���np`���GF`��y^�y���>��Vy!�Nl�w�Tr6����������� ` ��*��E�kK��
��%�7��<or��nF�7��1�Ex���.ee�8�u<w��$����`X���|�9
m�z�:p���q�8�!4�:i�^B�M��m�,e
�����(����^D�(���?��?�
��/(�����(��^��]jb=�z�}\��3�=7
X�<�
��gz
�v1�Dl�pu�����)��PG�9�'!� |8S��Fg8���=7��x�����wz����a��\m�H�	�
�j��K����wSu�}����B�.��Qn�|����1N�;��R����m�,#/%��>�x0�r\��A�m��a���FL����]�����a�Xc�.�.�')�-���N�$��h#�F�/��BM��}�FI"%��o;�����/_�:�)��&��c���C�(���~���F�J�����
/���/�����5�6�0����nG�)��>�c��C��L�H]�6J��>��c��
�K��$ 	H@�@W+Jx�#�)���w��8b���}�kI>4�w�'�v��|�������H�=�A�"�&�)���u.�^����
gq=<4�Xit�'mBS�������d���?N]"���h<F9���2�0�t�][��&z
����Pcni",�����u�:��/8�V[mU���d��8��h������x���3��)���+�������=���?8���rN]���2�7�i�3t�9�d�D7���KC�n����w�e#�iX���o_�i�NP�8`S�J��v��D��B~���g������1b��89c�_�P'T5� C����S%�/�����{�b������{��������)'��>��j��}�lq��QD8�y7��������i���R�=�6E��������K'�c�{O�y=���C��sPT�k^�u�]e�v�
�^��� �����J��qV�Nm��t<�N�aY=�p�}�6����{�a�
~Y�)`��Iu��@�,`�_����z���)�����9C|�E�cP>�!*��P~��
�-:[	�\=g�1p�0�}h]��G��R�3�"g��������=�b��X�x������y<	�E������2�c�gm��=���Q7�NA�C$��{�]������.����Up��N�
Dfj���w����$D�K���^�uc���g���UQ���}��a������Mr���g���ceg�{x]������MBx��!����W��`��y4��a�J�����:�N�Jh��g��W/i�!��s�-�g���?�zB��>���>��/���%�\���"5�+��VP��!~cPG���.D�t����m������=m�T�\.	H@���X1�_t.�F�5���QC�L�rN0D���[2iuLN��G�����'Je�V)k^P�&'��\E�0{�$�N�}��7�j��\c����_����������/�P�>Vb�U	�}�8�O��n
�$���a��X%����?'�a[����)�u�����~B�����mo{[92"�o���8F��l�M6)��c���rY���vB�������J�)��w��.��8mxs��cl�[u�I~��-8�H�����C���3�������0"���M#��>S��g
�ZhEfM�u�s�����6�t&��)�0tp�,7����#��V f�#���K"D�A@��&�LR5Fd!�k
qS�Ff���s��!em�UY�������+o����>u�I.��`��0���
�����u���r�!eQS�m�?%H�z�;����f�!��SF��7��l���{��Ft��4&��l�R"��S�QfTB��6�^���w�zeP�p�
WEG��_�m'!�@ ���IX����y��6c�6��>vl�����SFS�mC���-��&a�������C]���|1��	���<�{�}���X=z%�9b�.��A�|7�v
��~#��MJ��NU��s��\�����n�:,_Sd�-o[��q^��s��;S��"���Wp�d�4��f��Ux����b�t��v���H���^;���K�P��R��������yh����:	H@��$����^��B�:mM�(*:�c����3:p��:����)[u\:g�y��h�j�����4	/�D�9��9���J5�r�J=G_j���a����e�p�d����E0��C'71��)�	/��cN���e���9�@��&;����y!���7�%�1�]B0��R��t��2eM�eB>A������[jJ�<KM������]}n�j���RD�y���_m�����rQ\Vm��Kl������8�'��H�s�������|�QP���#�#L|*Lx�=���9����2�N�z��xw��s�
7�/��^��7s��8����l���������m�{���}�kFj����^�����D�C�h3�.U>>���-����hg�+���x/v�j�O<1�����(��c�M��zf�^�@3f���^ �C|��!4��$���kV��0"�H8]����Cm�Ym�;����#&�l��6�5���c�����o,�3N�.F��zdS��.�:�E�MY6)�mB]<78�O�;/u%�9��w^_S���u
Do1��[lQF*�o�����j�� uT��D��cP�CD����1�l�$���r,
]���t=�4��|�r�������>���Db$�[[�
����U��U`�uC�nL��m�Yj��-'�2S�p]]��r!�i_����De�"�<����C4�>�I@��$ ��V��"6-E������E7I�R�+�����dt�~��Q�#�8f�r���N�������$�p}_p���M��D�
"��1�N����]M)�
�n)�	/���c������Hj�A�N)�b���8PbF4���59+����������<�)�9�� f��6�����z������#�I3��Y�f'��K���K��E��{O�sW����/mm���.�j��<l����r�-�)����F�s��{�v����|?87#�c�������s������N�Px�����r��TG���s�	Gg�"�������e=���F�)�:���$%X��o���HHp:�c�GD��0wv�(b����F��^��R�?��O�Q������k�e��/�@�����w����"�!y��k�+u/����ZxA��b���8�"<�8���3�8���K����:�?'�����*�]�G�~����]�q`��&#���RM�C��1yf*�CuLB�S��)��w����H-&���K�9u���'SN���������Z)m��Z�����J��������������^��I�q��PV"���B�G�F��6E��}:T���������X}���w$f9�C�6��'���b�
��?���"��}���1�e�{�ws!����e�]��]�����C�)����$ 	H@],��"6�	@�C=5�_�A�0�i�8����B����
��^�B�W�?�'�q��>5:,��o�f��/xA��v��JrNx�4E������i�H����d�B�R��w�>D=I��l3B�J_J��p�������t9�}� bT ���������-�q��9�r��4u�2j�F#'c�=�o��Vuj����2���AV7:{�\�{�b�7�[ ��P��4v:$���Q��}f�,���0EOn�h*�9EJ�5���h����=��%�r�)��e[���2*5d����&������/L�4��������2%e����KED@���U�8��d��@�1DE��
G4��>��^���\s�e�E���7f��&����I#,ocy?�U��q��"uo����J0F��LE���q�����\N��Zw�u�K���<��3�N�\�����������i*��������������-�C������Qr#{9��;�����k���R��4�J9Qi'��{�>�z�hg+����
a8�y�����1����v� :e����i���8��i����M6oB�O;}����4L�����!����������'7MS�R�mV��m���3���S�`~�_]u�U���Td�*�}��j��g�g7v���yh����w	H@��$0.��^�k>�+��I�tM	�8��t���N���������*�)K��'m1���������|!LK@��� '��*��i����q
�,%����m���.*��C�Jl�jYjnh��FKT��2��"��s����F[,BRGuT�p��1���Q'r��/{���N���������Q������F��c�9fdtkJL�;Nn]�����Z��N;�v�g����D#j�&��Q�)����G���+���N����"����%v�jY�9��`���,�0b#�Z��t�p��3�A$�������HL�(/�iC�:sS���������6�:�<e�.:y���������T��/6�p�Rt�
K�z"h,���
������]xq�������"<'lt��F~�3B)ea���v��<����y^�X\C�i���<��T�����k�;/u�T��2�:WN�������k���6)m���=un"-R�#�`�e�s�g����y^�D�D�`��6}O�#�h��l�~��1�����^����]�����<��c��T���@�Y�6	/r`�����x�c����G?��TTI>���yi���
6a��$ 	,$��^�:������^[0�?4��3)��h����R�,S���g��[J	�r�) 7:�/��~9�EJ�R�?��� &
�=�}S�:�������M���k�=v�q�R56?u_�E�H,��NPF��1�r:�QC8�9v�i,#o"��[�� %~���{��JVtJ��(�j�:,s�4�@n�i��E��+����
��z�S��>�G*�'�j*TJx�������_����D����Xt���"6�C����lH�SQ�x��������B�����������zjr�T�����{�z��	��H���S�R��������7�"�,�y�)��;�L���h��ugbl�E[����{"^4�G�.�����TF{MS���N@�)ghJx;�<,CtLd���U:��O�vm?��w9'��^8�A�v�b�F�R'�Y*?����K]���D�
m��Jis����f
S��_R�_u�y^ ����S��2��)���}���e>[7����y�Yf�:Jo���k]��e��T��Z�����������a�w���9����n�f[]�"NZ�=�I���W\qE��/��
���r	H@��$���B/��H���|��2)��i����zpJ0�2�������R���#�	?sF������������!���J	/�:�R�����"���M�R������4�I��3�����3���a�i�3��w)5�����f�=�[��JBry�4��oW:�wl�lj����|�0���LYl����'I��r��3��������om=r>u�I-�=C]"������C���=��r~��.����K�n�<���*���&��8F��������"��*v�yZ6���6�t���C��G>����N�)����[m�����:S�7�K�\�R��X�Td���o��I�3�m}Y���o�(�W��{�:��y��t�M�E���k��9�%�""�3��^���}��b����w� �"r�5���c8`.�����)�N�|�k}&����.����/����S�M�r���w����6��9�	��-A3��</�i�"CRZo�������	��}��e��PXUmw���"���<~Z�6����k�}���I�H������C�B�}:���\:sw�)�mn�y\G�M����Ksj`_l�6��<�m�Wm3�6h�?% 	H@��Zx1NxF:�h����
�@��>��N����g/y�KFN�r\u	E[?hld=�S��atYh�}�s����>\<��������~x�s����+���YK\JxAt�gZxAG�
FF��hB>yo�vt�����'>�����]�m�NP������s�=~��LR��&@�d�~�6�D]7�xc��C8D�`!�F�=���#
1z>&��N�������~������5�����������"!#<���S��R������Zb���0v�>�(��k�F����uu��R��F�~��w���Nc�c�2$fD��]���^<�A*��f��z����/�]w]}Q�����g�V������Q�L9{�R��	����t(���P�"�q�+����M�F9��KT�P�/���d\Q��������o#��}�5bO������h���z]��y�+}�C*#���k�i��c�~O��A$���;/��V�����j\�l���_J|;�+D���`��+�c#�&ZWh�:F��4~�=�����
EB��QL�J+_�����&OgpF�=���>�q,�������^W�e`_���j��.eU$�������k�������.��d;m�_������������7��}���J����$ 	H`� �����C����s��E���������i���o^6�s��a�(�/��������*+����N�p��S��y�s�M9��
/>���y�s�O	/��.k(�:WS�ET��	�ES���1��M���c���q�v�q:A�2��Q�����j���-m���g�Y\���a�O��!T�,��]w����7��=6����������������b��~�:���Vl@IDAT������U��:�R��x��d:��-%��[������yw�����/n���$D�������
���n�����Nj��6yw��m��^p�>�?�v�i�w������nG����^;��i!�7��@p��:#u�8��FqI����J�_���v+���2{]���~����?uQ��_~y�z)�%��6�����n�.�p��R�E�y�:���J�3��.�iD�v�#U'�=�{\�-��R�� �b����D�������83pa��VZ�Z]e�5ui��17*#�D(MPh�(}����/�t�A�D��)�CN���r4�}��40���.c�����t�")LC�w�g7��4�um�N#M�C��$ ����B/p��3�)����;�������S}*R����o����F����~��_^l��e�^���{h�El�z��/-���.�
s�U_�Wx���=�T������8����F<
c*���<��N�_�N��Xl���Q�n�a��c�#� �����Z��g?[:y�4��p�vM�c")��o��
�/�[��������7�G�3*%�Hu���y��D�"�Th)�EN7�o�~/�05H�)��Hg3�B{��^U�bKE�	�6�@B�����/H�����I�0+�e#Nx��]�o1��V��qG�����{C9�E��M�������z�s������#|�bD�`�F�v�{R��nJ4����k�;/u��O�L�����v�#U'l�^���6�"���_L��:�$u�m��� ���,U�M��L*M�M���tZ��I������.�kO�_Bk4n��}�I'��B��~e����a���>7�h�N��Rm��9�u�;����O����vY����m��}L�2I���N2�cwm����:	H@��$���B/��]/������o{��
F�WI^���g�Q0k�E*��+_���iO{��p���w�*]:z�Ax��Q��q���'?���aB�T�A�q���+C���7�n�	�#,��F$b�I[��7�����rJ���{�)���?���h����c/5/z����1G�P�����Z|�#Ij��9�C��0�Gyd�4����~wAd�i�N;�T�z��^��Mo*��(���scB&��_�:S�z}�i*��8�IGh�$��c>�������#�t1Rg�x��.�t[t>?�IO��t/�+U~�qvv���������o���4�^{my�cSd����p
������[��sb��`'�x��o��x����+&0������i��Ru��Q��N���+K��ju��A!Q�h+����|��C\M���������.����SO-�L
	 �F|]��kEb�g*���L/?�d~�-_��wq^��u��GqDu���)�E�x���m�����R�Va����!����+:E�MO�X���������]����SY�+7cm��$��H@��$��Xh��[����h��]��|;k�9���k_�Z�py�C���]���=��)�������A�{��
/�c��c(����o.N>��pq�������#�c��&�n�14)�N��@�r�D��m_�����c,L9��8d�]�!�H�Y}�C�s�f_|qq����$�Q#{�����.5��w�+�K,��P�G�3Nh���&��FjN�I���g[�_�WxQ���'SRPw�Y��+�\�F�{���ih)�M�]�wj�x8MJ�c���������D$#2Y���\]�9K�����I�@��7��sb��9Z�����r��8�R��p��i/�V�=fD}�I�G�[�x�3Ja��k��db�Ax���������c��e|����RWJ=�M�������Ix1t�#U'�����:�
SN"t�M��;����[
�VO�
UOG���3�������?�t����9aj��,_+�?WZ�Z]]��$UwL	�S�W�h��j����������m:r�5	/`�����).cF����_5Y�~��_}}���{K����~��k�w�#Db:8��.��4�U?W�6h}_�K@��$ �q	,��b��w/h��1Be2/l�P��+��\rI��/ydSFV���>#�'� ����T#��I��K�����4����9���;�i�2//L�C�*��C����.�a
�Ix����w��?��d�bR3��!~�.�*^x���:�F<��Tzx��c��0<w1�	 R��]�IDv"�S����x������^�����"�`��4-��6���w!�)U>tu�Bo��V�K_���.(��#T�$AD������v�,�	/�^��2���o��N��J����>��dt���K=�Q�85������������N$��Eq!���Y��O*2`�A}]j.u�*�6���QS^0�H�-]��f�E^0-��b���k����]Wb�G�����e�~]~���hs\}��a����w��,���ya���W^�i'�q�Ek��vx���^��g�-����7�q+��U(�}Yi�kuq]���i�8V�)o���?c�I��$��?0'��H���,5%�R��YW7"p!�RQ>�A�:o�i�H�G`�(�Ig�}�<�]�=��]��C���H@��$ ,����{���c�������,�$�#"6:>��;�P�f-�H5`Q�~���"M7�P�9�S��3�}�S�Z��oc9!S�>��7�c�:f��s����\�w*��<��y^��c�)�� :��;�8V�J:q�;��)����S^p�5�g�u��Ys�����7�pCA�jh�c�~�:GH�8��$"L-%�H����xp��J����t��u�]E�G����}J�R�ptu���"J����[\u�U#��=��c�r���1����wYJx�G[��,p��g����v�:����k��a��B������G�����L'�K�$C���]���_%���#��)=��W�����j��_����������u��i����]��r'�<L5	��T�����y���
1����<�s1��?�AZ��k�;/u�����.~���.�~Lc
�i�9(g���c�����Q�?��S
� v1�k�L'��s�6	��TV�$�0��8�zV����W�z��-_W�X�e�������g�va�/�c5�����s���FJ�����^����z�I}�(1q���pO	���f������]�)Q�.�'�E���w��2�H�:�x�?�<�m�E���w��v�m:�N��$ 	�!���:����RF��:)g�e4�k��'	�����"�d�b����"��aT4"8V�����R���������������z����F���I�h�����K���\]��Q�t��x��������p�� �`��]v�e�ZR�8l���=����{����{�J�Y#�,�� tg�bS���b4D��W���5>n4F�1J/4�G��p�i�����Mt�����o���s�����/8�a����Z<��O���w���^����x^,���CD��uN��1��Ry�������]���d�������NH_��uK���7"�F�A7�\����0z�Ae�w�5�yM)H���>S�c��#dT�O�3�(���~�<G�b�:E����}������-���YF]3�z��r���I�����P��~Z�R�O��j��O|�S��c�mr�S)�GT-�k�;/u%�Z���[o�uc�9��6��'�X
��W�I����)��<�9R�J��
��y��Ul���%�I��b��-RxA�Ht6���70N4�Ta���0��������S��?K	/r��k_���	Ox����+W7����/����i�>9���?0%�H��R��pN�����_��X�+4D����w����g�����K�<�As�t�$ 	H@�J`���
v)�K���-N��������kK�+
:w�X�3!V�{�������S�0�tb�6:^���~w^�������v�}CI�Ve����4��:0�:����1�n��rY,m8�zx���U�	����
m���$}
A�Fha��p��~�Y�g�]w-C*�M���[�$�T���{�Gx�rN�3:)�i�^���8���{�����;���r��!_*RC��:G�H�s�yF�7t���5`�uB�����[��N:)<L�qe�Qa���I����;��C9��~Rp�Q�}���q����3�����������:9vmsa���W�mC���L$�G��\o�C
/R�\�k�(*��v�a�FxA�����o>"�s���Rx��O~�����5�D�o����Or,[o{��F�5�������}�s#��h��Y�fA*��c��b�=�\u�T�&%���6B���8'����=.��� ���!���mG������y���(����2����r��������T�����W_#���^:�;�?}%u�e`W��&�%��b���S���MrY�
]?'�m��������n.m�wbm�i�Asit�$ 	H@�J`��\l��z9E��^���s!��C���>�>��f�Q�������6k�N��z"
����R�aE[�E�l��9��S|�k_9B�~��,�#)D#�g�</H��~��rtS,�,���#����E ���~��X'I�}���:]b��w���hBD2�>�_�B���=�e��
����F��v��n����/5m��������`J��x����/�.�s,�
���<,bFt������U��0�>f)!���QZ��������nd���>FYC�3�+��&��L��8g�;���2�y8�bt��u��t-[ql������C|\YW�����#

�H�`Z�s���g���qZ��<��l��D���3����j<S3��M�r�T���������dT�<����o~��m����D���rS����]�]�4u��x������_���S�t^p�yjs�����:/�#m�0L>�����A�-��Mo���HS���{��,�.%ng�i�,_���2�����]��^xaAD�������>��7�w�Q�Y��^ ���+5�Y����uR�S��h#N���'��q������k^���4�N��$ 	t%����>�DS������K��g�>�����Q�R��Y/Hk����R]:�i���G�ZMD�EHh�w�E��'5
n�,�o�NO�����C:�9W�NP�;������|m�S�T�����K'[���l=���Xw�u���1�|��c�|�s�����ot���}���/����DO���u�1�w�qG��a�j�!��_����R�b�j����R�I	/X�cn}��{���S�pLF)����2=����)�Fx�y��r�	y��?��>���9J�v,dw���q�F��>,�N���:����Z����_�~���Gx������?�/���C.m�C�����Q�]����z�!��-�_��N��m�kJ��}��m�������]<kL'��gl�|���:@���b�afWK������>��<��������>�RmM��u�T��x�1�yhs������)U�!\�����9����������vWghnZ��=�q��M�,_G	�K���y����W��fW\q�(�{� 6�����?������x����?���2������r$^��T��LS��ra�g7w�Ty�>}�P}���4�N��$ 	t%���.���$�1�<��w����geX��:*�8��Xc�����T'�����>���o���K�����E/*;kb�b�R��0e�m�����;�d*L.#|��5et��Q
�zz����T��>a��/�f��FB�3��Q[��2�W��RC:�9����	�u���F�r���5�t�X�\�{���3Dz�W�{�5nng��]���>7��{B���3;g��d[:�)�b6����
�s��Q�u����	/����!c����r�Z^���s�����b�J�3�-)�0�p[K9/�?wo�8���� /�Yj*�������>�����^�\��K{J`E�A=����Q��lE0���n[��/O�n���������7���^�T�^�+0b��s�O��8U��+�>��s����*�B�
/y�K��bs��y����;G�e���)p�����}��f���&%lH����?�3c�S�l[�[�����K])'dx�[��:�
b���?�@��#��b�}�]�8�z��� X�
I��iO{Z��=B�>QV����3���7��
7�P0H!fD���[�����`���5��������������a���o��
��lk��u��+�g��j� \@<����#����#��b��7.n�a.�s��������}e�i�AS�s�$ 	H@�C`E/���3����J����5M[���3��1�!7�"w�q�t����&�l=�</HX�A��v����4������u�(��>��.�����P��7lct����y�Y.b��������?7u��v��o��}o�	@�H8�����H�F0��!�Y����W���6!=n0:%4"���"<V�wj�u�aT.�$��d� b$Q�r�j����?�qq���F�B��^{�Uv<E7����r��r�o�be��I��n����8����S��)���X���A�'V�s!��c���rHR������qLI�K�����'����<)���o��QOD���9g\�)��R�I��b"������>�)G����M���yX6��"7���m��G�y�i�%�l��/(��O���P����6��"��_��h3���+�,�;��$��@�>�.'���R��������#�CP�����b��-r��~L���>]���g�}h��POM�a���x.�wS�d�S���Y��R��������k�)���WU�� �1�^��z���`�T���OzA�=e��L9��/h#�oB]?f��?c���������)��=��������2m�\�\'	H@���X�.E6�B��,�Pd�������?-P'�������u�pb�s�
OU���f4u��Ex��l��M�B��p���X0R9e���
/R���!v�YK��r�l����S����v9UN��^?g�IT����z.�F�U�I�_��Y��"�nW����A^B�����'9���;�L�����3�S$f<S��%|s�CpZ����NC=��
�1����>��:�OF1J-|��'�u��q{��g���w��,��|�8�S6���yp���IY��PmK��_�������S������Q�t�}�K_JN�q�����z���C�|*�AR.���;��'R�=��]w�5)�����)�]��p�p������s �E0�TL1c��I'�T���$N�Q/R�����~l��f�$��pdrb��3�^��3%u��y�i(�fC/8cnZB����o��������/S�w����V��C/h�o�F0�ol��������h��y��7���-���x��^�Z]��N8����1!|}�y�+���������;��G���s�)�t3���[Ca�"�9b�����^��%u��Q�vJH���;�����F���N��I-_��k�5uM��K���}Pw�E�`�������K.�k��t�A/R����'�8���t1�3����^r�]������,������C4�>�I@��$ ��V����p:Gp
��jvFz�)�2*������dM#����(:�	��3���s���Ox��\�)�p��<u]���|��������z�B����3����)����|e��:N����"1��%�{�BT��%���Ci�5�,h����?/�x�����`�gsh�r�����g�)GR��1����5�c��b���7mS�=f�����!4&#���p2r��������6��_k��r�/��ZxA"��l�3���p��+?��OJ������M�N���1+����<�<������Y���s�T�Vi��Ix�6g�qF95�SF���h�R�<������-�rl^��e]�A�(#x>(�q�"�������Nn��7��|>r��^pL�g�Q9����Y:������rzV�jr@V�!����{F������`�<�:k�p����~��d�K1�N�)_m�gQL�1�0KJ�w�V�`��$������w2��SOG��v�)����^p�6�yu/�3B���E,���w� ��sSy@�|o�u%��� �����W�OP_���������P�X{��9�2[�6��Y��u'�x��U�yvGv�-H���M
�A=������*�R������7��Q��s��J-_�:������h�S_���/���DA��S�L�?p\�������W�Z��Uj���v~/�zE�a�~(��g�
�����$ 	H`+Nx��C���u�����c?�ony���y^�`#l=������c��"F��e]�8y�����F��X�M��}y!��P��)b���a�a����!�n���� ��Zs!�����!�ob1��Q�G3�NM�n��]?�/����[C�����w�iJ����4z8�w|-�a�]4E�����Q�<�C�l��������8���ZF����[�R""��"�����s�+")����V���p�����+o�)�!�?Z7�^����g�T��5b
��\]�-��w��u%���q��?��A�6�����q/���R��<D:�E�C���[o�u�]W�}Vj��Wx���`�SO=u����HDIjc��Bx���Ho)��.��RFis���6�<�9n��Hn����m��1\'	H@���Xh��N;�T\x��]�y����}�[����^�a��e�����l��h�=�H����<O��Ec���7�\Of��t��	Lgp�^���������������s�M���Wn���X�|��P�C;���%�)�,�%��#���m�Zl�Y")~���C��	�l�M��;d�k�����.C7���i:����7���6]�>vm��iL5R�������������U����_
���C���O������GV�^���'>���t,#�,`4+�f����w��2����������~�����@a�Dm��q���x���7�Oy�SJAhW�a���=���6q0C���z��!� SM���i�c�rq��}�{e}{���c�L����eD:~k�L*�%L�s4�Q�����BD�5n��1fUW���!R:����S�U���l��oQ�m�}�����8hy�SS0v������(�u?��LD���,��q��D�"R�bz�Q{��g!�b��s���C/��T�u���ry��M}�m�T�\.	H@���Xh�b��"F��� 4$a	���h��}���������FH���MxA�	3NG!sE�������� ����4�>��F��s��\���J	�4F�T��w����i:p�mh�F�v�mW��/7o�=T'(l�ER�3i#�C���^:��&�4����'I��'����pP����h�W�������������1�Yg��
����2F�������~C��������(G���m���HQ���������//G�v-����d:!���e���:���+�������4����cM�{�0C89S� �MMU?g�;�9yQ��SQoc��>F�I��i�r6����S�Ep�2�/UI�����3�D���y�x�,�6�dm9�I
/8b\�@�ib��h��s����L���G�Fx�qgQW
��#fi�1�Y�u�]�iIr�/j�#wM��n��x����������hU���"��>�j��J-_�p^S7�O�:\_�`�
J�tSt�����8����~�CJ��F�N-M`�g7}���E4��I@��$ ��Bxq���g�y������C�L�q��7�l.@����;�y�c�U�~SigT�e�D�����u\T�MMs��5L]����+�����������,�-���~U\r�%e�D[G�s����c06gyx.Fav�a��r�c���j8�,�FHqD=);��#�s��m'�Nu���m"&�:v�o8y��~	������s�n)g9���.�o|��H�p9b�g?����������z��J�w�j���&0@��2�v�����I�������'������F���9�����������w�������������0�{�@(�6�����|f��kgV���~���iM��[o�5�����WB������{�����e.����`���]�>��}��������������V�;��'�|r4*ee�F������8���FSu1��|�#�<�IO*���p�|��_-�9m��u�Y����'?y��5n���r{[�9��?���nu��c�?�!�C����8������ ���V��<k�H|x����v�DS�	�eJ�u���?�]�h�.�P@����E�t��6+���~��y�|w�u���qM��o�������/BA��m��Ems��y%|G$�54��CS�1�$VwL����T��j3����������x�H�����E����1u�}�=�<R?euu��Dd�&���� �L5����x�1�$wy����)Zg�@+tEl�W�g7�h�m�T:\.	H@���X�E����3��B8���1���.6�t������f;(�����#F�&t���^�uu�uI�<lK',P��������8��n�?F�D���#�T�Z�U�NVF��a�h;���g8�q���Q�����oN9�������W��dT������^���5��&��c���������Y�E��'-�����<��q���<��.�7:��]w�Y'��������/n���2/�����}�Zp|wu��>ymC�L��C�%8��e)�m:p�!`j1�
�
e;V���M6����j�WB}G���L���f�#�=��(�i�JuB����H��y�����]���I����(�xy�x~�w�g
�\�s��\?�]��NE���
�]�g��D��������DK$��\���~���]
GMMx���E]�v�.�G�|��"VQ����"��U�G�G~G���P7���<���d{����|��1����G��I��$ ��XQ�������$ 	H@��$ 	H@��$ 	H@��$ 	H`����%~��$ 	H@��$ 	H@��$ 	H@��$ 	H@�(�����% 	H@��$ 	H@��$ 	H@��$ 	H@���K,�&	H@��$ 	H@��$ 	H@��$ 	H@��:Px�	�K@��$ 	H@��$ 	H@��$ 	H@��$ �%
/�X�M��$ 	H@��$ 	H@��$ 	H@��$ 	t"���.7��$ 	H@��$ 	H@��$ 	H@��$ 	H@K^,���$ 	H@��$ 	H@��$ 	H@��$ 	H@�D@�E'\n,	H@��$ 	H@��$ 	H@��$ 	H@���(�Xb�7	H@��$ 	H@��$ 	H@��$ 	H@��$�����N��X��$ 	H@��$ 	H@��$ 	H@��$ 	,Px���o��$ 	H@��$ 	H@��$ 	H@��$ 	H���p��$ 	H@��$ 	H@��$ 	H@��$ 	H@X"��b���$ 	H@��$ 	H@��$ 	H@��$ 	H@�@'
/:�rc	H@��$ 	H@��$ 	H@��$ 	H@��$�D@���I@��$ 	H@��$ 	H@��$ 	H@��$ �N^t�����$ 	H@��$ 	H@��$ 	H@��$ 	H`����%~��$ 	H@��$ 	H@��$ 	H@��$ 	H@�(�����% 	H@��$ 	H@��$ 	H@��$ 	H@���K,�&	H@��$ 	H@��$ 	H@��$ 	H@��:Px�	�K@��$ 	H@��$ 	H@��$ 	H@��$ �%
/�X�M��$ 	H@��$ 	H@��$ 	H@��$ 	t"���.7��$ 	H@��$ 	H@��$ 	H@��$ 	H@K^,���$ 	H@��$ 	H@��$ 	H@��$ 	H@�D@�E'\n,	H@��$ 	H@��$ 	H@��$ 	H@���(�Xb�7	H@��$ 	H@��$ 	H@��$ 	H@��$�����N��X��$ 	H@��$ 	H@��$ 	H@��$ 	,Px���o��$ 	H@��$ 	H@��$ 	H@��$ 	H���p��$ 	H@��$ 	H@��$ 	H@��$ 	H@X"��b���$ 	H@��$ 	H@��$ 	H@��$ 	H@�@'
/:�rc	H@��$ 	H@��$ 	H@��$ 	H@��$�D@���I@��$ 	H@��$ 	H@��$ 	H@��$ �N^t�����$ 	H@��$ 	H@��$ 	H@��$ 	H`����%~��$ 	H@��$ 	H@��$ 	H@��$ 	H@�(�����% 	H@��$ 	H@��$ 	H@��$ 	H@���K,�&	H@��$ 	H@��$ 	H@��$ 	H@��:Px�	�K@��$ 	H@��$ 	H@��$ 	H@��$ �%
/�X�M��$ 	H@��$ 	H@��$ 	H@��$ 	t"���.7��$ 	H@��$ 	H@��$ 	H@��$ 	H@K^,���$ 	H@��$ 	H@��$ 	H@��$ 	H@�D@�E'\n,	H@��$ 	H@��$ 	H@��$ 	H@���(�Xb�7	H@��$ 	H@��$ 	H@��$ 	H@��$�����N��X��$ 	H@��$ 	H@��$ 	H@��$ 	,Px���o��$ 	H@��$ 	H@��$ 	H@��$ 	H���p��$ 	H@��$ 	H@��$ 	H@��$ 	H@X"��b���$ 	H@��$ 	H@��$ 	H@��$ 	H@�@'
/:�rc	H@��$ 	H@��$ 	H@��$ 	H@��$�D@���I@��$ 	H@��$ 	H@��$ 	H@��$ �N^t�����$ 	H@��$ 	H@��$ 	H@��$ 	H`����%~��$ 	H@��$ 	H@��$ 	H@��$ 	H@�(�����% 	H@��$ 	H@��$ 	H@��$ 	H@���K,�&	H@��$ 	H@��$ 	H@��$ 	H@��:Px�	�K@��$ 	H@��$ 	H@��$ 	H@��$ �%
/�X�M��$ 	H@��$ 	H@��$ 	H@��$ 	t"���.7��$ 	H@��$ 	H@��$ 	H@��$ 	H@K^,���$ 	H@��$ 	H@��$ 	H@��$ 	H@�D@�E'\n,	H@��$ 	H@��$ 	H@��$ 	H@���(�Xb�7	H@��$ 	H@��$ 	H@��$ 	H@��$�����N�V������w�}w��z�m��\���/~Q�r�-�?��?{���G=�Q�����i[����;J@��$ 	H@��$ 	H@��$0u7�tS�����<����b�5��z��7�|s���e��'=����e|�{�+N=����o�q��{,K�/������*�����~q�!�,[�����^[n����k��V�.���_
�_;Px�����g>����/yy����Oq��'������@������7o~��������.>����vXq����l�����x���]���:#�bV����L��$ 	H@��$ 	H@��$ ��&p�wO~��W%��C-��hy�E�P��\��Mo�~N����N+���w���y���N8a��/���b�]w-�1�����Z�������?��?n���5}�!��i��
��]��#�,����w��m�����9�A�������f�mV��?�S��.�T�1qD����/��x�����c=�Y�*P�l�
6(���/���~n�2m����0\)	H@��$ 	H@��$ 	H@���Px������b�}�-��1����u���?\q���]v��8�������������]����U(Z}��?�3���V��ot����m�]}���������N�����xF���h���
/�������k�%%�������=�y�7���e�z�PN/
<8�W����������������S��$ 	H@��$ 	H@��$ ��#����=�'��V[mU�v�m�� ��r�-�]��{�]|���-�!�x��^�l}�G=RF�����D��8�.���b�=�l>I�����
���b��I]�.2����s�^\z�����n�*y(��?{�vEq��#U��A�**�#������`P��kT��H����(A�!j��b��(*E)R"��=�������������<dgggg��g���=��Y3�<Y��c��N8���n�!.�f��<y��Vk�]v��KSC���k��������w������N� @� @� �p@x����"���qc���?��3�]�v�Q�:u�U�V9m��MK���m����w�/����K#q=����n�����d*�9��se�}�q��~/����[��]w�u����&;S���������v�X�reF��Oe��
R�~}�EE3g��&M��mZ��y��q��P�>��9��C����s
�@� @� @�@(	 ���mA^��5KN;�4�]��,��n�:9����H�5�s��/��?����2��~/���|�S��Qx"�&~:�Q$��"�^-�M�=���������
/�/M��E��X�f�w�������k�{�|�I9����soE���qc�I���7�=��m���	 @� @� @�#��"7�Ex��#����C#N?�t�0{��o�-g�}���j���2v�X9r���Ru���8
��w��������5�,h�"�Q�j�6��1C�8��Rw6L����v���{����}{�4IZN9�y��g�uM�~����K/�����U�Vu����C�i���u���l�5�
 @� @� @I	|���RRR�\�S���V�ZV�^-}��,^������eK';A�J��������^��6��+Wv�So���T�R�b��M�e��^�z����T��:��[�|��n�Z��i��a�����[],\���S�V-i�������R�Z��~�N����2���������s���o?i��mFcz����j���^�z��{�
�6m����S	/~��g-��O?u���:���3���z9��n�A^x��T3U���x���D���r�����w���w�m7����1c��m���\3��}tm��~��C��'�h������W_}�����K�A����n���$������R2|��R~M5�E���h��L������gOw��e��������^�Dx��a���2b�����iV������������w�	'��0%�o�[�_l���W�^Nw��K��v@� @� @�v��r�Q�)���������^**F�]������#�@IDAT��,*T�_�;�={��s�=�Y
��������s�q����z�V	/=�P'���e�J
��E���=z���o���b>j�(������s���w��u��{��w�Exe���'*'�|��Lx�**��:�d�;��S��k�����+n�D��7�?�:�(g^*�����������_�\y��n��34��)�;wv�����6�R��O?�$>�`����Z�����~����M���$z��-��t��3�<�}���S�K�.�9� ����)�5���5k��7�,]t�h]K���>�@�/zS4[��:T��{R�
N����T�[*E��W��):7���������N�:�]���>�?�����\T @� @� @HJ��`�Y	���n��T��,�~���'��v�a��n��h�"�]�bS���D��.���W_�D���h�,$!x����z��������5tM'�h�{�
D�x�	i��������7����ns������9��T�=��nG_Em}���u,������������������j���D�Q��^�bE���^���{r�e������f�����EI~>�zO�s���O�|��Y��?�YS��H�������/*������'��G�E�|V��_���6�f��z�"�$���������w���JU�i��DE��������#�<��MS-��/���$xSJ]q�r���:Wm���s@� @� @�@*���MV����KQ���QQv��X�������c�8��c�q~�:k�,�?������/o������/�Y�`�u�&����!���$*���{tL����<���~��?{��W3h&�q�
;t�Xm��4��I'�d�q���i�<��2C���f��n�a����?�5�:�������7��x��W������I�`]4O�a��i��7n���d��;?=���������b�
d�nYxE
�^��U���g�D��Y�F���R�U8������G.��w�t�|����)S�8�T�^|��I�Z�*����w�)r=�^��q��v��My�{$eS�?2&N�XJ9��]y������U��)�T�g��k�b-��gp� @� @� dB`������?e��(}�l\Y���^�g%[��t�*U��sx��g�������U����1�w],=z���]�K�=.����T2^�h��;�tDzoII��F��=x��9s�q���&1��7��EA���cG�$���?n�g������z��~I�OE)����u�:��h@3��s�E��7i���$��_~�mS��q��8��:�����d+I6/���>L�
������p�
�������G�7o�����8�s�s3�hVz�fF������r���O!��%_��L�{����G���[�&��}����Z�����%�GY���r���OEK��S��q�g�-��"5j�H����@xR�{��
/?����up���h��"���?��#�?����z�����+�/�t�;gM����O;��6^:N\� @� @� x	 ��I�o��Ih��
�^{��YD��C�����?��}���t����,����s�-#��3^���=�������$F�iN��	�0n�������\��
�$L�9��U��
LI���b�z�/*�m+��$�Y4t�^�z��jF�������6mr2�x�����g�)��4���	n�6M�4�-�y���h&�����C}�[px���[~����_4������p �X�v����]hF���\��_��b#��h���eyOt�|�l��;�"�dE3w�;�����o��C{x ����u�^��C�(����/��R�*U��O�'3�`�_���������nr�^�M�GR%�)�����e���Z�j����4w�qN�)=�m<?�!@� @� @� ��I��w���-[�l��~��g9��C�������U�:�4�k��������;�w�
��w�����B�w�}��}#�8���:(n�W�o���*���<��#�����m���T�E�.t�$ZP���O�^�znoE�09����&���j�/�,�m�������1i���P��CI���`���T���0L1b��/�Rt����s�=���;��]���;�~�������p �X�k��R�C��N��Mt��=��~(�5rn��{�l��g�OH~�	'�=F8�����{@�N�,*3g������O�
�(�!��":�,�%�/�MA�v�ZgN��B�cb�=�H8G�^��C��E��[��?��H�O�.�Q#]I&��m�t��]������H���� @� @��H�i����Y� N-�sBx��-��]�i6]�7e��)N	�v�la��t�UZS��o:�E&���E|���mT�����b2D��DG��C3�����f���_P����L�<�t-u�g������Y��SN���n~�c\��P�A���R��g`p;�Z�u���;���_�\y���y��u���f?0�o�f�h���+��-S���=������+����EE���s��l����n�h|�x��L�:U�t��t��{�����e�O�>5FMF���?^��������Z�����u�]�IE�]R�O:���!�^�5���7��e�03���X�b���[�:uLs������%2U������o�[��Qa� MW�s���4����K�)�u��q� @� @:�5jH��5_d�(�;@�����SR{�����.p��3FT��h�a����U4S�>���^J'�����vo�TT�L����V�u�wk�����tKz�1c��Xl:�6|�s�_P���B#Y��aC����o�K/����������\�^�e]3�'+~?h�V%�����}�������s~�����x��x���g+H7�^�,'-Z�p�j&o������2�|zI;������'�G�|�+?������T�R��������5��
/&E�/B�����W����"���zO�1E�q5
QUC�e����g���4�Q���=�t�)��D�m�%�E#��,`�� @� @4�v�������m�����
���.���
}��qa2D.��B�<YE�(0[4�^���A��[�x�Xn��6���������PI6�D��o���/��,�Bt����a���*�dq�U��J��"��M�����L��@1j�������8F�u+o�mS�T��mJX�U8�p�_��������%K����}���(�{�n.�^/?������w���v#.�HT^D���7���U�ySn�?<�Ms��+��
#�����a���e�G@�cB�m�������_�Y|��(�@ ���H�� ������$�=�n�($$@�'�B#"I�x���/v0�dQT��PQ�)fY�w�/�M�o�a��G��c��eN�w�Z���g�wsO&��/&�;
3f�G#4�����v����Jx�?�z���6��J������6>M��5����r����1����V#�1
��D�s��L�9����[��~>eyO=;�6��������8��m��G?��I�E8�V�YZx��w�I���]�Th�Y0�,Z�HZ�n�^SE:5���s���C�0���k��G�h��+j�r'@�����F�x/j�r'@�����F�x/j�r'@�g��;�����{�N	p��Yr�i��}F�)����/�3���7o���Nx1a������?Q����^7n����/.h�����#����v�*��CK��um�l����L�4)�T�^�v^~6�-���������Jj��P��?��e�]&����#�,X =z�p�{��l��J��> �B��OK�����t���c8 ����}��/V�X��	�Y'4����V�ZJ>���f������K���r��������?��'��ef�(���u�QNW��K�����C��|A"@����%@��/�C H�� y��@������et����7^�`fD�N�2%.���d������{�����W����'����^�=:n�Dcjq��T��Y����:u�U�V9�u��A^y��DCd���u��>g���-Z���+�c^���q��R�bE�{��*��b�����sg��F8b��s��u�������zoKX/�p��%�I'�$<�@��{��[n�E�?�|�K����b����f����P�������XJ��1��G�c�=��r9�!w`�������+��K���k��U\����G�@3E�k0��6j�����\Kt��y���K��x�:u�s��s
�R|�3�@ ��p��@Q�E��C �{ ��$ P�{Q0�����^�`v�y�����S6l��;�����[��m��{�
�_�����������}��^x!nm$��B3k�8$U����~���R�V-�����o��������!���Vc�Y�f�8T�T�#������g�q���~Q�{1V�E��>�m2�*��WY��b�!����e���q?F����^��>S��,^��y�
`f����Z��IEA�������#��/�s���R�fMcr��?��h��M��4�������\f���BS=�u�Y�<5��_��W��_Q��
!>��c��{��'��������H�����������/����s�sMq�[�x�m�ym�^x|��1O�@P�A���@�	��g� �{P<�< Px�{������'^�d��
4����i�o���6��2:T4�)�6��f���Q�J4s�Y���t�!��7O�T���K��������U��]���o��Aq�;J
k�l���Ow/=���r��G:��^P���{���ow���M����g���/���o���v^�^x��2^��f��6m�;�l+�^(�_|������/'�|�{�����l���^�zN�l�T��
7� 'Nt�����O�>�����%������c*1���M�E����e#�X�z��^`�����u��mr�w�uW\����;.�/p����t//S�?d�z�-�[��ir����f����������������k����������+8b�� ��
&�� ���@ 0������@�����#��={W|��6Y�nk�7���5*���wnI^���AX���#�6	��M7�$�a��W^)�_�9-��AZ5��������.n���R[8�^��g�}�s�nu�-��o�����O��w�yg�gu������{]+�����j�*�����_��/���:kA�C�Be��/T�pD���pn&�?�U���:E�M�_��Z���c>��>�����z�
W�e��Q����2d��rV�B	/���U�)*0R!��N��:�_����,0*�Q��)��#��<�����o'��1�����t����1Db@�@Z�W�����C��L�����b���<���q���n%:��c���~�$��*�oL|Q�r�Js�d��-%_|q\}�����>��m�ym�^X|�A��S�'1: P�L���D��m�b��w/
��6�=���:x	�^�S��aCIl�R������b�{��M�Jb"��~���oIlA��c*#F������� 8�rl���W^y����O/�G���91�8��k�&�[�-�	��Z�-����-~�l����c*���j���S�e���������{}���~~~��q��'������j�]Jbb��>��%��	q�����Rc��>��K�����!��<�X��$�������T�4
:�y��{��4wd~Y���c���Vo�e�(�������=�-v��J��G&�I�r<���?�Pr������xQ�r$n����o���/���-d����S��&�������>D�������O:v�(��J3V���-U����=�/���E3i�����^�6;�����G]�]l/!B}A�2(I�x�[�
B�x/V�@ 	��t��@A����$�=�n	������O��#��$1s�L�%I���w�}'\pA�{J
�k���K��ot[���g��m�U�t�"+V�B�/�M���_t�����6�[�����S�jU����2Ih���{;��T��3��_�_�g�� �8�dT��o���]s��Q$������k�Nb?�j��9���+_/b��>1%&���F��=���\v��bB
�<�J�2^�<4�H�N�JMI3�k����������Kq���#��$�9������?�^�z�z�n���uR��[4��f����D���h��`�d+����]N���>�,��j��)���?D�IU���K9��S�� K�?�#����������C�0\A$@��+�	�!@��+�B ��� z�9A�0���peT��D�sN�a���<�����e��a���mKb���>K���n��� �_~��"~��UW]%����D��L���[���������u��]&N��
�5?�|/tl�!�.�O�>�<*�Q��P�I��-�>��+_��V����s�q��;bwR�������0��-s�3�>��sd3����;7g���n�eSq�g�����?�,�P{���]v��2��i���]��k��R��b8	 ����>�Z�j��&�/�{��'�9��E���s�4�g��Tp�J��o�]��g���������j��Dc��R�B;���/#t�7>��M�� \�{p}�� �o�{��2�K�x�o��M�x�7Q��@p	���M�f�hA�k��2h� �_��K��}E�R�i��)��
f���,\�,
��w�$�rBbI�E�M�mS'�����_�m��9k0��w������#�q��f�����'�����u�L�^{��i�B�
�����p�P�C�����RG��c�2d��m�bN���b��	���T�
�����#t�,����b[�K�V��!��W\q�{�iE�4w�}��]�����[4+��_�4��E���,X�@z�����s�~��v����~�<�����I��3�<S�.x�����'��d[/?�h��;6�cU��gOG�T�F��}h?���a(,��XPE�_|�����A'E�7�R������IS�_��VJ�!�}�����o�x9A����!�&:A ��H�# ��=#Lt�@$��p#F@ #�{F���H �#����6x36����G�[���B@LZ�^���K3���KM3f��Y���:�:���d�P1����R�J�nIzM���a��EN������i�����$���V��a����=4{��7�jo����!4��xE&�����5�>��"LE���Z�n���Y3g�NtmkQa����&k��\�o�^���c+��Fxa��1(>��A�g@ ��`��Y@���bP��=~`(���y�A�x��0�T��\���4��.��m�V����r�x@4��)S�N�.]��S�� `/����r����@.��\�q�I�x���5r!@��B�{ N�{8���!��=jv��o��n=�[��2i�$9��#�i���/�����7qm���mF\N @ 0^�L�
>���I��@z�{zF��@T�Q�$v@ =�==#z@ *���x; �����=v������_�����x;t� O=�T�-J��_/���g�}���#?��{N��M�E���� ��C.�Nc�����#8n�@	�!tS�@����qBH�x���2r$@������-������G��j��8�}����-[��m�d������3��n��&o�������q��@�@p	 ��o� R|���qL9 �s��-)�=��c�����4n�@H	�!u��@���YzK���q�����g�����b���r�a�e|!@��	 �(0@ b����C1)�)�p	#@�G������p��� �#�P��@
�{
8\�#P��>`��%��!'N�{����3��A�I�&M��8� ��@xp1=@ |�����1r%@��J�� >�{�|��!�+�=Wr��� ���3f�\	������e�������6l(��"_e����`�Y�b��\�R*T� �5r���u�5j��Q�@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:�!@E&�����y }|�E��XC�x7$8B �����!`��GD��}c!����@�@� �(Y���%������p	�:��%@�[�z���n��1�Z�����p	�:=�&/Z�HJJJ�4i"�j�����3��/�����;6n�Xj������i�����c�9w�n�Z�?�������[���[�������7�w=���m�d����b�
�m���e��R�f�D]iKC`��Mb��������[7�\��N/v��@ /�?�:�!���1&�=�~aV(��T�$@��/�
� @��*cB ���`��YeO��o���;�72D.��B��Jb����D�M<x�\r�%��������M7��<���O����?����O�3�<�ik�����5+��9Q��/� ��w���7�4�����K��=e��A�Jf�7�#-<���t�IioTAO�>}���N���a��Q��sgo��@xr2}@ x���O�
E�x/Y��@����	3�@���"���=x>aF(��Pd��^�F<H��+��B�L��2t�P8p`�Q>��>�i�����3&���|���r�UW��9sJ]K����w�y�.��!����K�����L�K�,��?��/���	�W�^�v�_ ����" .|���_�e!@����B \��p���B�,�����^���.1[���^z�$/r�F����w�e��9���[�nqF]|������;m���1�#�/��OO��k'k��������6z�h9���K�����7��a������_���2>"��Uh:"����( |���S�e'@���!#@ ,���x�yB�����3d���O1O���^v��/r�CP�7n�����5���>���k��Z�����Z��i�6mZ��(���?��I��{tK�;����V�b��N��_-��
s�"q;�*�����l���d}}��m�������x�d*���������ro�4�����+����{��@x~b 0|��!L$@�.CC `���9��@�����eh��0�0��^@�]T/r����Y����Ns��{��E�,x��u���t�,X 5j�p���Y#|�{��n���3�Q�Fn���i\x��2d�o���e�2�={vB�
/T@��k�9c$�k��i�$��t+FA�I������!P\�{qy�4�'��<��l��^\�<
�I�x/O�<�%@��7O+���
����G��C�:F����������r��g;M��_x������[������������P��tZ�t�"S�N�����u�V;v��92%�L�p���K"��|#E�E���1�@�!/0��^�<A @����!@��3O�@�A�s�@q�����|���RRR��S�N�e�]��������>���K�&M�-4;A�J��2]e�V�X!�+W��;J�6m�J�*�8�6m�-[�8����K��U��S	/V�\��o�����uk����a�����Tt���:j��%����}��W�U��v/��u���7o�,�����;��[��h��mFc���*:�����O���'{����P�i����n=��B�	�����~����t�4k���?�������np���L�-){�1�m+�{���"Z���~�t�M2~�xmr�fjH7�3�8Cf��in�e������m�����W_}�����K�A��{�[g�=Ie��1c���n����5s������?��Cr��'���*�,%��/��D��M/��W����r��GC����"�q(G�{9���(2����y���^��y4�L�x/2�?N���o�Z�����.�_z���b��������:P�B���s]$���{D�$*����9���nA����������z������/-Z��#FH�=��J�o��]&L� �F��!����#����B�D����w�q���w��{��'��<S���'4��1��N=�T���kd����*����M����:��W2[��;�?�w9�����^���J�������.�3�}�]W�lP��B�����c���O����]w��m��w��]n��vGw���B�'���oSq�w��;wv:���>�����B��9��3�{4��f��I���~�j@����+ \��@��s��@	�����=`a:( ���p#@��!���\�xh�M]�PA�f�HT�}�Y����]�k;���d����h�"���K.q���_x��(4�D�r��W;�d��9B�D��53����**\�??
�|��	E+�{U ��OH�V���n}��yN6�D�������v����������~�z�O������/�fq���������^w�u��]K��Y)4�)*0�6m�9������.�,�?��������%����=1�Mw4����1~���;Y@4�I����d��a�#�����a,X�d��a��^k�j�:�
T"E�E���1�@�!/0��^�<A @����!@��3O�@�A�s�@q��s�h�/2��_���@wt<�����[q����a��Tp�1�H��5e��Y��u�6B����7��~���5��~�n��~����8�q~=I'����cj���a������3����@3Y�E
�H��]8V{�"�>q�I'�a�c*~�A�f�-34���h��6����S�N��=�X�G���oe��+���/��K�u�]4O�![����E�y�w~��s��T�Ux�YM�-~Q�E]�a�G���U���g�D��Y�F���R�5���������'����U`����,���\�W\q�L�2�y�����/N*��xW!W����M��!%��"��c��@p	�!\�03����o���� ���f�| ��M�� \�{p}�� �o�{�D�?�E�����o,����Lx�Z�F�9l�a�J@��P��)�<�L�,�5�w����7;b�6 ��;z�h�]��J^z�%����sS�Tx���;���]��%%%2f�g�3����#�7�6����i�,:��;�&�mH���^��Q�5B���M�$����,P�n]��.z�w�}�s��c��&M�x�d�����/�m*�7n\g�"B���S��l%����4�����v����n��}�V����H������=��9�0�;73�o��l3������z�\����#�<2N1i�$Gd���*�x���[5����>*�[�v��}:t�L�8�m���_2��=�{`�'�/T��x��������r�-R�F����s�	 ����! 2|���aLe @���B d���9��B���2��V���2�1]����=<�;�����1�l�Y{�����k�uN<�Dy����������i�_�?��cq��7�����ly`�����B�9���{na�$F���Yta�����;�7���)4�H�vs����<��hA��s�q�&1}�Q�!�m�7��?��n���W/s��%B�exE+���M���$�E�/����$���&L��p{�IE
���e��9j&�����E}�[px��P�3Z~�����x����EE%f�����<����nMx]���7EE�Q�+�1������h���n�D�(�{�\�J��}�T$��h�}�YB�"�M�qh���3�BB���8�iB ��<@d���G1M������� �C�(�	�< �����b'�w�}WZ�l���S������C���B��V���:��s���^s�x�����;�_��m�^�Dx��;������v����A����7*V��tP�w{�Gy����;��m�q�
"���
.t�$ZP���O�^�znoE�09����&��YL�G4K����o.�:���M7�����T(r�!�$���`���T���SF�!����.�lc��s�9����}W���9�����3�k6���:+n;e�[�${O�
�/U<���$+:��]��mO���J�F��[���$�G���
/>��#9����0T�s����	�Ee���q}�|�I'+I\#'�&��"��c��@	�!D�0'��^��
�  ������ ���Q!D�{��� P�{�\^�`�*�����ta��)S�8Y$t����^������~�	/2���.���!�x�}P��n�b��a�u��h`��,�)C�A�{��2y�d�����q���s\f�SN9ETXbJ��}����D�2
40����?������_-�;wv����z���+��l+����~`������MW �[������{�G���/3�Y��Q�P�EE���sn�l���N�+��U����2u�T�����%�����e���O��h�dE�T�&����/��_e�]w-u�ncs�u��eRi���#��e�]J��!�^��o�0>����< ���� `�{���� �g�{��2L�x�s��L�x�(���t�X��HU^z�%����.c��l�E�g��an�D���>����	/t<���=�h�St���?�9�_�{������M���3f�eS�m(>�`��A��3�p�AI6��
�7�x�\z��nwo�]��>}�{-��^]t��|��I���A3��*����d�h���������o�o�Tu�d�[�x�����UA���h��}�f�fIq/�*�+���s��GY�����^����G���;Z�R%�\��[����5��fWi��Y��4����p��YC&��\���� �g�{��2L�x�s��L�x�3P��@�	�vS�@�	��Ex��Y��7���]���}�Z�O�>.�!C���^��'�����w.�^���A��RN?�t�q��v����O~����[���3��"�������N������w��^x���$c�;����W��^�m��B���d	�
�F����o���ct�^�"��*�J�*����fQ����\,��B���B4���KW�,Y�
|���]�����I��dz=W�E��k?��}�������Q)w/��L�>���Q��@r�{r6\�@��Q�(�@ 9�=9�@ j���y{ �����M�+/v��dQT��PQ�)fy������7����i�u{�^���X���|��t��Q�N�d~��d#�o�a���h�&z�A}����
��L%���N=�Tg�dc�j�v^�g��z����y�k��S	E4{F�������_�����e�������4h�+I5�?��9��#��z�s��OY��Ts�����t[�d;����w����x�e,�	���	3�BN���;��C �{��
�� �C�@��,�Y��+BN�x��>� @�g���/v�����&�{�N	p��Yr�i��}F��,����I�����ysw�t��	&H�^����*�m.���q��������i��N��Dc�j����h�-�^Po����-�n�2i��TSIz-�y���������������}�?����O�k��*��n�!����.���3
�`�����{���g��T�y�Cx��MT�bJ:����1^��O�>�B�,�
�2 ����!"�{���T!PF�{r;BD�x���*�H�x� �����"�)S��e����@IDAT0��l��U��sO���}���1c��D��t����G�m#�h���zJ���Z������n���S'Y�j�s�C���+���r��{A]���3g�3��%]Y�h����7��+:���WY�7n���;;�������s��u�������zos�%�6�[4[��u���6��������N�x ��~��-��"���s_����b����f����P�������XJ��1��G�c�=��r9�!w ���G�����A�P��B�e\��<�0#��^(���� ���f�B ��'��b���;O����a�d���n������m[���m�n������������W^x����������CR����L�����V�Z�i�~���7�4�D�M�V��{���b�
��j����G�*Ur��{A]�<<��3�4t��/Jp/�*�~���M&SE��*����@�� $��3�,]�T*W���T]�C��k�mmt+��U�����D��,^��J03f�pE-��WQ�w��^�n���?�*��rQC���/5k�tmNT����m��I���@xB�1e@ ������I�x�'M��@�	�����@>	����X6�=��av�'�={�/v2�;w�4h�`g���~�zw�
m�ge��q]$7E����v=jf���:�]���t�!��7O�T���K��������U��������4hP\����r��g������'�|R�<�H�<����{��~����t�����X��g���/��m2[�d;�|
/��DB��F�dL�6�����}����.���'�Ea�]v�k���2�������~9����s�d��f����O�^�zN�l�T��
7� 'Nt�����O�>�����%����_��Tb,��c8 ����% "|���YLe$@�� �C D��9��B����2�v���"g1U����=����"S��%�tG�*�)�K,.��#��:�n���$$*7�t��?��t��W���_���30�B�fp8���>ZQ��n���!��B�=����{u�o��}�h����~�m���;����r�u[�������V�y�i��U\�9����%^x�9��M��{��W����j���������T���{G�b�N�v�������;�s���O�����+���������KT��-�F������iR�C��^���{��Rh�S��c����>��rLQ��
1miRRR"��_����0G:�d���
/������o�����N,���)��C��cx ����) |���QLy @��"C@ $���8�iB ��<@d���G1M�������_6f�b��#�_����n��CE���_�[�h�oQq����d���3��'3g��vq��/��n�����Q��s�?���.4��)���������H���]^����Y&�
t�x��)r�5�����
RT�b��_���L����nQ��)*��L�m�)��-�k��6����QQ��l��O�E����d~�E�����i;G�"��>]&	����[n����O����1~���������_z��q�8�����Cq���w������w���Y<4��)��#����]����~*G}�;�w{��SQ���l���t�8y���3�O�~0EE����n�c�s�����BD��9��B����2�v���"g1U���^F��� �C�,�
�2 �������~��8��Lf��{=�6�}�$��{��.���|��7��cGsZ���K�X����5���I�&���_4S�a�&�m�����>�j������7���������J��������!���i�t�������{o�o��d���q�:�v���.�W�V��[�����b����>1e��%q"	}���csY�z�-Q�L��e�Q��Ztk�D�*�������S�n*��.z]�������d���
/�V�>��W/����D}��*e�-*nR��%Z^D��X�rpS�@��E�c �{�� P$�{�@���'0��^$�x�AX�~AB"3��.L��[���a���%1��Q���tk
S4����_nN�/�����d�����D��L���z�j'c��#�8��������]a���������t�~����QI��
��LZ�l���v^�^h��F�E3!�3Ah��F3w�p&Q�����K�k���*��g|�������9s2z������Y3mxK����B�R?_v�enf����
kTt��^{�/q/"�DL��E��`���@����B�el��,0��^H��
�` ���f�B �I7Zc'Z����4��e����}�:[x������p`�������v@���N?�t)))q��=�
�W�����/�(��ms�w�_���n��[�4n��)�������{���:��Q3I���C�
�������,����Ce������Q�����2D.��Bsw��&Lp�m�g�0���?;B���-��k�����U+w��W\��gZQ!�n��E�����[T�q��;M*fQ��������l����]��Z�j%��Q�n;��#����>Z*�@��0`@��`��1[d��x��m}����G�6�����s�SUT��3v����T��g��-�v�1�^��}L">������ ���Q!D�{��� P�{a�2*�H�x�W�
C�x/�(��6x36���n��n�:g{�}��G����W��c��wdRt1���?v�b��AY_�R�Ln-�G���a��E�������i��������
j�n��t�R���=@�u���BMY3C|�����*���L�Q�mk�}R�E��
"��-Tt��f��9����Y3Lf�u�*LY�|��d��5������K�:u��&�����BL��;��C K�{���� �C�<��,	�Y�;BL�x���:�$@�g	������`�l��B���m+���K9�< �����S�J�.]�)G@0�vS��I��p��YC �{.���$@���o�� �s��='�=�~c�����5;����B�����]��&M�#�8�=�V���K��o~�mr2"������	 �������@Q!��\T<�HO�xO���
�=*���'@��gDD��Ob� ��3���^������o�����*�E����e��2{�l�o�>}���v��@�@�	 ��� B|���iL9 �s�m!�=�Nc�����#8n�@	�!tS�@����Yx[���}�����CV�ZG�o����eK��m�,]�T����]�m����7���w�=��@.���
3�BJ���:�iC �{��!%@���qL9 �s��-)�=��c�����4Ko���B1��?_z���1Q]�?^;�����# �?���fD�rs(�@ �=.A b���9s ����� 1�{��9HA�xO�Kq
!��,Y���6d���q����q�2h� i������ p/� ���r��3�@���\�q�G�x���1r%@��J�� >�{�|��!�+�=Wrv��l�2��}�c|��
E3P���]�V,X +V���+WJ�
�Q�F���[�nR�F�|=�q @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8���O����!`��GD��}c!������ ���c,��!@�!@(��"����������n!��B�c���wk]�� �-t:&[K�x���n!��B�c2 @��^8��@X	l��{�^�fX�_�y�!WT�<�J�x/W�<E%@�7�@� ��?�@Q	�E��� P���r���!@V@xa��1e#���M��Y�H����e���g��R�F��
������s1
>����0�=���4��> �B ���;� �#@���p
@�@�	 ��;R�@�,��3ys��8�jV�--���0�H��-���~����o��D�x����j;���7�m"@���ml���n���6 �m�6�B��������S!*�.zI����t��V�.-���e�h+���J���|���i�����[{���K!@��@���=��R��� ���Bf|D���M�~�2#K*W�"����lI����R�B����R'>���Ml�@j�{j>\�@��Q�&�@ 5�=5�B J��(y[ �����W!@(;�eg��<�l�~{8"�61!F�Z���r$�����[1
		�	���H �#�V��@B�{B,4B ���H�� ������ ����<�d(D��k��C�o����5�������-IjT�U���:rA���@�	��g��*�=��a^�?�=�LA%@��3��'@���)#B� O�E<� �$�|�\�Z�@��[(�m�_�^�7������e��Rw������|���ILQ�n�Y���"��o���/�}����%��q�P����$�@ "���83 ��=Ht�@D�q$f@ �{��@�@� �(>n��������c�,]7_6����jV�#{6l+-���F���y������@4����y��M��D*���%b"	ms��Ols��kN��[dR��m%G�;E*W��Iwk�����-$@�[�tL���n��1�B���N�dk	����!@E#���h�y�I�������|�d�X�qY����a{�m���<Ny��\y�����X���]6S6������������Rk��EvXH���S�e'@���!#@ ,���x�yB�����3d���O1O@�@x	 ����9G`�/?��_3a,��E��;��o�c�#r���o�C��=���������ek����G�=E��kU�a"{/�Y�bJ �K!��%@�G���R��RHh�@d	��u-�A�C�E`\�D -�l�**�X�n�,��H�n����G�9IZ5���=A���\P<�y,\��|��;��d�TnydLux������p��@Q�E��C �{ ��$ P�{Q0���70�<X�h����8�5i�Dj������=�_|��y�cd����v���b������s���uk9���������������U�^]n������N~��'Y�t�����
H�f��F��������M������C�[�l�i�q�C��U@�pV�o�|�n~L��P6��CF�s`iT�yF}������s:��C�45�`V��m)����ec`g�G�}���N�J�v����^l�<�G�x/?�<�&@��8��@� ���=O�@�	��&��
E��o���;��2D.��B��Jb*H�EtS,�\r�9-�q���r�M79�<��������{������3�t�Z�h!�f���nNTD2u�T=z�,^��4����{�y��'Gy��F%=���H�< '�tR���}�����9m_o�Q�FI����M�CN�E���!F�|�R���b,H��B���;x���5\�B>���V��������]��������DO�S���jz��2��J�g���5�=��c�����.:C ���P���C +�{V��`/rsN��W\q�L�2�1d���2p��8�|�A>|����o_3fL�u=Y�z��)c������T�1b��u�]��8�x������nk���%K����g�-z��	��W/�yT�O�E�}�5�5��+����$QQ���:O�T���r ����[7�y+��y+fe�F
�Vy7i���X<�*w� +T�
�?z����W������+V�������-VOU4;��O�m�\�[9&�:��)��^�TCYq�x���	����{���K!@��@���=����/r�p����w�e��9���[�nqF]|������;m*�����e�����?�={��Y���/��7�R����v�g�=����I<o�s%S���/�,0�e|Dx�1��tDxW1QD��.��2���6�����xn��A���\�<��l����_5G>�e��ik����e��u����M��Su����6�O^�7I6��!����y����)�D�"�ucv �w���� ���a���N��N� u�{�=l�}/r�uP�7n�����5���>���k��Z�����Z��i�6mZ��(�
&c��u���H���.9���?mII�L�<Yt;��E~Y\e��m�������x/f*������{�b��?�{����>���91�!vS�@�,Z��L_���&�Y���������t�� y#s��.��_�$��b��MO�v��r`��d�F�g|O�:���g���Sd�����>�e��rd���R���fk���5��P��K{���K!@��@���=����/r�pP��f���N������{�fY��u�����6-X�@j����o��YZ���B�c���_^}���lGu�<���nV������?��T�%S��
(^{�5��D~5�q�>���1B 4�_�zl���$��.@���I��rA�D��C����b�,���OO��n�b���e��2��P�|��|�lF���To(Gw�?�Q5^�����\$�#�H��@�� �!@�G�����@�"B�x��#1C^��Ex��#����C#N?�t=zt�Ao����}��N[�|����o�K/�4n��1�#���s�V�\��m�l����2r���2^p��~�zg�D~M�.F���H�c ~o|6Y��_���#��$�uHz=����w*��t��������bs��iX��t��p�����S����/�7�O����T�XUz���4��g�.�l'�#�V��@B�{B,4B ���H�� ������$�=�n-�Q�~���v
Z���#����S_�z�|��G�x�bi����l���NP�R%�z������?+V����+K���M�6R�Jg�M�6��-[�z����j����������[�|��n�Z��i���{o6��b�����Z�jI�v�d�}��j������n��n���������s�u���m�f4�;H����j���^�z��{�
�6m����S	/~���-?>��S��F�����f�����R�r0��p�
��/8��i��%�c�=&�m��c�=V���N���n�9�����+��~��������a�6�*_|�<���n��W���;��W_9��t�Ri������AxOR�8f�������(c�\q�����=���x���y��?K����K�5�}�E���h�� j�}����auR�;��4��2������\y{����u�����}'s���z��I�����-|��zy��'��-��4��^=e���R���E�=J���&@����UD��%obR �S��*�D�x��7k�.��o��}�f��y�*�b��������RP�B������g�=��#�� Q8p�<X�9�w
}�f50%����C�w��e��{�-(F�!=z�p��U�o�.&L�Q�F��?����G!w�q�#tH�����w�q�����3�"'�|���t�Oh�c���z��r�5��^{���D��7�?tke���l��y���������W^�4k��%K���z���
����y�^�������t�������O?��>(w�uW�.��{wG �b�D���I����T�������������v�g"���b�<�L���S�J�.]�s*v@xa���� ���M��9��x7&�����w�/�w���zy7�!W�(���n���-���\��"��{�����GH�Z�3��\������N�U�J9���[��_���OT.�Q�$v@ =�==#z@ *���x; �����= �{T<Yx;������@�l���
4�E��������_��R\�a�&k���E�9��\r�#�0����D�Y�������$����#T��L��_3�z��������5n�������*y��'�U�V�f���eh6�D�������v���������a��p;�*j��/�(��!��^6�&�{�u�9�Kt-Y�
}T�b���M�fNs:���{r�e�e������Rb?�|�'�e���Ec������+:YO�^�;V�
�>z����f��N6�
68��fxQ������@%R^D�������y����.b��Z�_T�T=pF�!8�lBK������oL��4�g�0A3\���$�����?�_s2{��O��K��'�U���[����w!@ c�{����� �C�B�@����Q��'@�g���7l�y_������Y�*����}�����WDTp�1�H��5e��Y��u�6B����7��~���5��~�n��~����8�q~=I'����cj���a������3����@3Y�E
�P��]8V{�"�>q�I'�a�c*~���t��PQ���H�����������9u�:�����8��CY���+n��t��q��D�q�V��q�FQ~�������%�u^hV�L�fa0`@�q���q�������U���g�D��Y�F���R�5���������'����U`����,�@t��l�W\q�L�2�y��T�wI&��x�k���M/��W��@$��n��0wBR[������������$@B
�z���EQWW�"���v���6`���Q@+�
�R����K�!BB�?g�������+����|�3s��;�~���>���SI���{�>�K�_�J�|�<���|�zpm��[��;n��u*5��)�|eS�Y�����/[�+�c�����J����T�b] �M���5 �T�w�Z�o�wo&��������m�4{�	�7F��v���������6�9������Q:��=�+
�&Q�*������4 ��;q�DJLLT��7o�v�m��81*�`��K/�$�.��.��I��tb,>�^������U$~�/*9
��u����8
�k��&?CT�&2G@(W���#}�cQ
GHN.�!oz����s�x|d_�R���j, �����n,�a��3�������fb����G��6x��|�	=������������C�Z��9�0G=7����YN3��l�_~�E4<���K��������O!D]|���}��~��4w�\���<y25l�P���}���4m�4��O��|�#�����A^#�`���;L=q��A���OR||������ ����0Cp5��Y����|2�]��j:�g{I4��\IP��3s��7����XG,�0S���V��S���943�P��9@6����S~��T�rjV��y���~M�Fp��������_�w�x��"w�9��K���n#�����_1\��x6c�=z�Rq�5����_���O?�7�E����>����h[�n���@\������������)8��3�<��Qxc\�={���7�5�)8�H�zq���E,xEoC���n�S��>���N[��&����iTz��-n��Dp��hE4����I������,F��W��=i�����axM3g�C�v^J������7��w�M8���
Y<���o����j�Y�2n�8m�|��c���Q��T�T��y�����#��E7���Z1���L��t��G(��2p�'f����H�W���j��p=���qPo^��V�)������i��E>���zg�P�2����p��A���N1T��]�v��x<+f��
{���c��QZkIp���c+���.7�������}~�\?�������	g#G#9��K��+RLT��P�n�i5��&��}0;'�{8ib,�6�������@8	�������"��~��j��u�Bu���O]�v�HO�����r������-,��w�k�Q�����/8�C�j��C������M��_��%��@��������.,,��
,�����n��t��P��a���(}�'��d���?����@�p���z��������,4��sc�����222|F`qG�����&�e(����4&_��</�x�w��_�!C��������m�WD�����O��^?u����C�v�W��&�:u�HO�f�JMM�o��G(���y��7+�X�v-]}����,�i����9��	Ee���}�O�N,Bq/�cK�M�Spj_�G������]R�P�nZ�����L!�T%'T�6�)�l�|,�D��yb����Tn�I��vh��b;�ej.���P��6��FW*[�3O���l���-_�����:�|*�i~��	=�G 9u�8�:{�r��s�/'��t<A��s<�W�%��,�U��r)Q:�t/�����5.@�����6/��8p�&w�y�8� ��a���"L��]�
�7�E�3g�E��.��������h7~	/��j�7�9u�(��,r��(���Z���;8��(���'���E����K����DW��6����?�Y�����D�@������ ,��T����k^�J��N���O:tP�z�!b�B����#��D����4j�H�p��-Z���,8Y�jq$
~Z�m��q_�~���.e����7r�"�����h�"�+��X�����_P��EQ����������8z
G��UXH�>*"Z\u�U����S\��9���1c<"�����|J�*����/lf0L�L������$p�U�h>��%������R��������nz|��eQF|3��|L�\fH��&o��/���i�J���t�\����F�Q����y�N]���N��Yb�l��/jz�b6�����z�J���'%��"1�$��9S$�8-	-�-�LT�$��$2�$!FR�JR��J� �����1J
�@������!VF	����B?�?���m���Q�w��.�����osze��yt�m�)]&M�D,���
���	�~z')�~��JS ���~�r���� �@N��{w����N����n>�K�,�7�ENC��m[�R��>h� 9
���=;v�C`��#��]w��tSG��
���+mfN��������'��9������[8}��`��I�
{u��+��)�~F�y���O>��,��1I���('5k�T��H �()J���m�� QX�#����=��hVx!����f��htt���:�8qB��w`�E��U����� ����0kp%���<�z�T�>sDw�e�b�_���/�u;�������y�F����6�+�%K��xJ(�"E	��P����~�p>��c=u�6�]0b������i�R����e�~n�;���l�-	W��]r�]�FJ���T����B�`!�+J�D���E!#Ibp��D)RFR�"��zn��5
����	���m_����j8g��;��X�	���4��CxQ�)P�
��M7������8��(����Q�F�K�GNQp��Q�=��"P��S�8Py���?OC��s���L��t6p���"-�vC=�`�7��5k�<E+�P�P11DHs��W��^��8������}�Y������8�7�9��p����u��s_�ZE��$�W��+}�Q+
���1E?�133S�p��]��#��D��`��^�y���7�PnA��#N �p��pN/����>7u��$��mG�%����3���?���z��Z�\.UJg����6/��:�a��d����(+g��e�����V�0r���p����q��4-vX:�]b��������W:A�:��Dp.�C�sm������]K� �\�w��+-���H�k/����,
El"/]������h�h�z���s��]�Y�Y��>L�[_L�md~��d!���������p�����>*o�����B+~�����4���Wov^�g��{��M�<u[0���"��d���W^��	�~��/�5�G#V��}����D�����h&7�t=��sr7-�P��sC���5P��`���w�ik�?3��/�g�@ �#9��[)�H��s�=yc��6�����S���+���^��%YY^JM�LJo�8�MX�\�k���
�����t"�������97�����s�~�"_�:��'���(J��K}:�>�{b	 ������������gS�|���"�zp��y�BxQ���?��/��/�e�����>�<�
6����7)�7��W���Hx1u�T�����_�D������}���/i����r��1��u���8J�po�7l��DZN�2s�LS��fv^Z6%-�3f���>����7������=��v�*.�/���n�������������O�����?����0�������E�@��G{���v�,A4vK�����W�)�0������W�@����h�������@]K��LT�$h+�0X ��I�����IJ'���z*��/�����U�����Z{����b%�X/EY%E�qCa�kW�jX�����n��B�P�Kc� @�[�!w���R��� �(b&D���3�#�HORPP@�k�Vn���?M�4I��;�F	$��8q�G�1g��A�G�V�~��G%�G������r[�����~P�s�
uN���1���Y�X��l���85GZZEEE����+T�Evv6u��A~���y���E��m�>,�9r��]�#��"))�n��6�P�������_V�>��c���K��@'��4�^{-���[�n#����'��[o�U���=�*���u+:t��oK�.M��*,���:�L�<Y�J"�q�7/�m?�\M`���b�|��U�H���W#�����\Z�{	m���W�z>�����������nP�N�����s&�N����9:"Y�����5�RR���|�-��{l;�!�+�N�0=����Qs)�H��t���������7�!�6�U*���)!.��&K�d� �%p�t]�����������=L�O�����8���(7y�T�������%�
r� `E��Z+Zs����G�+F+��[�*�D���<W/���r�-��SO�8a�z��w�>?��5n�X�V�
�X�"�X����������s�zD�$���,�W8:�G}�t��y3U�PA�:t(-\�Pi�M��e�*�z'{���U�V%�c�Ctt��5����#4���ZQ�h�#o��m�V��*��+T��2�D-@��h#���������o���8�	�O�����}������N�^��r�J�n��������Q���,�Y�d�"j�u?��^|�E�Y����=�*�Ps��n�����R+��h����F�iz��� ����0o��o����F����$��aZ�1�~�o�F�*:w>��}����ZIt��b���B.;��:�B�"a����"��$�8{���g���?ZT�Li�5u�d{Aa������3�W�'s�������Q�_u|��uR?>?w� ����������������rA��=	�����g���W�b��,�(+	,Xd!�U(�B����)��s�H��wT���]��=)-ijR�})�\%w�+��U	�j�j��O�~��J�nU�`^ ~�w�L!���l��uT�����=zTI��wh�2�?�8�(�=��G�Q�G�,���7�^�a������������������/����o����;��*L�/V��O�N={��������k��/��<����|��?������Y��1;�p
/�=��Zl�Q2���Ke�����L�B}���vS�Y���U����-�����Sn{��7����S��'"��x.�o���RRR��f�aU���?L��MS���;�P�~��k�	��85�(l�Gb,�G{���v�,A���������>{�i�O��R�g;7�F=GEX�g��_����u�n�J��/r��R���R��l:)	1�H�u�$�8%]�p���0�v�"��_�������{�����&�$���d��,�(O�uq���j����\�D��~���>�M~@t�ID!�)b�(�R��q)/��d�~?92�	I�����\I�!��Hk�)
�4��\J,��j��qQ�� �O �}�� V#��E0��{��bd���y��?V@w���a���}G��j^�w��;���n�(���$���{�x�[�����z�!q���7Z9�C�V��>|������+�C ��;d��^Nu�.���'��0k�,����^�n�A����\r�r�'�-�z��y���o���F�%.)==��/_����j���8���������:��E�]}�QY��C\�Sx1|�p�?�(r7��`���<�����o�U�v��q�f�su�n`�a%11��_��G�A�ZF#�nD_��m����#b$'{�["�����(0,�a��(f�aU��������_u�����Em�@�����}@xa[a� >pd��k?�c������Z
���4����~�u���t;�T6LkMmj���K����H�c�E��5��>-�b�L�M���;I���-���^%��^:�����#�|y�0
�iY�K���*a�"p$���"��E��:$2��T%GN�=�}���85J����8,8�Ba!������C����\�JGS��iR����T�2��O�R�T���Xa���$�H���$��g�x��{��9r�H@IDAT8�������@������|�n���Y���O+�L��yN�N���
N%�p*��.,�������#�����t�Ru�����;rJ��}||�N�:%�.�)&4h@,PD�a����zK\��<8��:�o��3�|�A��� ��)�h��X6����+�Da�G��������F������o&5p1;�p
/6l�D��M�f�<�7h� e��"I�={������QN��;v�(��[����}����WG&�������++����u�]�8���]��{
'O���G�|�������y�b�F�1v(�?���#��:=������+���R��nX��N��g�>��"���=`j�G{���v�,A8Sp��Z=�r�st{rZ�����HO���*Yp��J��J�����%�/����q~�����6�]�St"��=��)GM����b������k�����������k����C�����R*N)���:?�o���O{�n���}�������I�^I�=G���C��HA����&K"���TJ.'���+b�N�!P��}w5��I�nO�a� �{0�p�����v+�Yk7��s��
I@O$�+�oF�v�m��h��^�f�#�<�T>|�Z�n�\kOx>**��-[�m��3g�i'�
)�[�n�iS��7��Y����f�RG��~�_~��F�L�2�mZ~�^���R������B��M�RVV���6O�I�&���e�����y�Kx���(���ia�]�Q��h�_~��X �����Kf�N����9<G���8��)1z����6|��o���W`pn�{.G]�
v�������y�f������=XX�����E0)���Y �p�=�p5����h���|�
���~�o��G������i"
=��RP���J����%�En��L�(	0����7}�u�+��UZ������=[d���Y��"+g�d��`���}ij�b�z���} w<���
����;�E`F
G��T�r�Q��)#c�s$g?m��@����R��p���)�C��!EJ�H�g$����.����</��9�6O�@ t���b���],�y�@����3t��
ah	z,|�.D����0a�GZ�&��,����)D�(��s��$��������'*�z'<��o��w�����r��Cou]�.]�7���A�i��Cx�cs���WGp��9
�Lj���4��W������p�H�H;v���p��*K�,�S�y7�����o����
��}�v�wn����r���zJ~�K�*����=�,��������n%���b5,�a�E�:u4-�t/�`E�@@!��6^��4�u�B����[�%��v�{J���j��y]�_�8
� �S�`5[�TjB�kv������sg�,�HEB�}��{G��.Gqe��E����������G�pP�{�6-%TQ�"��3����s�>y79���C��T"���
�+��,�`���J�0#�u�kMx0��Cx�w�M��l�bu �&W��98�����
���6�;u�Dc�����}V�������>�k�\�R��i�W�I`���t��y�^��i@�B�����;*,,��;�/���� p���4�4����}����k��}8�������.]Z�$�ggg�Q(D����i��������@xLQ��G�F��G�1u�T9m�6��������B���.f����G���S�`��{������p�.���7��B�;��C�b1�7Z8��J�&F{/�>��C�����R;&��y���h���^QPD_N�3b��wA����=��'���=�����
�)��
VX��x��wu����.��#%�nGT����6& �G`����x��zM��*KB��uzo��-V�"w��I��o9eXC������"��e��T=��\��wBY��E%������k�����Eb������rzYX!	,b%�ElL9*+���n�M�h��;G�X�c�a�;���v��~j�3�R*'��	�p���G6I���tP�Dc���J�$1F�
���+�t������@@z��&t�%��-��I�@P��Aa�M `K�w[��D&�6�#6��*�R8r���B�~������yn��IN#!�4i���H�������Q1X�������6r�Wp4�m���m��W'�KMM%m��������)v��I���pZ�`��)sd�?��C��5j�	W2c����'_�-M�#ep4
�\�vb�W�VMWcv|�Y���P��U�V%N����q�{���X��g����C����5��$�����&��8/��BO�����n�o�g���n'��������
V�"WP�G��K��N���W�kz9,x�>#�_��&T���Z�fs�$�(�R���,��D( `u������c�?�ix-kt�V�_�(OU~���A[��LIta���P��hq��u�am��s	��w��+w�����X�;	���iw�������{0��'�f<�v��-xS�q��4t�P��p��r!�_|A;v�8��X��6� ��7}F;�f$�lEj+��t��~��8�FN�P�)�,9zE�
�)MZT�P�T��88+0��{�m��?����65{P����.�Sm�ZO;�� ��l��������?�x�c���xn�t<D�$�Hv�QS)���#�\*]��&���3z��@�0��%:A<@ l��aC��@�����7&a#J�n��x��n3g��=z(���X����M]%GD����������2��D@"A`��)+g����Ka�Yp� ���>f��En�$F��g�_.f���?>��U�I���/I._Y��@����{����*�:{���5W�K�R��Z�)�Y��-�gm4,�PnV�p���i��n���R�����#�Q<�0����(���G�jy��F�|�C�~�83���� %�(^�"��90�(�{D�:j�p/,X@��
S5o��f���������4b�Z�r���_�~��;�(�8�6/�m�@ D�����)t2���He�M����S�t��(�����]��>���K�Xv�jpe������$����r�f�N'`������� ����0��z��IiD��J[�}G����\\����Dm����������(C��q��A:*E��5�),0���P)��{s?����%G�����L�d�P	��C%��A�>����f
����J�=��[xq��I���8p�b����V�ZTXXH;w��������|���p�B�V��G=.@@�K���3]|���?�G��q��F7jQ�s�F��n_��������)������IM�F���)=��$��Ne�.�-49�@�����#E�XHfm�(@�Mm&7*%T�����9g�)��a:"	18B�28u������ju3%�%���6(Q��{�N��=(l�	lI�nK�a� �{P�\yS��q��-t�e�����)S�P�n����  %O����f P��#�R�y���@ &�O���<)���}+h����HE
)�t��6�����U�j��q�%��s���;���]ac]����X�n���%�	������y�EJ����H�o��(I���V$��[qM���>��>���	���hU�	�	�������@$�����L9m��i����4h�;��T����)���@xa+a� �"`�/r�����k������T��HB����������D \����VZ��')-����VO�'��U��X��e����F���D}[���4+Nsr9�p���1b� `�w[�	������#[����L�����������|*W�L�"\%++�222h����o�>*]�4��J)�%�E���)>>>\��8  �L��b���8���9��X!�����W��]����3�~����^js9�HltY�}���|���i�J��)+�/n�_�>��J�@���$��g�#7�	�@�	��N�"�����qB/��	@x<;�	 ��EN*A��"���gi��%�8a^8��-�l�,������c���P�f�"Z#	L|N����`��X�W��@�����"�@C���0�8���f�"@���!L�   /B��[A@@����QA8�@$������BJ?�yd��)'G��_��cR�l��BZ�|�/��R���I���A#�H�{q��0F�n�z�����`E������^   ���"xv�@t	���.T��#	����;N���o��5�d�w~�vY�T�b#�}��A�8��8��g�&�=@�)��N�$��	��3B��@x?�
 ^�E�	*@������6��&Z���]��T�rS�}��&�4a��!��-0�4�{�	c|���ul������S	@x�T�b] %F_�J=�N����n��6��;X�WS�*���A#D��=�t16X���Z��l@ �������A�Z����f  N$����5��(|�+Q�x8+�{�p�?�����)�?�s�.���&��}��"I�I��E�n-{`6 I��H��� `-�wk��'����V��@J����(~<���=���N���7L�s�|���%��F7��h�H��G�,����[�&�D��=Rd1.X���z6��@@@�i �p�E��'�/r%nL���=�����y>����>oZ�u���g;@ �����1A������f� �U�	�$��]0+p/�dM�@��E�f�$@�X��#��������c�+�����U�R�}}���M�n��K�n]�`f n��p�x `]�w��3����)��:@,C_�,c
L"N�9�9gO��k�Rn�)�i���z4���
 N��p��X `m�wk���p����&�k��[�>���8��N�"� `)�"g)s`2 Q�����SgO��uQ��l��]�1�j��g;@ \���"�q@������f�"I��'���0C�;/�nA�@�r�E�r&��@ b��C��Wp��]�1e�9��iOj�4���i�q
a%+N�&��y09+�{Xqb0�4����������#@x�3b V"�/rV���%�,_1z~a��vd��U^��������^���p����$����[�F�!���=\$1X����6�A@@�� ���1��9������G����g��
��p�~�6Q�V�]�b0E��U8�@��������	��-o"L�F�6�,O�nya�   `{^���X�������,���@���#�Vo�s�h��Yt {�^�\W�|���P*��@ ��`���'��=��Y�@0���P�= `O�w{�
�;���N��\AlA_�la&L�B����q�L�{|������J��)6���>h���f��?��������A�,��Yb��%���0s�/�b)�@�6�E�6��DA d���=���_P��M>�O,�B�Z���'!4�%7K�A������ff	���C�/��}m������]@xaKa� �!�/r�1&
!����0�g��mY�|�������FW��h3��fh�/��������A���Z��&���0{�/�`%�@�V�E�V��dA $��������;~�M�V���X�"�o�n*A�,��Yb��%���0s0K�n����}	���k;�@@�B��X
��
|����0Q��=d�a`��_i��%�c]�f��W�mC%�!7C}A������ff����B_�7����������@xa+a� �"�/r�2&!����/�7�Y�_�>s�k�f�:R���{������%�� `_�w��3���f��?��������A@@�. ����0O��9��
��	��CF���YJ�����xqe����x������%�� `_�w��3���f��?��������A@@�. ����0O��9��
��	��CF�N�����O����C�Zr�6T��Q�w����O�nb `���()�������X��X��V�� `;�"g;�a� 4�{��"r���>�C'�x�]?�������Qf����B_�7���������w3���M�no�a�   `^��J�#�����������@H��!���W��m����.C7vy��JG{�����%�~ `�w��+���FI������6�
@@@�� ����0?��9����	���F���������;�%��������������> ��wg��#��F(�8���v�*@@@�� ���u07[�9[�
���������~�4�v��������O��^�����FI������6�
@�(��QR��'��
��:/�n!�@�v�E�v&��A h����E��]G2������?���]V�
� ��=!���s���cK���"�vp��sl������U	@xaU�`^ �%�/r�5&�	��M#+�>Z�"�;�������P����QF���PBp��3��U���w#���A��;b   `e^X�:���-	���-��I�@P��Aa��MK�~G��x=�r|U���-^��#��F(�8���v�*@���J�� w��
�2/�l�
@���E��f��A (����E���������t�3��]�����J�G����@�Y����'V�����A8���Y�t�j�m�F.\�1T�R�*T��v$�����������iii���h��pw��u+}����
6�[o���'N����{N�+W�=����.rssI|�5o�������v����{7����+`[W�\Y�������N�:%O0!!�����;Y3���,t#��������3r�����������$�����`����M��^���@�����C��[b% ��=!���s���cK��������uk��q�h��Q�5N�	?~�X� ���>Jw�y��,���)S�����y�u���o�������������5k��e�<�]���.o��]{���nA��@0�X���_?���N}�����g��BK���eK:z��<���_O�����s�Xq�W�����u���f��e�i�������O_���A+8�����\�s!�����b�h`����Q���B;8���9��J@ �{ Bh���;��n_	���V^�{��4g�y!�����#Gz,�������zJ����?M�4������h��aJ/�N�����I��w7�u��S�R����U��!�0�,�7@xQ�@���E��V���J�n]�?}��X�����F�����|���"�zp���l���/�w_dP�#w�M��"/�����]�t!N���;w�X�w�A�|��\��[n������:R���� �
�����F��!�^ �����%������i���K�nm�~��}:z���$����.����G�#�Gm �,�wg�������
�E��,{�y5^g}�/����i���"6m�D����5��o��8 �}���SQ�G}��/Q�����y8����+���/+0*�>|8��__�/�D��Z��A������ .%�/r.5<��J�wk�}���i��^������]G{��������6p��������?�wt��"w�=��/���U���-����[�.q�u9r��j�J�������x�Z{�}�v����?Z�r��I���B�R.~,��?�<��]�F���@
aH/B��[A@@����QA8����v�+8M��O������I5RBS���J���;��Xx��{!A8�������@����	*lJ���g��{��G����1p�@�8����~��W2d���o�����}�]z��g���BO����zv��Exj���������_����+����j$��1<��������X%7J���}�a:�?��5�:����M��U�
�E����A�y����)V���}�A=8���y6���N�8A.\����D�J���<Hk���;vP�*U�V�Zrt���hS��_�����{�L�2��ukj�������������g��r��Qll�2�?���}�������6lH-Z����++��9�T[�n��*T�@M�4�
P��e�������������7��u��us����SD:�qx^/�$%%�j��A,THOOWwU��	/N�:E����?������R�6m�j�������9��~�a�;w�|��*�))>����\���Jz��������+�WL�4���y�M����o���������t�5�(��<�wt��]�?����*U�$���:�
�������6J�SO=�eWs	�����S����_��EEE�v�����V���;���g6�������gTxq��9������?�x�V,�xaE�`N �&�/r�6&���M�*������[��zvT�h��*U��^P�w
\���	��l\,
4�� ���;��a^o�7k�L��$����������������t���f�kN����G5�+#G��G}�n��&%?��GQ��	/�v�J|�����~��f�����OS�^�D������i�����������u�����^|�EY���A�o��E�&<3Z�t��-t�u�����T������k~���|�����1���B��e�K/�T��:���������C�}���T�8���_V�;t� .��>}��H/��9Co�������u��Kz����wm_G�=�{��.��8]�����G|����cG�:�'F�,����������G��N�?/�{�9����n�����M#��C��m��Xl��[7�f#����|�����?�Ea�����j�����9�������|�<�"7��D:���e�R��s^����5H��7��*@@E����Sp8���
������]� �p�w�8���n�sT���Gqz$�������N��s�^�GoPfee��m���;��Sc�NZ�G��(��< D|E���,X�%BP����9��m����O<���hE}/o�~���T�^=u�r�)	8����E��:a��:uRj��baG���-n��~��w�Q�������w��1��D�p~G���*9G���b���t��w�G6liEIZ>�zO�@�p���/&LP�e�9�CFF�,H8v���^s�j���`�����#Q�g	���=��c���������HaA�W�@�N����������8N�Y���U,�y�8���9��X$��~��%�8\.R=���������*���O�w�h��#w�I� �I��
@�q���M���FZv~��#tG�R��gT��~qX�����a���			�l�2�O��i#x�Y[.\HC����
���;S��i��U>1���i)�Vx!���cr�N��d���qm�q/G0�HZQGQ`ao��z�"�>q����a��?~��U�Vr��
`�|�N�!�y�o�^\*G��x��9����,~��%�E�y��8�=�Ms=_~���\#'������E=?��9���v^pTQX ��f��Z�I���+�y6o������C�b�
�v�M�@��=l�����{��9s���e��q�>�Z��,������L�P�@��d3d�/��������}�����P���.������~�m�V�]�v'G��F�x����o��������|���(��n��Y����k�s/�f�@���E��&�@�0��aT%�q�����3u�0���W����nGT����������E��R]O���W\D�n������~9���f~���Q�TS�������(�6�9��������t���QxX���5v^^�,�P�����'Rbb�2�y���m���\���-���K�������&M��=����z�jJKKSW������(
<���[�*����^{M~����P��P�\9QE���(�#3$''�}Y4��o��Qn�N�W�T����#F�������1o��9s�
_��m&����s�H"����O>��#(�N~��w�^�����9������@?����f�������h2|����S>��;W�o�O�<�6l����>~�x9�R)�h���G(���y����EKZ�A��4��|�I�%��n$����=�[,y�������iC8-��p4����Z]ES�L��a�+�",N�s QX���!�%��{9��Z���5�B����G/�h�	@���E�����A���)\%����^����^s�P�2jQ��W=*@@K��%�kp.��sm������]K� �\�w�����"�����"��5�f��A�G�V*�������\��������_����������u����:#�Ns������0��<��2$GM��qQ���#G�������@B���v�,Z`��(z����S�h�C�W��
V�.�Q����r+os��hE4�������M�?��S����g��4u�T��0���3/��G;/�L3G�� ~��6���6d��o��K4����<������<o��(,���"j��h��V��b#��E���'b�P�f��;�"_�#w�;������7���W�Ox��/�R�.�-�)`�H9���?���y��o�)Ep��z���k9��r��D
����E$=����)"����
���S�/-_ ����0A��9�Y���	���gW�w.��m�����)�S���C5zu@�E��W�C��[c� �;�!7ok/.2���Z�j]�P�q���]�z�������X�����i���)[,X ��P
�q���4"��_�W�V�cq��m����(�����(���=�{�=/����������\X�u�V���GoC}��
�����Q�p
�(U�����p��[o�U4{������P����+##C�P�����!��O?Ml�P
�K��6���
G
��f�Y������%����cqD�N�:y��Y�f
��������{�~v(�f��]��+"G�`�"��&p4��K�zLo�����P�?�����(��J���3��Z��
j��iy��W+��.N'"
G�a�E��f�x�q���8(� �"�/r�27�r�w��Gr���k/*��3�G�Q�\���
� �E��� �X�w��/�w/$�����7-�E��E�T9o��������3q�uh|�`��VE�QHxa�W�����CDQ�}`��GED��zGN��
DY�~=�/��h7�����}����u�F�x���="+�������/''G��P�R�J�6�y�0�����|�����(�<9r�q�Q�����5R2�2�E���������+�%���$�h5�T�R~�e�:�
������|O���1�h���GE����JN���TNc3f��H*����Xz
���'���%�|E-~u�#�s��}���c�o�h#���:���	��V�*G��/��~��s�}Ve�E���|������������@�J_��j9�����gV�w�^�&��=�5��5�P�����Qj�w5
����	���m_����j8g����/�E�x��%����7�n��6���I��ZQ��0a��O��#��__i
$�����VnT�����8�jN��{w��:_����P����x�XNC��m[�R��>h� 9
���=;v�C`��#��]w��tSG��
���+mfN��������'��9��5�S [8}��`��I�
{u��+��)�~���
�����7�E�H �()�^{d[�0H��k�=B}O�3B=��?������h��8q��,>B
�����f�������RC����W�^J�"���o��~��'y8mt_����j��6���J�*���[�^�u��m��c�:/�h�	@���E�����A���)\%�y����z�"�y��I������^�������*��{���ck���x@�=���m
�E�@�7��6�o���>���_�~
�q����Q��k_'���@��@)��*e�������y:t(�;w�g
�����i9������Y3�)Z��:����!�@���E��n>Z��q�%��#Ypa;�(!���������x�]�cx��S��o������t����W�Vr�}��@���m�������������zOx�p�H����m��o(�"��77n���;��i%&&�]���_�qC��.�8�ERF�z�����?� ��N����EF�U�	$���S�N���{�o��9��7& `7�"g7�a� <�{��J����4{������r(�'��k����#w���`�����X����]gr,�������E3�)�� ��`Q�(by������E�FC�k�v�74��7��������uk>����i7��D�NC�i�(�&|�vC��G���kL�Z��vS���z�f��}�����zu����1SH("���:�F�c�SO�����Ln��&z�����Z>��'z��N��p����S��xE���^��K��u�Y�f���=^r�%�m�6�G;Y�l�|�+��h
_2"��F��&))��0�����r&��@�N_��nA����ge��s�~HY9����0�5uox�W=*@@��8���	���oc��� �#8�����!�(b������_� oJ0@���3���a��~�o$RGH�^��2V ���_���\�����>���������t9R��p�'�:u"��<�po�7l��DZN�2s�L����fv^Z6%-�3f���������p@���������:O������Sb�Z��o��:b�p#�O;/�n�"Q��$�u��V�Z�w�}'����;u��;���#j��]���V�����#k��1C���p�B��@ih��9���"��4@�C_��cK���"d���V��?����g]:�n�6F]�s� ���p4����������\���	������"fBD����9s�4�O�')((���k+�����&M��\��h�^L�8�#������9z�h���T�{�7f�)��&O����i9V�^-�B��{��_�������(**J�jv^�
/����C����pD����.�vn��a����#����GB8�MIs����[o���|u�V`���O����*w1k�
/�n�J�"����K���
��8��(�'O�+��RNK�j�*%=�h�K�*E��|��N��
3d�b��*��>}���)S�1^x�z����s��ok�*U�k���s��Y�Z�*���*]�������^N��w�^b1�������9�%I�p$|�s�Y�(�%��b���sg��e����W��T���\��������6/��8p�&w�y�8� ��a���"L��r=��S~�M�0��}�]��O?�D����:m��_�b���)}�'s����:Hx��5X��pt��>�H��y�f�P��|=t�PR������-[V��w���S���,p������{C��<��=[�otkE	J�t����}QD�
��
Ux!��G�AO����I��wWn��s'�)SF�6s	�?������C�
o�/Y�D�����^|�E�Y����=�*�Ps��n����5��h����F��u5T�Ox���>��e����#����:Y�|9�HL�g���~J>��h�}�k��������:��Zx���1X���c�)��g'H����:��@xaU�`^ �%�/r�5&�	��M#��
��E���)TO�VJC���@u�A@!WP�O��xc� ���+(p�'7ob/.2[�nU�T�b������J�
��Fe?~�C���s�y��|���^z����u��,B��q#���pw���6���70��_����o����;���������������S��=��po�����W���|�E~������{��I�R����)�P��2j�
���/�T�o�$R�f�NS���o�u�]�sz"��:���
(%%E���=�*�x���i��i
�w�y�����\kO��������ch��	/��o�����c�5��X�t���cp�.,����p&�1_E����_��������P�\�R�H� �s	�@xQ���hg�9g��=�w=*���<��n�Bw�C�<H1����{#*O��xc� ���+(p�'w���@P���O���H���7�?�k�jL=��F�1���rzN��W�W�"?��w�}��C)]�x��#8�j�J��',�x����R8^���N���T�r��y���f�R�_z�%����kN�q�%�(�|�h�"�W��G�����oi��Q������!����[�������9�N�����*<�v}��GeQ��QsN�����i��"_z�����+������o�!W1�q����M�GJx����#b�E �p���?�������b�V^h��_d�q�p�Q������?�s��j��y�<�b����%����}�"�5�����sC
��]�����~;��H�/���:v�(_�^p��&�D�i�#�V�� `{�"g{b `���0*Ku,<�>Y�*�;��5�n��R���^���;�p��{l���������=�u��
a1o�?����$o�s�uUp*�(�S�p�uaq����ZN�����{��\�5"�����}/�z��)Yt���l��-X�@I�g���z�-q)���(����:g��4|RX�"��_��e#����
�`A{���9m�(�w����G{0�����E
\��+����
*�����Y31m���0(����:�^�����.�hl����];e&'O���G�|��R�'��y��0��x<0���X�p��WzD��T7,pR���3��?Da���R�������|^���q;��w�J���9���o�������#����|�43���?�U������?8���R�n]9��i^�}�&M�Eeb�����^���|��9�����>�X�aq�\����k�ij���n��G�����{���ck���x@�=����u�+�nk����q$	u(~��W�������t���:�f-o~�r��aj�����:������h��e^m3g�$���p��n���MQ���g�����5k<"Ip?N3��{�Q�2e�����!�������;{��7r�6mJYYY�<�&M�o��Mm��
��b��}�/�y^���ia�]�Q�7���_~!�[�
�<�#��o���`pn��<��QW|�A�j�������y�f9
������ea�Riq���PK ��*���*�9����V�^����|xn3f��?OD�8�1����{q)���_���@IDATE'<L�Q6��6���E~~���Da�S���������V�� ��"�3b `���&Kv�b'}��������T>&A�
��%w���r������X�{	���k{��}����y�+�n�f�V��7�/���[PP@&L�HK"������85�(���{���^���4q�D�]����_����=x��1C���G]��K�6m�"lmZ~�^��1�7�/^,���i0XdR�V-���y�Kx�.8	���F���c���#w�p&�I����N�;��F�SO=%��"�����=�,��5�����n/��X����]��SG]�y ����-�a�0R8��N����pz#^*,2��:��D]�/����k����V�J|���V,^X�*����	���������)�wS�,�y���(7?�k^�j_B�j��8��&���0y0E�n
:���	��mm>LL�������z��:u��c���l�������_�V@�G}����+W��"�"8�����������������}��w��h��%��{m�4��$--M��{��g��k����:A��#IpJ�>}�P����M�9o�r
Q��O#G��^G��c�2n�85j���8rt��S��i
8��^y���e�G�P������z��)C�����^���	i8��z��ua!�w�!W�����R222�W�^����o���u8N8�o�O�<�+
��7�9*��]m|4k3���9f�C�����w�}W��,����<R�v4Y���8}�����sN5��s��~V�M�^z��y�I��?�������{n��&���R�J^Cpj�,����������
m:$�� C�3H�SRG/J�<� �X�"�X�ba �E����V+3�
{�{�9!6�v����&w���zw�����X��	���m��]����w(��
�xc�S)9rDN!P�~}JII	�q^�n��IN�!&M�D,�0Rx3{���rT3�/�����������A���^�:�_jj*i�x�\�VN��s�N�MX��i�]o����!8
� W�L����5�>���N���p
�lP�jU�0		��$���={��L:D,�h��%%%Y��Z�f�q���`�z<�A~�'�������@xak�a� V$�/rV�
��!���������j}��mn�����5<���60�a"H6 ���0E�{�@�`��`���8�o�7n����w������/���;�KA@,L�S�'|����0k��=j���������Y^�jV�#u�{�W=*�K��^�c��#w���b������X�����g�`Wn��x������9�z���\�O�o�N����UrDm����/,c
L@�)�E�)��:@ 0�{`FV���F8�����)GC:?�����	��]l|,�u���39�b�wKw���L���-�X�`
6L�O���i��^)J�=J#F���+W*}���G����r�k�������@lH_�lh4L�$��n�+8M��O����o�j�uu�P�>�w��+v/��{m������}6���K��^��]y��'O��^�z��<����U����;�����h/_�<-\���U��Q���������@lJ_�lj8L� �o���:���kf�*7������G�;	���iw�������;V�N�ww��v'��;����-��9l���.��2��a���)S�[�n��AG��'�E��3p|�s�A��C������ZG�����qT�h���(�t�W*�G��>�c��%w���r������X�{	���k{�+��������)�
�6m��)
4���KU�T���  �#���l����������>� 7��]
�i��W���9�Y�lt-�Km�U�
������X�{	���k{��}����9V�^�w��>��������?/�Z�re��*YYY���A{���}��Q���)55UZt��������(�  P� �(f�x���	����m��� $�\��s�<��k!���Q�����Q�>�w��+v/��{m������}6���K��^�c�   P\ �(.�x��k���kL��������9���o����!����2��u��CPiy�w�������
%���[�D� ���=l(1����^��j���K�������g33����(���W�Nu/�f�:z���]����7V�n�ww��w��������������A@@�8@xQ��W�9W��u9���^�e~O���kQ�����mn��G�����eo�������?V�.�ww��u7���������@q���8(� �"�/r�27�r�wg�Y'���uSu5��]�����Jw�����X%0�;�p��{l��������@�	@xi�@�u�E�u&��]L��<��^�&��=����5�S�Z=��Q��w��+�;�p��{l��������@�	@xi�@�u�E�u&��]L��<����+����ka�bhp�{��Q��w��+�;�p��{l��������@�	@xi���ETPP@�j���������,������B�W����5N�n:~�8m���rss����Y���-���>^���~	���_<hG��;���br�N���o�.�_�a�Z��n*�O��|c�  ��	A������1V��]��@@@ R ��Y��;g�0`�����_��[o^���+�����~��rrr<�KHH��]��SO=E����h���������_�k�Y��U+��|���|�<y2�?�X�-#G��	&Pzz��I�����N�a%�/ra���@�����6O���f�:|j������Q��Wz�������3V	L����C��[c� �;   i^D����,^�	���S�N��w�I��M3D��>������-��B~���v���m�z����-z��A[�nUW{���[�,X@u���jSWX}<�\q9�"9��F�n5��g>�������,&*��v�U�
w�����X%0�;�p��{l��������@�	@xi�6��=rD��{�*+1*��%�h���<���a���4e��Y��f����M���~�}	/X��W/����Q88��6�Ejj*-\���6m����[}<e�8�8|��8b<,C�nS�u"������^��w�AT�b�6T:�������@@M����sp6����������]M�   � �E$�:dL����	����fDx����M7��A��Y�s�=���N�>-G�x��'=�}��g���:��������+��;w�:(��N8J�<�������
�����uk*U�����r������.��V�X�\�O�>�z�8�,|��,_�V"��5�;�7�����{
Z�R����^��p>���m��� $p���;��X!�wAG�H��"Rdm<����i��14y�d�U^4j��#}�z���;�V���eKZ�n�W_�?����W�g��ET���;v�*V�������K�R�*U�:>����A��7�|���Z����k�\������,."N_�"����[�a�����/[�����c�LT�n*�K��\�be �%��58�������@@K��%�k�p��"�Dm>��_M#G��J��^V ����j���-C��O>�D��;����#Kp4�r��yt�����r��mT�~}qi����/���s�O�>�n���18�HZZ��6b�z����k>��x��E�	��\�� `�w��"�)<�>Y�*�;��5v��WS���^��p6����������]M� �l�wg��5����A@@"A��HP���K�,�=zx�~��	4n�8���;��7�|S�����3��T��1��\��<��3����*MzQ%8]����>			t��	*]��r��������������-bcc�k�����i���J5G�HNNV��>�2Q�|�+�xX���f��$e|Mfm�?=��m9���&w�}�:P���i��M��l�bu �&W��9���@$@x	�6�����.�L�}jj*}��g��T�RJ} �8}��]���o���8}�����O�c�=�tY�lu��Y��������@��W�^��O?���r��yJJJ�������������wm�
u����wah�|��V
�$��Y�6�}�3����u��g�{�|L�n*�I��L�bU �G��Gu �L�wg��=�w=*�'/�I��c	�G�x���;8����?���}��
�qoTSc�!B��Z�$����1���S�1�����k>_�w~���d�N�+m�����g��hf4�={^�����>�1cq���E �M�F,�PRUU%''+����L111����Gb/�7o�
6�IOO�����	S�6�?h� ����^=|%�������*/��]{��������F����\����@��	��;|	�>����5������'�Q�'�)G�{	�������	���Dp�%{w��bf �'{��9���@�	@xj��o�����'��e�]�!z�)�Sx�d�;v�J��c�X�B=�+��]y���~�zZ�p�Z��\|����s�y�Q����t���*�4g�9g�� SPP@�����n�A��v�O42�F?��
5nN���K��w���f��m����������<����F��-���r��;@M-����M�I���L�h��@D ��w�,�	! {Dt!{w�Ba�   �`^8x��s��^466�1�C?���:�{������?���y��wi���e�N8T�k��F'�|�GU+r�g�e��SOU��2N$::Z�t������s����S�L���vC��@���w��}�U���������2�s�y+,�-���2)��b�Emy�y}��g
m?R�!�BcdSFr6��$i�!&��0�E� `C�w.
�a"{Xt6${���`H   �2^�lA�5�p/X�p�����y��ash�;v��Tq����c(��w�Niii�v�Z�����1�����t������b��)������y��G����U������<|�C.|l�3����n+�����_����M�GvOcz��Q^!<UT��z�hX�
+XdQ�P�Q7T'q1	�!Di��c����(�K�n�~�;����Yk�`�x@ r��#g�1S�(^ty��W+:���k��_z��~;=�������_��We|2m�4����=�g��-����C�744��!W_}�G�I�&�w�}�z�x��Wh���������q�<�������R^:���dX>�{FsAYx	��\x��w����V#|cY��G���o�� >&��g�%��Bx��ih�wB��X��!Y�3Fg�D	]�����r��a��\7�!{����3	����n5B�5��B�+�"�n(����t������>�A��G�;����L99�����o�UN����&.3J����!C�x\��#]t�,�!�iCI.���'+�^���v����L^��w/����dmT�h<XGkk�u���(��;%R\�dJ���.��\5?L@@@@@�5j��K(��	@x0��j*�EMM�@���{|�A����<��'MMMRE��u�_�8���=D3g�$�������']v�ej�E�����so-���?��z�-Y���y���r/��B=7�\�_�n9��)�F���B����9bb      � ��s   ^������
5R\\Lg�y&qhmz���������������t��1c���?�,��~�m:����k,�O����^<�9x� ��CIZ!���S����@�������6��]
k�>%��Bx�H��t�^-T����1���dD�S��A�)�]���������@{������~    ���uz��
/6o�L��r
m���c,�������we�:������"�;q���/��B�E���o�\��KJJ�K�.���o����'����v#�����7�'{��%h�44���?>��c�)5!�R�'5!]S�E>1��2����\O������*�J��z?U�cE�jj	�(#6:�Fq
�:��x"��=Ws�T��H]y�;	��#q�1�H%{�����A@@��@x�~�}�`�?��#�z��TYY����/���S�z������K�.U��P%����i�&0`�Z�
R�J+V��#F�U�|�I���[����S�L���vC��@���w����^�6m����=b�Z�RL�N���"��'�'�GMC%��!F�~)���)m=
aF0);9�&�e����k���]����%{��@�5`��YJL����E�
   A��"H���<P���_�&�GNN������2�������_O��=Os�1��o_�m���T���!Ch��V��,����U�_|��������F���z��+������U����|P^�!^���D�n���X����E�>i�T���D!�`���BX��+�)&���1�?"�w(g�R�!����5��f���Q4�����G`�f�����;
10K�n�����	�����������v_!��/���E�h���38�����?��]�z��:y��w��s�U��{����?�I=7������w��^:�����J�z�`!Haa�r��x�5������k��������E�]��\�`�M@�`��X"�d[�:�i���������1����?��p�o��{w��a�  �{���H���E��A @��������i^�F��
/X���W/���;���������TK0w��M=z�P����U�VQTT�Z���p�
�������� \��c����G��W_}%��h2"�[�n�\�S��&���+��'�r�g�;��]����G�����[�������M�A�D����lS��T	�����\@�7��o>�
n"{w�jb. ����7\���3���
/n��F�5k��f�����9�2+������&O?�4�r�-��6��O?��	�"z�x�C�(i��M4`��T�=���o)33S-�����E/���Z>w�\���K�s���?���$��C.��q�
��m�	�@a�.�a�G�aH���zL��=����3�]Q���e�$@���)L�� {w�2b `���&T��A����V�K�.%��M���w���"��3�<�����9s��+��h��SOIQDl��X����
��1����9s�G�\|������������O?U��444H^~�e��%��s'����qn���I v�!v������6K������]�h��E��H����T�<`u�����+���]����"{7�	�@�`��XFLL�����J   A��"x��������O��`�|��t�gxt�^&����Q�B�I�&QSS��
�M��O�7�x�������{i��Am��w�|�"}�������O��s��g8h��~��+:[���rY0� 	T�W������z����&�;���{3��a�`�[0� {�������`.A�<4������9���yx���`m4���7SKK�Qnn.���w����;�l��=�_~���(++#o�)))����>��F'���TPP ��'''S�^����#Y'PSSC���a�����o�����������Mxo�K�.��a�z�=���*�?����!��c����c�;��f�����X�V'j$�����^*�{�=S�=��#t�wPTT���[�l�s�9�V�\���r�(��rM9��?e�8����G������;�w��&{oo��_{��#���sb!��K�{N��=&������w�.�	��-#Cp,��c��`�����M	��#�����t�UW���8p��&�����n���k��v=�^�=��#�y��g��/��q���\ �z��I�/�����~�G}D/���^�Z)V����t��'�}2� �#�k�k����^���:�oC�L�6�����������1c�4iS������_��~���?���N9��������o�aZ���Ef���4ULq�M7�3�<c�u�P%���SO=��,�!@��]kx������o��N;�4���Bt�|�����o�s��9��������#Gj���������B���\�P�#�=�����@sK-����������d������;���I����@p`���Ckp���Vc���������!�E`ka'��
7�@������<@W^y���f��M=��,c���f����'�0��-]���5�����.3��2
����K����m�������vf3�����f�����K�Bx�a�q�`	�����b�Z���4|�p���?����5���q��T^^N}����}�R�n�\�_@�B#S�C�&TW���b1	�j��>���=&j��2����J	����;���	��1�@h��C��������J#���=4�K���"�5���b��	��!8�c�����9s&}�����H0��0�[���mC�<����T���}�Y:����E�kh=�(�f��}�]q�J3�G/Z=�����GA@ ���\��9f�`�����:�M�+���_Q}S�_���4��q48���N�{w�*a� ���pD/ ��w'���!{
G��� �l
�"���~��N�=�������=z4���O�����mBQ�����FR�����aE�%eN{���|P�"Q�����^�zi�">���L�����E����/�=���jS��E.��R�����.�<^B-|m��"|l�3�@���]xL;"	��#r�#~�
�u�d����`�)���4e����k��]+����2���=�L�#�����+�q�@�	��C�=v/�n�������s���`���eA�JJJ�ww�l��
�����Raa!}���yrr2��������i3z��UW]E����JD�9d3Z�d�!��P|�����u5�<D�^�d����"D �
�(�CN!�#�����k�z'P,�����:PS������^ShX�q��0��`�N\5�#{�Z��	����j3F�7��/[�/�����< '�a?8��6}��wt���"�
��>��f���6y��'��j�&SUU%�����t�����{�ijDf����^y�z��G|0+�������M�����9��C�?�|�=�Os��z5B��m�@L?��x:X${��]I`���i����������chx��R�����*��m� ���=�p�5����f���@	�����]��������222�S�N2_PP@��/��[�R^^��0|�p����D��������)66�F�A���8�OMM
�����NJJ����/0�^���G�o��]4`�:��#�K�.���T�P7n����4<x0�����*^�Z~���j���:Z�n�X�B��Cn4�T�j'"��p<_^���,����P!??_[U��^�8�C~�Y�F�g�#G���]����h9(����N5�{Z����3gq�
N��z�!�y�l���=��Cs���"��S��q����h�"�	������$ja~Fw��!�a�����sg�s�;<'��4k�,z���=�0c�\���/��/��2�q���QF�����j��F�BUfUx��U8
�����������W���3���w����������������*++=��wR(�a�NCt�!�n@@@!�r
	A��`��_c�����j�i����d�����t��Q��a��������1�@����g��@�n�U�@�}���������C�U���_o�_{���b}����n�Iz����_�8�M�g�y����Q���+������/�X
A��������F���'��
u}���'=���t�	'�/�9oii�y�����>J��}�)S�{Y`��Q�������&<3�n�k��}�������+�x�=���������[�w��]	/�����������6W��N���]�|z�����7�H�1���~��"��������D/�`��U���kkki������Ok�=�&L�'�xBn�{\8t����~�2�h�?f�)��q�|��ju3�s��m��{i�dVx��>�����^�����������c�=���������X�F�����h��Im.�^444H/�=�$�,X��x�vL^�qU0&G�9G/���-�B� ��l;-��1U����mVr��{2���2U�#+���Y$��`9m.\ESL������[p���.6#{���`8 F��0�uY��
s�J����6]/��~��(����t���]�(�
���"��i�,���k�C��^�'
�"�/�|��R �m��=G�`��A�?o|��,�I�����w��hE��7Q_�u�����X�sH�F`$~Q+i2�{��qj�~\,`��6���<�O>�����������Fuo��6�~F�|��W
�:�$�������#�>���:����.������|B�����"�`/.l���~������
/8d��>��z���R�a�)H(--��5{xa��7j3f�����KX�e&��������V�9q,:1�XP���������p�?%�=��E+�S�����]V�p
��s�Rb" ����/"T�P�v.��;���M�t��Cc��H�B�a��d{oni��HXl��l��8-!��s�z��@+'�;�@���5^�
N&{��z�U�c��
��"+E�����w��>|����Y���J�/��u�����7��E]�Q��������l���_��1���i�$��B)�#��^8��?��fs\�=Ci����^����,��MV��^���'�:�,�y���+ph�a���/�a��y\�G�VN�#��?o�j�`0��?�\�|�o\�!�aOx����U�Byy91?m����y����:/�������1C
a����y�Y����a��?������?��n���o=yN���F����B+
	Dxq�
7�;��#o�k:s�L�b-�wr�t�IV����?�{������$X���({��� �s��%,��'�tq��g�p?�k,�5j%$$H�6z/������NS��^�=X���������������6�@xa�E��@�M?���~=X!{�Bu#�@e}9�,���(m}K�����E�{OIq��z3}������|m)\C[�WSSK�!�='������4l�Bp)'��K�������1n�!{���
W���Yo��{���g�����z��P��EJ����������]WW'��0 ������Rzz��}�������^=W2f�,Zx�������rX�Y�f�pJ_|\�t)���j�Hy�_)d/<�#F(E����=����R���!))I)"o�X���233e]��~���}��"������-�+���>��3��7�yW��CDp��z�f��o�bn��C��������%�#�7�������{p#9<�"���M���_-���9����~�\
���2B+�x��7��&�Y���G��x����
0@����x@��PEF���z��h�h>����"���/����z���^{���������x��!�?�<��A�8l��&���W�����s�7m�^���	�o��$7�0G�x^p[��;�w
{�P�T���G/��*���	������K`��p�r�(,�E���%�T����
��ncid�)���J��;��+��hs�
Jd5q�L:g�L�H�6Su@ "8��#b10I3�{��{��������0����K�����7�x�n��V���3���_~Y=������R�o���3G�|T���b�
�@[fFx�aN�y���A��GQ�d�	�1��]�vI��9op�7E ��+G�|Y���%m�s�M�O,������
\�2u�T�)o���hE�XSS#7�����7o�b�q�(a��y��axN,RP�~\J��#{BP���5���k��N���o��f�u��Y���%d
��06�1 �����+�E�QD+�Q��Q/�a�o�+�h=�yN�~�=Z^�3�"o�=w�3��(u��7�5+G_�|��m�����
�S���k�:�����@�E2E;�>�@z�Pi2Zo \���x�1^p����x�6,�`�[������	��/ �4�!���xA p�����e��Z�������3'�������������������	�VQa�N����v�3F\f���[	��������"{�(��/�?��u�^f���z�:\������'z�������xY��K/�/��Rm�`��C-�e��f��y�n�t=������#=6Jy36::ZV`�6������6�m����R���N,���q�Z�hC}��U������f8�������G�z�$�p��\~����6G���<6�p��qm��A�P�w��.(���&^�`�KQ�9mVk����!I�M�7���G8f�!o�='���.Y<�������0n�8��4��-�����F��s��w0y���������0X����{������E�<����[z%�(�x�Kx��!�0J/�2���������.��}z�Z��/Q�V��mXt�����y�E8��o��$�r���t���G��c�AX��gZ��{jl�7�Or|���?�(S��U������6��b%m/YO������~�����A��� �v�w���<@�n`�v[��G�n�-���|y�P��7��W��=~�x��Z���a�7Z}%�F�?�����y�C�(I��EEI�������;����V�\I�f<'��:�m���o+U��7���^�
���'�(
�����R
AX(��sg�Y�q��0��w��f>wr�����j�3%%%�����{�8p�*���)Gy�R�����0��8����,
4i7���{M������X������"��+���9�9����k�����B*�Q�����.�x$$����aln��6O*�����Xz�?��^��?)I+~Q��G���N;M-���;��7���L��:��A����]�J�����i�)��`��z�a�����+�tk�"/l�4��S	���SW��`����0],������i I]h\���-���6��h{/�-b����
�m��c�b��1�PR\J��DG �Tv�w����A�I`�NZ-��#{����Vf�q�o��J�~�)����W���5�X��p�|P�g�aO���S/�^p�{�
5�U6N����L�<Y������9n��fMK�,�#��b%q���>Z��7��?�|E��?���z���.���k�jZ/���p�B����~\3f������k�u`�!���[�&���&��������+��L8D�v=�~�^��	o�+�=�h��(��#������\��>'�=�=Z^(�c�{3�g4&&F)ns�0,>Q�\�m��	,�������MCMATT�p�	j�"_�����w��W_��z�4�.=��g_+>������yyy���h�Fm�a������;�
� �h�!�����A���%\�mT7T���}K��V�����kFo)��LnuO��^��;��Y���pm)ZME�{�Z��>�(��xw��K';�E����	t��;��#{w��a� 0��ut^�2�z�k��
��>o������MS����t�UW���2��T�!�*����So�����E]DMMM^C���Mdx^	���P�'X����C��w�/��1�xQ;�e�����B���o���S�{�����x	�
�G}T�+����8�7�9�6��y\\���#�^
xM����Q���;��Bn��F���F'��mS>|Y�,���_����*
Txa�f��/����DY#o4H-��Y�v-����*���s�9Gz�P�j�K,�b�����s��a�����f�p8\�
[d�_m��;o�<�:u�����^�~�0@��9�������-A@K�@u���s*���-����e��}<q(��Ha��K7�&Jd[Ik��@����M�D��y�)16Yv����T\����O�#:���o�
A�:��]�
SG��;r�0h���:6/Z�)���r�(I�D^�h���J���P��Gv�������|^\\L#F���Lf���LV �pJ�V������7����n9o}��P�������4*�:.���55���L?�:V�|	E�{�%�\���~������M�������
=���7��/��{�1�D�'�����^���_���s}���%)���V�4i�$�?�r[����;�6m�$�������<�o7f=hx���?��&##�[7�+���vK��8�~�9}1~0O�n�j��{l�%���R!�0��vK#{N���D�M��^�^VSB����������>]�P!��I��f����_f�)����$:o����M��(h/{w2LK������A�2��edB��n��z�0���s3��0�~�[���?��O:���W0��������^y��G�F���3��CB�����^�y#\�������N;�4�������u"&3���#~C���_��P�2pX�7�|���<�Y��MG/n��6����<'%�^}�U����Q�3Xt�
�Q������u�]���F]n��A��P�i����K����c{/��	�P���H8�Z����O>�D��������2f����5c��>C����^x��5�x�
����o�Q��C�V�I��,� ��!����L@���?B��������oLXh0��$�uEGy���hZ[���[C����+iuA���0,,���3�o�v.�e;�7�70o$M���5�@$��G?��D�����XA 8�w�� �he��(||��w�0\O	O���HGq��t���4k�,��(���Ox����z�1��73o��V��_|����n�jC
��-fB���a9�.]*G�}�����M}~?77����eU��
VxQ^^Nc��������.�M������/���Jm3�,q�mbo)��effj����C��u�Y��K/��S/0����L�_~�lgu=�*���q#�mTT���/�X�C�(����z��2,�/�����Q����:u"�[>r���{������W��z��@N>�d�;w����'����{N����ok^^�zn�a�:�����kW���W�h�l��}����{�nb1�6��i�wd�����{���~��rY1)0${7��B	���&Z��gZ�s5�4��3;9���)�GR|L��6f+���+v��}�i[�Zj>�dv(�R2�|��P"Iq��������T^��Ui���~G��=�SA ����#
 &"{w�ba� $��u�^�2��������	���W^yE���W_��A�!�a�>@IDATC�m��?�L			j]}���>��:�Ox�!&X�+�G����u��QZZk���.���o�s���D�%yc�m�7R������� B���^����(C'������"�������OV���B�?�#q��3����)66V�E�<�+x��r���<����8ao#[�n�=�&�?���Z�u���'�|R��
�au=�*��r���_��RS}���=��1p�@����/��7�3g�����_�:�M���~"�)I���[o�-���\��9q�D��(�e�
w�^h��z�s�=jw����P
���C���"�@���������Yk����7���i��_,
�{f_�'�?p��P�P�{Csm�-6,������&C�tL��������E��������E�����
A��Be�n������������#{7�I[���4V�XA�;w>\�����_
���z��9���J��qm�����Y����W7������E�W���8�p�����y���
��+WrV&������J=���.���E������c�����P����-{%�x���k||��w����W��7���+����H(���Z�������2�}v��gz\����((^<.����k�T����t��g{�Y������j�*����m���]�w�y'���k*�����4m�4�\��{s`�e{�%����?�%��~���z���/>g��E��K�{����
���$��6�-��{��W��
_����f)�X�d����Aj��@x���qkw�9w�+fF`�FTP�!PYWFK�~E����t���8)�`/��=-��V���w��}�hk�m�����GP!�8�� ����������������9�F�j��g�P.%�����${w��bR `H�n��gaiU����g������G��+��X�����#p���oe+n����7�H��~�ZU���7Z�������:�a�����p�'���N��r�mjii!��0�|���������7�9��8����s�|�����o_�2����?����J9���|�7����B�q��_FF�:%�!X��o�>���u������E����Rxq�����_~)����OW���G�^xA1����_{�#��	��`�%J��F��Q��F,�0�@p��A��������9,�Q������Bo�<3�����C�(��s���u�%�`��C+����O=�b��?��s5�R�e�U�s�:u*����X(�w)�|�1c��HI����;V��^p��&�D��nG/��"���	������`��Q�"��@I�^Z��s*��k������P$y�)5�����a �^�TKV�p"�����W�^��%dJ�������VW�^+p�������E�k�1l=}������F�a��	b�.��)�@D��G�2c�  	��� �%��V��f��?�n@��<����`Q���8{�&gL�<Yz������=�2W��^p]�o������UUURt������?-X�@I(��yi<�2��h������G�n���(I������
����/��%�������J��s'�z������8YW(�P7�y�}������Q�a��'	�����������F��=b���L�����k�������F��V������?�P-��~s��z�yN<n���5kT���6<�Q�,h`!����p�8i�������Jb�{���G����Kx�mX�r�m�y4g���N���&f�����R����������������7���p��^SR�>}dX#E��Ox��f��%EeJ��-J��>Bx��+�����~��nI1!�J��
.�@�	��WK�~��!'��4��9C)6�{|]e"V�}��mBp����~E�����Yp�[��������j��������^C!���{w+�"��=RV�"�;�����vS�L!�$�u����f�7�����Q�z;��'o~*����F����9�������x��6��|�M���{��4iq�m�MN�W||<-[������0FE����
�EMM
�?���x#w��!TTT����c<x0�����mu\�^���G}����m�6�?K=z!����d�R}}=���M���S��~�������Tc{p���G����-���Qlu=�*��I����O�����U�\�X��"��`�?��*N?�t�1�����.]��������x�
�}��)�+���>��3�T���E'�L�^6������ECC��h=lp�������v:���N������~��b1	0E�n
*�@X	p�����RiuQ����y0��&�����?{�k���D6�Eu}��~�]����aD�����lo��V�`�|�Yz�U��F��B�����m�A�M��������@���G���G�{$�vps�o�f�^�`to��ncc#=���aI�k�����84�������_���^xq�M7���>�^7�p��6��M����1C	�a���l��	��k������_(��7{����*��z�0,2����Z���B%�`���oJ�=A����=w�p�(�]�V�]��Y)Tx�������F����C��Y������v^��x�����6be��#kXt��womq�y�����\�a�0�����"\��a���F,���Xd�u��3��{�����_���6s��!no���Wcp4��s��a� `���.T��(�)����ik��i�
�^�1�B�1���I�S�z����w�n�D�z-xtbp�������~���j�p�??�DM-
m�G����c��\C���7{w�\1'�t��H0�H"{���n�F�����;��C����}�����6�������K�,��J�D�'���;�<(7��6D+�����O>!~��C������a8�Inn������o�M�=��G�mE�$�!=N>�d����^�y��e/Jz����+�TN������������*�����!���'��w�t���J�{��&�������}��]���p�
���i8�'�z��mb!���3e�Y������{e���Q9?'ii��2e���������~�q�^���r��V���s������
��NP�q���N;M=��aq��+��bX�A'�x�GH ����C���3�x��C
=��c���������7z�������i��ns�������;���C��w!'��������R���b2d})m:��EG��}A\K?�\����!{o� `{l�M�+i���BH�������~�G�p�)).��5��#H����B�Qi����Fdp�����i�}����7{��T��3�?Mz�r�#�����zy19� {���p5����7����xc�C)�������������_��`��Y��3�7�W�\)�b��������1��M�7������?999��^��q;�\9������7a�{�ut��2{�X�f���7��".d�J�~�X|����~F8�
{6����������i�t�,L��k�dRXXH,�:t(edd��>�t��o^7���H���6�!q�&���
�~vn���Wcp$��s��a� �{@����{o�V�V�0VSA��������bkSD�(*k�G�-%���-�M}EX�����������;q��"�@�k(7��w7�&��	��}��Up���V3�s�%������=[����A����.��
��������{����c�SA@lL�/� �L�!��u��A ��@��
t���
�,�`l*\A�ue�6���x�7\�9�2�
�'�����j8L5r��k(6:��:
A�-���-+�y���w��P�B�����<B-���O<��:�7�|��L���k3[�l�c�9F[$="��fxT�	���m@xa���@@�B?������'{��5@���+����U��x
54��e�y�=i`�H[{��6�e;��e;0�<(�h���\|S�P ���X$BD�"��@���E��C-�X�`]r�%���
Fo��F�%����+����,Y���6m�����x�2  �!��m�p��s�Jb ����?#���Q�Ax�XA;J7=���D��w
�M�	������^2�*�J
�N~	��u7��Bp�}w�*b `���'�7���a�g�^TTT�	'�@����������W�^���L��o����������d���o�[�n�8�//��6��C	���C������& `S
M���h�E��J�<����!����A�#�O����:�zQ�n�h�<���%d��#W^C!�����a10G�n�j��������3�P/x�����O<��Xt1w�\�4i��6�  �� ���5�@\F?�\���� {��@��*����e��p5U7T��M�-'(
��)�/Xjxyd��4�����PN'���N_A�����g�� �t�w��`��?���m�d���^{��d�?�|���;(//�g=\�/��&���	�����`�`�*8�����"�J�Z��Z���;e����
�C:#��nln��,y��kM}5�'f^C!8���;y�0v�F�n�j���	����z�?��;wRKK��q�.]�=P�*��
h����g�������)�?~<�����V�@@��	@x���q;��9��1f
��BGp?�%��Y�.(�i��Q����n/YO_�{�p�9��h��K
���L���z;X#{���A��`�N^=�@@�A�g�F	 � �!����PA H�� �98�@$���5�ig�&�����T�9BC(t�H�w�-&&~����ep���S������a�8�~�9w�0r�J�n����s	D���6V�~~��Z�,`LT�7�J�
���67A�3�H��vF���@���w�` �n`���7��%�E�.=& .�!.���G�n�5��@ \"������o��o���4u����PN$����5��A P��@��8���yk������@x���xAlO?�l�D ���=d(��������s��r��Z�8�\��y��5�������b/N�8;����;m�0^p/��f1���	���������&��������;��6\���$:o��gx� �$�w'��
�����A�I`�NZ-�@@�I�g�F
 `c�!g����@ �`�!��@��`����t�w�|��+5(�h���4�k('��;i�0V��=8~h
N"{w�ja�   �L^8s�0j�9/�!&{1Pt6&{?�8o/�Mu��4�i�/�����dA�y`��[3�%{���������f1��8��N[1�@���C��K��@���C����	��/Qa�.�x���4���l�>z��Y;(��C�
VRtt��2���v���l;��m������):����vi00p
/\�����]���]V�������1�v!{�\�E?�
��<���5�F�<��
��@mc5m,XA�WRy�~��%dR����/�(�<�'��'����	������x��{�����@�	@xz��@ �	��\�?�~D��G�rc�N���46��D���������������0|�[�h{�z�$�{����Qvr��F}s�Qbl��6n�{w�
c~ p���0�@��`�n_a�@@:�����������`�>��������n+YG��{��Q�#BYLq��5��@A���bm-^KM-�� /��E2X�0�RltB��8�!���+����y�w��P�N�����A@@�� ���a� #�r[0� {���������U���Yab�SiP�(��(
�@U}9m*X.����,������/���^�(:*F����wW//&`�8p�&{w��br   `^�b07�97�&��	��}��Up���j�4T��"�������8��#Iq)��Qj�@csm)Z%>k��b����4������2I����t��6�w�-���
A�q���s*o*�.qG���S7~@@@�� ���a� #��p���pA �� ��)8���������o���B��t������<�=�����"����t5�����h*�.�]1� B��0�RnZ�
��Y]_A�ue�S-�|T��~���(-)�2�:SjBe&�q���wO8&P%l���\�#���cc��sj>uI�J��y�b-'%���Vck��i��M��Qxh��
���
�������P@@@L���$T+�n��B]p6�����+`��i}�l.W�5���L�G��#������qaY�~JdK�j!4�2���4.:^
%�
�]e���R�1c%m)\T����t��3���EB�h��U����*���"��m[X�79^�1�(=1K�22�(#1S�[��n����@CS���
�]SYW*�����&����l�L����<�"�R����l��{���)��@I�^�u`3����J���'=*��O���5����@0 ��������((����ta1-0 {7��):P]L�-}ESb�="{
�:��fa\!�Ky�������� `�i�_�Q���@�}U����{64�����"o���~9����T+�6mS��BV��2��Bl��Wb���#=)[�32(M�2�cH�	��'�s����Vo�=U��
�^Q]_)�o���s)G0�Ss�sJ�f���~V:��[��� `?�n��m�[-v�n�������OO��o=T� ��J�A@���?�p\D�����T@���@���v|K+v.�_Q��
��B��_�b�W�HNF�;J����F���G�����B��h����[hs�*1�
�|��r{��m�3��#(�����R�������I�B�!<d��O���(�S�5*��G� ����[E��h��x*k��BY���';�.�{��,�c�#��������B]����f�0"{��YT4��%Sn��
@@@@�/��u�H���"0T��;x�0t�H�n��K^^��,j�D�J�����;l���`CP�^x�(��+���i=
w�\hJ�M���?~�}�_l.\�fF�s�c��N����)�M�;>6�8|N|l�8O�e	B���,��8'���;E�{��|�c\t��T�)�=��$S|�\�]z��J��Bx���P<��j���o{�!EG�H�����p� +�Qx��g���Y�����P��Z�L�����m���vj������c�[fo+�D]hW,�b������������T'��q1���R|b�1����/�d>:NY�{(� �q��e�:!7+��E�J7EK��,�l[���LP   ^��#z�6fT����	��]��� �`�*
���������r[���Cz���e��{8�"�+���Z���
�fi(��![����Y}C���>�MyC��h��8�^G����(,�����$J�O`,�H�b,�hj���H�	�����]TX)>Rl���E/9p�p��
���WEx�k�^n�bM�w���*z��~T���z�������7�;�t��N�I�)Z�&��B'Xl�����Fq<uI��n]�W��{��x
m+^+E,��=�
[�G�9��M�9�%R`�j���U�p\���f��+�TfG��O�F�P#V:���#Z�-6b�X��1,�(���hp��.e�l��l��%��"��hJ�QM)Q"�XL.�4�L�G/B���@+l��I��!{����LA�n�`������v������|�C5���
/�q���wT~�E%Bl�"�5��������7\x�*68������\�B1��� ���u�o��
�)	���)7u�{U��7��T���2�]ig�#oT&��P�k$*y�A#)���,��^T�P;BdQ���[�ei��'�7��������b�8]�C����N�m^O
��(6e^�5�7������!w�����"������t�*6�����*��7]95l���s��s�P�GV?)���(��-�)���,�[+�*�o�C�aL�Q|'��)Z�V��J�Z�^l��b�X�#9��
�g�7T�8�pC���	�;B����u��C=2�S���cJ,$x�	������: 8�`	`c&X�h�!{w�Za� ,�{`��m��{�G�����^�hP�h��~/����	�E��,�6o��/�H�Nb��.��}�&o�����`�VX�^x��Uh�.��[�f~x�Bl`�����>@�i��PR�!�H�R��*6�Y�!>b3���$	���s�g�Px�)�q��E(�`f����	18�	?{����b������V>�\�������*Z��CG����$�\) 9�9�#����I�����@~'�w���""��LS����y0}�q����vB&���VoGkC."Tn	��\Q&�.�V
�E�[	/B\��M�!��	t��-���#�w$��BI���BG�p��"\d�/�@����]zL<	��#p�1��%{n�����}�����<����w%=>��
u3�1���A����r*o�W�ou�}#�w�!r��2��f�_�X���V�7�7�7����,T�
��@�2�B�jg����U�!����%���wa$�
�I�.����x8��M��N�����z sh
�����E|�H7h��d�{jS�`G�*�����d��08�L,V��K���������9G��#����������I+�aD������"�`QTFrg)�J^�2��	�y�5f�"#X�����b!>*h���>�����O�3�R~�����{��
�@@@BI��P�D_   ������Yk�`��{�-�u{	hc'�S��&��d��ZT�p��b���j�m�����j!�n��X��o����S��0"C�O%oyn��=Nl+^/=������o�W���,�(�.���}�@�y����r_�*/D�����1���D�qJY���CG!���Mh��YYW&���7�V��������7SD>�&(�L)���<��b��^h����!JJ��'����5����hD�)�����m���w����|{����_I���Y|��!*�L�"��(#�Izr��!��������=��{�v�?7����/B����S����MaB%� @x<4#�!gDe �N�ww�+fF`�FT�+�
��{����u���M���M�)C�5������^x�`A+Xh!�����*:��Svj�8v%��)��u�{o:XO�B��<��gJ�\<o��L]wKH+�y��,`j2�����0�7�xS������#��ts�y'Q{X��
)�H��P�E���xS��j���G�XI��M���Gxv��>��!���R���`��o�b�v,�m
�1I>����O���Q��U��&�
�0R���C���
%�����
��EX1![�I��)]����I�G�
���>�M������������d�$JID�$>6�kZ��!P�oM����[t���HU����F��G�s��A#D  �I?�<y��L������@�����G(��?�o,XA��,�JW�M�C>d����!�Ej��4Mw�]9�`�������a�3�hC5d9���z�\8����XX���C.zJq����D���CB�*��QY[&D��n���>8���HMG$Ul����t��N����ml2��� f!�SD��>�
*���kp�{g����*Z+��M�Q���iX��b�
���-��0"|F$vD�@��3T�*JB������U	Bll�vL������lJv�s`�+e��2L�-�[���j�9�s�.�#,�HK:t�
,(	����W54�
2X��$8�����B������Fjnn��Q��M���fQ��e����^�o`���I��,���;��E�4�@@@���FTP A�� ��)8���a���@`�A���tw��d���������s�'����E��O	Bx��<�i��-�Fxh�075
���"������q�k�;n0�+�%�&W�,��W����Rx�{��21� Cx����),���� ��v�5L�b9�eJ����A�D�8�%A��P.H� ��w��_�}!m(\fz���G	�����Ux�=��P"kh[Ik(��U�O?Bx�JGtl���q����wHUuH���W���
2%%!S�-�D���v��[)�`A�k��4�F�(k��J�7U��~!������Q�)���M�����$�r�<pn&{w��bn �I���#�g�a�o�'�Pl��z�ib��7�;�u���<�"<Y��*�;����3Lu�!1���!tx��V�6D8y^%6�m�yB\�x��I�fz#7�����Z����KaFKK�S$�
?!��8)�P���"1d�P��Y#������������U�;d/G#zN������ba�.��b{�����pH�>��E��a��
ubo5U�C
��D�|k�a�nH�0+9Gz��^,���"�"D��=��������Q]�����@  �������!�.�����]���� {�'��������v�/TZ]�;���]}�[����7J����=Yd��l�����'�;�	��C
1���*�D�6i��!O��]��� >����E���E�!�EB	�D����@`������u���"BJ��5���7��jE��R^SJ�%��KYu�����=V�R���p}s�I�;*��R�Eq�gR!��Bx�8PU,�vK��c��2���O�1�d?���~#��@@@�F���� `{�!g�%�A d`�!C��@��`��D�����o��	x0�9��,�x��B�'r^\K�K���S��R��4{��d4����VaF}#3�ZE�uR�Q'�[���3�����sRE����Rl�.6r�@�����!��e�7���|(���l:��1�������pCR\Q���kKE^�g�
�U�!���v&Cd4�h����fRV#�'"_&�(M-
aMfR��b��
[��UXq��s����C��!�E�,5&
 �^�C��H�> ��`����{{���
�~�RZ/D���"Q�S��B�'���c���
Q���s�A�n�1��',��P(�}>��<;����^R�W0���e�LO�7�Gq�����
����'����<���R����Alt<��<H�F]3�h3&'T�L�b�V��%�\�284�������+X�/9��X�k$��j���s
/B�����J?�T����	��]��� �`�*
d@��`��_bLT�������m�RQ�n�/�����W��)��r!�`1a{����0"=���-msE���C�;���.�����d&u�B���b��������l3v$t����=�@�l�����LDyyy����-3t7o�L---�jnn.��w����7��9s�8@�_~����������eIIIt�}�y\7:����������s����kWJII1��2?jjjT1��a�(3��B�����s�N����yk�.]�4��:{�����*9���T�����1�b^��"�
����@\N�����@@C����,����������@����t-��-�Thz�O�kFo!�JG�Elt�}���@��;`��%(..�#F�����~�����sd�	� �7��t��w�5�\����q���t�=��{�}�����/z����t����={����=�+',"y�����g���[�*�����N��.���=�X��xmx�8���Kt�Yg�m�k1m�4jh�����G�1c����W���:����/��s�9������n�k��r
�^�Z�g��I4�|��-��@x=��!gE �R�w�.,�`�PP.%{w��bZ `@ T���d�`|/B������c����%�Z���� �J T�� �� �l�$������w��y����+�����������e��O�Y�fy\�����)c��m��X����SBB���u,X@�\r�ZjVx�m�6�<y���lf��y4u�T��
�Axa���
!��0��1��[	���[W���`�m���J������@�-�{[&(���o)ZM���B��g�J�!22(=������-Cd�F�����M ���h��	@x���Ix1a����X�1~�x�I��9�>��CY��Z�M�����_���,Y�-���l���;qH��j�pf��>=��3�q�I@�iD�bVx��g��W\�43}��/L?,� �J?�"u�1�H${��U��#��=RW��D��H\u�9R	���7,��;RU}E�hS��(M*XT���%���1%�c��<4����dzF��"�����������Nb��������}����o�>Y����o����W^yE����<���4q�DYv��Az������h���Wo��Lss3����j����
/�����5P���2J��x���R�~����������W����#�
@"�~�E��c��L�����G�{��8��`�����{����������j���	�I��"[-�(Cz��1��B��	���Z��5^X������b���t����a�������6���������
6PJJ�z^WWG}��U�9�}��B����o�<�����j}�e������{�����_~��lf��J�8Bx���	�E���@	���!��+	��]�����bA!�������I��!�����{�K�l���.�B��z�H�M6
ABO���=�#G� �I�Of��"�����F<���y��G�>������;���e���^Lq�]w���^������SN���[�9p��={��#6���(��<��#>�^h�F���&A^����s����>�������4i��?�}n��@xf��@ ���\��9f�`�����y���G��c��K��k��G�{��9f�`����������8\������������i������G�z���	bbb�u���o��g���K#F���R\\���������e>))������}	/xS���k�.0`y����K�������q�����������������-���L�>{kX�n�X�B��Cn4�T�j'"��p<_^���,����P!??_[U��^TUU��X�f�����C#G���]����h9(����N�����){Z����3gq�
N��z*=��S2���,����{��x�	Y����W_I�j�.3s�L����R��������;�=l���:w�,�c�a����g��E�?��Gf��+^|�E����_�3�8C=7����<��Cm���]���
/8����{���wYtt�\7��������w%�?�/��w#�&��O}f�MMMTYY����a��v\�	@���C�������%�wK�PM������A���%\��&{w��a� `���������C�U����g�,F�'�����������(�e��%K��3�<C���(]y��t��w��_������W%	/&N�H�v���J5��!(~�a:���2o����7o=���T]]mXm��)���OJ��Q=����^n�3�E�5���>[��� �������m|���-��B�{������B��m=84�`Q�����������~;�x�����5l��Mnt�t�I^7�����S��E��E9��S���cmm-��=��~�ioUh��	R ��F)������e,n����1Rp��:�����f�.��.P����{4v�X�<���H|��t�������
����=�{������,�x�����B,�0JG}4���=Z���ECC��1��{XI,�Y�`�ax�NG!��H��7��+	���+��C�wC,(W���rY1)0${7��Bp%��+��C�wC,(4 ��0g��
Z�&���� ���6J���.]��F�<�x�����6m�$����)�P*�������K7�|��x����#X��M����7>ys�������5���>C���-o�������o_m���p���H��V�d���q����X�=�m@+
y��|�	�+I?+m���v�mr���y+c��Z������_9
���O?�u�]gz���%�\�F���������{qa?������`Ux��+����Nn�Z�G����������1����n.-	�!7�����r	7�@
�rS(I�5	���;��w{�m����s����N�4��G��G#�zu����Y������;S�^�r�!�Y�j�!H���q]K�je��������d����&�,"�����O���i����?�8YDP&��K.�����?s�xa�Ug��+�A�����E���$�x��
@ 2��q%9	 �s"B��{d\���@N�����4�~`#}���$]����{�>4�g��"�O[�"��,l��5��;������2�l_�~�m����m�	�	&P�h������G��4����.���di�2�f�j29n��a+$��]� �"��IV�]� �'.��r��5?i0j�(�dF�	`	X�<��]��~��6�*}���/���,����^Ke��e�L�K��4O���`������u��'��F��m�/$���E&�o���FLx��6m��.����`�n���#I~v��E���~���&�s���u���,D`$���,�@�/���o�s�=g�M|*�]2��$�e�d*�k�%��L6���g��$��L�Q�*!�A��^>KDe_$��e�]f������&c�����r#��=����&��s���Z&G�=���YK�X�)�:��"���D�n�"�Z�@�7A�
 Y�����&�M�`D��=����@�	�{$97�_�=���s�+V����EWM�j�O�iBXJ	H������lx��g�d!������kkk
1���L��{��TUU����W^�o�1��\q*���/~�Ct!�JY�����(�`�%�,�.]�X7�����Q��}�G�67�L��w�}�9��2*Z�jen�L�D�"���kg��I������yR���j��]��������&�2�k�,%"�k;��9��.�&�>�L2��{�(��:!���7�z��i��z]�s���mfG��O7���{��;��c����i�&C�u�Vz��7H2�X�L� k�\�R���_L5���|���&���C�Ej#���e�G>���|^��/D�d�:��W_M?���2f��u�u.��_���F�-���7�1Dd�~�l���.����K.�n��~���a�ha�pB�[�����D�c
]2	/�X)�c;�g����@IDATd�0���3��^�+�	@ �p#j��xpE��
�@�	 �C�>� �]�Bc5�{���A���+\Fc/>fv�W"���|���O�-������O~����?��?��S����A�t���R���vy]�x�Q������B������N[�@2H���?Mu)Ydb�\�l�bd�0���d0�v��>^-���\�M�K�)Mb_D"O�['X��RF����O*���-�*Z1w=z��L�N��]�������s������i�����|�I�k�����bE2!�O��O��u�xF�k����h����.B�;�����x/%#n��&��F�6��b����B2�XE7�>y��yDl$�����\'f����^�5'"�L�d��k��%D���d�'��l�|I��2c�����s�5�������9sREH��x^x�#�E� ��5�l�X73��^H���bf�cD�!"�~�����/^�E0@ lp#6��^�N������@���c��@�{g�#A l�a������Ax�13�x�����,k����I������-�V_����!o���Q��|o�OT:^�S�=z��we��	�1c�4�(���D"a���������&�k��d�7� BB�^�:�$�����K�}���6�)ar��W�6IF�z`.v��d	����d�n�j}_l���?Hg��U�R���D�!�0��'?�	�/�Y�\�Y�!�d��Z�LR��"b�]�E8�hB��~O�.�6�u)�!�8��HF����7*O�p�B����qH:�s�d���v���E�5�!0D�#��s@>$�������������Y�	/D<dF��W��+%j��c�Y/�qa��������]xa������Hv]��m����^�2� +�����1��@�����cE�+wc�1'�x�������=V��`cN�������Y�l&U�� ��"OkO�0����55�L��Dk��>Q�Kx���y����!�b-� ")�b.f��}�W)�!
�e��%$O��b�P����}�Y�i�W{�����2+|�S�2�������C�D�2;v4kbW�	��������Nn��6C��������{I���}��c��!)��L|�r�)f���"8�?>I&
9�Z��Y���K/��(���Y�F����N��9$k��(Y!�5����7n�q���IVC\����d��,6�RI�� .��b��Gyyy�C�������(��ds1C.�M:�l�&���%�|2����f�x�6mZj����N"��������K5N�"������+���5%���,3"�x������t�M^�50@ �p#V��npO������@���s��@��g�#@ ��a������Ax��L&��)�l�+��B7�xc�����O"���
���w��j�nE280�+��B���;u�eE&G��S�,�O�:�,��<�o-��������~U��d��H��N;�xk�P�����2(f[�����	���������T3k����9sfj���]_��W���2va��d
�^)�bf�6l���u�_+��)�vN�e����3�,X�q�IC��,'2	n.�	��%��n_�0�\D�c���#���<G��n���D�#�L�-++377y=x��!>1��@bI�	������M�lPU��N��*W�Mxq����[o�em�Nc����������%x���k����w��*�Hw��lS�6A��E��@BM7r�v�W��p�1���=���� ����.4�P@���}0\@���e4����Y����^n@&�eb_�.�,�r�w�M7�d���j�H�%��U�AN"�R������~����u�]G���K��;X�Ix�,�}B=�`A&�G��:�]xa-��$cH�#����\,�����a;��V�&�,d?�YBdB�g?�����O&�Mq�L�K)�"����7�nr�.���Hf�d�m�W�(DJ�X�4��_7l����>��l�G.��������*�ps>��o���!f�o:4�=���������hb�����w#��y�U�$�(I9Y�}�9�^{�5�0k9�`-[��_k�\�i������?�|�a�_��"�.�� a#���y���w�w��p$���=l�� ����;;	a#�x��`/x'�xw���f��h6�R6BD�bN"��=��I~s���0��_%��Lh�b����{�����G���8��>�l
@��4�>���B9�>����}�C�>�M����I�L}����.��M���;�6����q�-�P$S_"�����h��e�&������+�>��������v�=���>�9�����C�|��N���v�}��J���_�K������^X�Kg�y&=����i��N�2%U�F��H�YD`ef�q�A#���/D($em��m����m��"p.�A a'���{���s�w����N�v�~pN���Z�@�	 ���A��	 ���2[Bx�@�/�]p�&���2)y��W�����?����d��I��(���g��\�'O�[�\H�<�M�6����n���:R'w�2~�x�'�e�{B}���d�e��(O>��C�7sk��M����z+}���n<(��db_|n.�<�M�4�|�������_�:���w��V�Ze��0Z����&�1������n""s1E'�^X3^�5�^~�e��Y_�qg��q��77���i�&W�S�'�/$��O<ad~y���SMs��I5�
�q����E��	�"�x�E�A :���%F� �s�~��{t|���@.��\��������)�hJ��-�=�\�L�l5�����Q��}S
���
����S������^�{�������S&3o������_=U��:1k-)�j�r��	u)�!�1d�>y���5k��<���KJ$FS�v�+�����3�8�8�)1m���}���������e��2��"b�p��7Z�J�.%N~��_��=���t������Z�����������}���.0���~D_�������#�����W��]�H�VUU��5�"b))�c.>����DDW���O��1��_E!�[y��Z������,��J�*��/��~�a���������>c]����k�����V$������{����E�T��Bb��W_5��l���D�e]����K��E)��� �$��H�����i�`#D��=�n��@ -�{Z,��$�x��[1(HK��K��^4����H?��������;�O�S��[o�EC�5�[��H��������Sm�+/��b�����YC�!��N����-�d����M��u�]G���eR�e�����VdbTbJ&R�GeeeFS�'�%��dh0�����}�*��������*������<��Z��-��(7n�f��Y�H����$�3�u��e����W�����\�T����"�F��_o"���f�J�Z2�#��{��'��Z���?�*��r���\��Z�n�s�{<��1d��tMm�&���F=�P��y��5����aY�R4"3�g�SO=E���w�]Fl���bed-wb^X�K�"������:�|v���]�v�mA]��"���] �%�������k�w��p���=���� ����52�%�x��`8�&�xw�� ��������c��o�����/UfC6��2���?42`���u�]�����U2H&s�[��^�a��e��ysi�d������S&0�,Y�jg����oo��#�����O�f���������9��c��{B]������E�����������o�v�O����O��U��N(c������������%��� �"B��6�j8�z`�O�[�T��w�����7K�73~���K�.����m��#��������Gy$5�?���t������W������X�>���	/��k���Q<����R�c����]�kL��U�\���X��>��~��)AE6�E2�4�"2'����|�����qn�H��\$��A�@Z���X�"I�I�bP ���=-l�H@�G���%�xO�%���6�G[>�����;���C#z�+����rB)� e�-�T�LL�����-������M20�D�dp5jT�������?�y���r���c���u�4�$���O?����_��>�����KY�)S������3h�����o^z�%��������[7�'����>q+��O�l�)� ��;v�v�<�~����g�ZR
m+~
/���/�o�a�AJ~�p����g?������&a{�wXw7Z�f���_2�TUU5j'o��7�pIis�:ym�� #b��@ %3����Q��@�\��#��{<d�� 1.�?r]�&�l����Y�vX0���J#�����^{-U��n��"c��+��a."������j���������k��&��c�}6YE �&��A�
l5����}0\@����� j��P����+�wW��BM�j��xpE��
W��'�M2Y����$�d�L�K�kUH)�(@J�H��"����:��@!�3x��FO��m�/������+++�C>l�.�%&
Do��fJ$a�C������|k���,��2���s�5*3 � E�)�b��kb�����~�+�����@������y�f���[1����ID
����O�����S�2�>b��l���a W&�����e�]fd91;��l���sm�����53�\����S�N�vnV����5��!~�c��MuSSSc��������}r��?�\'�N���G}�(���<J�.E�p�E5�R#�nD�d-"�g��|>���4$�D��>f�L���r�^n���F�KL�u�(��]2L����_*^�����w
����*ef����&����y!�?RfF>��E�O)kd��r	/��������}d��mJ�
�E�=���D�n�"�R2@�gD� 9��������`D��=r.��@ #�{F4�a#`���6�6H&k*~�M�22}��7�=�<6��L���������F�m�m�*���D�����d��O>i�o�!�"�<�L��)�E&9�\-Z���6�$!�������gj��Y�0;??�G��	&4�O&r�N�w�n4�-�6�d����vk�_�@�O��]6lhTF��^�z�.cy��wH2��M�6��Y���G��,R��HI��S��7;~/�DN?��&�E�!\d��J���|�;��s���
/dP+V�0�@4 ��,�VI9 �""�� q���Kx!���/�8�
r���j��)q�i����O�'�6�U2������[�U>/Dt"����~}�3�8^�8q��X3lH�����7���7^��@ p#,7��V�}MLx��2X#�5A"�x�7`����|�;��=H��- PX����E� $�� y#���'�e2�.HH7�L��m]]�y��������W9�d.���"Y,���o�o�.�����M��{oj��W�f�6��s�N#c�Y#]?�m'N$��7�
�>;??���d��{k���W)�!"�>}��v���/��d��l$����=�����a$s�gr-�u@��8�6��R�f��i����_�N�5'�N������lfV0�q�� /dL�����M��x��"��E�~���=��^H����F��'�d�����<V�C�)^�ZDd"u�D�uq"����-�K.��z(=��C$�q��"�^�M �&��`�o����M������*=���QO��_��a)�3�{���A���;^h
a&�x��`;�#�xw��A ��a�^qmO7!<~�x�����'���\q�F*~kY{�{|�����Yv@�I����"]��	z�)bb��{���I�h��%���}�2R��K�.�]i�?���t�}�5*�`m(�$����^H��Zw�2�+Y(���?�!}��_6�6y�l ����q�t�M7�o�Jv�����FY���n��~`$K�uqkWmm-
0 �������f����HYY$���o��1n��fc��Y���E�9���eb����C�LTUU�wy~/
d���l���T&�%+��Z0���[��N��q��j��FYA�T�S���C������VA��w^��@i��(�f<H��_���{�RCw�uW��
9��s�5>o�"�L���\��>{���}�s��E���t!�I��P9���>�����^I�D"�H�dS�W/JE��,�����"�x.�{�r�>�!��It]�����*�~l7�nh�-���=���� ����
-��p@�����@�����va�5c�L�J)��{�%H���������2f���?����"��K�,1�b��A��/++srh�6"<�lf���={��t������\�
2V)��q�F�IX� e���P&Kf��>���^&��"�(���5r=����"�T$S�d���%�'�}�=
>1-��F���d6���;I	���[�Fd��0e��-�]�v�.F�Am��
���-~�1�^k�r
HL���{�.��@xj��x� ��\i��I[K�p�������TF��O�%e��l� ���=��h@�G��
d#�x�F�@ Z���'F� ����>+�l�k;����@2[�����C�����z�d/�������;�7�|�W���"���i �$����m����N��v��]��\iC�I�F��Q���  ��@ >���5F
�w\ ����#�;���^H�����;u�'�|�&O��zo]��g�}�u���^6�Q�/�
 ��+�'Ep�,�������]�����������X����H@�G��4"�xo�o@ ���v/� ����4�{������^�������>e���#��'�hR�d��}t�
7�|�j{��������{��������!���i�����b��P���)��h�������K���8C����@ >���5F
�w\ ����:���-������S���;�v�WP�>}(�L�������g�����oS�=m�����"���e !%���8n������m���'{-�r����&'>Q����h@�G��8!�xwB	m@ ���#FN ��PB��{4�X�Q�-��W�\I��w�c�Et�����g���4(=/J�X 1���{/�6��^�cTC-��ZRk�P�P+jC���T��Q�R���t
=]\<S��E_�x,*%�T����/����q�2m=��%��5��i���K�F}�A���Q<	2��I���@��7��&�x��(���@��7��&�x��ht�+��Bhm���(��#�d�w��W����N]�����Y��  A^D���@i	�}#�8�>��^��,<������"e,EhN��r���*
�F+��,�hMmD'�m�v�^���\~�[�AO������q�
�r�z.]�+Z)i�{��i��=II�K�����r]W�m�����A���w .�{p}�@�o�w���?.�{p}�@�o�w��F����7��i� ;u�D����e����j�*��u+m���TU���;B�	&Pee�_�B?  E&�E���t �'����j�#��|����Yjq�d�D���3g��n�Y�M����K�O����i���\l�8>�HK������/s��9�;����C��Y9�J��1I��.+��Q{4�?�=>�0R7�{���A�
��Zh�&�x��`=�!�xwCmA@@����5 Yx����m����*m.�b8����U��NZqf����K���J?e�joO�����?��8]Dp1D9��,��(���8��Vm=����7������� W$�I���������!���@t ���K�r@�g&�Y[O;���S�B{����v�a�G��C��3�]��6��;#s�#�x�C`����p�5����A�\  �377r{��4=�Z���Z��gKJ���3�T:�(�uU�ROe��o�/�����b��>����"��A�D���+T���|��9�\�>�����@�\���E����q|�	������@�	 �c	@��9����v�AX����~~_C{���$f����1
�5���a ����.4�@��p�d#��F�F?H�&_�E�[t��qZD0Q��@ZS'����v���I�
.
�S��k����)|G�����{�������,#�����r��N��M	���C��@����x	D9���h;g��������m;��,�8�"�Z_�=B=��]��Z��/:?	D9�����@ 
�Q�"�  �&�E���@BH ���1�(�H�B�o�A�g>�d�����f�������t��E��D���LI�^K��D���Ge���NW��"]�?�X�t~��^��/p�m�������������Q����h��0	 �Mx���J��`����\��������Y+����V?M���.�yq2pJ *��t�hq&�x���1v(/��g�H8��f��D�1�O���'_�����=���@^O�,@����z�R������G�?&��� V'�$�B��	-3��������
���u��!�����`eMM|�z���5��M�R���I��C�#���w���}w�xml��1��q��/�e3
@W��L�.��d�Fm
=���qV)�rm�6�-�=�4���>v��`	�@|!�x�#:�P�B�����I��wZ�2��1��<�5���a��B�
���+Q�wWFc�1�{�������@�@xQ$�8
����u?������D$�0!���|!�f����2�&&.����B����_� �n;��T�$%��S3�l1HGg&�� u��v���g�����T�9�������,��.�p{*�pj��S�{.S�F�Uz5��!*��,�KI��J	R��_FU��F�g��d�T�X��j�	��T�;������C�85��U��������]iR�s��:��*=
m
�(����qJ(���������?JD/�i�*C���[�.��n���@��=����A�-��[bh   ���n��=���=u���
�J6r)��GM������������G8c�|m���VZa���s���Zpf��%[8��*�������Dt�(�&oQF/�T��3\tSz95�(���-�^�+s���V(�i�r��"<=�?]V����..���5���Q�s����fZ*U����u��z+��/2�vM;��4�jq%�@|�9���������,)Rn����:)=Y$����D���d�����P�����|��q�����A �0�{�aa�@��4P�	@@@�W^����@4	���6�x�"��'�{(#�taLLL-�MR�c�6�Ah��E9�mCX�N*b�M\Ze���v�d���EMv�q��-������P���S��^}=R����E?w�Jl��#�	,R�BU��Kc��5,�8�RX��W��D�Q��6�����*�}�;Z�@�	����1F&�0�������[�����0<���I+���Lk"�����{��9K�5���9������"�8W��.,�wG��
A ��^��@�/c�   PZ^��?�� ����������U&1�������R�R9�'�{���Bm.��>�'�V�"��91�T0�&%.�!�)~���D��A�����L��+_�^j���m7l��!���g8���
�{���_9�����#\�z����K���|�cvy�X����/O}�s��*��}9C�`d��j_�]�=�@	�����A `��i����!����=���dO�@=
q�+�����������P:�����}�?�Mq�-��Cg�h@�G������A�l���S��i�>/��5�%<l�(�L��R%ObzY��h���I��
:AG�t���2[b����i4X��
6�����O�,�i��Qh�%FG�?�T&�x)�S:�^/�I6�w�/�B�M:����E�����T��K��������,
��R*�������I���v� PX�Cma��w�0��+�O���#Y�����+�g�����.J������d�X��
���u)��-�����Q{4?�)��/��8@����;���������@�	<\w��g4�d��?��OBiN��V~����9�����w�ke��3U�����������]����b}:��7���]�+O2O��S{~�*��_�K��3i
g�����Uh!�,c��Ff��������8����Q5�v��
����?'����>�[D�!���4J�H��#t��u~��FA�+��1<�?�F'���~��8��y��e�P���G��s�?o�)���|��aQ��<���[�PC�m����g�l�3K�2�j3��v������������gu����\���e�a�c�������v�;��T�`|���W((���{A!�s�	�{L�a���@		@xQB�85�������"�huR8!��Z����k�H�����>�����I�9�D3��,���Jm>���~f�HZ���U���5��S#�Im�
8!pD?�R
��:��_���U���������\7{�����?nwP������)��aG������t���L�8��>A�����!-w;�.t���6�s����4�G�N�v��S��]Y�hN���4��K�p�
j�X;6d�����J�����@���A����z����o�o��;a{���,�(���S/�����\��if2�_�������)�<z�{HK��6����H�a�+�	H6�9���6�������h�@we(
S��i����C���Z�
�E@��sh	����K}���������e$�S�P[�l��D��Y���.12��&)	��(���)��3
���E7�W���p�Q[C����d�jxm�}2����+b�K5�8�F��Q���d��Fk�i�X���s����/��p�H�:�(1� ��m9=\�?�G�xVJ���������M)vN����L���?����J'�l�V�s��@�-� �����=�@v���|�@@@ ^��=���<K>/�6���,����!�B���8Ch!���n��4�^;�m�ig���ob�R���&8�C���z(���2�F��
|;���
�jz;���1���-��]���+����8������7uU{y���&�e<��u,�X��a8��N_E3i��
b���\iI����pu<����b�6�f�@nn�=woh dA����/���?e��%���'����2bz��w�X{=�X�����B���(��u3�A oA����@�@�7A�
   >���g��@�xf'�d�[�]_��D�}���2�'
2Z��(���� ���R.��P�I���t�����x�5�$��b�~C�S93D7_N#"����r@���!6�UNcQE_T��B�I�����h���x_��2�Y��S��2�#�h���>t
�T'����V�X���#�7( ��@����{h�>#���F)�v3����37�u/g{���C_��N��Q����nv��@�	� ����@�=��{f8@@@�/��Bk����|�>`�V.��������oZ4d��PZ�5n�\�B�8�f��LZ����X��QW�3�\z����3ca��0c�b������!��/�}:���^�c|O.�2�� z�,���:���.��7s������~��R�!F9A��N�5|�q.�(-mX�3�3��l�puL����D�@!�=x0�� ����W��fe��E��*�����d��H;Wh�����X0���@)
7-q#MN|�H�4Q&�x�2g�
�@�/��6/��_�bI`~r�!���/bF�I�rNu��F�$�8�O]W(�yq��\^�pp�	Hv��,Z���.v8N���,���3u�A�W���Pw�>!�1�(�H�B������^�O�I@��O�9�i�m�Z	B���L
�LY�Q�����S5s>LG��eMN���S�������A^DH����!�d:����l.l�� �{0c� A����F�C��9K��P���s��/op����G��r������j�����@P���pj�
�{l\�����@�@xQ2�81�@1,J��y��Q_��^K��zsj�a������R��)���':+0���i16��y:�P��F<��0~�y
!�E�)����y����#���_����'�X��
n����c��8K8D�!�Rt��TK��s��4��g$��v��^*W���a���:��s�������dE�xi�?"���8���L�i	��9]*��s,<i��rz��@�@�=eV@
J�^P��@@@�	@x��@ 6VkQo�?'�mY�1�F��x�y	������h���v����7��=~�����T�����������=��x���f��~�� �3��9��!mHv�Z���a�F����g��lA�\Zf�P��X�����l���q�w?��#�R��������^����Z��e?��������sgD{����K_�hR��,�j���3����J��x(<�{��   w^��
��A|'�9������m���G�c�I1F1�H����:7�o\�dP	I�?5�==�V)+s��rm���Hc��!m�%\����Y�����2�F)itbB��E��M�:���F{���>�W�wq>����,S��8U{�(��1!�}C��@ �J��Y�x���������������J.��e�6��I��j�������^��Of�q�m@�$��6�E�+���}��(mA@ �J��Q����@^���M  ����C�����_sR���c��%(�Io�@��^�������=G���@�M�8��V�������lGJ��*��2������E����{���������W�I�����0�j:��5eb�9��u��B��J��A�sD��<�p�R��dx�]�-F��l��+S���3[�H�{��zG{����d����t}���^���9����a���|��z���Z��B
�����_�^j�R��A �J��m�������v"x y��\�qx(	Hf�U�b��%}v�:�L���2Q�I@Ylqf���0@����=,x?�.����'}�;�XqbA����pe��8�:*���6��D2U��b��cVi7�v��ObI�	�m-����+�9��e�����B��&��c���x� �b�/J�GO&��*��	�i��iJ��w6$���h��,�����r�:�>]v���h�����%���:�vJ/�P���&&em�� �!P�������   ~���/��@N��.h �E��_f�)��ch�����g(���i�Ri�h_� ����,�Y���R7�D�����v��TA=�at�:��rF��\{����Q[M����.�r�������~�����r{�0�I\k�����c@ �����?L�i�gUF-����"�SV'wn�����?��v9i���r�4�U�����=E��rm���'m���JF���������#��(��{��b�   '	@x�K@|&�9����H�?����5����%�V���!������i�6��K��~��W�u�����R��Q�q�������V���6��i����y��8J�4p�*���	�,#FG�K��+�A��B�E�Q pT?B3���a.q�����%��+��B�������}��m-���
�~����Z���.�;g$_�W��H����K��%n��j_G�������-N������n-����}��2����cUze/�~���H�������N��v�z}2q-Urf0, �#P�������   ~���/��@N��.��{i|-5�?�f���<���0�B�e��%o��5+gpz�3��:�s�2	��3wl�W��b=�@GYt����QX*��4�3a���<�"*'�@�;��6q# ���&_����t�Ee����Z��Ow���Y�A�X�!��VJE��J�����'�WkK�����_�Lu��(�2X�D76��\�b�����h����Q���t]����*J~���kk!m���YM��$[*��I��^�@����N��.
�q��S�"��_ca���I���QN��_dO������@!��c)z+/��9�
 X���k`�N��;RO�����wi��OfmbYC�S?�R������6&�����]�-�����E[�O�����n��H�e�����g9?1]I���OU)����,
Y��U�1k�t��!�r9�K��'t�� ���U����:4�3
,������^�ht�!�`�E��������s�O
�2��(�o��d���,����.}-K,�e5�'7���'����v���H�=��y;Y��}��Y���*'��f���isi��!�`a�q�1��"�\+.-��
2Su��������09�fh/��4��*p�����:��X�1� ����=����@�	@xuc| E'���#�	A�d�%C���2�����\���C,,�si�S��������t@��2!2a��Z�&U��"<yI2y����2��}�dnr:���~R��_FI�?F9�EG*7���HB_a#pP�gd�X��-q��b.�0��?��Q�0��2��&&�7��^[����qv�,�[m���y���"�A�X��4X���X� 9��O����D+^��O��
$�M�:.�1��YB;Y�S� S����/���FC��~��A
Q������Vm��|�V�sX>�M�*���{���I�:���
������mv����$�1��y�(7����g�/��Q�@��p#Wr�(�{�P{>���^��0K��������:�|b�����J����Y�����wQz�������eN�-C��C_�z��nC�8F�j�0*��0/��0{�{!�G�I3���2}&�������p�'P��rj����<	ZAm�5O�W�P����T��q���(���K%e[2��N�����Z��F�8����?'�vH��o���6��n����?��e�t���2����'g\���l��V[�����u�b��Y��\�&���\�������)$�sIp4V�X����+y����������K���{���2�&��Y���R*����,�}�u�2�}m�z]���W
��=���@0{��T�   R^��q0@ �p#\��2����o����?���6���}=O����.� �@�q���<!�O��}JZ?|v�MzO{�H����O��e"�
g��5�OS���P��P�#�C�&�'�d��r}6Oj����`.R
�.�\ie�5Z��d3����5���U}k���\��Z�Q�����8����
-d�������������"&�^BW�������k���9��.��g�4?���a+�%����������+8_W%�dG+L"S�E��5�c���%�4��4������M�+sf�K���T7����b���#�M�+2�>��T�
F�$��	�@d��"���/b�d@��p#W\�8�������9�m9?�8���R
O�����ERDJrtSP_e(�q~����������kF��|Db�L����#��t�:��H��L@IDAT����w���,t�����+XlqL?���R�A&XO�S�ut�h��y^��X�Q�t���4�����������{���	�c�K�Ld8JAiz�3��6����}��@�%E�
���kj���8���mcCY�9U�TF!��������5�1��A��Q�O�P��Q�qaB[A ���{$�A�����EC����n���i��Ijb0	?������9���DEu����[sJ����z*��BBC�S�����L�F���X����t����	���
c�0NQ���_!:��{!���R��m�w�i������h�e�F)�e��e���i�;vh[hO7���5��E��s�x��Ke<��N�A�Xl7��g��Q��`�R��J��|�?Q��%���:p����a�Tu|��R�,�������Z��o�����]t�������S�M�VF���%4:1>���|����$���m�������K�LV����i����x/��@@@ � ����1>����\���� P2����/�������lZ�����Y'����8�ug���A�s�!4P�L������y�#1����4B�H�S�����U�W�{I���>�I��K�F{����-�+�i�2�&'.���
��D��2�u/3������'�����o)lYtg��0���O��j�N(�M8w�c�Qz��~Z�^��H�.���B�S�q��E��,[�
�I_K�8��Ne��0J�<aZD6^���K\��l/��G�C�r�IZ���:�H.�2����CJ�`(/�^<�p&�(��"
^�@E7r�r���@�o�:����?��������r,p���<�1�:)]go)z'�2g�x�k��s�$h&{�|o����0�%�������G����y;�����|�l���~4�3[�]6�?[���]n��3v�[��e+O
���t�K��	�:�^P��a��jkd�`�]JdQ�t �([�M���O� }���5��K�
�,�r��,z*��_�K�$K�2v��X�����z�4	�"Y$F�g���+8;x2+���7��Y���K5�gje$]��,����v ��@����lh
   G^���3�@A	�F��x�9��=P��1#�v�%�""����0d��5�\)c�4b��"�Z��"���K`/����'}��t=h?�d������Sib�<j������A}U�����5�z�����,���"�x��hJ���D�L�����{�,2������#�,�f�_O>�5�U��HF�n�9k�:�3#L�k����Pv�E��d�&}
26�����L:GX
u�j�^?a�$k����\$����lq�p�w�~}�/N�O�i�r9�
�m��k���eW�>�8'�W�;?#Z������q�8� Pp��+8b�C�W���X�����L��/�	���Y+u�;+yR�\:]=�*���B-��B�E�~�a���<��H������Al1�S���L��W_A>X*E��`i�>C�q�E�����������������r!C�S���*�C�myx��7�T{�w���$kC7L��l�u"�Q�:9,TmDu��s�:�>�z���X�q�Eb�Y�q��,���:��N?�����6����d�r.C6������.���Q�S����5��tI��,����8������    `'������@�p#�'@!"�x��`j`��p&�Y�D�M������~�R��<o���?�_�O
���\C������wU<����Jmy��qj�B�����)�Z�d��	&Y?���@��QHI
VBM@��Y��h����5��n�0��b�'5�2�D"�K4�����z-�4O�k.���T28Ii�Q�x��Bio�9�P�~��&/%�`��k���������9��mh��C�@ �B�{��a3���@	@xC�c� �%����E� $�� y����Vm����U�����Z �������LiA�Y�!i�E����hC����Z9�P�S���8$��P������:�*?��N~�i��^��xu�S�2>���ZZ�(���S���Q�	lS0K<���O���+4O{�S:{�5�duw[LR/��gYw�~���� F��o%_��������k�e,#����Wq��*�����	#�?>�@@@�H��8zc((��/:�@@��0&"�F�"}6m��,I���V:S?e4�V����ia�wI`^����D;��y��D`�[��-.�1��.��Os|����)3�Wk������M���gywe80�����p����w�����"N�@�E7r����B@��.��#\�}�6���,KR��$�'�W����)cY�1��C�%�&��l�e��/u�%%��"�u��OBl�	�m;��m@�"L��.����|�K���y�����RiK������\�@ �J�q������@	@xG�c� %����E� (��@�����&m-�fqY���������Q�$%#:*�h�2��&&S'�k��1-������A_�i�<�Y�9]��t�-�%���O\��{\=�q��@��]DvojO�}�k�"����K��e�]o�����R�{�xc�   G^���3�@A	�F��x�9��=P��11$�(9��sh��������������}i����+�h�:��ri����[�A��tX�f��e�<Z���Wo�gcM��8.#rV����@"|��*��J������'i��6��������O������<�\J��4�A@@BD��9����n���'X	~@��A}�������v5��j�����5t���5t�_k���t�N��8���5�����6��F�Hb�IL�,����(�q��>�����a� _a�|����v���Z#���W��Kge ��^@S��ul���{l]����@�}N�-��=O����=���4��)�R�����\��@ ���Qe�q���@\	@xW�c� #����E� 8������g�	�}�P���
�<y��Gx}O�v��$�Z���@�U�9K���R��*���xo��z��?���.!������T�K��EtH��$/�K���NW>�Y1�PO�?�)��_�E�i����.���KiO~c��v;�K*��'�G+����K����bv|����n�	9�w������9#���2z����hG��YO����\����7�����G ��?o`�   M^D���@		�F���qj(2�{���t PB��w�����Pl���}���F|����P?�����Ci�:���x�p���6��h���v�X���X�����F�����'��R��u�����'Mi�7�����X��W�5�V\��#u����E}=X��[���.����@��=^�
   m^D���@	�F��qJ(�{���� PA����saqr���6�:�9
�4�,UJ7��1�z������tl�B�� �h��5g#����eT�%c��@P��8��Y@ �������r�1$.�|X���2��T��UIm�3g��M�H�d��~�j��2��BE l�*�0@@@� �.��n�|��@ ��vL�	5���Gh��}�B�-��j��G��;��i����dl7��!������7��NJ�l��,vp)���U����*S8�����3�`)>���{�I�� }a�wb�Y����������@�2����d��Y��q!6�i(�&���Ss���Q�M�7�n����Z���z.���$�x���(,/
�����n�b�t9���u=Ca��Cz5-���rbl���	:Zo%x:E�3t��\7~�Q���6�kc_"�����U3c�������D�mx�'M�2"�#��K����� �x_�-�7�O�v����_�����)�Y�YAm�����aQb{��l��8:pI�Bf��K��BSZ�//��;X PQ��M@��,�{�\�@�`���},��M+X��]_E���,���D&������z��������T�Q��/�D<Y���.Jw�N��
F ��^0 �"L J�~D?d�/7��i����N#F!K���h�6.g�F%������mO�q�4:����v�a%�#J�^"�8-���@^���  ��n��C{/�{x}�A�-����}'g�XH����Zk��Hr��0.2�R��a�Cs#���!D���[��]�M4�K�Z��J��G����������l�XR�"
~���R���yZ������q`sT���P�bO ��W�E[��F�],��M��������c���OH�h�4���SW�MH��%�z��G��x��O1^/��� z���1pL���@�	D9��	���Z���� k�m�c\�$(�(Zr��v��'E�Qe0�2�%=�b"���(�{�\���@������M�h���o��u2KF�J�8�PZp��>��4V�Bc��6!#�x��`.������t�2���;�
�%�x��'z� �c���V�:m?!���a6pv�=�����Z$��,:POX��^�@���NJ�B���@Zq��� �b@��������Y[G[�u����Y�y��d$�D�"�U~'��b�S��8�T.�.b#��p���;F
  �$�E1i�\ � ��X������������Ze���o�)�#�.��E���~�Wbd�������@ �����!�xw��8����z
��be'��~�X��u�V�[��N�5�KI3i'��]^E����$M�����E7^u���e�m�����qt�:��#{2�^0����E�   '	@x�K@|&�9���;0�{���@�g���@Wk�x"f9g�X���7�S����*��,��E�9�Eo�`1@��F����@��	0�D�^$�N#"�=�N����}�����uP���P��Q.�V����Y���`��K��Qe8�V������Z���c7g#YK[8�N}��B���.�tP����d��8��p1,�	 ���;�	@x�?S� s���������=V��`cN�����{�������=�6m3v�>%��wQ�����04��@���D���������)hR�B����
��|����m���i'�Mjg�P:p���4^�J��!�����a�l�p��"~�� !"��9��@��y�� "��9��@��y�� "��9�Sw�[���X�q�EY���������	�S�QF�i�9461)g����������E2y���Q�<v�a���9~v����r��P��"�n�� A&�� {�������Do d�� {�������Do d�� {�x���in�-Z���=�aB���.
%�����a���$���K�l�� �����b�Q*E/r��B���$gqI��cU���U��A@@r��"!��p#���@�	 �C�<�.	 �]Cs1�{���A�%��K`1i�ar6����M�b���H�����K���%I����H��i�bp   ^�
0@ Jp#%ob, ���=;��(@�G��d'�x��{A J�Q�fa��A[M����Z��{
s���*%Iz*#h�z.�OL	�U���x��%zHO���\�@<���gt8BG�:��`�L����@���e0<@�{F��54'�&-�g�V��-H)�BiMm�+�2�E���TIUF7���R���n�m�^��N�I#�I49q�U:4i�
���y����@�@x>��b����\��@�G�wa�+8�{��@�G�wa�+8�{�p��$��]��%I�����J�	)���PgX�RPou�-��<�1�(���Rk3h���4J�<&W��J[jO=������9��Q��O53��������&�����v������#��x+r���~�{^�p0����^8��&  ��n���B[7�{���A�
��Zh�&�x��`=�!�xwCm���m����F�	�%I��+:+�����XT�e;��}K����t��/�>D\����b��\i��
*����*�6F��J������*jc���)�@�;��&   y��"/|8@���\S&�Q%�x��g1.hJ���	��@T	 ���Y��@�7e�-���$�8��B��$�d���R�1�������^j?�d�-����A"s��i�$��w�<:��E�!Y7D��94X�Qi6Zqy��[Qy��*���g�})����   �#�E�\�A�N�	��`�G��K�A'�x��`�G��K�A'�x��`_!	��\�-Z����$�I��$�X�
����X�(./��g���&N�A�$�;.��{||��������=>��HsX��C����I_LuT�������"����   x^�E0@ l����y���w�w��p$���=l�� ����;;	a#�x��`o�l��r6�7�$�<:��-�i�s�:����gq����������r7 P��M1(� ��`�V�@1 ��A��`@����A�^�8G�	��if�5��o�$�sA�z~����{�����WYOr�y�H�O������,m"�:#2_�@������"���/��q�@������#�	@ 0��q��@�1N�!�x�+`�����qpM�Z?@"�8DS���j:B5�}����k-��V�c��	�r�;>�z����)���@@@����))�������"@�'b ����!(4�@�G��8$�xw
�@ ��G��N�6X�!��C,�8�[���m{6R]Y-�>��n�uOFA@@�F���y����px�@����7��O�x�@����7��O�x�@����7��@@@ /2��f�J7r^��8�{�|�A�+��Wr8�G�>��b�J������@���g�@@�F���y���n��"�@����@�	 ��"�@����@�	 ��"�@������d �E0� ^	�F�+9�#�x��`1x%�x�J��@� ���3X^	 ����q >�������@�@x6��^����\�]A�7�w�P�#<�{�]A�7�w�P�#<�{�]A�7�w�P�#� ���A@�+��y%��@ |���,��^��8�{�|�A�+��Wr8�G�>��b/��1� x����` �F��Jt�'�x��` �F��Jt�'�x��` �F��Jt   ����`3�x%�9��p���=|>�� ����+9�#�x��`1x%�x�J��@� ���3X  a#�E�<{AO7r�w� �}C��@ ���w� �}C��@ ���w� �}C��@@@2��"l�p#�����@���g��@�{%��@ |���,��^��8�{�|�A@@ l ���`/�@�	�F.�.�� ���o(���=�.�� ���o(���=�.�� ���o(����@^d��  ��n����q >������W�w��p���=|>�� ����+9�#�x��`1�����a��<���E0|#�x�
%:��@��E0|#�x�
%:��@��E0|#�x�
%:�@��`�@����Wr8�G�>��b�J������@���g��@�{%��@ |���,����"l�� �'������o���DG x������o���DG x������o���DG   @x�6���W���J��@� ���3X^	 ����q >������W�w��p���=|>��   6^��c�@ �p#x�@����7��O�x�@����7��O�x�@����7��@@@ /2��f�J7r^��8�{�|�A�+��Wr8�G�>��b�J������@���g�@@�F���y���n��"�@����@�	 ��"�@����@�	 ��"�@������d �E0� ^	�F�+9�#�x��`1x%�x�J��@� ���3X^	 ����q >�������@�@x6��^����\�]A�7�w�P�#<�{�]A�7�w�P�#<�{�]A�7�w�P�#� ���A@�+��y%��@ |���,��^��8�{�|�A�+��Wr8�G�>��b/��1� x����` �F��Jt�'�x��` �F��Jt�'�x��` �F��Jt   ����`3�x%�9��p���=|>�� ����+9�#�x��`1x%�x�J��@� ���3X  a#�E�<{AO7r�w� �}C��@ ���w� �}C��@ ���w� �}C��@@@2��"l�p#�����@���g��@�{%��@ |���,��^��8�{�|�A@@ l ���`/�@�	�F.�.�� ���o(���=�.�� ���o(������w&@RU��zfz��m��M	���Q��E�4�>Mi"&�F��L�gbi���1O_�,Q�(>�sG�%����"�0�C���;�N��3���}������U�=����}�������!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E!��A��!�A�F�|�
%� �x���C�����nJA���w��!`��6�� @ �a��@�*���c�G�|w_��V	��V�1�#@��/fx��w���� ��3<� ����E�[���w����V1b��;6fO�~������={$%%E,��
�����m&�����]����Q���e����������l�b���� &A !��	F����Qab���ad���&A !��	F@p4���s�{������.3���.��/������< K�,�1���H.\(�������������"+V��{��G���zY�`�,^�XJJJz��jH6{��f/�������6��g>��L��E2zp�Q��&s!L�|�A�M�|O���: ��iP�@b �;�����`�!@�/��j����{�L�4I|>���X�6l���g�s��������g�����pC�v-��1c����#����G��o�)�F��8.��E�A�mx��
�eC���[��d���=l�K������dHQAZ�14@ Z�{��� ��CV�h	����b�O�|wY�%@�GK�q� X%���*�$���~�6m�|������^l��M�����]:T���z��s�9����KAA��]����z9��s��>n���<�x���_��4�y��0aB���J���;���G�Kq��>���\���h|��fy�S��U�D����1E�� c����n��H�|���N$�=���b ���H(�{B���@ "�=":!@��� &�	�c������.�Z�^h�E�Hb��y����Jii������M���K/�r\���k����B"���;�#K�zW���W����������;��o��k�����S��1�
�f/h�IU�B��C[���K�]�M�}2{����~�gx��3�a
�����Y�<�vL,Z�1JK2�H��3$���e:c����D�f�IO�|O������D�f�IO�|O������D�f�� �o���o	������Vn��6Y�bEH7�^���[r�y�����b��U��z�6]��o���9S����v�{Eee���E����0`���E�������m����$W\q����Kf��~(S�L1���l��,>�+Zh���K%��*{��*�E}�_��[e���B�����\������F��E��k�~���������h!FaN�+LID�{"F�5A 4�=4Z!����D�*k�@h�{h.�B 	���U�@p��������/�(,��Ew��^\t�E��+��S��b��Qf=��f��;w�����O��W_m�u���E��m��_����2��}�Hqq������T{�1���f����Rqd���B��Eh�E�e{S�r��Hi������� 7�^
l�� ��.j��{�
rR��0F��1��D	3������qg��I�|O�����$@�'g�Yur ��3��:9	���wV
@�&	 ��&i;���{�=�1cF//^,���o�v}���e��z��>F$xg�/�P^{��������7v���	}�q��q�F�_�0C4���"###P�q���k������w�����YO6{���(��l����d��a%������/��C�Z-���/���Or2�-�5��PT�okQ�Zl�Z/�>�I}�?j�Z$1iT���jQ���sI�/�H��cI�2~X�L�����z �8�,
�����P�@ �8�,
�����P�@ �8�,
� �/'����o��Y�LW���d����������	/�l�"�'O6���%~��_��P�������+�������6�RXX(>�����7O^~�esl����m��k��G�$���x�m"��*��6����9gb�dg|3-��U�E[
�EcKC<K�1w���r����h����x������!�����[�XK���Ai2��\�2������=J���B}��hoe�4�Fo3`#�}`~�\rf��+
/�4�>w ��/��@<��x�1�"@��+^x�x����c.�E�|wW��� �F/��>�9 ��������[���z�e}�"�x���E���E�����zHn��V���O>�I�&���������>����#���C���N3�,]�T.\h����	!��G;��uGL��T�ir����`��#�m�]_�����p/���M��g�g/����A.zV�F����?�q"��"m1�(R\�&�M��S�.�\kZ�o�S��G�1|��������2oj��K��&�J�|wjd�� ��g�E8�������'@����p*�����/@�@�H:�E]]�|���R\\,#G���4��� PVV&�����SDNNN*�/~����]w�e���c��7���*<��sr�e��]����������r��g�}Z�����T���������[n��~��'�=B��^��������O���+FV��]Qz�P�pH�4T�e���
�Es[S����S=����_)�*��5�R9o���`��Qt� �Cj|���g>��=�cd�
�����d�:�#����6c'�}�ZdWy�T�z<��s��@t�p%�=�b�� ����H<�{���A �=�!�x����)+� 8�@B	/�=*������O�������/��U����}�����+,����9��I �����.K�,1���v�0�6l� g�u����O���^k���"_|���f��={�YU������[������d��O�m�_9${�Z�N��z���r�._M�
RUwP����\�}�S.5�Jimo3�F����B��-��rT}�?�0�I{B<�_�57��e������{��A�@a�+����[|�I��0#B7�)I�YJp1��o���G����I*���1��w����v������z�I���&���������?fC�M�w7E_!�=>~������n��B��I !����r�m����+�(���r�w���i��~��f�{��n����#��&���BQ������[[[{�Yd���2e�s��e���o4�O?����G?2���3f�0��
�>_~������&��p|bi�Mx�myR����?,��k$'��i�2��Zb�*Kc�������x)�.�/��(QGhS�����Cv�����v�L1N�3,KNb�E���4��#�R�>����f|��'�N&JL���"�)����U�m��j����,�9����B�f��IkG�:2�U��G��:��M�z�&�w����!��q���H�a��
�����>�d���QG�hQF��p�+�%g���h�0�������{p4�����9�J�|�'� �h�����s���n+N�A� ����---r��g�~q����z�}�EUUU�;�]�����+C���^�{��b�Z�������g�1��~�YW���/��J�z��E�UK-�\���~D!M`\~~��|>�:g��]I6{����xD6nkT�����!u��_�S*�#��~4�1�2`��4^F�����u_���A��b'O��x�[���B�?K��������4eli�L������\�kA4�S���"�N��>����I�P���f��c6Z����I����.���O�M���z�U�D/H�w�U�/T�1��+=�Gf���yR��9gw�*o�76�=v�	^���e��|����7<���85��E	o �����#��@4��h(1�A�|O�8�
DC�|��c @�����+V�����g]�����omO=��\s�5]����n�����K���C������u
]	�"����,O>��i ���_~)'�t�9��������n�G�\w�uf��u�d���f=\!��"����m�������������b��TO���*�A�Cd`�P�U*���%Mv���5Y���1\-I�%-��w)�(@��
�Z�$�I��7K���scp�����S�hS�mN�#����k��H��S�D4����}uW�o��$���Q&�K^FO����j���[�)[�������dzj��4�^�
��]aB:K# @� @HB�;/'��Y2 @}D������g����n�����u�]RZZj���;W��Yc����Kr�E�W^y�,����J)*R/\�z�Ex1�|��m���]RR"����?�XN=�T�{���?��\�#d����~�z�6mZ����W\!�V�2�&�����������Pj������M�P"��2�_B�����|���Y�Uu�T�gvi���I�&������'���������K�`���H�cxSz��%x���%�hN����N��!��JCK�/������#��N<��7�e�h%~�c��1��L(n�l�s��t\������r����s��d��:)��~������ @� @�H�ED<tB� `��������1"��ihh����/���{���"���d����7�|Sf��eebO1�v���7��e7���F����H���	\��\�z�\~���.�&Nz��`���<��#��d�g��X����>"��e-���")���Or���0s�������A��>�����)�����YQ�$��@��M�8&��7JFZ���2�`]���}"m)/tn��mg�����0(G��Q�b����^���Z�K���)0�����#m���������!�����Lil���E8���MJl�^��q0�������2q�4c��9��CzW���I�/:����c2��'9�����|�!@� @��#	 �pdXp
� �z�^���J���� ����������z���E����[���c�j����^�G���������4���+�X�w�y���w�3
���O�
f�C^x�����/�_~�e�7o�1Ts�����Efc�Buu�4�l������0��f��G��W����X����"����v������9q����\�O��wl�nk���6����a��L9��W�v����O�������J|qZ��PZ��M�
Oj�U��XKE��}���UB�������8��>�6���-9Y.8�
6`�}F�!K_�k��?"G��&�k��\�5)?bnDa&��Ti���V%^�������>�8#��%)��IDAT�b$@�;0(��>"@��X�B���w� �G��>�Y@�L�^��p�Yg�{��g.L�����2�^}�U�3g�Y�����������vr�21�*�/�x�	����LB7n�3�8���*,[�Ln��&�K����O7�_}���p�	f�Ph!E�k��-2y�ds��%Kd��EF=����(�c�K����D���5PZ[JS����S`!������/<��R��Sre���;�46w�;�����/����m�1>G	.�%/+��#h5��s�|U�yPK�b����1�[�����2�������]�w�v\�D9���`���'ol�u[Q�jAv��9-_�;&|����|���mRY�"UumR^�*�������3W~���X�?n��7��������g��G�|O�����%@�'o�Yy� ��/��� �Mp��b���2}�t����Se��M]��3F��������=���.���Z�x������?L�/6l� Z��q�?~���E/��@�}LLvv���6�{��k����k�/��YUX�j�\y��f��o�-3g�4��f��G��}���������A�20�D��K����R)�7�����&Y�^.8�j��V�b�Q�3$�#�I������?qh�!��0,�c��4������^��>r�#Y��r����;\vu'�N�rQ��������%-�+i)^#�ij���4IS��T�M�UY�yU_j��KW�4����/M-��yoQ�cJ`sL������#�S��T
�?��'��"�M��u�#
���������~������Y(��;V&C7��*
V��V�T�*��E���B,��vXDZ�
s������D����q�}H,�{b���@ �=� �X����'��@$�{$:�A� `W/8 C�58��Fjjj����S��o�������?�|�GL_~����U��>0���O�r,���#`4����'�r�����E2��z����������y�a���H*++#��.��>�s����p�������Q��?��7SV���������'���8����v��n#P�m8$K��)�-
��.�~��e�����xb�t1�
U<�:�g�[�~ �������i2��92���o�����d�zY���J��P���V���f��
u=vf�p����)����nHB��(E��%�P�X�Kd��5v��$+�#���H����gEw��������t��C��wj$?;U�~S��l�Xb�]�w�Hb�'@�;?Fx���v���O�|w~��� �v�����r�@IDAT�}x���a@��wJ%�Q�[V�e;��x��8q�Mb;��^��M�8����oK;���q�c'�7��U��%�)6�S� QH�s�������������`��2�4LLL@XX�T�����#�<"��s��_���Si��_��W5uN����������a��t�a!!!S1O>�$<��sS��v��%�iM������8�����3g`���Sq_���������������>|�������`���S�����!##hOa���p����Y�]}3����-c���!��3��ra��-��������Zz�����3?������CE�T��BM�Q4�7��H�
��8��7���#��}�����HXSx7l(���h���Y�B�Q����`@�#����R�Y�q�J(�\�2���Q���k�se4l\�������y:�M�9`��3�q����[�:*�_y 	"w�i��8J�x��T������@85NB{��{M�7��4	��J�KQAF�"��}�����z�����o��k�
����y���WF����W���x�����[a����p��#�0�@p#���4����������U�������3H�������B���f!�;���T���dhjj��y
�S
������^z	���Q����^xBCC���`hhH ��?~*������������,X0Gd��G��!s���_�*���?��K}��g?;uN������	0^�{�tA�
�UEXW		QwW��e����3���?���`+|l�_N�����}�7�6
z�}.�2@��Pa����x!�-���7�y"�OF��8\i<�j��[�-S��z����U����Z�3��p�0<: ��@$`��N���b���qFkBa��(X]��{FR���p�'����K�
iJ��=��5(/n�G���_"X���g��B�VN2�0�����d��lw���F�&���6��kj`��P�3��o���t�UF ���\��G��C���=t8�.x�����0�#�0��@�/.]��V�>�����.���ga��us���~�#x�����s�g����Q�H0���c��O��)rKWW�w�}0�t���J$�2���>�(������"��{��7E�1���	�a
D�!��J5w��|������D�8pqI��cg����DKs�^���k�|`�c��h���V4h^���0���L����H�R+�3�{���p��(��:��^��	�@AJ��e�]���w�X�[�3XTl�����n#�~zPP�2F2�i��(���.���������c!�>�)V�f���M;*�����+�`A����n����d�m2�JV�w��������=@$��
��o������k��p�|��|�ot\#�LG���t4��nx�����1���>
>fF�`O �������V��m��������.����w��}�����j�v����/hLD����{�o���022'O���F$�.@VV��x�	]����)"�x"��jov8p���[a��g_�]kD��C����� 7eh��.H�A�`u� E%�7'�*��(��������RKgG���#����n��o�����He�
Vl�M��B�&�^V�K3��x��p��=u�h� })�(}(�\����	�$r!5����8_
����0��tp�jF���E����K��Tt��j8V�Xd��dGE��U���4rz5.{r�;���U�+��]nRIm����N�  �1h����j%��cA�������N�\!��{W�0���7�/������1�����`�<�������{x���[�`F�`<�@P/�C���Cx����H
a������}m�;
rE1���y��g ,��W{�Np��+��������zhYbvsQQQp��	��f/�����>�����	i�\��.4���=~8�@�D� caV��-�
��������.�z��R,A���T��&L�F���gq�x��|��xz�?!1$mN������b�18�p������(">*� �bE�&tM�����1���m��a4
}*�0v-}2���������_D����n������H���3��0��#p�Af����T9�7
�)�
$YX�t�d����c��q.�����,�����}j����
!5��^���0��WN�
T.~��2F^�JV��W��F�;�����`v������E��~��K������p;�# ��wql8�6x����0��|��SF�`F@��xa��l6���h4��9�����THyA���I���DGGO�'������?�sn&������������'��o}�[��6��m��N�������W^ye�O�����~����+�G����D��qB��YV#��~�Fh��-��	��B
$������������D'.2��������U�r����z�����+6�wY�Z�����tis�Q}��>f����7Q�� IFjX���,�$D�H-��|DHz�����>F��6"�"��H�R! 7B'��@]�s}�pr,+,*�d�c9���Q������.�8���7	2���b�k��j��81�mc����Q�V}����B UX�2��-���wo�G�O�>��Vs�:����~��{r�K�gc/!���K@s3�� ���.w��<��47�0�#��c��x1�����d2AUU��V���PTT4C���A�z���7����088(�WPP0����:�[}Rq	�|�J����h��������pXQ����D~�@<w�4��l�������;3���#�;|���K7��{���J=Y]xlZ��c2�	�|:��|NVpj����K?�Y��*�bfR�x��������F�����1z���X���: ����\	%��AZ<�X��Eni�b!g ������_�:�z2�h�IX����|�W��n���^�����s6�H-�bt�OLBK�I���l������\T�(�R��Z ��|�V����v!�LT@k�������~���X(�tO�ez�|<O���-q#�������>#�=x�{kn��5<�}}�}F�`F �Z�������� 66�����t���y��@�#@�D;
h�r��kE�8S%9n�q��*����Y������_���xg����
p��\@W"��uS�8s�"D(�����c9|�u8[��d���*������l����J=��\������������FT�(�u�0;����U#p���i%RA 5��%Z�R{��N.9���.�����$�+{�Nsv���efls�^:�z�|*DrHE�E:nD� ���8������Bn�������F��,[K�`���yI�8pi_�y�g�=�!F�+�x
~w��G��h��u���2�6>�O�w9��u0����|�S���Wx�����~1�#��]~L�FF�`F���@P/�l��������'x��Wm������|���{��R^��0���i�4	�c&y���(��2P�'k���/�zv�������E��R��5��
�D�����l�������B$\������)�y��=p��p����1FFD������;$��u��3|X1��aw�7��P��"?�=�Lh�1��
��u���7�,6!���|�<��;=�M�+������b	R��X���D�y��{�'��,��\a�+Q���;t��D��p"��+�+��J��W"`l�G�?���5z[pL�=�=� ��9���A�Pk��'R��7����<�r�w��U1����|�P���cx������12#��]f@�:F�`F���@�/������������V�\	/�������#F�� �-�
W��It%��(�0��P#H�O/���/������ff�����2��G�\c\l�PP����Q^�	)5,���D��!#>Oj�y��\��_��EjH�N�{�?�3�H-��|z����S��12�)Vi`��(H��;�'��7v��L"���EZ(LS�L�f�e�+�D�$b��kcD�m%�������;te^��eN�kI��C�@�E�����S�D~k��bR� �.$f���A�"����_!���5b�����(J�=_j���qi���I�"F���X8^9��x+��0���w�
�F�;�|���
#��|����}`F�`��� ^�?��q�P���o��}�yt�@�"���D��'����Q�����$(�C��������j2��W��#/����������������;�������K�������R"s������4km����2.O�!����p��[�UEHEd��G!;���]��nR�8^9��jLN�M�vHca�c��q� ��t��$N��-���5��A*=����~]7��t#i�r�7�Y�����9�_w
�GG��x���X_,]�C�7�|�����D�(�kQ���
I�w�F�������a!c��pR��J� ��_��z��r���D�
�X�'��>'M���|pC��{us�}����[�TF��x���U�>0�A���wp�V@���?\�#�0�#�<����.\8��HII��d���������MMMPYY	D���^�
K�.����#�#��=I��{22��b��!YIJ �2~�����H	���a!�K�#�:&=�p�7����B�:�f<�0
�`L�#.�G�W����������aM�v��&Y�y�$z���U8[����%�e���	T>I�\�2���7$���b�L�
G�*�h����"��N|H��!���#I�b�!,|������e����
O;�%o2�� �b���$@~��X>�w��
}���`4v��N���X$�i�u���L����B� BF3~�K����&������:��'T*-�%�.H�Dj�m7��K�$���\50X�B*�b����b�r<#��<����p�O!���S�r����!�����	��`F�6�x��o|����O]���W�w��]��g����]��x��g���S����x��w����`����P��DpEp�0Z�\U��(��6��R���t�p�vTr;��47B��
����M�u���Uaj�V�C���f���%��aU�6X��\Jv�#R�x��o����� ���\�DE�J.�G��t��!���nH��?$dI�����>�8I�y(���.�;J��&iU�w�O��U��P����%���c#�;/n���� ���������L��d����q."
�<��:�$��C���������g��8��j/��4"<=�;�%1D�y���]�+����zdEx�}���;��_���`i�|���b����py��4x�K��s1�#�0���4��l6�B��=�.�=
��������O~^y�����x���s>`����n4��8&�w�9�'!����1ufa;g&����Uiz��\��"5���tzWHQ�Z����z��qld(�,� ��~��w�������w�����Q���B����|�W��{SR�0l,��Z�P�GH*�O�.���x�������Z�!7p���E"Ub�t#�;c���q��w�g��P����BU�nT�"��+�'��q������[���>A�G��I1��"!
��Q �t���w>P�-����+�@m�&�9*]�Sm�g������N�j��N�K"Y-��@��X���;�	�����`����3<�������D�J�^ �JU���m����.�\#���|��k�=dF�`��&^�������k������S��t:Ckk����?�9|�_pT���y���z�V({�x4F�!�"W�+��K�������h��c)!�e��K����H�.�G��y��,d%���� P�r���[\�N���V	��|6-��qf?�AD��u�����	�z	�]�L����G��5�d��d3��0����u������>`���+/n."������&+��;�7�������0����{H�a���?0�;��C���]��t%<�#�����K�������+��3=�ZF���|�4�\ #@�������z����D�F���y������d�aF�ex��dF�`�4������e�a�������OK��lO=�<���B������p[r'1��s5zh��n�$Z� 'E��&Jm%��� �U��Q�$�0l~��6T�9��(?��
�Ai�Z4��g�����j��k����n5$���$���(�^'!��e��H�8u��&� ��-� ������&�$-�Zo���"������x�d�/��0���vSdmdE��g=
���6��G�s�������(T��/�*���������Q�S�<s��[Q��x?�Hp1� C	�9"e~�����7��V>,�&F��&���(�"�����Q���amI�TKrA����>1r `@��+H�8_���ZF�q�ka��H���&�?����xF ���|��G�0�#��M�(//�e��	��������4�����
��� �����?�����0���\�yK�A�xd$�C�-��=oa�Z�>0"M����g����p�Q1H��
�����d��9�w0�G�����8n�	���3ra��OC^�"I��!�����H� ���0��.�=�$�8m��)�O�X��_���5�l;B��/����d�L�D��j�yZ�|�}Y$�^m�i�/n�xK��aT�Q�^�S
w-����*�����ahGR������x��J>#~/���,����1R��R>"�qz�4�:,O��:2�@*/��:��k�F������$"��������Y�L��J�"`i���/���>���i�������G��}��X�G��	7�)�6�F>~��e��v����#�0�@"����
���F�q��������k��&d}���a��}R�qF`^!@$����0�����
�DrST>Y-Cn�o�����I#�t�;�k��mqV�-�����6�9�������K�XQz)���d/�$w�vF���7�|�Q|ijt����j��"�P���
�#���H�H�w�E���|K��K�:�����W���!7"�|vPP������"_3'Y�����	�����f�P���?�5Hac�"`�<}�P��ZiQ����w
�/��r��9Dp��J�
��O�����EH�&C�4a!�"��i�I28X�2�+F��O�o�,�`��d��A��[#�U���&%�t{��&tcp_��e��{s�pYY��m�Q~����`�{y,��}x����SF�`F�}�xA����{�������W�?��%�B?�V�Z5����
���
ES���g\���vy���#��l|y���D#��W����EU��h5��� ���4hY"U	��>����Qz��&�?�w���Vx��o���\r�y� u),�X�7��g��U���I�5#��!�
"R�jE\d$ ��T+�R��:I�w��?�����n$����w=
��;���~����}yo"��2�8zq��o����A�������D^=;�
_k����2�Y	��A+-�^E����K���XXY0����>�t����1C�"�B�*B����z$]D����09a������x!���I����h�{�Zr��# 
z��t�cK��.�QZ��s��C"a,�QCQ��~fNe������".�m�'B�8#�����'�|����:�D���^�#�0�#L<�����r3b
�>�,���Zm�������m��AWW��������~�+�y9��������a�h�A;Vn�����c��9�����sJ���Y�(��!?�<F
Y~j�!��UT����ba��
]�G�0�	"�9�����k���s|� P�y���2t�7;����(J]Ei�� e�Se����[��S�����NU��R[��+��A���^��
�d�>���?"a����N*�/l�&��d��{�:�`c+�Q�+$I�[��7��c��#}@nF�BJl8<�+�,w��;_��GQc��9�ViH���A2bL�,1:R��x?����)In��H/���P{���2]'*�V�D���r8Z~L�H���[r2&MH���6�S����2�P#=A^l�v�w1����}N���q<b"L�|Q�[B��z�-3���'U-�.���H]���;���0���(����r���N����Z\@u�aTi�F���[K#�����T[���{�V~�c��E��{�^;�9#�0�#(<���~��W����������o6m�����������������^��_~y*?�>}4�?}��zo�����	#��
=C���Y�:i/����a�B-�P��C`#p��$��*���qz �p��,B�RX�D�T��T��(G��������&g���2���*�n������G�]�������������0���~���.��x������^���>o���=Z�����~@��\����+#nK^����$c��L���s:v&�������6q��"�
"��B�~�8��W����v\CwX��ef�/&�_�t�7/�\%�]�d$��U��1�p2f�Dka�m78$�������)H� R��$��E��D����+���*Z��G.}	=�KH	#[
�H���_^
n{6�����4�W{�]f�9�&^�P��4��y�U�����YGF��&T�XW���9,��b��=�W�0>D������F�`�y�@�/�\Q^^����d���*|���h\9#�7���6�����R����A�9��T|�W��.�L��X�>���DX��BT�X�dw\vX�%b����vZ�cu�6��
�$�X�(�?_^?��dXU�>��/E��N������-�b6?U	_�'Qh����?��3����u���>V�����.7����a��r2�'D�	���pHB��2f+�������B��Hu<�'	R� ���9�Um����"4w����d
*_<������VN��M	*c1��QjeG�v�N>R.i��-��h���\9�L�U�)��O�Q�>V�w��s���C���;?#c���r!BsV
C�V���d�c�r{e�D�X��GV�$L����y��{�FW��(��
t/���[n������8]����6�]��+l^�w��~���#�3�@p ��=8�#��`F��g�xAJ


����^��z���p�#8�Q��:���n���>��4%��R.[���q�!`@�������d�|N���A�Y	N�y��|X�6�
�p R�*<�m�-%�{���H�D,
W�1'����A���c�S��������D���}��_�,^�~�n'j�5��p��h����<��2������� @
D��A�0'*��G�*�'�x������Eu��yf���''���v�3n~4*�+"d��������\���-\]��jc���A��OAH!�#��E���o ������R�b�]�@C��L<���?���������P�<�2��f��4��������
dH�H�g�a�0jo�YI
A�bE�F�R�:N���)��%J-�S��%Z��.�=��a�i�#��|����gF�`&^H�JL��gc�!$�zW
������@r�i!W�r|�������j�i���@a�b�-���U6�D�8]sNT�:�t�'�W�-��/�*l�����.6������5�E��N8zm�� �.����i�!4�7����t�/�i��'����w�/�%�]�������JW���v'�F�Jq�e���z�yt!r�oU�i\u��
+Bs�0JJ3(���@�"b����DH 9BG�IQc�-�pA�
�-�?�[�$���I$� ��6!�'1�g�Ob�1�i\��f���aN}��0�MQB~�JP��7<�?���_t�"%)�~���B��=��=�� �%��4
���Q�a�l)�oH�&u�ehp����@�����
$?\m�+���X�Dc�7I���p����oj��3!�O�P�Tb<��wO���3��w���]��5F�`F`>"��������������-[ ==���p�#�������hq�RI��A.Nt�!���5�Wp�
z������+-.��%	�a$D�����L�hl����\�lEu���;�i�'y_:���\���l�[X�Q&�.w�����}a�1�4
�k��qqq�&��ihT��H:�T��	Vg�4��VrC�������h�����Kp��
��59������LT`
�[_Q�����b#t��q3	C�H���iH�H���PZ���:x�:�������1�y�5����T;D��CF��D����O���
l�X{���
�����8
Ud2�\Ad����w���>�lF%$b�����3���K�n�C��V����>�{jH?��I���|B Y{L���\���5�'�����#�X�9�(�27��:$�x*H���j��e�!���{XsK�#�0��|E �������F�8p��q;���5[����c��7BmG9�uV����c�8��H�?K��;��7�F�����D���0T�����X��>����\����� J-N���`�AC�|�;l��A3���V�	����JKg�"i�Oms��/�^���\WQ�����$��(�����"T���$
]����B�1�n-�\	���f���+O�z���j��wF���u��R�HE2�6"Fp�o�-t!��C�V@!��*��jx|"�f��z��2dJ
� M���:Xq�qy��n#��� ��f�%�}d"���6�y���Q�b�!%�T��@F�a��QV��{�b 	Q��_�L!�*,D���qD)�VX	��G� G�8r�G��8+3��3���a���f�_���K"��eQ���>we���(W�0>A���O`�FF�`�y���'^��z������Z��};�����|^�E<XF�������@�!���W����j )U��@��kH��
u������-H-�-����������x�7Q���f������I��Q���?�s�K���,�dW@�	G:D��=D�@��������j��@$����u�
t4-��lq�>�Q&�}_Q1�0�+�E��g�oN�*����I�Z������S��%�bt
����$�3�������N��B�������&f��%��K�t_�����{��f��U�%)H�@E%d'����m�<�!���w.��Zinb�|���8���������
5��A$R�qRuG��v���m���4�e�������c�	a�M�����g��Q�31����DA_�������L����=V"WA�������<)`<�1
P�I� �|��/\#�x�����kgF�`��'^�Y�����k94$��������aawV�9r�m�f++�1�# �9����
Q��g�"~
�����4$��3�/z��@�$�"FG�
����Y�aG��(�-[����w�<���+�����=��j�&{�8������q��X�������i����A�Z h�1����Z����[���z�E|V�t���Y3rQ�b%�-V@F|�x�Y)����	�LfEO�.������s��a'�Z{,�"f���X��X@�6
�hQ�aS���|�:���]��{�B@!�����,���9�D�@�$H� �$W8^9�.KV�p�{Wj��w��5uFE��+$�!>*���rS8_=��5��r�E,d"����@(���F��y���w������f�]���ck>�8*P�h]��aLx����$�S�������B�_���b)`���;iY��_���n�{���.�0�C�������F�`F��@�/


���A����r�!�o�vx������������#�����?r����b��C��*E��U�)���p	�-D�W�"F94v���D������*�
�J>	Q)������~v�{��$D��W��3��^k�-��=�*�;�oC�G}Q�n��=�^��1E� �%9�{�X�������H�8Um��F��W�#Q u	#��$���h��|�����\���;�#�>'�.5�`��6$b�j��>�RDK���}R��G�
D(DE�\$8
������J'S�@���1z���>����8��T1�����2�r`�!����_?9 ������-B������+jO��n���}�g�*a�w��P�����<��'�b��:���D)���y�,�$G
kj��(7��7��
�Y$`��)���X�
�)�E�xr��6�	�#�x��vn�`F��W�k���3g`��;~�_|�Ex�����
��e���G�df�T�p����Q�iJX��V^��;�5��Q�V?J��A,W�mZ�n�&[��[��1��%Q�G�������~���u�CU�_��=�����$��v>+�.w^=> Z-��t{,����h�����c@�1���vW�:������"aa�
A�bA�2[Y\�����"	�F����{`�J����@���a!e����q2!#A�$��h��1�����.�f'�z'>��+�V�D�����1
�N��5;I�����p�}D(�L��N���������a~ @nz�>7W������$�����>}����g$��k��e1�����9���/.7�adT���_��� �E�:�5��>J
i�
�o��$�B ���:8Z>,�E=���$t������?��vx����1�#�0�G  �����_��M�><�}���c{�b���\�tiF�s������g��	#�0�"`��\u����9�22"6,�Bl�k/�60-� \h���x�W���d��H�D�	�"@nIj:�Z���dt�C4l\x����*�{���;�[;[w�8��h�����_M�;a��!�'��zc����;!5������o�CcP�rN [����#�$-��+!%&S�*m�a7���,�r�2�\�l_��V��qD\l���)�gU'>��z��c$��TjI���-��#��|�}�^��HD�h�2@c��}�>b.�����C��54��-	Z��F{"qP���X����#����9�7mu�TS�^
w��Poo�w��}�|>�2"i��]��,6k%���L�#�p	��\B�@R��0"MDi�*�XI$VP��l��snn���9���:�����|_xs��Qn�`x��=�0�#�0�F  �F�JKK��F|��@��zP��#W.G�F��O������*���Z�%(�,w��+�I���-����A/�I�")��D��L��[����`�����{8Z�g��k������M�;���}(~�Da����f���@P}���P����."�������MQ�Rt�
	�q���l�(�p���co��a��|,$tU���v$bt�3-,,1#�,�r=�}������I7����i�c�d�w��"���D�k,nN�S#X=C*p^�W�n�7OJ6��(P�����A����j��}�#���FiJ D.���(DbY�"����$\4�w�|
Z$�M)T���$���D�pU�!�0���so��or������#����._�wk�r�I-�*����cHV�xT���������l��b�`����=��`F��/��.��#G@���+��?�1<��S��2�#��@@���7G�F�qFY['	�a@������0�r�d���+�is5�( �V���uu�\��x���p��I�Nys>&�N���>=z����U+D��	��@��D�Eu�%���=�Xm��EIf���]�;��t����A7��<��KP��Y4=��>��m�4R��$��N�c��n�����8�$+��Nr]p+���[�D&x��T�$
�����4�	���������^���
���t{���_zr�r�N'�~�2~_�!�Hd���Tx��Eu�z"���4R(�<�}����z���b����g$_\��FLZ����Y#���/�������k����R�K�
��mR�3��<V�!r��u�o}������gF�`��!^����O�����3g����[7ul� ,,T*h�Z�����{���={��4F�`$#�����q8S�s�z���������~�'@�O�H���3���(`�����B�����x�_���R����{V�oM�3A76����d�4xYY���s]~���a:Z��������������%��p���r�e�z���������D�~x���"w�hz0%8�|�q�K���@�h�2
�]�����~?��")���A�����VdXRcd�������=�0�O�B�At�"e�?aF.�/��;������-�.~U���4O��5\'�;s_��N'K �]}D(��
����8�|4 1��'���D�C�����U$�����g+�S��"���I�$b)d���)�&f����|P����#�0���E ����RAA44X|PON�gX���1�# g������5zh�q,����hA�+�f��L/`H��g+�`���J�@.H80�D�h��|���f?����k����r&8;��l���<�-��S��������.Y-J/�Qr#����NOU246?9�T��m�S��
�d�M�o����^t6j���H\E��Jd�k��t;�M�����$���A���|��'�%W\o��m*%�]���H��Fx��.�O���R�Ask��!8{C/%;B,���_�N$c�Q�
����bX���e��d�7��X=`�!vg���
�����!��|����q#H�&��+r����!&bFBt8��T@Z|8$�1F ��XrF�`F�6L����2�#�2����U��F�����Z�/���Gg�_�X��� ��V\d($������v��	�-K"�r�2�m>g� 0<6�xF��Cxh8���g +�PJun�qu���(�-�upI�]7���t����
j�ZX��]��������X+���H�x�F�D�x|����=�h�dJ��|Dl?��:��;2���p���"�J
[�je��X�ix�	d���H!�*\=�>oD�o��^#���3�aFQyk�H���r�qxN���wz"���"Faz�*!+I���7p�6�d�3d�+�����+=[V���14#A�wC��|we�dd}]�4vI3��]�^�������
���q�,T�J}�����'�w�O�[
���w�E����s���|��Az�V6���������uL���NF�h�FZ����?�'����||ty�#�0�#@<������� <<�����2�#�s��#G	Z�F.H��?qj�e�Jj�T��}����:�nJ����H$j��������|�u�W���������t��������q�0��&,��o���u`�pQ�Fk��D(�^��e����F��������o�����q"<}������������N����s��=}F(�r��6�cU�V4�dy�mg*�"e�8���q�7��t�������$�@IDATt�#�C�@�m�I
]��"�?���3�
�Ha��^f��qxzU��:V�V�az�f{b��n���+
zx�DFF����U�^�:J-����l�_��p��S8��@%�o�i�f5a�	�}bc&��J�kY�FT�@�,�3P��������w�C�b!������]�\�E�7]w�c�/��q����o"c��\q`|��?�w_a��2�#�0��gx��g`�ZF�p9��U��%����pP21:Lx�������U,pQ�\��o�X�P-�v������'hF���_P%����Xm<��{;�y�����L0����F3��4����|;��N�(?������05,I���n��G�z�4t^������E{_����N*�������l���u�]������%_(������	���W��r<���&�"�+��(�����}dD4<}�?���{��6�������0��g4ITpf@d �����7���BC@
��a��"<4���
"��s���@n#�L��]��
�4�ke��������oR��58\>G�JSe����Q�.W�[����>#��n�,F��:���Q�(u(1dy��	N���t��\�����e�v����o�����A�D.�6������I5��[8�P������!+���X�}rO����LR�@rF�*���eF�_������F�`F��`��]�
#�r������t�����d4��&��$W��X�a������d�����;wi�_��+��������c�!ZI�G���D�	�HaH�\L	����`��}.����F�TQ�mHsO-4!I�{�C�&��T�iK"�FD�n�=������'0�m�U
5<��������B���7.�>)&�D� R��@��c������61�[�$��@� "�3���B�F8�S���"mq���Ny"x�qt��c�>Dvo���`aFr+n,��������G��
�G���Su�1�=�7k�dH}�� �!��}l��O{��4O��
���-���"���^;1}8?�Xm���H�Y9����l���(s��B���jL7������d��<F�,�Y�b��0��"���Hb���MWI�������P�1�#�0��30���8/#�0�������p�U�����KF�^R�HC�E��	���J�W�K����i1s������:7�cO!p���q�%OU�T�	�)p�c�0m�S�8�������3P�^.�Z���p����"�MZ(�Y������|Ko�@�S���;�/��6$�d���:����	��Ij-_����QAq<f��0E�#��zC�"�C���ao!hYc����A��p$~��������xF�����5����'���nw���}qT_M��<==�Z�_����Fdq��)��������2/K�hf�(�e�*|�E����juP�b������C���!T�D� r����1�q�*��X��UIv�����w���;����#�0�#�;�x�;��eF�R<�G�{pN���������d�oY%��&e-�F8]m_�5Z
[K#�^BZvp�B�"���+p��[>����K2���U��8M��h>��y*Z�����P�Q!s��"]�n�@n�B�OY���b���
o�����|dl�����v>	Q)�:�9�v���/.E��F�������m#%x�he��-I�'�D��C`����Z�L���w��Dz��������06�	!��������!���09�+TH�����z}y�Z \h#<�����q�������D?�/bP�N���a��}����	T}G_��9�8�JA{Js��fF���Q��0���))��j����j�nlB c�bF/�ZQU����$}Y�1r�����B�����d~��GI�(C���E���������^9WC >��!�fF�`_#��__n�`�O���&�*���b$@���'�GME�!����W��Ac�xk*|�K���#}�G�����	|1��c��Xp����sp���_
fG��pw����O������]���K�G�����b�KAE��E��+k��VYM�U$_����b4�����B�:A4O %8�|w�p�4g�������)h���E��.���:�������F@w;������Ft��lX�`|d���-����T���D� �$�4,h"�D0�����L|aZ�G��w�HwF;3�V&c�>]7�{�_���
�{`��F�a`��t�[�T��y������=V�Wi�]�$��F��P�����Lv��1�[�j�W���#t�[��.u�uc��R\G���[���E#I��:��)���B�c��&�B�4]�zb�v�mD�Q#C���1hO�-�-�!�q���yn�G������w7.eF�`?C��~vA�;�#�x��\k�I��&�M_�ahU�����)�?���'�C����m��D%2H��)HS�����^{�8��hD���%�����4�d������!p��\m:�d���*be���SQ��DP��I,B�X�XV�A�H0�:�"����$xr����k�h�@I��|w���-�����@?�D���
�Q��x�@y����,���/��	���S a�[���B��s��
]���H�H�H�'��2���������3<6��L1�d�a}?�!�bh�O U�
������e�r;.�������d ���@��M�kU�Gc���im���g�6t{���G������b�}�F�;��X�$��Cs.�=So�"1����j1��=6R��IV@:�3U�2��mz}t},�
��`B��$Z�P��K��3�� ����a9�� ��\��|�|���\#�0�#��?L���k�=d�C`���#����:����K�8'g��e�%mP�d$Z4uq�}BH2��+HC��2�Cp!@+�r�Y|��"y`����K	�B
J�J8V�G��6:�@��������9#Fi���K�#��xm��j�\RT(G�EE�y0��u7d$���*Z��nj���}��c ���|~{�G�]O�IG�#�A�\`�m���o���q;���4tV�f{x���"w�h�|I�����A��F�$�'�d�l��eB2#�����a� �`B�+"WXU,Ham�H����r��u���lj�������_���%�8s7�'/FR)�\�������
,P���'��X��JA��h��H��A���N$`�"m��@{O�#���D��R�P#il>��+�����
"W���[���S^�RXDC��D���x���O�q_F�`F�70��7�s��#���?rk��0`�{E��%��b��<�$����.�[Qv���*\<���D9lDz�U�+��2�!@+F��Hw��
)�8�)T�u��Y�i��\����`�p�?������p�����{/�fu%hN���r�I�h:�X2���a
�.B5t���Q��1���Io�?�~A����x��o�=�D�B�����.E�0��&&=�������>����0�t�8�TM9c6a��D�@�6��!�9��4$xX�	!�����	CI
�&M�!�
T��U��pH��w��s��>����j�L��dAD����H�s�*��K������c��GQ�����W����a����#�b�[�W��|.1���a!d�R�'��Dr�Fw���
(+�<���]oH�.�=8��#w&�d�<�KU!C	��w&��|w�]��0�#�0�&^��k�#e/!0�����J���������4
���]r<����.z���!S �|T���/�X��a\��p�����1�x���SP��~�9@Ko=*[�������UHH�dqV�����%�V��\D�L�Ax��/EK��ZX]�
6���8�|��`������<8\�'8W{���z���S����Hj���}6��|���oCz\��t��D� "�0��a�M� U:��B���1�42�=�B�U�	�H�P�.��;T�my�|/++s�r�ye�#9�H&l�ip���3G��aC�.X_�SP��u�}F�S����k'����4����X�Gd5�dE�]u�����J���(�Z��_�#[
|�����aSq���0�^HCe
EX�����|x���c�H�H�4��,��x��q��9>��t�g�4������Ip D���b��{Y"g�w��bur<#�0�#�0�`��t4��`�������:��������FB����b��_��+j��������tT�@�����/�z���H��B^�������8�?����$�
��GW}�R$��L���*�)o>
}��.�\�g��e9�aI������ p��x��oV�${
lZx�$-p��_2�|������4\s�[�D������vx����Xo���VO��G�cI�a��y������!��tP�Y��=n��E��5�������D����.$A�BCB�k�Mp��L�D�Z]�
�,�? �r�����o^;x��G�i"����J�i#��u���n9�"��|����Ke)�������K�4� +���K"a���-����p`�#@��
����j&�<������#�0�#�HE��R��|�#�HD`>��#_�V�`�8)��x�P������M������+���LH�	��#J���>\�f}gK�61�%�|�[�Wl�_h8
�/�t�I�m-�w�~WH9'�*�r?��;�	W�N
����v�z� }),���~�W��\���������?J��\�l*������q#���
�b��i�����g\ei����O��h�����1#��=�i�z���h!�Zt����f�a��@ld�"�"��$Y �"V���	v	�>V������/�][�����lQ���=����w�;(�/H��4�:����J�K���Y�c�2h2�!KBd�H�H�����3���0����N��tN���������m�g�]�\��B-�������j���#�*Z����`F�`�&^����1����/n���������cY~,��kd�D�d@'�Ii��Av���u�Q�k7��N��u�FR��?��TNp�W\��5Z�D�����fEK�kio��
����S7��6ow{�>��
���D2V���	����Cm�s*��Z�Z"([�f���vv2���]�-|X���E���~�NX[�He���0����������*\��z��<����%CVb<q����DDQ�8!���|/^R$(Z�$�!�h�5���������D$P�>2+��X��B|�,sp��NU��3����sj,�)�`���P����r���g��w6���������q��$t�q�T1P5��mH}�J�H��')H� ��Z�5��Q$j�&b�n7��!(X�������t�J3�E��,����#�0�#���/d��+aF���w#gn������Y+Z��
XU��Z����a-'����
��j ������~|M�5h�obm�rB!*'�
�B���k�p�D�q'���!e�w
���^��������R����dJ��O��F��&��{j�	W���6�����BA��4{D�����+�t���9�t��
���I��N�u����n��m���tu�F��>�3������5��8c9<��k3����6m����`|����8LNN�����&aB���-��
x<-�R��a=�����P��I#�=2���B�O^y�%h���8T��f0��l�a����0<:�T��1��Vt�.��T9���#R~��c��O� ErEiQ�0����B��Z#'-<H�!BE8�I��+�87#����A��7��vV6������������0�#�0L����`��7w��8U-�;6����
R�H3U-H�"J��I������Z����U6s���t�S�J�g��@��8�l1@+�s��_fU+���$u�����H����3����4�s��04�g�s�6�����
e��5���e��pk���<6G�!�Ks�#�b��e�t?F��V��~*[.:�K"!m\x��;O"]GeR���q�)"\���A|���Ry)���+p��[��Y]x<�����������D�EG���9�
�C�rU��zT��[�r�hQ��"���^��O���3�Z[�e���jE��"5�#��G����q/!��J
��A�:���>`U2i#���P�t�����P wB�/Tx��-�*�%�@� �
$Z�j����}_�A��D�������)���x�*r\�`F�`!��Gq:#�0N"�/nfF/3�����t��Vmd%) 'Y�/����

�������C^�Rx�������S���/T���n�;���U�pv����#o���7%]J2h�Y�I(��,)�'3������&7�}H��>�<�kI���zv)�Z,��	Q)"�8:P����	t=r��8�|r����+���y�_*G�
��<7:����sP�v_���\gi�Z���cO����O=WOM��q�s�C�}��q|�����qD Vt �b��,Z�����[�\��$-�\T� �EZ\��y�\MG9��z�o]w�]E�V�o��%@�6�������@�H*"vB/n}H��nL�����������A��]��sg���
H���t2�@��3,
Q�������
"pX�F��d�����"G(�(F{"MX�i/�!��b�#�_yPY:S�H�e�4-� �3�wO����Q��;������0�#�0�#�L�p
.��0��c���\����D��t��&5&�2�l���8|K��0|[�&�X��Wz��[��O�'*�t���Jzae��u�C�H��HT@q�����KU4qu�����������K��=�I*����S���a��I

-�j|�/�"p��x
hdXu������:tR'�
��O{2�/�^�P�"5�_|M]� > ������d�p��R��`U�V��$g
{��4S�r��.A]G�����/�W��B,Z�E�#�����*��KP�@u���!9/*]�X�,�!7���q�7�i=n�o�o���L��vH$����J(�'D@��w����?a{��
���%�kay�F����=$77�C0�����n	�~�-p����V�+�3 1*�4�-�%��%���{^jG��aH���}hH(���
�c�D���$(e�{�����;
O�+���q�#�0�#���/���3�#0O����b`��z��#���9��44�����%��[�������}��B .2��!�����P������B�Wz1���D\
q�����_�Q	�0���C���+i%.����*�P������V��y�%|��5�j��aJ$f 9C��p%�-A�3��A.L��AI�%p�`�@�h���1���>����QKQ%`i�4���.[��8w��,�\	����%�p�q��Um���Q4���U"dDAvT1l]�Cj���G� ?=�]t��,�����uX��L4��/����`a!W���@wb�J�&��,r�mH.�Zyo�-_���a�CT+�Pw]���;�������<$b #qd'�rX^o���2T�Y�A�L�s��fy�F$n���|���S
���=�}�����@�)X�#�jv�^R���L��d��A�@��������'���]���^�a}?�s��������+L[�lx
����>�#�����!�$Uz�cy����Gv�� ��0�#�0�&^��[�`�p�+w��>R�8Y�C����d��A#wV�r��c�O���"[��
��~GkB�����
�-�D� ����9B�+�Z��{�6Gn^��Cd�kp��!�` 	� ]1���k�CY��������2}O������X�D�BH���������S���|�Q������q�\9z��d��kh���[/
�w��O)�b$y,�\
�wHeee�V���u�!x��3�?�c��d����g��<�B��HQ��J�NT��l���6A�&����ps�� ������|zt	s��8S��lF���|t��$$cd�8�d���`p�Wx����H%��3�+��\ ����Kn���Q������@?������1J����e	1H#-6:�z@%t��|@e�!$R���z$R�blI�^��F����kUQ������H�j�3��N��]:%����e=����#�0�#�6L�pB��`���e��Ykp������{��;V
YI���-�U���g�
�)v.e,*6$"#.�1p�����7L�1��kv�x��`�S����1��]�B(m���|��f=�c����%�%�R�o;��~�l�~Z��S�YI�v�����-�
��'���[&�$ E�(r%S�����J�8�/j��8����^�
\i<�(����q*+��o���"XW��E����K7?�Sh�s�
	�����]#���*��Yka1.���5���;�P~�������0cO�y�����>	*��H�An
�D���6�lAs����3�q���!���'�����o��s!>�o��y��M�?U�o��cI�<u�uBYu������������D��EIY�v���������S�ME�����^�		��t��*��oq���Y��Z��+��K�
n
4�R��TBc���Hv���3����:��%�����������<�<�|{��x3�� @�	�FZ����q�����N�N{�w������VG�S4
$�A3 oflOOO{����Eduu�4�LfeV}��O2���/��EE�d�?#(�5q1(U����R�5�
  �"�E���� �%���\{r0D��C��_�%�]����a���x$jL;��PE` �%F#g���rz\�$X0e!/��_	k���"�8?|L�)b��� Ll�R�egZ}����1I�W�h"�#M�,����R�g���*}�=���<E?}�[S�������fa%���[��<��\a�T��vf�����W�~�L�������y�[�OY|!o�b�7y�[D#��4!�
.?5�b�|MF�H����n~3����������zuY���t�S����[�_ ��eF)�t��r�5K��H���m��|�d{��q"�8>��e%���j9��Zf������S.(b�&ur�
�7E����gn�
�U4*hL����s|������� �P�3�@��p#g[��6\D
R�"���c�$��n�P]�baN@\TLR[���<������&~N��Z���^m��r&���3G��7~D�i�4��kC�"��!l8)OR����R����2$�.-b�K�m��W�\6����������i�v6��/����8�>o��L	�K"��=��am]��E������n.C���N-�����)�/�-/X����C.�}�����R��;�����d5�*��P������j*����k��u-��,V�b��/��_�S,@8;v��Kd���y7]��:��:.�X��m>��o�-���Q�Z��A�w�����+[8`+�[y��"�7jT+m4H���)����[����	g��Z�ih ����u�BSC �0�
'��@z��K���G��b�Xr!�����q����-Z��=�w��r��p�~��������ic!Fk=1�DY��������A~�2Y�� Y�!����he�ca9�bJ]�T6��F.�o���0L P,��!I�����vf��\��'�;�e�����$���o�����}��?K{
O ���~�`q>)��9�%-{3?����|�H�>ic�E/U}����=�/3��DC3}40�K����
����S�� ���Ae��Cg4�>�_)B��2��l��Ah3�����ZJv�x"��1�����d�5�cG�#]����&�Cd�#3��s��R�������Y\�KW4U�i��*59_nr~�&��J!� cx�?���0�Y1�+��,��������0
���#����s9  '�E���� N'�9�{X��fW�3,��������j�C��u;g������&_���jp��gF�M�����ia���0�y��`u������E���i���8cEn�>�/)���+Z�%��q�&���B��u�	T$������8��5\F�*.���������w����3=��O�����r��t�5_L{�# ,��9���9�T���o�Cb�Vw6rY�Xp&[��B�V���x7�[R�f����,��:���3�u�gO��u�1�Q���i�0��3+�4�����M��u�w^���.��m��e��Y��W9���g�������4T7�U;o�+v�OW����RN�iI�����\����jdQ�d�j�j��k
:�����o� �K�����G��cf�)�TS)����WD�#�WDh!e�������!����gZ�e��Z��
�53+L ����y,������ �������a��3��dN1���"���l	�1�����RNDJu�:�/���p���G����_����0���Z�Wz�)���lU�D������W����L}�����'���?~H�����/��������q ?��	I`s&����������:5xv}U�&�h��F
��u�<$D��P�x���N~���p��s9�i�fRD���w^N���~z�-z��i:��B��������`�L��\�e�Q�~s�3x�Y*E+	�Y+�,�+��;Xd��e����"��^�DR^i|^��>O����
+�T���lM
�q$;O��MR�S�c�L>F&G?������[O��?r����&:��|V�;��-O�x��*��T�>�,�����5����5,r����{���@@@�(/���y  ��n�������4�1�T��1�����Q�s���2�����\<��W�<��$���	"���i�9o��/y����m.��e��.w�s����������K���(�i��$Eu>�qo}6�����gn#3Q�����9�bp�5��Paz����7L����VM�~_'����=?�;��c��}���j����bS/�����>_��jByP(�
=��������XJ��s����m��1PhS
v=�{�P�]h`��3b�Y�����MX��W���C��bo��T���L���=G��}�� ����]���b�M��l��R)���>��!���L��'����<��t���,C�3�I������.�v-��j�[������w�^8u�9;��I��D�Q�L.E��	5X��	7d;�.��\K
��m�A�����;������� J����n��QS�"�1F��"�(c���pBT��b�~?�����e����1/�u�Vb����C���(R�DJ��7���.{�S6��R-���bE���T����e� O�4')c��U�~_�(Db!������P�s��/�V�������@��	��#,������g<�����^����uk��6Y����6!������St^����1f�i|vH
�V�AR2��e\�m���I���{��7��+��*5 ���lRR.��lR�ksY�x����;.53��dz���Pg�����xP��^8�8��y�B\�P���c��d����8��)�MP�dQa���|�b���\`����y �0�%z�n��A��!���x�M;.������@d�/��2|��������p��3\���P�B�u��fU�.:���\n�N �b����U7�r�$�����/8���������K���C���)M!b�pT�M�2D�hX[j��u%��$��vL[�>�/�#��Pd�r��zI����Cm�]�qi��t������v�wu]<�4A�34�<Is+�4�<��fi18��������U���.iu%�io���o.}�3��0���Co��<�6)Q����n��w*wP�x�,'���W���W�b�����M�?���;�<=w�1��8�����������+��I)�4���^���R   E"�E���� �%�9��#������J�FY�!�5&f��%fL�,T��`�B@�l&"����.D|��T�w�^.A���&?0������������1�������^���������W�KE/�z����6?����rlv�)���je�EK]'u��`��6.?Vi�!�N�{Q��vQ��-O������_I�2�B�k�p	����'q��K���;Z�t��������g��Q��5�R��bW�E$���XE�U*�*�.Y~����b��q)}����*���zL/���������M�o/��k��K���E�D&���<A�xW�0���`D'  �N7r�,�N'�k�O��4!��1f�Wa�8��� g�BCU��`,��t�����P<}���)�#�a|����
I �x/�M*\kp�,����N����=�����h,w������Ff�5���C���G� kZ�����]�X�v���5�nK�|�{i�]DV�(�3�H���!��x�3[\��+���IY�'Os���X�Z�����gy�_�e�������^�x�rS�{�?���XF�"����_VB�����o
����'�w��\�+�&)����0��-S�F���J���Z��#/��5� �4��)��0��(qI�0?����T��Jq�bl]��v��iG[��E�/���@���#������6�2$�eH��[F�H�[f�b�~�������*��O��/�|��^~��P���+��<C�Hf��iza��K��we����L�d�h��e7��e�5J�3�{��5~)kt��������m������\��-��&"��=
�O_����\V��z�G���~"k�b4�R]/�:B���R@s�Mh�i��4�W�-�i98_���;/�����	� �������Z�.   `	/,��NAJ�n�J��{�0#���$FT�E�at�,�[�Y0�*���1�����A�6no���j����2j��vL���v�K��xw2�W��������!6����Vbt�]����o�8�=��}�e��v]����]-�I�u��^����l�r��/0��/�x�!:(�����������qe�
��yh5��!���/������G^�F�l&�[��7|�j��]�w�~]+'rb�
C�l��t��;h{������0����Rh����9$�Y.h��D�\��[��D�q��������aT�Q5�-2�(0/
�p>��9��!�X��,���hB��eceID������H�$����HI)��gj�����?8���D�N�t�\i��h����K�-�F��x7�8E:z��G��c�fg�~��v)����;
���Dy������k������E����>�_����N�TS^�,�IJ�$����6\T�7��0B@J(I�!L�	���>�0����8�r%}��/���p�vV\��K\J������=z��P�L�������*
$.��B"��]��Rc/��^�L��zM��}R�q=�0P��0
m��
a�)   y��"x8@�"����`8����.eH&f#tv4��&�K�+Y0Z}�������+0�������-��t6�����l��B�'�g���p�#������� ���=/�:�'/}]Kw��I�I����q�V�D��I�z�M~���;�j���s�uW�A~S���,�H	%$��&D@!���/}Z����j�YX��<#%y.����^|�(;���_�6=���Hn�w}��g��3�����8��\��eC]^�}%]��v�{�P&�tJ���,�|���=��%�W���d?����=���\������>� #�9�9��
���8�S�X�B�F�9�X�Y0��������3\,iz�z�6.yr�'7���J\�F���AU\��3��=�f��zD�x^�g��o>D��^c�����2�m���3"���v�|O�0�
g�~���>F����)�;A�>N~��ZE���t��]��w���A@mv��w�;����jVA�|_>x�W�����IG��A3��B�;]��V.'r;U��)��8�"��9�"�^�����je�[*��%�K�'��8��N�*� PT��+*~\
J�X�.�:���u��8~��!�"vw����Y0"\E�w$D��B�.���&;X�!�(*��7�cB��C�)�G��^?.�����2~�|}?�@�l��w��Q��$}�	`�y�zG�1���������bw�%�e����"��I�����Ylq�k�"��p��	 �m�<�:	�)��{���-
L�f������n��cK��&�c������(+�$��k8����+q9S�!�0��?���W�
_�]�������ie�:��r;�U4f;
�M"`�x7i��@@@�� �(0p\@��p#�|c� �"P�x_��4�����B���Z������f�v�������/r�|�D�}"�s�zZ�v1�f�~,�r~���;���~.mR���$�qr$P�x��L���O�"yx!o�M�)ak]e#I���Xl����6���@���
E������?�g���P�_�2PEW�Jf���l6��J'�~]+��V���	J�Y�)�J:��Q1:eY�������hvy��)��8O��o���V.'�FU�e���;�{.�Bu@x��/`	��C�F�!��0@ *����d�����1J�[�s�9P�,�rv�6!�+&��q| D�K���1u5y��"�Q.��D�!Y:<��\�y]f�vs��k������!�i��E���F�X�q�N�c�
Z
-�~�t��������*�l�����0�{	;C/9v����o�C����~������������]��)�l'"����H���4�F
�V�=,�����9������4�-M����&��]��2S4�2C3�^�x9)��T�F"�i�n�����MC�,[3�[��v��b��5A@@����7� i	�F.-�P1���c�Y0"��W��?��Ub7g�(�4>�,��)L*�\��e]GM���Y�!���T��^��K�h�.�]]Z�-�9�%I��<H�}WY��i��	-.�����&�D��������9��s��s����M�^��������=wRsM���m�>)�x�E�X"�Hj�n�R%�5F;g���r%��
��,#�0M/��,�+fEX�*��[��)�'/ho���VF�18KF3�4�X��\�����������=��p@@@@^(�
 ���s�'1�N@�x�r)Arf$�o1�����p�.����p���Q�����l>��ve����=�����D�!�U�2�(5x�r�;
�<(�{��~�E'F����1CC��~1]�s�VO�n��

'�F�nJt�pB�?��#��������q�-���[H�LD�r$/�[�/Y*�H���R%�����3T,j����i
F�SM�\V��\	�,�j�D�.�jT��Yb���0�@@@�4^����@�n��I��!`�x���#gY��g@��P�a�E�:}�8v%���z��D&v��\�E2bTk�1V3ep���2�m�Iyv�w�A0P�]�3�2g��l�P8��y����g���v^A_�����@�g#�� �N����S��g�N+��w|������2{<�j�^-�������j�M�_�'%/�dW[]O.�+�6��^�2z
�������@IDAT�y.�.Yz^����j�A�
���i7mk�K�*=]l��)�����@@@@	^(� �$��s�71�L�n�a�B�h�zY�����8��z�����V��"�8��95��P��d��eJ��JD�!�Kjy�@���w�&�-��g�!}�'����ZY���	��y9?������A�nE�� ��x�l�s�k������'�,���b�w��'�0VN���l?
M���1���i%�T����*�
����z������w��Y_�'����	�A@@�� �p�k10�b��\���� Pxv�����V�d`���]M^:�%E�4����\VE����PVE�q7T�����G�T��K0�����x�pe�'��=��A���j8�L3��4:�OSgid��&��l_�L5�
|o�@n����Bp�p)83��^��b���!���=�0#S���Ltp@@@�^�A}������� �pN��P$�Y#���i.�P�"%���9��h<�-2���V�D��z,�m��:��m��������|,��-��������/\������`*('�{A��b `c�w;���N�w���� ${� 1���qf�s�%��%B)�QW�Hu��m���+�X���m��.3
xfi���hjq��������x��p�������Fw�N�DIW�nj�l^����+   ���"��@�t	�F�t}����{��|��C�,d~9�e[b�r~9�-Q���/��5���./�sF��d-���|�;�D���7`XK�n-_�n�p4H�,���Kf��,�3/P_�"
M@������
U-�Kud�����9e������K^�aQ�r��T�����
�he&AM���s�����7Y�M����3D  p�psl���	 ��^������,���������%I�����*n�.S��"�K��|�@����1��&�x/i�;b�S�,���P$�"�^��Y,����N���"�4>?��2��28cg���#lX=��������Z}�   P� �(A�c� ��7��E� ���J���-K��C����2$K��4�<�YSM��$�s�]5� �Y\�f�D? �>���>�� `��Y$��C`)4O�'O��d/g�����>�3d�����i���@@@6��b������������~����p�"���%<O�G����3d���"�u�s[��<H�a���x7�'��� �m�2�	 �
��� P0�
c`�
rv����4<�������CxaN�B��,�p@��7z��=���������+,����T��f�O�!���:�&�1F���elD�+�
�@�[�e ��q]�fh�3bH�d�#���_O����ks���	@x�3*4������8�8���	^�����bt:��v�421�4IC��j*=TY��2a�Y������q�Hc�vj���{x#���Fk��l8���-�S�l ��+�� �x7�"�{@���O�r! Y1RB���>�������}��>��[�N�������  ��p���@�;��6��|�3aDX��%	�-��h[��v������6��6tL����4�!��
��A G�h��gWK���������C�7��1�^�@@@r'�E���@r"�nr��F ��wG����X��$ID+I2>�I��4T{h{��zZ��Z}5��G���=�����{���y���DO �:��p|��]�M���@@@lH�:
&��M?���Xf@��I}�A #�,C�Q.M!�Vy�l���O��>���lC�+�"�@�����������i���DG   i@x�v���Q��3J���� ����R�xl6J#,����!uK�H�)E���O
U%��xW�-0��Lq����M/����M�\������W�+c�x/��[��%�~�� �K��.����E��K�8�n���_�6@�o��u�	�/�i�E�S�����N5.���2a��]���xW�0��D�O�(-�o���B���w����rb�Y����U,�aF@gR�{z�8N#�xw�G1HO���
�����C�s8�X#��5X�@�;���`8J44��P��q�8�9��k�����V�X��O�����%.h���/�o�3��q)�Vu5��c����LB����@@7��`��X 6<��9�ce���D:��bbT��X�!�2<[�mA��]��M �m�(�	&@��]���d$�EF<8 �	�FN?3�v%�x���`w!	#	:?�~�g�)1Dt�����mj�-|)��u���o���Mw�>\H��8�@�,�d�XXaeW�r���&�`!��1�{�����@�����=_��$���H�qY(!^���1T����\a8�* ���
^�
v"0��sc��$�#SE@J��i��e����lG�Vd���S��-sF���1s�����2��,
^#C�9 P���;Sa����L�������Bthw�j��hl0��=oDt6!�x���`&�����6vLP�n����+ ����>K��(?l=�Y0�&#�����C�[�,����HM"�XS�YT������*�x���������&/�5����$_sp>(M`��WR>D�ZL�+��HC��]e��#��(v����=og��v�G���Z����'��~f8@2��\F<8�"�xw�;1�"�r������	c|.j���r�&��� ���9F7�D�h���0��\W!"�f���T�3��/v���W����Gn:��jq%��Ib�����_����wA|a-e��'���9��"�x/y\@@J����k�@�@p#W ��(@���`���C�s��
�R������Z���F��$I��U,3p](()!$Yl$���l�p6��F{X`������|T��:��\�d�Xd��&�`A��'x�1]���.������T!����	��@�[�W�R'�E�0~�	�F�t���%�xW�50��b�?���
#l<�$�=,��QO��*��[�D+���<\&%�sC��'��FH����1c������H)�$��$��$3�<�2�x�.��/�:��K���k�P��=��#`����q	(q^���0�n��g�A@U�wU=��F`�����ip������S[��,>�b!F]�L�$��R0N�A~����,�R��,�.���dp���&��{e;�^�#�����<��X��$6O�hr>�?�,Pj���`�E]�����C�/"��[����	��[�h�?�i�}�~:��<�Q���{�N��� ��{~�p6���@v^dg�  ��n�t�Bc�5�����mH ��v8F�h��
�|')YP�e@��nmY~�2)0�c"LH�{0^N
;X!y�>�I���f��#i���As��'"�q�<0�(�X�L1�J*d�����8C��2%����
9�����]��" B�w�������g����������?��i�^x�
;)�Ho��?]�����#(����\����E��(�{!(�   P� �(m�c� ���P�%(J���c`VI�A�"9��R��E���"�X�S��(x_Rl�?k�V�.o�NJ&��6�l��HW��D�Hl�� Z�
^.����<�%^���7�c�)mET�\�eq	���&���^�h�Nq������d	�6.!�Z�^�Pl:���bp��b�>���6]������� y���=��p*����
;�����C@x�Gb ����:��% `5�����?�F`f1F^�ji���f�w��1�����c�$��V��J��C>�.Q��!._#�D���	ZXl����.#RU��cl0��=�/&�;2���]���&���R�.��bKD�	�!�xw�+1P��������n���9�
�	 ��3� `Wz�]� �CDK��lv��vK��F���\�B^�V"%���s��3�ri�H.���H��v�h��B�6��"%E�6m����\AO����}��rO��������{A@l�w/��g@�;�����@��@E7r�r'	 �3��Ap��>+"��
�ca%��[G��s0R�DJ���'�R%�
G@�����TT�EE@��+@;���Gb������p��:��1����t����}����6���V�*3 ����>@@@2��"p#gN�@���q00#���c40�Aa�-�
X���.PpS�t��������$��)���C�8�	m�e��p4�O����6�`���E��CM�
C�q&s	OG5����>�V�iw�����5���m�!N�!���������.�������A@7���]w'8@���p�[������� Pq���A��j�~�����K--6��Bt���.�� �s�	��\�a`"�%I�4���C2	T��bUP����,<�BXa���F��U��8d��-�4�����*�ZF)O��Y��R����*X�����X��s��Y�X����:Xl��)]��H�i_d���z/�p���Y?��S��H����/?�����.��I���}��>�������-+�zr%�����v>��Lv�6���(T�[7�   �:/T��<��0��?�����Dw]�b��>/548���
C�y7r9�BC�=���]��@�����P����"�~�^�R������p����dh��K����<���(�r��d��8���Vu���+<T#s�K[V�{l��K|�;�SC!�����K{�����iG2��d|y�������r��_��\�-�@�x��&YL�qj�{p����$���V�V�����||�sK��U�^�D1r�� ��L� �!�o�� �����+����_�B�[<t�M>��Z}��=�9n���c�R�)X���	 ����d����Ps"��i%L�����T�"�.��	3X�!��Z�&��1"�83"�%cv���.�l���l�.��r������HR��K�l'�q�o1>�L [�on����MH	,���m���z��n���$+���� �:3���b�   �	@x����0�;>�LO�����|��n���7^��2N�\*n�J��'!��)��!�x�����"�H�,������*�z��[�5�-S��%C����*��a�$�D"��x�e���%��)���'��7I��i)Y>v��[�eT����7B��!�{g�&8�K�I������s��ix:J������O�,=�d�al��=/�]S,$���-���lU�O"�����	J��=_����A@@�p �(k\	lK��;�������q/1nt�m7{��|�u�����S�A0L$�x7&��	 ���&�"�0;�#SF��Xd�Uj*\,�X-[��|^7EYA!�E<!Km;*b
YO��hmR�����R2u�������E[��5�E�����h�?����*7���j�;�es�Zs�oE�^��d����Oe%$�I�K����R6K2Y$��d�0B;�?��j���<#F��9v&�-��<6�   �/����	�������o��m,��u�������t�U��7ryB�����6��� �7�{�
u�z�%x�<��oA&kTr�����B�\���7����Dc���u�n��R��/�m�7��4��.2M�M^��nk����2���G`s�/�k���]R?��Q�=->���:���	J���x/�1c�   �%�Eay�j `[�����SQz��8��
a�L
�����Y��>�|��.���?��F�����	 �w�	 �M��gW3�\��E2�9D!�8_f�6KF'N"8�����\�|k$��}g���F������riI6�N�@��� 
L�+Y#�y�~Gk��o���n'�,B�p���<u��	-D�(��r���L���H�:������L�p���|������@!	@xQH��8��k�G�B�g���	X����zU�q�0n��CW\n/!n���g��]	 ���9�
�	 ��3s�a�7��R��(-��y)s���$�>~����^�����e4�|��&��U���V�|a���+�p�����'���O��>-Fs-������G@�F�1���+6/�CI��dS*�$��&54�xy���Rn�/+c<=��#a�L��J� )1%B)BT:��	���6�P��
8&��<�L��<���.N���<"b�}�m7�[b7y���j�0�9����@@a�w���@�d�w��:��5Ag��ga��22$CF�09������Q-��o�.�x���,��J/������r���/�s}b �=�5�A��P�,mx����;/  ���,,XT$�+��+���^`D�
/��$�#Dd��s1����x�N����,�_p������>��QFU�\pql�����~��,t
   � ^8��
�B`q1AO����b���tz�d�8=�]�n������5W�%������Fw �0�����i `2���@K��uAg�1�d�X��'xAy������K/}��L�e�������W����������c��v��/�\����N���\v�"�����)~X+�)���$cZ
�^a4V�S��diX�9��b��%c���Y�\Y
��?�"���mS������F5�pQX:^�ig�hoP�w�t�b?d"���{��q@@@����XN`b"N�=��I����/&hr��K�����cU�q�5��A7r&������
;�����&-��62$C�� �H"%�������	(DD���G[�v%�����/�Z������xq��*�D0g�D�;�C9gk����(��F���������)h ���e�2�Z��97����(D8�V�4�&���,���,���$%C��,���O��5��
sUI���r+�{8��V?�s6���m���n���P�����(�qQ(mgzct��(=~4N?y�h	���u����dF��+�7r&������
;�����&Ew �0����3��;�^|Q�*��R I?�$x�\0��]����p]�-��	.q0f�}�)36�!B��f��(�E`��%�*�%#��,�X	%���B�T�Zj)gIl��B2Z4����<���E�X�NiqE��EDQ"���P6k�]�;O�����[�+������v��x��(�&�������o�@��D6L����n��M�����o���)��vN�@���e0@�F�A�v����{W4B:e���-\v���=c����b���s{��gM���2����\&���;�����~
5T�ig��i�[���6���JR\����~�?�1���������\�wS$�HW�|������-T-d��7�12%�t32����H�����H��6���j��~Wml�@@@@
^��X ����/��h��`!���|@�����t��/.��tI5��X�su9Qy��	.���J�+*x�4����W$��%oO���K/	j>|���@�n����<{A�8��qv8�F��x��
�Y��!��!5�-�C5�0j+�T���p��i|.Jb��bn���������2��^�b��=g�8�"�����^��lo���v?�T��o�����A�o��	��������P1&�ga��l�6��B2 ��B�V�q� ����E�������+�l-�f�������<�eH�T�|.�Nu,�j����K�����c�@@�wU<;@@@�� �p�o12p��^H
1�����<,oJ�?B��j���W:���ZZ�A�� �	����D�
�%�xw�o12�L��x�2���X��"4��t�.e�c�A��b���-���{���v]�S�=����L��b���X�2,���cR�D���YJ�\��!)�P�i��D,m(��*�!����b_���q��<�v�m�|��mn�e��_D��do���K��"FAU�f�;3�S,~��+�	�������H�+d�QP������������v�o97�S,�X��K����X�!�09CF2T(����p�=	 ���7X
  v"����[A4�<�'������R��&�?����<������V�,{�7���#�F���'�����!z�?�/_2���v� ��%cF��	R2BJ�N�.��n�����4QC��nu~�M���C�,�9�XA�Vh��d9��8��<�{��UQ�)6�+as���IJ�!�
���B��>Up
��d����"�(��?�VMV��U���a.?r�c������>��6T{����&��&������A+�2
��t���Y}9�   P� �(A�c� �$A~C2b<!B����b����n7�>��O����Z�����`d'�j�3Bp
��S<�q�@vV�����3G|��H��d���r%I!��&#40�{v��:/�Q�o����M�`��z�!��&�RB����L�{4)����6�~S���)���7�a���"��������'���hb
UH��bNV�{1�e��E�uj(�eH"�H[$1Y�sY�!2D��QH&�O��	��6�y%������M��md�VAe���s7�!h��~W��Z������K����7�[[_�#��	��G��3�a�c�����>� �oh#��<��o��[������Y���2_�Y�
������,O�=#�dj	��-W���``1����� �P�E0@@���=�\��|&FGX���9=g���W������}��{a\
@�4���4���'�xW�E0L#`u�������/����r�����R[�R��1��h������#�r,�����nU���"��W�K)�<��du��>~=�������ivQ�1�9m �����!T��0#)�����v�f����,�W��(e�����t�u�wa@@@L!��)�	������9#��1z�X�f���-�V��y&L����f�����Y0nq���K7���@lC?���U0�&�x�!:�(D�L�ip*J�1�G)�LyCZJ�t7�%��p�0������C@2VTs�y@[�k+�L���7��!��B��8m5�)�0�%y�-�\���me#��' �	�H��H�k
��fH���h1��R�*��u�����5�q�M���p��	H����-/-s}a����s�_D[L����>��m�j[��$���yv���qBM5D�7}�3>���p�}�[�3A��	�����?F_Z���o���	#�%��<�0���,e�Z�!o6_�SF���\l��-�t�3`�����I���d)�Q�B
)G �+RY,d��e@�e��������)"��b����
��MTM��7C��7���rM�u��������&����[�������76�=
�A@@@ +/�"B�G������OT�����wF������!�z���=�����omVA��C�#��A�@N�9aB#p��]Ds��rn))�H�2�$8�N>�w��.�����v��<���	��m�EY�n[��$������)����<��L�&yK;���D$��X��Eh"K���>���(��>m�l��Y�I��^U���6�Cl��?�G���J���z���x����Qdpf����/�`r.�
��!3*�����1�,�o��!22M��8��-Xh!��|'/�%��A@@���"��6�p��t}���O��?e�C>��K�>�I/�w�����2L j���V�(X `	��%X�)(I���Y�!%KD��M����O����U�)F�����&�X	����8Y�!�|��N ���������2��"�!�d5�����������TV���d��WL�A %���R���Ia��D�&�,�
��|-&��Y���g��_�+J��E��u�r;�@@@@@/t�BS��@�n^x)J�{(B������IM�#�������������'��A ]���7�P��]-������]�?\�!#Y����Go/7��������S8c�
?��e0�%#e�*����Z�|�X��!D`�m�
,$c&��s�;����h��aL�'�c�r���b5�k(.��6^I��ru��vr��9.9'y����>�������HD��I�{�q���}����#-��� �k��M�J��C/�p�\�{&�3)������o\�3��>yy�"�3s��Ms��Z��4=|�����=^�0�2�H��"EK0�@.?���7�����^���L���� ���&��DM���wQC����e;5k�n��mL �	���{�� *@���
��@�[����J�*y�XM@��,�(CJ3�8C����RH�79'�HC���Xh�Z�c���Z�n�'����@x����L@����b�~��0}��=n�!�v�'jg�F6Y��P��Fl4�8C��y�7�����q}{�1�G�6���vu;�6A����M���&}�V7}�����ZG��E;0���x7���
@��E��K�@� ����"@�:.�,���e�����&�Xk�[����W������>J���n��/���@��)X���I���
�����;����a���Y7��>|���y��n�	�Tl���4�h��$,lN�ns�|�A������	 �m�@�_P"�X
Jvd�f�XL���P�?��m�Kf�ho�j%�r�x�������C��|��\���7r�O�������*N��[\�v���#����;D����nd�(��m�f����{A�T	 �K��w)@����1�R%�x/U�c�Vs)�e�lIR��h����#�h�e���"�U��C���������!��j8@20�F���"��E�[Oq���-�iwg�x�����Kw��l��9Pm�f��j��= ���,�N'�xw��1>X'�x_g�5���3�2f��/��1#�eiSSm�{�|H3�.<&���xO��@@@�*^XE���,�n������,�x8F��	[ �
2�H	���>p	���y��������v(Ar����w��Dw &@��]��M �m�(�	&@��]��IB���g��,�P����=!��&��@@@6��b3l��@��q#79���MM'���L��y���z�x��sD�,�["�_��r}N'L��D��������m7������aa6 P�x���$�xw�[1(���}K,�	�$�xw�[1(���}K,�	   `"/L���@@@��Fnd$��4�g�Kk��Pcn>A"_�p2	7�t\_�6m�qn�~\��.�~�1�O���o���O���w�b&	An���C�{��<_|Q��$�������E��ry9�-S���im����2���xE��,��v~3��D����>�1?UUA��T?�-��,$�x�.�� �s�	 �-���A@1�w�s@@@�� �p�S1$�����q��y,B�>��=���)��l<���h[ID,�"�)I�6��f�7��X������zU��]	7�(�{A0�" ���n� P���`�E@@	�w%�#@@@�� �p�{18�b���9�����F��G���7ZF	sz.l/�2�/���?|�G�_�>�Fa����"�x7�$��	 ���,� ��"�~@@}�w�}A�,�w�H��t �HG�A@� �������a�c1���8��X��uD|��>����5\0�����.�@ g���Q�!�����.�@ g���Q�!�����.�@@@@y^(�" `7����cccq�5g��g���+�
C���l����Aa|�A?55�mf=�M@��H`	�'�xw��1BH@��H`	�'�xw��1BH@��H`	   `/�"�~AJ�n�
���^��o��/�����~�W��b��}�K�����JW��:h(N�{ct�t�|>�/|6`��R;	�^j�xK���������{�y�-e��R�>�^j���q�@@
O���3�AN7r�u��t\a<z$F�>A�`{X[��s}9QCQEQu��jx��R���*U�>YV����o�"�R(Q���&(���h��\}��\�����=w����ixx]\�{.A'�$��`����.�XY���y7�������A.�H�-���~�U `��T�'�I���_`XA�nU�	j@���X  N"�������(A7rJ�a��7�Ei��5,�!�'������a���b��g��������=�I]s�7�^FF�t�L�N�����b A�l!���S�����E�����6�D������A�����-F�	 �7�68�������@`3��f"�0��fE %O7r%�X�����?�o����k�u�t�}�cn����h���&3W���L_2s����������������?�������4�w|@�t �K��) ����!�x/_c� �x�g@@@�j^XM��������sp��}����?���|N�(���W��/�����/������xO�A���t*�i ����np ����!�@��4`�@@@�4^����@�n��I�F�����D��p)�p���?������^���~u���2�����=(D���3`
XL�n1`t
@�+��@�[����������p#g2P�w��?	���[�~�ZqZQAtqQ�� ��������/���/�q@��h�xw�1���=GPh �xw�1���=GPh �xw�1P���;����n���3,��I��
�7���X('���h���������k����Py�k������?��0}�7���1I�������T[����.l��n;��`0L�nN�@���e0@�F�A�v��s����v.�� �����R��3�1��w#����ijA��>?\��W���W����}{=TQ�O11����0�����D�}�#.��������5��f�� ��{�p*����f�� ��{�p*����f��   `C^��i0@@m��S�?v�����������}"���UFt����E{X\!������J��"��	�������N��s9c��������g?<�Y���5�������@��,�pD�� gb( ���= @�;��
��(J�E�@�K7r������	z��������|qE�c��wC����\�H�����}�G����w�����;�����&�DW �8����y `"���0�(N����`��8��p"� �����Xc
���*L��Qz����/�&��/{������hk�����Y `��P�%(J���c`X@�nTt	�@�+��  "��������A7rj�V���/F���m�~��B�1�W}�&}�C^�������x��t4�@����0t@����� `s�w�;����w��@@@�/a�I  ��n�����8�����0}�q}��.���E��C��G���+���C�w����K�n_��r�K������}	 ���;Xz	 ��C{� ��K�A@ ��e���&0:����0��G�DcC�i1���������m����x/h\ �xW�	0
D�^ ��(@���`���@�q(a^���1tk�F����^���_�_}'N���m��Jt��n��$��J���,:�nXt
@�+��@�[�����
:&��E��E�   k �XC�0�n����^�C���
�_5F�&�SU%�����������>��]'�(�{�@�2 ���N�	 P ����e@@�w�@@@�� �p��1<����\����� �������(��g�������Y�q��>�A?���L�T�w��p�������� ���]?3�v%�x���`7�'�x��g����#��>^h
 Y	�F.+"4(q'O��'?��#���e3D����,�x?�$���v������������8MN%���En\����X�6�SA�$ �K��$h�� �@�@����1R(/�E�p,��9���DX��0��o�������f�����{?������N��{0���	RL�ibR��yj�����4����Y����6z����\���n���o�Q]]q�|X�]���r�w��@r"�x�	��# ��Fr"�x�	����A��<��T��n����} ����r�~{$B?�E���l�(���l-uU��o��$�����~^/#mY&��\����x���uY��?M3����PEeWRD1�"����bx�hvEz�r?r���skB�[����D�0D�����$�%��-��A���!l8	lI�nK��h�/l�. `�����`�<�T�~��(��I1��S, ��%D��Y�ax���(K����!�~7�
'��-	 �m�6
� �
a�I `K�w[�
F�����@xa+w�X;�����F��7��sa���8�5h7�oo��|<p�����Cw����Fw���t�S�c$�U�u������l2� �����"Bp��c\���@V�����C��Wb    �,/�u
�+����s��.���O#���bt��]�.��wrF��eI�����$��q�g��_�������'�7��r�n$��E�o��vnw��]n�������c-l*B���8f�@ ��E �q��@�2.  %N���`� �����L�#�#0?��Lz�1��k	�h����F�u
� ��7�y��]�];�n���
��\��tn���	:3J4<��,��[j��(cw����0��x���C��.��x��p�&�dN��dr���q��"��IP(��Q�?v1^�d�m�������~����������>��f>g��������^���}��kc�B�~���@���N�.�@�_�[ �d�w'{c5@x��`����F�A��PlG�7�E���F�q�<@IDAT��L���Z�WTuU��57�x&jirQ#�75���9�l�� �\�c���kQ���(���8=wz�Q���2.Kr�������UQg�� z��UP�x�V�)�^����n���e�h�.�&�hk{/�)P�xB��R[g�,�YD��O����f�F�3��j�d����w����������!��K��z��=�������� ���]/1��@���w�@@�B��x
v���n�l�*Z83A(AA.u
�.y{�������`P��.9������>�X �������H�+||rv���bT_��4Sc=i"�&T���yuY[kn����y*B�9���a01N���-�Y��Il.q�H����[]�i��q�����q
&����w���?P��]]��20���l���%�xW�7�@@�B��x�P�n��q�	������<�_s6�'��|���B�*���na���+���Q�t���J��@���i0@���@���6tL����f�� �����>�� `�]2x<�L��aD���KP/��T:9���?��?|�G��rmL�P1�M :X#�x_C�p<���]�����
����XD����[��%����=F^z����1��cQz��8�������O\�b/?���N����m].��v��uw�i��E##q������8��K$���6��� `�����Dx��>�I?uu�35��	�!�s
��d!�x��A�A�r&�Y ���a��	@x�7Bt ����<�N&`�x��=�x�~�t�������Z���D�YT���]��M��@�v7UT�r�(�V��	:y*Fg���l_�N�&�t��&�Z��3�X@�%<d�-,(intQk�����x���E�U��9��+A���:J_}�3�t����n7�����?����0�����}��`/�@6��l�p�C��_b$ ���=!������  ��n�6�&8����}b"N��M�~�X���	c[���l�������j=�QF/2$[��3N�M��!���J����YD!e8kXD�������"%�hf!ES�[U47�5�T����a��c��Y���t�%D�������G����G�0U�S����A �0�����i `2���@�(L���s`��8��q$� �����XV@�[MX_���q��SM�d�PO4�o4[���K��~�o�(F����MN{�����u�|�C���#k0"�U#I�/Y��q_x�x,F
��h�m�]4���y��.���~�*@����o���4�6%�x���`6 �x7
���M	 �m�8�
  6"����SA�A7r���3 ����>���w��o>�@���R���D\����Kw���Hl6!�m�0�y@������ �m�0�y@�������D���0���N7r��BK�;���=���x3J��a���h���W������/�h�N�a�	�n'�D0���$��l@�n'�D0���$��@@@ -/���0F7r���,�#����|�;���31�&������ED_��M����������xW�50L'�x7):e	 ��u
�	 �MG�A@@6��bl��@�p#�/A��!�x���J��`0A?�E����(=��=�s����'��+g0�]9�� ����2���#�xW�%0,#�x�-:X%�>
  `2��������
;�]@`z:N?�Q���p�^=w�!57Xw��;\������k�J��xW�
0
B�^��(A���`��� �q(i^���1x+�F�
���$�xW�/�*3���1��#����ixv��h�����rQ��y���>Y�\f0�����Hf����'��}R��G���1E��E���@ ����"@�	<.E �x/t\@@J��%�p@�z����1��@���	�a?x(L��a��x�����!��Oy�S�SU��xG:����G��p�E--1���C:{(~���8��y 9ww����|�X|
�r#����8�8���	^�@ 7���8�����q^g�3A@`K���v��#	 ��V�bCCq��������?e�b���S���������3�I����%h|"Nc�2A�	�$m9<Ctv��m�}U%��F��Vuw���E�n��t�����
��cy9A}�6+,�H�������&[����>�!}��>jh��'�@����@�@����1R@��3   `5/�&��AJ�n�J��p	@����1tS<�b���O���Q�X�D�a7}�.�4�il���,��yb*A#�,���uR��c|��c�Z�-��,{�T��Vf����E�,��l�,����P}}��"�l��4���s	�Q�(�i�u[��	7�#�������FL P���������[U���� J(AQ@$�Q�Q�:���^���]���(���^uEEA%����"�DQr�����O5}���V���k�s~��NXk�w=o�iw��}��>U;o�SQ@��b��y�
��T��u @�����b���SD���i�eh�����x���8��y����/�4>�,�(��MkDl:;b�����qc����f�����U<����d��F�o����'����Z�J`Q�/��������Z�E�}Q� @�����b�M��).�Dn��X����)�n�� �n�c�k>������s5�Ixz�)�
����^5-����)�F�r�W�`�#����/��.�����[h���-h��K��\]�������x����w��8���8���E��U8�����s������#���<}���'P��?��i��X��������{5�� �Z/Z�� P���R;�nc�����A G���G��?����P�we����us��U���������7��������M{�i���:B[����N��@�������@[��-�P�W���z{keL���I���&A@�'�[Ny���u(�y���j�Q$�����|Z��U#6Z+���E�Y�/f��s������������c����7Y<��\;7�4�|��M7�
7�4_7�6W���C���L�x���m��F}�����S;_�����[<������F��?�'�6?�x�(2����M��}�M�����;zH����^N�*%@`��>V1�	�+ ���N� @�/J��:	(F��\1�R(�����&t+%p�������o��H4�)6m>c�u�M�F�
����/�_��@1����D��f�'=i��r�~�
���fSFg��M����o���876�3��#��{��?s������xN_l�������M��fcEgs����7��m��N>un����qLc�-}�X���yo}����W7;2�&������\�w?
����O�^[)�,/&K�� P���j[ka���%H<A�Z�^���;�o��l�����q�]#�a���s������o���*z������<��9�<������;m������[�����M6��u��Ja��*�S��:	�$ �%uK�VN@�W��l @`�6^����I�����&P����>���T���.��q�O���[�D�����0v�����U_l�l���������eK��@`����J 0��>������	����{c 0el��2��P&J���DI{�/ ����(y���/Cq���������?�F~�
#�v���:�v�t���k���azS���z���q�#��p�v{��H�q�H��|��mwF�qO��3wE\�`��3#��]q���;n�* �����	L���O(�7#0��>����L	/�D�-���p"7������
����{w) ��jw>"�G?�?8m(~��E_�Gs�l>����f��4_����16n>�e�n�_��L�l��l��}������F��������f#�}>�W�O�����o��f���$o���%����*L���O��� �yoGTA�j�����Z�"�DnR��)�I��Ia��&E@������#������N�.�������J�Q%�n�\���������������qKsU����@3W��?o��w�cf��Jo���b��y�b
��)- �S��?��}�5�r	 @��$�x1	���������_�#����/��>���=����1/�8{0.��H��/������^^y#�M&����x�{f�j���1
���P��! ����*L���O��� @�S[������'@�N�z���Z* �-m���@@��Q���P�������������D=��);sf��o��C�
���*S������T�	���$ �S���:��}��X?�����7�L1'rS���;��}J��������o�o�a8~�������q�����WE���(�L��_o���wf���+`�l�#�}�ff(U@�K���	�]@��nf 06/��e4V(�Dn�D�F@��i��X�����h��uW�	�7C�f���������[�]��N���	y�����z}1g��'��������k�5�o����������P���~}|����:�c�h���}EB^'P�����K+!�"y_���	 @�����be�'@��bN���@��^qs-��b���=|����cJ�_�����i$��}��|o3k��M�l6R<��b��#��?#��9��Agc�����Fc�q�9�������zo����
��v�����u[yy_yCG P�����)uXyy_yCG @��/`���}�J��18�3�	���b[�pc��1��l�#���o/�e���"���FL��o�t��-��y��������i������l������p����c����06�|M_����
 n���og&��������@������I��	�x��d���%SH�xy/��@ Y@���G�.�jn�u���������ol��������_����|��&�4;��������,�� ����/�� �/z���Lm'rS��V?��}j��j����O��O����f�'��i����������x�Sm��\/���8���1'�b$�|���Vm>�f�������/|�@�����5��%���^�2�����	������h @`�6^���,W���ry�H�*y���C`���\/N��e��|j^���#cz����/���������3���2?���8�����M��%��l�����;�n���47��U`<�>��6��������n @`*
�x1�n��T��\Oy�@���U�P��
�{Oy|�W^5i��q��m��_��yZ�`�i��'�����W6����l���P�������e������J��[6�1v�o�70��UV���)M`I�����G�m���vF] @�/���� �'r-i�2L���O�� �yoI#����5������9wl0:�q��}^�/�m v�y�"������;���~:��?������|�S�����*��v��6��7�.*k�+Z���r�>�Zn� @`�l��proH�@�N�j���xB@���p�@��^{��^�u��17�9s�0FW���x�s�+*�t ��}Zl�������_p�`��g�qJsU�Koh��O��{=;b��c��#J:W6YuUW�hGwT�V�����vu 06y��� @���l���X�����x�@U�^U;-��r�}�<^l��_�:�������37`<����/����/��c�F����[���)ciy����8����g������Z�����0b��}����������7������qs�s������#�W,��o�������O�=�p�&��_`iyo�*$@ G@�s��!@��"`��X��%@�@���$CT" ��4�2$�{�!�����f�c�Om~K��/�s|���}w�k��1��xz��Z�WQX��+�����W����\��7�����~r��[�)� �����~�"��h��=��( @ _���|;3	 �T'rKe�$�*����Z��
��RY<�r��n�O�X|������`�/�<b���^{L��4m�����G���G������c����t?~���#���?�����y�P�������#�E<���|������5u������]�c�9�zI�|���c��_
���/��~3���H�������	��7�v����936�djl��`:HO���S^'�*yoU;C�������Z�)�Dn2��7�������n&S@�'S�{���w��'��3��S~�l�h6����w���{�d���l�����������F���"�o�w6M�w�H�����M��x���|=�P����qOs�������ys����*������[�����{6�-��m�r�8:s����o�����q��7�,��[�\��������0�Ue)����|_X�}u�{���: �/��5 P�����i1�+ ����"�����vN��\p�`�u�`���������1}��M���Q��f�Dt���m�
#^����o���u��_�b<8n�}8~�\������W5G�lJi������+�>����i!������d�J���FZh���-n��(S��\�}S5�y�Q3�@��^f�T�b���'����8���8�������1�h.�������7�-��s���U-�����5S2���p�������5G����D�O^+��o��������Y��M�\����7��,$ �a�K��D�����:(SY���T���O5y�j���, �S��Sk��+)��\
����.��G������m7��o���w�i�����@p���������
5�����K�z����C�;���8�
������k�r���?bhK�~+�g��H�8y/�e
&@��	�xQ\�L�@�����C�#0~�>~��D�������W��l0�8{0~�|,�Yj�e�W����N���2=^����k�i��z�U�*uK�?�~4>��o��{�����,�]�����Cqy���+���+F��n�n~��W5Wy�!���/����<���s������(J����F P���e�O��P��\��$=���:,�
�{���I8��yq�9Cq���q�_'����=�m.������1�y<��5�o��*�k3��Y�����xV��B�������1���*����c�����Kc�U�o �~��'p�����~=�|�������eV��S�0=����_�/ee���K�
�q�����+G����?�����6�8��wonBW����ck��������k������x�3�����Vnt
�^C���[���v�Gu(�D���)�@���g��F�@y/�iJ���}���Y?�g�|(N9$n�wo��vN��a��"�yR�������Z��u�������\�/�\��z��Z�_�y��5�7y_9������~4~x��
��7���>��p�M��C�D�#h��|]�l��C�����"n^V~3*[��X��7��!o�����+��{Z�O?c^|�[���_/��}��l�y��x��6Q�I5��>����L
/�F����	p"7�����$��$7���@y�@loU��UW�]w���M�M��6��&�O��C1���x,���
��&'=+���v����GGb����P��������K{~d�y�1�����H�����B����F�O�>^����fl�B�c��:Wp������Tq�`�����Es�?^=��K����/O��4k:h����_A����p�����c��Q��;�_���+��(��gZ��������T@�[�e @���l�����B�@;����� 0�>���@;��}P�����S����x����U�����?�?�_���3�������8��yq�Y�q�o��+���Y�l�������+#������O��7'_���-���3�+}�������|dSy��\�gj����i- @��6^��/�"@�`'r7O��( �c3�@��^p��N`��>F������G���������o_|��f���6$:k�//���1'�=�)�&e
<u������������}~n�q8�z����������1�����;dFl�A��f3�=��w��w����[oy��H�z{�uG��w��~��M�Uf�������}������mJ�&��8�>F0�	 @��1�x1f2j���{��k���~8����\�����*�d/����^���p"�\/�J@��j��X���/����������S��kk.'1w�����|cFl��i�8�W��o$�8{^�r�P��f�cc�lht�b��M"�~f_l����j��x�V���}q��s���wp�X�fE��������������27�r�`�������g�?nf����/Cq[������M�������wF��|��-wE�����G^x�����u�+����rz<�)unL�J�gL���^�; @�6^�w�c�9&>��O��q���!����i�c{��q��G.�����f�m�3oY��s�K(�������T�����������},���'/����h���V���W����z:�6�{���6�+ ����h�, ����M7
��h������>0�����"\����?k�jq�p�������
+���y��s_�S.Z��M?�[v���gzl���m�Y�=��x*�����k���/�4����e�,���f��P��c�����"=dz����~��UWE��7\<�\>��q[�*��1C[n�����+_>-^���g`����������hE @��6^��?EVw�G�?�������|�s�[�|pt6v�����=/�?���l��u�]����Z��%�o��fq�Yg���n��k?���-\���X��m�����92�. ����0y�0joD`����-��������
������_]%�^�o�cyd$����8�����_�����Jw[��Z�,����+Xl������O\�b�3�����C������Ok~3?�>�3r�g6����x�+g�m�J��Jy��	s�����?��������i����h6l����������
���x��(�C��ozC�����#����W���.�����u�F��������/�k6a��/��\�w���[�wl��3�+w�`l���8��3��c��R���Y� @���#`���������/��j��������em�x��c��w��.�h�������/���/f��?���c�-�\d��m?��:}�����{m���tBz/ ��7��" �����8�!s����~�����Q����,���;�r����ig
��.]�q�_]���4������w����i�����y����<x�{�q�5����������f��p����y<��U|�����?��>��������|��|���"_�mt�l�x��[m��y���'5���v������7C���_Ua����!y�@|��Xu���Z{��|�P|���K��c�����V�x�����o��n���.�����k�vr�uKyq9O��F����>�|�p�����_
�����o�_N������{ ^����h��? �.��`w�����#�`��#���7�������x��Xm����@�y_`�; 0y6^L�}��������(y}������s�]d�����q�y��������Z���v�)v�a���e��\��s��o��rt6�,�u�j���?��v�����k��&���w��g��`���]x�����i������
8�����h�����j!�[y����h���O\7��w$z��q�����}����?<+:i������s���%?-t�Y����	��\��i��s��X�`O�Y�[�=���P\q��6{m�������o��_:�����gs��c�
W�����{<'����-^����Rt�,q���/Xq�����a�����{Fl������j�u�p��#q������}J�	c��x�~��������n�c�;7�99����'N}���x��g������Z�^��� @���l�(������L���0:�/����o�A��a�{��?����>>��c����>�����;�]w��������?�9����\����>p@���?�>�������u�wgB��M�7!�
yoEA`B�}B��	�V�������x,��b�k�e��,_���x����U�M�u��/{{YZ��>��(��5/��$;n�\]��[�J"�������Y��Xo��k���3�/���O}jz?�#��
D��;w�=w����=�������y��{#��������4��\e�W���������`lg���7�\ne�����+�<:���'5���}����������5o�y��_���_�G��Y�c}��}q��f�������u�p��\)��f��y
����,p��5{S6l�����5WkY��9���y��lXp�\����i6�t>�dn��A�k���W��v+�#Ix`$N���8������lj6�|�
�������o�x�}�� @�@�6^T�������-�>��n��y�{��_�b���w�9��8����O]}�����?��x,w�<����>�����~7��o���x�;���3gN��N����7��;w�~�E����N�zN�
�F@�[�
��������h���ON+��r(^������z�����5x�}��^�b�=����M�@������������c�����n���'7}���B���������M�u6l4�;7����Xs���������5(:'���fEg������{��;����(����������n
zl,E�s��[G���i��W�_�"e%�5V��?�O|kx���H������^23��.���h�����])3WrL��c���f�?7k�����������y��f���1_����G�����)?���{$�e|���V��z�N�������v��fKn\Y���x��S����74�+�,��&����?���3b���MV����}Y��'@��K�����t�1�p�	��7��;��xF\v�e�I��O�:���~t������{o��l�{������q���/x8ze��3���}e���8���ou��\�b���3��om?��:}�'r��]�A@���5�y�g�B�
�>�]x�����O�_�/��W5���s�����J��;���_�����q�t���b�zR�1.����4#6�(������c��X|�+73�7��'7W���9}������b���
9���'5��������~:?:k8~w�8�q�W��?#���k�����i�i��������w�������g7�-�������������O~r����>�=pD @`Q/��h������b�-�s5����;/v�e����y��q �����g�}�cR����Z+x��'
�m����SO=u�S����g�/{��F���x�]�{"�D�'�J������(�@O��'�J���>�m����68�_�5{+|����/����X|��C��;rf��*�����;���39W}Y���I]����.��y�.;t6 ���;Mk�^����%���':�~��y���j�^��Q�������l�������f#���N;N��W��&W^5������)�q���Y�����������+��!���� @`�l�X9?�3>���G������=����u/~ghh(�M{�_�|�C�O~��q�5���W^��Ys�5c����g?�������+.����g=���G>�����>�}��;��c���?���QG�~��G��x����0'rF��L���Oz@`��}����I��Io�h7�4�������_��Y�Oi����y��/��s//�������?>~u��+�z5�b���}��\�f�z7_��d�M_���d��b��>����k����9/N;c0~�������T�����}��������E�����n�u8�sB�Q"?��n����6o��]��-��(�SO��9���b�V���=�����h>re�����z�Xi/V���*p����V[m�����������m�|��2n����"Yp�l����+�s����<���������,�_��_����d��8�������>^��[o���l���/����=~����[�;&�Dn����I��Io�L���O�7"0��>�-X��������7�yn�M#^�W�j�����K��"<(N��?
���}n|�����|q���}����{�99W�H)�s��/|en|���y4e�bc�O
����U/�~�&��U�Xc������M��+�l��q��8������z[�V6�[�����������f�E7c<��H�t������q�V����q`�������f-��s���f^�w����o_��_3���/���?���h4 0v/�nf�J
��
o�O<�{�/~��������xiwN:��x��^�������������v���^���|��+_���s��~z���>��K���8���'���A���7G���xK[��z+�D����N�M���n��@o�����N�M���n����_
���:/^�g�r����:�������S�m�5]p�H���{s�����y��{"�����|������n�=w����u��D�Y-b���������_�?i�_&���5��o~���3���<��Hs���T�q37��l����]��/h6Zt6Y<��O�]��g���������j6a4I��_6�&��}��"���/�z�H����s(���O�����^7��si��������?�����u/���6=�����G��>6?�	 @����x1v33VB��� [l�E���]�r�-��j���rn��G����RG<�)Oiv���+i,���2�3����K�|��Mo�>�\�b�]w�>^����'N�������oY��|�������	�M@������������	�M@�����@�#�j6d�q�����K��q����}�5��l~��\=a����:�������f��kG��N_���L�����x������m�����w��87>�����"���/v���h��@�5-VY����k�
&�����3��_]2gv�������=}v�A����{���x��
A���`~��8���]	��;��G�yz�_�-w�����w� 0^6^����$	�����/������o������}��;�x�+���N[���|�+��~�5��}������;��!�r�"�v�y���/~��b�����x�;��s��^����e��l�x��F_~��_?��OF���x�Z��{'�/j{g���& �m��z�N@�{g���& �m��z�N@�{g���#p���q�%�q�o����9W5�����,��y�m����o�[?w��+Y�CG�����������c�M��<����Y���+��	 @���	�x�4��D���n�
6��{���.n�����Ut�\���v�-�=������sNt�[��O�Sl������������-��u>"��o}k����;/v�e���e�Y����oY��|���M�l�@���mQ��	�{�l�@���mQ��	�{�l�=�_?�\:�f8.�]�����^l����{��[�0-^�k����k��O���8���m��e������������6^L��O������==�����#��}�c��+�3888��$�����F-w�G���c���wF�
��1�|p����??^��u/���5r��	'�0:���[�zR�����G�S�G� @� @�@{n�mZ\~�����Y��kV��n^%b^��)��c�g���q_�t��'e���|��k��.Z/�������Kr� @��Y���qu�e����q�Eu���\���W�����k��f�(;��C\x�������������}�����=����xiwFFF���c�m��m?���s��x�+g @� @��2�o���bf\~��7cl�������=^�`���p+x��q�w��/X7b����]�8/� � 0>6^�����@������=�i�Q[o�u\z������3g���������<q�g��{��}�����7�����K�s��w�����}�����U5:���[t�/2�L#@� @� P��-�N�?]9���1+����x���>/{ �[o�������8������7W�Z�/Z�;� @���l�(�����QG�{���n�Gy�";�}a�l���q�%�t��������������xF�����F���:�D��v����|�3��|`�q���-��	��F��L���Oz@`��}����I��Io�L���O�7"0���;���c����+r�}��_��;���y�O�G�'/�	�a�/��^{��g������o�}��;��{o\q�q�wD��/~��c��7_�����Xc�x��F�o�����h����c�����;�s������}��;'�p�"W�8��sb��v���-m=����������h�����j!�[y����h�����j!�[y����h������X��c�����)��:^��m�P� @���l����m\��6�l����k�K��~�����?����?�����������)OyJ��8 :�'���������n[��R���]���|�+������Xk�����~�n��L�����foB����6(������0{���V�A&D@�'���h��/yI\��Ub������� @��[����u�%.����z����������N:��xEwn���E����zE����K��������7���/u��G�t����?������}������w/|�s���6��{���Z:=�����[�V�{/�/nzo��E@���	u�������;h������ �{y���w �yoK'�A��������fe���7��o}k���~��q���w��y�3�W]uUw��G�zh���w.���x�_�}j��W�����G�,�]}����g<c����!��{n������:wFFF��������>�Y�A�}�����-R�=p"�sbo@�5���V(�@�������@k��5�P���{������{kZ� P������={���������x������w��9����mo{�"C?����n��>}z���}�k��w����s��!�|�;y�������;��|�J��~zl�������;7�����W��������\��1s���s���x����N�zo��E@���	u�������;h������ �{y���w �yoK'�A��������fep@���g���������>��8�N�*���������;���`t�X��X��o�{��������7g,x���o�g=�YK��i��F�|������g?�Y���^�?=����[j��������:(�V
�{+��(=����:(�V
�{+��(=����:(�V
�{+��( P���U�����e�]�������#y�|�@IDAT���Y���S�<��C�W����4����d����K���/s���^�7�� +�-�#F����-^���p"�WG%�FyocW�D�7��WG%�FyocW�D�7��WG%�FyocW�D������~�r5[m�U\~����=���+��r��<���F?d�1?�K_��8�����/��/-�qgCG��P����-q����=��3�8���n���:�'�~����x������#h�����3�"0��>���H��������������:"��
�{[;�. P�����r�������k��&�����m��&��b��6mZ����H\w�uq����}���m�Yl�����FUy��E��$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�A���*�h��=�� U�{m� �j/Z�� P�����fy���f�������@������E�Dy/�kj&�' �ynf @��6^�[I��$'rIL�B@��h�EH��$&�T! �U��"$	�{�A���*�h @��6^��=�#@�D'r%vM���=��,%
�{�]S3�<y�s3�@��^b��L O@����"@��l�H�2�IN���"P���W�F� �$ �IL�B@��h�EH��$&�T! �U��" @�@�l�hu{G�@�N�J���	�	�{��YJ����fy���f�������@������E���x�ne$���%1D�
y���A I@���"P���W�F� �$ �IL�B@��h�E @��V�x���(������55���<7��( �%vM���=��,%
�{�]S3�<y�s3�H��"��H$	8�Kb2�@�^E-�@���'1D�
y���A I@���"P���W�F� @�������Q%
8�+�kj&�' �ynf(Q@�K���	�	�{��YJ����fy���f �.`�E���Hp"��d�*���6Z�$yOb2�@�^E-�@���'1D�
y���A�Z-`�E���8Jp"Wb��L O@����"P�����55���<7��( �%vM���=��, @ ]���t+#	 �$�D.�� U�{m�I���d�*���6Z�$yOb2�@�^E-��Z���V�Gq�(�D�����@������E�Dy/�kj&�' �ynf(Q@�K���	�	�{��Y @�@����VF @ I��\�A���*�h��=�� U�{m�I���d�*���6Zh����n��(Q��\�]S3�<y�s3�@��^b��L O@����"P�����55���<7� @��t/���$@�@���$&�T! �U��"$	�{�����@�Q����lQ3P�M���� �0���"��a��Ah�"�HXTH�d$*������2�A�����B��DH�	���3]_u��oW:�7U�O��]���n=��[��_W)D����� d���"P	�^�at @��/
=<:G�@\��q���@o��77��Q@��q���@o��77��Q@��q���@o��77� @���/�[)I��L.�21)D����� d���"P	�^�at2	��LL
���x��0: Ph���#@��.��8j�L�7����Z�( ��8j�L�7����Z�( ��8j�L�7����Z @�@v����$@�@&r��"P	�^�at2	��LL
���x��0:��{&&�TB@�Wb(����B�� PFre5}&���x��M-e�e5}&���x��M-e�e5}&���x��M- @ �����VJ @ ���LL
���x��0:��{&&�TB@�Wb�L�=�B*! �+1��Z@�E��G�(���2��>�M@�����2
��2��>�M@�����2
��2��>�M@���� �]@�Ev+%	 �I��\&&�TB@�Wb�L�=�B*! �+1��@&���I!���FA�
- �����s�Q��\GM�	�& �{sS�@�{GM�	�& �{sS�@�{GM�	�& �{sS��. �"����$�B.�B*! �+1��@&���I!���FA ��x����J��J�� @���xQ���9�(�B�����z����E��������z����E��������z����E�d�x��JIdp!��I!���FA ��x����J��J�� �I@�gbR�@%�{%��A @��BH�(���ep!W�Q�g�	�����"PF�^�Q�g�	�����"PF�^�Q�g�	�����"@��H��n�$2	������J��J�� �I@�gbR�@%�{%��A�$ �31)D�����  @�@�$^zxt��2
��+���3���{onj(��x/���3���{onj(��x/���3���{onj @��$^d�R��\�ebR�@%�{%��A�$ �31)D����� d���"P	�^�at @��/
=<:G�@\��q���@o��77��Q@��q���@o��77��Q@��q���@o��77� @���/�[)I��L.�21)D����� d���"P	�^�at2	��LL
���x��0: Ph���#@��.��8j�L�7����Z�( ��8j�L�7����Z�( ��8j�L�7����Z @�@v����$@�@&r��"P	�^�at2	��LL
���x��0:��{&&�TB@�Wb(����B�� PFre5}&���x��M-e�e5}&���x��M-e�e5}&���x��M- @ �����VJ @ ���LL
���x��0:��{&&�TB@�Wb�L�=�B*! �+1��Z@�E��G�(���2��>�M@�����2
��2��>�M@�����2
��2��>�M@���� �]@�Ev+%	 �I��\&&�TB@�Wb�L�=�B*! �+1��@&���I!���FA�
- �����s�Q��\GM�	�& �{sS�@�{GM�	�& �{sS�@�{GM�	�& �{sS��. �"����$�B.�B*! �+1��@&���I!���FA ��x����J��J�� @���xQ���9�(�B�����z����E��������z����E��������z����E�d�x��JIdp!��I!���FA ��x����J��J�� �I@�gbR�@%�{%��A @��BH�(���ep!W�Q�g�	�����"PF�^�Q�g�	�����"PF�^�Q�g�	�����"@��H��n�$2	������J��J�� �I@�gbR�@%�{%��A�$ �31)D�����  @�@�$^zxt��2
��+���3���{onj(��x/���3���{onj(��x/���3���{onj @��$^d�R��\�ebR�@%�{%��A�$ �31)D����� d���"P	�^�at @��/
=<:�M`���a��a��a�u�	m�QXm���U������a�R	��[*>�	�J@��j�t��R	����S�@��{��Kg	,��x_*>�	�J@��j�t��R@�E)��<�>����������|p��W����o�.������|'��3g@��:(�t�Ia�u�����~k���u�
����Sk�, ��<:�F _�����Y@�yt��@��=_O�(��x/��������j�ca�">��]r�`;vl?~|�"��v�!L�:�����#F��o�9>����g������\��N�A���#���x��T�
+ �;4:F w��;�	V@�vht�TF@�Ee��x��/���^{�;�)�b���a��v
��{oS���
��^�5�#����n�o�yS��B���8n��^����7�E�E	� �����7�E�E	� �����7�E�E	� @���xQ��]�Gv�����w�9��^{��[o�d���n��F�=`�����$��T�k��&l���a�V��O�zh�4iRRw�m�	��sO��������n~�
��[��Z'P$�^����V@�/[_�(��x/�h��e+ �����	I@�i4��TS@�E5��Gu�9��#�<2����>�)�"���y��������dML����;�{���d]�Y�pa�g�}�o��d�}����z�d9��[{Moa���[��v@�0��0C�#���x_��v@�0��0C�#���x_��v@�0��0C�# @��/*;������.���zG�k?����;u�Yg�o|�I��.�,|���M��3��#���N���^xa�g��������\�-sb; P�^����\@�/sb; P�^����\@�/sb; P�^��� PY����`����)S��s�=�u�]�s�>��O��n�)��l����&��3����->�b�5�H��[{���rC�l'
! �1:A`H���0�	�B��B�N�>$�vB����� @��/*=����,X���w$8��S����,/��[o�V_}�0o��z���G�n�a�&~����/~��I�I�&�]v����o�%f�L����Q���. �����!�CFmG���x_�C��L@��X��}�� @���H���/������6�l��<>�b��w�>�hx����SO=6�x���~0l���a��WN������m�Y���N'�tR��n&�C���p�i��	�+_�J}���K����!��#�]@�/�!�C& �����,w����@��x2j;"����r @���xQ�!^>x���8 �y|�����f����K��7.u�Qm0&O�>���%����6=�"��������]w�d�G�������o�%f�L����Q���. �����!�CFmG���x_�C��>�$�@IDATL@��X��}�� @���H���/���W�~��,����n�p��������_+����'���3>��O&��f��DVZi�d��1cBL�S��� �2rCFmG���x_�C��L@��X��}��2�>d�vD`����>:@�*/ ���C�|���h���;��|�-����3g��}��������Z����/���������v�!Y�4��
+$���{�p�UW��������	��2j;"����r 0d�}�����r��}t���	��!��#�]@�/�!� Py����?�E��UVY�i�l�A�U#�o�}Xc�5�����N8��0a����������'���������/%�w�uW�v�m��N3�7���W�<j��p��7�����N>�/;r��V��& ��6"�C`�	��eg�eE�E�!�������2��	������ @���	H����.�#z�����[n���S�K|���7�6�p��}�����?��m��i�+G�+B8��d�w��5�M�/���nN��/�B.S-(��x/������{��Z$PT�^���/����M�H�����#�_ @�:/�3��;���Y�f�5�\3����������d�8qbR&�d�}��/��g?_���m�&�����,w�I�jd�}�	W^ye_���'����g��Lc"@� @� @�@���z���� @��xQ�A��.����{��iL�|8��S���\sM�{����O��y����v3�Z-������C9��������Kz��x�#�j @� @�F���|g6lXXo��
�'!@��# ��:cY�#�9sf�d�M�c�}�����___���v�m�d[�i����_|1���Z���c�������������=��F� @� @�@a�]w]I�
!@���xQ�1-������������=&Z��`�i��ia������@)�|�����[&E�8����o|���o�%f @� @� @� @ w���jp��Y!>�">u���^
���_Xm����������[$e�<��p��g��-ZVYe�d����~���'��f��������&�n���������o�%f @� @� @� @ w���j��#���{n1i����.�$��fZ%.�����/}))���[���������k���>��n��C
��~�i���a��WO������� @� @� @� @�@�/r��X���+�g?�����kJ�H6��L|EL�x����Mw�uW�v�m��q�����;.Y���[�N;��,�g����_�?���_=��������'@� @� @� @���$^�g��������]w�&�?���a���kZ�X8����7����b5jT�����83m��0r��d]L��������k$��L�V��&LH�_|��a��1�r������ @� @� @��& �"7J
�>����K/�4Y_r�E�O�������>:�w�y��8�N+Z����?���HV�27�tSXo�����x�����~5���4�����~:�����U�g���� @� @� @��M@�En�J��?�����S��W��7�<l���a����'V4m\�p��g���:�uu}9��l���W�4
�'i�'_�$��i������D���r����J @� @� @�X*�K���`�=�X�k����)S+V�6l��p��W�_32X�3f��|�3����X}[�W��V���Z��2 @� @� @�,������S����E���^��;�I�jL��e�]����6�t�.����������#�W\qE�6w�u�0~����}H{�"@� @� @� @��^$^�*��	�j���E�O�f���\s��+G6�p�%j']8���O�|0���+a��a�M6	���~�X��~k/3�� @� @� @� �Q@�EG @� @� @� @��H���V @� @� @� @�@G�il @� @� @� @�. �bp[	 @� @� @� @�$^t��� @� @� @� 0�����}l%@� @� @� @�t�x��� @� @� @� @���/��� @� @� @� �Q@�EG�'���'�����	o�q�t�M���k�Zx�����O>V\q�����'l���a��VZ��b�����*������^���1>�V]u���p��a�����^k��f=�W_}����sGT$P��94��*���[o������������s��3B��u�Y'l��Fa��V����w{=wDE�?~x����G���o��L�-
O=�T�5kVx�;�Y�����.IMe�n��q,�@�����[���
����S����Z+�1"��mo����	����� �E`�?8L�k�k������e��/��Kd���/��>���~������k�N:���o��������c	TP���k��SO�-�1�6F���~����_�f>��n����V[�mo�������;s[�`��-��&P1��_����������N<���K/����'l��;����<}~o�t�A���g/��2�XA}$��[o���c����������y����{���m�z�����.�,s[�`��-��&P!�K.����[,����M�����F��^{m�������q>�M����3w4�{my���@$@�
/Um"@�@�
,�5lm��a�E��$^�y��Mu[/����{-~�m���n���@�n����_�6b��0n���A9?���>�$+u�}N�8q��������CT\`��	��3�������j<�����#Gvm3������6��^���N�_~��7�m���s�=��^��{\w��'g����L;U�@E���)>�q��:My���n�S��'�/��KGyd��5jT���^�&�{my�7h�m$@�J' ��tC���%�������
����>�h����^:�����;�X��_����y��qG6���~�)�qc3��m����)S:�v�am���4�����c[qC��
�3	T\ �������K�N�=�PG�y�����f�m���~q��_�w��n��~�'���=������xq�UW
���t:���_��'kt��n��~�'�/�o�y�M��[�;%^�}N���~S�I����W��v�a�1����n���<�}������^'�	 @���
H�(���9K!0i��I�.���k�B&�b��g����d���_����&���n��q�H >]����v�mW{������?�O��qo����N7�x��<�E��s����;v@�N�4�����Z&�O1�2�q>�B��W^Ib����t�N_��J�sLS��������|�:m��Z�27�^<�w��n��~�'���������1�-�"�R=�q>����7$����K/P�����n������1�1�]���w�����n��99���v�J}$����p��5�x���s�i���F�k�vS��
��k�d �����<5�E�@�^~����8�"�q3g�L����W4����.�x��u���O�R.�Rv������8���;��@	�'M��)�Z&��i7�K���o~3����o��fL�j7�z��M������+V����;��@��?�)���1���w���kL�j�b�T�oH<�?��s����4nM���������;�����	'����8��x�,e��g��V����1��My��n��'�xnM�h|�L�S���������#P�������t��O�=��/����0�\�����DV @��@@��2@�$��_��>�"}Q��$^��t������������)��Z��L��Z!3��C��w���'�tR��w������n��^��O���]�hQ�H-����@���D�����:M7�pCR6��0a���g�yfS��.�l@����_�����)��Z��L�@����������/�;�����&����[��z
�w{���Z���/n:/��N�:�}N���^�K=Uh��O?���1�_)�����y�k���v�d P~��CG@�@��/W7e������y����Z��.��n�
Z>~�N���FMOy��n�<�~H�|�������tL���5��5���/���h�9��(���K��<�~�O�J�c��g�A	~���x�_��N�F�j*�p���"M�_�����>����K�m��Z�� ���suL�H'd
�xq�]w%�b�������oc?��[��VS���kj��>������]�b��7��Y"�sr���|`*��@�.O'Cv��������r�������J^��}�-��bM @�@5$^Ts\-��rKr�&�(�_�L�<�^*}�[��<���Yg������c��i���5n��
��5�G ��=��Cj��(�K�{����j�o@������H����V(]��K������w{����W�9s��n����#�<2(A|�U:��/U�S������t�Z��������n}��@?
������g��m��VI��x�z���p�=�t%L'{�W�����K�m�@�
�_���N;����99��z>0	TD�5y1�{i���������� @�@�$^{|�������l������������-����.j�A���%i�e����~S�x����n���O�	�����fOO�}��.���O�I�M���)���m�'@��@��Z|�M:>�{���c�=���5q*]�1������K�n��O�����W_���}�q��x!����N���=����#�����n���O�*_�����;�N�����u�O��Z<w�����y���c��	4b,��}����M���o�g�}��`���������w{��m= P~��CG@�@�3f��=�������N_�uK�8����.�N�:����\sMS�k��6)�w{I�f�$�����_��k}�h�B%��~�I�oLy��h�'����K�'�����o�y-��il!>5#]&��6=��sMu�8���J��%
�!@�6k���'������J���w�1����e:����:��������Z��%
�!���Z;}^>���j;��C�����o��W~5��>'��^��>	�������$������k���?���6�l�l�1�n�t��:My�k���N���(�������# @`)�7k�%^}��M|�'gt���w��T'��������	()���8���/&���������f�c���_���^��[M��b������K�<0��F\���3g���������M7�4�L�����F��3�����k��e�*���\�S��������K�,�i�����u�_���^��(C��������=q��,y���no@�� �g{��W�����1Q�[����������w{���'@��% ��Z��h�A }!�-����n����`�6���WS����I���K6C�����S\����rJS���z������������c��^��:�l��u����]���?��|����q��]vY������3Q���{���:y��4l�@��s�9M�������l�A��N;��I�u�>�`R/������S�����96=�m�/e��@�S�����K��<�~H'T�k��+:���n���N@�������a+ @���H���P:zH_�uK���1N�����~���g��T����a3t��N�7s�������^���:�W6�2��m*����>�4�kl���F�>	h�3gNS��8��x���+-^���~�T����P������Q�F%E�n/i��>x�����4�z�K���N��h���\��������k����������-���k�~���!��=�kw�_�hQR.�sr��%5C�OZ_'���xn��~P�������_���~�g�\��NOy�k���t_� @���xQ��t4� ��P���/�{c���������O?=��w{I�fh+o���z&�b��g�P�����O�P��Vt�)�w{��o=�~x��j��3�sL�;��Nm�=�l:w7���O���O�T��;��D���������TX ��=����K�'�dM�H�{ �/Z�l�������^��}*���;6��o����S�Li*���^ziR>�sr��%5C�O��������n��������~�5��;�P�O�kLy�k���F?} @���xQ�1uD,�@��.~vK���nO�����6��� �R�1��^�]���"O�o��IO<�������'c�����g��_��/dS��5��I�@w��3g��������p���r|Gtz��w��ll&]'>��1��^�]��U����j��{���-E/���Y�s�=����v�)�x�G{�v}�g��j����Y�fue7n\S|r�!I����y��t��>H���������W^ye�*�y���x����n/�� @�r/*7���%h\���n��vX���t�]�%\z�_~yR'����� �$�zs4���#:&]���g�n��O<���N���[R/��1��^�]�d�?~=��������t��W'���|���M?�/�������������@�xL���'�����_���~Ty|Q�i���M�H�� ����G���El��D|uAc����w{�~�$���O�9��#�R�&C�Z4������^��>	 @���	H����:"�P }s�[�����t3'}���n��_7������y��4l���@�R���Nj�������u�M���k���Bu�z����/S��5��I�@v�����)�<���������%�B-3��H��c��MJ��^��}(�~�D��SO=�v��g��/���X/]n��9�^�}��D��@���EP:�_~���T��%
�!@ �@����*�>'��^�T�@Ev�}���k�UA����oo�3a���h����n/�� @�r/*7���%H�<��x��.��{�;�7^���q�]w%E�n/i���_���H���U ��	��,}�6>�"����Q�F5U�����- �U����o:'��A7��S�6m��l�6=��Mu�8���J��%
�!���s���������E�u�M�N,�#]'���vF��x������y�7�@� �g�^\����_�����3��s�1I������^�Q3 @�@�$^TnHK*�����x���./��M_�����������n}��@�,\��6z������������G��!1i���?�������n/��y�&���/��M���>�v�������nSL�J��[l�T���Oo�_�v������:��zkR%������C�tl.�|:�b��qM��H�6�'c4��N����n�[_l'Pe��s��������5����3n��7�)t�)�sr��5���@�
\p���5�g�:�����sO�:y�k����� PZ��:'@ /������-�">N8]�_�B�n�o��_;+��^��(@��������)Vc��w�yK|��W3���6m��m�~	{��76������-�3����7M���	=�PS��T�����l�d�����EQz���t��	��@|�GL���_����u}���-���e/���d[������/kc���k�����5�\�������zk����>Mu�>'��^Sg-�3����x=�m��L�������J����n/�� @�r/*7���%H_�uK��m����Mw�����n����P4����
}&�|M�]�����vL�7������+��K?�"���^H�����kj��>�3gNS��/W�z��AZ��������i�����-����=�����������o��n��}�H���i�O�K�{��	��Z�}������H��55n�@�	<��3M��^���o��~������b����y�7���H������r�c?������;���O?�tS������^Sg- @���xQ��t �*��9�%�����x`��@���J-�:/�~�G��^������O>�s1�~��_�|h�o�Pl��l�^��.ZI+��^��XI���_���<��s;��w�=��C����b�;�c2E����q�a�5�����y����l @ H�],�"V��J�[�]�rS�LiJ��`�
j�K��)��Z��L��F�����z���K�x=���>'��^���	��@��!�����z�&�O��i������y�k����������J�� @`i�7[�$^,X��o����W����kI7���I��:m���F�>	����{���1N'L�������z��^��f���\����������8���7�4}��^S������^; �b����1����d@�N�-�o��������/�^���!��T&&h-\���~������$K�x�������?�)���{�mJ�������My��n����.�h@|�y���7�x���G?���r1��My���n�]��#�/�iv������{�QO�N��n=w�{J]����n/}L�	 @���H���X:zH_�eI���i}�s��������~�E`�B��������^�m��E����������-Z�6�G�Q���O���:��;���^��@�O����
8�������~��]�n��v��ip�$����1�c�Q�F
�W�6q��F��y�7`V �$�$���q�7 �����eO�/�c��_���NS��u����A ��!�]��x^���}�������k/��~�?�c��@|�W:���|���GPq{|
]�)�{my����� @���xQ���srh\�����q��K�v_������L�W�!���m�'��~������%^D�y�����w��7�Z�<��j���My�7��l#Pu���������ez9����l�>}z-�=H��4������n/��y��4�"��O?��L��.��/i�a�R���4o�@_	��?��ek�sp��SO=���5���>'��^�>[G������Z��Ck|�[>���M��ny�k���~[�J��A@�E?��c$@`P�t�D����L3f���wG����b"����37�w{�w� �
��t�����{d;M�����>��.b����u�]�5���~��5��I�_n���A�%6�|�A�L����9���:&Y���1�u�����U�@�	���4���G��|��&M�������x�p�Yg��c��Ny��u�����`�cu�w�?�2���}N��������
��;�v��v���I��_~y����^[��e>	 @����{��"�D�K!��]���G
=�PXy����/`�������k��j����	��(�������<�L�p�
�1������+
�!����M*/���/��S�������6�,������8������O<?�*���+�x�d�M����_��z��JtX�j����=�Xx���b�������w�3����l_�����/�?a"L�6-���J���������|������:�V`����������^>|x�����"�{my���1�C�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @� @� @���xQ��� @� @� @� @�D/J4X�J� @� @� @�K@�E��Co @� @� @� @��	H�(�`�* @� @� @� P,���!@� @� @� @�J$ ��D��� @� @� @� @�@�$^k<�� @� @� @�(����
�� @� @`y
�������O>�dx��'�
+�������#G�
6� ����K��E��3f�Gy$��93l������`�t�M��+��Dm��/��R�����~���|������f�mV_}�%nO @� @�Y$^dQR� @�},��[o�������O�f��(1f��p�	'��:Z�a���a��������X�������x�;:�ilx��������/~�����'�xb��W��Xc��� @� @� �4/�FO] @������[Ol�r���
��v[�z���������>���.�H��O���/>����6�^~�������_�O������:������ @� @�z�x��* @�������~�5������o�6����a����W��U��w���|��r���>��r���a��Qa�M6	��M����y�������1�i]\���~>��OX���3�<3�o�l�M�����j��6�� @� @�z�x���: @�������f�����a�-�h:����}�)a"&d�d��T����>��p�w4V�=��#�w�ya���K����+��_�bS���{������L�y��W�����0g��d������~�����k&�����O}��	?���������1C� @� @`i$^,��� @�����E��*������N9��d9=s�9��#�<2Y���}/|���L�������>�$����[�����
+���k����[a��1��K/m�
7�|s�y������??z���rL�������+���k�L�2%|�h,��D������� @� @�K# �bi��%@� @�@�^������-9����>L�4��k:.\N;������������������d���|$�{��I[O?�t�p�
����g�}6l�������;\u�U��'?��0q��d�����?u#Y�2���|&y���k��|�����R�" @� @���/�)@� @�������O�hL#G������O�Xg�u����I?�b�v�'O�N����~4�y���r�o�yx��G��,�x�;���v�q�p�m�%��f�z�����/�M7�����ve�#@� @� �����^��!@� @�@�\p���_�r���j������^O��v�m��+��������O�hl�O�8��C�?������l��>Yi���O�>|x������{n�l� @� @��P
H�Jm�"@� @�@��z����o}�����>l�����~6|�K_
1!#=��V��W,��Z��F����/l��6Is����sL�l� @� @��P
H�Jm�"@� @�@I~����o~��a��Y]�`��	�+_�JR��+��'e$+z����{�	7�|s�)�f.���p��6} @� @�R�C�mg @�(�@|�EL~���~n���p���w<��O>����X��[n	���KRv�]w
�������3���ox�{�~����~0�v������;.Y6C� @� @`($^��} @� @�Bs��	��zk=	��K/m:�#F�3f��=���a������c�����'�K:3��_m��=���������s���������a���j[�J @� @��H��EM @�����E�BL�x������rHXi���������?��0u��d�����&�lb;���J�~�v�'ON�;��}��!�������I+��B��:��b�G���w�5������^>���I�����l0C� @� @`	$^,!�� @����T�c�=69����+l����r��9���<��d����'>����>��0e��d�w�>���&��3���J=�b��y���s���W_�����;�����x�}�������8����?��O��/��bx����,�!@� @� �����^��#@� @�@�b��?��?$G�q��W&O�H6����1c�%�\��~�����������_8��d���o��������=Y��9��#�������u/���d��k�
��/��,�=:��7�i�D�?��Oa���J����N��[nI�� @� @�X�K��. @�*,��[o�u�]7y�G<��;,�t�I�]�zWr�.�'I�;6Y7r���.�&y��7�I1��1�2�]vY��*��.�������>�Q��y����}�C��Z�>�������������_���a���j�
��~{�o����Y��uW\qE����d� @� @����x�4z� @� @��������{�9�(�S#6�p����/�����)9#���~������^L���G>��..�1��|�`��0y���~�H�~�i�5��$��S��,�wm�l�M>|x�>}z�	���C	��~z�y @� @�K% �b��T&@� @�@����;��L:l���5bbF���{�	����:uj���{������o����z{3g��T$Y_Gr�5�����m�:3 @� @��V@���
�O� @��>�	����������h7�`��O��O!&i�'a6���k���O]t��'e4������N[m�UcU�������?>\r�%��+�'j�W��6M @� @���x���� @� Pa��������_�(6�x���[�5�\����;wn��i��������{�����k��������)SB��h�����#����VXa���S� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�tz��IDAT�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7���l'@� @� @� @�t�x��j @� @� @� @�@7��o���'y�IEND�B`�
pgbench-testing.shtext/x-sh; charset=US-ASCII; name=pgbench-testing.shDownload
update-only.sqlapplication/octet-stream; name=update-only.sqlDownload
#7Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#6)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Pavel!

On Fri, Jul 29, 2022 at 11:12 AM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

I ran the following benchmark on master branch (15) vs patch (15-lock):

On the 36-vcore AWS server, I've run an UPDATE-only pgbench script with 50 connections on pgbench_tellers with 100 rows. The idea was to introduce as much as possible concurrency for updates but avoid much clients being in a wait state.
Indexes were not built to avoid index-update-related delays.
Done 2 runs each consisting of 6 series of updates (1st run: master-patch-master-patch-master-patch, 2nd run patch-master-patch-master-patch-master)
Each series started a fresh server and did VACUUM FULL to avoid bloating heap relation after the previous series to affect the current. It collected data for 10 minutes with first-minute data being dropped.
Disk-related operations were suppressed where possible (WAL, fsync etc.)

postgresql.conf:
fsync = off
autovacuum = off
full_page_writes = off
max_worker_processes = 99
max_parallel_workers = 99
max_connections = 100
shared_buffers = 4096MB
work_mem = 50MB

Attached are pictures of 2 runs, shell script, and SQL script that were running.
According to htop all 36-cores were loaded to ~94% in each series

I'm not sure how to interpret the results. Seems like a TPS difference between runs is significant, with average performance with lock-patch (15lock) seeming a little bit faster than the master (15).

Could someone try to repeat this on another server? What do you think?

Thank you for your benchmarks. The TPS variation is high, and run
order heavily affects the result. Nevertheless, I think there is a
small but noticeable positive effect of the patch. I'll continue
working on the patch bringing it into more acceptable shape.

------
Regards,
Alexander Korotkov

#8vignesh C
vignesh21@gmail.com
In reply to: Alexander Korotkov (#1)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Fri, 1 Jul 2022 at 16:49, Alexander Korotkov <aekorotkov@gmail.com> wrote:

Hackers,

When working in the read committed transaction isolation mode
(default), we have the following sequence of actions when
tuple_update() or tuple_delete() find concurrently updated tuple.

1. tuple_update()/tuple_delete() returns TM_Updated
2. tuple_lock()
3. Re-evaluate plan qual (recheck if we still need to update/delete
and calculate the new tuple for update)
4. tuple_update()/tuple_delete() (this time should be successful,
since we've previously locked the tuple).

I wonder if we should merge steps 1 and 2. We could save some efforts
already done during tuple_update()/tuple_delete() for locking the
tuple. In heap table access method, we've to start tuple_lock() with
the first tuple in the chain, but tuple_update()/tuple_delete()
already visited it. For undo-based table access methods,
tuple_update()/tuple_delete() should start from the last version, why
don't place the tuple lock immediately once a concurrent update is
detected. I think this patch should have some performance benefits on
high concurrency.

Also, the patch simplifies code in nodeModifyTable.c getting rid of
the nested case. I also get rid of extra
table_tuple_fetch_row_version() in ExecUpdate. Why re-fetch the old
tuple, when it should be exactly the same tuple we've just locked.

I'm going to check the performance impact. Thoughts and feedback are welcome.

The patch does not apply on top of HEAD as in [1]http://cfbot.cputube.org/patch_41_4099.log, please post a rebased patch:
=== Applying patches on top of PostgreSQL commit ID
eb5ad4ff05fd382ac98cab60b82f7fd6ce4cfeb8 ===
=== applying patch
./0001-Lock-updated-tuples-in-tuple_update-and-tuple_del-v1.patch
patching file src/backend/executor/nodeModifyTable.c
...
Hunk #3 FAILED at 1376.
...
1 out of 15 hunks FAILED -- saving rejects to file
src/backend/executor/nodeModifyTable.c.rej

[1]: http://cfbot.cputube.org/patch_41_4099.log

Regards,
Vignesh

#9Pavel Borisov
pashkin.elfe@gmail.com
In reply to: vignesh C (#8)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Vignesh!

On Wed, 4 Jan 2023 at 12:41, vignesh C <vignesh21@gmail.com> wrote:

On Fri, 1 Jul 2022 at 16:49, Alexander Korotkov <aekorotkov@gmail.com> wrote:

Hackers,

When working in the read committed transaction isolation mode
(default), we have the following sequence of actions when
tuple_update() or tuple_delete() find concurrently updated tuple.

1. tuple_update()/tuple_delete() returns TM_Updated
2. tuple_lock()
3. Re-evaluate plan qual (recheck if we still need to update/delete
and calculate the new tuple for update)
4. tuple_update()/tuple_delete() (this time should be successful,
since we've previously locked the tuple).

I wonder if we should merge steps 1 and 2. We could save some efforts
already done during tuple_update()/tuple_delete() for locking the
tuple. In heap table access method, we've to start tuple_lock() with
the first tuple in the chain, but tuple_update()/tuple_delete()
already visited it. For undo-based table access methods,
tuple_update()/tuple_delete() should start from the last version, why
don't place the tuple lock immediately once a concurrent update is
detected. I think this patch should have some performance benefits on
high concurrency.

Also, the patch simplifies code in nodeModifyTable.c getting rid of
the nested case. I also get rid of extra
table_tuple_fetch_row_version() in ExecUpdate. Why re-fetch the old
tuple, when it should be exactly the same tuple we've just locked.

I'm going to check the performance impact. Thoughts and feedback are welcome.

The patch does not apply on top of HEAD as in [1], please post a rebased patch:
=== Applying patches on top of PostgreSQL commit ID
eb5ad4ff05fd382ac98cab60b82f7fd6ce4cfeb8 ===
=== applying patch
./0001-Lock-updated-tuples-in-tuple_update-and-tuple_del-v1.patch
patching file src/backend/executor/nodeModifyTable.c
...
Hunk #3 FAILED at 1376.
...
1 out of 15 hunks FAILED -- saving rejects to file
src/backend/executor/nodeModifyTable.c.rej

[1] - http://cfbot.cputube.org/patch_41_4099.log

The rebased patch is attached. It's just a change in formatting, no
changes in code though.

Regards,
Pavel Borisov,
Supabase.

Attachments:

v2-0001-Lock-updated-tuples-in-tuple_update-and-tuple_del.patchapplication/octet-stream; name=v2-0001-Lock-updated-tuples-in-tuple_update-and-tuple_del.patchDownload
From f5e5764090c79e44be5fd58d9587b59384c955b0 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH v2] Lock updated tuples in tuple_update() and tuple_delete()

---
 src/backend/access/heap/heapam_handler.c |  99 ++++++++--
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 227 ++++++++---------------
 src/include/access/tableam.h             |  20 +-
 4 files changed, 181 insertions(+), 171 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..dfc4eb1d3b5 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,6 +45,12 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -299,14 +305,38 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	if (result == TM_Updated && lockUpdated)
+	{
+		bool		updated = false;
+
+		if (!ItemPointerIndicatesMovedPartitions(&tmfd->ctid))
+			updated = true;
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, updated);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +344,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,14 +372,34 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	if (result == TM_Updated && lockUpdated)
+	{
+		bool		updated = false;
+
+		if (!ItemPointerIndicatesMovedPartitions(&tmfd->ctid))
+			updated = true;
+
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, updated);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
 static TM_Result
-heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
-				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
-				  LockWaitPolicy wait_policy, uint8 flags,
-				  TM_FailureData *tmfd)
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
@@ -363,16 +414,30 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!updated)
+	{
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	}
+	else
+	{
+		result = TM_Updated;
+	}
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
-		ReleaseBuffer(buffer);
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
@@ -559,6 +624,16 @@ tuple_lock_retry:
 	return result;
 }
 
+static TM_Result
+heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
+				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+				  LockWaitPolicy wait_policy, uint8 flags,
+				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
+}
+
 
 /* ------------------------------------------------------------------------
  * DDL related callbacks for heap AM.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..f3476697ff0 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								false, NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								false, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 56398c399c9..1d716e14526 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1284,7 +1284,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1294,7 +1295,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockUpdated,
+							  lockedSlot);
 }
 
 /*
@@ -1439,7 +1442,12 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot(), slot);
 
 		switch (result)
 		{
@@ -1498,81 +1506,28 @@ ldelete:
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1629,7 +1584,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1904,7 +1859,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt, bool lockUpdated,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2038,7 +1994,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockUpdated, lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2189,7 +2146,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2242,12 +2199,32 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+		bool		lockUpdated;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			lockUpdated = true;
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			lockUpdated = false;
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, lockUpdated, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2300,12 +2277,12 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
 					 * Already know that we're going to need to do EPQ, so
@@ -2313,73 +2290,19 @@ redo_act:
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2623,7 +2546,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2830,7 +2753,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   false, NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2848,7 +2772,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   false, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3796,7 +3721,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..e9a4add3a91 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +528,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1461,11 +1465,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockUpdated, lockedSlot);
 }
 
 /*
@@ -1506,12 +1512,14 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, bool lockUpdated,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockUpdated, lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#10Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Pavel Borisov (#9)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Wed, 4 Jan 2023 at 12:52, Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Hi, Vignesh!

On Wed, 4 Jan 2023 at 12:41, vignesh C <vignesh21@gmail.com> wrote:

On Fri, 1 Jul 2022 at 16:49, Alexander Korotkov <aekorotkov@gmail.com> wrote:

Hackers,

When working in the read committed transaction isolation mode
(default), we have the following sequence of actions when
tuple_update() or tuple_delete() find concurrently updated tuple.

1. tuple_update()/tuple_delete() returns TM_Updated
2. tuple_lock()
3. Re-evaluate plan qual (recheck if we still need to update/delete
and calculate the new tuple for update)
4. tuple_update()/tuple_delete() (this time should be successful,
since we've previously locked the tuple).

I wonder if we should merge steps 1 and 2. We could save some efforts
already done during tuple_update()/tuple_delete() for locking the
tuple. In heap table access method, we've to start tuple_lock() with
the first tuple in the chain, but tuple_update()/tuple_delete()
already visited it. For undo-based table access methods,
tuple_update()/tuple_delete() should start from the last version, why
don't place the tuple lock immediately once a concurrent update is
detected. I think this patch should have some performance benefits on
high concurrency.

Also, the patch simplifies code in nodeModifyTable.c getting rid of
the nested case. I also get rid of extra
table_tuple_fetch_row_version() in ExecUpdate. Why re-fetch the old
tuple, when it should be exactly the same tuple we've just locked.

I'm going to check the performance impact. Thoughts and feedback are welcome.

The patch does not apply on top of HEAD as in [1], please post a rebased patch:
=== Applying patches on top of PostgreSQL commit ID
eb5ad4ff05fd382ac98cab60b82f7fd6ce4cfeb8 ===
=== applying patch
./0001-Lock-updated-tuples-in-tuple_update-and-tuple_del-v1.patch
patching file src/backend/executor/nodeModifyTable.c
...
Hunk #3 FAILED at 1376.
...
1 out of 15 hunks FAILED -- saving rejects to file
src/backend/executor/nodeModifyTable.c.rej

[1] - http://cfbot.cputube.org/patch_41_4099.log

The rebased patch is attached. It's just a change in formatting, no
changes in code though.

One more update of a patchset to avoid compiler warnings.

Regards,
Pavel Borisov

Attachments:

v3-0001-Lock-updated-tuples-in-tuple_update-and-tuple_del.patchapplication/octet-stream; name=v3-0001-Lock-updated-tuples-in-tuple_update-and-tuple_del.patchDownload
From fd5aa0729d6f8152f2e4b66160eaef6be81c3965 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH v3] Lock updated tuples in tuple_update() and tuple_delete()

---
 src/backend/access/heap/heapam_handler.c | 101 ++++++++--
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 227 ++++++++---------------
 src/include/access/tableam.h             |  20 +-
 4 files changed, 182 insertions(+), 172 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..2d8e664f3be 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,6 +45,12 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -299,14 +305,38 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	if (result == TM_Updated && lockUpdated)
+	{
+		bool		updated = false;
+
+		if (!ItemPointerIndicatesMovedPartitions(&tmfd->ctid))
+			updated = true;
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, updated);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +344,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,18 +372,38 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	if (result == TM_Updated && lockUpdated)
+	{
+		bool		updated = false;
+
+		if (!ItemPointerIndicatesMovedPartitions(&tmfd->ctid))
+			updated = true;
+
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, updated);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
 static TM_Result
-heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
-				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
-				  LockWaitPolicy wait_policy, uint8 flags,
-				  TM_FailureData *tmfd)
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
+	Buffer		buffer = InvalidBuffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
 
@@ -363,16 +414,30 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!updated)
+	{
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	}
+	else
+	{
+		result = TM_Updated;
+	}
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
-		ReleaseBuffer(buffer);
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
@@ -559,6 +624,16 @@ tuple_lock_retry:
 	return result;
 }
 
+static TM_Result
+heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
+				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+				  LockWaitPolicy wait_policy, uint8 flags,
+				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
+}
+
 
 /* ------------------------------------------------------------------------
  * DDL related callbacks for heap AM.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..f3476697ff0 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								false, NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								false, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 56398c399c9..1d716e14526 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1284,7 +1284,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1294,7 +1295,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockUpdated,
+							  lockedSlot);
 }
 
 /*
@@ -1439,7 +1442,12 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot(), slot);
 
 		switch (result)
 		{
@@ -1498,81 +1506,28 @@ ldelete:
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1629,7 +1584,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1904,7 +1859,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt, bool lockUpdated,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2038,7 +1994,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockUpdated, lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2189,7 +2146,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2242,12 +2199,32 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+		bool		lockUpdated;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			lockUpdated = true;
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			lockUpdated = false;
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, lockUpdated, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2300,12 +2277,12 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
 					 * Already know that we're going to need to do EPQ, so
@@ -2313,73 +2290,19 @@ redo_act:
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2623,7 +2546,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2830,7 +2753,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   false, NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2848,7 +2772,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   false, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3796,7 +3721,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..e9a4add3a91 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +528,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1461,11 +1465,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockUpdated, lockedSlot);
 }
 
 /*
@@ -1506,12 +1512,14 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, bool lockUpdated,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockUpdated, lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#11Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#10)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Pavel!

On Wed, Jan 4, 2023 at 3:43 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

On Wed, 4 Jan 2023 at 12:52, Pavel Borisov <pashkin.elfe@gmail.com> wrote:

On Wed, 4 Jan 2023 at 12:41, vignesh C <vignesh21@gmail.com> wrote:

On Fri, 1 Jul 2022 at 16:49, Alexander Korotkov <aekorotkov@gmail.com> wrote:

Hackers,

When working in the read committed transaction isolation mode
(default), we have the following sequence of actions when
tuple_update() or tuple_delete() find concurrently updated tuple.

1. tuple_update()/tuple_delete() returns TM_Updated
2. tuple_lock()
3. Re-evaluate plan qual (recheck if we still need to update/delete
and calculate the new tuple for update)
4. tuple_update()/tuple_delete() (this time should be successful,
since we've previously locked the tuple).

I wonder if we should merge steps 1 and 2. We could save some efforts
already done during tuple_update()/tuple_delete() for locking the
tuple. In heap table access method, we've to start tuple_lock() with
the first tuple in the chain, but tuple_update()/tuple_delete()
already visited it. For undo-based table access methods,
tuple_update()/tuple_delete() should start from the last version, why
don't place the tuple lock immediately once a concurrent update is
detected. I think this patch should have some performance benefits on
high concurrency.

Also, the patch simplifies code in nodeModifyTable.c getting rid of
the nested case. I also get rid of extra
table_tuple_fetch_row_version() in ExecUpdate. Why re-fetch the old
tuple, when it should be exactly the same tuple we've just locked.

I'm going to check the performance impact. Thoughts and feedback are welcome.

The patch does not apply on top of HEAD as in [1], please post a rebased patch:
=== Applying patches on top of PostgreSQL commit ID
eb5ad4ff05fd382ac98cab60b82f7fd6ce4cfeb8 ===
=== applying patch
./0001-Lock-updated-tuples-in-tuple_update-and-tuple_del-v1.patch
patching file src/backend/executor/nodeModifyTable.c
...
Hunk #3 FAILED at 1376.
...
1 out of 15 hunks FAILED -- saving rejects to file
src/backend/executor/nodeModifyTable.c.rej

[1] - http://cfbot.cputube.org/patch_41_4099.log

The rebased patch is attached. It's just a change in formatting, no
changes in code though.

One more update of a patchset to avoid compiler warnings.

Thank you for your help. I'm going to provide the revised version of
patch with comments and commit message in the next couple of days.

------
Regards,
Alexander Korotkov

#12Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#11)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Wed, Jan 4, 2023 at 5:05 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Wed, Jan 4, 2023 at 3:43 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

One more update of a patchset to avoid compiler warnings.

Thank you for your help. I'm going to provide the revised version of
patch with comments and commit message in the next couple of days.

The revised patch is attached. It contains describing commit message,
comments and some minor code improvements.

------
Regards,
Alexander Korotkov

Attachments:

0001-Allow-locking-updated-tuples-in-tuple_update-and--v4.patchapplication/octet-stream; name=0001-Allow-locking-updated-tuples-in-tuple_update-and--v4.patchDownload
From de48e72f34fcc7e9cecc7742ebb640733f325a8e Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

 1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
    returns TM_Updated.
 2. Lock tuple with tuple_lock().
 3. Re-evaluate plan qual (recheck if we still need to update/delete and
    calculate the new tuple for update).
 4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
    This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the lastest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.
Also, we now table_tuple_fetch_row_version() in ExecUpdate(), because old
version of row should be always the same that we've previously locked.

Discussion: https://postgr.es/m/20230102154240.GL1153%40telsasoft.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C
---
 src/backend/access/heap/heapam_handler.c | 489 +++++++++++++----------
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 244 +++++------
 src/include/access/tableam.h             |  26 +-
 4 files changed, 392 insertions(+), 373 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..fdf47b7e1c4 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 								   HeapTuple tuple,
 								   OffsetNumber tupoffset);
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
 
 static const TableAmRoutine heapam_methods;
@@ -299,14 +305,35 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	/* Lock concurrently updated tuple if we were told to do so */
+	if (result == TM_Updated && lockUpdated)
+	{
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +341,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,6 +369,22 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/* Lock concurrently updated tuple if we were told to do so */
+	if (result == TM_Updated && lockUpdated)
+	{
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
@@ -350,213 +394,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
 {
-	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
-	TM_Result	result;
-	Buffer		buffer;
-	HeapTuple	tuple = &bslot->base.tupdata;
-	bool		follow_updates;
-
-	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
-	tmfd->traversed = false;
-
-	Assert(TTS_IS_BUFFERTUPLE(slot));
-
-tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
-
-	if (result == TM_Updated &&
-		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
-	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-		ReleaseBuffer(buffer);
-
-		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
-		{
-			SnapshotData SnapshotDirty;
-			TransactionId priorXmax;
-
-			/* it was updated, so look at the updated version */
-			*tid = tmfd->ctid;
-			/* updated row should have xmin matching this xmax */
-			priorXmax = tmfd->xmax;
-
-			/* signal that a tuple later in the chain is getting locked */
-			tmfd->traversed = true;
-
-			/*
-			 * fetch target tuple
-			 *
-			 * Loop here to deal with updated or busy tuples
-			 */
-			InitDirtySnapshot(SnapshotDirty);
-			for (;;)
-			{
-				if (ItemPointerIndicatesMovedPartitions(tid))
-					ereport(ERROR,
-							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
-							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
-
-				tuple->t_self = *tid;
-				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
-				{
-					/*
-					 * If xmin isn't what we're expecting, the slot must have
-					 * been recycled and reused for an unrelated tuple.  This
-					 * implies that the latest version of the row was deleted,
-					 * so we need do nothing.  (Should be safe to examine xmin
-					 * without getting buffer's content lock.  We assume
-					 * reading a TransactionId to be atomic, and Xmin never
-					 * changes in an existing tuple, except to invalid or
-					 * frozen, and neither of those can match priorXmax.)
-					 */
-					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-											 priorXmax))
-					{
-						ReleaseBuffer(buffer);
-						return TM_Deleted;
-					}
-
-					/* otherwise xmin should not be dirty... */
-					if (TransactionIdIsValid(SnapshotDirty.xmin))
-						ereport(ERROR,
-								(errcode(ERRCODE_DATA_CORRUPTED),
-								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
-												 SnapshotDirty.xmin,
-												 ItemPointerGetBlockNumber(&tuple->t_self),
-												 ItemPointerGetOffsetNumber(&tuple->t_self),
-												 RelationGetRelationName(relation))));
-
-					/*
-					 * If tuple is being updated by other transaction then we
-					 * have to wait for its commit/abort, or die trying.
-					 */
-					if (TransactionIdIsValid(SnapshotDirty.xmax))
-					{
-						ReleaseBuffer(buffer);
-						switch (wait_policy)
-						{
-							case LockWaitBlock:
-								XactLockTableWait(SnapshotDirty.xmax,
-												  relation, &tuple->t_self,
-												  XLTW_FetchUpdated);
-								break;
-							case LockWaitSkip:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									/* skip instead of waiting */
-									return TM_WouldBlock;
-								break;
-							case LockWaitError:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									ereport(ERROR,
-											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
-											 errmsg("could not obtain lock on row in relation \"%s\"",
-													RelationGetRelationName(relation))));
-								break;
-						}
-						continue;	/* loop back to repeat heap_fetch */
-					}
-
-					/*
-					 * If tuple was inserted by our own transaction, we have
-					 * to check cmin against cid: cmin >= current CID means
-					 * our command cannot see the tuple, so we should ignore
-					 * it. Otherwise heap_lock_tuple() will throw an error,
-					 * and so would any later attempt to update or delete the
-					 * tuple.  (We need not check cmax because
-					 * HeapTupleSatisfiesDirty will consider a tuple deleted
-					 * by our transaction dead, regardless of cmax.)  We just
-					 * checked that priorXmax == xmin, so we can test that
-					 * variable instead of doing HeapTupleHeaderGetXmin again.
-					 */
-					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
-						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
-					{
-						tmfd->xmax = priorXmax;
-
-						/*
-						 * Cmin is the problematic value, so store that. See
-						 * above.
-						 */
-						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
-						return TM_SelfModified;
-					}
-
-					/*
-					 * This is a live tuple, so try to lock it again.
-					 */
-					ReleaseBuffer(buffer);
-					goto tuple_lock_retry;
-				}
-
-				/*
-				 * If the referenced slot was actually empty, the latest
-				 * version of the row must have been deleted, so we need do
-				 * nothing.
-				 */
-				if (tuple->t_data == NULL)
-				{
-					Assert(!BufferIsValid(buffer));
-					return TM_Deleted;
-				}
-
-				/*
-				 * As above, if xmin isn't what we're expecting, do nothing.
-				 */
-				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-										 priorXmax))
-				{
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/*
-				 * If we get here, the tuple was found but failed
-				 * SnapshotDirty. Assuming the xmin is either a committed xact
-				 * or our own xact (as it certainly should be if we're trying
-				 * to modify the tuple), this must mean that the row was
-				 * updated or deleted by either a committed xact or our own
-				 * xact.  If it was deleted, we can ignore it; if it was
-				 * updated then chain up to the next version and repeat the
-				 * whole process.
-				 *
-				 * As above, it should be safe to examine xmax and t_ctid
-				 * without the buffer content lock, because they can't be
-				 * changing.  We'd better hold a buffer pin though.
-				 */
-				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
-				{
-					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/* updated, so look at the updated row */
-				*tid = tuple->t_data->t_ctid;
-				/* updated row should have xmin matching this xmax */
-				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
-				/* loop back to fetch next in chain */
-			}
-		}
-		else
-		{
-			/* tuple was deleted, so give up */
-			return TM_Deleted;
-		}
-	}
-
-	slot->tts_tableOid = RelationGetRelid(relation);
-	tuple->t_tableOid = slot->tts_tableOid;
-
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
-	return result;
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
 }
 
 
@@ -2523,6 +2362,236 @@ SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 	}
 }
 
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
+{
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	TM_Result	result;
+	Buffer		buffer = InvalidBuffer;
+	HeapTuple	tuple = &bslot->base.tupdata;
+	bool		follow_updates;
+
+	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+	tmfd->traversed = false;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+	tuple->t_self = *tid;
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
+
+	if (result == TM_Updated &&
+		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+	{
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
+
+		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
+		{
+			SnapshotData SnapshotDirty;
+			TransactionId priorXmax;
+
+			/* it was updated, so look at the updated version */
+			*tid = tmfd->ctid;
+			/* updated row should have xmin matching this xmax */
+			priorXmax = tmfd->xmax;
+
+			/* signal that a tuple later in the chain is getting locked */
+			tmfd->traversed = true;
+
+			/*
+			 * fetch target tuple
+			 *
+			 * Loop here to deal with updated or busy tuples
+			 */
+			InitDirtySnapshot(SnapshotDirty);
+			for (;;)
+			{
+				if (ItemPointerIndicatesMovedPartitions(tid))
+					ereport(ERROR,
+							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
+							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
+
+				tuple->t_self = *tid;
+				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
+				{
+					/*
+					 * If xmin isn't what we're expecting, the slot must have
+					 * been recycled and reused for an unrelated tuple.  This
+					 * implies that the latest version of the row was deleted,
+					 * so we need do nothing.  (Should be safe to examine xmin
+					 * without getting buffer's content lock.  We assume
+					 * reading a TransactionId to be atomic, and Xmin never
+					 * changes in an existing tuple, except to invalid or
+					 * frozen, and neither of those can match priorXmax.)
+					 */
+					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+											 priorXmax))
+					{
+						ReleaseBuffer(buffer);
+						return TM_Deleted;
+					}
+
+					/* otherwise xmin should not be dirty... */
+					if (TransactionIdIsValid(SnapshotDirty.xmin))
+						ereport(ERROR,
+								(errcode(ERRCODE_DATA_CORRUPTED),
+								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
+												 SnapshotDirty.xmin,
+												 ItemPointerGetBlockNumber(&tuple->t_self),
+												 ItemPointerGetOffsetNumber(&tuple->t_self),
+												 RelationGetRelationName(relation))));
+
+					/*
+					 * If tuple is being updated by other transaction then we
+					 * have to wait for its commit/abort, or die trying.
+					 */
+					if (TransactionIdIsValid(SnapshotDirty.xmax))
+					{
+						ReleaseBuffer(buffer);
+						switch (wait_policy)
+						{
+							case LockWaitBlock:
+								XactLockTableWait(SnapshotDirty.xmax,
+												  relation, &tuple->t_self,
+												  XLTW_FetchUpdated);
+								break;
+							case LockWaitSkip:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									/* skip instead of waiting */
+									return TM_WouldBlock;
+								break;
+							case LockWaitError:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									ereport(ERROR,
+											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
+											 errmsg("could not obtain lock on row in relation \"%s\"",
+													RelationGetRelationName(relation))));
+								break;
+						}
+						continue;	/* loop back to repeat heap_fetch */
+					}
+
+					/*
+					 * If tuple was inserted by our own transaction, we have
+					 * to check cmin against cid: cmin >= current CID means
+					 * our command cannot see the tuple, so we should ignore
+					 * it. Otherwise heap_lock_tuple() will throw an error,
+					 * and so would any later attempt to update or delete the
+					 * tuple.  (We need not check cmax because
+					 * HeapTupleSatisfiesDirty will consider a tuple deleted
+					 * by our transaction dead, regardless of cmax.)  We just
+					 * checked that priorXmax == xmin, so we can test that
+					 * variable instead of doing HeapTupleHeaderGetXmin again.
+					 */
+					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
+						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
+					{
+						tmfd->xmax = priorXmax;
+
+						/*
+						 * Cmin is the problematic value, so store that. See
+						 * above.
+						 */
+						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
+						ReleaseBuffer(buffer);
+						return TM_SelfModified;
+					}
+
+					/*
+					 * This is a live tuple, so try to lock it again.
+					 */
+					ReleaseBuffer(buffer);
+					goto tuple_lock_retry;
+				}
+
+				/*
+				 * If the referenced slot was actually empty, the latest
+				 * version of the row must have been deleted, so we need do
+				 * nothing.
+				 */
+				if (tuple->t_data == NULL)
+				{
+					Assert(!BufferIsValid(buffer));
+					return TM_Deleted;
+				}
+
+				/*
+				 * As above, if xmin isn't what we're expecting, do nothing.
+				 */
+				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+										 priorXmax))
+				{
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/*
+				 * If we get here, the tuple was found but failed
+				 * SnapshotDirty. Assuming the xmin is either a committed xact
+				 * or our own xact (as it certainly should be if we're trying
+				 * to modify the tuple), this must mean that the row was
+				 * updated or deleted by either a committed xact or our own
+				 * xact.  If it was deleted, we can ignore it; if it was
+				 * updated then chain up to the next version and repeat the
+				 * whole process.
+				 *
+				 * As above, it should be safe to examine xmax and t_ctid
+				 * without the buffer content lock, because they can't be
+				 * changing.  We'd better hold a buffer pin though.
+				 */
+				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
+				{
+					/* deleted, so forget about it */
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/* updated, so look at the updated row */
+				*tid = tuple->t_data->t_ctid;
+				/* updated row should have xmin matching this xmax */
+				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
+				ReleaseBuffer(buffer);
+				/* loop back to fetch next in chain */
+			}
+		}
+		else
+		{
+			/* tuple was deleted, so give up */
+			return TM_Deleted;
+		}
+	}
+
+	slot->tts_tableOid = RelationGetRelid(relation);
+	tuple->t_tableOid = slot->tts_tableOid;
+
+	/* store in slot, transferring existing pin */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
+	return result;
+}
+
 
 /* ------------------------------------------------------------------------
  * Definition of the heap table access method.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..f3476697ff0 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								false, NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								false, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 56398c399c9..ca396ea2dfd 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1284,7 +1284,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1294,7 +1295,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockUpdated,
+							  lockedSlot);
 }
 
 /*
@@ -1439,7 +1442,16 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		/*
+		 * Ask ExecDeleteAct() to immediately place the lock the updated tuple
+		 * if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot(), slot);
 
 		switch (result)
 		{
@@ -1492,87 +1504,34 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() have already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1629,7 +1588,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1904,7 +1863,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt, bool lockUpdated,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2038,7 +1998,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockUpdated, lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2189,7 +2150,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2242,12 +2203,37 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+		bool		lockUpdated;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+
+		/*
+		 * Ask ExecUpdateAct() to immediately place the lock the updated tuple
+		 * if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			lockUpdated = true;
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			lockUpdated = false;
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, lockUpdated, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2300,86 +2286,32 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() have already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2623,7 +2555,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2830,7 +2762,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   false, NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2848,7 +2781,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   false, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3796,7 +3730,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..65797cd9f90 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +528,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1453,9 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockUpdated - true if should lock the last row version if the concurrent
+ *		update is detected
+ *	lockedSlot - slot to save the locked tuple when lockUpdated is true
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1468,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockUpdated, lockedSlot);
 }
 
 /*
@@ -1487,6 +1496,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
+ *	lockUpdated - true if should lock the last row version if the concurrent
+ *		update is detected
+ *	lockedSlot - slot to save the locked tuple when lockUpdated is true
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1506,12 +1518,14 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, bool lockUpdated,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockUpdated, lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#13Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Alexander Korotkov (#12)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Alexander!

On Thu, 5 Jan 2023 at 15:11, Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Wed, Jan 4, 2023 at 5:05 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Wed, Jan 4, 2023 at 3:43 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

One more update of a patchset to avoid compiler warnings.

Thank you for your help. I'm going to provide the revised version of
patch with comments and commit message in the next couple of days.

The revised patch is attached. It contains describing commit message,
comments and some minor code improvements.

I've looked through the patch once again. It seems in a nice state to
be committed.
I also noticed that in tableam level and NodeModifyTable function
calls we have a one-to-one correspondence between *lockedSlot и bool
lockUpdated, but no checks on this in case something changes in the
code in the future. I'd propose combining these variables to remain
free from these checks. See v5 of a patch. Tests are successfully
passed.
Besides, the new version has only some minor changes in the comments
and the commit message.

Kind regards,
Pavel Borisov,
Supabase.

Attachments:

v5-0001-Allow-locking-updated-tuples-in-tuple_update-and-.patchapplication/octet-stream; name=v5-0001-Allow-locking-updated-tuples-in-tuple_update-and-.patchDownload
From 60ca360495bcf89abef12b4e31fc34cb67f83bdc Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH v5] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation level (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by a concurrent transaction.

 1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
    returns TM_Updated.
 2. Lock tuple with tuple_lock().
 3. Re-evaluate plan qual (recheck if we still need to update/delete and
    calculate the new tuple for update).
 4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
    This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call. Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice. Future
undo-based table access methods, which will start from the latest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.
Also, in ExecUpdate() we now get rid of extra table_tuple_fetch_row_version() call,
because old version of row should be always the same that we've previously locked.

Discussion: https://postgr.es/m/20230102154240.GL1153%40telsasoft.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C
---
 src/backend/access/heap/heapam_handler.c | 495 +++++++++++++----------
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 240 ++++-------
 src/include/access/tableam.h             |  23 +-
 4 files changed, 390 insertions(+), 374 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..d9bfba95adb 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 								   HeapTuple tuple,
 								   OffsetNumber tupoffset);
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
 
 static const TableAmRoutine heapam_methods;
@@ -299,14 +305,38 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	/*
+	 * Lock concurrently updated tuple if the caller ask to do this by
+	 * providing a lockedSlot
+	 */
+	if (result == TM_Updated && lockedSlot != NULL)
+	{
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +344,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,6 +372,25 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * Lock concurrently updated tuple if the caller ask to do this by
+	 * providing a lockedSlot
+	 */
+	if (result == TM_Updated && lockedSlot != NULL)
+	{
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
@@ -350,213 +400,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
 {
-	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
-	TM_Result	result;
-	Buffer		buffer;
-	HeapTuple	tuple = &bslot->base.tupdata;
-	bool		follow_updates;
-
-	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
-	tmfd->traversed = false;
-
-	Assert(TTS_IS_BUFFERTUPLE(slot));
-
-tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
-
-	if (result == TM_Updated &&
-		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
-	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-		ReleaseBuffer(buffer);
-
-		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
-		{
-			SnapshotData SnapshotDirty;
-			TransactionId priorXmax;
-
-			/* it was updated, so look at the updated version */
-			*tid = tmfd->ctid;
-			/* updated row should have xmin matching this xmax */
-			priorXmax = tmfd->xmax;
-
-			/* signal that a tuple later in the chain is getting locked */
-			tmfd->traversed = true;
-
-			/*
-			 * fetch target tuple
-			 *
-			 * Loop here to deal with updated or busy tuples
-			 */
-			InitDirtySnapshot(SnapshotDirty);
-			for (;;)
-			{
-				if (ItemPointerIndicatesMovedPartitions(tid))
-					ereport(ERROR,
-							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
-							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
-
-				tuple->t_self = *tid;
-				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
-				{
-					/*
-					 * If xmin isn't what we're expecting, the slot must have
-					 * been recycled and reused for an unrelated tuple.  This
-					 * implies that the latest version of the row was deleted,
-					 * so we need do nothing.  (Should be safe to examine xmin
-					 * without getting buffer's content lock.  We assume
-					 * reading a TransactionId to be atomic, and Xmin never
-					 * changes in an existing tuple, except to invalid or
-					 * frozen, and neither of those can match priorXmax.)
-					 */
-					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-											 priorXmax))
-					{
-						ReleaseBuffer(buffer);
-						return TM_Deleted;
-					}
-
-					/* otherwise xmin should not be dirty... */
-					if (TransactionIdIsValid(SnapshotDirty.xmin))
-						ereport(ERROR,
-								(errcode(ERRCODE_DATA_CORRUPTED),
-								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
-												 SnapshotDirty.xmin,
-												 ItemPointerGetBlockNumber(&tuple->t_self),
-												 ItemPointerGetOffsetNumber(&tuple->t_self),
-												 RelationGetRelationName(relation))));
-
-					/*
-					 * If tuple is being updated by other transaction then we
-					 * have to wait for its commit/abort, or die trying.
-					 */
-					if (TransactionIdIsValid(SnapshotDirty.xmax))
-					{
-						ReleaseBuffer(buffer);
-						switch (wait_policy)
-						{
-							case LockWaitBlock:
-								XactLockTableWait(SnapshotDirty.xmax,
-												  relation, &tuple->t_self,
-												  XLTW_FetchUpdated);
-								break;
-							case LockWaitSkip:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									/* skip instead of waiting */
-									return TM_WouldBlock;
-								break;
-							case LockWaitError:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									ereport(ERROR,
-											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
-											 errmsg("could not obtain lock on row in relation \"%s\"",
-													RelationGetRelationName(relation))));
-								break;
-						}
-						continue;	/* loop back to repeat heap_fetch */
-					}
-
-					/*
-					 * If tuple was inserted by our own transaction, we have
-					 * to check cmin against cid: cmin >= current CID means
-					 * our command cannot see the tuple, so we should ignore
-					 * it. Otherwise heap_lock_tuple() will throw an error,
-					 * and so would any later attempt to update or delete the
-					 * tuple.  (We need not check cmax because
-					 * HeapTupleSatisfiesDirty will consider a tuple deleted
-					 * by our transaction dead, regardless of cmax.)  We just
-					 * checked that priorXmax == xmin, so we can test that
-					 * variable instead of doing HeapTupleHeaderGetXmin again.
-					 */
-					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
-						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
-					{
-						tmfd->xmax = priorXmax;
-
-						/*
-						 * Cmin is the problematic value, so store that. See
-						 * above.
-						 */
-						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
-						return TM_SelfModified;
-					}
-
-					/*
-					 * This is a live tuple, so try to lock it again.
-					 */
-					ReleaseBuffer(buffer);
-					goto tuple_lock_retry;
-				}
-
-				/*
-				 * If the referenced slot was actually empty, the latest
-				 * version of the row must have been deleted, so we need do
-				 * nothing.
-				 */
-				if (tuple->t_data == NULL)
-				{
-					Assert(!BufferIsValid(buffer));
-					return TM_Deleted;
-				}
-
-				/*
-				 * As above, if xmin isn't what we're expecting, do nothing.
-				 */
-				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-										 priorXmax))
-				{
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/*
-				 * If we get here, the tuple was found but failed
-				 * SnapshotDirty. Assuming the xmin is either a committed xact
-				 * or our own xact (as it certainly should be if we're trying
-				 * to modify the tuple), this must mean that the row was
-				 * updated or deleted by either a committed xact or our own
-				 * xact.  If it was deleted, we can ignore it; if it was
-				 * updated then chain up to the next version and repeat the
-				 * whole process.
-				 *
-				 * As above, it should be safe to examine xmax and t_ctid
-				 * without the buffer content lock, because they can't be
-				 * changing.  We'd better hold a buffer pin though.
-				 */
-				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
-				{
-					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/* updated, so look at the updated row */
-				*tid = tuple->t_data->t_ctid;
-				/* updated row should have xmin matching this xmax */
-				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
-				/* loop back to fetch next in chain */
-			}
-		}
-		else
-		{
-			/* tuple was deleted, so give up */
-			return TM_Deleted;
-		}
-	}
-
-	slot->tts_tableOid = RelationGetRelid(relation);
-	tuple->t_tableOid = slot->tts_tableOid;
-
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
-	return result;
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
 }
 
 
@@ -2523,6 +2368,236 @@ SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 	}
 }
 
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
+{
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	TM_Result	result;
+	Buffer		buffer = InvalidBuffer;
+	HeapTuple	tuple = &bslot->base.tupdata;
+	bool		follow_updates;
+
+	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+	tmfd->traversed = false;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+	tuple->t_self = *tid;
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
+
+	if (result == TM_Updated &&
+		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+	{
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
+
+		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
+		{
+			SnapshotData SnapshotDirty;
+			TransactionId priorXmax;
+
+			/* it was updated, so look at the updated version */
+			*tid = tmfd->ctid;
+			/* updated row should have xmin matching this xmax */
+			priorXmax = tmfd->xmax;
+
+			/* signal that a tuple later in the chain is getting locked */
+			tmfd->traversed = true;
+
+			/*
+			 * fetch target tuple
+			 *
+			 * Loop here to deal with updated or busy tuples
+			 */
+			InitDirtySnapshot(SnapshotDirty);
+			for (;;)
+			{
+				if (ItemPointerIndicatesMovedPartitions(tid))
+					ereport(ERROR,
+							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
+							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
+
+				tuple->t_self = *tid;
+				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
+				{
+					/*
+					 * If xmin isn't what we're expecting, the slot must have
+					 * been recycled and reused for an unrelated tuple.  This
+					 * implies that the latest version of the row was deleted,
+					 * so we need do nothing.  (Should be safe to examine xmin
+					 * without getting buffer's content lock.  We assume
+					 * reading a TransactionId to be atomic, and Xmin never
+					 * changes in an existing tuple, except to invalid or
+					 * frozen, and neither of those can match priorXmax.)
+					 */
+					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+											 priorXmax))
+					{
+						ReleaseBuffer(buffer);
+						return TM_Deleted;
+					}
+
+					/* otherwise xmin should not be dirty... */
+					if (TransactionIdIsValid(SnapshotDirty.xmin))
+						ereport(ERROR,
+								(errcode(ERRCODE_DATA_CORRUPTED),
+								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
+												 SnapshotDirty.xmin,
+												 ItemPointerGetBlockNumber(&tuple->t_self),
+												 ItemPointerGetOffsetNumber(&tuple->t_self),
+												 RelationGetRelationName(relation))));
+
+					/*
+					 * If tuple is being updated by other transaction then we
+					 * have to wait for its commit/abort, or die trying.
+					 */
+					if (TransactionIdIsValid(SnapshotDirty.xmax))
+					{
+						ReleaseBuffer(buffer);
+						switch (wait_policy)
+						{
+							case LockWaitBlock:
+								XactLockTableWait(SnapshotDirty.xmax,
+												  relation, &tuple->t_self,
+												  XLTW_FetchUpdated);
+								break;
+							case LockWaitSkip:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									/* skip instead of waiting */
+									return TM_WouldBlock;
+								break;
+							case LockWaitError:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									ereport(ERROR,
+											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
+											 errmsg("could not obtain lock on row in relation \"%s\"",
+													RelationGetRelationName(relation))));
+								break;
+						}
+						continue;	/* loop back to repeat heap_fetch */
+					}
+
+					/*
+					 * If tuple was inserted by our own transaction, we have
+					 * to check cmin against cid: cmin >= current CID means
+					 * our command cannot see the tuple, so we should ignore
+					 * it. Otherwise heap_lock_tuple() will throw an error,
+					 * and so would any later attempt to update or delete the
+					 * tuple.  (We need not check cmax because
+					 * HeapTupleSatisfiesDirty will consider a tuple deleted
+					 * by our transaction dead, regardless of cmax.)  We just
+					 * checked that priorXmax == xmin, so we can test that
+					 * variable instead of doing HeapTupleHeaderGetXmin again.
+					 */
+					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
+						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
+					{
+						tmfd->xmax = priorXmax;
+
+						/*
+						 * Cmin is the problematic value, so store that. See
+						 * above.
+						 */
+						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
+						ReleaseBuffer(buffer);
+						return TM_SelfModified;
+					}
+
+					/*
+					 * This is a live tuple, so try to lock it again.
+					 */
+					ReleaseBuffer(buffer);
+					goto tuple_lock_retry;
+				}
+
+				/*
+				 * If the referenced slot was actually empty, the latest
+				 * version of the row must have been deleted, so we need do
+				 * nothing.
+				 */
+				if (tuple->t_data == NULL)
+				{
+					Assert(!BufferIsValid(buffer));
+					return TM_Deleted;
+				}
+
+				/*
+				 * As above, if xmin isn't what we're expecting, do nothing.
+				 */
+				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+										 priorXmax))
+				{
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/*
+				 * If we get here, the tuple was found but failed
+				 * SnapshotDirty. Assuming the xmin is either a committed xact
+				 * or our own xact (as it certainly should be if we're trying
+				 * to modify the tuple), this must mean that the row was
+				 * updated or deleted by either a committed xact or our own
+				 * xact.  If it was deleted, we can ignore it; if it was
+				 * updated then chain up to the next version and repeat the
+				 * whole process.
+				 *
+				 * As above, it should be safe to examine xmax and t_ctid
+				 * without the buffer content lock, because they can't be
+				 * changing.  We'd better hold a buffer pin though.
+				 */
+				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
+				{
+					/* deleted, so forget about it */
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/* updated, so look at the updated row */
+				*tid = tuple->t_data->t_ctid;
+				/* updated row should have xmin matching this xmax */
+				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
+				ReleaseBuffer(buffer);
+				/* loop back to fetch next in chain */
+			}
+		}
+		else
+		{
+			/* tuple was deleted, so give up */
+			return TM_Deleted;
+		}
+	}
+
+	slot->tts_tableOid = RelationGetRelid(relation);
+	tuple->t_tableOid = slot->tts_tableOid;
+
+	/* store in slot, transferring existing pin */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
+	return result;
+}
+
 
 /* ------------------------------------------------------------------------
  * Definition of the heap table access method.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..4cfdb4066f6 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 56398c399c9..e9b6d3572a8 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1284,7 +1284,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1294,7 +1295,8 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockedSlot);
 }
 
 /*
@@ -1439,7 +1441,16 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		/*
+		 * Ask ExecDeleteAct() to immediately place the lock on the updated
+		 * tuple if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   slot);
 
 		switch (result)
 		{
@@ -1492,87 +1503,34 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() have already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1629,7 +1587,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1904,7 +1862,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2038,7 +1997,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2189,7 +2149,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2242,12 +2202,34 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+
+		/*
+		 * Ask ExecUpdateAct() to immediately place the lock on the updated
+		 * tuple if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2300,86 +2282,32 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() have already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2623,7 +2551,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2830,7 +2758,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2848,7 +2777,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3796,7 +3726,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..6b2b4020178 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,8 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +527,8 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1451,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1465,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlot);
 }
 
 /*
@@ -1487,7 +1493,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1506,12 +1514,13 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#14Mason Sharp
masonlists@gmail.com
In reply to: Pavel Borisov (#13)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Fri, Jan 6, 2023 at 4:46 AM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Hi, Alexander!

On Thu, 5 Jan 2023 at 15:11, Alexander Korotkov <aekorotkov@gmail.com>
wrote:

On Wed, Jan 4, 2023 at 5:05 PM Alexander Korotkov <aekorotkov@gmail.com>

wrote:

On Wed, Jan 4, 2023 at 3:43 PM Pavel Borisov <pashkin.elfe@gmail.com>

wrote:

One more update of a patchset to avoid compiler warnings.

Thank you for your help. I'm going to provide the revised version of
patch with comments and commit message in the next couple of days.

The revised patch is attached. It contains describing commit message,
comments and some minor code improvements.

I've looked through the patch once again. It seems in a nice state to
be committed.
I also noticed that in tableam level and NodeModifyTable function
calls we have a one-to-one correspondence between *lockedSlot и bool
lockUpdated, but no checks on this in case something changes in the
code in the future. I'd propose combining these variables to remain
free from these checks. See v5 of a patch. Tests are successfully
passed.
Besides, the new version has only some minor changes in the comments
and the commit message.

Kind regards,
Pavel Borisov,
Supabase.

It looks good, and the greater the concurrency the greater the benefit will
be. Just a few minor suggestions regarding comments.

"ExecDeleteAct() have already locked the old tuple for us", change "have"
to "has".

The comments in heapam_tuple_delete() and heapam_tuple_update() might be a
little clearer with something like:

"If the tuple has been concurrently updated, get lock already so that on
retry it will succeed, provided that the caller asked to do this by
providing a lockedSlot."

Also, not too important, but perhaps better clarify in the commit message
that the repeated work is driven by ExecUpdate and ExecDelete and can
happen multiple times depending on the concurrency.

Best Regards,

Mason

#15Alexander Korotkov
aekorotkov@gmail.com
In reply to: Mason Sharp (#14)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Mason!

Thank you very much for your review.

On Sun, Jan 8, 2023 at 9:33 PM Mason Sharp <masonlists@gmail.com> wrote:

On Fri, Jan 6, 2023 at 4:46 AM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Besides, the new version has only some minor changes in the comments
and the commit message.

It looks good, and the greater the concurrency the greater the benefit will be. Just a few minor suggestions regarding comments.

"ExecDeleteAct() have already locked the old tuple for us", change "have" to "has".

The comments in heapam_tuple_delete() and heapam_tuple_update() might be a little clearer with something like:

"If the tuple has been concurrently updated, get lock already so that on
retry it will succeed, provided that the caller asked to do this by
providing a lockedSlot."

Thank you. These changes are incorporated into v6 of the patch.

Also, not too important, but perhaps better clarify in the commit message that the repeated work is driven by ExecUpdate and ExecDelete and can happen multiple times depending on the concurrency.

Hmm... It can't happen arbitrary number of times. If tuple was
concurrently updated, the we lock it. Once we lock, nobody can change
it until we finish out work. So, I think no changes needed.

I'm going to push this if no objections.

------
Regards,
Alexander Korotkov

Attachments:

0001-Allow-locking-updated-tuples-in-tuple_update-and--v6.patchapplication/octet-stream; name=0001-Allow-locking-updated-tuples-in-tuple_update-and--v6.patchDownload
From 82f6560d0b5c0e83f92519e99610c30f4fe41cf5 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Mon, 9 Jan 2023 01:02:12 +0300
Subject: [PATCH] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

 1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
    returns TM_Updated.
 2. Lock tuple with tuple_lock().
 3. Re-evaluate plan qual (recheck if we still need to update/delete and
    calculate the new tuple for update).
 4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
    This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the lastest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.
Also, we now table_tuple_fetch_row_version() in ExecUpdate(), because old
version of row should be always the same that we've previously locked.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam_handler.c | 497 +++++++++++++----------
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 244 ++++-------
 src/include/access/tableam.h             |  26 +-
 4 files changed, 400 insertions(+), 373 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..2b71e4297a6 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 								   HeapTuple tuple,
 								   OffsetNumber tupoffset);
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
 
 static const TableAmRoutine heapam_methods;
@@ -299,14 +305,39 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	/*
+	 * If the tuple has been concurrently updated, get lock already so that on
+	 * retry it will succeed, provided that the caller asked to do this by
+	 * providing a lockedSlot.
+	 */
+	if (result == TM_Updated && lockUpdated)
+	{
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +345,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,6 +373,26 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If the tuple has been concurrently updated, get lock already so that on
+	 * retry it will succeed, provided that the caller asked to do this by
+	 * providing a lockedSlot.
+	 */
+	if (result == TM_Updated && lockUpdated)
+	{
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
@@ -350,213 +402,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
 {
-	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
-	TM_Result	result;
-	Buffer		buffer;
-	HeapTuple	tuple = &bslot->base.tupdata;
-	bool		follow_updates;
-
-	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
-	tmfd->traversed = false;
-
-	Assert(TTS_IS_BUFFERTUPLE(slot));
-
-tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
-
-	if (result == TM_Updated &&
-		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
-	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-		ReleaseBuffer(buffer);
-
-		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
-		{
-			SnapshotData SnapshotDirty;
-			TransactionId priorXmax;
-
-			/* it was updated, so look at the updated version */
-			*tid = tmfd->ctid;
-			/* updated row should have xmin matching this xmax */
-			priorXmax = tmfd->xmax;
-
-			/* signal that a tuple later in the chain is getting locked */
-			tmfd->traversed = true;
-
-			/*
-			 * fetch target tuple
-			 *
-			 * Loop here to deal with updated or busy tuples
-			 */
-			InitDirtySnapshot(SnapshotDirty);
-			for (;;)
-			{
-				if (ItemPointerIndicatesMovedPartitions(tid))
-					ereport(ERROR,
-							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
-							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
-
-				tuple->t_self = *tid;
-				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
-				{
-					/*
-					 * If xmin isn't what we're expecting, the slot must have
-					 * been recycled and reused for an unrelated tuple.  This
-					 * implies that the latest version of the row was deleted,
-					 * so we need do nothing.  (Should be safe to examine xmin
-					 * without getting buffer's content lock.  We assume
-					 * reading a TransactionId to be atomic, and Xmin never
-					 * changes in an existing tuple, except to invalid or
-					 * frozen, and neither of those can match priorXmax.)
-					 */
-					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-											 priorXmax))
-					{
-						ReleaseBuffer(buffer);
-						return TM_Deleted;
-					}
-
-					/* otherwise xmin should not be dirty... */
-					if (TransactionIdIsValid(SnapshotDirty.xmin))
-						ereport(ERROR,
-								(errcode(ERRCODE_DATA_CORRUPTED),
-								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
-												 SnapshotDirty.xmin,
-												 ItemPointerGetBlockNumber(&tuple->t_self),
-												 ItemPointerGetOffsetNumber(&tuple->t_self),
-												 RelationGetRelationName(relation))));
-
-					/*
-					 * If tuple is being updated by other transaction then we
-					 * have to wait for its commit/abort, or die trying.
-					 */
-					if (TransactionIdIsValid(SnapshotDirty.xmax))
-					{
-						ReleaseBuffer(buffer);
-						switch (wait_policy)
-						{
-							case LockWaitBlock:
-								XactLockTableWait(SnapshotDirty.xmax,
-												  relation, &tuple->t_self,
-												  XLTW_FetchUpdated);
-								break;
-							case LockWaitSkip:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									/* skip instead of waiting */
-									return TM_WouldBlock;
-								break;
-							case LockWaitError:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									ereport(ERROR,
-											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
-											 errmsg("could not obtain lock on row in relation \"%s\"",
-													RelationGetRelationName(relation))));
-								break;
-						}
-						continue;	/* loop back to repeat heap_fetch */
-					}
-
-					/*
-					 * If tuple was inserted by our own transaction, we have
-					 * to check cmin against cid: cmin >= current CID means
-					 * our command cannot see the tuple, so we should ignore
-					 * it. Otherwise heap_lock_tuple() will throw an error,
-					 * and so would any later attempt to update or delete the
-					 * tuple.  (We need not check cmax because
-					 * HeapTupleSatisfiesDirty will consider a tuple deleted
-					 * by our transaction dead, regardless of cmax.)  We just
-					 * checked that priorXmax == xmin, so we can test that
-					 * variable instead of doing HeapTupleHeaderGetXmin again.
-					 */
-					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
-						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
-					{
-						tmfd->xmax = priorXmax;
-
-						/*
-						 * Cmin is the problematic value, so store that. See
-						 * above.
-						 */
-						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
-						return TM_SelfModified;
-					}
-
-					/*
-					 * This is a live tuple, so try to lock it again.
-					 */
-					ReleaseBuffer(buffer);
-					goto tuple_lock_retry;
-				}
-
-				/*
-				 * If the referenced slot was actually empty, the latest
-				 * version of the row must have been deleted, so we need do
-				 * nothing.
-				 */
-				if (tuple->t_data == NULL)
-				{
-					Assert(!BufferIsValid(buffer));
-					return TM_Deleted;
-				}
-
-				/*
-				 * As above, if xmin isn't what we're expecting, do nothing.
-				 */
-				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-										 priorXmax))
-				{
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/*
-				 * If we get here, the tuple was found but failed
-				 * SnapshotDirty. Assuming the xmin is either a committed xact
-				 * or our own xact (as it certainly should be if we're trying
-				 * to modify the tuple), this must mean that the row was
-				 * updated or deleted by either a committed xact or our own
-				 * xact.  If it was deleted, we can ignore it; if it was
-				 * updated then chain up to the next version and repeat the
-				 * whole process.
-				 *
-				 * As above, it should be safe to examine xmax and t_ctid
-				 * without the buffer content lock, because they can't be
-				 * changing.  We'd better hold a buffer pin though.
-				 */
-				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
-				{
-					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/* updated, so look at the updated row */
-				*tid = tuple->t_data->t_ctid;
-				/* updated row should have xmin matching this xmax */
-				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
-				/* loop back to fetch next in chain */
-			}
-		}
-		else
-		{
-			/* tuple was deleted, so give up */
-			return TM_Deleted;
-		}
-	}
-
-	slot->tts_tableOid = RelationGetRelid(relation);
-	tuple->t_tableOid = slot->tts_tableOid;
-
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
-	return result;
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
 }
 
 
@@ -2523,6 +2370,236 @@ SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 	}
 }
 
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
+{
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	TM_Result	result;
+	Buffer		buffer = InvalidBuffer;
+	HeapTuple	tuple = &bslot->base.tupdata;
+	bool		follow_updates;
+
+	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+	tmfd->traversed = false;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+	tuple->t_self = *tid;
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
+
+	if (result == TM_Updated &&
+		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+	{
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
+
+		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
+		{
+			SnapshotData SnapshotDirty;
+			TransactionId priorXmax;
+
+			/* it was updated, so look at the updated version */
+			*tid = tmfd->ctid;
+			/* updated row should have xmin matching this xmax */
+			priorXmax = tmfd->xmax;
+
+			/* signal that a tuple later in the chain is getting locked */
+			tmfd->traversed = true;
+
+			/*
+			 * fetch target tuple
+			 *
+			 * Loop here to deal with updated or busy tuples
+			 */
+			InitDirtySnapshot(SnapshotDirty);
+			for (;;)
+			{
+				if (ItemPointerIndicatesMovedPartitions(tid))
+					ereport(ERROR,
+							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
+							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
+
+				tuple->t_self = *tid;
+				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
+				{
+					/*
+					 * If xmin isn't what we're expecting, the slot must have
+					 * been recycled and reused for an unrelated tuple.  This
+					 * implies that the latest version of the row was deleted,
+					 * so we need do nothing.  (Should be safe to examine xmin
+					 * without getting buffer's content lock.  We assume
+					 * reading a TransactionId to be atomic, and Xmin never
+					 * changes in an existing tuple, except to invalid or
+					 * frozen, and neither of those can match priorXmax.)
+					 */
+					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+											 priorXmax))
+					{
+						ReleaseBuffer(buffer);
+						return TM_Deleted;
+					}
+
+					/* otherwise xmin should not be dirty... */
+					if (TransactionIdIsValid(SnapshotDirty.xmin))
+						ereport(ERROR,
+								(errcode(ERRCODE_DATA_CORRUPTED),
+								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
+												 SnapshotDirty.xmin,
+												 ItemPointerGetBlockNumber(&tuple->t_self),
+												 ItemPointerGetOffsetNumber(&tuple->t_self),
+												 RelationGetRelationName(relation))));
+
+					/*
+					 * If tuple is being updated by other transaction then we
+					 * have to wait for its commit/abort, or die trying.
+					 */
+					if (TransactionIdIsValid(SnapshotDirty.xmax))
+					{
+						ReleaseBuffer(buffer);
+						switch (wait_policy)
+						{
+							case LockWaitBlock:
+								XactLockTableWait(SnapshotDirty.xmax,
+												  relation, &tuple->t_self,
+												  XLTW_FetchUpdated);
+								break;
+							case LockWaitSkip:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									/* skip instead of waiting */
+									return TM_WouldBlock;
+								break;
+							case LockWaitError:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									ereport(ERROR,
+											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
+											 errmsg("could not obtain lock on row in relation \"%s\"",
+													RelationGetRelationName(relation))));
+								break;
+						}
+						continue;	/* loop back to repeat heap_fetch */
+					}
+
+					/*
+					 * If tuple was inserted by our own transaction, we have
+					 * to check cmin against cid: cmin >= current CID means
+					 * our command cannot see the tuple, so we should ignore
+					 * it. Otherwise heap_lock_tuple() will throw an error,
+					 * and so would any later attempt to update or delete the
+					 * tuple.  (We need not check cmax because
+					 * HeapTupleSatisfiesDirty will consider a tuple deleted
+					 * by our transaction dead, regardless of cmax.)  We just
+					 * checked that priorXmax == xmin, so we can test that
+					 * variable instead of doing HeapTupleHeaderGetXmin again.
+					 */
+					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
+						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
+					{
+						tmfd->xmax = priorXmax;
+
+						/*
+						 * Cmin is the problematic value, so store that. See
+						 * above.
+						 */
+						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
+						ReleaseBuffer(buffer);
+						return TM_SelfModified;
+					}
+
+					/*
+					 * This is a live tuple, so try to lock it again.
+					 */
+					ReleaseBuffer(buffer);
+					goto tuple_lock_retry;
+				}
+
+				/*
+				 * If the referenced slot was actually empty, the latest
+				 * version of the row must have been deleted, so we need do
+				 * nothing.
+				 */
+				if (tuple->t_data == NULL)
+				{
+					Assert(!BufferIsValid(buffer));
+					return TM_Deleted;
+				}
+
+				/*
+				 * As above, if xmin isn't what we're expecting, do nothing.
+				 */
+				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+										 priorXmax))
+				{
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/*
+				 * If we get here, the tuple was found but failed
+				 * SnapshotDirty. Assuming the xmin is either a committed xact
+				 * or our own xact (as it certainly should be if we're trying
+				 * to modify the tuple), this must mean that the row was
+				 * updated or deleted by either a committed xact or our own
+				 * xact.  If it was deleted, we can ignore it; if it was
+				 * updated then chain up to the next version and repeat the
+				 * whole process.
+				 *
+				 * As above, it should be safe to examine xmax and t_ctid
+				 * without the buffer content lock, because they can't be
+				 * changing.  We'd better hold a buffer pin though.
+				 */
+				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
+				{
+					/* deleted, so forget about it */
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/* updated, so look at the updated row */
+				*tid = tuple->t_data->t_ctid;
+				/* updated row should have xmin matching this xmax */
+				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
+				ReleaseBuffer(buffer);
+				/* loop back to fetch next in chain */
+			}
+		}
+		else
+		{
+			/* tuple was deleted, so give up */
+			return TM_Deleted;
+		}
+	}
+
+	slot->tts_tableOid = RelationGetRelid(relation);
+	tuple->t_tableOid = slot->tts_tableOid;
+
+	/* store in slot, transferring existing pin */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
+	return result;
+}
+
 
 /* ------------------------------------------------------------------------
  * Definition of the heap table access method.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..f3476697ff0 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								false, NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								false, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 687a5422eab..a110d66b0cc 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1335,7 +1335,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1345,7 +1346,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockUpdated,
+							  lockedSlot);
 }
 
 /*
@@ -1490,7 +1493,16 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		/*
+		 * Ask ExecDeleteAct() to immediately place the lock the updated tuple
+		 * if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot(), slot);
 
 		switch (result)
 		{
@@ -1543,87 +1555,34 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1680,7 +1639,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1955,7 +1914,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt, bool lockUpdated,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2089,7 +2049,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockUpdated, lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2240,7 +2201,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2293,12 +2254,37 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+		bool		lockUpdated;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+
+		/*
+		 * Ask ExecUpdateAct() to immediately place the lock the updated tuple
+		 * if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			lockUpdated = true;
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			lockUpdated = false;
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, lockUpdated, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2351,86 +2337,32 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2674,7 +2606,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2881,7 +2813,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   false, NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2899,7 +2832,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   false, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3847,7 +3781,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..65797cd9f90 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +528,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1453,9 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockUpdated - true if should lock the last row version if the concurrent
+ *		update is detected
+ *	lockedSlot - slot to save the locked tuple when lockUpdated is true
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1468,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockUpdated, lockedSlot);
 }
 
 /*
@@ -1487,6 +1496,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
+ *	lockUpdated - true if should lock the last row version if the concurrent
+ *		update is detected
+ *	lockedSlot - slot to save the locked tuple when lockUpdated is true
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1506,12 +1518,14 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, bool lockUpdated,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockUpdated, lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#16Aleksander Alekseev
aleksander@timescale.com
In reply to: Alexander Korotkov (#15)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi Alexander,

I'm going to push this if no objections.

I took a fresh look at the patch and it LGTM. I only did a few
cosmetic changes, PFA v7.

Changes since v6 are:

```
@@ -318,12 +318,12 @@ heapam_tuple_delete(Relation relation,
ItemPointer tid, CommandId cid,
result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd,
changingPart);

     /*
-     * If the tuple has been concurrently updated, get lock already so that on
-     * retry it will succeed, provided that the caller asked to do this by
-     * providing a lockedSlot.
+     * If lockUpdated is true and the tuple has been concurrently updated, get
+     * the lock immediately so that on retry we will succeed.
      */
     if (result == TM_Updated && lockUpdated)
     {
+        Assert(lockedSlot != NULL);
```

... and the same for heapam_tuple_update().

--
Best regards,
Aleksander Alekseev

Attachments:

v7-0001-Allow-locking-updated-tuples-in-tuple_update-and-.patchapplication/octet-stream; name=v7-0001-Allow-locking-updated-tuples-in-tuple_update-and-.patchDownload
From 29c9506b23388c089cb7b214596edef304be833b Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Mon, 9 Jan 2023 01:02:12 +0300
Subject: [PATCH] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

 1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
    returns TM_Updated.
 2. Lock tuple with tuple_lock().
 3. Re-evaluate plan qual (recheck if we still need to update/delete and
    calculate the new tuple for update).
 4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
    This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the lastest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.
Also, we now table_tuple_fetch_row_version() in ExecUpdate(), because old
version of row should be always the same that we've previously locked.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam_handler.c | 497 +++++++++++++----------
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 244 ++++-------
 src/include/access/tableam.h             |  26 +-
 4 files changed, 400 insertions(+), 373 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36..3ada0944e6 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 								   HeapTuple tuple,
 								   OffsetNumber tupoffset);
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
 
 static const TableAmRoutine heapam_methods;
@@ -299,14 +305,39 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	/*
+	 * If lockUpdated is true and the tuple has been concurrently updated, get
+	 * the lock immediately so that on retry we will succeed.
+	 */
+	if (result == TM_Updated && lockUpdated)
+	{
+		Assert(lockedSlot != NULL);
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +345,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,6 +373,26 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If lockUpdated is true and the tuple has been concurrently updated, get
+	 * the lock immediately so that on retry we will succeed.
+	 */
+	if (result == TM_Updated && lockUpdated)
+	{
+		Assert(lockedSlot != NULL);
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
@@ -350,213 +402,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
 {
-	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
-	TM_Result	result;
-	Buffer		buffer;
-	HeapTuple	tuple = &bslot->base.tupdata;
-	bool		follow_updates;
-
-	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
-	tmfd->traversed = false;
-
-	Assert(TTS_IS_BUFFERTUPLE(slot));
-
-tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
-
-	if (result == TM_Updated &&
-		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
-	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-		ReleaseBuffer(buffer);
-
-		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
-		{
-			SnapshotData SnapshotDirty;
-			TransactionId priorXmax;
-
-			/* it was updated, so look at the updated version */
-			*tid = tmfd->ctid;
-			/* updated row should have xmin matching this xmax */
-			priorXmax = tmfd->xmax;
-
-			/* signal that a tuple later in the chain is getting locked */
-			tmfd->traversed = true;
-
-			/*
-			 * fetch target tuple
-			 *
-			 * Loop here to deal with updated or busy tuples
-			 */
-			InitDirtySnapshot(SnapshotDirty);
-			for (;;)
-			{
-				if (ItemPointerIndicatesMovedPartitions(tid))
-					ereport(ERROR,
-							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
-							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
-
-				tuple->t_self = *tid;
-				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
-				{
-					/*
-					 * If xmin isn't what we're expecting, the slot must have
-					 * been recycled and reused for an unrelated tuple.  This
-					 * implies that the latest version of the row was deleted,
-					 * so we need do nothing.  (Should be safe to examine xmin
-					 * without getting buffer's content lock.  We assume
-					 * reading a TransactionId to be atomic, and Xmin never
-					 * changes in an existing tuple, except to invalid or
-					 * frozen, and neither of those can match priorXmax.)
-					 */
-					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-											 priorXmax))
-					{
-						ReleaseBuffer(buffer);
-						return TM_Deleted;
-					}
-
-					/* otherwise xmin should not be dirty... */
-					if (TransactionIdIsValid(SnapshotDirty.xmin))
-						ereport(ERROR,
-								(errcode(ERRCODE_DATA_CORRUPTED),
-								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
-												 SnapshotDirty.xmin,
-												 ItemPointerGetBlockNumber(&tuple->t_self),
-												 ItemPointerGetOffsetNumber(&tuple->t_self),
-												 RelationGetRelationName(relation))));
-
-					/*
-					 * If tuple is being updated by other transaction then we
-					 * have to wait for its commit/abort, or die trying.
-					 */
-					if (TransactionIdIsValid(SnapshotDirty.xmax))
-					{
-						ReleaseBuffer(buffer);
-						switch (wait_policy)
-						{
-							case LockWaitBlock:
-								XactLockTableWait(SnapshotDirty.xmax,
-												  relation, &tuple->t_self,
-												  XLTW_FetchUpdated);
-								break;
-							case LockWaitSkip:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									/* skip instead of waiting */
-									return TM_WouldBlock;
-								break;
-							case LockWaitError:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									ereport(ERROR,
-											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
-											 errmsg("could not obtain lock on row in relation \"%s\"",
-													RelationGetRelationName(relation))));
-								break;
-						}
-						continue;	/* loop back to repeat heap_fetch */
-					}
-
-					/*
-					 * If tuple was inserted by our own transaction, we have
-					 * to check cmin against cid: cmin >= current CID means
-					 * our command cannot see the tuple, so we should ignore
-					 * it. Otherwise heap_lock_tuple() will throw an error,
-					 * and so would any later attempt to update or delete the
-					 * tuple.  (We need not check cmax because
-					 * HeapTupleSatisfiesDirty will consider a tuple deleted
-					 * by our transaction dead, regardless of cmax.)  We just
-					 * checked that priorXmax == xmin, so we can test that
-					 * variable instead of doing HeapTupleHeaderGetXmin again.
-					 */
-					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
-						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
-					{
-						tmfd->xmax = priorXmax;
-
-						/*
-						 * Cmin is the problematic value, so store that. See
-						 * above.
-						 */
-						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
-						return TM_SelfModified;
-					}
-
-					/*
-					 * This is a live tuple, so try to lock it again.
-					 */
-					ReleaseBuffer(buffer);
-					goto tuple_lock_retry;
-				}
-
-				/*
-				 * If the referenced slot was actually empty, the latest
-				 * version of the row must have been deleted, so we need do
-				 * nothing.
-				 */
-				if (tuple->t_data == NULL)
-				{
-					Assert(!BufferIsValid(buffer));
-					return TM_Deleted;
-				}
-
-				/*
-				 * As above, if xmin isn't what we're expecting, do nothing.
-				 */
-				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-										 priorXmax))
-				{
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/*
-				 * If we get here, the tuple was found but failed
-				 * SnapshotDirty. Assuming the xmin is either a committed xact
-				 * or our own xact (as it certainly should be if we're trying
-				 * to modify the tuple), this must mean that the row was
-				 * updated or deleted by either a committed xact or our own
-				 * xact.  If it was deleted, we can ignore it; if it was
-				 * updated then chain up to the next version and repeat the
-				 * whole process.
-				 *
-				 * As above, it should be safe to examine xmax and t_ctid
-				 * without the buffer content lock, because they can't be
-				 * changing.  We'd better hold a buffer pin though.
-				 */
-				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
-				{
-					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/* updated, so look at the updated row */
-				*tid = tuple->t_data->t_ctid;
-				/* updated row should have xmin matching this xmax */
-				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
-				/* loop back to fetch next in chain */
-			}
-		}
-		else
-		{
-			/* tuple was deleted, so give up */
-			return TM_Deleted;
-		}
-	}
-
-	slot->tts_tableOid = RelationGetRelid(relation);
-	tuple->t_tableOid = slot->tts_tableOid;
-
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
-	return result;
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
 }
 
 
@@ -2523,6 +2370,236 @@ SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 	}
 }
 
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
+{
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	TM_Result	result;
+	Buffer		buffer = InvalidBuffer;
+	HeapTuple	tuple = &bslot->base.tupdata;
+	bool		follow_updates;
+
+	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+	tmfd->traversed = false;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+	tuple->t_self = *tid;
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
+
+	if (result == TM_Updated &&
+		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+	{
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
+
+		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
+		{
+			SnapshotData SnapshotDirty;
+			TransactionId priorXmax;
+
+			/* it was updated, so look at the updated version */
+			*tid = tmfd->ctid;
+			/* updated row should have xmin matching this xmax */
+			priorXmax = tmfd->xmax;
+
+			/* signal that a tuple later in the chain is getting locked */
+			tmfd->traversed = true;
+
+			/*
+			 * fetch target tuple
+			 *
+			 * Loop here to deal with updated or busy tuples
+			 */
+			InitDirtySnapshot(SnapshotDirty);
+			for (;;)
+			{
+				if (ItemPointerIndicatesMovedPartitions(tid))
+					ereport(ERROR,
+							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
+							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
+
+				tuple->t_self = *tid;
+				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
+				{
+					/*
+					 * If xmin isn't what we're expecting, the slot must have
+					 * been recycled and reused for an unrelated tuple.  This
+					 * implies that the latest version of the row was deleted,
+					 * so we need do nothing.  (Should be safe to examine xmin
+					 * without getting buffer's content lock.  We assume
+					 * reading a TransactionId to be atomic, and Xmin never
+					 * changes in an existing tuple, except to invalid or
+					 * frozen, and neither of those can match priorXmax.)
+					 */
+					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+											 priorXmax))
+					{
+						ReleaseBuffer(buffer);
+						return TM_Deleted;
+					}
+
+					/* otherwise xmin should not be dirty... */
+					if (TransactionIdIsValid(SnapshotDirty.xmin))
+						ereport(ERROR,
+								(errcode(ERRCODE_DATA_CORRUPTED),
+								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
+												 SnapshotDirty.xmin,
+												 ItemPointerGetBlockNumber(&tuple->t_self),
+												 ItemPointerGetOffsetNumber(&tuple->t_self),
+												 RelationGetRelationName(relation))));
+
+					/*
+					 * If tuple is being updated by other transaction then we
+					 * have to wait for its commit/abort, or die trying.
+					 */
+					if (TransactionIdIsValid(SnapshotDirty.xmax))
+					{
+						ReleaseBuffer(buffer);
+						switch (wait_policy)
+						{
+							case LockWaitBlock:
+								XactLockTableWait(SnapshotDirty.xmax,
+												  relation, &tuple->t_self,
+												  XLTW_FetchUpdated);
+								break;
+							case LockWaitSkip:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									/* skip instead of waiting */
+									return TM_WouldBlock;
+								break;
+							case LockWaitError:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									ereport(ERROR,
+											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
+											 errmsg("could not obtain lock on row in relation \"%s\"",
+													RelationGetRelationName(relation))));
+								break;
+						}
+						continue;	/* loop back to repeat heap_fetch */
+					}
+
+					/*
+					 * If tuple was inserted by our own transaction, we have
+					 * to check cmin against cid: cmin >= current CID means
+					 * our command cannot see the tuple, so we should ignore
+					 * it. Otherwise heap_lock_tuple() will throw an error,
+					 * and so would any later attempt to update or delete the
+					 * tuple.  (We need not check cmax because
+					 * HeapTupleSatisfiesDirty will consider a tuple deleted
+					 * by our transaction dead, regardless of cmax.)  We just
+					 * checked that priorXmax == xmin, so we can test that
+					 * variable instead of doing HeapTupleHeaderGetXmin again.
+					 */
+					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
+						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
+					{
+						tmfd->xmax = priorXmax;
+
+						/*
+						 * Cmin is the problematic value, so store that. See
+						 * above.
+						 */
+						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
+						ReleaseBuffer(buffer);
+						return TM_SelfModified;
+					}
+
+					/*
+					 * This is a live tuple, so try to lock it again.
+					 */
+					ReleaseBuffer(buffer);
+					goto tuple_lock_retry;
+				}
+
+				/*
+				 * If the referenced slot was actually empty, the latest
+				 * version of the row must have been deleted, so we need do
+				 * nothing.
+				 */
+				if (tuple->t_data == NULL)
+				{
+					Assert(!BufferIsValid(buffer));
+					return TM_Deleted;
+				}
+
+				/*
+				 * As above, if xmin isn't what we're expecting, do nothing.
+				 */
+				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+										 priorXmax))
+				{
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/*
+				 * If we get here, the tuple was found but failed
+				 * SnapshotDirty. Assuming the xmin is either a committed xact
+				 * or our own xact (as it certainly should be if we're trying
+				 * to modify the tuple), this must mean that the row was
+				 * updated or deleted by either a committed xact or our own
+				 * xact.  If it was deleted, we can ignore it; if it was
+				 * updated then chain up to the next version and repeat the
+				 * whole process.
+				 *
+				 * As above, it should be safe to examine xmax and t_ctid
+				 * without the buffer content lock, because they can't be
+				 * changing.  We'd better hold a buffer pin though.
+				 */
+				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
+				{
+					/* deleted, so forget about it */
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/* updated, so look at the updated row */
+				*tid = tuple->t_data->t_ctid;
+				/* updated row should have xmin matching this xmax */
+				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
+				ReleaseBuffer(buffer);
+				/* loop back to fetch next in chain */
+			}
+		}
+		else
+		{
+			/* tuple was deleted, so give up */
+			return TM_Deleted;
+		}
+	}
+
+	slot->tts_tableOid = RelationGetRelid(relation);
+	tuple->t_tableOid = slot->tts_tableOid;
+
+	/* store in slot, transferring existing pin */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
+	return result;
+}
+
 
 /* ------------------------------------------------------------------------
  * Definition of the heap table access method.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fcee..f3476697ff 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								false, NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								false, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 687a5422ea..a110d66b0c 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1335,7 +1335,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1345,7 +1346,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockUpdated,
+							  lockedSlot);
 }
 
 /*
@@ -1490,7 +1493,16 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		/*
+		 * Ask ExecDeleteAct() to immediately place the lock the updated tuple
+		 * if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot(), slot);
 
 		switch (result)
 		{
@@ -1543,87 +1555,34 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1680,7 +1639,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1955,7 +1914,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt, bool lockUpdated,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2089,7 +2049,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockUpdated, lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2240,7 +2201,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2293,12 +2254,37 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+		bool		lockUpdated;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+
+		/*
+		 * Ask ExecUpdateAct() to immediately place the lock the updated tuple
+		 * if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			lockUpdated = true;
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			lockUpdated = false;
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, lockUpdated, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2351,86 +2337,32 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2674,7 +2606,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2881,7 +2813,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   false, NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2899,7 +2832,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   false, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3847,7 +3781,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f..65797cd9f9 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +528,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 bool lockUpdated,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1453,9 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockUpdated - true if should lock the last row version if the concurrent
+ *		update is detected
+ *	lockedSlot - slot to save the locked tuple when lockUpdated is true
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1468,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   bool lockUpdated, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockUpdated, lockedSlot);
 }
 
 /*
@@ -1487,6 +1496,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
+ *	lockUpdated - true if should lock the last row version if the concurrent
+ *		update is detected
+ *	lockedSlot - slot to save the locked tuple when lockUpdated is true
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1506,12 +1518,14 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, bool lockUpdated,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockUpdated, lockedSlot);
 }
 
 /*
-- 
2.39.0

#17Alexander Korotkov
aekorotkov@gmail.com
In reply to: Aleksander Alekseev (#16)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi Aleksander,

On Mon, Jan 9, 2023 at 12:56 PM Aleksander Alekseev
<aleksander@timescale.com> wrote:

I'm going to push this if no objections.

I took a fresh look at the patch and it LGTM. I only did a few
cosmetic changes, PFA v7.

Changes since v6 are:

Thank you for looking into this. It appears that I've applied changes
proposed by Mason to v5, not v6. That lead to comment mismatch with
the code that you've noticed. v8 should be correct. Please, recheck.

------
Regards,
Alexander Korotkov

Attachments:

0001-Allow-locking-updated-tuples-in-tuple_update-and--v8.patchapplication/octet-stream; name=0001-Allow-locking-updated-tuples-in-tuple_update-and--v8.patchDownload
From 69abc944290a1586403a72ba527073a9532ce0ca Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the lastest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.
Also, we now table_tuple_fetch_row_version() in ExecUpdate(), because old
version of row should be always the same that we've previously locked.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam_handler.c | 497 +++++++++++++----------
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 240 ++++-------
 src/include/access/tableam.h             |  23 +-
 4 files changed, 392 insertions(+), 374 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..1a606de3f63 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 								   HeapTuple tuple,
 								   OffsetNumber tupoffset);
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
 
 static const TableAmRoutine heapam_methods;
@@ -299,14 +305,39 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	/*
+	 * If the tuple has been concurrently updated, get lock already so that on
+	 * retry it will succeed, provided that the caller asked to do this by
+	 * providing a lockedSlot.
+	 */
+	if (result == TM_Updated && lockedSlot != NULL)
+	{
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +345,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,6 +373,26 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If the tuple has been concurrently updated, get lock already so that on
+	 * retry it will succeed, provided that the caller asked to do this by
+	 * providing a lockedSlot.
+	 */
+	if (result == TM_Updated && lockedSlot != NULL)
+	{
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
@@ -350,213 +402,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
 {
-	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
-	TM_Result	result;
-	Buffer		buffer;
-	HeapTuple	tuple = &bslot->base.tupdata;
-	bool		follow_updates;
-
-	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
-	tmfd->traversed = false;
-
-	Assert(TTS_IS_BUFFERTUPLE(slot));
-
-tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
-
-	if (result == TM_Updated &&
-		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
-	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-		ReleaseBuffer(buffer);
-
-		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
-		{
-			SnapshotData SnapshotDirty;
-			TransactionId priorXmax;
-
-			/* it was updated, so look at the updated version */
-			*tid = tmfd->ctid;
-			/* updated row should have xmin matching this xmax */
-			priorXmax = tmfd->xmax;
-
-			/* signal that a tuple later in the chain is getting locked */
-			tmfd->traversed = true;
-
-			/*
-			 * fetch target tuple
-			 *
-			 * Loop here to deal with updated or busy tuples
-			 */
-			InitDirtySnapshot(SnapshotDirty);
-			for (;;)
-			{
-				if (ItemPointerIndicatesMovedPartitions(tid))
-					ereport(ERROR,
-							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
-							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
-
-				tuple->t_self = *tid;
-				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
-				{
-					/*
-					 * If xmin isn't what we're expecting, the slot must have
-					 * been recycled and reused for an unrelated tuple.  This
-					 * implies that the latest version of the row was deleted,
-					 * so we need do nothing.  (Should be safe to examine xmin
-					 * without getting buffer's content lock.  We assume
-					 * reading a TransactionId to be atomic, and Xmin never
-					 * changes in an existing tuple, except to invalid or
-					 * frozen, and neither of those can match priorXmax.)
-					 */
-					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-											 priorXmax))
-					{
-						ReleaseBuffer(buffer);
-						return TM_Deleted;
-					}
-
-					/* otherwise xmin should not be dirty... */
-					if (TransactionIdIsValid(SnapshotDirty.xmin))
-						ereport(ERROR,
-								(errcode(ERRCODE_DATA_CORRUPTED),
-								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
-												 SnapshotDirty.xmin,
-												 ItemPointerGetBlockNumber(&tuple->t_self),
-												 ItemPointerGetOffsetNumber(&tuple->t_self),
-												 RelationGetRelationName(relation))));
-
-					/*
-					 * If tuple is being updated by other transaction then we
-					 * have to wait for its commit/abort, or die trying.
-					 */
-					if (TransactionIdIsValid(SnapshotDirty.xmax))
-					{
-						ReleaseBuffer(buffer);
-						switch (wait_policy)
-						{
-							case LockWaitBlock:
-								XactLockTableWait(SnapshotDirty.xmax,
-												  relation, &tuple->t_self,
-												  XLTW_FetchUpdated);
-								break;
-							case LockWaitSkip:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									/* skip instead of waiting */
-									return TM_WouldBlock;
-								break;
-							case LockWaitError:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									ereport(ERROR,
-											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
-											 errmsg("could not obtain lock on row in relation \"%s\"",
-													RelationGetRelationName(relation))));
-								break;
-						}
-						continue;	/* loop back to repeat heap_fetch */
-					}
-
-					/*
-					 * If tuple was inserted by our own transaction, we have
-					 * to check cmin against cid: cmin >= current CID means
-					 * our command cannot see the tuple, so we should ignore
-					 * it. Otherwise heap_lock_tuple() will throw an error,
-					 * and so would any later attempt to update or delete the
-					 * tuple.  (We need not check cmax because
-					 * HeapTupleSatisfiesDirty will consider a tuple deleted
-					 * by our transaction dead, regardless of cmax.)  We just
-					 * checked that priorXmax == xmin, so we can test that
-					 * variable instead of doing HeapTupleHeaderGetXmin again.
-					 */
-					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
-						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
-					{
-						tmfd->xmax = priorXmax;
-
-						/*
-						 * Cmin is the problematic value, so store that. See
-						 * above.
-						 */
-						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
-						return TM_SelfModified;
-					}
-
-					/*
-					 * This is a live tuple, so try to lock it again.
-					 */
-					ReleaseBuffer(buffer);
-					goto tuple_lock_retry;
-				}
-
-				/*
-				 * If the referenced slot was actually empty, the latest
-				 * version of the row must have been deleted, so we need do
-				 * nothing.
-				 */
-				if (tuple->t_data == NULL)
-				{
-					Assert(!BufferIsValid(buffer));
-					return TM_Deleted;
-				}
-
-				/*
-				 * As above, if xmin isn't what we're expecting, do nothing.
-				 */
-				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-										 priorXmax))
-				{
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/*
-				 * If we get here, the tuple was found but failed
-				 * SnapshotDirty. Assuming the xmin is either a committed xact
-				 * or our own xact (as it certainly should be if we're trying
-				 * to modify the tuple), this must mean that the row was
-				 * updated or deleted by either a committed xact or our own
-				 * xact.  If it was deleted, we can ignore it; if it was
-				 * updated then chain up to the next version and repeat the
-				 * whole process.
-				 *
-				 * As above, it should be safe to examine xmax and t_ctid
-				 * without the buffer content lock, because they can't be
-				 * changing.  We'd better hold a buffer pin though.
-				 */
-				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
-				{
-					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/* updated, so look at the updated row */
-				*tid = tuple->t_data->t_ctid;
-				/* updated row should have xmin matching this xmax */
-				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
-				/* loop back to fetch next in chain */
-			}
-		}
-		else
-		{
-			/* tuple was deleted, so give up */
-			return TM_Deleted;
-		}
-	}
-
-	slot->tts_tableOid = RelationGetRelid(relation);
-	tuple->t_tableOid = slot->tts_tableOid;
-
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
-	return result;
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
 }
 
 
@@ -2523,6 +2370,236 @@ SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 	}
 }
 
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
+{
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	TM_Result	result;
+	Buffer		buffer = InvalidBuffer;
+	HeapTuple	tuple = &bslot->base.tupdata;
+	bool		follow_updates;
+
+	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+	tmfd->traversed = false;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+	tuple->t_self = *tid;
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
+
+	if (result == TM_Updated &&
+		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+	{
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
+
+		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
+		{
+			SnapshotData SnapshotDirty;
+			TransactionId priorXmax;
+
+			/* it was updated, so look at the updated version */
+			*tid = tmfd->ctid;
+			/* updated row should have xmin matching this xmax */
+			priorXmax = tmfd->xmax;
+
+			/* signal that a tuple later in the chain is getting locked */
+			tmfd->traversed = true;
+
+			/*
+			 * fetch target tuple
+			 *
+			 * Loop here to deal with updated or busy tuples
+			 */
+			InitDirtySnapshot(SnapshotDirty);
+			for (;;)
+			{
+				if (ItemPointerIndicatesMovedPartitions(tid))
+					ereport(ERROR,
+							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
+							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
+
+				tuple->t_self = *tid;
+				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
+				{
+					/*
+					 * If xmin isn't what we're expecting, the slot must have
+					 * been recycled and reused for an unrelated tuple.  This
+					 * implies that the latest version of the row was deleted,
+					 * so we need do nothing.  (Should be safe to examine xmin
+					 * without getting buffer's content lock.  We assume
+					 * reading a TransactionId to be atomic, and Xmin never
+					 * changes in an existing tuple, except to invalid or
+					 * frozen, and neither of those can match priorXmax.)
+					 */
+					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+											 priorXmax))
+					{
+						ReleaseBuffer(buffer);
+						return TM_Deleted;
+					}
+
+					/* otherwise xmin should not be dirty... */
+					if (TransactionIdIsValid(SnapshotDirty.xmin))
+						ereport(ERROR,
+								(errcode(ERRCODE_DATA_CORRUPTED),
+								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
+												 SnapshotDirty.xmin,
+												 ItemPointerGetBlockNumber(&tuple->t_self),
+												 ItemPointerGetOffsetNumber(&tuple->t_self),
+												 RelationGetRelationName(relation))));
+
+					/*
+					 * If tuple is being updated by other transaction then we
+					 * have to wait for its commit/abort, or die trying.
+					 */
+					if (TransactionIdIsValid(SnapshotDirty.xmax))
+					{
+						ReleaseBuffer(buffer);
+						switch (wait_policy)
+						{
+							case LockWaitBlock:
+								XactLockTableWait(SnapshotDirty.xmax,
+												  relation, &tuple->t_self,
+												  XLTW_FetchUpdated);
+								break;
+							case LockWaitSkip:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									/* skip instead of waiting */
+									return TM_WouldBlock;
+								break;
+							case LockWaitError:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									ereport(ERROR,
+											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
+											 errmsg("could not obtain lock on row in relation \"%s\"",
+													RelationGetRelationName(relation))));
+								break;
+						}
+						continue;	/* loop back to repeat heap_fetch */
+					}
+
+					/*
+					 * If tuple was inserted by our own transaction, we have
+					 * to check cmin against cid: cmin >= current CID means
+					 * our command cannot see the tuple, so we should ignore
+					 * it. Otherwise heap_lock_tuple() will throw an error,
+					 * and so would any later attempt to update or delete the
+					 * tuple.  (We need not check cmax because
+					 * HeapTupleSatisfiesDirty will consider a tuple deleted
+					 * by our transaction dead, regardless of cmax.)  We just
+					 * checked that priorXmax == xmin, so we can test that
+					 * variable instead of doing HeapTupleHeaderGetXmin again.
+					 */
+					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
+						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
+					{
+						tmfd->xmax = priorXmax;
+
+						/*
+						 * Cmin is the problematic value, so store that. See
+						 * above.
+						 */
+						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
+						ReleaseBuffer(buffer);
+						return TM_SelfModified;
+					}
+
+					/*
+					 * This is a live tuple, so try to lock it again.
+					 */
+					ReleaseBuffer(buffer);
+					goto tuple_lock_retry;
+				}
+
+				/*
+				 * If the referenced slot was actually empty, the latest
+				 * version of the row must have been deleted, so we need do
+				 * nothing.
+				 */
+				if (tuple->t_data == NULL)
+				{
+					Assert(!BufferIsValid(buffer));
+					return TM_Deleted;
+				}
+
+				/*
+				 * As above, if xmin isn't what we're expecting, do nothing.
+				 */
+				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+										 priorXmax))
+				{
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/*
+				 * If we get here, the tuple was found but failed
+				 * SnapshotDirty. Assuming the xmin is either a committed xact
+				 * or our own xact (as it certainly should be if we're trying
+				 * to modify the tuple), this must mean that the row was
+				 * updated or deleted by either a committed xact or our own
+				 * xact.  If it was deleted, we can ignore it; if it was
+				 * updated then chain up to the next version and repeat the
+				 * whole process.
+				 *
+				 * As above, it should be safe to examine xmax and t_ctid
+				 * without the buffer content lock, because they can't be
+				 * changing.  We'd better hold a buffer pin though.
+				 */
+				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
+				{
+					/* deleted, so forget about it */
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/* updated, so look at the updated row */
+				*tid = tuple->t_data->t_ctid;
+				/* updated row should have xmin matching this xmax */
+				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
+				ReleaseBuffer(buffer);
+				/* loop back to fetch next in chain */
+			}
+		}
+		else
+		{
+			/* tuple was deleted, so give up */
+			return TM_Deleted;
+		}
+	}
+
+	slot->tts_tableOid = RelationGetRelid(relation);
+	tuple->t_tableOid = slot->tts_tableOid;
+
+	/* store in slot, transferring existing pin */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
+	return result;
+}
+
 
 /* ------------------------------------------------------------------------
  * Definition of the heap table access method.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..4cfdb4066f6 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 687a5422eab..10eab1e4a55 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1335,7 +1335,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1345,7 +1346,8 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockedSlot);
 }
 
 /*
@@ -1490,7 +1492,16 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		/*
+		 * Ask ExecDeleteAct() to immediately place the lock on the updated
+		 * tuple if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   slot);
 
 		switch (result)
 		{
@@ -1543,87 +1554,34 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1680,7 +1638,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1955,7 +1913,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2089,7 +2048,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2240,7 +2200,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2293,12 +2253,34 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+
+		/*
+		 * Ask ExecUpdateAct() to immediately place the lock on the updated
+		 * tuple if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2351,86 +2333,32 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2674,7 +2602,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2881,7 +2809,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2899,7 +2828,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3847,7 +3777,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..6b2b4020178 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,8 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +527,8 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1451,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1465,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlot);
 }
 
 /*
@@ -1487,7 +1493,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1506,12 +1514,13 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#18Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#17)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Mon, Jan 9, 2023 at 1:10 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Jan 9, 2023 at 12:56 PM Aleksander Alekseev
<aleksander@timescale.com> wrote:

I'm going to push this if no objections.

I took a fresh look at the patch and it LGTM. I only did a few
cosmetic changes, PFA v7.

Changes since v6 are:

Thank you for looking into this. It appears that I've applied changes
proposed by Mason to v5, not v6. That lead to comment mismatch with
the code that you've noticed. v8 should be correct. Please, recheck.

v9 also incorporates lost changes to the commit message by Pavel Borisov.

------
Regards,
Alexander Korotkov

Attachments:

0001-Allow-locking-updated-tuples-in-tuple_update-and--v9.patchapplication/octet-stream; name=0001-Allow-locking-updated-tuples-in-tuple_update-and--v9.patchDownload
From ba82bcd6d0a1f9287054b279d50871de51f61399 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the latest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.
Also, in ExecUpdate() we now get rid of extra table_tuple_fetch_row_version() call,
because old version of row should be always the same that we've previously locked.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam_handler.c | 497 +++++++++++++----------
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 240 ++++-------
 src/include/access/tableam.h             |  23 +-
 4 files changed, 392 insertions(+), 374 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..1a606de3f63 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 								   HeapTuple tuple,
 								   OffsetNumber tupoffset);
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
 
 static const TableAmRoutine heapam_methods;
@@ -299,14 +305,39 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					TupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	/*
+	 * If the tuple has been concurrently updated, get lock already so that on
+	 * retry it will succeed, provided that the caller asked to do this by
+	 * providing a lockedSlot.
+	 */
+	if (result == TM_Updated && lockedSlot != NULL)
+	{
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +345,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					TupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -341,6 +373,26 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If the tuple has been concurrently updated, get lock already so that on
+	 * retry it will succeed, provided that the caller asked to do this by
+	 * providing a lockedSlot.
+	 */
+	if (result == TM_Updated && lockedSlot != NULL)
+	{
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											lockedSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
@@ -350,213 +402,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
 {
-	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
-	TM_Result	result;
-	Buffer		buffer;
-	HeapTuple	tuple = &bslot->base.tupdata;
-	bool		follow_updates;
-
-	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
-	tmfd->traversed = false;
-
-	Assert(TTS_IS_BUFFERTUPLE(slot));
-
-tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
-
-	if (result == TM_Updated &&
-		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
-	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-		ReleaseBuffer(buffer);
-
-		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
-		{
-			SnapshotData SnapshotDirty;
-			TransactionId priorXmax;
-
-			/* it was updated, so look at the updated version */
-			*tid = tmfd->ctid;
-			/* updated row should have xmin matching this xmax */
-			priorXmax = tmfd->xmax;
-
-			/* signal that a tuple later in the chain is getting locked */
-			tmfd->traversed = true;
-
-			/*
-			 * fetch target tuple
-			 *
-			 * Loop here to deal with updated or busy tuples
-			 */
-			InitDirtySnapshot(SnapshotDirty);
-			for (;;)
-			{
-				if (ItemPointerIndicatesMovedPartitions(tid))
-					ereport(ERROR,
-							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
-							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
-
-				tuple->t_self = *tid;
-				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
-				{
-					/*
-					 * If xmin isn't what we're expecting, the slot must have
-					 * been recycled and reused for an unrelated tuple.  This
-					 * implies that the latest version of the row was deleted,
-					 * so we need do nothing.  (Should be safe to examine xmin
-					 * without getting buffer's content lock.  We assume
-					 * reading a TransactionId to be atomic, and Xmin never
-					 * changes in an existing tuple, except to invalid or
-					 * frozen, and neither of those can match priorXmax.)
-					 */
-					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-											 priorXmax))
-					{
-						ReleaseBuffer(buffer);
-						return TM_Deleted;
-					}
-
-					/* otherwise xmin should not be dirty... */
-					if (TransactionIdIsValid(SnapshotDirty.xmin))
-						ereport(ERROR,
-								(errcode(ERRCODE_DATA_CORRUPTED),
-								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
-												 SnapshotDirty.xmin,
-												 ItemPointerGetBlockNumber(&tuple->t_self),
-												 ItemPointerGetOffsetNumber(&tuple->t_self),
-												 RelationGetRelationName(relation))));
-
-					/*
-					 * If tuple is being updated by other transaction then we
-					 * have to wait for its commit/abort, or die trying.
-					 */
-					if (TransactionIdIsValid(SnapshotDirty.xmax))
-					{
-						ReleaseBuffer(buffer);
-						switch (wait_policy)
-						{
-							case LockWaitBlock:
-								XactLockTableWait(SnapshotDirty.xmax,
-												  relation, &tuple->t_self,
-												  XLTW_FetchUpdated);
-								break;
-							case LockWaitSkip:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									/* skip instead of waiting */
-									return TM_WouldBlock;
-								break;
-							case LockWaitError:
-								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
-									ereport(ERROR,
-											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
-											 errmsg("could not obtain lock on row in relation \"%s\"",
-													RelationGetRelationName(relation))));
-								break;
-						}
-						continue;	/* loop back to repeat heap_fetch */
-					}
-
-					/*
-					 * If tuple was inserted by our own transaction, we have
-					 * to check cmin against cid: cmin >= current CID means
-					 * our command cannot see the tuple, so we should ignore
-					 * it. Otherwise heap_lock_tuple() will throw an error,
-					 * and so would any later attempt to update or delete the
-					 * tuple.  (We need not check cmax because
-					 * HeapTupleSatisfiesDirty will consider a tuple deleted
-					 * by our transaction dead, regardless of cmax.)  We just
-					 * checked that priorXmax == xmin, so we can test that
-					 * variable instead of doing HeapTupleHeaderGetXmin again.
-					 */
-					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
-						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
-					{
-						tmfd->xmax = priorXmax;
-
-						/*
-						 * Cmin is the problematic value, so store that. See
-						 * above.
-						 */
-						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
-						return TM_SelfModified;
-					}
-
-					/*
-					 * This is a live tuple, so try to lock it again.
-					 */
-					ReleaseBuffer(buffer);
-					goto tuple_lock_retry;
-				}
-
-				/*
-				 * If the referenced slot was actually empty, the latest
-				 * version of the row must have been deleted, so we need do
-				 * nothing.
-				 */
-				if (tuple->t_data == NULL)
-				{
-					Assert(!BufferIsValid(buffer));
-					return TM_Deleted;
-				}
-
-				/*
-				 * As above, if xmin isn't what we're expecting, do nothing.
-				 */
-				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
-										 priorXmax))
-				{
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/*
-				 * If we get here, the tuple was found but failed
-				 * SnapshotDirty. Assuming the xmin is either a committed xact
-				 * or our own xact (as it certainly should be if we're trying
-				 * to modify the tuple), this must mean that the row was
-				 * updated or deleted by either a committed xact or our own
-				 * xact.  If it was deleted, we can ignore it; if it was
-				 * updated then chain up to the next version and repeat the
-				 * whole process.
-				 *
-				 * As above, it should be safe to examine xmax and t_ctid
-				 * without the buffer content lock, because they can't be
-				 * changing.  We'd better hold a buffer pin though.
-				 */
-				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
-				{
-					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
-					return TM_Deleted;
-				}
-
-				/* updated, so look at the updated row */
-				*tid = tuple->t_data->t_ctid;
-				/* updated row should have xmin matching this xmax */
-				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
-				/* loop back to fetch next in chain */
-			}
-		}
-		else
-		{
-			/* tuple was deleted, so give up */
-			return TM_Deleted;
-		}
-	}
-
-	slot->tts_tableOid = RelationGetRelid(relation);
-	tuple->t_tableOid = slot->tts_tableOid;
-
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
-	return result;
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, false);
 }
 
 
@@ -2523,6 +2370,236 @@ SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
 	}
 }
 
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
+{
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	TM_Result	result;
+	Buffer		buffer = InvalidBuffer;
+	HeapTuple	tuple = &bslot->base.tupdata;
+	bool		follow_updates;
+
+	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+	tmfd->traversed = false;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+	tuple->t_self = *tid;
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
+
+	if (result == TM_Updated &&
+		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+	{
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
+
+		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
+		{
+			SnapshotData SnapshotDirty;
+			TransactionId priorXmax;
+
+			/* it was updated, so look at the updated version */
+			*tid = tmfd->ctid;
+			/* updated row should have xmin matching this xmax */
+			priorXmax = tmfd->xmax;
+
+			/* signal that a tuple later in the chain is getting locked */
+			tmfd->traversed = true;
+
+			/*
+			 * fetch target tuple
+			 *
+			 * Loop here to deal with updated or busy tuples
+			 */
+			InitDirtySnapshot(SnapshotDirty);
+			for (;;)
+			{
+				if (ItemPointerIndicatesMovedPartitions(tid))
+					ereport(ERROR,
+							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
+							 errmsg("tuple to be locked was already moved to another partition due to concurrent update")));
+
+				tuple->t_self = *tid;
+				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
+				{
+					/*
+					 * If xmin isn't what we're expecting, the slot must have
+					 * been recycled and reused for an unrelated tuple.  This
+					 * implies that the latest version of the row was deleted,
+					 * so we need do nothing.  (Should be safe to examine xmin
+					 * without getting buffer's content lock.  We assume
+					 * reading a TransactionId to be atomic, and Xmin never
+					 * changes in an existing tuple, except to invalid or
+					 * frozen, and neither of those can match priorXmax.)
+					 */
+					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+											 priorXmax))
+					{
+						ReleaseBuffer(buffer);
+						return TM_Deleted;
+					}
+
+					/* otherwise xmin should not be dirty... */
+					if (TransactionIdIsValid(SnapshotDirty.xmin))
+						ereport(ERROR,
+								(errcode(ERRCODE_DATA_CORRUPTED),
+								 errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"",
+												 SnapshotDirty.xmin,
+												 ItemPointerGetBlockNumber(&tuple->t_self),
+												 ItemPointerGetOffsetNumber(&tuple->t_self),
+												 RelationGetRelationName(relation))));
+
+					/*
+					 * If tuple is being updated by other transaction then we
+					 * have to wait for its commit/abort, or die trying.
+					 */
+					if (TransactionIdIsValid(SnapshotDirty.xmax))
+					{
+						ReleaseBuffer(buffer);
+						switch (wait_policy)
+						{
+							case LockWaitBlock:
+								XactLockTableWait(SnapshotDirty.xmax,
+												  relation, &tuple->t_self,
+												  XLTW_FetchUpdated);
+								break;
+							case LockWaitSkip:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									/* skip instead of waiting */
+									return TM_WouldBlock;
+								break;
+							case LockWaitError:
+								if (!ConditionalXactLockTableWait(SnapshotDirty.xmax))
+									ereport(ERROR,
+											(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
+											 errmsg("could not obtain lock on row in relation \"%s\"",
+													RelationGetRelationName(relation))));
+								break;
+						}
+						continue;	/* loop back to repeat heap_fetch */
+					}
+
+					/*
+					 * If tuple was inserted by our own transaction, we have
+					 * to check cmin against cid: cmin >= current CID means
+					 * our command cannot see the tuple, so we should ignore
+					 * it. Otherwise heap_lock_tuple() will throw an error,
+					 * and so would any later attempt to update or delete the
+					 * tuple.  (We need not check cmax because
+					 * HeapTupleSatisfiesDirty will consider a tuple deleted
+					 * by our transaction dead, regardless of cmax.)  We just
+					 * checked that priorXmax == xmin, so we can test that
+					 * variable instead of doing HeapTupleHeaderGetXmin again.
+					 */
+					if (TransactionIdIsCurrentTransactionId(priorXmax) &&
+						HeapTupleHeaderGetCmin(tuple->t_data) >= cid)
+					{
+						tmfd->xmax = priorXmax;
+
+						/*
+						 * Cmin is the problematic value, so store that. See
+						 * above.
+						 */
+						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
+						ReleaseBuffer(buffer);
+						return TM_SelfModified;
+					}
+
+					/*
+					 * This is a live tuple, so try to lock it again.
+					 */
+					ReleaseBuffer(buffer);
+					goto tuple_lock_retry;
+				}
+
+				/*
+				 * If the referenced slot was actually empty, the latest
+				 * version of the row must have been deleted, so we need do
+				 * nothing.
+				 */
+				if (tuple->t_data == NULL)
+				{
+					Assert(!BufferIsValid(buffer));
+					return TM_Deleted;
+				}
+
+				/*
+				 * As above, if xmin isn't what we're expecting, do nothing.
+				 */
+				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
+										 priorXmax))
+				{
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/*
+				 * If we get here, the tuple was found but failed
+				 * SnapshotDirty. Assuming the xmin is either a committed xact
+				 * or our own xact (as it certainly should be if we're trying
+				 * to modify the tuple), this must mean that the row was
+				 * updated or deleted by either a committed xact or our own
+				 * xact.  If it was deleted, we can ignore it; if it was
+				 * updated then chain up to the next version and repeat the
+				 * whole process.
+				 *
+				 * As above, it should be safe to examine xmax and t_ctid
+				 * without the buffer content lock, because they can't be
+				 * changing.  We'd better hold a buffer pin though.
+				 */
+				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
+				{
+					/* deleted, so forget about it */
+					ReleaseBuffer(buffer);
+					return TM_Deleted;
+				}
+
+				/* updated, so look at the updated row */
+				*tid = tuple->t_data->t_ctid;
+				/* updated row should have xmin matching this xmax */
+				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
+				ReleaseBuffer(buffer);
+				/* loop back to fetch next in chain */
+			}
+		}
+		else
+		{
+			/* tuple was deleted, so give up */
+			return TM_Deleted;
+		}
+	}
+
+	slot->tts_tableOid = RelationGetRelid(relation);
+	tuple->t_tableOid = slot->tts_tableOid;
+
+	/* store in slot, transferring existing pin */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
+	return result;
+}
+
 
 /* ------------------------------------------------------------------------
  * Definition of the heap table access method.
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..4cfdb4066f6 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 687a5422eab..10eab1e4a55 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1335,7 +1335,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1345,7 +1346,8 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lockedSlot);
 }
 
 /*
@@ -1490,7 +1492,16 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		/*
+		 * Ask ExecDeleteAct() to immediately place the lock on the updated
+		 * tuple if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   slot);
 
 		switch (result)
 		{
@@ -1543,87 +1554,34 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
+					ExecCopySlot(inputslot, slot);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1680,7 +1638,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -1955,7 +1913,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, UpdateContext *updateCxt,
+			  TupleTableSlot *lockedSlot)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2089,7 +2048,8 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lockedSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2240,7 +2200,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2293,12 +2253,34 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		TupleTableSlot *oldSlot;
+
 		/* Fill in the slot appropriately */
 		ExecUpdatePrepareSlot(resultRelInfo, slot, estate);
 
 redo_act:
+
+		/*
+		 * Ask ExecUpdateAct() to immediately place the lock on the updated
+		 * tuple if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot() && !locked)
+		{
+			/* Make sure ri_oldTupleSlot is initialized. */
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			/* Fetch the most recent version of old tuple. */
+			oldSlot = resultRelInfo->ri_oldTupleSlot;
+		}
+		else
+		{
+			oldSlot = NULL;
+		}
+
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, &updateCxt, oldSlot);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2351,86 +2333,32 @@ redo_act:
 				{
 					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					ExecCopySlot(inputslot, oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2674,7 +2602,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2881,7 +2809,8 @@ lmerge_matched:
 				}
 				ExecUpdatePrepareSlot(resultRelInfo, newslot, context->estate);
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, mtstate->canSetTag, &updateCxt);
+									   newslot, mtstate->canSetTag, &updateCxt,
+									   NULL);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2899,7 +2828,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid, false,
+									   NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3847,7 +3777,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..6b2b4020178 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,8 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +527,8 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 TupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1451,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1465,13 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlot);
 }
 
 /*
@@ -1487,7 +1493,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1506,12 +1514,13 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, TupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlot);
 }
 
 /*
-- 
2.24.3 (Apple Git-128)

#19Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Alexander Korotkov (#18)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Alexander!

On Mon, 9 Jan 2023 at 13:29, Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Jan 9, 2023 at 1:10 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Jan 9, 2023 at 12:56 PM Aleksander Alekseev
<aleksander@timescale.com> wrote:

I'm going to push this if no objections.

I took a fresh look at the patch and it LGTM. I only did a few
cosmetic changes, PFA v7.

Changes since v6 are:

Thank you for looking into this. It appears that I've applied changes
proposed by Mason to v5, not v6. That lead to comment mismatch with
the code that you've noticed. v8 should be correct. Please, recheck.

v9 also incorporates lost changes to the commit message by Pavel Borisov.

I've looked through patch v9. It resembles patch v5 plus comments
clarification by Mason plus the right discussion link in the commit
message from v8. Aleksander's proposal of Assert in v7 was due to
changes lost between v5 and v6, as combining connected variables in v5
makes checks for them being in agreement one with the other
unnecessary. So changes from v7 are not in v9.

Sorry for being so detailed in small details. In my opinion the patch
now is ready to be committed.

Regards,
Pavel Borisov

#20Aleksander Alekseev
aleksander@timescale.com
In reply to: Pavel Borisov (#19)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Alexander, Pavel,

Sorry for being so detailed in small details. In my opinion the patch
now is ready to be committed.

Agree.

Personally I liked the version with (lockUpdated, lockedSlot) pair a
bit more since it is a bit more readable, however the version without
lockUpdated is less error prone and slightly more efficient. So all in
all I have no strong opinion on which is better.

--
Best regards,
Aleksander Alekseev

#21Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#19)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Pavel!

On Mon, Jan 9, 2023 at 1:41 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

On Mon, 9 Jan 2023 at 13:29, Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Jan 9, 2023 at 1:10 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Jan 9, 2023 at 12:56 PM Aleksander Alekseev
<aleksander@timescale.com> wrote:

I'm going to push this if no objections.

I took a fresh look at the patch and it LGTM. I only did a few
cosmetic changes, PFA v7.

Changes since v6 are:

Thank you for looking into this. It appears that I've applied changes
proposed by Mason to v5, not v6. That lead to comment mismatch with
the code that you've noticed. v8 should be correct. Please, recheck.

v9 also incorporates lost changes to the commit message by Pavel Borisov.

I've looked through patch v9. It resembles patch v5 plus comments
clarification by Mason plus the right discussion link in the commit
message from v8. Aleksander's proposal of Assert in v7 was due to
changes lost between v5 and v6, as combining connected variables in v5
makes checks for them being in agreement one with the other
unnecessary. So changes from v7 are not in v9.

Sorry for being so detailed in small details. In my opinion the patch
now is ready to be committed.

Sorry for creating this mess with lost changes. And thank you for
confirming it's good now. I'm going to push v9.

------
Regards,
Alexander Korotkov

#22Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#21)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

On 2023-01-09 13:46:50 +0300, Alexander Korotkov wrote:

I'm going to push v9.

Could you hold off for a bit? I'd like to look at this, I'm not sure I like
the direction.

Greetings,

Andres Freund

#23Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#18)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

I'm a bit worried that this is optimizing the rare case while hurting the
common case. See e.g. my point below about creating additional slots in the
happy path.

It's also not clear that change is right directionally. If we want to avoid
re-fetching the "original" row version, why don't we provide that
functionality via table_tuple_lock()?

On 2023-01-09 13:29:18 +0300, Alexander Korotkov wrote:

@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
HeapTuple tuple,
OffsetNumber tupoffset);

+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
static const TableAmRoutine heapam_methods;
@@ -299,14 +305,39 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
static TM_Result
heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					TupleTableSlot *lockedSlot)
{
+	TM_Result	result;
+
/*
* Currently Deleting of index tuples are handled at vacuum, in case if
* the storage itself is cleaning the dead tuples by itself, it is the
* time to call the index tuple deletion also.
*/
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+	/*
+	 * If the tuple has been concurrently updated, get lock already so that on
+	 * retry it will succeed, provided that the caller asked to do this by
+	 * providing a lockedSlot.
+	 */
+	if (result == TM_Updated && lockedSlot != NULL)
+	{
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											lockedSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);

You're ignoring the 'wait' parameter here, no? I think the modification to
heapam_tuple_update() has the same issue.

+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;

Doesn't this mean that the caller can't easily distinguish between
heapam_tuple_delete() and heapam_tuple_lock_internal() returning a failure
state?

@@ -350,213 +402,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
LockWaitPolicy wait_policy, uint8 flags,
TM_FailureData *tmfd)
{

Moving the entire body of the function around, makes it harder to review
this change, because the code movement is intermingled with "actual" changes.

+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
+{
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	TM_Result	result;
+	Buffer		buffer = InvalidBuffer;
+	HeapTuple	tuple = &bslot->base.tupdata;
+	bool		follow_updates;
+
+	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+	tmfd->traversed = false;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+	tuple->t_self = *tid;
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;

To make sure I understand: You're basically trying to have
heapam_tuple_lock_internal() work as before, except that you want to omit
fetching the first row version, assuming that the caller already tried to lock
it?

I think at the very this needs an assert verifying that the slot actually
contains a tuple in the "updated" path.

+	if (result == TM_Updated &&
+		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+	{
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));

Why shouldn't this be checked in the updated case as well?

@@ -1490,7 +1492,16 @@ ExecDelete(ModifyTableContext *context,
* transaction-snapshot mode transactions.
*/
ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+		/*
+		 * Ask ExecDeleteAct() to immediately place the lock on the updated
+		 * tuple if we will need EvalPlanQual() in that case to handle it.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   slot);

I don't like that 'slot' is now used for multiple things. I think this could
best be addressed by simply moving the slot variable inside the blocks using
it. And here it should be named more accurately.

Is there a potential conflict with other uses of the ExecGetReturningSlot()?

Given that we now always create the slot, doesn't this increase the overhead
for the very common case of not needing EPQ? We'll create unnecessary slots
all the time, no?

*/
EvalPlanQualBegin(context->epqstate);
inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
resultRelInfo->ri_RangeTableIndex);
+ ExecCopySlot(inputslot, slot);

-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);

The only point of using EvalPlanQualSlot() is to avoid copying the tuple from
one slot to another. Given that we're not benefiting from that anymore (due to
your manual ExecCopySlot() call), it seems we could just pass 'slot' to
EvalPlanQual() and not bother with EvalPlanQualSlot().

@@ -1449,6 +1451,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
*	tmfd - filled in failure cases (see below)
*	changingPart - true iff the tuple is being moved to another partition
*		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.

The grammar in the new comments is off ("if should lock").

I think this is also needs to mention that this *significantly* changes the
behaviour of table_tuple_delete(). That's not at all clear from the comment.

Greetings,

Andres Freund

#24Gregory Stark
stark@postgresql.org
In reply to: Andres Freund (#23)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

It looks like this patch received some feedback from Andres and hasn't
had any further work posted. I'm going to move it to "Waiting on
Author".

It doesn't sound like this is likely to get committed this release
cycle unless responding to Andres's points simpler than I expect.

#25Alexander Korotkov
aekorotkov@gmail.com
In reply to: Gregory Stark (#24)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Wed, Mar 1, 2023 at 12:03 AM Gregory Stark <stark@postgresql.org> wrote:

It looks like this patch received some feedback from Andres and hasn't
had any further work posted. I'm going to move it to "Waiting on
Author".

I'll post the updated version in the next couple of days.

It doesn't sound like this is likely to get committed this release
cycle unless responding to Andres's points simpler than I expect.

I wouldn't think ahead that much.

------
Regards,
Alexander Korotkov

#26Alexander Korotkov
aekorotkov@gmail.com
In reply to: Andres Freund (#23)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Andres.

Thank you for your review. Sorry for the late reply. I took some
time for me to figure out how to revise the patch.

The revised patchset is attached. I decided to split the patch into two:
1) Avoid re-fetching the "original" row version during update and delete.
2) Save the efforts by re-using existing context of
tuple_update()/tuple_delete() for locking the tuple.
They are two separate optimizations. So let's evaluate their
performance separately.

On Tue, Jan 10, 2023 at 4:07 AM Andres Freund <andres@anarazel.de> wrote:

I'm a bit worried that this is optimizing the rare case while hurting the
common case. See e.g. my point below about creating additional slots in the
happy path.

This makes sense. It worth to allocate the slot only if we're going
to store a tuple there. I implemented this by passing a callback for
slot allocation instead of the slot.

It's also not clear that change is right directionally. If we want to avoid
re-fetching the "original" row version, why don't we provide that
functionality via table_tuple_lock()?

These are two distinct optimizations. Now, they come as two distinct patches.

On 2023-01-09 13:29:18 +0300, Alexander Korotkov wrote:

@@ -53,6 +53,12 @@ static bool SampleHeapTupleVisible(TableScanDesc scan, Buffer buffer,
HeapTuple tuple,
OffsetNumber tupoffset);

+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+                                                                                     Snapshot snapshot, TupleTableSlot *slot,
+                                                                                     CommandId cid, LockTupleMode mode,
+                                                                                     LockWaitPolicy wait_policy, uint8 flags,
+                                                                                     TM_FailureData *tmfd, bool updated);
+
static BlockNumber heapam_scan_get_blocks_done(HeapScanDesc hscan);
static const TableAmRoutine heapam_methods;
@@ -299,14 +305,39 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
static TM_Result
heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
Snapshot snapshot, Snapshot crosscheck, bool wait,
-                                     TM_FailureData *tmfd, bool changingPart)
+                                     TM_FailureData *tmfd, bool changingPart,
+                                     TupleTableSlot *lockedSlot)
{
+     TM_Result       result;
+
/*
* Currently Deleting of index tuples are handled at vacuum, in case if
* the storage itself is cleaning the dead tuples by itself, it is the
* time to call the index tuple deletion also.
*/
-     return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+     result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+
+     /*
+      * If the tuple has been concurrently updated, get lock already so that on
+      * retry it will succeed, provided that the caller asked to do this by
+      * providing a lockedSlot.
+      */
+     if (result == TM_Updated && lockedSlot != NULL)
+     {
+             result = heapam_tuple_lock_internal(relation, tid, snapshot,
+                                                                                     lockedSlot, cid, LockTupleExclusive,
+                                                                                     LockWaitBlock,
+                                                                                     TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+                                                                                     tmfd, true);

You're ignoring the 'wait' parameter here, no? I think the modification to
heapam_tuple_update() has the same issue.

Yep. I didn't catch this, because currently we also call
tuple_update()/tuple_delete() with wait == true. Fixed.

+             if (result == TM_Ok)
+             {
+                     tmfd->traversed = true;
+                     return TM_Updated;
+             }
+     }
+
+     return result;

Doesn't this mean that the caller can't easily distinguish between
heapam_tuple_delete() and heapam_tuple_lock_internal() returning a failure
state?

Exactly. But currently nodeModifyTable.c handles these failure states
in the similar way. And I don't see why it should be different in
future.

@@ -350,213 +402,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
LockWaitPolicy wait_policy, uint8 flags,
TM_FailureData *tmfd)
{

Moving the entire body of the function around, makes it harder to review
this change, because the code movement is intermingled with "actual" changes.

OK, fixed.

+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+                                                TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+                                                LockWaitPolicy wait_policy, uint8 flags,
+                                                TM_FailureData *tmfd, bool updated)
+{
+     BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+     TM_Result       result;
+     Buffer          buffer = InvalidBuffer;
+     HeapTuple       tuple = &bslot->base.tupdata;
+     bool            follow_updates;
+
+     follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
+     tmfd->traversed = false;
+
+     Assert(TTS_IS_BUFFERTUPLE(slot));
+
+tuple_lock_retry:
+     tuple->t_self = *tid;
+     if (!updated)
+             result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+                                                              follow_updates, &buffer, tmfd);
+     else
+             result = TM_Updated;

To make sure I understand: You're basically trying to have
heapam_tuple_lock_internal() work as before, except that you want to omit
fetching the first row version, assuming that the caller already tried to lock
it?

I think at the very this needs an assert verifying that the slot actually
contains a tuple in the "updated" path.

This part was re-written.

+     if (result == TM_Updated &&
+             (flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
+     {
+             if (!updated)
+             {
+                     /* Should not encounter speculative tuple on recheck */
+                     Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));

Why shouldn't this be checked in the updated case as well?

@@ -1490,7 +1492,16 @@ ExecDelete(ModifyTableContext *context,
* transaction-snapshot mode transactions.
*/
ldelete:
-             result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+
+             /*
+              * Ask ExecDeleteAct() to immediately place the lock on the updated
+              * tuple if we will need EvalPlanQual() in that case to handle it.
+              */
+             if (!IsolationUsesXactSnapshot())
+                     slot = ExecGetReturningSlot(estate, resultRelInfo);
+
+             result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+                                                        slot);

I don't like that 'slot' is now used for multiple things. I think this could
best be addressed by simply moving the slot variable inside the blocks using
it. And here it should be named more accurately.

I didn't do that refactoring. But now editing introduced by the 1st
patch of the set are more granular and doesn't affect usage of the
'slot' variable.

Is there a potential conflict with other uses of the ExecGetReturningSlot()?

Yep. The current revision evades this random usage of slots.

Given that we now always create the slot, doesn't this increase the overhead
for the very common case of not needing EPQ? We'll create unnecessary slots
all the time, no?

Yes, this is addressed by allocating EPQ slot only once it is needed
via callback. I'm thinking about wrapping this into some abstraction
called 'LazySlot'.

*/
EvalPlanQualBegin(context->epqstate);
inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
resultRelInfo->ri_RangeTableIndex);
+ ExecCopySlot(inputslot, slot);

-                                     result = table_tuple_lock(resultRelationDesc, tupleid,
-                                                                                       estate->es_snapshot,
-                                                                                       inputslot, estate->es_output_cid,
-                                                                                       LockTupleExclusive, LockWaitBlock,
-                                                                                       TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-                                                                                       &context->tmfd);
+                                     Assert(context->tmfd.traversed);
+                                     epqslot = EvalPlanQual(context->epqstate,
+                                                                                resultRelationDesc,
+                                                                                resultRelInfo->ri_RangeTableIndex,
+                                                                                inputslot);

The only point of using EvalPlanQualSlot() is to avoid copying the tuple from
one slot to another. Given that we're not benefiting from that anymore (due to
your manual ExecCopySlot() call), it seems we could just pass 'slot' to
EvalPlanQual() and not bother with EvalPlanQualSlot().

This makes sense. Now, usage pattern of the slots is more clear.

@@ -1449,6 +1451,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
*   tmfd - filled in failure cases (see below)
*   changingPart - true iff the tuple is being moved to another partition
*           table due to an update of the partition key. Otherwise, false.
+ *   lockedSlot - slot to save the locked tuple if should lock the last row
+ *           version during the concurrent update. NULL if not needed.

The grammar in the new comments is off ("if should lock").

I think this is also needs to mention that this *significantly* changes the
behaviour of table_tuple_delete(). That's not at all clear from the comment.

Let's see the performance results for the patchset. I'll properly
revise the comments if results will be good.

Pavel, could you please re-run your tests over revised patchset?

------
Regards,
Alexander Korotkov

Attachments:

0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v11.patchapplication/octet-stream; name=0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v11.patchDownload
From cff9a17e02e98f4bdfadfd251174605588c46ea2 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Wed, 11 Jan 2023 15:00:49 +0300
Subject: [PATCH 1/2] Evade extra table_tuple_fetch_row_version() in
 ExecUpdate()/ExecDelete()

We can skip table_tuple_fetch_row_version() in the case we already fetched the
tuple during locking it.

Reported-by:
Bug:
Discussion:
Author:
Reviewed-by:
Tested-by:
Backpatch-through:
---
 src/backend/executor/nodeModifyTable.c | 46 ++++++++++++++++++--------
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 687a5422eab..87a4e553b9e 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1561,6 +1561,21 @@ ldelete:
 					{
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
+
+							/*
+							 * Save locked tuple for further processing of
+							 * RETURNING clause.
+							 */
+							if (processReturning &&
+								resultRelInfo->ri_projectReturning &&
+								!resultRelInfo->ri_FdwRoutine)
+							{
+								TupleTableSlot *returningSlot;
+								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+								ExecCopySlot(returningSlot, inputslot);
+								ExecMaterializeSlot(returningSlot);
+							}
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -1675,12 +1690,16 @@ ldelete:
 		}
 		else
 		{
+			/*
+			 * Tuple can be already fetched to the returning slot in case we've
+			 * previously locked it.  Fetch the tuple only if the slot is empty.
+			 */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -2377,6 +2396,19 @@ redo_act:
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
 
+							/* Make sure ri_oldTupleSlot is initialized. */
+							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+								ExecInitUpdateProjection(context->mtstate,
+														 resultRelInfo);
+
+							/*
+							 * Save the locked tuple for further calculation of
+							 * the new tuple.
+							 */
+							oldSlot = resultRelInfo->ri_oldTupleSlot;
+							ExecCopySlot(oldSlot, inputslot);
+							ExecMaterializeSlot(oldSlot);
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -2385,18 +2417,6 @@ redo_act:
 								/* Tuple not passing quals anymore, exiting... */
 								return NULL;
 
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
 							slot = ExecGetUpdateNewTuple(resultRelInfo,
 														 epqslot, oldSlot);
 							goto redo_act;
-- 
2.37.1 (Apple Git-137.1)

0002-Allow-locking-updated-tuples-in-tuple_update-and-v11.patchapplication/octet-stream; name=0002-Allow-locking-updated-tuples-in-tuple_update-and-v11.patchDownload
From 21779b4f1e2fa4c7dc6744e55ce4ceb401fdde50 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH 2/2] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the latest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam.c         | 117 ++++++++---
 src/backend/access/heap/heapam_handler.c |  50 ++++-
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 247 ++++++++---------------
 src/include/access/heapam.h              |  26 ++-
 src/include/access/tableam.h             |  32 ++-
 6 files changed, 267 insertions(+), 211 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 388df94a442..26623d8e25e 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2667,7 +2667,8 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			TM_FailureData *tmfd, bool changingPart, Snapshot snapshot,
+			GetSlotCallback lockedSlotCallback, void *lockedSlotCallbackArg)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2865,6 +2866,26 @@ l1:
 			result = TM_Updated;
 	}
 
+	if (result == TM_Updated && lockedSlotCallback)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+		TupleTableSlot *slot;
+
+		slot = lockedSlotCallback(lockedSlotCallbackArg);
+
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											slot, cid, LockTupleExclusive,
+											wait ? LockWaitBlock : LockWaitError,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, &context);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -3088,7 +3109,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 &tmfd, false /* changingPart */ ,
+						 SnapshotAny, NULL, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -3128,7 +3150,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, LockTupleMode *lockmode)
+			TM_FailureData *tmfd, LockTupleMode *lockmode, Snapshot snapshot,
+			GetSlotCallback lockedSlotCallback, void *lockedSlotCallbackArg)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3495,6 +3518,31 @@ l2:
 		}
 	}
 
+	if (result == TM_Updated && lockedSlotCallback)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+		TupleTableSlot *slot;
+
+		slot = lockedSlotCallback(lockedSlotCallbackArg);
+
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											slot, cid, *lockmode,
+											wait ? LockWaitBlock : LockWaitError,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, &context);
+		bms_free(hot_attrs);
+		bms_free(key_attrs);
+		bms_free(id_attrs);
+		bms_free(modified_attrs);
+		bms_free(interesting_attrs);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -4173,7 +4221,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, &lockmode);
+						 &tmfd, &lockmode, SnapshotAny, NULL, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4255,13 +4303,14 @@ TM_Result
 heap_lock_tuple(Relation relation, HeapTuple tuple,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				HeapLockContext *context, TM_FailureData *tmfd)
 {
 	TM_Result	result;
 	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
-	Buffer		vmbuffer = InvalidBuffer;
+	Buffer		buffer = context->buffer,
+				vmbuffer = context->vmbuffer;
 	BlockNumber block;
 	TransactionId xid,
 				xmax;
@@ -4270,10 +4319,11 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 				new_infomask2;
 	bool		first_time = true;
 	bool		skip_tuple_lock = false;
-	bool		have_tuple_lock = false;
+	bool		have_tuple_lock = context->have_tuple_lock;
 	bool		cleared_all_frozen = false;
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	if (BufferIsInvalid(buffer))
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4282,12 +4332,13 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (BufferIsInvalid(vmbuffer) && PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	if (BufferIsInvalid(context->buffer))
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
@@ -4296,7 +4347,7 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4325,7 +4376,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4477,12 +4528,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4517,7 +4568,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4545,7 +4596,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4557,7 +4608,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4585,7 +4636,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4607,7 +4658,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4632,7 +4683,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4658,7 +4709,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4698,7 +4749,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4724,12 +4775,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4751,7 +4802,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4810,9 +4861,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4875,7 +4926,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4895,7 +4946,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4916,7 +4967,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4934,6 +4985,10 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	context->buffer = buffer;
+	context->vmbuffer = InvalidBuffer;
+	context->have_tuple_lock = false;
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..6f024b5cccd 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -299,14 +299,21 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					GetSlotCallback lockedSlotCallback,
+					void *lockedSlotCallbackArg)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart,
+						 snapshot, lockedSlotCallback, lockedSlotCallbackArg);
+
+	return result;
 }
 
 
@@ -314,7 +321,9 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					GetSlotCallback lockedSlotCallback,
+					void *lockedSlotCallbackArg)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -325,7 +334,7 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	tuple->t_tableOid = slot->tts_tableOid;
 
 	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode);
+						 tmfd, lockmode, snapshot, lockedSlotCallback, lockedSlotCallbackArg);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -349,12 +358,27 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, NULL);
+}
+
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, HeapLockContext *existingContext)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
+	Buffer		buffer = InvalidBuffer;
 
 	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
 	tmfd->traversed = false;
@@ -363,8 +387,20 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!existingContext)
+	{
+		HeapLockContext context = {InvalidBuffer, InvalidBuffer, false};
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &context, tmfd);
+		buffer = context.buffer;
+	}
+	else
+	{
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, existingContext, tmfd);
+		buffer = existingContext->buffer;
+		existingContext = NULL;
+	}
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..a87b86ff614 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL, NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 87a4e553b9e..e7860d770cf 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1326,6 +1326,23 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	return true;
 }
 
+typedef struct
+{
+	EPQState *epqstate;
+	ResultRelInfo *resultRelInfo;
+} GetEPQSlotArg;
+
+
+static TupleTableSlot *
+GetEPQSlot(void *arg)
+{
+	GetEPQSlotArg *slotArg = (GetEPQSlotArg *) arg;
+
+	return EvalPlanQualSlot(slotArg->epqstate,
+							slotArg->resultRelInfo->ri_RelationDesc,
+							slotArg->resultRelInfo->ri_RangeTableIndex);
+}
+
 /*
  * ExecDeleteAct -- subroutine for ExecDelete
  *
@@ -1338,6 +1355,7 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, bool changingPart)
 {
 	EState	   *estate = context->estate;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
 
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
@@ -1345,7 +1363,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  GetEPQSlot,
+							  &slotArg);
 }
 
 /*
@@ -1543,102 +1563,46 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
+					/*
+					 * Save locked table for further processing of
+					 * RETURNING clause.
+					 */
+					if (processReturning &&
+						resultRelInfo->ri_projectReturning &&
+						!resultRelInfo->ri_FdwRoutine)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							/*
-							 * Save locked tuple for further processing of
-							 * RETURNING clause.
-							 */
-							if (processReturning &&
-								resultRelInfo->ri_projectReturning &&
-								!resultRelInfo->ri_FdwRoutine)
-							{
-								TupleTableSlot *returningSlot;
-								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
-								ExecCopySlot(returningSlot, inputslot);
-								ExecMaterializeSlot(returningSlot);
-							}
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
+						TupleTableSlot *returningSlot;
+						returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+						ExecCopySlot(returningSlot, inputslot);
+						ExecMaterializeSlot(returningSlot);
+					}
 
-						default:
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
+					{
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1980,6 +1944,7 @@ ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2108,7 +2073,9 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								GetEPQSlot,
+								&slotArg);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2259,7 +2226,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2376,81 +2343,39 @@ redo_act:
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/*
-							 * Save the locked tuple for further calculation of
-							 * the new tuple.
-							 */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							ExecCopySlot(oldSlot, inputslot);
-							ExecMaterializeSlot(oldSlot);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
+					/* Make sure ri_oldTupleSlot is initialized. */
+					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+						ExecInitUpdateProjection(context->mtstate,
+												resultRelInfo);
 
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					/*
+					 * Save the locked tuple for further calculation of
+					 * the new tuple.
+					 */
+					oldSlot = resultRelInfo->ri_oldTupleSlot;
+					ExecCopySlot(oldSlot, inputslot);
+					ExecMaterializeSlot(oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2694,7 +2619,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -3867,7 +3792,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 417108f1e01..a5e8a90c508 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -191,6 +191,14 @@ typedef struct HeapPageFreeze
 
 } HeapPageFreeze;
 
+typedef struct
+{
+	Buffer		buffer;
+	Buffer		vmbuffer;
+	bool		have_tuple_lock;
+} HeapLockContext;
+
+
 /* ----------------
  *		function prototypes for heap access method
  *
@@ -243,17 +251,24 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 Snapshot snapshot,
+							 GetSlotCallback lockedSlotCallback,
+							 void *lockedSlotCallbackArg);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, LockTupleMode *lockmode);
+							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
+							 Snapshot snapshot,
+							 GetSlotCallback lockedSlotCallback,
+							 void *lockedSlotCallbackArg);
 extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
 								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+								 HeapLockContext *context,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
@@ -328,4 +343,9 @@ extern bool ResolveCminCmaxDuringDecoding(struct HTAB *tuplecid_data,
 extern void HeapCheckForSerializableConflictOut(bool visible, Relation relation, HeapTuple tuple,
 												Buffer buffer, Snapshot snapshot);
 
+extern TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, HeapLockContext *existingContext);
+
 #endif							/* HEAPAM_H */
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..71b93f1674b 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -252,6 +252,9 @@ typedef void (*IndexBuildCallback) (Relation index,
 									bool tupleIsAlive,
 									void *state);
 
+/* Typedef for callback function for table_index_build_scan */
+typedef TupleTableSlot *(*GetSlotCallback) (void *arg);
+
 /*
  * API struct for a table AM.  Note this must be allocated in a
  * server-lifetime manner, typically as a static const struct, which then gets
@@ -514,7 +517,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 GetSlotCallback lockedSlotCallback,
+								 void *lockedSlotCallbackArg);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +531,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 GetSlotCallback lockedSlotCallback,
+								 void *lockedSlotCallbackArg);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1456,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1470,15 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   GetSlotCallback lockedSlotCallback,
+				   void *lockedSlotCallbackArg)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlotCallback,
+										 lockedSlotCallbackArg);
 }
 
 /*
@@ -1487,7 +1500,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1506,12 +1521,15 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, GetSlotCallback lockedSlotCallback,
+				   void *lockedSlotCallbackArg)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlotCallback,
+										 lockedSlotCallbackArg);
 }
 
 /*
-- 
2.37.1 (Apple Git-137.1)

#27Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Alexander Korotkov (#26)
4 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Alexander!

Let's see the performance results for the patchset. I'll properly
revise the comments if results will be good.

Pavel, could you please re-run your tests over revised patchset?

Since last time I've improved the test to avoid significant series
differences due to AWS storage access variation that is seen in [1]/messages/by-id/CALT9ZEGhxwh2_WOpOjdazW7CNkBzen17h7xMdLbBjfZb5aULgg@mail.gmail.com.
I.e. each series of tests is run on a tmpfs with newly inited pgbench
tables and vacuum. Also, I've added a test for low-concurrency updates
where the locking optimization isn't expected to improve performance,
just to make sure the patches don't make things worse.

The tests are as follows:
1. Heap updates with high tuple concurrency:
Prepare without pkeys (pgbench -d postgres -i -I dtGv -s 10 --unlogged-tables)
Update tellers 100 rows, 50 conns ( pgbench postgres -f
./update-only-tellers.sql -s 10 -P10 -M prepared -T 600 -j 5 -c 50 )

Result: Average of 5 series with patches (0001+0002) is around 5%
faster than both master and patch 0001. Still, there are some
fluctuations between different series of the measurements of the same
patch, but much less than in [1]/messages/by-id/CALT9ZEGhxwh2_WOpOjdazW7CNkBzen17h7xMdLbBjfZb5aULgg@mail.gmail.com

2. Heap updates with low tuple concurrency:
Prepare with pkeys (pgbench -d postgres -i -I dtGvp -s 300 --unlogged-tables)
Update 3*10^7 rows, 50 conns (pgbench postgres -f
./update-only-account.sql -s 300 -P10 -M prepared -T 600 -j 5 -c 50)

Result: Both patches and master are the same within a tolerance of
less than 0.7%.

Tests are run on the same 36-vcore AWS c5.9xlarge as [1]/messages/by-id/CALT9ZEGhxwh2_WOpOjdazW7CNkBzen17h7xMdLbBjfZb5aULgg@mail.gmail.com. The results
pictures are attached.

Using pkeys in low-concurrency cases is to make the index search of a
tuple to be updated. No pkeys in case of high concurrency is for
concurrent index updates not contribute to updates performance.

Common settings:
shared_memory 20Gb
max_worker_processes = 1024
max_parallel_workers = 1024
max_connections=10000
autovacuum_multixact_freeze_max_age=2000000000
autovacuum_freeze_max_age=2000000000
max_wal_senders=0
wal_level=minimal
max_wal_size = 10G
autovacuum = off
fsync = off
full_page_writes = off

Kind regards,
Pavel Borisov,
Supabase.

[1]: /messages/by-id/CALT9ZEGhxwh2_WOpOjdazW7CNkBzen17h7xMdLbBjfZb5aULgg@mail.gmail.com

Attachments:

lo-concurrency.pngimage/png; name=lo-concurrency.pngDownload
�PNG


IHDR	V���O�?iCCPICC ProfileH��WXS��[�����H	�	"�H	�E�*�I�PB;"*�T,`CWE] kE�,��/�������&t�W�7�7w������9w��;�������9�|ILh sBR2���@P�ryybVtt�e��{yw ����L�����h�y<�h�S�y���W���|�2�|z�X�a� �Kd8]��d8U��m�b���B�r%���C�Y�K�j};��B�L��rrr��@lm���=S�I��f��&��>�s�� a�8�;��L��.9��AV�R3$a1�9�����
�a*�����(�� � ���!F)��x�=j��c���N|nP8�����##�|j�0�1\!�a>'b=����c�6[%�1J_h}���R���_�����x�R�u������
3�!�@lQ L��X
b����p����v���D#����(4P���IBb���9y����f9�J|0?#.L���������D��AA������A���c���X��q~`�b,NgG+�q3Av��7��5� V9O��R�������q�������x�� �A`)�� da[oC/�S��.��t JfpD��G����	��
���
@�����H���Gd����p�
���Q�!o	�	d���������U����A�;��L���zd�Z��A�0b�7��p<^`u�=q��y|�'<%tn:	w�
�$��:�~�2�?����nx ���2��
��
��p��
�le���0�i�m?<
�����u�d��#�����Td��1?�XS�������C���
n�-�a����E����I�k������z"_]��b��dA�?�
>YY&��j�z��(��3d�h�����3��,�E09"��H�����������!�n �K�������}�"�^?�n���9��5���2�TR��p����p��c`l�|��;� �Q $�)0���%`:�
�PV��`#����`8�1p��A;�����
^�>�|F���:��� ��=��x"~H0�� IH
���)2Y��!��FdR���EN#����� ��O(�RQm��BG��(
G���h::
-D����z���������
�}��cS��)��ybl,
K��0	6+�*�j�k������bq"N���\�ax<����s�e�F|7^�����.��F�	�o�0��N�N(!Tv�����MxG$Dk���I�L�,�2�&�~�)b�1��D"���I��(��O*!m �%�$]%u�>�����8���$��T�T*T���P���L�3Y�lI�&G�������&�r7�3E�bM���Q2)(�)u�����7���f�^��U���U��P�������E������R�r�.�)���fE�%��i�i5�3���jt5G5�_m�Z�Z��U���duKu���B�
�C�W�{5�Vl
��\�J���4�5���5�4s4�i�����\��e����*���uF�1����t}!}�,�[��m�����.�������������3C�R��N'cX18�l�
�A�M�']#]��@w�n��U��z#��z�z��n�}�g��g���o�`���7�n����A��>#x#JGq�5�3�1�e��������(�Hl����Q�1�8�8�x��	������d��I�?�:L3������354
3��n3m3�lfmoVd����9���<�|�y�y����8���w-������,�[����J�Zl�`��Z��c]h]k}��f�o3�����-���6�v�m�j�f�aWiw��w��o��I�5R4�z�-�����������X����r����Q�F�����)�i����Z���.�4����3������%�e�K��+W{W��f��nt�qn������{�K���{<,<R<�<nyj{F{.���E�
���u�����w��A��||�|��<c=F0f����f�\�m��~L���~����\�j�G�����X��L�^��@�@I����lo��� ,(4�4�-X+8>xc���������P��Y���a�a��nq�8<N
�o���9c[������E�EH"������[=�~�e�(�!
Dq�VG=������x�����������s>�;5vO�����q��m����	�	�j�'%�'vN5a���II���dRrB�������N���6�d�����gL�8�`J���S��r�J!�$��I����Vs�S9�U�}<6o�?����#��������=O�M_�����Q��+d7
_e�en�|���+k ;1{�JNJ�Q��(K��k�;#�Cl/.wN���vZ�$\�3������
�[�6�E����������9C4�u����3���<����<�t���]sXs��E���m�g>�x^�����Pd-�����������M�F���/
]T[�V")���g��%�����.K7,�V�/�T�TVQ�eo���F������i��V������R���*�U��5�����~
sM���k���X�Z�ee�t]�����,6���ec���������V����tus���-F[��|�*�z{[���j���������H�q�g��kv�,��u�hW����-555{���Ek��={'�m������n�~����������r�`���C���[�:B?RZ�����k�h�lLj�8:�hs�O��_�u��X�q��+NPN�8Yx����T�������6�;3�����-mg��^8r��y���|/��}��%�K
��/��������#m�m�W<�4�{�7u��8q����kA��]�\�|#�F�����oM��y�����;����|o�}���*>�������������Z�>��������'_�����V<3yV���������?&���B��so���V��yy����Z�&�u���x�����]o]�6�G�?|�������v��x�S��g��!}Y���k���o�r�\	W�+������z�$��|F��8���8���OXqF�w�`#��g���V��v�_����������\)+Dx�$CwVG��aEq��!��-��������z�)���eXIfMM*>F(�iN����x�	V��ASCIIScreenshot�Y��	pHYs%%IR$��iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>1420</exif:PixelYDimension>
         <exif:PixelXDimension>2390</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
)��iDOT�(��*���@IDATx���65���
��A|Uz//U� � ��.�bED���R�H�����&U�"JQ9p�����`���'+���<3{���k�y�%�{2��ZwV��o�QQE@PE@PE@PE@PE@PE@PE@PE@PE@A�mJ��B(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"P ��*���"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�x(��DwE@PE@PE@PE@PE@PE@PE@PE@PE@Pb��E@PE@PE@PE@PE@PE@PE@PE@PE@P<�X�����"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(�J��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(J���]E@PE@PE@PE@PE@PE@PE@PE@PE@P�X�u@PE@PE@PE@PE@PE@PE@PE@PE@P%Vy���"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(J��:�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(�����<@tWPE@PE@PE@PE@PE@PE@PE@PE@P%ViPE@PE@PE@PE@h�����5�?������sN3�4��:�;�!���O�W^yeT�������N;���(��"������G}t��=��f���uLwE@h��^{����5����;�������L?����&��4E@P��!P�Xu�]w������������g�Zk-��w�s�q�QE@P�� p����g�yfT����:��o�����(��"��"�s��������d���b�����u�f0�������o���w�f��)�@	���7�����?��?�w��oq��If��f*I���;����w�y�n\o���
+�0�X�;7�|�����F�Xh���J+�4����?�����_|�pj�1��:�����O���
�]���4����F%��K�O������"�L,h.��2��o�z�Yf��,��r�����C���/6��r������.f��guLwE@�E����n2��}]���m�=�y��{����iA�m�����5<��@�+��r1�8�j#�:dm5�q�@mb���;@��=���0(SQE@_`���/~a�\rI��w�{|=�{�������l1���0K��{�1�'OkE��*�@�L����C-��
�iv�uW3�l�UN�v������t����k0��FEP�A��W_5�_~����"����K/]��8E�/��s���6�h#��RK�:���s�=g?��Q�Cl�2e��cuw���?�.�``�B(]�]l������Z��B�����n.�����!r�����#���G?2?��@zm�/�z���J^�U&4ji|�`���~�?��c"u�Q�J<�\s����~�1�QE &*\z��I��w~�{�K���E�iN;��*�$];�<�����.�Z��{~����;��c� [n��Y`������YCMa| ������)E@
���9��s����w��N;�9��c(�j&� 0^�U���?�
7�`����b����`��"��	&j_����|�+��#28fRb��W^ip��Ql���V4��2�=��XC���UW]%�&�=�{��^��V[5����2��r�����b����:��m#��^xaT�M�^~�es��f��h�6�d�����*_����������$>��Od��I��4�R�����~��f�v���&�(��Sl��p���_���Q���/��H��2�E@�`w���+�����hZ�3\��M'k>����v���t5�vPbU;��RU2����H(�j"�m}VE@P2`�
UO>��H
J��b�����{��}���o���{Pb��C�PL��*���
P�X�c��O�3��c��g."eM=��9��=���F�����^z���8���f��V�����>��QiTiWF�Xq�'?�I����)bK�r�!��?�*�D�x������l?K����~���J�
B��1��:���k+-��W_]L4s/\f�e��n�����"�d!@$�8����,���l��*��r�I'�d�7-J�j�v�SbU���RW2����(�j"�u}fE@P* ��_��X���E�U>"co��$G���^]�+u���a�1.�!UR��S����������-�v�G��4�t��?e��Od���[�����v�����~w��n
�,=�����HK�9M����on���`RM��$�Q���^�L���5�@�TL6�t�J��XCS�)cu�����R����v�a�.�]�uT"��(���`�k��*�����W\��-I�2A���^K���EJ���V��*�j��@u��c�9�%V���h�E@�
?���
�*���*���?��U���7���X5����X����U��u�M%V���u�]'f��w�����
N;����g�-a����x$�*��"��K#�B�w���f���7��:k��D�bH�w�(��!}��_���HK/��Yv�e�t�Mg��g��s�8������Z,
�	B��5�q��n��g?����/~!�[�XEt���;�<��Sb�O?}����!����������n�����>&�;�������{��cI�:7lb��I��6�l3���(� �N�fp�K*���@�re���2+���{H+��"���Y���?���?h�_~������xc��f
��{P��r�s�Sb��F�+�j��H��������~���/���t���:^�UE`� ��������S�U�1�;E��h_e��Gi�y������|����o8�z��3D��a�������QB�H��92�5�\#�Z2��o���B�e1XC�VX��l}�;�1p	���y��b��22����k�:���t9���� �'C���5�\����*v����D�������.s�9��F������ ��`��|=�����{�k�����D�
^$��A�J�w���?���7�h}���K��a9�?��O�k��W���`fzP���Sl|���o��\z��������o��u��(��"������������o�y�\�qs��'$��&��&B�]��N�zo5�(j[m�UA����^��������������}E`< ������E@huV�n�I+�����+�@ch_e^ )�����0v9.�\��!@4�g>���b��N��dp�)����?�m�u�����XB��N(�"��<e���LN=�T���/�E�jr���g�����^�2�B�9���
��2�C�"BK�������;�:wp��I�����,���o�=T��9~����D�":���~
"0��BB�*"V�(�@;(��\�H����|�����d�$oe�<E`�!@��!$D�!Z������_>��F��d�x��7�����1x�/?���OD:_���=�4�L�9��*���"�(Q�Y�gL�Tb��~}ZxE@p��}�-jX��%�>�h��62K-��������r������|��_�&Ad��"��R��
�-�NwHC�%:X`���[������/�s9!�V�������0�Jy�!V
�~'$D["�W�Hd4f��,��������]w�� pQ��&�\��,��-���O|�����eI�yE@����j���[���zs��W�*������R�9*�QE�C@�7�L��?L9����o~���,��~�`�����"�(��"P%V�PoWE`�#0������*�j<�]}6E`b!0��*��}Yv�e�l�n|2�(_�.iE�!r�v��*��"F��;�,�E��w��]E������v������3�Y�.$,�������D���IN�G���4����y�����=�	e3p�| T���8;P�Xu�����[d�E�f�m�v�9f�~�;�u������%IR���G����b�ex����QG��*~W!�
��q��0��vZ�N���[o<�E�9$9G�<�26 Z\����+�u�]wl<��RP��$�.�
i"���SO=&��B*��"��m�X5����^P��������0%Vu�f�(�"0��*)R	~�m3�_{���lR��o������g��.�P��,z@A����7O>������C���8�y�����[���?�����K���>���z&?��H[U�H}]t�a��%VA��f��,�)R�/K.��aI���������?p)�Z�H��r��������^z��;����c�H_SM5U�����	����G J#�p������.E������"����U������������?�i��g��4�����}��PE@P�@����_|�������z��O7�t��EB�]�=0����5�x�@�a��g�i���
�>���>kP��#�i���x�(J3�<s���u�I����b��\ey��ea�)c�[����3��?���3�hf�e�b[eI�������\��W^y�h�0�F�z:��m�����v�P�o�N�N�h�p�o��vR6�&�^x���[�����������U<3e����
�
}7M�����7
���������I�6�-m�7N�����b��}l�[i�X*�g�m��Z_��>��|���a��=Po�'�&��h2V�*f����������.��]�����O,"��uj���6~�����.�sf��t��r�WYb+X�j�b�wc�G�Q�����8��K�h�M�2�����	<;�?�N_���_W��/})���)S$�*�� 9( ���{O<��9���Yo��VE���E���vXA�
�9D{���k������K�bI���:�O��i��
Q��=������h[}�}��7p����=i����T�h��Zk��W^������@�; ��d��v3���"�?DB��|���K���H�l\9�0�{�����G���kQ����>�J��U�a���n�����>���)��������-�?k�-c;��N=i��=,[]tLll���/i���WS�I�O�S�~y��o�[�/c��
5�\]���!���M�z��g��G9�|��g����k��X;����6�i<�t��t]r1k�>��_�ta�j�]�f�i��J�Q�����,#��F��0�$L<3�R�����/9����/n��YEN9����l���1��Ia�
�[l1���K'����t^>�����������c��k����{���w�r�Pg��D��Zh�$C�����~���Qv�o�����1����{3?��+	�J�+��P��w�����w�@#&(�K,�Da������]�����g�n8� ��?��@�i�������X��+�����r�-�,~��������UVY�,���#3k�NoT���Gy������!��K��`��.�G��7H��z�rB7�|���H�x@������[���M
�������$��>��s/;@;Z����f��>�N�^#8�i;����`�`�f���zqmH�����\}�������X���VXa��5I�b��������NR��C����Yg�U�l�8���Q!	���l�Ia�]�����p���8��k�E\p�B�M��0��}P?B����]t�1����`���Km>��~���n*��1�h�����8vi�\����Wa���@7��g?&������r����1����bEo������=��3+�c�9�<��S�~���,���-�m
�:�+s�5WAJ�����u�Ub����?�q��J+({���6%V6l���*�lv���75>���=��w�N�c*��:���37%=�U��):���oo�oU��XE�L�<���w�@����.� hW�]~	|$2�^{�U�z
�`|����9��O�9lV�f�+�o�:Y��q����2>��O���x�S����~�?�2�u���r���w�mX���/�m�A�E�������:C�*�I&L��d���������1vB�e���7��>�xd���#��#����xo�#�����������3������)b�)!��m����;��������.+��6?����u���!��s��\�H�������~��wv��]�2l���Iv!���o�H�Cl��`/�f�m��#����_���{�Mf�7�ylA�c9c�a���a��;��alM�_���Sc��$��?��w���m�����X�c:*���I�~�a������m���2����l!�+�QS�)B�0&	4�,6��u�a�yM��La���
�aT��u�Xy������G�����.�^o�|j�_�a���?\��e����r'�xb��[E �@o�U8���h�r%G,r��7�hX&����js�r��L�O���z����P2���;�/�`TF	�	g=3A��QEh�����B��)�R��x�;���%�183{��F�4p�K�<�w��%N�w��(�U�@�_c�5��G��;4��{��b�B�!�/~�{�8+	�)��X����E\�a���N�-�����6�iU�XM��`,e�1�wYO���R��j�����^[���k�4�v����"��t!2����8�\�K�@�;��3K�Z�7�b*�W��w�nH�P�|;p��	b�;0
-=�_:���~�p~���03)�$OiEb�w��@����'��V[m$2@Nu��9�q�F����C^$�a�i�3v�/$*����_^��8T��}h�c_A��L����B���.�4��K2tS���-R�J�H?�#�\s�����y�����DjS~����\3�{��G�������"��i���w�������g�]����e��*B{Pe�Z�����z���(O��R�:�l8�� �;�0��\��-����SE"VA8�P��I�/7I����������Id��7�� )�����% CQ�X:�w�����c��������$��7������L��p�
��v���$C[W&1���l\R����
�[������I'�����N;'�N�66��2��\��gU�Ks��e�Y����:I�W���F[7}������!*b�/�a��C�S6��o}�[I:J�Y��$�'�-1$to�cR�Qg�a�����U��
�'�x�l��E��O�1v�8�
$��=�/s���a���g�����0A�
��)�����-B�+9~�|�A�n��+�f9�3�9���%C9>,���  �}�k_kH�!"M���W1��u�.���up�>���S^��t�PY���2�����!����_���rB$�XY���
���+��?tN�B����ZW0���J��!w�A�����)��AdHP��U�*�`(efbje��r?��S
a��z&��hn����C-����#�����F%�>��q���nR��q0�e�]*�T�P�a�'m����m���c��>������R[<����[@��hnz>�7�pC1��W���Jh�2��vYO�X~�!%b��C��p*�G!8����!u���&�x�����b
Q�Y�����/|�b?^gp_�`0�����'������Uj�����P���3�y��R���0�4�\]�!c}�c����"}'V��S��W5������n;3�<�������~�������LQ��}���u�QG�f0S��@��V�I���0��u�]����O�6%�t�XE�	�q�1N�e��.�_��N �����3��X����3��	N4�>���]^��N~����$6�u�
� �@�sm;����X�����>n1F~���9����#������I�B�J6��v,���}���=[l�E�#v��$��10��J(�/��qQR�/:C6�:�����7!�)�������G����]���_3���P_���+�}��g����G�m�tm�S��W��C����=��0����V������S"�����qrd�v���=�}!G�1	&�KB�.������6�f�e���i���.���i� x�
��!��!Vq?��O��)S���0u�:�Wpm�Xu���#��n�Vr���Tb�~�SGR���I)����������upi�Q�X5L]�}o�����I���!C>5�UL@c,���+9~����>E�"�)��h7������U�1��T�c���KFF{]*I���l���tR~����K��y1���a &0P1�6),���8�H��H{H���}����*��S��"D��5��y�`��we!#e�C�*���F���f�_���g1��BI#�hS���W����zZf(�a1�"Va�$�E]�8���TRlfq��p
�
C>��%6�3���h��9����6r���D���D�8Ix/)2�>����|����\9��v����a�TM�U8B�s��C{��0f�J�0�t,W�����X"��8���I��r�8����*��(!CH(Z���lK9����.c��e"�)!g/z��^�
y�
]�������c��\�����M���b�Hl����J������D.`�5_ �BLM�XE���e�%�u�Jj�hK�,�*9�16o���"��!�6���8�C�iKQ���N��	%*t��c!�������BD�a���2�!��K��������I�P�,?�}���������Z0�
��������X��&H�:������2�]w�T�����e���;����������YP�}�j��Z�� ���F��e�����E�����>��0V������������ce����m������g�[�C�hba�t��~���J�7��otN�������M��Q���3���u0a��W���_E�y�������L�r��aG �(���w1�g�Z���kZ�K��B����z`�Qu��C�t0�z��7]�L\����`/9��=���@��*i@���o�Yg5DV�SL������$�|Yt�E�e����>y�����:�b�n5���g9���ex`���A0�0PA
9OlyQ��i�{	����4�}����B�*C���M�$����}�0�w�a�������Q�~3`�����A	�:(��$���([a	B"!��h����M��K4=��,�,)�q�e����/���AX��Tr����y�a�r}�5} P��(��(
�\s�U�]��(3(��Xw���O��9N[�7B���~�����2bUJ�,��
���18,R�Bd�����-R����<p�s@"8H�^�[����"|�D�o<?����~��1#�M�:���>�2�^����I,��{o}�w�/����;�� ���;�U�;)�O�S�m�x��p0c��	�0��*tA�3�!�>�� nY����w���}��3|���}�:�.cl�S�{B�%��Do�&���4#�sM�DmSR��.��o������=)��t�����XH�����~�1�>��f����nV,y6��>K�-	���B��FG�YbBd.����E��I^Gq��Y��y�l��t~�����I�;!�X��(^���P'��
���N;m��X�!��@��0n�&�Iy������K��SF��
[BN�*e�e�]��\r��)H�O��K<s�H�-�$1��X0����KB8��d"c�X�]�(�1�u�I�4�������L�Kc'�#tK��*�D�C=t��!=�mC�e@s�������C��@�����~c�6��0��l|�;e<����7������c��-�+[���R��^�7���mY����o�I�qt���>:Y�M���?a/�n�N_&m���<��1��^y�����s�����@�����6�;�
�Z�!�.���u���.��)���E��]���o$t]�Y��f��������9�r�p2T�a!���lFJ
�:Gw�
J�*~��s��5��M2p�~����dHs�K]���3�4,�K3�<�/#�0�`I�!����0%R�4����Z��@�b	�$
�^{���^G�M�w���F��e����1����J;BcN�m��e��W&R�b{ui��W`�Sf�")I����+e@b��n�!$�R�=U<2��|�R�X�tz<���?^�,������S�i���L��F�f���B����J�a�U���/�]��4�lVY�H�{�[�^PFfl���$!��{-m.�X`!!O���k'o,��"B���U�{`!�L!����I�BI�7�������H'eB9C�8����n-���<�9By��3�9�7J�ii`2 R
��TrBR��\�f�G&��~��c�u�Y�d�)!,��zA�v/&]�i���|i���"+��[��cu=*&eml����WI
�>KG��?�������>_j�p�+�)RD�:y�5&��n�
�B�O������!\��
��-��mJ���3KC1V����8�+:�$eF�>�)7�x��>y���pt�B]E��?���De?�����Xb�($�qz�������-��%<Y���w�l`G}�����$�J"%1�b���w��o��|�E3���c�F��w�}�z������Y���-k�T�z3�lX��62L�6.��F�)�>��G���m�:�%T��Dlcyn+�}-DG�T�����]tQ4r4v*�Ir�b��IR�a�r��1 �.������Kv�e�Y�l����{���E�������tiG����r&QH�!�{KV��-S��e&���	�#��9�-	�	�*6�j���[]YV����ome�l,�3�.�$��Q�����;�#�����1�.�J��YV�*���1�r�v���?����o|��R���h:��R�C����K��R�����9:$y�����{�����.�I;���!F�����>����tB������������:(j(9!�;
9M'��6!BL�C�4������2[Q*�7
�U,m�Mo!�1�M]?b����C:�e��B^R�b[U�'O���-�A�$�76���a��t�M�Fs{
3��;�8��P�`c�>���mr�������mc���(%!��O|+�*�_�3.���+J(F"�[I�VI��D2�P	��v�����@3\����LJ�z���(�eC�+��D		
$KKH"-��l �@��3���m��)��eC��M��2�!��D#�a�q��S�X3$�#�pY0�AL���Az���>��A�����/�H��0$!K�U��U��|��L�b��c����;��=p�Y%]Lr�
�t:�*�0�{�X��L� p���/��.(9���>�����K��A�p/N�:r����{�]8���-�;���2g/�&�@6��$D{�"����T�����A�	EM%�0Ve��b$���
��q�I���dS�e��g�y���h	FR�;V���W�X��*�Y�Jd���;E^�>Z���9*dS�c�=�IjR^�"�4I��%���~��u��8ul[g'%��R�o���b�0�4���K��#����"K-�T���u�%�b(
�T/�S�b��.�k��Q4bm"�=�IS�"$Jc@I��l�L ���+�G���?t=���K��KUr,6}��������c{ �/ev$�z���#����I���0�������,fG��lW�$!6-"oI�'����2�g�b������������RF��ZV��J??�M�S������b�	z=mm,��}U�u�c����*�'����o�4_��*�v����a�yM������u�.�A�����i�(��a?D�����-���vI>L*�����N�U�HI����h��!��}!r��f4K�Ga~��Lp� H"
���n)���c��;�v���C��V�x��b�)����6�bQnq~�d�%�,�m�����9AYR���[���CB@~���"��c���&��*�]��r��U��-�T�h���O��B�������b�����(SC3�-����s�#�Im!}��6����/#�Q~�rY��1��J���9[}b}H���:�*)�4e��B��L�����)N��%���m���Pv�n4��� ����X{�U��U��������to��x���fB2S}��
&5�U���,8�}���e��,�"�>l�`+z��f�������Or���@�#�����NR�1��i�l���]F�����������^:j��7)-��`F�>�y��*}�M���I'�T�R���1r�.��������N_�K���_��K��%�X���_���.	����P�?��R}�H2�c�#2����y��"R��w�82�P���9uR� ��}�qIc�=��3:�F�8i��nS�si<�dE�ve"��������ZUD�MVq ���"�Wq��g�$�o���F�"}�"�����g��L_�K���}����/� }���#\r�%E$s�����],U�@6�E������J��L����wZ���������Na�W�e��VGTn��!I�l����f��������J���bD�*:�-[��:�-��73bUlr�-g�-�@�nS������5����r�U}�E��M��*:���4^��
��S���+ L��o����(�@�b��P���q�|D.8��^H	�����5k`K"5����K,�*��P�)�P���"z��F�� �m(���>��"�����}^x���M]>��	�F9DN�:iP\f��
z���oI)�a���������7���Px._Bd���rf|��9�18�Np.����"R�a��l�>�S����j{��d<
�������e���(l����o��"���b��w6RE��g��"V��U�����e95fK�BT8����!V1P"�V!����Hb,
�,�6�����%w�����g�6���z�]�i]�{�YgK����cX�}���a��X[�������X��{}�J�fl�����,B���������G�H�8|�|�����4&,���.����2�M�J��|eQac�;7�����W�M$<%����U]�)�]�-|�!HB�	��1�����Kc�:�q�-�����Bit}Lr�����7W����tl�B_$����R"@�D����3��6���|c�I��=M�K��a)0ly��66���8X�^�.��L�;����s�=7p+�gwy��������M��bc���G��E�����{�0�f�6��=�,B���H�!"����[Ds�m�7K��Vo`93lRU�v�X�,�&�?#��I���a��E��;��������>����.T���I[vL���N��36���1b�D��Dw�>I�a����6�:�}.	�a�$��-#[�5Lv`1���������^����m���L�4�?��~�:P_��&up^J��k]��z�DEN�!��b>�������Ez�����@�Xs�������r
�/L}�(�.�"_0�`ddM�Z�\��T3;%	ZI45Z��v���sS"��yH�J�q����
����!�I3������0�R8����*9��H�H�B";b��P:���W_m0�����wbUc�}^�C�|��0b	K�B�*pq�����>�S����j{������*�����,eKt4_�x�a�i^)�O��cHbp���#�YB>9���C�?Cy�c��z�y�����v���/��9�!
���'p[��j�����i��fP��b`�mC���,�JO2����]�i]�3��F��.97�6}��}h�C_��CKL��+k���D� */��9�0 ���i���~K}���(3��R$Tf/��@,im����/�����4ad�>m<'z�s^��Y������P?#�u��Hv��*��H"D�p���m�ZB�dce��DP!JJT�XZ]���1�F*�]|�4�+����������<\�1Y���-M
���&�]�l~,�H�����:U��>���x��b|�c�GqmH`L��#mH�P��������k%�{��;d���Hcz���������Y��64U�7�2��}�#Uwe�/6��/������t���Q��S�*�;���$M%8Ic9��F�'�|�y��G�9J���s�?i��X���wV���[��/�X,�=
��Tm3�
R~����U��y�I�V�V�X�hlm���cX��&V�&�QF��&�lRD{wuf[~��O����s
dp��6|�]�@}i����y_U�U}�E��`VWRt�P�*gR��9����Be�c�@C'V�"��qU%����-�rHI��cQ%B`X�(�\	��y�`�c��iV�J�N,�RY���Af�e�b0��?��A���\#<Y��|�HR���3�C2d��g@i�p���M��J���������;���fp:T��`�jz��r��������z��7R��>�S���BBR����'mcF�P�������9.����d��B����/�^x��65�3�P�:[����N1���bJx,�F��I������}��WF�5����D������O�"_����Y�.bFH���wb��t*�mn_�)�>�sT�h�3���� ��H�n����%�%#��*�Dp���f�Z���U#$��p�M�6%4�������8!|�-)��WrZb�'�&K��e���)������m8R���F""��_�����/M��C�t�����?("�6Q���&��y��cd��1F(���IN��������a�D����+�9CcK�_,��Kl�K�z���"���{����K}-$�GU	�C�3�_��R?`�U�D��v�mg��g������;F���j��J&-�/KiU=.�>75����S����J}Nl9L��/M$I�3F��&�7i��e��V'��RI����E]d�T�K�X%��u�^�/E�jcl����5�J�SR>��1�*�0��|�u��J��=_g����6O�6����H>ni5���"]��[�m�)�wpmN�g�c�f!QbU=�C'VI
���.j6�t��g��"b
�/!�3�����X�,�~��nD-�%D��i����C�"�$�]��E�k\����f���9e���S�)r��q?�KF��kj?4�
Hb�JY�r��1�M�'�Q�0 ����HQ�����s�:��4���y��KJ J��9r������4V|gKj9�~�Y�9maj��u��D�
��OY��r��U�)�R�C��%s����=�=k� @1l��/,#���;��MW}ZW�JuG�9�8���
�#|�t�>����)���S�X��U�%Al��,
8�|�%��}��b��4���~?�R��C�)���Y��	)e�)bUn�X���#9{�"1K�J��X��>�)R[l��I,��,��xo�	�7Q� K�6�l�3�;$F����6�g�}��}@"k��&�U�����XElP��D����_�,�R�_������KK��4����:D��I�>��$Hjo���]�&���'WbG����=t���.n��R_K�;��ab }!j)��/���j�UW
��m;���!bvU��P]��%�8��"&�{�ab�/�#��.w_zo���r����#�t����1�{�E�-'�A�I5ul{<�d���9j��m�ljK}�j������Tn��H���KuJQ��.�.=�{�O:���XE�l���Y����`��M�(�iU�����Om^S:���*��/�H��bVw+�"��/�/��B�
)
��D�'3�&������C'VI�f�(Y�*#I!�fDH�`G�"��/�,�O<�<�������g�"5<9��S�[���^����ks�g-�(O@IDAT/�-�s��QJ�KD�L�KlP�_[g�������)�*
Fs��:zfi���j)�	^����,%j/�c=�ec+jw�i'�mK�<�T7pB�.��c%
*|�k�}�����|R4�B�@�����-��"���[S��p����Hm�D��#�rH��]v��pFOvpbD06�y�\#�[,�X�U��U����s�9�ay�:"p|��/}h���\L��U���M��f;�
HV|��}�XtR"	�3#7G�����s3#�)��Dw�-�M[����F{�m�L��uB�y��A�t,�]��,��C�����m���Q?�f���zr�Yg���lk���Ye�U�n��M���u�j�s8�F��K��J�<��{�e��_��&�2���%E��f��"���1�����&�o`_��1`����8T"^���L���1������!�������}����x����%e�e$={.��H���2'��
5eGp��+e��;���X
�M�����sR�1�A��5���0Q74v�l[M��mr�M����N���g��/�S�"��|�|(�7��L���v�s|i����'��I~�:���gN�'�~Z���$ tT�te�lr�M'���=Wg����6�)����*����tQ,fu���K��%4���lu|tu���'C'VV�ty%��2��$���fA��D)��� �{ef;!�]��QE��y���K��0�C�#.�X��
a�)��rCso��7������,�$��-)���tI���U������t��v�7��gb��.h��b����>I$'=���\�
7���]�S��u��n:���@��!b�4�O}V�p�/'��	��e�h�H$�\b}?���/me��On��*i}y7��K3����O����;���mLH�����q��>��|��E�],�l%���d����W����et�w���yB;LD��Z�w��������C
9B}d�#�8b �2���
��q�����l�C����*i����=~�9��+�o�9��a��(#����2���-��h���hV�s��LHh0fN=�����;�$�J��Y"r��7�~�W_}��T�/}�D��)�/q}�1K,���$��Fmd�Zj����d���y�V D����N����bb���_
U"W�������L�6Vr�AX���#��@z��S,%���}Km.0�RZH���zs��W����8 �e�j	5�*nm����O����?i�`l9��o��\z��n����VGi��]����I��N�	��C�R0�Ez*�(�|�`�tp�|_]�r����wr�z��g�n��.t�>�y!�������T%V�E��X��n%���'��7r���������*�o���h4��/�*YDHH���E
,9�BK��t�I�����K�
����+�&��*��+�(t�,���-
%��,����M��a��\	�7IW$'`Y������K�Xu������4�]5���~��U��i0Z5�X��o�u�)�n��F��u=u�����)��w���-
p��@T[x,��9�0X�X�wC�@����^��+[��*��9�Xy���t��{r���~��G�L����U]�i]����D*�%�������#+�Or��[��00�&�#U�������2�s�����1,��e��i�����}�X�[�2N+RT���A���-y���sO�>�,{^��X%����I�&�U���g��a�*)����	D��G���{]�K�9R���}�|N����)S�T*�����A�)C�/MLD��lk_"���0������:U�:������3KK0�����������0	�;���e�wM�6V"V�Y6^ZJ[��J�����<i�C��"}���<�<N��H+e����f�Yg
���1i�(M���x�v�|��OTh�U_��#��L��������	M~zm�K:BS�l�����a��P��u���w'�oIOJ���M�{�r�M��|_c�X������Sg�:P����tp�UbU�t�a��Y���C��kB>5��ql�UE�UU���F`��*�,�fK�Pu�,��f�5�\f�����Q"-��PC��	!J�D2(��#�;��`�P��a�4�Jp������J!���E�|B�H�PD�rEr�������%�R"\H�]���G��}&V��KKTi0Z5=I9�Z����f'v]O�gPb�[h��@�����[
�L���Z���k����#�1)Nk"�@f�\���
��n.[
0d�i��~zD�\~������cx����W_]��k,�'$�������H>Dc���	�s��RNi ���b��t*�&�*��,/����U��w�>���+��$HY9r�K������,���I��i�I�I�6E&V�.O�$���6�	I��{�abT]A_�mvI�u���|�|o�h~��:�����$���{�1#|�;&�HI�u�/�0�%�6}"���D8��:D&�V����E�%��i�������k���!�(�d��y���!bU]�)6����X����k�y�1�m��_���}K�Jx8�h�\���2g��F����v������!	��teGp��oi�]��%���"HJ����4�/�#���j������N�aS�2��_~����3�r�H��dcu�m��T�:��M����c�X����&����N�{�����kJ�XV%VI�����6�f=h��$�L
��(��6��(��*bz}��X����B�,��Z$b����k0�$�Q���%C��x~��G3:}�p�
�2�,3r8���$��H�	?��U�>9����j�X���A�/��?��j������%����!aI����X�$�R"V]w�u���O���Y�m�3�j��V+f?W�@�VMO�U�S���z�RY�UO�gh�Y��W��d0&y�2���l���?��a`���	Ao�p�D��E"��I��d���o�9�Yn��!�I�z��1���$V���T������������t$��]���N���U��U�D4"��/����t$b�d��C�8�*�)w�qG1a�eL��F���;��S��{��'��;�1�3%$u�pK��O]�|����(�*T/8�8�����OJ�$�-G�G�K"M �m&}~&����4�t��1��Mr��>�����cA$�|��gX�/"9u��(R��d���R�3�*�M"��G_~�es�����r�l��2����J�D��!��}��'xy.��>�8d�'���J�8��� ���D3��pR�&_�^{m3y�d�p����3�/s���-��F�
;I'4���VB��=��V"#J���-�-wW�:�.@����BQf$�]w�e��1L���������?�J���N�:��S��h|�<�!������5���wQ�X�G]�gF=����*��.�z�xA`��*@�:8��/~����.�����X���.��@^��-O����U/9\#�-j��W7���ibNpf��")��u��!I���N�x���
K��d?o�����\c��\J�*���u%�,M}���_rz���<6���<`�7?�TS5�F�����,�u=u8��U�A�.�>��;��Kd���oi�!�=��x���1#F��y���������G��hO�|��A�hR��&��{������m�Cd�6D2�������������O8���[���U��U���#_� �IQ�|���-}������q��U�h����bE{��N;
D��������8\	M�|h��{_��4n��YcyqN�%V���|,}L����!/�]���9�rg����$VId��m�5���|XXKm6�C��\�i��#�a��qYlq^��
u������������>��c�e�|�`�
���.[���G��c�9�[K�'Jrp�u���[����Vr���3�S��8�{x��23qz���u\����[�	���	��8$���� D����K;���K�����;�"MH*�������sm����1F�E�������I~1���4��Ih��%_��$�:���~��0��I���!���:�J�@2��jS�S���n�������"�y��6��[I�,�C>5��kO�&����Y�b!0tb3�C�A|%9�5�|����G�u�UW-"_�x��O<t �|�W����C�+�5�C�6W���r�9�h"nY�~�Q��7i��A+�dt��G���s�=��9������~���vJD
��g�d�"V�r�Y�c�X�!|8N� f,K����s��X�;3��3�4��w�����b�DxH\8 9r�^zi��O}j�.�p��.�!���LO�Xu����k��6���L�}���m���HG_���?���T=��}�x!C8�	�z���+����������&�����[uD����r�j�m�D����y�|#���o�h{�:@DR"���f�S��,p���h>�l���4iR�c��3H}��<��r��MQb�[�~c�x������	|3��R����a&��yW����$��%������:�C����\�������_^Dz��A������/��SG����qYl%G��eH���rK���d
BM(�K�  ��8�$��+��ml�X<����4�v�g4D��Er�q`�����R�2��{����?�y~�J_��RG�E�e���?����n��# u{��W�93n������rI���m�IK[����%%{G��Mk�X���N�����0�Y��w-��M��0&el��4zZ���O�������X%�����u�i�Om^S:���*�����}w�t=p���[�!�t%V�A]��#C'VIQ3�C���]
�	(h����r��%�C�&�l���;�<���n6�=�y���-	;�Vu��5d�^h`M��I�
�f�J�p�2H����v��-YFF��I�Zi�"�����d�({���M�'�?���e�4q��z�>C_�U)��9�o��C��me�C�Ha��g��h������J�p�X%9�mzv��G�#���s�V����gRL�()e�H�9?RX,�>��4�l�!�0�3u)�;���P/}a�93�}��O�*_��Dt)b�T/%b��~��L��i'r_��6�n������M#����+��R����	�5�xM>���s�IM\��u����j�W4��mS�XU�N����M�m�t��_����������/k�Z���:��$�=y���~����$�����N�����!�
����BTt��/�-�X�d���}iPu)�>��,���CK���w�M3�46�b�����	��oK������EY�l��f����}ick?��	Hc�:�)�(cj_���������{��!��c�����KJ��4�����}��r�����-���,���mo$m)b��l�����K�aG�y�[��3��(��s��)��n��s�����spH���&m�}����������w"�$�~7�o!�}�����>����b�>���=������|���j�o�y�������6O�������*)�>�"���m�z �[���?(��*�z�XG`��*�J8i�uD"D|�s�3-���������L���f��NJ�*<�/����af*
�/�-�\A�����/����[:�a	F&�f�i�"�*3�0��h������J���R�.)��N/I��f*�����|�:X�}���R5����-�����f�.4H-#"���-����X&VI��a�����;��Xu�u�fX��F�_����r>�X�}������#RY|e,zH��H*�)"��"������!�r��l�,3�r��I��,u#������4��|g�yf��;�j�S�s��7��"������WZ.A��}c��i�%�4o����}h��z��`��Z����:�Ll�V�Hu��_���-�����;F-_���9tI�ur�����6Ev���%'dlY�>�)��	���$i�,#��%��T6��5��pl�;�]$[�#�9��7����Mh�^g���<u��N�CR'ra(�&�IN��N�^Q�:v���g���=VBO�������K.)������`��I:�6�|��/�tb�]���2U9'���aU������M7�4p�Z���R�)&��@��������>��%r��X��7�a^��QPB��������KvbmmU{nL��Az\i��%�HQ�*g��2�&gs�d+K3��T�,�J�}��m��/u&���;���$�hr��U�����[����!����d��Y%�6��:�p��|��b�$��I���6�)������>�"��R�9� %��k���6M)��.h��XC`��*)D8�0"&����
�v�}�b���r��=S�L)�����,��b{�����2B ����r�"9�WXa����)e�����ta��B�����nj ��Jh	F���R��`/��r
�1c��D��w��O
5?��U�RV�i��2f	`x�|���1��1}������X%}���lyc�X[�K��5 K�(��#��`���y\[Vn�	I,��$��Re�|�c!#%���B��-3,Q��3���A��$�#�'H��'�o��9�'c����#���3��{��d���?lv�y�`rR�h�O�"_��0uB�c��r�JK��m}�� �`g��v�QU$��tX��t�)�_�VV)]�����HI�E9K.�����S����DoS$go��3�U�����N��	�gU�R4��$YB�I�-�S��k�:����4���iI��\b���%�J�i�.9��O��$|I�N��[.����:�q��m\��J������]����<��9��#�K��k���y��g����I�|&��l������g�����:�n����d-[v�#�I��4�y3�'&}Kx0��N�-�����RK��6��?�����V�����������r��qJ��"�0�Ij�{9F�!����^�elI�H����Iuc��:�\gl*M>�"V����2�����������N;b���7�t�5��M���X����8$R?��?���2�����t�>�yM����H><���]��z`1���t��I�J������7�N������9�����o��&-�����7<���J��%��a`�3��]!�	�JU#��F�oi��dB�W-�$��3�7
+"Efa9Df��SU�"&��T�����hv�X������'`��CF_B���49x$�&����{�Yg��w�w�A�d@#�	���>�D��:���Wu{�����e��I���?���"�J�(�mc����W�5,3�� UmC����-D���J���@�XU$�=����%VIF��cl��u�nDj�ex���H~�H��Qvbd�}�C��?��LW}Z��f
���C8����G�����q��UD����K�s����X��q�
N�&��{�)��	��K��HR�Ist'i�K�~�������H��D"VI��\�WZ^"7�j�>K�H��%y`��|{i�O��/"��s�U1=2�C�� ��u���<�<�
7�+��b ����&�:}�q��K6W��^}!��^|�����G� 
��<�{�m��O�����{�~��T���W������;L	I�-%�n�a�-M.�~���%~���K����R�y��|����uv�/v[W��P��N|�$�I��I82������E(��T#�V_}�����4e����.�|tQ%f/�������{�;�������/6	�������!����Xv�7�J9DC���AZ�Qtb��R��v����U�UR=&�a�"]��������)��r�5�N�NO5�TuS�WJ:�
e/�SR�=�B��p
=��kS�<���7W(Oh���j���r/�-)�#8??J�aK��jC�V)�o~��`p?�Ol�k��]��z)?$�i��f�Q�������T3�����a��/��/u<���'
��R�Y�GqD��2��������M�S�h �U��c� ���bY�>�S[&iFX����Ye+�� ����O�3D~�e)3JJ �W]����({��E2��\3C�LIfL�
��<�A��r
A����� ��$��p��4a�AA��7K\���`h!�������J]M����S&O�l�rTU�eI'F ��O�*_�TN{��W�#�S��W_-�=������4��6���*F&���F;�)$�D�PZ�u�~0$����%��#V�%=?V�C����>KQ5�t���m����H��N8��X�����'}O�c_�\�~l���|��_���H��7������M�x)jvU�����GN?�}��IB�v�<}��9J����s������`�	��b
	+7?�;��9��X��u�R_K�)�_?�s��:�|�As����E(�S�~G]��%��!+����"�J}Ol�����!T6�Iv	l�L.�%d���q�%:�T���t%2�!k1����l�}��Iu��j V��I�^�1F��-c�B����	M����mE��'C���X%h�{��f�:��"�Q�B2�����MK�:P_�<I����y?R��"VqO��H�����+�:��S��Cbe���J������D`��*
k���N���h�,J���.��bf�}���Q�$ev�E��aII|��
��5R��]v�d����'p�����Z��'�HJ��/��*K%I�.�c�rH$��%&��{Lz��#	�N�����v��-�RL�=�X�r�T1�8�1%$c�X���~��������b�{H1!���>�S[^�����}�,��B����O=���1�*e��+N�u�U1�I��\p���/:%] ���L"|s����"�\r����u���o1��d�
6(���s����5�����s�X��%�?�d���1��'>�	Ct��E"��b��)w�������.'ZXL/���>���������,'.����YZ��k���&W�������5b��c�5y�"]U!���d���������H�^�zd���`�9��nS���NC� _��p���o������H���Z����;�����w�:U�Uf������;>��*�V�C�hJ���28���H�:�����M:u$[�����K�W�u�J�GHr�m��/�P:=�8��2;�XocG=p�����z"�c���Ib��\�e:���v����2�<��n�D�������$��+�:��1)�aU;e_�X��#�{����q���X]#U$=��c�K���O)+G�luR�a��c�X��c��'f_#�����`�L��U�����@B�Q��T[,��J�t�,�"V�����M����6�0k������s�]�@}i����y9���u�.�An�u���!%���\t��XB�bU,<*����2�&Q`�>"E,�B����������J�%{�-�=�*�����cL�����}$4���E�Y�/$��
K�a!$�^ �K�RZB��#[H�z��*�3|�����tf�B��z���]s�5������#O�9��9��U����+���[�())J{��3{��!�K=�l��XQ����2���`��F�1ap�3������4R�<P�Y2.$.�`����q,9��:���\{�������]RtC�$)d<�������6�f��kR��4�$e�4�b�7	�!b0e� �����i���I��q��{�.H!zI����zUf�B��?�%6���$]�i]�����q�B�S���BQ3��q�cG'��]R���m�x�����]%��W0�%W���	��f���6���,s��,gz��G�?���bc���H�qO�w����DnS$g�D"V��s�]�=�q#6����L��v�aCU&�=�\1�E���2}�,�a����Q(?cbt����%����\~��ET��5���g��/:��c������T�z���:����l\>v,���D��l�+����R��\��6���Np��C��m����<��V�4�L�Pp�$-��!a���Y����#//�Cm�7�xc���K�s@�>����K{�@���%�K=��C�_����?U�dG���U�����;��E��;D��u�Y������ �I����)b���[���4��_d	Z&1��������d{�8�@I�H������c3L����Z�D��Jj�'v�/:F����
H����y�1SH��c���
�Z�C����C��Z������:���"���
�N�U�S�9?�l��)S��� ���s�Qe� ��f|s�Ex�
c����<�:F<7���(�8�H_(�,S���<�
���h�(f!�7c�!��4����@E
|LJ"-�f������$�5/t�!�B�����q�q����,�:��Y��c�X���}��X�q9*$D���~��A	I_�)e�9m�*����Oh�v�a`��8/�����������=u�U�3��K�A�	��1"F�X�8��H��8_h?1P���d(�}8�!��f�2��`	��L �b���f�>l�5�,��t'�$F1�4S��	��\��S�j�$i�+?�!Fy�����	��|�eRf���O�*��q����-JQS�1v��'&	H"����]�����B'����<��c�_}���5DE'���X��u��~A2��B�<����c1:��?,��
��e�Z�����na���A�v�M7:���[�H���U�O�6Er�N$bu���{H��,#��C��#�%�B��^@~1�Y��6!4�����?IhS �������8�����M���:D(E�"��!���Vv�]Y���T���Q�v���`�����Yrz���De����(e��*Kgu���&��l����������~���itN���`G�=�z�~�NNf�mXH(;�Ji�Wl�Jz]��c=�g-���^��o���B6���~9b�a�v�lv?��^��J���W��k���q�?�]@p����D���LI�$V��V���������-�%Dt&&����w(�sH��>���4I�4�]m��&vB�!�����l6|�R{�V*���E���X����H�?��(�6��D�%��,+(�'t�K�m^�:x����9��.�e=���H����:���}D�3b
����}�a��!���c
�?�fB������/�d��UW]e���������v��|�Cr
�N��Mc ��0h<��C�2�������a���O��f�c0��8�CR�����z#_��RN�$�����>���,�>9��B���P��c���{�"��������`,@eI]�����������b�@0�a<1m�;�	��"u�lv
3c��,I��iY4��"������	�Y�
����[�}'~ZM�l�"���9Hp�K3b�=�K%�\1#��C�nR���zk?m9�J�����6j������#��|�����v��'�;e�a�x��-�R��N�%�l1n@�c���`���X�����>��X��,��g�f��n�{����U�U��U�1R����K��|�`(�`�}�mi�m�x��b���;�Mg@���D?�{���]�d����HdE��hj�I���c�mQ���)�<F6�Z����z��Q:K����L�6Er�N4bu2y�z��O��8�o#����>%)ro�Q|pF�H�o(c&F�0��/����X������@�}����;n�x�}����>P���h�_|��
�
�c~�����?Dj/i�c�N�|���:<K��k��q��/�{�6��a�^�V��k ���H�m�X VY�_,������D�.'Mr�i��u��i����>��i�y���B�g�����$d{M�[)�����bbYJ�}�#��L?��b�����N�r��bB��[��G���J�X|Hv���IbUY?4l[�5�lm	c�X�*��H��4�s��0�����v�_&�����l�M={��%��u�>�xN�H�9+���S�W�mmpe��a,a���u���.��-��� N�:�v��t]Bx���!�X���^7V��X@8[��� �0��*4j1g5J[hi5?���@\Oc��������)
)������89�r���$�����	H9S�����a�gF)�7�K�e?���9���H��v<�xQ������N��c�H<1#f��i����sc�c{r�1���iCp�q�K��XR�tr��Xb	C���BHM+t�D�����G(M�}����c����X�����@������I��D�L�mJ�����S��t���|]���G-��&BF���m�]�����j��~����a�mI1�V-d��w�=I�O��)z�}�~�����M�����6Er�O4bu����tS"r]]Awgs$��!��s��=���.��g@��kj�X6&n)yI��������4�����������J��^CD#"��D����L����m�m�X"VY�R�L��q�K��N1���YzL�gb���<��E"���;�l������o��)+l�����-��]6a��n��u�i���%���$��|�d��<Dp�fWG��B:�7��2i��e�[g�u�J+�dw[�v�c��X������K\�l��������E��U�{}�)�� ���W��|�;��q���	������"�)��B�1�p�	�,�����L���!��v����(H�B�����;'�3��`��F�4 N-�#)\u(�&������T&}r������W_mw���p�An)����VG )����2^�U`�w��\�������v�!�o�����.f��</��c���4B�����F�����B,��K�#CR1J�E(��r�Yzs��Q��Jjht)]W����/1bNs����u�Xj��3�0�>��@r,U���+��-�22��k�6���~�I�-3k�I�b�������Wv
K#S�
3��Ky��b�F?=�s��`�t��Q�.�Ewb)�{�������.�hA�2���mO}�S�}��	A/���wX��7@yi�v�u�,r(��i��T< ����e��U��.�%V��e1���+���[o�b)����_E*���E�J��oru�:R���v���U6/&���������v��V3k��F�To�IN�����x���:n���q�e����GD*IR�$�[������Y}���?��DWml,�.�d�J��+LW��!r�b~�$R��o�����[��>^uB��Y��a���2�o�}�,�fG�_�tV'M���Vy��o�.I^5�)S���e"}C��@�lu���u0�������;l��2��{�~�M���kS~C��X5l�R����L(���ar!��&$Uj"/�FL��T�V}�����u�:�*��Z��T�c��\R��)��"����@��*�cMj�\��,��3���rU!m]x�����n>N�t�	�p�Y��1
���7�`����6��;���j9^�[n9���t���bS����*GX&��C�M��n0W\q��M�a�������e���M�����13�r��c�k�;�[=�0�)�~����m�.A��.�l�
7,�gY#_r�U(��_}ec��� i?s�H9LR���$T4��.��b�T�;F�����,g�#���"�H�0D8�����?lX���H�2���t��uc��p0L7�t�b7z�6
�,����\a�
g�����C
&�c��W&]�i���|�]6���;�
Zl����
���mo}�dq���6%�"�}�h�M6)��K#��c�$uH����J�����ce$���?�Xr4v�t�%��\sM3��SK���DjS�X5X�h�/���Z�v
���bi7"iC���@�	L8�YNc�J��*pAwb�@�R!�Qq��C�5��cL~s��~�i����]���2��������+��>���E�]�tl����66����Xe����U�A�����:�-�)f���2)������;����<�����~�7��M��L:([%!xc����)c�Y���v*�Y�K�`j������\�M���Z&������r~��}��K�"�>���3SW�>��b	z{�l��1)���/��D�O�����I�onjy����1�D��
ak����%�J�Q�|Wmz:�Jm^�:���OY
���K]��z����;W�TbU
�z�XB�6��?�A��h�(U���_�����)f�`xGymB��S��BRe�M���!)[�(t���������/�	Guf�3'4+��TC$K+AP��8�������K3�P�$W�C���R>U��������~���
@���B>8����8}!B@�KY��'f@�����f�8��BN3@Yq��/;�tzR~�i�p��:����]v�$B���������&2K��@�!�_�r�]w���	���	��;���
}�K��f��)���]tQ�����@������M�
��2< s-��2����w�qGa<�i�-��e���u���&�������dX�M����^���E�X�d�v�o����H�^�*]���a,"�s(��-��_|��`�����,���"]�i���|1�	b}j���?X|�=)��2���6���
�!�0md�Mq�m�	�{t�.�o��{�>I��b�n����gj��>��vXO�6EZ��aD,�*�D��z��mDS �BH�����������l����\�'��m�X��Z
[���1���uz)�&�c�8������A�oJ���7h{S��"���Bl�r�Yg����e��k��/����c�^����%�Y�R�2��MSZ��c�:2�66�Db�o�3���YJB�����-��)Um��wC���D]�"���Co!�	Mb�������{���IA&<3�*}�#��G�D���c�&��{'�\R��������Z�8m���b�s������,��L�.�>D��p�E1-���=������,CK���N��S����x��*����1$�W
��-{���tMD4������]|���j����o��a�@~���5��K�ss�R]�"]��^��suH|>!�U��&Ti�G�)��S�"P�XU5����}�����3���1���L3�TlY��25��~��qP?��3��O#������A�������6����
6X�;��%L�x��Dba��pw�A�X��������~W�q
CV���w�q�z����dSWi�x?�S`������v�Lio���O?=R/y�f�a�o��"ia��;�]��c@Ny�~����IO���Xe������H��Fi����e9���#��n2#�?����A�������@�*��-?h����m�G�}6��xQ��7���C�g������E0��'�!�:[�Z�����������:��wC��6 �Q^��l�%����s�)_�d�&��_m��m�X�m�D_E�F[�^����]�������?���7���o��~�v�?��.�G�-����xn�g��`H��I�l�F��/���2Q��>��a������?;^���������n��/M���xN�C��|�<�"dz�#@z�@m'�4��DL]���<S���������o����~����������O"_YF��w�o0��qz=}
���m����r�����;4y���l�B�����Cr�&���hG�e�������+a���|����+���d��}�P�{�����L���T��Y��z������;�=�lU�S�-�x����o��>�'���c�>��u ����������.�u=��L�S&�%VM����(��"�oR�U�~
-�"�(��"�(��"�(��"0�8��c�I9���I2'�Tb�-�n�����������+��^XDJ���%��G���"@1�M_[l�b�m���+��"�(��"�6J�jaM_PE`\ ���q��!E@PE@PE@P&0�R&U�G��N�U��
�>��:���2#�6K�I�����|g�H,o�r�*��� j���F�'�t�G�=���i�0���<yrN�z�"�(��"�(�PbU-��fE@P�����&����TE@PE@PE@��|����K/y<�p�2e��~[?�X����{�����o�} 1�u�or�y��;��sT�Xj��{��s@IDAT0}\�|TAug�!���_����+����X�aC��;��~���SzLPE@P�VPbU��j���"�(�%V��7���(��"�(��"�(��"0x�����'�8����zk3����:�����@��4�����<���_������.��o}��e"Ge�������|����z��63�,���q=����W����o�<w�e3���W�>D�	@�j����nE@PE@J����"�(��XF@�Uc��i�E@PE@PE@P&2�]v�����FA�����|��_5D�i[�X�6�y�������#�4����@k���Ye�U����Yg�e����Q��q���Ao{��F�E�m�:�(���Od3��������L=���B���js����N�����l��V�szPPE@P��PbU�k���"�(�%V�����(��"�(��"�(��"0���l�����'g�*"��<��#������6�-O��<`f�e3�3��^z�<�����{�1����@�����A��_|�t�A9}�3�1�-���q=�����7�h.���`�{������_�$����>k���*��C����{�Y|��zBPE@P�PbU��j���"�(�%V��w�O�����T����gvg{�]��&����-�1��XM���K,�"�����	��kIA��
�P\z_`�>����}�0�N��-3������9�=�i�������E@@K����:��rYa*��� f�bF�D��_����
�-T��Q�������M�����CN�2E������r1�-PUU%����;6��U{��m�{srr�Jqr��c����3�nV����/#G�l�@@�h
���.�F��Uq�(�@@@�X�n�h����������9��	�y��������h�c���b���ui3�n�[}�Q��g��5�s�9r�������@��-[&�f�j�����G����V?.D@�"@��)Z�EHX�U	���q@@@Z$@��E|-�y��%2g����s�
7XUu"��:����
W���P�Vedd�of����_������v��N:I��C�V�@ � �\�U��c?@�� X�P���E@@@��V�e����f�����������:��~m��| ,���SO=�
��5��@���d����y��f�M+�]v�er��G7��� ��������X �q+��SO������/%%E���^��dB@@@B	��7O��K��?��?��:R������{��C=�r�v�*?��O��������{L�zU�i��I���_��eb&�u�V+��f������_?�*U�j�qF|ctD@�v/@���?Bn@@@@@�	����=�l�"{�����+,,��}�J��=���n����~�m��=���������b-�t:e�����}��Y���R������<������KVVV�/��!� �	����N � � � � � � � � �H��is� � � � � � � � � �������������"��<���%))���@@@@@@@@E����o��F��Y����Prrr����a��RQQ�w�:F��g����
H�X�"��F�
;����k�������������G~m� � � � � � � � � �(-V���+�r�� �k��V��
��~{����vy��������[o�'�|t�K/�T�;���vo��O>)��m��Z�[o�U:w����
 � � � � � � � �� @���r{Vm��]�x�	?�.]��-��"6����@@@@@@@@�]�`U+>���R�����A����2r��VT�P � � � � � � � ��}�U����{����T�M��'���$w�q�t�����@@@@@@@@�Y�`U+>���R�y��������W/?~�_+ � � � � � � � �����V|��������S����������e���~m� � � � � � � � � ��Z���C�J9��}y��w�d�v��w�}�s&@@@@@@@@�]�`U+>�x	V9�2eJP��/�PN9��V�P � � � � � � � ��M�U��\�%X�$�g���K���dgg�����f����� � � � � � � � �@�	�j�'O�����N�}�� �q���QG�N � � � � � � � ��$�`Uyy����KJJJ���R���$??_:v�h��
�w�^�OEE�u���d�������S'���l�%D+X�n����g�q:����gyu��YRSS�������O>���MW.��R9������5����]w�%.���K�n����o�kc@@@@@@@@�x�z�J:_|��������[������N>�d���C�~M��a�Y�h��[�N����]�UZ���SNiV��5�U����>���s��!�;))I�"?���W�^V��
V��f��%��-:����}��H � � � � � � � �q �`��^~�e��cG���8�9����n�7i���7n�(s���*d�o�t���N���G[U�"��5�U�7�xCV�^�i�~'�x��3F�y��V�X�]�~�<��sA�q�����~���v@@@@@@@@�����=�\+���Rc�Z���o���k�o��z>
-\��~s����������=zD�K�U�w����~���Z�.���P���/K�,	��������m:L�>#&@@@@@@@@�Q j���������U999N�@/����]�6���v;v�5�^c�[���y���1C\.Wc�i�����D����,_�<��_|�><��@@@@@@@@�A �����$���f�-[�Hc��u�&7�t�h���p!����U�����P�v�j�t�	&H��=����`UEE�����^��������������47X�!���>��G}�\y��A�4 � � � � � � � � 1V�pz?����k�����V����f��%[�n
�����DN>����u���.���z�>�������#��^P�A�U}�Q��L�������%33��4on�J���eA��6�5JF��7�����
6X�*++�]��������I��B_��0 � � � � � � � ��(�`���&
7��4���oX��P�u����ORSSCm
i���p����S'���k�C�!�{5�4{����w�q�'P
75'X�c�y���CR����/opB
UiE���iz���t_�>������n�eB@@@@@@@@ ���:��s���O����w����?d�/�PN9�����y����Cn<x��7N���Cnl�
ZO<���\��M���w�-���!�5'X5c�)**
y��o�Yt(��&
������j���][������K��=f�9��S��i@@@@@@@@@��D5X���g
#g��"r�0������T�����Bh���n8���'KNNN����}���2o����5H���PSS�UZiK�Z����G��g�jS�6=��i����:����/^,o��f�q
dU�@ � � � � � � � ��\ ����c�68�](������Cm��U��?m��M�|���M����������Bmm��
R����{��'�����
S/��r���v�5�a�U��X�d���3���7oI�J+jie��I+w���e@@@@@@@@��$�`Uaa��
5��U�4�j(�K.�D�
�w��|���+III2e�����I�}�C����
�~5$���:����k�|���mz�z�M�����`UUU�ex=
�[`_�@@@@@@@@hOQV]p�2b��fY4%p���/������s����/~����H�����;����K��RS�U��w������qr�QG�G���s������������a&N���w���b�� � � � � � � � ��K���~��_�������
U�n����o�;�{������+�G��3�<3��)
Zi���$h=�?pjj�*T=��I�$???�����ki�j����p8��A�����L � � � � � � � ���@��U��z�t���YV�������A�����]w������e�]&C������g�}V������N:�$������C��
�n�>�P�b��V�Z%/��r��-
VM�6MJKK��{�-�H��]��i@@@@@@@@@�=D-X���4T��I���!����4����}�:\�w��[��0a����g��&/��3G�,Y���G-W^yeP{S�U{����z(�����C6w��u�<��SA��4X��#�������{�������i@@@@@@@@@�=D-X���7�%\�HX��555A��'�2e�deeyW�5_�p���??h�����u�]���`��M���g�	:Fnn��}��A��6���G~���uoi�J�U�9pj�q��: � � � � � � � �mA *��p��Ez����9^�0y���V���vZ��KMM
joJC�`�G!W_}u����***�3f#��:4���~y���z�4.Xu�%���a���G � � � � � � � ��Y *�*�_Y��@�BG���2u�T���
3i�[n�E�v�����+o���|��gA��p�	����,�=������z:�^��%v�*a�4X�U��V�t�5���A��YG@@@@@@@@�]D-X5}�tIIIi���Ke���A�J`xi��I�r����7N�:�����4��9S��[���g�)�G�j�6�.XU]]-��sO�1�A����Cnk�q�����k�uki�Jm���A���o+]�t	j�@@@@@@@@��,�`������e�`�����������?���������r�6]9���e���A�Mi��Q���A��3FN=������t�P��]�Q��9���_���`���%�����{�ddd��u@@@@@@@@��@��U�]w�����Y8ZqI+/N��r�\x��~���d��-~m��oP�F�U����+��c�	�;TP*\�*�9\��.�L�t�H���V�
�Z�����;��3���zK�-y@@@@@@@@@hQV
>\.���&���x�
��8]~��r����5��?_.\���+���r�]w��f�ICQQ���1#d��n�I�w������_|QV�^t�G���L�>�����+h���JKKe��iA�LOO��� � � � � � � � �@�	D-X����O���`��E������B:�}��V`����k����?_�����.
x5gz���e��A�fffZ���6����V�X!��_CJ���)((�-\����������%�*uP���s��r���6�� � � � � � � � �@��Z�Je���j9��#"F�jU:<�����S�Nr�m��;�N���{��vm��JS�L�����m
5�Y�F^x���]b���*�v
����"c��
�)l�c�=&;w���%��/��R����w�����_�:��@@@@@@@@��@T�Ul�8q�h��H��>�H�~���]/��6lX�ms���%K���v����i��r[�F
w�pz����6��	�g��!�55X��9s��[�.��~���J�.]Bnll(�}[��={�,]�4��2r�H9�����i@@@@@@@@@��D5X�8B����$55�A���_�}���}����JV�*O���_|����j��Q�DV6�-l�PRRb
+�{�������e��I!�ics�U��m�'�|2�1u8�k��F���r��QCU/��b��]�>-	V=�����X��
7� �{���2G@@@@@@@@ n��R���<���~%]�v
�s�\��+�������y.��r9��c��!�o���|��g!�ic�=�����dgg������^zI�z�M��rK�{��oN�J��;w�|������/��1bDP�6���{�'��z��
V����'O�w$�����O��hX-hG@@@@@@@@h1	Vy�z��!C����={d����y��+-
:T.��2�!��u��{L��
M�;w��,��TWW��
d��-R^^��n�P���cs�UN�S�M�f]��X�sN�o�����v[��������`�������t

�i��	@@@@@@@@�x�i����]�t�	&4:����:����"
y�kli����*=������?5X1���lh{s�U�����?�8��c���BrAh@@@@@@@@@ ��JOO���?�������L�\s����4��o�V��1c��������+c���SO=5��[��h��g�yF*++#:_�Ng�}����;A���z��'e��mA��
[���A�4 � � � � � � � � QV�{���`������4j�(9��s$))����.�K�������������+W_}�v�a���*=��^|�E��U�'6���+��N�:���>�ks�Uz-��w_�����#�_}P;
 � � � � � � � ���@��U�f��e���y����]w�e�m��I�������Nf��#��.�@


75k����
w}����p8":�^��#d��b��"���i��IAC�eff���S�]"����o�-EEE����|�E�����_|���}���*9��#��j�P\��W^x��r�)
��6@@@@@@@@��@��U���~V�\)���RRR"N���
�a�=zX�����������e���r���*TYY�5�]��� ���SVVVS��{����[�ZC�������:H�����c�z1�����?��v+(�0��UXF@@@@@@@�7����
.��g�����?�1�6�:�,���~�N � � � � � � � ��$@�*��f+��_�����������dU��V�,���� � � � � � � � ��! Xu�����L�<9��F�%��w^P;
 � � � � � � � �����x{��p?�~����;��HZ���{����L�vV@@@@@@@@�G�U��T[pOn�[�M�&���~G9��Se��1~m� � � � � � � � � �����6��/^,o�����Z��������l�vV@@@@@@@@�W�U��d�q_N�S�N�*.��oo�T���@@@@@@@@H�U���#���������z���S&L����
 � � � � � � � ��.@�*��p��WVV&��O����C��8q������X@@@@@@@@@ V%�S��g��%��-������DN>�d�6V@@@@@@@@H�U�������w�#�<���W�^2~�x�6V@@@@@@@@H�U������;w���������&g�}������X@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@@" X�@@@@@@@@@ �V%���^@@@@@@@@@ "�U1�	@@@@@@@@I�`U"=m�@@@@@@@ZE`��]�h�"��O�*��  ��V��g�!� � � � � � � �@p�\���/����e���2o��6z�\�T�`UK�@@@@@@@F�����7�|��_�U	���� X����F@@@@@@@��\z����'�X;�j�{ ��V�����"� � � � � � � ��! XuH�991 XSnN� � � � � � � ��Y�`U{~z\;M X�4/z#� � � � � � � �0���RVVf�orr����X�.�K>��3��i����J����o��r�q���f���c|��RTT$%%%��gO����<X�v�_��V�l�����yu����q��������mz=�����[��������������O�u�&III���8 uuur�UW���K�Mz��_�Z��rss�����fz�k������G���"���������w��%.���*�{8���#:�����aV��a � � � � � � ��-������q�,���B����d��y2i�$)..�4h����K��W/k�{��'w�y����#���!C������<��A&=�C=d�����[o�Un��IMM
���v���������������?���|���{�v
�i���i��mA]***d��i���/m�6\}���iff���o����?�����[�{�9y��}m��������N8���h������ � � � � � � �@	�����m�.GF��4��t����n��k=��hPj���V�GE�M�-��]���{�����,Y�$pS�u�:��.((����3�<��!;;[f��-�s��Y�Eyd��������[a/o��P�����?���r���z�|��`��W^6�5�������X�`U�TtD@@@@@@HT�%������W:�'8].~M�/�~�*���2Ryy��^��o���t�?�����?�/����C�����w>~�x��?��]��z>����![�l���<�m��&7�t��~o���L�0��m���2p�@���1���o�m?��S�p�6�P{�_~�h�+�0�����PZ)�����Y���[�{��8�����l���"Q��O�~����~[`�����������~� ��U-�cW@@@@@@@�� X����|�I9���E+;�.���u�/������������������\�����S�
�[�`�k��T5JO�����G���s~��7b��}mZ���>��u�V�:��#|�uA�J��G?��b�
�BN�^z�|��'V��C�ZCz�{�z�?��O��m�=Z|�A������5��;X?�u�9�X���:��p����;O�SZZj=��+�����,#�@V��]@@@@@@@C�`���y��)r���~�pp��o��_�����^���:��MW�O�.��}�����_�I�R�=��o��Y�d�������a'��U��w�nus�\~�~����w�xk}���2u�T�6����O��.X��[oI���i��&�����l������
������o�`���c�1cF��h@�� X�z�	@@@@@@@ NVy��'�(s��	
nO�j[�I����/~�����/Z���
�'O�E����kE���
Q�BI��O=��U��������U��)}���n��o���������C���?H��]�g������+Li�H�UZEj������|��+t��������z�
V�\�R:v���������7�� � � � � � � �q&@���@'M�$7�pC�������g?�m�
V��~�o�����t(A�������]�������222|m�Z�J�P�<��o��7x�`����c��?��kX���n��#GJ�N�|��,4��a{���;TC3_'���%j�-�
$}������
��������V��` � � � � � � ��(@���T��y9��sB>�/��Rtx:��A'
!����Y#g�q�oS�`���Y������e����a�)**�o���/0��8��+��"'N�n��2D~��Z!���;N�v�������U�!���B�`Wc�^cqq����grr��xL}�,�@ ������@����;|�����o�@ ���-��@ �E�(��-��(��"�]�}@�������5KF�00X8�_��t���O?��.X������k
?��W_Iyy�o���UZ�����*[5�_vv�U9��+�
\��Vi�)�>�����?��;�:L`�j���r��w������j�� ��'�e���.w��a�e@�h����0�G�HxE�D����hs|�D�wQ$J�A�.@��c���S�?�����������7���_��'���vy����w����"{���O�.W]uU`�U���O>���*��������o���_����=�_��`��i�����n�a�� @��	XtE@����Y[B\�+��'~�-w�@{�]�����@�
�.��g��!��x�����"�@{ X�yZ�
V�X�B�;���?":j�1�#��c�=Vt����{On��v_�p�*���������?��+W��\�c�x��~��U�Z�h�\r�%�}F��7��oC#c�����;[��U�B_��� �D�UM�; �mY�/�������o�?��|�;��������N�[�wQ|?_���"����<)����*��U��?���~L���'S�L�O<Qrrr|��JP�F���`���w^\\,�/�BVZ�����wo���O�75Z�j��-r�I'����Uw�u�o�9����>�\�`U�
9 �mF�/�����BH8�?	���a����6�X�(N�wQ�=rn�6)���M>.
�@�`��!�"X"�P������'��;��W_}��]+Xy��������[��w�}'z;v�$''���_�s_|��~�.
Vi��;5V�J�W�����x�
��a���/��;wJ����Oaa��l6��	��2��V X���@�C+��f����#�����s���Em�Yp%$���D~��;mG�wQ�y\	�������_��P�aanw�h�5Q�
(]u�U���"X5�|����;�M7�$��v�o=p���T���V��Nz&P�g�yFx��&y�����}
3g���S��Z������Q�|��_~�,\��Z2d����;�m���O?]��]�]���2|�p�z�BYY���������6�^��&#X�ca��
��)7'C@ �|i]_���x���a�N�wQ��9��]��- ;�E���L �@"�`�| W^y����k����5�[���
:-]��^����s��N�����K�����~�����3|��|.h�k�����O>�D����[��/),��C
�f��%��r�o�A����222|m�&O�,���}M���/��G����Q��@LV����!� ]�4��/GG������b'��(v��	��.
o������Ys&@ E�j����P�����_��O>��j�7m�dU�Z�x�_�����+r�gX�n���PU����W_-��z������u8V�i��i�6�P�S�:�7�����3��g��)r�i�YA��Z����r���+|��XZ=��c���i���{L�{�9_�.hp��������Q��@LV����!� ]�4��/GG������b'��(v��	��.
o������Ys&@ E�J]���K``J�RGq�h�H�N��R����{��k��~�D��W��U`79��S�{��RRR"��/:�/� g�}��~�?��<��#~m�=F����U
U�w�y�M��V��!���d��%~��i�B�/@IDAT;��S�������8XA f�bF��H��Z������Fj\5�r����u��a�]�u�^c���o��7�[�r�=9U�w�-]�{J���������|ilB�F��Ol�94,���a�"�@lx���� �@����a+ �@�U�j���2j����Q��/,,�������|��*��������O��>��n%;;��^����i��u��	���n���Z��0a��
���*
VN�EXG 6�b��Y��
G����c��\�P&�����R��K��
I/�{�KR+�"u"��2���nR��w�GA_���C�u�e����G�S�Z�8�V�/������h����#���Eq��	����v���B�wQ\<Fnh3~���;�w=o����Pv�
fa���~����W��.o��AF��k�9s��{���u]��g�5L��/����]��Ozm�� ��7�,��������������.|�����U��v�����t�I2i�$����=p�����tX�K.���{uu�<����k�U��v=z�u<�djR
�y��zH���
�*s����(�rX�Q`���������[�U����CR��Tk�$[��=I�R��65Y\���jw���\�n���5���R��J�3E�v�:��w�I���{I����U+\��U�}���#�|i���D��
��i���C �x%���fh��������H(�E	���Y@ !8 [�l�M�6����������%3���a3'�6��w����E�O=z������c���}�v��{�����������_�E������,��={�lt��F������r`�K���D~�&)�����e>5�0��N���M8�.II����Ml.���n�u�����):e�N�����.��TIs����,U�6�tT�����L�:�<X�J�Vf8A��������A�/���)r�O�?���q�����x{���S�wQ�|n\5�&��(��(�� � p�V*y��@;�������K�-E���1���8��S$?�@�Lh*��.��T��.�*g�TV���U�8]���S2���n��:��!�zI���m���&"�K������,����A94K�wQ���	ZY�wQ+�r8h���f�� � �A��Hh@�@����ws'6��zUy�8�S=��4q:����W�;���T'��n4��bO�<����d�K^VG��*0�B3�`��W���U�	Z�Y�4pUe���R��U��{W=M��W������j�����_�ES�c#�@C��a�J�wQ��94$���!�!�@�x�J�� � �����x��� 0����h�����a�O5�����tYP&���+����4��2��k2��&]*M��eBJuf���t��7�
m����I��X'=�~'�
�(:�o�12R�$/��*���\3��c(����r�	]9*M������U�MK+[�( �IO3����I��3��K�XIs��(�:
�E�B�s"�@���@�@�P�.:��@@ V��S��hE�������7J��ly�������j�k	{����`����^z�/�n��HjZM�����U���	[���V����S
v�l����X�+�?3-Gzw �
�� k�����C��@���,���
���G��������]����Em�)p
 � �� @�*�"��@^������d�#?����F�L�{����2�����U���t/n�	��U~N�t��,�9]$��������l����Y�Kv�
^n�cV��
Z�,4a+��}���_��Z��!��W���W�9J�E�R�s#��W�w�W�9J�E�R�s#� �����xz���,������-�oG�<�����Z�1<\R��o���i>����7KZ�3�H�%I��NR��U:�u���q�]�K�X�����	y�j���@�e*Z��}:���p�����X]��*�\!��
3��Y7C9:\3�d������uZ���M5�����ls)�c��n�u�jK��l��{��nK��x����}<�<��'=�wy&�4;��,�?�  �@[�]�������@�� ���-<�@@ V��S��������o6/�7�_.��E�,����:II�.����V}������=b�5~=9yR��U:�v��t���vS�j[q��W�5x�}E+Z�1a��f�Y�
�����RO0JQVH������*���r�<�)
Pih�����'
���S��V^V��,��]��Lw�b>�u����K���r`hD��O#@lF���.�	3'A�Fx5�f�����0s@@� X��[D�9{Jw�co�*;�u��}���"�}���.�|��5�����L�����cEl���=���[�z��k����a�M��U��QRMx�0��������J+����do�����9���p����ME+B��N�Z�85�TSm�@UYa(��,�6
C9k�����	KY����Za��Y%����z�A�e3����$�JjJ����TJr��vO����M�V56�����$k�nI6O��T{�U
���,��nU��e�����tH����JYV��d�]��e���|�6l�o�@ �|ima����.�D�> m�E��� ���H��� � �@��7�	)������l[!�z�lq
0p���I�����J%����L J�Rn�Q���s����\e>fnwJfJ�d�Of����JFZ�9�~�j�R�k�Uw�o�d��e�'����U��+���$GX!���2A�����{��!=���[a+�������=�1�n	��w�9�������yRR����dUI���m��4�c�n�uo'���ds�������:�V�rz�QNOh�I��������aI����)i:7��j�3U�|���-|_��������!Fw�:���� ��v�d,��K��%5K�Rs<IMm��������:7?���s��,�M��{�M?C���Cf&�����mP�� ��_�7&�v����X(shL�wQcBlG�X�.��2�@@H�U����G�(��d�<1�l\�G����B�=.����cDR���-%Ul���-�.6���&��h�7V�/q~�X�+�H��Ur��&�T
�ojO�U���m�����VI����*x��2��o%�C����d�Z��t��������.RVU"����M�kd�:��rD~����V��jN��6�L��g����
L���4S����$��g�b�)f���>6�	�u�������d��d*3�v1�1k�F(3�<c�������W�i1�@&��b>&�&��L�J�+����.]����VJK�Y���5��U��m�*�eRQ].�2SI�T*��VT�rTH���Y6����+�0�:�V����`>�P�����D���?4�7|i7��A�]�.j����G nx����Fh��������@@����6�0����= �w|#��s���C������J�����Klu5bs���Yv�e3��5�-k�f��>���&�b�2&Mc>f53�����g��R��G�rJmz������j������6���l���0����j�4�$�L�x�VYOK�"C����������f�2�k~9��p����
al�WdBVke������k��Z�?ms��P��J2��M��lI7�t����$I1U��M�#���N��#�%���|��:��0�f�*S	K?5�g����!)SGJ�76S:��������rR�Vm��;�����O�j�{�[s��j�BW����u��u��6�����Tc��n2a#������h���gn�c%%t�&[������<��x���u��X�����X���4hf����I�@�W���l>~s+W�����JJ:�l�f)&����F�0��i��T�aG�	�����c�W:������6m��X�����$/K$?�f����)������1U���2U�\��Z�����|j��M������u��ivS��`�2�:�I����i
G�
IU��������4$bHJ����j���e��K��ss�%�|���gh*xe��+��d�Pi��
_eu����e��	a�gi���LE:]N���zF���ZTC����0���4�~1�����_���g�#������rO�?�E���q�����x|�� � ��� Xu(�9'mX`��M����d�����wo
y�7�=&�����@�M��SI����7f���j���v�f�V?��l�I2UqL�
������2a)�,��.{>nq;���6%��w��l��:J�*9S��zXA+gvOl�I��U�X�o�]�o������B��2d�U�j�|m?Q��g�*�C!o��F[�����l�VCWI^A���w��.�����'���G�a�����pU���	�h�D=L(�}p]�nm���v������2��f_���
�����i�kJI+Ki5�dj���N �u�`��Zl����<U5�0�:+��J�Yw��T���p�5�?S��a!SLxE?�������\?����]�Y��?��&Wm��r��(�������������|�1!%�u�	~������R\{���~���W�v���'I��J���\U-v���S�=Y����:�.��T�I���T��Kg���e�5�L�,���a�^��U��t���<��� ���Bu�BT���C��������thQ
Wz�MZ4�]�Q/���|f��x���l�e��.�M�e�@��2:��?t����]��K p�x:{����.����,�w%��j�����|Z]Sa}����T;��)��*�/V�G�k1����g���f{�=�|��.i�'��r�Y�gl�y��ki�{ymO7���������i_�Mq�	@@ 2�U�9������������3�L�r[���Nqm����M����-
��u8�m>�N3/�)���S���Re��Tgt��V�����C����s��&h����Y&u%��K�uU�<U�l�eI�IRc�������C���B�Jz��q�	&�:INF����ny��jV'�
<�&�����*�,V8E��������U|�P�U�G�Vf��tn��L�S	��
u~o[phJ�poBCS��!+����0V�-U���O�&�f�iIf��+�LK2_��0V���Uk2y&ce~:��m�X��
��jD+h*�%��]����CT�s�:�	
��#n����O��������m�$UV���i�.cS�bBX&���"��)&x�&��4q����������O���]���x�/���	Bi(J+L��I��&���f�Y�KB]����g]�e��Hvz�UAL�1�\�/�[n�@����Zn�@����Zn�@����Zn�����({�vzR&���XV�A)
NY�tV)UV(���i�j��U9���t�	`iq�(�	ayY��}�;��t3������\�J�m���5!� �Q XV�@��a��yg��z�y��	!obr�r����f����&�xU{�Xj�}-��k����RL�j�T�.��q����k�	Z����v�(p��&[VW���'����R��_�w{6��,���f���o�c��a��p���m��i�M�},lhg:�d�Va��VI�Z�	^��lI�W��.{�X�������^Z�M���m�~I�]"�����l�b)f���p����I�����MI0���5xfK5��o��c�mvs��CCz���4����P��z��?g��T���t��Jt��v�n�M�9]�!=��M����o�[��v_?����s<�Xg����y��=��
l���/W��i1���f�F3l�V��e����������5x���p��Re���/�~�UO���M�TO����S�v@ ��b�������RR�O:�v���/�g��\�wQ�
9�U��0�0��L�!��^�(�������p�3Q�	�d��Jv��d��_X��E����x|����b��>�[�KJ�#�-�-����w��2�����s���<��/��v�m�O��2�e{�V�_`�6��X����.8 � ��������@������y�:yh��Rg�t�]��?3�I���mk�
u�7�\;VK��%R�o�:���5��jU�������O��l��~�Td�F������g��������3M ����E)�d��f���U���������o�����}9R^�'e��������������uftoXGw3C������Ifn3_���8$5�i>f��{���NY#)�f�miII3��S���1m�I�h?U{������V�����U�^K�k�z-qo~�R'+������2�Z&��|q]iB=��th���WfG�2���ACXf���������cu���R���)�2��R)3������[���n��e�����f��I��n�H��X�+������t��X����Z�����s���@����s�a
�o�I���[��I7Fg"(7�SZ���C�������I3?�9#D�-�1���U��;Ql*>�)�.{KwJq�N�o��t��L\�/=5����������h���&�~��fx����NW��Qj�SqD�<���2�V!��j�w�e+De�L����I+/k0%'C�e[�����M[�	aeYU���?Fz���.:`�R%�{��b��o�b�o�T�u�)�kU�����b?}�Z*���V���j��/reXsm�m����}�M"�!�����f�A�gA�Bn}��V�������
���5�7���Y���;P)X+����iFS�5s]��S#�z}jLo_�9�g]�C�����t����EF�oM��k�K~����������_zlM�� ��X�`U;~x\:�)��x��xw�,�=\�[�����}������MU�����������J?_ �5K��z����4�q��Vy��:o��+�M��3q.zG�K�1��Nk���K��S�hY�q�����nW������C�����Pdm|r9�R�/���L`�DS�R~��8�/%e����q�������w���%�@��Tm��33O�W��	c�T���������!Y9���Wf��f^!Y��\��J���W�h0���c�g���C���6��
c���o[_~��/g�����{�j,/�����W�&�e*ai,]���^�w�/���X��cU	�T�L��v0@����M1k/��������8��y�����[�1��[n�P�7��+��Z��0Z�Y��6�h0�:~�M)�������cW���a�r"�����ONf�d�rf��N�o���L�;S[NL�9�n����Y���3��n���V���w�I��R5�e���p���!?J+�KYu�y���~�^���)�*1)�zi}9����3e
��i�	��@������n�B�f�
g�PV�}?�f+�e�����<�������������b��}���l����[��
Qy�S�n���_��Co�1a+��a�L�2�	�C)���P�s��$���r��i��4�~��\i�P�`��R�u������F>i����C�|SX6�~eU	���V2U��[���w�'�3l��6qK{JwX�_��
J����	N�����s����V�s�������s�V"O�u�nn�=�����4u0�aR�����,��������O�ik��}�����{����0����t(C���t[���T���[���N��~���{����P�t����7���m����/T7�@@ �V�����T��w������g�M�-���������������-ad3c$��,��8�!�cp��3�Dx$$�fS �ac�2 ,�"@2���A�AH���Z����z��of������nU��z��^u���Y3_��'O��������1�x�2�KO����n����n�����c[�����;,���5;����E6\�tW������>i���O�c��s�K?��c�����W�o���Y�C�tP��Ck��v
X��jK<�+5[}��qPW"_Ge���JA��&�%W[B�I�������Wm{U���2�����m��.�x4���K����X�c��s�`z�.��+��?o���B�'W�����N��Y���2 �14BJ�$\�)�u�FR��5K��)��f�2�[u�uRO>/�<n���R�L��E�fV�4u���|�h��:9y�K�
�������t�n�9b��<��x]��^��	�I*5k����]�Lo�/�%�����~$��&y�Q_ |�����;p#�������*/b���F�X�	9��>8[����M�}o�n������[��;��;gC��e^���O��s�^�7��5&�W)!�Z}B��b�u�:q��S��0�(]il��O�Nh�1���1��U[�3�?h���Z����Mz��G��W{o"���^�	���/~�4&�^C�����<��r7�4e�SW�S�������c���N�Q�P?�nO�	js�:�B���I�R��,eA�L_rK	�(��VQ�����_
��T�B06;���s8-i���@��&W����k'������x�z��z���W�u���'�TG�y�����Vy��-]���UKp��g]�\��%���>NN���9e_i�7�b�%�;�JP�j��Z�g�P�z�!Ak-�7�����?��[����S(N�
�b�Tnz�B%���Z�Q��$���Z=����(H���-�������b)F���Kj������Z�`B�c]�*gr�����S;A��q9z�J�&�}:(�h2���KW��U��^�rTh�]qFj4�>��r���#�De$��r���_!R�	`Fp��~�jJ��t�p�����|��G1���6|r�������0���}�|\�m}A)�T6���UZ�Bc�����?��9��!��{��Qc��~�����=izb}}�����>4X�8u�����r~�^>`:o�����],>n:����N?��s������g�W*�q9�����y���~�+����A,�]o����������.>����Y���s���noJ�q��%_fq��h�h�h�h�h�h��Y �U��Wl-pGZ�c���~���w����������O=�������]��������'����k���������]X���_d�_e[O=g���u����r�a?9���7���5����]Sw�2&f�(�m5�-T��i�9�fi���T�����{6?y���<k��U@��m�B8W�u�����k��j� Kl��l��m�5l�7�7=��
���	C���o���F� P�����2�A�����I+t�m�&fv�����n���U��u�9['n�M����I7f�^�_
1��T\!�Q���b� *��V�Fh���xh��6}��:	o���8�eC��Q�7�6���;Y���k�@h8+������q����[�jR�r
��a���
pT�rAR�����&�<5M�F�(���	�Pv��������L���W�
���F�>��Xi#?n��v���+�����`�N��L��J�mI�A��KI
�D�FH8g5�&�/���z@�����v�@����e|]�q^k�5��9gu��XF��.�j�s����9�b�zKM,����tEv
�j)�&[���@��mw:|?�����=��e}i�D 
���4��S	�hrR��\�z@�}��R�����OP'r\v���N��MK�#��[J��+}�E�����/�o��\�N��1���"jy�����4*��=��xy�������g�4�l�o\�	������{�=`+���������}�]$������O�����g�>n�Z��}�����[�:��+[=�����^��8�df��T�������8�Q��m�QO���&�pU�
�O�������~�>�E��:�r�\�d= X��59���U���ag������~�E ��it��x�jM_����Gp9�2W�p�~�����mtN]������<�2��S �s7~����;h[}x�G��7�r��@�����7h���?�s�����E�9(��
Xv7-��Tb�\P���FPH<�>��A�3������uJ��<_��p�8�flm�^���)9mA	�r`��%�����R�k��������}]��p_����.��;��i=0�����J m�T�8*UP
�\�Z�������w z	�g�������C|���;����c�v<�b��1V
0W��x���l3F�g=P�-����!<��U���������3B�v�B6�G?����4���V�2�c{Y���������s��������Y3��/�h��������|�����h�h�h�h�h�h�[X �U�0P���,��o���cO_����po���s��w��~k}���
��������=���{l��3�Y( �{�Y��/�- ��������f�?�M��O_c�!P��W�c��e�j~�m4�<�5��h���@����o�l�|E�MZ����CYE��`�9t5+������Gr��m�&�4��a-#���@��B�k��Y�|��^��$��2��P���W��[�
X\�B�h�e�������T��a����n��D��Zy��3����u�CY�O��Y�jZig��[2P���:�:�24I7������;���CV���B��*��*RU`���X�5[g���+�z�b[��m�%��W`�9���rg��S�Vs
[	�j�o|��}�;�T/��^R����{PM�/�t���A��d��MXK=o���������$����ve��<���:�LU��Vy_o�
|����������j��W{�Z%�m�_5��mUY�z���d��������-��F�S1f���NP���V0��Y��� ���X���)���
�
����3	�H�IZ��.'h4���oM���E9?���'���.r��D��Cw��B�������Y.�=������'�_~���OQ-�k�,>�t��&I?��1{f�)&����HKA�\���y��7�)�z��my�;��b�[i3i�\�9)�T8��C�F��8���n��'R�#���1����q����	�,���^
dEw����E��z��-�D��R	��z�2���	�oc�bt�X��,�k
����t���?�
�M&o�,��n��t�@v��a����IX�|i�S�Y�[P�AA�����lC�L����t�+�+��<��/\~�l�����g�+��D�-��,�e��e���*3�O:�N��}�[���d��b	T9m��������e6�;A.�KyH��Y�[��W\���HQ��f��/t�Gw��o��;�ez��)/w��c|mK����R��v�
��	��m������p�
����\i�����s ,Q�J����N�L����6��~��]������_�g�`)=#�Y@������|�����c)S
���XP����,zy��`��p���~����"P_���q�)�k�P�*�l���k>���/y����*�m�@�@�@�@�@��`U��w���������w��W���~�����W~�}�/��]��������x�Q�x�1�l�[�=q����}6|���d���_���o��&d��Go0�3�s�����������|
R���M,��8���f+�:a���u[�Wm!'m�N�5[�	���-&���^�v��0���1�y"��r����Xn�~QA�����%#��U�D����dpGA�*SZ0�^T+/����c��!�z�&}�>u�6<����
��x�m����[0�<�V;�������|+Z�h���-���4]���aM����������- �����6*w��m�n��Lc�:�=��z���j�>�Hu��1���*��NL�3�5JzD�[ p%�Tuk]���n�������Y�
tA��,��m���
.W�k�?�W6��	82�E����������X�Qq5.
]a�X+�^��J����n4=tpM�Am�b������A���!���'�U��EI�������|��+n��&��1l�"�����rb������]��Oi����������}@	r�T�R���1�3D�D��D���	�g�3�x�����l��fc�)#�nn�d�������e�$�&��XP�I��"U8bM"��e��J_�W�'���L������F�]��6�`� ��BV�k[gR�������\��U_���s��������u_p�'�j[*�Q���-��2P�x�@
�Q�a�����3�[���^^����U��V��&q���5����V_Z",Z��~������M�����':G�m�a�,��l���xp#<4����!�p�}c�<���k�*�Yr���Q�DE.[�<`�0�-��'����2������R#&V�(%�M��P�9�$��yK�Q1U�A�T�����Le������`�{�g���
�'k�&����|�����'�	�6g��X�0m��r����2 ������N_�px5Bea�$k��"@Z�
+�,/����u/J��\�F9�X@� �����L���kVU�PY���j�V�-[�6=��u�N�*�+�9���d��m��\�~K
r����Y��ls�����|,HU������F	������U3@8��~�(���=�*�:)�����#�D���1cEX'�9�c����T�5��*�f���r8�(�c9M�t�t�t�r���_%@7�r�N#@w�ly������f����_�r��)���N}_�l�����*����C>��.���J�ue
������N�o�#�s��r���Y��J������[�s��3/��*�so\�N�6>}�#\}�J��^��_�t��>��*���a�w���oPj
����VQ�=�Ec�2J�_��k���^~����������,���^3�%Z Z�n������=��7���n����o����[��w���q3Tn��_�JV[��SK\ 1���U�E���?���|��x��Y��o�������~�=6~��q�5�������N)���<c�g�B~�.�%;_}�V��x�~��L�Y?�G��c}�bt�shq��B���#�"���~����)=����X	��`�
�,Y�6��T�"��c�e��V��5����Mb��M��$����
�0��N��NlJHMn5���d�Pg2�cO2Aj��K�Jfb�<WZ�����j���-/��r��9�cU������4nCy�&�}f>�S�L'h2����z��k������Z�����Gq	@E/�+������}��>IA�B`S�����L����J�F�aB��Z�D����K���6%_c��O���q�L���j��t8<�2�����6W-��g?a�KO[��OY}�9��0�m���jL��Z�
���HI��@,( F���ed���qo�0/�'EU)��Hi����:�Q��s�����	9�%i���������y5oK��
��s�(����6u�����&�S����w�|�FW�8[����
�r�I7������}�����\����� �
8����MA�N�
�Vp��J��t( k$ k$ �,�������6X�Q�'��445'`*��BN��<O�"e��-p��V�x��DAv�gh���W}@��+�(�vT��2(��U�Hqp��r�M��R2+�R���q���M�0�l��W��j_�*���M��DUF���k^y��Oz��TP��u�&%�����xu'����y��������F��R�<EZ�]�x�Qo���V/(��Ucj��1�P$�����I��P��T����I=��(�P�����#GH�xy���� �����:��g�U|��hhn5���������{>��9����n��l�s'�A�y�gP=��yN���Z*�V�o1�V}4��bSK����m��nU�v�K��	Y@���A9�T�l�q������2���B����]�����w\��N�@�@�@�@���l�V��g7[��-,��g����;�����=������O�y����z��uwka����������_~����-��������_`��>������Wm�o���?��\k���Q���������W3�z������N��O>	0��]�.�{��W����v�v�.�DP�y��*���e�^�0���ZV�$zU&`5QW[\BE�|k���6&���E�
��MX��D�&����,)/��/����\����LN�%��E��k]�kw�/D��uy���W��o������q����|����{l5?*�lOW��:���9q|;�%�s@0�D�:�V�[r�!���E�KD�F�D�<��.a"!���BT�������B�
m����z�c�\�Q'���(�FX���2�v7,o1��*F@:rd	�r�1�YMQ&���X���P�O������"9%�4�J�R��f�@�>�)q��+������}�<K���z�+��������F�x4���Otx%�I0T��
|��������(��u�z��	j��i}�����Fw��X������1z^j/;��T��Q��a	��4�{R����C�����<\g���W(�����"���	nnV�@!hs�ach�6�>�I�����	Ja�1�*[�;������Eh�]�.\�pCi�~�\��QE���Y �o�t�z�Hq����WZ�_ -��41&�,�uR���w��
Y�R�r�,��b�J�S
!O��X��*�bcP�ZMnI5��fz���������y�~��@8��$\���sd�	�rY�2��%\��K,��C�w��e]�r�vQ�r ���r����4����r�EAs�O��&�]��5Baq�;��B��,��p_���0��P�k��]����9_Am
��\���DuW->&��F`�e����g�����5���Ss��jy�)�Z&��.Fs8���1���%6��u}iR�u�g&��uB��uE���?�����z���\�9~�r
����_�w�����t�B9h�x;�+�yV;%�P�t-L�b�XW�5#1y6%`Jp�~�!��Ow9�x��h�'�eN��FH�Wc��`��WO�,�+R�x�J�R����BV,weR��������K/��(�V]Y��sxi�K}�~7[t�R��Xi`)5��5pU��b�45b=KHi�
6R�����n�ZSW6���/����Z��o��r�[2�br�W�w����.dv����������$�H�7.&s������f�x�m��:^�3�[������|�����������r'�kff�1Kcv��q�����
�T�g������t�n&�"��T��o-	�����]�=��@��+l*��x�6���O�-������1-�>����l���Y�H�s6��Bl�������@u��������_����W�9J�fb]����BP�k�l\.C�=��� ������*P�z�����#w�)�%E�1�����l_x��vgn��#V�,�����W����*��������)����hl��~��S��%�e*�:�������G^'W�neN���~[���I�R�����pr������\�
���X��+����YdS�<�69�j���!_'���.r'*e=���u�#��v�����XP�zXP
+����	���Z�TK����{�~��e:��Rq�g���=��I`��pS�1��V��>��}�Q������6UBSr/W����]�------p��`���8��h�Sk����m�pf?������U������o�����]���z���O���<j��>6�����^�bK_��6|��p#���w�����V�?��i���<�AVCY�A���Je�6���Bmihm��������@y�|U�#�Ji�}�-���^&O��������Ke����SLIe�B�9���v�~�K�^��&U+��V]��*��3[��r����+K+V%�]�8=�����/
�1]�+(^�'|�S%Tx�Ze�i��&����^�]���5w��6�m��@IDAT����9�z���E��)�� �clD�������;n�^|�������f����5{~5����te�f��C|i�f���b ?Gq���������9���E��p���0�b�����-�@1F��rP�~)nV��Xe�#0�i�����0"�B\m��0�z``a=��u�_G�q�^e8��IS��9!{��$�lH����Jk�>�W;�m��6���mI;x����� -�4�)q
���B�uQ�1����4���5��������V�
=M^1�/�5y'\/�x��e���S�%d�?�k
�S�,���	t������_����- ���(Az���	�.F9�!t��#b��X%�eQ��10� �����Ng�{��~�z�4�9�`��#f���{#�����	0b�����Ve/���r�6=�2���J:���2V[�G�����f�~���x�k��u�Q�.�^�}����L��cAE��Ky������39�pr�>uz��r���=F�f�,���51���=�|��+�)�����ow&���&�BP^���Oe������,����z��:��	�r=b���gaq��>���t�R7[9���&x��+
����?���$y�{���+��@-AmK�`M$
2��P����i��K��6;���|�������]Y�g��8�C�t��o��m�����)}R=��5�;�o�|Y�E[��}���?��Gl�'1��&'5f���r����;����S}�[14�f�Ww'iA�Zk�Z���yuA�6r��L�����`�o~3t9��<o6�,_]�J�t���l����W��~�����FE���]�z�,�x��c� ��U���@��Mt��u%���v�H1�+�Nm����6_9g	
v�j���_8o�{���E��{�4t�kQi���� Y�H��A��6��O�C3��	z���:���|>0}�2���9��6�����0����}�S���d���|B�T����#��<���YnvIy^Ms��k�L1��'�( ��,�98��my����MP�
y�7�u]�S��\�+������[���Ik�U��=���%��`7v� 5O�}s��=���G;4~8P&P{6�d��$����j� ��'�:K�e�\���u�>�0��D�+UG���CP0}O���(�_E��N��7�,���Ju��W�Bc_8bY�����2��P>S&�����,�������Z�c��u��#��4�^.���E���k�h�g1���G�(�������H���<i��^G���O`���Q
J�5����M�5���p�X�
k��|���r�c[�+���+���?�Q��>���]����I+]�[�(/��8�[�`��J���^Y};�<;�����aD������X\D��"��������Y��#V/����9�-u���U_	�����&,J�.��.:�|��h���!��g����������7�
���q���� �]�Aqa3"����l��`k���@0�G

*K�a�@���*sHK�ZO���:����K\Z��}r��@VwW���5�y[�������4����=�r~e�^�����%��F���J�K�|�	������ ��DDDDDD������b�h�;���������_���?�z�#��o�q�������.�h��U|��*P����/���z����
=��������a�w����������k��|x%}����[L�n
���FY���q���:�T}�/�t�._���}VQ8�U��4�y����`��y�px����^��x�����FZ����d�	%<j�2)� ���\R��&���KK�H����x����2/�K&��-���������*�U�V��.`	�z~�nO�6��F�.o%� ���}�4g�{*��$��Z���_���R�A��8����������&F��>~o3w�.�2^���{/K��L���C��d�q�s6�
��2f�C�rVQ>WpU���p�$"��t��iK�r&���!�-B���q��\�K�@�@�@��1[ ���e+��-�������[\����E~��A�"�:����M�s(�kW$�������ObS�S?�	�v�����e@��Z`}�k`7�j#�69I�L�")#?&�z��Irm%A5�'&�������k�u&�)��&�ALL�NH�K���C��[lW#���2MT��rq��0L(j�Q�0M:j2��\LR�IH���)��G�����t�wU����1��OXj��nv����a)'���g?+e](mx������V���$��U�%�z�j[�<'TxN�0(]��l�A�
A���D������f�>pypK
P�6
���PwJx&&���Z��|(0G@
g	�����u�|�t����R�s���0�KL:L�2M������i�����U����,l��������	����RB��*���R�r8Ke�=>��C��������8����\W��r��Xj�r����q�z+�M]����G��
��<���_~m�F�;���w
�\�mJI���}�b5]}���7�R�(��=>��w4uf��*��i���\��8��c�/���j@�`
���cj��5�m�=�3~��W� )�I�-�#���\�(�!gL@��u��
����B?����9�oG�K0*�BR%(%��6P�v�F\�������������O������$�)��*;n��,�:�s��Y�@���s�?c�1GAO�V�(d/�O��T<�f���?����4�7���-��>=$J^�(>�Ep��~�
����;�����1��Q�6?}<b��x��-�!n~Sx�q�r��	�~S��g0b)G*M��=N�aoP?C��s���g���G�O3(���eb����������0b�h�h�h�h�h�h�D�j�1-p7Y�
�����4�g����z��8�Y����c��Xxk�>�q��6�x�&[�I�?�2�_�J�<��������~��,��wA�_��R�N	���~t*�����!���^��G?j	�U(��R&T'JK��c}E����r��r�U/>`&i������������b���k.�}��>�R'�b��5�l�6�7=T/}�*�����i�T_~Wpm(�����o�����������g���\_��M�NY�/	���r�_���q�C\:I��_�!�U��D����|%�/�k|Y^CB�\����5���N\���~�����0����v�G>�T������?r��[�t�� V�B^i�����Xu��n���Mh��m�����M��A���Q!�b���;k�����o���-�������6D�8�0��q�8�z�Up���������/�[��n�W'�uK�'(�)��x�l'/���Y��H���,�|�Y�h�S&�>i7p���u����~'@M�w��vb�5�k�Ku��
luT�chH-VHuNJ�c�A�r��c���I����*�u�>��Y��C ��I;qD���j���j������V�wU�������q��>�A%UT��u|;�}��==���C�ve8�sz�tX��(r���zuH@�C=jO��=���z���5g�j�V��i49b��u���<w2���6������/��)e�9X�U��j��l^Y�h��MU@�)f�'�'M>�������	5�\�\cfJ�� ����o�"w�)���X+��3l�:��t=�3T��:}|�	et�>�����s����PcR�����]%�5��L'����'(������>�uYG�P�L����-�%�?w���M������]�����6�[zR��i}�Wl����Q�MT.W�c�X�:�mF�9B�xB�>��@��S�x��U{\��Z���P+���2������1y@�tU�#�N����EDDDD�����QT����RoT\��7�3e���N��<O�~�V�O�����=����5�x��<�q�S��Z����c���o�#�A<�h�h�h�h�h�����x��h�h����������'����?������������j��O���u�d����m�=b[��3�I�@.;�����g���}����&49���HF�[/�O��iR��e��I\r�5�G�h��C}����T.��|m�p��-&%�	�$-_Q���i�@%�Q&;�!�z���
�.�H�������z�Gq��%w"X�����s�Z����ekR����*AVR�>�\�x�(|�rl��	��	.�	����u�����v�3U��Vmm;�M���7PS���i�Z�6������-�9��+Z Z Z Z Z�4[ ��J2���S@����\���uW�-n��s������&��]H�m%[�|�lHr�y�����U�6m�*�:�(�%�C��
 v�K�i\7&��Rw�
�C\�y
p]	���U����5�u���(W\���>�m��y�[<������M�e[�������"���9���Cq���<���	�A�����x�]W�(�uJ`��^���F�X#T�F-�X��8W���c��p����T�^h���A�Q��t 
�2������Z��y~�����5�����d5������������y����+�I�C��8G�0��KQ�U�)VAu9���!��vY���?�<�o�i��������@���J�N�\�^���v��&d��Ow����r\�F�h@��B����$HEjtT����� L���^�� ��N@c�nY�cv�\�#��1�`�fl��3V�C
���!��8�0(C�n�2���"�:��������/�F1�P�����`��77Z�6U\2��m���(��C����T�'1��,����CPi�v�B&�T����p|��M��/:6������Me
�~{�����[mB[(O+�v �=x=�����H�Sg*�����u�!�������@R�j<��'�G*cl+p����������Ml���U�x���	5���k���U��^����:��v�,e���s��#dy�5��}������kZ��(}X}Z}����������S}�>�
�h���������x�k�������;p�@�@�@�@��A-���Z0�-p�, ���������.�����v����~�~�#�l��Xx�\���
d��u?��k7T�M�g��*�=l��2?�yLP�K������L�Xj�	�p��qU1nAT}U�/��JK�G�n���~�^����M��m��j��M�����/`��E���yl�y��-091w�*����)_��!vd��^�'(/�fC�vu^H�"�"U1l� �y���������z���hm
�^u���V==��0���9��\`*C�*�D���@�CX�V;s�t:!0�@;�-�c��*����D�d�S�4Y�_�|E��Ul KAP� ��J�R�jZ}\&�]b�����6*�9MvH!.�������g���
;��B�0�3����LLm��������?C���F�|"����I�n�v$e�arJ���t��������`k	X����m���dk-���p��H���*
��+��^�P�s����)�;�eRY�W)}�N`;~r�����"��?��Q|���\�yw�=	
_�7�c��w���T��PN;�`#��h'��pL:���(�����Y�sw�w�����	�r��Z�a���M��:����`L��k�
���_�m[����\�ln����\�(�2�	�|�4���s��_^��[��J��Fu�6Q���*f�r��p�������� R@kG�6��;�-PP�;
������{�.�E����x���:��:<|&%H�R�y\1��1%H/�8�e��v��li#@5���\�c�9��{��U3W0Z���}�������p
:�X�!�Hw8
`�f> �6!�J����QOc�F.�Qj�������>���1��u �&uL�A�����m <}������qs
R�glB�3!N�o�LE����u�����D�wb�) �(�*D�O�N� ������D��~KEK�C��EYw�}=�z�,��R
��?�F������X�@�x���8����l�|��b}�Yf�b�
60�����TA����������`4���V;��:E�l�s6nl^�5;6lqMw��H�m��v`W��b�)�K�A_Fr��*?u��j���\_*���^J�BG�@W*V���s���l�u�|Y�����}=��&_k�x�CN�XO�N�J����4+����IZ�U�2�W,�s�Ly���j�i=���c����=�cylU?vW��s���/��-6����k��a������.���h�h�h�h�h�����kNu<�h�`�?}������'���w������������������XK�c ����k�?f��?���
����d�
@���"�c.����2E}�t�����0�P#�AQ)GQ�6C�tq��@�������k$r�'(�}��<�*�'�WT�z�S����k*��s���QhS.���|�P�A����P^~�3^��B��;�ey�����	���tM���Z5xQ���4q]_���2V����|���j
���jc�������d���w���7������%�!i��)W;&J�?�U��{;��L�0�p����B)L/�xs�I�����S�%]��tY�v\���V�?7��z�U�XE��~}@k�������t������P��T���C�n����D�wm\�k��%�����S.��k+�SY��qnC��#^�i�b�C�)�	#?O\|z�5
zk�����/�}2��*S�h�h�h�h�h�h�h�h�h�h���������b��Z#��Qg�M�i<�Bu`�s�Y�:��#�%���%�@U��)�
|�h��X����� K�����`V�����	\u�Le���6�H�X
��C;���"�W{99�Ux�Ve���
�-��
�-��1u���
���b����1�oO������}�����������-----p{�`���-�-p&- x����;�}�w������]��j����_�^��
���<���
\�:,���>7���Ymn��y��H�<]�,��Y]m���~�������U	a�r&���BZe9������>M�ks�Y_�BW������`}�U�W�������0����yIQ���V#����N��2�B�y�%@�"(J��`'��(#]�SR�:jb�k6�U�P���4-�%����I�G���>.�]�67,���|{�R����U�|
�RE���+�X�U��i��B�����O�M-eZ;v]�w�����U������zw�)�;����cJ�=��8��m�]/S�A������6m��.�!��O<"@f
���rm�p����_��	����(#M<�lHzD�e�����Z)i�
�*!.�_��m7Dm�\����7�6�����,.�lie��������4A��	:I�.����m�#%���g�	��Z]X�
<Y�keg����Z^������q�z�M��Z���Z&-�:����z�U����6��n�����O<DMy�t���r��{=*jC���5������]^�r.�[����l���`1���8>ui���(�'�n�*��7������)�����"��6�����>�W�������/_��k�����<Cv�����z6�����r�f7���k�	_����k������|�M?��P�:&���Ml��>�j�7B����	1�7�b��6k�Qjq���5�^��
�%U@d���
-�h5eR�:Q�r]�*U;A����<��kB/�����z��kD�EZm5]�2u�w��:�"�K��p59o���Z���*�"�--------------pJ-�����������]��h�h�h�h�h��k�V��s�,Z��-��G�eoy����������g�����{���d+�Kn���g�	�B����nfQZ��R�e]���%/�B���,���LJ={XF��T��Gy�$�6�:����X��L���P��])O������.C�� 0�Z%@�t�,��UqhZe�%������%P)��$O�����x���h���#�E4XQ�ur��@�����
i�'A�K�+~��cH�L������]E���V�G�������`�n[��h�b������C�1�!��0�
@�Rmo�^��E����y|��_�h	�0k��dL�P�����"v�g&_@P�Uw���������mz�n�(�����(��e����1r`�l>k������+v��fC ?�QG���YR��6pS��������0���	u�����_�e��%v(�:���;�<
�
(2��
I�W�Y�s��`��
���eH$Z$*�:��\=
������G}|pzP���������q�3i[�7��fg��.n���n[��M����-�V��i�;���e�*�
����;@5��&q�68���.��/�Vv�V>�{�#����a�`�<��rk3$��M�0����H#��-------------p�,�w�w�����S�Oqg�������"Xu�R��h�C�@��������[_bo����u�����������u����@*����JHK�I	�����Z���l"5�\MA,�O�8l�������s�2�a��������tP�9����������]�Y9'�B���N �2^9�����P �SJ+��\�L�U:lK���N�H��0���\�J)Lq��Bg�$��tO��R)�I1���b�Y
V�5��0���x �:Z���'�4�����/5l}@�<����e�s	a9�H��`��r`�`'� ����.F�T������P���n��NC1.iq|- ) ��d�i.WP����bX�<�|�Y��X!\{��E^�\
�X��8���'��&l%��%��*����Yu�:�`
����"����r\C�&���=T9TP��'U8�Z�"�(*�%=�!�q��.�zP��e��tJ�T��6e6�
�w��R]�R/��&@r��V�%M������Q��.���j�������K�-����T�B����#��p��{4N�����U�(����I�nDY V!�����Z��.5����Q�k���Z�����Bf�J�5F���&����X���m��C�����9N�	JANqP����\h��B�gt�-��M{�:K��t�it?����Q�t(����:�uW�s6��Z���DDDDDDDDDD�~���~���;���������������:e'$�N��QY���m{�c?k��_�K�T�����>bO�v�^���bA�@����B[M���f0(]I�J�$-&����bJ	/MA&����H��k"U�,q�S��P_���w�	���O��K�������-�m���y�kO]Q�2M����g���E�R�C����8'�����Fhb�����:�����D����5J����^�����'hS�Iv���/�&��B����pm�2 ������W|�t���0�&����z��IO�UJ~����
_�������m �����L�������H����U�'�	\�������4��������G�fE�']
sJ�OPZ6��9n�r�9�pc���&*W���d�X�t�Q��@>��c��X�:W��r�+��>$����E�����|�����������Q�qB:�,�p��m��pNf�
e�N���8��9J���JR/#�p��^�<i���[,��
�����\C\=�Q��Rl:&�^�#y�F��!���R�*�)�
��(��n������x���z] ,-�k#[��i���x�����ZS(��9k�/`S���P�����N��l,� !@��'Q`�C��C��MmC�u��=��Y��U��?�"�v��!��::GJKm.'�C'�T'#��bT�L���7��z�����f����Y� �Y'OP�K���b����mnS�����[�����T'w��-�w��-�&�;���:��!;�l��k�Y�:�/x�_
���L�����{j���7O�"���#p�z������|yY���*����{]��(�
� �>"?a������-������#p����A^{����O�:����S2��+s�x�*���=�l�����u��-�y���U���[/�Oe��+��jH�����f��f����\����
 ��@V�q�����l�{i�M�M\�8?]����'J����`{}��g�>_������S��6��%Z Z Z��Z�{^���������������89D���l�r���Y@4�����w��_��z�?�����������k],��8;8�b��9������J(�T�</m0k6�2��x�+�����,T(�E��5m��h�	��y�i�)eY��$�4M�2}p�����+r����Bw��w7�9.��g��������$���fM��\R/��
.�v|�I�*�K���u&����B3UP���WPy������w�����2��iB<�<f��������NL}\t�q~*r��{^�q��.�����U�^1�3���\�fx�M���<�z8�����y���������R����W��.�6����-�\��Y���Q������g��R�q,yo���m��`�����>y��m �f��$4���i�jreZ}U*s]�y������y\�L���q�/��(�:�
�bkAe!`�Y�a�\ [���Lij��d��pi
��5����n�*vy��������w�P�����n�T[(��ol�A�[@�����&}��bb��>S}$���p?���E�<��^e�jr����:��*�e�����	�S�H�7�@YZ[�;@W[��]Z@=�q��?�p��`l��Tq[$L���O
���u�d�eM���p	����o'q��F���n���2�n�`"����6}�e�V���;��G�u���zB��,c�7[f��� 7�����+M�P�w'�-�9&'(FT��G��S��
��>}�k��%�~��n��R�k���Pv�}�,�=�\����K^nb�*�Mt��rN�6��������8g	
���Q����A;R[S���W���-Q��}A�b3���2)��P��5����l�g"�)��S���xL���N��xv�� _r������'��#��tl�q:(��U(r�{�����Z��o`�> H��i���z�e�qMz��~�Af}@������O��Q%}������14�b�S�@��(��f���aO�����Y{+/�l^���X����'`e��}�K�<���a���U0 ��:.��f�&@���0��mh���-�J8��\sl�����#��mands��-���@~���s�m["^�m�����q{��>D_����2��U	��@�J�<0Hp-�y�1���8������vYr~sd��u����1d��f@��m� �R��}�\2w�iw���{���c^���������`����4G�n���6x�'	v�����E�jq7@��>*xR��!j�-`�V����	����T��#��
/c���0.���C��pt�L?��\��o����-w��Q�+P����H����)Q�t��U�p�W��cp�=�r�R��q�1���n�q����
C�`�y`�����q*UN�@��0!?F�S��#����)O)z�Q��f���W&\sc���1���l�GCb}4�H���=^7���X-pk��Z���
i�Au���]U��s�<i}��#"�'j����t�m_o���E~;(�5IO�"
v��r]����AB���B��������w���;�-B�g�&q���@f��*�*l����i�xnm�j���r�}����	���g�������"Xuv�]��h�=[�>��k��%������oX��������4k���
u� Z Z�lY �Ug�|�������p��?�}����/��TYQX��e*.�ZM/���������ib���i����4�Du����6z���=��=k���m|�y>�U�n���(��/��S��b�����KVY�yb���8��v��:�����y@�����$P����nk�U�
l����e�	����$��n���d��u^�bT�FW��x=���N��r�D��V9J_yk�PC�E�2C!L�`��C��;U�;sKl�g��-��.@�\	�������3�R@"��Ivw��z�@)�S��k&P����7��3�(�+��\������u;��-��
*(6UP�h�70��x�0A���O�jr�{�@�5��#�!�Id�S!w%���~W6�9?6���b��������L�19,���2 ��v��W�g��J�gR[��7�J*����Y��il��&���Ckz���������{����0�y���\��t�u�������]h��{�W���K�.�{�R��6�\
u��
m(��m�]E����@�Q0TQ����%���,�/u,]l[�<gYW��W�Vk���P�F���p
,�|�8�vT��7YU����I`��k�	�RB\hF���7Q���uq�,,�~����}��2��@,��(xC"��-��GB�)d ��^R`��\��U���(�)�u�� ~�_���Z����J{�����P@���U���X~���������c�Z�	$������C�x�y�n�iG��U��PE\��r�b�*��I�z����$�)����I�@md�`�@;�o��~��Y�`_��k_���Xr~7���q��M	9.�~�}�q]0Ah�+`�0�Y��c�qM$��V[X�$^\p�,�������+�z��V�rhR��k���{�\r>~���5��
���Q�8&s����[h?�]}�-�1�?��G2R ��5��F������qN �~��o^A-l�����n�k`)����5x2�#���,������S��$��9`������b��9�F���=�f���B^p�t����C9����q�]`?��,�t�:+����n�S���b`2Af���"T��*T�E���E��P/�������l���2]�{u~��/���F�����\.L�V���������2]?RSSy]u���V�qX�X��������^��=���7o�wv��'�����)������{���2�^�������;������s@�k�����~^����x�pQ
���*���f~�TR�����Y�9��Re�����56i��5A`�s����)��u�1*��vq�:��s%�����*�l@�i���l!����!g�����_i/���?����������;,����<����- �����?�w��/�w=�w�������{w�����g��:[�+���oM�
���@WC`�����&4y�B�4���y������O����I������p��d��y�+����z/�x�7��m^1���R/�k�Z/�50���&��t1o0�W�6Qg{����8��������qZ�m�x�xu�p�&��6���&�N��KeE�
I[J,`;@;���]��i���R�bV���������9��p@�� �5�����,�	�� 9��<�E���\p��+LdX�D�iY��f�zZw�I�.jj@,�c�V*}2�_h���g�x���>c=��Tq�z|�nrA�|��+e��U�4�N�����t��"v���	����>��������H4t}H�����d?������i�����]�p��L��+ :f+]e��XaL�;G��8�����p?v�!M����17X��+����{UuJs����|Y��zmK�����TU�=+���J�-��l���q]�oSeE(��(���P������~J<�F!	��i�w�I���&�
R�)kR� _�d����]&pG����-[{���g�����1~�s��^`�r�H3`�1
7�3��c#T�F�4�����9�v4�����t�������mA���C�6��#�8�M }��u�s+h��}�,�h��1A�
�F�P���]c%�c��L�U5^R����H�G@J���Xu��a�ri�Z�xZ�MP�
��R�U�"�Q�M��^�3����u��a�����}m�������m������,Px�IQ�����(��}����'9��'/~�S`�L�~�����^�*"y)�����73��c�7��!�<6�\MvR��BER����&A��z��6�=0�e]���X��)^�;s������j��Q���X��{w��V��9��~�V���\*�L���������r�jK|���m2^�D[i����X� � N:�����9�3,�@������`��]MtJ%P!�o��=Ne�s�d�g)~�l�X�������9D��
�x�PY� �����D�����=�%���m�k��07�-----pWX �Uw�i�y7[���V��?�5���A~!��"�e�G�}��\k����f��-p�X�0^��1��-p�Y@�k��W����^�y�r�5���bN/��RN<��p:Q�o;y�Y���I��e��3�z�2_���G>2U���W�u��z��M\�c&�]�y�����&jRk�z��l?�2��|}������|�����_����_���&��D_${]�*�r�/���vvr�B����.�R��t�k�Te�kT<�`r=I����4O(i���9��q^�(r�M�h&_W9�F��<�����c}-���c�H{Jn���;2�p1��un�v�|�)�����=��0Sd��TJ������s��x�x�����ml6��"���C��k��$��GR*I:r��ZE9P�@,s0(8$���M���4S��$�=��;��V�3�������18��0v�64
�y�y->�[����~�^�4���k���r�k�E;���QA�$4<��P�E�U�!�#TY.�h���'��B��
f�^4�L���c9�U&��L.�	1��%9������%���*�8��'*-L��q'��F�l�����j�b�"�,z~�qNPA4��c������<g�&[��/��t��u%fQynU����c�����v�H��S]���*=�m��
������*'Rx->WE�]��bTX��:�A*HJ�-k��,$�;?�/�*�#S��I��H����T^�eDwQ�~$C��"�'���K�H����Z*Y��0:�g�,U�
%-W�ZW{����zF��lY����*r�[��M76��E	 ����r�y>�q���2~�O�;�����x�e�@8i�qg��7��%���J�@�T�������&������7�"_���iP�Y����b��>���R`��ReLw�J��R=�?��[
h(��������_�N�W����2�\���`5+�@�zO�G
��<�k)��2���z#(N�\}2���N��&��(����XAi~�e
��W|����o=�?�-----p�X �Uw���z7Z`�����_k�x�������]M�s_�c������.FD�=D��������w���s���x�[`����!@W��v��|(��U�h1�W�e��(s@R�@B�������GH��B~����E�I-�f�I��&�����c������w(���S�n�h>�������b29L4kb9���<�/�:�>�t�x.���:�z�j������4�;{^��X�<�5�7T/�V��89Xdr����������r�_Z����a��Io�!������������~u������s�s��P`������sw����Z����!]'�-�#�Gq5�R��fW���~/b\��\0��Wwn���'F�D��N��"�x��
���
�Ak*K9zF�r�S��N��\�g���
��8M�L���m�a�2_��tY/xE���~�r��9���C>P#��_y5�&�&#��q�X���A&�whB)RT"wj���z-�OE��9I)j~*�()�����=�Yq�S/Q�@IDATlt����U�������z�ee�o8��~f9���2$���1�����h������8\`p����1 1.gk
:�T�;A��1e����M�#Q���m�\��aE%�c�:`*���
�M>�R�k�	bd(QNX���w��pf\��=M[��&�h�h�h�h�h�h�}Y �U�2Wl-p�,��x����{���Ve7�p������������P��h�;��=�x�Y(Q�@��QY �?Ge���h��k�RD�`��*�7����8���J�j��g��v'(�	T�N�h��'1�F&L�����8�eyy��y*��Ph��aKZi']����A�:49&��?1c�	�Y���Zyl�1.�h��+�[�� 5i�s)�A1��<l���:��m��i<�G�O%d����]SS'�7��T���`��%��1oGE
�J�������)b����f8n�N��thf��M�z��e�E��[�N!�?�kL��~l�5~�q�\Kv�"��<.���1��!���t�(���|�����y[T��\,�����W�!
��u�Y�^��������AI-
0
��1���H)���j�(;�����K�{Jy?�{�CR�>��CS�J�8@T�w��*�[�j��9���Y�?��PV<�L�}<_**�iJ[N�T��3��{��E����'����#��l�cQ9�����
����X�c�W�<�E�7�����#������$�y]���n�����f����� pQ�J|�E�����qn���:$�2��������]\��G07���<Z��,p��%{��'}�z��^e5)O�������O������������r��`{�����@�f���w�F����-�no�������]���_���u?���Z����Nb2�lZ*�u�@��a[ �?�m���h�h���@�n�jq�h��@����kRX�{z����c2\���A-�a]�3�a2w&��P�	^-�=L�L�z��o��}=����x��>���BQ�q�/c�|�}&����N�G����P.��Z�q2��8�y����W�����J�+���$��,���.��Je���p%�+�R���D���,%lU*�|�\E��HPd	:�j$�����i9V�� �v�E���L���x����������q�h��X�T�K��i����x�(�t7�rvM����*����xZH�7p%����&1�j5 ���h*��CT�K���}�w����v�����n���,�����j��?������w���mo{���������������7�{Y����A�=�--p�"Xu�MbI��a��z�/��������YjU7J�~��W��f����w�	�-PX N&��--pR���IY>��h�h�Y��h�1--pR�c��Z^�WRK���&�������RAmJ
Lw�"�(WR'�:P��2�M�������f!���N	�
o%�����:�%�V�BXR�`V(���']�I����2�U`./�����H�b��6���T�_�?���h_��E^�C�����]��R�*l�8�x����i_�W_�X�`���S���r\m4��|<���g�<5* ������fUF��%'�X���]v�<��m����7����������~��O|��_���r����N��O����f�V�)���N�\���_k���o�?�z�K�w��?������K],��8��/������-p�-���}���G�)�c��r&�qD�m���l��;y�K�J0�T�|UZ��M����*!��
�_�[�d���9��?s"\9�����Y0�H;T�U�/����� ��877���X��;����t��(�i��PZ�o����d��T	jyZ	�y��\�)/����v��o��n����x��t�M�~T�;�ON��W�Ov���sz@h���w$n�P- �0@S(4K5f �:0U�!�C=���h��oz���P�;����V=��3��_��&w��r�`�I����c--p��`���3n-Z�TX�mO������k��gv�����/�[��GA�T�q��h�h���@|�X����������_�����Ga�8�U�6���k�8��b�}�@��QX �EGa����*-! K$^�X%^P�L�;����[�i���T�����c�e�^0!��+���=��T������2m��e��H%K�1��$)�+C��i�j���B{�!��ZhRx��^��,E�,��"R��C��u�:���������|��}�����|�����9��b��~�7�<u�M��!D���|Qo��0aB�����-�z��w�{��QEU�C�
��?��L��*�(�o�r�g���2�������:����l9�G��s� ���xh���|+@��m��8� *�,�
��|:&�@��E�
'�IS@~�V�e��� �(�RXFa�oo��<oq�n�,]Ro�R�����Qg�sf�o���_7E��~������Lw��S�MT���l�M`���F1���;.]������]�v���e��)	�������.�F�T��*K9��^�`�����8�������s2���	��������c�
������c�K�\�x��*@.�k��7� +�����?�(�3f�\���Y������K�^�$Ya�����*��O��I�L��*�(��~�5_~�n��}]�[93~B�w�G,�3;\���F��/�?��F p�����!�Kr�/�����(p!eA ��+G�~�S�������?H����������������|�R��p���8//O�,Y���N��5�~��2}�t��r�J)_��>��Y�|�\{���M�~��=e����}����u�E;n�o�2����*
$.A�//-'S&|-3_��p��(�����g�s4"�@0xh�8�
�(@��c��3� /��?
���5��@��E��)+B���u�4j�H��U+y����q��6��c����-������k��FV�X���[�x��6m��{���=Ua�*�RZ�V�LcL5�J�*��bWa�������PXe;1 ���z[���w������B��zp�l����M��s� �@`xh�P�|'@��]��0� 2�,
�	��|2&�@ �E�+�B���f=�j��n���M�6�j�*��G}$'�|�>��9p����[W���c�Ro�z����.3�����H�n��A�����>����%KJ����m������da�[��_ ���U�03�L_����3����p�n�G�ck�$<G#G��f��%+A�o��E��"LrQ0�������oc�S�\���*p_�������S����38���H��n�|&O�,�z�Z��a����oN:��D����(;v4��I�&I�z��"OdRX�y�fY�p��p�
R�D��n)�r{��s��
PXe+/�#��@�/?��3����#�N�����d�����^�w
 �"�,_
�|6&�@��E�)B���"_��I#8rQ�B��@�#a,���{���SGG�a��2k�,}�s��w����u����E}�/�-���T�9��*/��jn�C��(����;������������H8��O���k�}	������Y���j����O�b�W�\���2�$@.�S��+� 7����y��U_���UJ��{���3gj��K�J��U����k�.9��3�C������g����PXU��@�

��PgL,�i������2b��"�N�������g�����w����SV��_�?~��D ���`���!�r�_"�<��(��eu ��@�X���,Y"yyy�o����K}l�L�6Mz��a�/� -Z����PXU��@�

��PgL,���1���������U���J#��;D6����Y���������bz�D�\�@�L<.@.�x��! �$�,��:$�5�������U�w�}7���������h/Y���[�N�-w]�
�����n
PX��>c#`��?��Q�=x���U����������J�J��������Y0�������Qb�_�\��B� @.�C��#� ?���ka��9r�>\���7O������l�"�7��w�}����_���ta����������j+\��4k�L�o:[�J��e�������cv@�V�/f�-p��!���DY���Wo��Gw��*��3 ��}��`�����?SC D����"�ar�������(D�f� ��@��b����y��c_�5j�2D�c��R�vm}�����U���i�q��
R�T�t�!V���E�F��*����"/p��~9����o�*w��_��U����;GW��f��-+C����G��!rQ8��*�����b~�C�\�8�Jp^ ��UJ;//O�,Yb��9��A����O�9rD�4i"�7o6���__���k�g�/
�2��ZpJ��*�����'��:�������M�mU	qhD �<4ppY �x<@L����Bh�����E�C $����e"���a/��5k��O�����S�i���j�*i����,C���m���tw(�JW��@�I
����q�={��z���N:�$�X�bF�<x�� ��u��,Y���B�
�y��J��}�|�����fO=�T�R��)R$������_�0���%'6:.�������Z�q'�w����_V����?^�sC <������"�er�������(<�f� ��@���}�������o��&1b�0@������_/'f��S:]X��7h�������'�)\���{��R�P�D����`	
�Z��*_����������+��b4�l�R�����������>y�����o������S������{�y���q��+W��`����w\|1P�
G��_"�Tm�}���k\<��C�Z������c�9D�0��,Qf�xS�����0+�&@.
[�Y/� y3.�
��	���q��N	���J9���w��	�za��5k������;wm��=z������.��t~�^OaU�R\��?(��G�R�r��q��S'}M��U�?h]�t��%�8p�Q|�����t�Ri�������M	���JQ��,Q�D��fc��3�����;�2����/Se���"����.�+�C�����!�y���C���(af�x^�\��1AB!@.
E�Y$� �
�v��.��x�����*7�=�I�ZW�\)��5����������2y�d�����q&;Ve��� ���UNI�4�'�|"�k���=���3fH^^^�}��Z�j�i����=z�qL�z��?���D�-��\�����+����K.�
�d��[q�i6���R�Qt��}J.��4{�2���Q����?��3E ��� G��!�r�b�L��(��em ����kJ]tQ��M�L�2����-��$)�����@�f
�l���H�&Md��Q�TX�c�)�z9r{��EO�*UJ~��gy�����[n��D^�u���K����z��y�i����n�������|�r�s�jls����<����a�o���Z|�v��
��&=0^�o�S
)�A/\�A��Y���Z����_�b�U�\���.�%@.�W��-A 5�������ce��q��������3�=�
����:pR��*'�-KC��_��������z(�?t��O��H�-t���������������ws�M�&�w�y���e�i����^>����o�����G]�������G��f�����BYP�J����rn��2���@ H<4R4Y� ��+^���
���Y�����E���E ����F�u!��P/�8��s�&�h�"�^�z\{�
V�+�u ���UNj[8���K��U%�2Ua�/��"�������Y���[�N����o��2t�P=��L�i������W\!s���m��1O��7O.��r�P&N�(m����j'l�E->��C��/~�_7,?�)����H�B��� $�)��	��/f�@P�EA�,�B�_�"���"TrQP#��@�t������9��
��Y����~)�����@�f
�l����G?�v��g���[��U!�z���5k����������\�������{�����?�\j�������>8p�>V���|3U�V����^��cw�7wO=�T1?	���l�2}Y����r���C����rp��R���r���f��!�@Pxh�H��'@��_��1A 1��	�	���3f�@�EA�*kB�%�����*�2��{L������~'M�$}�����Z�J��-�����U����������o�E''7��wr���@(��a�o��VQ��jS��[�~�\}���r�J�-����#�;w6�S�Z�|����T[���u!T�&Md�������WK�������>*=z����v"������WJ�(a\���d�v�����)R������gt+#�@0xh���*� @��C��#� ?��?���%��@��E��1+D@pF��*g�-e�������M�7e�������o*J���]�v����"���������Jf����-�)�����{�9������7�xCZ�h����9R�w��O�J���>�8[!��G�`v���������"�@Pxh�H��'@��_��1A 1��	�	���3f�@�EA�*kB@pC��*7��s��mR�N���7zPU��Jm�V5k�L�~�m��r���4R��k��2j�(}�7�|#�-Vj4h��������~��@}"b��_����^�������8[�@�"�YI7 ���'c2n@�E6��%d,@.���@�r�
�t� � J
�|v�����[�z#��TQ��
�t���q��U��Pk��1�Q�T�,h2d����O_��g�����n���[����>��$�y�T���KE}R����/:t0���i�/ `������T�����#���";T�2 e*�� `���U�D@��U>����?.��u�����^��UU�T��[��4o�\,X��L�;�����^�z��w�q��;V�z��)Z��>N��>Y��knc�������8[�� ��U<4�J�~@ S�O�b\�v���P�O�T�\���#���";T�@@ �V� �k����Lj���|��)rK���T�R�S��]v�������$���g��;����{�=i���q|�M7���S��#G���d;�����u�����W={�4����F`�H��fA�
d,@����@�r�
�t���2&��A�\d*]"� ��R��*����_~1���~�zc�5k��?�PJ�(5�t���//;v�0�M��U��T�MR��l�2�����v������S�Na�Z��g���6l����+��i�,v���k��}{wr � � � � � �@�*V�(*T��Y+ ��PXe	�}��79=���z�+V�y������l
�Z�l)���7�H�;z�h����>��G���[o�U��y}���CR�pa}�hG�5h�@�z���u�V���Y���*U\�� � � � � � �@*
�R�p@��V%�q����E�z����OG��[XU�V-���O�[�4i"�/��&��z�T�>}��-[�H�*U�cUp�
�����������	��7n��M�2En��F�8l�i�,v(���[@@@@@@�
PX���d@K(�����N"?��F<x���	0`�������+'�{�������-[�8>���E��Jm��U��7�����Gy����%?����|�������k��<Yte������+r�5���9s�H�6m������A,����?��*�eC� �8%�8 �J�\�J�s ����)i�A�T��T:�C@@ }
���r��B�
Y2�zCT�F���T����u��"E���D;�]w������T�=�����;�s��-�.�@'�3f�t��Y���_���� �	���"H�A���?�q� @.��.@ crQ�d��6��l@�K@@�P
PX����QX5t�P����^��,`�5�q�������M��SM�6�E����.]*������s�����j&��������������+%J�0����F`�H��fA�
d,@����@�r�
�t���2&��A�\d*]"� ��R��*�]}�o���i�p��5Q���WOO�6Mj��m��7O.��r}N�!�C��8vg��mR�re���O2d�>����t����}��������D;��Z
4���/l�%��
�E 2��)�\$�2 �d*�� `���U�D�L�E��q=�!@.�C�>@@�(@aU@������+W�i�����??��~��g��������J��}g��a����m���r�W������^*o���n������O���;���7�M�z�5F���"��> ���r�~�V�����!����"+5�� e+�} `���JM�B@��U�~��Uj������'��'{k��
�Q�F���o\��\��_H��E��jG���cG�v�m����c�p���M����[Z�h!+V����>E��4; ��<4��.@ +�OVl����,�;�J�\�7!����"�A�@@ �V$��V�[�N�������zJ:u����>��i���.�R?���r�wD�����'5k���[��s�����b��m;v�0�tYT���'�3��[���]?� �@.<4�E�{@ �O.z��V	������E�\���"��U�"�$�@@ �V�/ ��*������#�<��N8�(�Ro�Ro���T���y������l������_����V�Z��={d��%f��[�\9Q�[U�T�j7����n~@�\xh�� �#�@���l��� Y�I_ ���([9�C+�EVj� � �@�(�
H�3-�:r���1Bz��]�@�z�d��Er��'��v���r���G��*�
��k�����M����T�C���Y�R\�V���?�F�\��� ����"�E�� e��= � ��PXo������{��g��M�62g�������o�=��#�����^@=��C�����R�x����6m�$w�y�����N�]w�%��w�T�P!�������~�@�Lxh���#��U��$�r ���� `���*I�A�\�E��q/ � ��(�:f�=���5k���,�K�������(Q"+�������h��R�Z5�Q���|�����7!��	��,='�B��?���#d.@.���;@�zr��������27�@@	PX�H�6@|*�C3��i#�O����(Ad	@�\� � @.
@Y � ��'(��D� �����GzA���?��qX/@.���@ srQ�f������7�G@@�p
PX���j@��
��,��eY�@���� 1EB @.
A�Y"> � HL���Bd�� � ���U�03 �����gFA�x�O�	- ����ysFD�xrQ�	- ����ysFD@��U��+�B��Bx����?S@!�G�^ y!
��E�
 � � `��U�8� �����'��$��'�ag�xN�\���0!B)@.
e�Y4� y.$L@@��V�4pL@�D<4K�B8!@�qB�1@� rQAB�G'�EN(3$@.*H�� � ��'@aUzN\� ��/xh��01I)@�	dXY� �.dL�@
��V����E�F@���U
�B@ �e��= `���
E�@�\�E�
r?X!@.�B�>@ WrQ���� � ��oV��� �@�xh�`�|&@��Y��. 4�,�	��|0��@@�E
,�B@p\��*��@�xhf�-=#�@j�Oj�"��3�"g�R��R�p� 9��( � ����*�1f� �!��Y���R����ca:�T�\���l<&@.�X@�! �4�,@@�r
�,'�C@����{���@��?a�`�xC�\��80�.@.
�_�G��"o��Y � ��_��*��� � �xh�)�A��?�3$ %d� 9�p �P�\���F@@2��*c2n@@��<4�nl�A �=�����'f�@��EA�0�C��"��Y"� �x_��*���"� ������B�X��c1(�!�@V�����	, YJw ���(+6nB@@ N���8@����;f����?~� �G ��`��U �wr��#����(qd � ��PX�~� ��	���2J:B��?�q9�"@.���N@ CrQ�`\����la�S@@�
PX���d@��
��,��eex]����1?�!@.
G�Y%^ y=B��p���gV� � `��U�3 ��	���1jB��O� ����vE�rQ� ����vE�@`����q�F)T��4j�H�-�U�����<xP*W�,�����#���?���z����e���F7��r����v��)_}��:tH�V�*e��M�6�A�v
�l'f@����s������h�@�r�;������h�@�r�;��� ���*�j���l����H����SO����s�J�N�����k'�<�H�}�r����2w+��U���������[n�!C�$�v��U2|�p����=��%K����;Oz��-g�}���/�PX�89"� `�����gH-@�I��YpF�\��3� �@jrQj�"��3�"g�@�Z�����1ct���g�Vm��EZ�l��t�.�r{|���N:�U{���������3��i�����{��?���i]�EX)@a����� ���<4s9�@��?!>KG�C�"�� brQ��������C�`* �i	<��2t���k��2)����������9Ass������5���NaU���e���qS�V����i���syyy��c�������V�-L� �8(�C3�
��?Q ��K�"����EQ ��K�"��@ c���|Qo��0aB����g�V������u"��T�NV�=~��
V������k����Qu��Q�+f��������F�u���c�M�6Qm `��Uv�? �
���Al�B�(�O ����%x�E�(rQ ����%x�E�H`���F1���;���{VPa��]�d���2e���}�]X���	�rcA�UM�6��7RM�:UT[�-��N�:���o&��6l���6Z:F@�y�9o�� ���������Q` @.�o� @.�B� �@2��Q 3f�Hv����{���j�����W/IV��:������S��x2Ua��;��s������ke����8��M7�$�-��>��s)^��>f�(��[��@pP��fb3D	��88@��E.�3,D	���88@��E.�3, 0�#G��z#����H����_�)7s+U��.\�<���<Y�d�>V;5k���������u���+�|���8rg�����rb��={��#ts����O
��v�_ }������~��Q�'�t���[W���?�\���{����5%K���E�����7�������~��'�O���S�{R�m��u�e�Q#*nj^�8�
����+�:u�]>���r��W��D;O<��:T��7o���WO����V�-L� �8(�C3�
��?Q ��K�"����EQ ��K�"������[�Q�FzU�Z����{N'�Qo�;v�>��6T�zu}|�5���+��z��< ��M�{��W��*�R�Y�@����)c���[�R%�Y�*��c��?�XT��d��=z
�;g�u�>\�o��E��a���*2���������W^y%a���1c�D�(Q���a���I?���U�U��9�[n�E���S�|���D����8q�Q��/H�[X5{�li��A�+iB�
��q�W@\���+��G�?� ���E^�s@r �r���@ ���:��e�=����5�6m���U�t�}���|���8vG�))��F���������,���_�"��u�E2�?�|��U��L��w��m���W���UV�?s�L���{��
:x����C�q�EV���w�y'�Szq7����[�l������E}�/�g��M�4�zYlaU��hT�w����>��3)Q��y�/�PXe;1 � �����f$� �D{p�����qgT� E{p�����qgT�������}��3�^�89�t{L&O�,�z��k6l��|���8vG��Bs8p�t���<4~'M�d|�-�sn�Vm��Y���n����"'
�����?��/�8�Hl�"��e�J~~��k"��e^��L�>�EVE���j��I���E�
�|��y�z����!�O�����M�6��^�L������]k^��ka�*�S�}��>]���o���"���U�03 �����gFA�x�O�	- ����ysFD�xrQ�	- ����ysFD�p���j���Q�jk�����5+i����NQ�j3���W�*�Ig���*UNVY9�}��'����]v��I���#���mjGYv��Y6m�����*Qa�z����F���4�[�6n�8����u�j�g��Q��S�T*V��w�����g���*��*5�k���(3'��pY�g�����V��K� �8,�C3����GS��.
��\�gh��"M��(@.r��@ �a,�RU��S��3��K�J��U�C��k�.9��3��e�]&�>��>.h'��U�f�-P��p��	��[����-Q�Rla�*�R�c�}��C�=Lq�[l��m���?�<m|nq���r��'�6s'�Z���ymA���=z��3���-^������
V��J� ��%�C3���?�
 ���E^�s@r �r���@ �a-�Z�d���������W�t�����i���0��/� ��'�-��U�Sw�MR�~����==��Sr�UW%%Soq�,jSot=zt����US�N5>�u�������O?]��-���d�����_��g�y�<���j��A�������	�/�Kd�8"@a�#�� ��3<4s��Q@ ^��oB8/@.r��@ ^�\oB8/@.r��@ a-�:t���7)m����z��������N��}�]�]h��u	��w��
a,���PEN��)R$�9j��o���.�H���c�_q�Q�L�1����/����;.������;O�V.�&s���;d��9����N:I�������e��*��6p�@Q�$�����g|1��}����)i�A@��9�� �P�����FpX�\�08�!�@BrQB@�ar�����ka�
���#e���:�����z����-[�H������w�-�������8]X�>7�>��~Sm��|��5K�y��{+U�����o/������"����J6o�,�6m��7��e����>
*�*S���^�:���}�6��,�]r�%�?��?����[���k�cU,��'��s�vj����2)�RkVoBS[�[��=�{���M�#���U�r3 ��
���^_zG�����6�A��E�Y3$ %��8'@.r���@ \a.��-�Ro2z�����Q�d��!�x��R�vm}�����U���i�q��
R�T�t�!�V��������E����t+���a��2k���]E��*������6>Q�:8������^K��:�_��U���t��AV�\��>}�k��Qm ���UN�3 �6
���F\�F�����<�D��EA3� ���$8$@.r�a@ ta.�R�����%K�qWoBR��)Z��9rD�4i������/s�����#��U����Q<4{�������;�uV5o�\&N���O�Y[XY$�N����]�v�
���Na��T����w��c�x�_�?��\���!��&@a�k�� ���<4���@ =�OzN\��
�����wHO�\��W!����"{}��+��*��#��?s�:u�4m�TV�Z%m��1�e�����m[}��N�:$��s�����	�T1S��u�7k�7F�����?�gwaU��j��i|:1�D#���Y�b��RPa�| 7�|�^�����e����V���� �X,�C3�A�� ��M�� `���F\�F���EiSq!�(@.���@ �a/���o��~���o���n�#F��d����}���r��'��tw�.�Ro�R��<|�p�).\X�=�\)T�P�����oyj���<�<������S�����;oj�V��)R$���s���u�*h��W'"�@���T��p���m�f�&��,�JUX��~�����7r��*U<���W(��J$� ����D�@���?Y�qX,@.���@ +rQVl����,�;@�w��V)�~����	��%K��5k����������ke�����e��taUf�K��L
����//����|��a��tC��*lR��v�e����>k�VV��i��9S��t�R�Z��>�����7��e�'+�Ro�Ro�������E���#��G�u
�\@@�:�YgIO ���'3/�F{�E���+d&@.����@�r�=��������;��J�sO/��|V�\)W^y������<����x���r����Lv�XX�>��i�&���g�I��c���O�����-[���YYX�F�d�R���F��!C������]�v�a{����5i�D�{�9Q�zlxM��*�E�� � ���r��V�I���7#��E�"� �r ���� `���"H�A�P������������g����-j6e������[���k��z�)����#wb���9�)S�D^f��U�S�Z�����7~������/�P"�V=������G���A�1c�+VL�����(��R4� �9
��,G@nG���?Y�q#X(@.���@ krQ�t��
��,��+@�8��c������w�.={��kO�!��U}����'j"�i�'�x"��U�����_]���n}��S�~}QW���o�R��7Nz���!�O��q�m���9���@IDATr�m������&�7��J��b����;��?��O�M)�/��R�X�b�k8���VY�I_ ��,�C3����X�����t<$@.�P0�
! �8�,	��<��P`��r�9���l��ER�z���t�XX�l�2���������.��r��x+V��O�M}:o��uQo	�������r��W��U���Q�BQ�]7n�O?�4��y[X��.\h���W���O �!���UNI3 ����d�@�����,4"����"��
�������g8@ �;v4��d.�a��2k�,�0��0V)��C�o�JM&����7H�7^5o�\�nua��8??_:u�$�x.�����/����K��"��g$k�����T}%;GaU2�����.Y�E@������ `��C@/������"�@��"/D�9 ��P��S�U���c�I^^�y����I��O�>�^����e���twj����wn����"�t����l�W�����7oN8�zCS��]�A����_J�&M�u������m���o�R��B�T[��8p@&O�,�F�����zs�z���A��K�.2g�cH�72p�@c?���R�-�9�w��Y�D�hC�
�la�S@����;���"��
@��"/D�9 ��������Q` �d&�>��m�6��u�Q�T�ti�Y��T�TI
*�Yg6^������E`{����u�o�*R�����5�	PX��=##� `��,'�CHS���&�!����"[y�� �	�e `���V^:G@��U!
6KE���cV��W�?^��B \��p���"�Ur�W#����(\�f� � ��	PXe�-=#� ���'g@�]����xA�\��(0 �7�^ y!
�@@ V!��@��xh���%@�qK�q@ R�\��>�%@.rK�q@ R�\��> � ��PX��w"� �9�y.$L���Bj����E��C 4������"�ir�����@@|$@a����T@(H��f	q� ��%K� ���(-�E��Ev��/d"@.�D�k@@H.@aUr� � �;��.dL���J����E��G 0������ �kr�����@@<$@a����T@�U��f�
r?d+@��V��@�Jr������
�����>�R�\d�&}!� ��Y���0G��#�N��f�)B�7�����"hrQ��������7�b�Z�\���8@@(�r��@�[��fv�?$ �$��� 9��X �L�\�L�vpR�\��6c!� �Y��� G��!��N��f�9F�3����� jrQ��������3�`"�Z�\���x@@(����@p[��fnG����'��g�xI�\��h0�+@.
o�Y9^ y)�@@��V�9z�@����p��	��f H!@.J��)pL�\�5!�@
rQ
N!� � ���U`q) �^����#����'��ee�I�\��h1W�+@.
nlY~ �)Z�@@��Vy9:�
@�xh�!�#��e��(�r ���� `���2J:B��E9�q+ � �VE`�� ���xh��2�+@��o��9A )���
���;f�@��EA�&kA@pS��*7�@�xhf1(�!�@������l ��K� ���(m*.D�E6��5 � �@�(�
U�Y, �@�xh��>�+@��nl�a �)���
���f�@��Ea�6kE@�S��*;u�@�xh�08�!�� �h
v@�Er����Z�\�)�A�E.�34 � �@�(�
T8Y �@�xh�����{����	���Y���	����gd8&@.:f� � ��PX���"� �1�y, L�	�Bl�����ESC D����"�ar�����@@|%@a����d@H-�C��>�E��?���3�/@.J��+@�>r�}���������J@@R	PX�J�s ��L��f>�E @���� �cr�������(@�d)�X�\���1u@@O	PX��p0@r��Yn~�������N�N�\d�%=!�@������� YgIO � ����*��g� ���Y��r����G�b�X�\���4|$@.�Q��* 8�,
@@�Q
��f0@����������?�m8��	����f$H.@.Jn�pN�\��5#!� �[���`���!��L��f!8�E�C��� brQ��������C�`*�X�\���t@@K(�����@pW��f��3:a ��9������f�@��Ea�>kG�;�"���� � ��[��*���#� %�C�(@�A�����I�EIi8�
���f(H*@.JJ�	@@2��*#..F@��<4�v|�A �9��
����+f�@��EA�.kC�?�"����"� �x[��*o���!� ���2��b�P��c!&]!�@������, Y�IW ���(k:nD@@ J���(@����?f����?~�sG 8������ �gr�������(8�d% � ��
PX��?�#� `��,��3�@����"��m�"�h�2 e��� `���6Z:F@��U!8�E���_V����?^�sC <������"�er�������(<�f� � ��
PXe�/�#� ����f0� �D`���	��\�g`� E`���	��\�g`@@��	PX���@�p��,��g��)@�qS��@� ��"����"7�Lr�)�/ � ��	PX��w#� �)�y*L�P	�Bn��g�E�

C T��P���"�Yr�gC��@@|&@a���t@H%�C�T:�C;�?v��7�+@.JW��@�Nr������
�����:@@RPX���� ��J��f�
�E P��@��� �[r�oC����(P�d1�V�\���1q@@�	PX���0@r��Y.z����r��^�J�\d�$� �@.��\��� Y%I? �����oe�������5���E�
PX���1q@�xhoB8#@�q��Q@ ��(�g@�r�3�����E�}8� �@��	&����/�����s���%�#��G(��h`� ����,5�A+�?V(��*@.�U��@�
r�����
��r�~@R�u�]��+�QX�����]��*�G��#� !�C�v@�Q�����I�EI`hFG�E�r3$ %��@�n��&Y�h���U��
�����aZ �d#�C�l��� �X�H ���(WA�G+�EV(��*@.�U��@H-@aUj�"$
��M�� z���O\ ��F�� !@.��`\ �F�� !@.��`@(���.���U
�B@ �e��= `���
E�@�\�E�
r?X!@.�B�>@ WrQ���� )p��!���7��)"'�p����Ay���d����{�n)W���v�ir�9�H�B�"���| �6m��~�I�T�"����v��R�h��kS���_���K�5���|T?u���b����]�S�����e����e�c���W�j��I�
�p������]�v��#G�C��b�
��w�������T�R��D�+35�O>���r�����E:�����N:����o����~[���'j
�7N����q�I(�JJ�	@�'�C3���#�OP"�:������c�E�\�H��-@.�w��= �5�7�|S��ooL�L�2�z�j�;w����_v��7��5k�/� ����so������O�o�w�Yg�%����lS�Lj��C��Y��S�={�����[�?����>|X��yy��'���)//O�w�����Uq�*�*h��m[�%{���A���	���
��z�aZ�D	�)�WP5h�@�-[�L��+����mjG���g���
F�s��	PX��w!� �I�y2,L
�P�Bf����E�D ��P��E"�yr��C�@��k6.����U?��9��(��&���UP��G�8��T���Y���UPT��x�b�mW�����C���Ny���cO%=Vo�Rc�r�)q�<X������d��2c��W��qZ�-��3�HtiT[la��~h{�o���8�@�}���r��g���-�j��]�B�W_}5aq���
PXU  � ���'V���	��Q���?�E���F h���E�� �Or�?���@��s��*�_|�3m��Z�v��l�OdaU��������#6l�:�������Me��U��^���Z�li�I�����������������So�*^��|��W�'�b�����t��-���^zI�t��v�EI�5�7\�O��7/�����U�Q}j���o��+�3����������O�n6����E�-vk���T�ZU������/r[�t�q>�-��*�\��r��w#��G�(���[@������@x�?��5+E���"/G��!rQxb�J������an �g
�������K���E��Im�
��y��k��������w�a��R�Y�J�2��o��s�=W���)S���5J<=��S�����k�������E��6������z�U�:u�y���*u����b��DEN7�t�,Z����~����
���_������Qo�j���<��#R�|y�2������E]�]v��9?}���d�Um�����������m�6�V�@ 
�r��V@�&�C3�E�� �Oxb�J������an�G�\�X�R�,@.�rt��Y���c�{���S�N�~����{d���Q�/����h�"�M<������O��7�|3��IJ�������M�&^x�>���,vR��[�*V�h\v����7@u��U�����q<n�8y����9u��>r�+Ya��9s$�x��K.�I�&I�B�"�2��[�TqU�]�zV]y�����O��GX'@a�u��� ���<4s=L��
�Bz����E�
�A �������#�)r����d@ @V��F���/���@(�s{�Z��hS����������o�2���~Y�x�|����>o����(����'�0��e���;r���������v�i�)Q���:u�+VL��;����Q�F����*U�T1>;��)u]:�U�-R�V�2��*���;�o����+��g��W$*�Z�v��.]Z_�X/@a����� ��k<4s�����'� �	r�'��$��(� �	r�'��$@ �V�������w��0���y����9����{���U�>%hn��UW_}�y����T�S���u[��z#�*�1b�>�>�W�vm}|�-������*�����\t�ER�lY���NA�U�3��+W�]�*0��Q�KTo�R[��5����2���b�b���AK(�����@pW��f��3:a ��9������f�@��Ea�>kG�;�"���� �@�(��-��>��\v�e	��r�JQ��37U����m�|��4o�\�JVX�/8��
�v��![�l�/��B6m�$����*�2��������o��������:KZ�liY�s�9R�h����V�A�)SFTaWA�����;�ej�E�1�c�T1P�`C{(�����@pT��f�r3D�"0�E��E��30D��"0�E��E��30\����<m�4���F;��*��~�7�O�5k�L7%+�Ro��5k������W��={�=�vb�����
f��*�}%K�4���m[QW���
��[����r��/_.�*U2��-��������/�!�
��� N#� �'��)Z��`	��OV��_�E~��F X��`��� �Wr�_#��@��V����gK�
�����w�yG�v����'h�-�2/�9s�2D�o�n6%�}����C�q�*�z��W������/���s�J�����b�
$��zk�]r=d(@aU�`\� ���xh���07�-@�	v|Y~ �%R��`���_V��_�E~��D�	PX�[��*�Z�j��i�&��I�
�^�zR�vm9���E}���7����{���V����T�������k�}�;��{��'��������
7��������>{�O�s��WK�r���b��}�%�@ C
�2�r@�,�C3/G��!l�O��������/�b�[�\���:�"@.�K��'�M����"�TaU��Me��M���Z�j���J�F���N�������*62�T�U�5����;e��%F��z�U�V�jUY�tid�TX��W_�\��Qo����{�q6;Ve��=�.@aU���� ��gxh��P0B'@�	]�Y0� y2,L
��	��Br��'�E��B�PX�[�(��-"REU��x�J�J����O�4i�>��`u�g���[����E=�r�-R�H}m�������*�R�U����
*�R�E^���^z�%����~��|��7R�bE��2e�H�B���cMxcURFN `��U�r� ��
���]FG ���0G��#�r�wb�L��(��g�xG�\��X0��*�z����YT���I���e�|T�R��8NV����r����1�u�&�z����;�w���+��)sS}���m��12x�`����3��|�n��7n�<��C�u���r�����o�Y�~�m�������^{M�3w�5k&�~��y(/�������8v'??_�;�<��g�>�a�]LFa�faG(�r���@�W��f���;$ �$��8'@.r���@ ��(�
g@�9r�s����A����H�v�4o�N��������{��*tZ�bED���Y��a��F���+��+������
y���������wT!��3t��E��z����c��������>�NL�6Mz�����Y���b�����������_�{�9�t��7���>��)��� ���U�r3 ��
���^_zG�����6�A��E�Y3$ %��8'@.r���@�0�QX���_��(�x�����qc�����y��&�%K�D����'J�������o��|�����*={���N:I���~��i��A�M}�P��*���]�v�_|Q_����%�\bj��Q�h?t��\u�U�j�*}��K�=�^�z�M��������;V��U�U�n]�Fa��`G(�r���@�W��f���;$ �$��8'@.r���@ ��(�
g@�9r�s����A���*����'�S�P�N�:���T�Sd�Tl, ���?t��\�m������&M�H�����~�?�0�����?��uk�r�����#FD����r������M�6�)���r�>!�o�>y����>��.����t��Y_�v(�����(�r���@�_��f�3$ �$v�� 9��h �X�\���VpV�\��7�!�Ap����o���/�8��(�w�2e�O�u��A__�~}�;wn���G��Gy$�-�A��%��W�������>�9�={�����7k���.]���M���M��
�TaU�FaU��8#@a�3��� ��#<4s��A@ ��'
M ����qrD���(4!����"��������[n�k�7o^������;k���z�S���"�S�_|��\x���y��qr����c���w����0aBT�y�������Q�P��w������e��5r�)��c�����a����e^T�B������������_��/�`J}���n����_~��#G��)S���e^��U+�?�&�D��P�b�6t�Pi���y�/�$@a�M�t� ��<4sC�1@@	��;@/������"�@��"/D�9 �X)�k�.����d�����~�^����QCJ�(��0�mS7n�/��RT�S������.]:�>���k��c�+VLTQ��'���~�5�*,���h�[�J��K�)'@�6
�l��c@���������	��K@/������"�@��"/D�9 � �A��� D�5 � ����S@��?n�3.D
��"5�G��En�3.D
��"5�G@@ {
����N@<'�C3���	!�OhB�B������ar�F�\�P�P<-@.�tx� � ���(��Q��* �	��� !�#��]��d�2 e��� `���.Y�E�L�E�hq- � ��(�Jn�@|'�C3���	#�O`B�B������c�F�\�P�|-@.�u��< � ���(��P0�
 ��
��,WA�G�l�?��qX)@.�R��@ [rQ�r��V
�����/@@�0PX���v@��	��,p!eA�F����P1Q-@.
txY� �&TL�@��^� � ���Ub3 �v���na�G�d��d2�#����"'��	������N
����f,@@� PX���6@��	��,t!g�xF����P0B-@.
u�Y<� y&L�P��B~� � `��Ub� �n����0>� ��7��/	���
��@x�E��=+G�K�"/E�� � ��Y��*?G��#� #�C�@�1��c��)�E)p8��	���f H!@.J��)@@2��*,.E@��<4�z��� �7��?	���-��@p�E��-+C�O�"?E��"� �xY��*/G��!� ���2�r�L��c%!�@����, YFIG ���(<nE@@ B���v@����A����?��3G H�� E�� �_r�c����(H�d- � �n
PX��>c#� `��,�;H[���6"����"q�� �M�� `���F\�F@��U�
7�E���a���w�?��
3C L��0E��"�]r�wc����(L�f� � �v
PXe�.}#� ���g8��M��(@.r��@@��4; ����E|�F@��U�
'�A������pO����=##��1r�1�@�=r�{�����E�,�C@@ 
�r��^@<&�C3��� "�O���R������aj�H�\�`�T<,@.�pp� � ���(��U��, ��xh���� `���>[zF���E�[q%�'@.����@ }rQ�V\� � �@*
�R�p@�	���gc�H���`�|,@.�q��: (�,��|<�� � �)
�<&� �@n<4����@ {�O�v���	�����'�^�\��w"��u�"�,�	@@ �V�;��@ `<4X@Y> ��(XL���\�����E>
SE �����!� �8*@a���� ���<4����@ ��'�
g@�9r�s�����E�m8��	����f$@@�`PX���:@��	��,dg�xH����`0B,@.
q�Y: y(L���B|�� � `��U�r� ��
���]FG ���0G��#�r�wb�L��(��g�xG�\��X0@@PX���1{@�xh��8(@�q��@ ��()
'@�Ar����I�EIi8� � �@FVe��� �x[��f���C ��� G��!�r�b�L��(��em�G�\��X1S@@oPX���0;@2��YF\\�
�,��+�Z�\�57"����"1�
� eM�� � �D	PX�� ���������������c�G�\�X��,@.�s��;� '��@@�]
���gt@,�����t��2��R�M�\d-#�@����l �FK� � �!��*dg� ����Y����������an�G�\�X�R�,@.�rt�� �'��@@�^
����w@��������v@�5r�k����v@�5r�k�� � 0
�P�� n��;��7�?n�36��"S�_pS�\��>c#��)@.2%�E@@ 7
�r��n@<%�C3O��� *�O���b������ab�J�\�p�X<+@.�lh� � ���(��Y��. ��xh�J�s `���N]�F�t�E�Jq�)@.�S��@ ]rQ�R\� � �@j
�R�p@_	���W�b�J���p�|+@.�m��8� *�,�
��|:&� � �1
�<�� �@.<4�E�{@ �O.z��V	������E�\���"��U�"�$�@@ �V��/��#�J��f�
'�A�W�_���"XrQ`C������W�b�V�\���0@ ���o��7J��g�N�n������B�1SD��� W��)�����U�5�Y.�E��J�k���C	�!>��D���������Z�����y�~���^k���|���?|����w���_3�&N���?�9�v�m��7��,�HX|��G��X�w�c�g	hPX�����Z�K�R���	�Z@�)u�����EJ!Pj����3x# 
L(M����Pm�Qx���j���>��tm0u����.����~������ucy����e��%@`�����&� @���
xiV��8���?��	�h �hJ/ �>�&@` ����I @�r�sL8��3�y��g�V=���a�
6��O���waU��O�� ������(5D��/��Y�c`�* �T5��M�XrQ��a4�* U5��M�XrQ��a4 0��i���?������n
��z��������9�d������'s���lVe��5 �W/����s��*~�'P��0�0���*~�'P��0�0A���^
q����;o����Y��U7�tS�g�}��b�yV���!xN ������(5D��/��Y�c`�* �T5��M�XrQ��a4�* U5��M�XrQ��a4 �Z��n�C=��s-o��F*�z���QG.����m����������d*��*SN� @���
xi�_�����S���;���E�������\T���;���E���� @��P���>y�����.z��L�{6\a���^�����0+6����~�_Ge��
(��!��	 @�@�^��-�?�'����~
�E���7��\�H�I�@?��~����#���o��"S���}�3�<sr������^y����������O�4)L�6-=�;K/�t�0aB���K��w�uWX`�����_��Wa�-��?U��o���I'����a�j�LOd����3��f�@@aUHn!@�e���,�2N�' �^L��@��2F��	��\4x15#e���5c&@�@��|��0q��t`n�a���������QM�<9�|��7�%�\2=�b�-�w���U�;��p�%��C=4=?\aU,��Z�6�������]x�����W�U��?��z.�����: @��	xi����h�= ���?�z%@�Q@.j�pD�@����������K/n���m���i�M7
��sO�����0�\s���;���?���/�O�^�W�����p[RX��O|"����a�UV�]��~�ua������g��������<���m��C�@.
�ra�	�G�K�|��B��P�g��3�/ �o�G�
�ECM�!@ �(s= P
�������Of���w���.���\x��a���O�8���6�l�7�\��!�@�lGuT�y������.� �������_������7�pC���>f�e��fr)��w�
v@�@OV��W� @ _/�����
�?�Z�#@�rQ���L���r������\�?{= 0�U,�z���r�-�v��VS�LI��w�����+��2=}�������N�n
��k/�����pcs���Vuo�	 PX/�
#0������	�B@.*E�����Eb$P
��a2HJ(P�������+\~��i�n�����bCW�z���G>�����7�8�}����H;
�Fr��~(����>	 @�@��4��f	Q@���
�  ���F��F$r9�E9 ���J
T��j��ia��Ii�:����{����%�\��w��0�{������dz<������\'@�
����O �#/�z�YF�F$r9�E9 �������@�@rQ�� @���=�\x���3���;Ox������|��0q�����O��^b�%�M7�4�����*�~������:kx�������������v2� �O�U���7�X�K��A5G�@��O�Tn$@��rQq5M�@�rQ�Tn$@��rQq5M�@��ZX�~����O<1��5�\V\q����w
��\s��x��v�rHz��N��Uo��V�������q�����[/���l/�pz�;��9�����PXU��1h+��Y[�����c`� ���\������\�c`� ���\��� ��@�������/��;,5<����q��_��a�e�M�;�������^�x�=�P�}��;�FPX����F@aUiBe� @`d/�F6r��z��U�����r7���z��U�����r7:�raU4�4iR�6mZ�k�y�
��M����o��Zk���c���M�0!L�:����Vu��^�PX���~ @�@^����Z
�?-Y�$@ g�(gp� �R@.j��$9�E9�����T��j��)!~�/�.������k�{��'l�����p����m��6=�tGaU�R�#@ O�Uyj���X�K�k����O[�Q@.�[W������@�@�rQ���"@�RU/�z��W��?��4�[o�u8�����G&O������s��w��waU\i+��|������q�����f�a�a�K.�`"�'��PX5q4 P���/���%�_���z
��K@.���~	����5� @ ;��VE��>8�w�y5�Yg�5�w�}a��W�=�\���[n�8���~��������uz���N��G�
��'�$@�	xi��������TM ���\�5����\�TM ���\�5� ��@,�z���;�7��������\,���>������f���_��W��'��_x��a�u�M���QX���{	�K@aU^��!@�9xi��.h) ��dq�������uG�@K��%���, ��;TH ~>o�u�	�<���Y�;���O��?~��NN(��D�=�-��*oq� @��
xi�C\M 0���3,���$ �������q�������uC���
L�<9y��Cf��>�����o��NO(��T�}�)��*Om} @��xi�c`� �V@�iK�9
�E9b����rQ[�Q@.�[W�����>V^y�!3�����K.9�|�'Vu*�>�PX���� @�@��4�1��	h+ ���q�����uE�@[��-��( ���+TT`��w?��O�����ja��)��hvV�F�3�Z@aU���O�r��,Gl] �  �4p8 @�OrQ��uK�@��\�����>	�E}��-*$��bqU��r�)a��I���~^p���L����{�|���w���2������n�����8��N���~���$4B�@*��*��C��/��Y�ch�* ��5r�M`�������(��\T��7����+�fC� �?�U���3�\�K��I5H�@��O�Pn#@��rQOy5N�@�rQ�Pn#@��rQOy5N� P!�U
�� @���xi6�16CE���"P-��Z�6[E����"P-��Z�6[ @���	(�����	 @�@�^��N�C�% ��U @�rQ�`�E~(��\T�( @�� (��(�����f~�����/y� P/ �k�'@�_rQ���K�@��\T�a� @���V���� @�p^�.$D�2�OeBm�
- :<G�2rQeBm�
- :<G� P"�U%
�� @����4I�uz% ��JV�t# u��^z% �JV�t# u��^ @��V��q��N�K�����	���30�4���J>�'00r����D�Z@.*u�� @�@
�
C!@�c��l���'@`���h�<G�@�rQ���"@`�r�h�<G�@�rQ���"@������*G��	 @`��4������?�	��h�h��krJ# �&TJ`������ @��(��*Gl] @��^xi�ka� �N@�i'�<y
�Eyj���vrQ;�	�S@.�S[_ @��,��j��kn P9/�*r&P��0�0���*~�'P��0�0���*~�'@��P@aU���"@�������?��
�?����(��\T�h��
�E����(��\T�h @�@�V�9z�N���4kqH�@n�On�:"@`�h��M@.��ZG# 
�� @��.Vu��V Pt/��!�#0��������I@.*S�����
�E�[3#P&��L�2V+���@IDAT @��"(�*rt��t)��Y�`n'@ 3�'3J
 0�hx%@ 3�(3J
 0�hx%@� P'����.(���fe���(���S��9�A��)��B��rQycg�I@.�h� @�@?V�S_� @ c/�2��?S���
�E=��4�ES���
�E=��4 @�@�VU*�&K��.����G��W@�)nl��@���*E�\	W@.*nl��@���*E�\	 @�z)������&@�9xi�3��H����}�����kR�(��C�@��>��� @`�V
T8M��.��Y���@��������w��w-� �?���z&@�]��]{ @��"��j,z�%@����`1�*lS%P`����14��*lS%P`����14 @��R	(�*U��/����>� �;��w�Z&@�s��s+w �;��w�Z&@�s��s+w @�N@a�p:� @���	xiV��.��(��B��rQ��g�H@.�`�
��E%�� @�J@aU��a0 @`l^������^@���'	�N@.��RK�^@.��'	�N@.��RK @��PXU���=���fP�!P"��D�2T, 
ppM�@����P	��\4��55 @��\V���3 �[/�z��u��?�m\!@ ?�(?k= �^@.jo�
�	�E�Y�� @`�V
v|��*&��Y�n�
$ �(�B��rQ��o�
$ (�B��rQ��o� @��
(���Sc @��^���_��, �T9��N�8rQqba$�, U9��N�8rQqba$ @��PXU��=h�����9
�?9b����rQ[�Q@.�[W������@� @�+�U]q��[�K�b������3��57����+#%0�r� G���G@.*O��� @��
���#@�]	xi���	�P@��SS�Z@.5�	�P@.�SS�Z@.5�	 @�4(�j�p@��-��Y��g��, ��9z�N`p������(��\T��;����'�fB� �_�U���;�T�K�L95F�@�OXn%@�grQ�h5L�@rQXn%@�grQ�h5L� P1�U�� @��`xi6��5;E��c#P��:�6SE���c#P��:�6S @���
(�����	 @�@�^����3���:��M@.���	����0� �7��o�:&@�0�UP�!@��jxiV���=�~
�?���7��\�H�I�@?��~����D@.J$�$@� 06�Uc��4(���f�
������S�p�,��
�E�
�����\T�p�,��
�E�
�� @��L@aU�f� @`8/���q��^
�?���6�
�E�J���^
�E���6�
�E�J�� @���
���q��J�K�R��`	���3P�4���J:'0Pr�@��d�V@.*m���x�����?f�a�0q��0~��Q��v�m��7��,�HX|��G��X�w�c�X�}����k��Vkf�y�	��l�=�\x��'��o�[l�0�|�u��{�\@aU��{��+��R�������a����.�h�m��F�Y����O>f�u���B�\p������!��{��G��q��>���g�q�Q�Y��F��!�#���_�% ��K^���E��	���\�/y� P/ �k�'@������h���C=Tr�{����m���a�]v�=�����c�=��&�t����3xx�e�	��O����v����;�m���sO8����w��>���>����8 ���J�i?	�.��*w��w��[o�/�0u�Q�w�����6�l������O}�SC��;�����}�k��?���[VYe���~�����z��v'b����_K~�����v�-|���=�yO����Uk�%���B�K�.��J�@��O��#@`�r�(�<F�@�rQ��#@`�r�(�<F�}8��c��g���!�=������l�AZ��waU��O����Ia��/�9��p���w4�v�!z�����G���@�
����a[O=�T�b�-�w�1b/;��s��L3�4��g�qF�c�=��'^��\��j���[n�U���K���.���0�,�{_���Et(��Y�Pn#@ s�'sR
 0
�hh!@ s�(sR
 0
�hh!@���
�v�i�<���uSX�M}��7�}Y)i'���~�����?;)��g�}���^:d�K,�D��#�<2���I��)��2��z-�������?��O|"L�6����T���o~���\����;�s�9������.�,�����D�*I�������N�}����x�����G�f�/�0���?��0e��0�s�j�r��Dp����lh!@ �'F� 0F�h��'@ �(F� 0F�h��'@�����s����;��!}��g�V�t�M!�<���
��UX���&����
�~���=���a�q5���L�x�+��R[L��SOm�o���a�M7m8��@�V�Z8�������o~��iK���{��^��Iq{�������_�`}��UW]�2�<���a��=������xj��g1I��G?
�{���O�����EU��i�d��B-��p��_�-��2���-.���o|#9l�Y��&��c��lx%@`L����<L�@FrQF��!@`Lr���<L�@FrQF��!@���
�p�
�b���{�e?���H�Uq�����.��e�.��w�-'���#V����
����]�s���"���[.\w�u�nu�@�V��6��_}��!���+J}�C�����/|�3�I�o�������N���#�8"y���a8���~���';�_}��'?���	��G��|_,����K�{����[��d�[o�4I�6�l��g�	3�<s�}Uk�a� 0F/���qF- �����d( e��)F- ����d( e��)�\������{u���p[�{6\a���^�����0+�����~�?�]?�
WXbYy�������3�8#=n����[�o�1���?�aH�Az��(��j�M^y�����&mw�q��L��\u�U�]w�����Y�o���C��`����K/x��0~�������:��[����>��O��S�����'�x�5��M6�$9���������q�j�5L��(���=N�����Q�y����15E�����Q�y����15E��
�k�+2%������
Z^���W����W�����I�&�i����q'����	���^�������%��b����8�9�������;�>5���h�����G}��h�_��������s�������_|�Y�������G��Yg�5�x�����?��������-�������{�a�k��k��*�w$�-�+�9��*����.i������I/���v�i
5��`�W���.��
(�����[���������s�����Rz�i�s��\�����c����o�=�������8����y'V{.��R��8���b������L�������'��!?cb�U��'�Xn��������N�2��,#H� �����5����\�TM ���\�5����\�TM @��O>�d�8qb:��o�������v;��I�'ON/����\r��x�-�w�qGzW�:���j_E:��C���V���X��l��;o��8��^89����^�����&�"��������sh�Ya�j_��?[m��T=�P�R,2�j�������p�W�l7�s��g6��U�����SOm���X�c����o��v!.�l���?���Bl+������w%�[�l.�������*�nu�@OV��5�Fc5���������f�a�����J����K�����
��1!������XI��j����vbpR��Zk��o�9�-V��
�d;������������N;�����X1;�,�����^�`�	xi��f�Z@�����@@.��&	�Z@.����@@.��&	 ������p����z:�M7�4�s�=i�����\s��7����/��+Q���?o�-)���'>��{��H&�r��UqE�}��'��$����YX�U��_~y�k���F:�������Cn�/��U���/>�7�����l�A��>�`��������XOP�YsaU��G8�b�Y������ 9�'�^
(���n�m�r�-�D�t�\����>����)9��s��7��3���IqW�H����\
?���BL��m��5�qK���8���j�%~ @ +/�����
�?�����^�E�P�&�
�E�����^�E�P�&B���/���|a(>1��a�����x.��������}�p�	a�m�I��wbL�7�d�_C�y������.���)����uSX��c����Q��Ss�M�UY�XYw�u�b�V,r�o���K/�T[��~�����2U��b�V_XU>�/��a�E	q5�dU�����W��!�O�%��",k�������`��Xl���jkaU�%��}�?]x�u�%�~�E@aU.���$���r�-kI5�-.���o���^��/~Q;5����g�y��r��=��3�~����?�����l�>����������w
�L�����>������q\~0nUk/E�C����4�R3t- �tM�z  �U�t- uM�z  �U�xG���U/��b�������L�����+_�J����E�`�����������*�������s�9'mr�]v	x`�i�����e�:�#�<���j��V�UqQ�x�RK-U{��7����\�v�Yg�M6�$m?����~
����T1V��w����k�g5�h5���8�X����-�pV_�����@/V�R��m�d�b%�UW]��Lb�{��G����C��T`��?8��yz�������>����8����[����l��������V�#�,QX��Z9I��1xi6<� 0&�gL|&@ #�(#H� 0&�hL|&@ #�(#H� @�I���U� ~�.~�.����.��b�a���^��G���7�8�}����H;U,�j6��@E�q������V�O)&[������X?���Ul#�������?��Oa��WO.�>�k��c��\��|o<��^r�H?�W���w�p�e����U�����d�@V�5�&���o��7���O<����g�q��E]4<��������~��H�����}�J�dY�/��a���������rz�;;��t�UWMO�y��a�]w�W���2��,#H� �����5����\�TM ���\�5����\�TM @���VM�6-L�4)�8���j}�'��s�%���a����{n�E>�nU,�����+I�/C���������7��-Y\����-��t�g4��\Xu���>��p��^}��tQ�x����S��b���_��_�������QV�/]E���������'�O�'�����\���$Vg�r�)-�+F}��_
q������}��
����x��W�l��dL|q��d����B�����[ob"N���~;�m����/�|z=����V��R;�H�K�� 5C�@��O�d @�rQP5I�@�rQ�d @�rQP5I��w�ZX���o��}��������n���!�[m�U����k���B���GZ����*V��?9�����o���<��3a�u�	��O�����?�P�O6V=����=�yO}3
���GC�X���-.����l1�s�9gr8�gl'��l��X��:��?IX��/l�� ��C@aU?�3�3V��z���o�>�������ex��Z������?��?
Ir����u�bU\�*&�d����������>������IaU��������p�	�wP��^�0����z*�7��=B� @� @� P��Z(,����m��Y���(z�����`F�]s�5�W����<��������n��C9$=�d'����������s�-~�o���k�y��g^x���;��9������Xd��O��{,<��#��������m���y��7�/R
����������Vc����F�����v��~���&���\f�e���n
�����c�����H�>��S�>�\V�����b��U��+K����/~��i���Ul�A���k�k�vbWL`���_�:-��i��B��l�����^�{������*�$�����nZ�U��R�Q�(��G @� @� @�PX�M��\X�\8�8���R��O?=w�q����_�]v����������:�C=���:�F[X���9��p��7�
�:�k����V[-L�2e���W�j.�Zi��j�(�
���
�'?���m����uZX�����a�ww�uWC�x`�s�=�9 �������{�_,��e�]�^�����?�)]b1V�&��k��V�����{����b�J��Gs�E�����o����+a��gNnm�3~J��Z���.
����+�^K�O*���m @� @� @���(������UQp��Ia��i5��R��l��_��Q�����R�&L��N�Z���?U-�z���k�CW^y��\�����K���*~���T��u;��P��U�Eb�i�f�W�ba]�:)���*�?�����?�����������~69��@�V���7�?Z�����������/^�p��Ww�qGm?~�6.8������SN9%����k�k��j��zh����EW�M;W\qE�b�-������n�i%�K� @ #����I�UW]5���=�zN�:��:@r=��zN�:��:@rF!P�����Q��_�]|��a�����sO���������v����V��*~j���
?���[:�b���_���V\1*�o���K?��������^z���[��d�HjF*����;�6�l��'i&��J��$�O�U���Q��������+K��C�+R�x��0��3�����V[m������K��������zkXc�5��V;g�yf�}���Kq��'����^�`�	xi��f�Z@�����@@.��&	�Z@.����@@.��&	 ��@��^}����8�]�z���I'��<��0y�����>��c���������%�o�[o�5�����g�f�a������<���
�$�$?��^�_����������B)������"�$��
���������bU\ %�%[�Z�H[}1�p�Uq���
Z�W��EU�x�F�(
���6��EG���oB\uj����U���5=�_��_���O�������F��cu�A�^��\j����V;K.�dx��Gj�b�q��k��r�-�e�����a��vJ[��u�]�w������/�f�e��q��K� @ #/�2��]�?]�y���E=@�$]�E]�y���E=@�$��zaU�%8����y��W�}�u�Y�}���W����m�����3��]��?yVu;�N������C	��{n��	'�P[�)=����w�m�������Nk?�,���i]~��i����[l���y���^�����oWXW����U�?��-X`��q?	B@aU!��~��3�1J�X<�L3%�-����.�,���O�U���j�M6I���v�q���y'&����<0w�q�m�?�|��+9+n�����B�UVY�V��_���y�I����4�JR;t+ �t+�~z! �BU�t+ u+�~z! �BU��ga��_)�B���l4O�������f�m�����~5�|�����^�]w�����*V��M�EN�����tQ�Vv���w�QG�^�`�
���|��U�+j�+�Jt���7�����^��M�>=y���K\�%��M@aU�"�4�}��7�r�)��+��"l����q���O?�Yf�+A�6�l��_|1���W^	��������������*�������Z�}�S�
?����S��_�\s�������\s������b�[�����}�U�K��
z���
�?���Y
�EYjj���
�E���Y
�EYjj������Yg��b��z��[�4~���TW?�XX�<u����Nq��y�i],�\����������N��U��)��o�]w]�O���/	���B}�T����;,|�{�K������cFZ`&}���V��mw�+L���bb�s�9�4����V[�X|�l1Q%K1&���~�p���'����U=�P�8qbZ����$l�C��y�������/����5[�������~���S�Uk/���Yxi���6���35� ���\������\45� ���\���� @�^`�����#��?U��g�}�~��7�|�'�XXu�A5��}���i����jU���O����n�
��0aB�W�[��U����:+q��]�>��I�{��7�:��L��\Xkb1Y���/9|���?5�~\�e���	d)��*K����k����qI�d��L�
���Z*9����/~�a���ZU\*���<�@X~���g��w�����.�����;����~ZT���
�����D���K�'�|2�?	�O�J�}���JW�EU����\rI�L�S���y�I��,�4�BQ�F@���g�Z@.�ZT{�F@.��g�Z@.�ZT{ P/��w��W�?U������K.9�|�'�XXu�����~��
Dq��M6���Y��������p�;��y����G�����7����g�=������.ba��?��*�����x|�
7����s��$~�F /�UyI����M������%M���_<��7�i�L����+Z[m�rH8��c.�B�XLW�jN|�|\=���}o�3�A��Z��
7������i��S����?��[�.�h����j�%���c��l���'@`���h�<G�@�rQ���"@`�r�h�<G�@�rQ���"@��V��Fq�d[m����)S��Q��baU�:���k�Tu��b�Z�
R�kU����-����n�U�������8�������[n��V_X?#����6|*p���]SX�N��^	(���l��������:�����X�W��r�-����I'�8����$V\q�Z��c�9�S-^{���j�����c��7�b��mUko8� ����f�J�������E�G��h����y������E�G��h����y���EU��*�N9���X4���.x`�D\!i���K�;�Yf�e���/}�K
EH��1��F����W|���ZvWh�s�=�*��}����Zk������?<=�t�M����s�i��������/�0�~��C>�W���Z}��a�=�W]uU���;r�QG����t6��Z]��'���^�K�����������X���o|�V�����w������s�v�4������^{�|����� @�J����o�y���\ou"�����|�����������k_�Z��v�U��NL�C����4N�5z) ��RW�t* u*�>z) �RW�t* u*�> P����?��O��'��.�=��a���/�p�a�
3�8�?���"��_~9,����U�f�q����@d)��*K��������(~�/&��[,,��r���`7n��F1}��p�}��>+t\>0�o�YfU{q�������=�%�X",��Ra������<D����4���]d/ �do�E����7���E��j�������<A� @�����V*� @���
xiV��6�� ��@`���)�h�h
@@.� � @�@!V"A����,G� �������'�^@.��T�t/ uo�	����7�" @�@5VU3�fM�*�������@@�)A��@��
�	�@@.*A��@��
�	 @�rPX��N @�@>^�����
�?CM�!@ �(s= 0T@.j���E���� @`0V
f\��**��YEo�
  � �@�@��� P��Q0�"� @��PX���V @�@!�4+D�@%��J���	N@.*\H�@%��J���	N@.*\H� @��
�J8�&@���4k��y�?y(��������\'@ �(e} 0��\4��� @�:PX���� @�@)�4+E���@
�?V�"P:��t!3`) 
dXM�@�������	 @�
*�����1, 0/�F�����P�c���*�y����P�c���*�y @��PX�7����fLS!P2��d3\* 
h`M�@�����p	��\4��5- @���V�N�C �;/�zg�e����q��|��|��B���r��>� ���\���^ @�_@a����	 @�B^�U(��J�`�O�b8** U4��M�`rQ�b8** U4��M� ������I5H��'��Y���L���O���@1��b��(T]@.��o��(��\T�8 @�@�V�?�f@�R/�R
;�, ���;Z
�E-Y�$@ g�(gp� �R@.j��$ @���VuM� P\/��##0����G���C@.*G������E�a�#P��q2J @���(�*~���t,��Y�Tn$@ c�'cP� 0*�hTl"@ c�(cP� 0*�hTl"@� 0D@a�' @�@y�4+o���@����G��	��\4q4e���A�'0r�`��, @��/����10 ����f�Qj��.��.��N�@O����j��.��.��N�@O����j� @��
�*tS&@�����lpckf�. �=B�G�rQ5�l��. =B�G�rQ5�l� @��PX�{c= @����4��ZG4	�?M 	���\�v� �$ 5�8$@�/rQ_�uJ� 0�
�0��D�������7s���� �"�A@.*B����� @��lVe�� P/�
� PI���a7i���
"PI���a7i���
"@�(�������	 @�@+/�Z�8G�@�O�� @`$�h$!�	�C@.�CY�$ �$�: @���Vu��. P
/�J&�$0���@����N@.*]���@
�EV�"P:��t!3` @���
(�*h`��F�K���y��,��,�A��X���
z��,��,�A��X���
z� @��?V�M @�$����T�L@�)Y����
�EX�"P2��d3\* 
h`M� @ w�U�����N�K���j������}\%@ �(g� 0��\4����# ��� @���PX5�16C����f
��(���S����
�E
�i(��\T����
�E
�i @�d.��*sR
 @���	xi�?{=����S���'P��q0
U����`��! #FA� P~�U��� @��T�K���9�?9�����rQK'	�Y@.�\w���Z�8I� @�k�U]�y�W�K��������3�6?����'�$0�r��G���C@.*G��� @��
��##$@�xi�1�	�X@��Ts�J@.���X@.�Ts�J@.�� @�PX5��	 P^/��;#'Pv���4~�! 
F��@����G��	��\4q4 @���(����d&��Yf�"@�K��K0� ���'�%@�K��K0� ���'�%@������
��	 @`p�4������?E������\T�8�%���EE������\T�8�% @�@�V��X @ 7/�r��M�O�C�" ��]�4	�EM 	���\�v� @������) @�@u�4�n���@���~G@�D���E���c @@.�;@� @ �U�8j�B�K�B�� TR@��d�M�@�������TR@.�d�M�@������� @�J*�����3l �J�K�V*� �������>I@.I�u����P�#	�E#	�N��x��g��7���?�#��B�@�V.$D�F/�����<I�������y��l��l�B�������y��l��l�B��	�������_�����	���S���<%PXU�>����^�>y
�?yj���vrQ;�	�S@.�S[_�����8O���u�]�W\QkLaU6�Z!PT�UE��q @��Qxi6
4� �����	�F��\4F@� ���\�	�F��\4F@� @����z�p��7��RX5��J.����4| P/��Y��}��������v2� ���\����h' ��q�d#��*G�(����2D�	 @�@�^�u�62�2'� ���F��2��2'� ���F�� �����.��J��
�J@�'@��^��k�'@ O�'Om} �N@.j'�<y
�Eyj���vrQ;�	 @`4o��fx���j��8��a��f��������n�=�Xx������>����W^9�0�
]�6������#�����oa�E
�/�xXv�e���������^�>�h�������v�[n�0�L3
�xz-���Cx��'���?^��K.�Xb�����q�������������;��c���;j�b��_~ym?>7����?����������]d�Ejc��8$��F��s�Z��<�L��/~^}������kv�V�� �V@aU[ @�@��4+_������?�I� Pn����3z�" 
J$��@���r���	 P4����.����a�;����{�
S�N
�rHx����w�����{n��?X�����,|������r�
+�N<����b!S������f��/��o���n������������
?���������I�4iR�g�}�9����,p����Or��/��>��p�y�
����i��j���2Kr��g,�Ze�U�s��zk�<yr8��s�sq'��������Z�y�N@a���<E�
)��Y!�bP*! �T"�&I��rQ�Cd�*! U"�&I��rQ�Cd��T����R������z>�XWh�[,��U���o���b���)SjE?��h����o��v�|���>������o���R����T�{�y�r�1��<��!�[��u�Y�e�]V\q����Z�G>��V�6�k.�����k�^�
[
77���q�a��Vj�Bsa���o��P����n���F� @`D�U#���G�K����H	���3h5����7�&0hr��E�|�S@.*g��������?��>}Wa��\
�.��
F�X}aU�>��H��O=�P��X$?��l�(k�e��}�y��
6����Tro�s��w?��������_\9j��gO<�D��|������a���nx�G?�Q�c�=����:a�����p?1x�5�4\����ZqU<?���6����U����du��R���^��>�`�sk��_���b��?����O$F����[n�]�?�\XU�~?��t�M��� 0�Uc��((���fE�������S�X�)�"�EE������\T�X�)�"�EE��� Pf�U������6�h�Wv�[��x=~�o�-����|���_�r�8�O,��}������?�9�����q,��������������O>9�7����������
O�_}�8^��Z-��r���W����>U+K.�*r�z����7�X�e��	�O&�'?�<��?��a��
7�0{��a�Hn�}b0~v���k��7�}�/����v�U�n�i��{��k1���v�m��O��V��� @�h^�-"�C�:�Oubm��, 9:�F�:rQubm��, 9:�F�@�V���?<���.�����^{�.�������{n��'?�p.|���������]w]C�S,���7��^���K��>����y���)^��J-��B���x������s�p��67Q;>����G�^���������V]u�U��x���x����3�P�Tm?�����������j��6���w����	(���RK @��^��=@���OeCo�
% *C��rQeCo�
% *C��	(��g0'N�~���,j��^�7�k����}���O/�s�9����_�����7�~�����y��BT������N;��2Vr��_�2|��������C�Pr)�O�]|��a��fJ�%;���Z8����>�������>;X��T��������=���4�P�����i^�����t�������V�U���{���{� ������M�H��&��Y��uL���O�(��\T�0���E��@�rQ!�`������C	���[�������gz-�`u����;�((~J0���U���g���g\�);�<�������"U,�:����K���.�lz��v��n�!=��Z{��wXg�u�|�����dg�����EY$mj����wv���J[q[z�������~�OsaU���F;d*��*SN� @���
xi�_�����S���;���E�������\T���;���E���� 0X
�����>;l���-�{�]w��y�d��N�������6������v�U�
�����g�}6<������cx��G�<�P0����i���??t�A����+��B�`�
jEV+��r?~|�����
������w��F���{����8�g��v��f�A�����
(�����	 @�@�^����3���:��M@.���	����0� �7��o�:&@`�V�3��\rI���>�2���U����(~�o���KO�+���UM�2����{��7L�>=}f��������	'�P[�j��f�u���Q�n�m�W���
���Sq���n������/\k���j��w|�X��<#(��e P&/��-c%0X��`��l�U@.*k����`	�E�O�!PV����3n�.�������+�*���2\YV����{��g�*N-;nq���*����/�w\x����Sm~��;�����#V]q�a�]w�\�'�N�&L�P{�������;��S�M���.Vu	�v Pd/��c#0���`����E@.*K����`�E�_�#P��,�2N�&���������{�	�n�i�_�\0����a�e�
+��R������~8����v�U���zUl?�s�
7����?}�y'���^{5���\�E�*AIDAT���o�����g�Yg����F���g>����]��U���Fh�e�PX�%��	 @�@��4+rt���`�?�_�#P��,�2N�- 
v|��@Y���D�8	(����F,�����^;<��#���K,?��0q��0�l������)�Xl�l�V%�$?�{��0m��Z�U\��~[l���-��R*�TX��O�5�X#}&�^u�������QX55������j�F�K����@TN@��\�M�@!��B���TN@.�\�M�@!��B����U�b�U�ED��*~o��go��t���.� �W���G>R;~��7��O>~������n�0��3������?���6u���X`�l#V������`?������������������B��7����f��v����2�@ S�U�rj��W�K�����@���*G��	G@.*N,��@���*G��	G@.*N,������U���xa&5��f�.�J���v�q���<
�������/})�s������z�����/���U\y*�b�3�q;��3�1��\
W]uU���������:+q���/�0������6�l~��_��WXa�����$������z�w��]r~����W_==n�y����G?��0}����C=��)�JY��U@aU��:#@�������Z'@�����������������6� ���\���� P�~V]��a���Oyw�e��g�u;/��r��Nw�qG���L�V[m������+l��f��O������n�Tz�_;�����.KO�x��a�%�L�w�y������v��S���%�\��w�����^:�b��g�9=W����=|���OO}���'�|rz��*��C W�U�r���V�K���j����O{W�O@.��ZO������B�@~rQ~�z"@�@�QX��SO�EQ����_�\s���������d5m������������~��[o�U[��~E��v�)���~a�9�L�}���j�MG}tz.~�0�NU���=��3���?L�9�����?��Z��RK-U;���o��7�<�s�=�}���z��+����+U}����'ON���X�������V�v�*��*Wn� @���
xi�[_� �^@�io�
�	�E�Y����rQ{W�O@.��ZO��@?
����I�Bs�T,�Zn��B,2��N��R��8��#�����t�\�����8�Yk���B-��������{H������Fm��^�y�)���N:��\r����k���j�M7M.�?�*W�����j����>�o:���������wV5p8 �������uD�z/��Y���@�@k������+ ���7Z�E�]�%@ _�(_o� @`��UX��?�9����C��Zy�;���O�������&LS�Nm���3��{l��v��:km��Xx�������s���Oo��W���U{��Gx��G����D,���U����f��PX���^ @�@.^����Z�?-P�"@ w�(wr �B@.j����E����-p�
7����.��5�\��)���;;����N�����/���������g�uV�d�M�������������;��|rW~�c����P���O���K��������3Ozw����p�	'Y
+�i�k��F8��Cj+Y%���vb�S��~����n����N=��p�E
Y+�q�
7��W�j�E�X,�l�|�v�m�C?	������j��C�K�~����( ��= @�rQ�`�E~(��\T�(d)��/�'�x"<��c���^K.�dXj���,��2�n�jS?�px��GC,|Zd�Ej��{���j����
�>�l�i��B,��c�9�}>�%��������]t�EG|n�F]$@�g
�zF�a ����f�����
�?~(��\T�(r���  !
�@� 0
�!��@��%���_�% ��K^���E��	���\�/y� P/ �k�'@� 0z�U���$(���f������S�P�(�B�E������\T�P�(�B�E��� @��H@aU��e� @`$/�Fr��^	�?���.��E�h���^	�E���.��E�h�� @�@{�U�m\!@�����t!3`# �L(M�@���R���	��\40�4���J>�'@�(�����P @��X�4���	���3Z9� ���\������\4Z9� ���\���� @��,�����7w8/�.�&D�4�OiBe�Z@.������E�	��h�h��kr @�9
(��[W @��^��ZX�����8O�@�rQ���"@���\�N�y������ @�� (����TN�K�����	F@�)L(�@���J���	F@.*L(�@���J���	 @�2PX�!�� @�@��4�w�O���Ouco��$ )�B��rQuco��$ )�B� Pf�Ue��� @��&/��@ �������F@.�%r��r����E���D� @��U]`��]�K��G�����3��53e���-c%0�r������I@.*S��� @��
��c#@�]
xi�%��	�L@���RC�A@.�G	�L@.��RC�A@.�G	 @��	(����K��.��Y�#h��+ ��7vFN`���A���(��\T��9�A��)��B� �O�U���7�X�K��A5G�@��O�Tn$@��rQq5M�@�rQ�Tn$@��rQq5M� P)�U�
�� @���xi6�6?���##P%��J�6W����##P%��J�6W @��^
(�����	 @�@�^���;R�'��C�@��>����T@.J)� �G�����&@�(�UN�!@���xiV���'�?���z&@�]��]{�O@.����	xW@.z�� @���(���g	 @�@��4+X@�@���
�T	X@.*pp�@���
�T	X@.*pp� @�T
�J.�%@��xi6����N@�����	�\@.�����N@.����	�\@.���� @��PX5��k @�d^��,`�K`���
��(��\T��:���(��B��rQ��g� @��PXU�p���fc��4��Fo�I���������Fo�I������ @�@�VU;�fO�&�����t�H@�)Q����E\S#P"��D�2T, 
ppM� @ W�U�r���V�K���j����O{W�O@.��ZO������B�@~rQ~�z"@�l�U�_�#@���	xiV���.�	�?
�����\T���:�	�E
�����\T���: @�@�
�2������f���;�*�?U���(��\T�X	�*�EU���(��\T�X	 @�@�V�;~FO��4k�p@�@��O���"@���\���r��r��m���4. @��J@aUW\n&@�������1:�, �rt��@y�����H	��\4��57����+#%@�(����b��� @�@W^�u��f2�2�����FM�A2��2�����FM�A @�

�8 @��rxiV��=�2�?e����hpbi&�, �9z�N`p������ @��W@aU��N�2��,SN� ������[	���\�3Z
 ���\��[	���\�3Z
 @�TL@aU�n� 0�^�
v|��@���"G��TG@.�N���@���"G��TG@.�N��� @��
�z��u ����f�r���:���.}���F�c���:��M@.���	 @�L@a���t @��^�U;�fO���O?��M�@" %~ �O�����&@ ��	?	 @��M@a���<M�
%��Y��a0*% �T*�&K��rQaCc`*% U*�&K��rQaCc` @�%PXU��.N�K��t\#@���O/u�M�@�rQ�R�#@��rQ/u�M�@�rQ�R�#@� 0�����}\%@�����T�2X% �T8M�@i������	��\4P�4���J:'@�(������p @��X�4��g	���3=� ���\���v��\4=� ���\���v @��.������O�%���@��d�J@�)U����
�EZ#P*��T�2X+ 
lhM�/���O��~8�0�a���a������m���x����"���_|Tm���~�?��{��F�U�� @�@��4+u��@���R���	��\40�4���J>�'00r����D P)�X��F��z�6�����@�S�N
���K�����>{��]�1����X��Y�
(�j�(���f�
��(���S������"�&A��rQ�ChB@.�0�*'p�1��3�<3�w�{�ma���?6�`�0}��Z;yV�����	(���RC @��^��?F@���OU#o��% +FC��rQU#o��% +FC�#�v�i����o�1�=�������
�o�y��L�<���2g?	�V@aU��Z#@�}�����:'Pi����7y���

!Pi����7y���

!@��^z��W�:�������uZXu�M7�}�����*6�WaU�����	(���RC @��^��?F@���OU#o��% +FC��rQU#o��% +FC��n���Z1�s�=�����l���^x!u�Q���.j�F�����I;I�@�
�2������f���;�*�?U���(��\T�X	�*�EU���(��\T�X	x�����G.��������g�V]{��a����
�bS�,��w�uTv	������j��-��Y���#@ �	?	���\�O}} ��E����S@.����	 08o��v�+2%�����0��3'�m������W^I��>��a��q���I���i�������K�	&�K/�4=�]w�X =�����~��r��S�����/�t�I��v������DF;��?�ih���g�^B���=�/Ci�����|���(x$��EQ���� >Q�Q���`@�
"� �� ���cr��5�@����+����U�w�Z�����U�j�������@
�U5��B�rph�K���@��O�jjGr�E9V��	�O@���vD GY�c����	���a��m��������oT��.���|����Ca�����M7�>����~��J���;���?<�������Y�����������n��i�qh������
� @�u�U����ph��L��?+=� ���,������E+=� ���,�����_���Or�<���[]�������b5�W_}�8������?��#\x������K����W�6l����k����.�����o��f�������k���c��0���l��j����Q4VEa6	�#��,��YX- V������(��	X- �V������(��	(C����_��{2����?o[^y������/<�����=�\������/8������
;w��.���wo��e����?h�Xu�����G�[o�5�z������X���+6���V4V��kp W��Y\o� p\@��pE�@w��;{3 p\@�pE�@w��;{3 �o��~���p���W���ukXXX��O������{��W}��_��?�W��Ic���b��U)�?nm� �\@cUs3� @��
84K�4F�����%�AY��,�d�z/ �z_b$���,��LI�@�%6V
�t�}��w�}���'�|�:���~x��/��.�`xn�������W�k]h�ZK�s��X���9	 @�@K�Z�5,k
��5��@�@Y��) ��$�dQdS P�@��U�sssU�}��p���V�������x`x�z��p�u�U�k]h�ZK�s��X���9	 @�@K�Z�5,k
��5��@�@Y��) ��$�dQdS P�@��U��g��m[�����~��g��?�x���[n�%|���K��������:l��q�{�>�X5J��t)���K}s @��)84�2���- jSy��dQ���&@���,�M�EZ�E-����Jm����_�?�|U�>� l�����������_^��s�=������\�n�:v�X8x�`���a��p�5����:?�6m�^���;��O?]�� @ ?�U����	 @��H�f#i< @�e��2��	�% �j1y���dQ���'@���,���%4(���������+����2|��W�3�<S�8p �w�y�}����U���[�5~������N��������d#��*�RY(X[����F� @�����Q	h& ��yy��vdQ;�F%@���,j��m�(��j`477>��5;;�3�������p�W�#G�,=���������t��?��hy��X�bI��Dph��T@�����D�E��MG��Id�IY|H�@dY�t#Pzc���B���w�y'\y��aqq1l��}�qx��g��;�����Jy����bj���,���e`� 0R@��������("��) �F�x@�@DY�T%Pzc�����9������v[x����={���|��7�|N?�����E������5���c���]��
���^N9����
���~�����~��. @����C3�J@�t%o^�����	�J@u%o^�����	 0=�����=�Xx����Pgff��_~.������?/}v��7��^{m���b7V5]_��5V����<4V�Q'�$@����b�-��P
I�@cY���hA@��jH���d�@��Z�������Z��x�?6�#lye�&�I������o�����>^|���~��}�������\h�j��]b	h��%m A��YdS pR�sR Y@E7'�E'e�!�dQdp� @� ��?�w�UW����n��ggg��i��7�zV��Uu��C�@l�U���G�Zph�"��	+ ��xH�@$Y	�4��Ecy<$@ ��,�m*0??����j��v�
=�����~�������)��*��� @�@��Z6<#��H�( �"b�����h$�D�E�ME��~���p������C�����W}^��Uu��G�@L�U1��E�Zph�2��	) F�x@�@DY�T��E#i< @ ��,��m**�s�����V���ukXXX��'��X5��� ��������O�"
84��m*V��n�H@uoZV��n�H@uoZ$0h�4W
^z��0777������{�#�<R}wqq1�y���}��s�=7=zt��;��3<���u�:����*�0�������_��Y�5��
��\+g��% ��UO�!���,��r�M�_��_�� @���4Vugof 0u�fS'5 5�OM(� ���,j�����E5��F�@���U^� @�$����b�*�_��Y�kl�R�?�V���% �����HU@�Z�"P��,*��vK� ������l�L��84�NnB��?�( ���,J�
�@��,�g��dQ
U� @��>h��C���-�����?]������h��k��E]������h��k @��h����7	 @�@r��+�(F@�Sj%���,J�<G�YTL�m�@��(��X @�@F�2*�� @�����%�9m	���d�K�@Y�D���% ���5.MdQ-� @�-��j��' @ ;�f����	�F@����6B kY�u�,�@odQoJi#��EY���	 @��X�P1,��W���z}��I���r�G��4d�45�E����hR9�#@`��h���"@�(Y@cU���w���C�����d# �)�����,�uym�@6�(�RY(�^��^��� @�"
h���m* ���C����O��(�3J����E1��E��(Y4J����E1��E� �g�U}��� @�@q��+�
HF@�$S
!P��,*��6O Y�L),�@������< @��4VM�P @�k�f]W����?����	�$ �R���(W@�[{;'���,J��B� �������g� @��f'��%@ ����Fm"���18 M@E�6cd�� @�4�X��� @ u�f�W���W@����vF 'Y�S���@dQkkgr�E9U�Z	 @�R�X�ru��4ph���LM@�L��@�C@��W	���,���X��,Z�� @�X&��j�K ���C��+h���?����	�I@����B _Y�o���@�dQ��i/ @�]
h��R�� @`���j8j���T^$@�EY�"��	�- �jSy��dQ���&@�(J@cUQ��Y���C��W���+ ����(I@�Tm{%���,J�6VF�$YTR��� @�M�Um��Dph�tT���pA�@���C|S P	����
���MM� �+�U�*�� @�@��J�`���?����������+��E����������+ @���X�=�%@��	84K� �C� �SP�m�@��(��X��dQA��U	����ci @�Y	h���\K��84��)�	���l�L�@}YT����' ���52�dQ}+o @�'��j��g @ 3�f��r	�H@�����B cY�q�,�@�dQ��i+2�E��	 @���X�T9,��O�����|������v�I���d��,�D����hr;�$@`z�hz�F"@�([@cU���{���C���vd$ 2*�����,�qqm�@F�(�bY*����� @��
h���m2 ���C�v}�N��h�3���	��x�f"@`��,m�	�dQ<k3 @��[@cU��kw P��C��
n��?	�R, �
.��HH@%TK!P��,*���N� 0U�US�4�V��Y��f'P���)���N Y�N-��@������;�tdQ:�� @���4V�]?�'@�+���pC�@D��T��E#i< @ ��,��m*F
���4 @�h$�����	 @�@�����������su��@>�(�ZY)�>��>W���# ����� @��-��*��Xh$�����	�����"���X@ML��LQ@M�PL, �&��E @�+4V��pC��ph�w���@��'��Y;�������N�, �r������,�O-�� @�[�U����LU���T9
F�@�����& �Z�50
dQ,� ���,j��� @��	h�*���K��ph�������O���6���rjm�R�E)W���# ����� @��+���]_� @�����r���e�g�K:�E�����e�h�K:�E���� @�g�zVP�!@�����]�'�����R��d�P�o��E]������,J�M� @`}����� @ )�fI��b% �*��HV@%[#P��,*��6K YY�li,� @ 3����X��@IDAT���MU����K�\��]]#]%J�i�In�LQ�%���\���hT��R�nh����R�M��$��=��>�9�<���>�����W={���Zk���k~��o�b~=�@�B������s4h���s�x-@��Z��@ bQ2J�A��E^�?$#@,JF�6 � �-P�����h� �@���,WV�y"����[S��\ ���1g�O�X�k�!����\\5�� ��7o��k�J�b��Q�FR�d��`�}�]��w�T�ZUN8�������l����3�w����{�n��#�<R��d�m���7�|#������?^�:��dn�
��X�91 � ��/���f$� �DzPB������� )@,����� e��Q@2�D�V�Z�����������>:�N���+��u���������)���
�?���qo���e��VW�]w��1"n���/���G��~h���-[V���?H����n��v5?�]��*��@�xi��-=#�@b�Ob�"��?�"���p� ���( ��
>\&N�h:���RM���a��l��$���X���
^O�I���s�4Hf����L;u�$w�y�z��I��n
�X��&}!� �e^�ey�B��<: h1�
! �x�yt$@,
�b0@��|�A9rdD[��,���o��V��mk}N������l�o?s�&�X��woy��g
M�z��V��u�
]k����7�P=x-@b����� ����4���@ B���A�$@,�<�"�@��(��dI�X�%x�EHY���@t���S��W�>K6�����M���ysD?~%Ve{����r������{Nn����Y�nT]�v�R�JY�?����{����#�M�4I��iQG��X�{�n9����X�b^?3�#� ���4�������'�K���(��C"xbQ���	"
bQ(���Dr^`��V2��m�b>��}VTb��?�(C����~:f^'Ve{��������=�\q�H5c���XGt�)��"o��f���!���'�U����v�~���N�;���< K�.��[�Z����/��_��n�
*��� � PX��f�M�A�?�83
$ %��*�#@,���Q@ ��(�W@�+��?��!C��g�M8��,Qb����.����x�Y����U�?!^/&J����3�<����+��	&�r�������E���/��RJ�.m�� �����U�U�����[�l)L���{���7�,�'O��d�����9s�����o�8A@���4K��U�N����-=#�@�����h��	����gH^�X��-@�8p@tG&�8��C�Jh���_D?�f��������Ei���,^�����V�ZR�^=y��gL��e��r����<y���E�r���}���1cLu�N��O
�
�N�_����kkg����?���v��~��r�	'$|
�g��=V��e�J��%�s� g����b�
���+����s�G$�/���m��U�f;�;������I�X5w�\���������\v�e������#G�K����:u��2'x-�Zb��Y����s�|��Y�PF7�t���/�9^~�e���m@�U��f� �@��?��g\p
���#�@��E��g\p
���#��+�q�Fi�������.�)S��r�������
��Q�4������>0e�U��{���3g��w�i�%Vib�&h�G���1u��{�]-^%Vy1�g�}&�D4�|��c�y���3�8CF�-�3���EY�z�uI�����J������_����3q���5����>�?>�g�Z�^����_w�u2b���~������K��6m���e�8�N��
z�Kh�%�JbU��*}�J�*��-["�E�f�]��V�j��?<�Cw�Z�~�~���j�@@ �/�b�P��|af(B�XT�@�b�/��E���2 ����+�N�N�n;��	�u�k�m�������1>������^wJr&��NT.4����Xu�H�^�L��O<�rb�����wo������~&V�5��\�v�m�����}��'�;w.���X�	U����">�W���*�_�J����OE?�����z_�&M"v#�N���wQu�x��f���_H�2e�"?�\ ��*��O��n��<7n,m����:��A�����Q�zu+�T�������?�k����X�����)s� ��xi��Z�^����1# �@�����h����7f(Z�XT�-@�tf��?���W����{���/�nk�I�v�O=������.��Q���k�5��M��D�:t�t���.Z?�O�n}�-�sn�$V��,����W_](����*7����/mN�	[��t�QGIAA�h�._6��L��	t��*g��k~�nz�9��Rv��K�7��I?�^sA�=��B�uw0�O��>��c�y��L�4�O���C?]���o�E~"��@��U�y�]w���.U/��R����E��N���f6F��b;�J���U����?��~8G@>��dO�����gd�]�X��g �=bQ��~ �n� ��@��o����6l(�g�����{w�O����+Dv�9RI�J���Un����?����[�n2`�)U����������[������*Vb��$�mk��i��w�^k������'K���M�z��o����i2�������������U&�U:�+��"b������1Q
x$�qbU��ue���fz_������<�N������������o2x�`sI�l���)s� ��xiV���G����3� �@bbQb�"��?�"���pHW ��Uj����O����%Kb����N=�T��\|����c��rQ'aL��6�]���x��1�t�*���}�J\�N��D(��������I\����M������/[�[|����B�
��>�n�����m����~����<�������ol��<�(���o���>i��=���;���;O�~�ms��W^����p�,^�X�9�S3a����[L�@(,�K��&� ��?����p� ���( �X�X���� �@�aM���v��];�v�w��D3g���a��'�|R4�'�#��U��;��f��5�nO?���m�6.������Fwt�\
��X5c��S~�6���]����N������?o��t�G}�.��X5l�0Q�1u�T����U�#��@F�U���[����E����������C��Z?w��Y�{�v����>bK@��N���� ��xi��+ ����[_zG���E�9�
� y�K� ���(9'Z!��
�5�j��}�;)m���"������W^y����{VQwZ�jU�]����?��X�4�$��>XJ�(���8��e���6;v���/����D&��N����t�A�8����j��&0��M7�$/���]�����3������#���wM�B����c����g�u�#��@F�U/���\v�ef��-�O<���'��\���M����?��c��/_^


�K7�x�L�4)V3�@@�7^����� �dK�q@�)@,rjp�� eK�q@�)@,rjp��'��*?~��=�`��7O���c�6l���>���kT�
2�dN�N����i��Lt�g��5k��|��{����S�N2|�pSN�D�����Y�~�h���ke���������*V�(+V�p�R�\�Mw���i�������3mZ�j%��U�d��?��\�wR�vm���Jb�>�����[��o����wog��*�Qb��.]��	��?5*�q�=�D�8���%
����3k�W�^2n��X]S� ��	���_���'[���Nb�S�s���([���Nb�S�s@�=�0'VE'N�NF�`=���1�.Z���|��������U��K�s\�zu�\��gK7�J���q�/�iBU2GQ�U
6���g'����UtbU��u�Ojg�q�����	������M��/�u��Y�-[�����[o������%V=��sr�UW�9����;���'
4��C��a����lq���~���N�{��r � �@|^����
x+@�����@ 9bQrN�Bo�E���;$'@,J��V �@�aN�R�v����w~=t'$���d��r��i���I�W����;�j�����X��/�X�Cs��)�K��m�f��X�_�6m�i����X�LK&IK������zY2�U������/�����<��b���2J��L���?��Y��k���)�'�����>�.Z?588w����ka����}{S���K���M�@(,�K��&� ��?����p� ���( �X�X���� �@�aO��������M��s�����K�6m�j9r�t�����=	cb��}����n�^x!&�&3��4�������r�)�S{^'V9w��U������uT^~����X5E%V}���r����������2?��@F�U�MO�Uw�}���o+�<�]]��]M����'�5k�)�:���t�@��o�jv$ ����Y|� ����o}�� %�D+�V�X��/�#�@r����h��*���]�v�I'�d�t��1c���!Cd��I���O?�
*�r�'~'V�N[�w����N�x���_�*V�X�v�E�.O�:u������
�����u�Q��Gk�����K�%"����V�j�4��i��;Pe�c����s��i�&�4�Og2V��*��LwAs�#�&Ui�A�(�J���N
�z�+W����������={�X�����3uS�N�����N<����?���r�!u@@ R��f��@�?�������E�m���	���f$�/@,�o�@ ��'V����E�{�e����+W�Yg�e>Ow�W��	��������T��l�T�
$O>���z��Q�N�"�D���>.��by���������*�M��i��%K������Y(((��C��x�U����l�<t7.��\����s�.�qb��P5x�`� ��z��K3w��im[����\�����7���j��'?����n�Z�}�]S�Y�3g�4eN@@ �/�b�P���7f(Z�XT�-@�{b�����E��6� ���&V�Y�*�[=���jG���~��'�Du�l�2���KM����.c��5���zJ�?�|SN�$��U�)E�&5_|���)S&.�#�<"C�5�[�l)��<�L���Q+^��=�~�l��v��p�Y�?�����c���I�&2e�+Y�Tr�@@2N��_�j���f:M������
�=���lj���g�����&a9�^���������
@���Y�Q���#6C!�@\bQ\. ����"�
�
���p@ C��y��W���k��7�;�d��i����V�ZY�6��v��G�����INzQ������h�fb�&?��];��7�|3�������9��#���X�X�/����~������J�R�"���@P2N��y��m�����#����qY�0M�>=��.0 "����' ���Yaj@���?�����E�}�����qfH,@,J��U@��&M�dm��K����o����I���Xu�w��i���~������j��]��k��-��b��'���M�rn&Vi��'O�{���9���>�>V�X!�_���2�NF'V��:�L�<n��&9����U	�/��B�R�J�6\D�MW�tB�������:�.Uz]�n�={����e��������{���[�����e@�]��f���<� �wm�a �i�yV�+@,
��03�$@,
�j�� ���[�n�3�<����-�5j�O�"��UK�.����*�Hw�j����Y<��F��w�-[VV�Z�S�vb���{���.����GL��c�M�Z�v��Y�&��]�N������i����"~	��X���}���K���i�&�?`5k�����[��%H�z��V��������?f����� � PX��f�M�A�?�83
$ %��*�#@,���Q@ ��(�W@2��������S��
��V�r:?��X�N#G��v�J�L�4y�����x��yss���U�qAA�t��M4y.�������e��%V3gb�~F���O��T`���]#�*��^	��X��$�L�b%d�v�i��qck��2e����!� Z^��v�yp�.@���0�U�X��A�X�U` @,�w@�k�4�&W���q�D�T��1}�t0`��BwH:���L9����k���o�1"	)�>2i����9d�Y�~}��u�&���~�����_[_�j��������i���.��i"R�#��{�����z��4g���]��Y����a��g�����/[��wd����y���":J���'��5K�%MpG �U�<
� � �/��@�l	�%�� � 958G�l	��%�� � 958G@ 7��`�e��7�&.q�R�V-9��c�X�b�y���_~i%����SN?�tk�%Jf�L7H�rS��@��/����@��?!^|�	��L��B��<: h1�
 � �@Nx�X��W_��,Gy���L��� ��
���[_zG�����6\A��E�Y3� ���
�'@,����@@�[����?�PF�%����D�U�TI���o}������F@����;����R7�p_�X��)="�@������� �oJ� � ��p-�j���r�5��x���������3�,�-
@@ 5^���EkpO����%=!�@������� �gIO ���(};�D@@�)�Jb���>*��ww����\�r��'��q���@@ 5^���EkpO����%=!�@������� �gIO ���(};�D@@�)�qb��}��J�*�u�Vg���aC9��3��������{��_w�u2u���{( � �@f�4����@ }�O�v���	����'H_�X��w"��{�"�,�	@@ �'V��?_Z�h��p�Bi��������e���2j�(S�'[�l�J�*E�Q@@��xi��w"�@f������ ��H/ ���(3?�Fw�E�8� � �'Vu��E�x�	#�����,��W_-�<��i��K/���^j�� � �@f�4����@ }�O�v���	����'H_�X��w"��{�"�,�	@@ �'V5h�@�-[f)6i�D�~�m)V�XL��+WJ��u��!C��=��c�� � �@f�4����@ }�O�v���	����'H_�X��w"��{�"�,�	@@ �'VU�\Y�n�j)���_F��P��t��{w��8@@�^���H/ ���'u3�@��E���#�.@,J��;@�}b����� � N�����//���a���;�L(Y�vmY�f���]�v2s������ ����,y+Z"����w=�
� ���] ����]OzC���E��q � ��'V9w�=z����7z��r�V����^����i#/��r�u
 � ��/����N�L����w#��;�"w�2 e��� ����GzA@@�����c�J�>}��m�V���c�!�*!@HY��f)�q�$@�q	�n@ #bQF|��.	�\���H�X�7#� � `H�2� � ���4��5�	�U�O���F ��E���<
�*@,���c����(����A@���U��gd@\�����t�I
���x*@,����@ IbQ�P4CO�E���9 � �@�H�
�b�� ��/�K��_c���
��2��p	����<-A ue�� �k�yZ@@�H�����@�]��f��3 �&@��W� @,
�*0 �;�A a� � �@>��Xu�]wI�=�\s�5��[oYm�6m*3f�H���X�R%)V��]�' ����Y�@���/��E���2�"@,���A@�bQ@\F@@ IW��3�f+V��:u��u/7!� ^��e�yN�'@�	��0#�(@,
����O�X�5aF�Q�X�U��@@��������K��u�0�O@�F��fy��<9'@���%c����(/���B ��E9�dL�� ����P � �Y �*�n�o�>��i��_�^��-+5j����������{��6n�h�W�J9��c������y�f�����x��r��GK�j��D�i����B�&@�W^��k�� �dK�q@�)@,rjp�� eK�q@�)@,rjp� � �@�'V�o�^v����������s�l���4�h��Y2b�Y�lY�g�T���n�Z���>���d�O?�T���.y��
5�_�����Wt��=���{9r��=��-:�[n�E(tP���*��_,�@�Txi��m@�M�������
����>pS�X��&}!�@���t��@@�H���"�������.�;w�w�}7�!4�G�	�N�0Az�����^:t��|UT�%K�H�V���� a�K/�Tf��!e��I�.l�%��" ��/�����.@�q��@ 
bQh����\'�CHC�X�� � � C���(A���s���Qk��)4�:u��w�}'[�n-t��'���;���g�}V��kW�Z���e��u�����#c���b�����}���u�Y����V�*?��c���M������B�
�S�J@ =^����] ���'sCz@���E��d.@,���@ sbQ���� � ��
d�X���_�/��bi{��qe�N_��n������������M�6R�D	���o���o��J�2
=Y�v�h����$���+;�d�����S�����~�I��y����"����kr��F��M������5�I�&Y�$��w�����r�WD$�
4��l���q����) ��/�2��f�@����"��k�"�(�2 e��� ����5J:B@�@��U����k%��������y���dwZ�\9k����>��������R�.���{��!C�����GK��}M�>�?��h��.�~����^2e�$��&P��9S:� ���s��
��Y3�#�>��-[�t�����_��S@2��Y����i���FpQ�X�"&]!�@������\ ��IW � �� �*��?k�,����lf�;Ui�T����@t�0������+�-2���g�����j��U�VI��%M��w�!#G�4U���O<�����K.��s���Xm��������[�E�6m�t�����$l�E<<@ C^�e�� ���'m:nD�E.b��-@,J��@�Eb���t� � j�����z�<��Cf���S�j�L9��\ ,0��S|�'�{�=i�����IS���7����c��5M�]w�%C�5e���3�E]$�����}r������s�z�\�.]j���?��� �.	���%H�A���?)�qx @,��.@ ebQ�d���<@�K@@�P
�X�e?~����������Mtr~~1�������cv��8q����������K��
M9�I���M"T�&M��w�1�V�X!���3�d>��Ky��'�=;w��2e�X���g8A\���K�t�)R&��@�X�*]"�@������< y�J� � �� �*��}���R�T)�T��P;v�>�g7p&5�u�?��m+s��1����7�]S�L�����\{��7�E���D��z��m.-_�\���k����A�pI��f.A�
�,@�I��@�b��t�)�R&��@�X�*]"� ��R���<[�q��I�>}�S�~��2f�Sn������[V�R�J�e�s-�I�����;�]��6l��}����5k�D|:�\p�<��sr�UW�-_y��V9l�N@�xi�$� �@������< y�J� ���(e2n@�E��% � �@(H���e��i��r�)RPP`�*z)�j����u��~
��c��2p�@���/���N:�*���_F�m�m��]��+g��N�,Y"���}<�����sg���l~"�n	���-I�A�T�?���� y�J� ���(U1�#���"/T�@@ �$V������r�9����~j��y��2�|S��j�������X�#�Vx���W�^���+�N�:V���n�I�&�k{����%K�r��e��I�
���'��7�l����A�pI��f.A�
�,@�I��@�b��t�)�R&��@�X�*]"� ��R����SO=Ut$/����K�*U��:��������/����g�]�>��9���L���/_��hu���+��q=V��G�����K����4j��*�o�^f��a�8p���;Y�j��~�����x��o_���' ��K�4s	�n@ e�O�d���<@�KHY�X�27 ���"P�@@ ��&Vy)�|�r���qD
��?���/�\�~���.��M�F�i�r���u�V�>��tG*�I�>�.]*�7��;v�i����$��*�U���N3��5J�����' ��K�4s	�n@ e�O�d���<@�KHY�X�27 ���"P�@@ �$V�����W��U+Y�fM�S���k�V����U-[���_=V���	&H��=M���e'Fu��E�x�	sm��}R�xqS�u��GI�����Gy�$n��?������~+�7oN�NnA@@@@@��~��c�	�#�� ��"@b�+��w���&�[�6�O�3H�T�mj��m��4i"����}k��������
6H�j���&\i��}�g	K�.mc��O	�}�����O?-�\s�U[!�M���*@@@@@@	�X�H�k ��p5��O�>��{���ep�z��R�D�z��[���+�\rI�U�TI����TD��
g�u�|��VIM��]�YD����q�L�~~�����w�y�>�\s&]����_|��|�]���/K�6m�b���
��IbU:j�� � � � � ��O�����9O� �����Uc��M���N@?�����5b�Z�j����*'�xbD}�B��e��i����{�LX���+��^�y���?.]�v5��.]*�76�X''N�=z�K��U�F��r��3� �.	������A��� ������� %�D�\�X�91 �@��$�h� � �@$V%��&�3����<�6m*�=��q�����#G��;���\_�f���Y��c���QC��[g]:��se��E���%KD?)hS�L�.]����?o��fy������;wJ�2e�r��3� �.	���%H�A���?)�qx @,��.@ ebQ�d���<@�K@bl��E�y������*U �$V��*�?^z��1���;��`u�!�D�'*��[�nm��Q�O�c��MR�jUsy��2b�S���"��:u�$O<�������U�~}q�xa�/�u �@&����U�Hr/�*@�IU�� ����U�D�T�E���� y�J� ��.�_��:u��}��R�^=�;w��9C�� �*�S?�w��gG�T����~)V�XD}Q��~�I=�P�,z*s���Q�F��es���K.��.Z?/��By��7L���9���M�y�,����y��?��s�d*�K�L�� ��+�} ����MM�B�t�E��q�)@,rS��@(,�_iz���$V���| �*����������+�L���#c��5�TO:v�(��M3����j�����Q#)((����U_}���,Y���'z��]M���_/�&M�����:=��}��h�B>��S�S�a��`p�� �K3�� ����M ����eP�C���Ei�q�,@,r��@�h���,Z���%�*
�"y&@bU�t��	��g��YjRU�����n��F9���L�V���O?�������n���d�?�P�7on����~v���n���c��]R�V-��q���Oj�R�JYu[�n�v�r&U�k�Nf��i��O������D���������Q�p[�X��(�!�@:��t��� �-J �D
�X�A	�| �*���{�n����4���{9��#"�4h��)Age�r��d*��Jw�r�d5o�<9������\��n������.�Hv��!�/�����*UM��V�ZD�][�s��T��f�
r?�+@�IW��@�Mb������
����>pS�X��&}!� PX����&� ��'V�r�-��O?Y>�^{����|������u���x�X�U�1c�H������N�:�6�*TH����_����*b��X7h�;��#�o�#l�%�� ��/�����-@�q[��@ bQ:j��n���?HG�X��� ����o��o�%J����z���W�}�]Y�~�l��]ts�O<Q�<�L�/+9�C7�X�n������6�8�����O��%K:�&<��I���k�W���s�)�$�q����/�����a�k�5j������1�c��=��Q���w��Y��5���f���/^\��/}�)������?�j�����"{|��������e����[�_��g8������L�H(�qbU������s�=g%*e���7�_L����|�M������O?-4��t����_��W)]�t���*�/�����o����|��r�]wY�lU����" ��/�R&�pI���$� �@F�����\ �I7 ���(#>nF������S'��b���b�
�;w��W��m��Z�V�Z���O�q�g]��v<p�@��ys��g�q��=Z�g�C�t��#GZ�Y��i}��}E7���%�����O<!���?b����]�v��wo�Z_PP`%A�m����iS�K;w��a�����S]�+�t�b��)S�����	T���7uK�.�I�&���?n��D������
F�S@��H�J�-������Y�}����@�d�������#�IA�S3k5��f��r���uk��a�/&� �@�4K�& ����V:E��E)��< y�J� ���(E0�#�I
|��o�l�_����`��;4��I;�P��O��_�(5{�l+�G��:��G��U��u�Vkc���{/�R����i��#�,�f���2q��B��*��-+�>�����u����jQ�X��GY�^�[��
:�	&���UtbU���&j���+1���"$!@bUH4A@ Wxi�++�<�?�O��)O�@.
�rq��3�'@,��5���EbQ.�sF�\��oW��kb�'��W����������U����t#�x�yh��~��>4)�v���g��w�j�����������Gy�����S��O��W������|�����Oz��q���?/={���;����
Bt�+����y�"��������R?�w�����ze�nl���<��3v���(}���y��r����W_}e}"Q����%K������*�5��������*�@ �2��V@�&�K����A <����5O�@��EA^��@x�E�Yk�� ���:�
rY�����{���U�V�;;�/K��g�.��r���i��n��*���������E�����A����YO?�t�]�4������c���:��U���+����������^�]�N9����Sw�����D1�B�$������E��&����>Uh���s��O�n[]t����R�re����A���3����/�>�g�z/��M�6��l���Z����r��X��"� 4^�mE�� ��g�yR�,@,
��07�#@,
�Z��Y�X��an ��$V��z��n���^���m��&�f�����'�E�uZ�����������7#�4Q�����>s�L9��sL9������tW�*U�X���������*���*O�<Y���^sM�i{��+^b��/�,����M������X�b���s�K���v��+���K/�Gy�PT ��{$V�gIO �d]��fY_&�@h�?�]z�@	��L��
�B��<8� j9����U�[�F��s�=3A(�s{�V�b���k���\z�����������[�y�Y�f����t��XIIv�|���.��_���N:�*���/r��'��D?�7c�)U����Ov��-=��}��R�Z5������]2�U�������n#�L��$z��K.�D}�Q�"Vb��,Gq�i�	�/@b����� �@�xi�5zF �����
�@ �E�X&�@��E���@��L�P����-��A���[n������?������`��Sv�hR�~J�>t���.��.�����&;�.]��E���T�5f�sI?�w��'��u�]',0eM������w�yr�QG��dN�J���V�Z�t�(��4��D?��;m�Q�V-Y�p�u���N���nr��
�X�*'�!� �]^�e�����'����#bQp��� fbQ�W�gG 8����3A�� �����c���_sq�-[&�y:��D'MB�u|�����yss)^b�i���&,m��U6l� _}���[�NV�Z�0e������i���;��/G�<��3�e��V���g�)%K���](*�*:	�b����]E:�m���f��%J����}��Zp ���$Vy�K� ��*�K3_��� �5bQ���"� �5bQ���\����-���3��s������U���s����k������X��U��=�����+d����D'��U����Q�����W�lYk��:�&\�:�J��]�t��L���_�=�X�����=z���3��@����2 ��$�K�\Z-��@~	�k=yrU�X��+���/bQ~�'O�@�
�ru��7]�������9s�~��1�������_r���F��s����Uv�Y�f��#d���vU����w�t�������^|�E������j���s�^�z�m��U��
�.]���%�@ E�R�9 �A��Y�W��!�����^_��\ ��J1O�[�X�����!�+��\Y)���&@b��V�������K�6mb��s�1R�N9����n�����{��7����}��*m��Wi��f��������O���n�-�����w�yG���js�y����Cs����.�L*U�d��N����UD�\F�H�J�� �Y��fA^���P�@IDAT@~�{}y:rE�X�++�<�obQ~�/O�@��re��'���U�[1���=�\Y�n��5�^��<X5j$���3���~JP���#Qb�����m�6Y�x��d�;Z9���?^�,Y��������i����Gw����;M9���Q�2 �*sCz@@ 0�4�R0B'@�	����R�X�eaR�N�X�%����(����@ H���"��X�D�IU�Y������M0`�L�>�\��N=�T��w�^��q��]�V4������%J��������H���*M�����t<g{M{����������������*U�X�T�XQ�+f��6a����\@�U�\��3@�+�K���3:a ��y�yv�#@,
�Z0�,@,
����G�X��`& �_�X�j���<��e��6�Zz>MP��������W^yEn��F3f�^��_�~�}�}�v��t�)��>�3�zL�8Q�n_��_~��|���:�<y��{����������?�����Zy�����g�!�����f�4k�L��Yc��^���:���O


�������\Z�z�I&#���p���$V���` �x+�K3o}����p� �g�H _�X��+ ����?kFB� �������K��
o�n����
����;E�>��G������a��V��e���K/5�/��y��G�nP��o'��������E�I�5L�k����k�Y�X�
�3g��>}��{j��%��U�tiS�<����e��)���k���c��2�U��| ��WnC@�[^�y�K� _����+ ����?kFB�����6\A��E�Y3 �l$V}���&)�6�5k��}��v���~�zk'���G�ka��i��ys�~����U���t�"}����;���{�n+�i��a�N?C��S9?x����s�=g�<X�6mj%j��Y����o��m�V�/_n�i_�{V�:uL��T����]&M�d��D�N?�tSGb���_H�����@�V��f���;� ����
�'@,����@ ��(�
W@�?b�����A �U���];�N��D�SN9E4�H����R�k1d����L�~�����7e��I�&R�J���+}�Q�>���J�V�����q����1c"����Q�R%��IUm���/�����~Bp��]��{�E|�O
8Pz��a��	�U�M��*��@�xi��1# �@l�Olj@�_b�������E�]�E�E�z3 ���J���������/�t��b�����:w�l���WO����|��	r���G��+�-[���J���/��B�s�;v���$�;kirU��=e��u������*M��>H�����?$V���( ��"�K3_�bb�P���|'g@�!@,��B�.@,���@��X�`�\w�u�����);s����?�8bw'�����������s�9�TO�<YZ�nm�z�����L���S#������s�4�w����3���e���r��G���|���2j��B�a���9�i���4����������x�	S�Y����:���?�,������~���Xv��.���Ow��u��&�����#�C�v�� ���U��- ����Y6�T����A�X�U` @,�w� @,
�*0@7~��G���od����{�n�Q����YS��)��0�����k����M|�Z�����#�8"�>���[��u��*UJ4)�B�
	��g�q5���C���V�Z��%��� ���U���1 �����sFD��	�M@� ���
��E� �@�EAX�� � �$V��*� ��&�K3~@ [��l�3.8�EN
�@ [��l�3.8�EN
�@@H_������@��	��,pK����'4K��"hbQ����!bQh��E ���@/�C@�!�rh��* �E	���(!�#��W��d�R ��E[�J�X��,�"�@*��T�h� � �@|���p@����Y�-F o�?y��<9-@,���c����(o��A ��E9�|L@@ @$Vh1�
 ��
��,SA�G�t�?��q�)@,rS��@ ]bQ�r��n
����/@@�0�X����@�N��fy��<9#@����b����(����C g�E9�TL�� ����p � �>
�X�#6C!� ��/����'@��'C=�)@,�S��@ ��(�� ����Om�B@�g��yuy6@��	��,tK�#�O`��� jbQ����G 0���,A ���P/?� � ���U.b� ����Y�W����'�k��#$bQ�V�� ^bQx��'G H�� �sA@�e�ry��; �Q�4����	|�f H @,J��%�M�X�5!�@bQ.!� � ���U)`�@����,�+���_�O��-O�@.	�ri��+�+@,������%bQ.�sE@��UA^�� �@��4K�� ����5J:B��E�q+�&@,r���@ bQx�� � ��C��*� ���/�r}�?�+@����c����(�V�gA w�E��v��| ��j�, � �� �*���� ����4s��@ i�O�T4D�E��5$-@,J��� ����C\�F@��U�Zn@ �xi��+��!\�Op���!&bQ�V�gE �����
3C L��0�6�� � ���U^��7 �>���gp�C#@�1� �@�EY�gh0�"C�	dQ�X�E|�F@�+��j9y@����,��<?� �d���@�wb���!�@��E��gd�]�X��g � �d"@bU&z�� �@�xi�a:�H�����Q��(������(D���"`bQ���!� ����U9�\L@���4K��U�N����-=#�@�����h��	����gH^�X��-@@H$@bU"�!� �c�4��c����'��GA ��E9�xL�< ��b�(���(���#� �J���@-�A@ 3^�e��� ���'};�D��E�Y��/@,J��;@�=b�{��� � n����<= �@�	��,���A ��?9�XL�< ����h���(���"����<^\
@@�W�|�f0@����������?�m���	���f$�/@,�o��O�X��5#!� ����U���< �@�xi��q��'@��T��(����# bQ��� bbQ��GG@pU��*W9�@��
��,����@��?a^}��������0����<;� g-�	 � �@n�X�����@���Y�Q���#6C!�@\bQ\. ����"�
�
���p@@��H�J��� �[��f�^f�@>�yuy6rG�X�;k�L�gbQ>�.��@��rg��) � �@�H�
��0;@R��YJ\4F�?.b��-@,J��@�Eb���t�i����F@@"H����� �@n��,����#����\^=��@���g-yrY�X������bQ��%O� � �]����� ��*�K3W9�R ���ES�L�X�-#�@
���h��	�<��c@@��	�X��q@�[��f���<A �yu�� �g�yR�,@,
��07�#@,
�Z�� � ��
�X��/�#� ��/�|�f0p�"�@��EY�g`p��"�@��EY�g`@@�< �*���A�/����<=� �dS��@� ��D�l
����� `�l	~"� � ���U��q7 ����Y���� *�O����E ����.
C T��P-7�@`�E�]&� � �c$V���1]@	��,��@�K�������
����x)@,�R��@ YbQ�R�C@@ ��U�}�� �@N	��,����"�W���ZN�� ���1q�J�X�W��� �����]:&� � 0�� L@�Lxi���"�@&��L��� �%I? ���(=�E��EnI� � �@�H�
�o�� �W�4����a�)�ON-�E o�Ey��<9%@,���b����(o��C�^`����v�Z)V��4j�HJ�,��3�����w�^�Z���p�	i���M�?��s/D
�X�A	@����YN/�G ��?9�|L�� ��R� ���(����#�7���YJ��&B�j�JV�^m=��}v��G�l0w�\����u_������O��Ln������{@���U�M�A@ gxi��K���y�O�/!�@^��byr^�X��K� ����XF�����e��������T�6l� -[��;vX���X���
' ���U�Q� ����Y��� V�OXW��F X��`��A �����<��@��E�Zf� P���>(#G��h����X����J��mE?'h~&Ve{|�����
�X��'�!� �U^�e�����'����#bQ`��� jbQ����G 0���,A(B���@t���S�j��%�X���oK���#���C���=~!<*@�5�\��#@�/�K���3@ �����<��@��E�Zf�@X�Ea]y��`	����@ ����d�m���l���X���?���C���������U�?�CS��
�X�*'�!� �]^�e�����'����#bQp��� fbQ�W�gG 8����3A(,��?��!C��g�-|�Q��%J�z����_�~/1K��2�*��;�8EH����@�[��f~�3��[�� �MbQ6�lb�-�O���(��������Dwd��C9DJ�.m�����_���~2���//��7�v������MYOj��%����g�y��/[�L*W�l�����_���
g�u��o_3f��������AS��I��w�1�� �*	$� � �+�4���b����'���'B �E��j��� ����D���(W�9#����q�4j��L���.�)S��r���j��I���E��F��|����|`����=��#3g��;����'J���,M����+Zc�|�=�X�Z�J�����9A�H����@�O��f�Y3D
"=(!�@v�E�qgT� EzPB������� ��{�]��,Y�4O���MY�|���O>��?���O���#��~�������;Q-\�0���Xu�H�^��~����'�x"����e�J����C���z��X�����_ ���U�03 �����gFA�����&� ����"��
�
�P����7gD��/��)?/y20{P���t�<��SO=%���3c�5J���ZS�>�?��T�1t�P����]�~N�>]���c����Jb����e��r��WK�2e����X���#�x*@b���t� ����4����@�w����!�@��E��gd�]�X��g �=bQ���[ ��U��o�SN9�,l��
e����}��{w�3g��^�b��g��9RI�J��;Vy�Ds��.@bU�f�� �@`xi��ab���'���D '�E9�LL�� �������('��I"�@
�1�J����n�Y�f�[�d����l�����r����E�������3��NH�*J�� �
����� �x$�K3�`�� �ID�A�X�2C �@���"�h�>�|@f�@X�/^,���3k~�wH��=M�>�9s�����.��O>)-Z�0��NH�*J�� �
����� �x$�K3�`�� �ID�A�X�2C �@���"�h�>�|@f�@X����'�5���7[�^�zuy����\y����{�Y�e���U�VI��%��WAbU<�@ �$VeS��@pY��f.��$-@�I��� ����C\�F���EIS�< y�K� j��&V���?^F�m���yR�NS��a��}���|�-���A�L9������/.���(^��4k�L�g2���k�u��I�n�� �@�	�X�{k��@�+�K��4\@��?�=$%@,J��F ����c`�G���EI1�HY ��U��S7�t��s�=�����#F��������O6�dN�N�*((Hz��W�����'�BbURL4B gH����b� �-�K���h���q�WHM�X���@�b�7����	�R��5 ��@����]�v�x�b��b�������8 M�4����[����'s����S��U�h�� ��/i�A@�^���� S����J�Y�X�38�!�@LbQL*@�gb�����{b����E?�g3f��s�=W�/_.m����e�����CSN����d�h�~
�X��6c!� ��/�<�{�+@��K��Q�X�#6C!�@\bQ\. ����"�
B%���]�v�I'�d��}��2f�2d�L�4�����R�BSN����*�iK�����)/^\4h ��K�����m	~"�$V��:� �X�4��%@���<�"��S�X����%@,��<�"��S�X���pO ��U*9p�@�:u��Z�lYY�r��u�Y�m�6���+��	&X�������T��l{�����!@bUn��D@ )^�%�D#�@���*]"�@������< y�J� ���(e2n@����=k�&���F�;FJ7�������-�K/���o��v;v�)?��Sr����r*'$V��E[�K��*��@xi�2C �@L�OL*@�gb����1�E1Y�D��E>�3 "�|�y��'���+��+V�>�W�d�B��� �*%� ���$V�-�x �x(�K3q�
�p| ��0 �P�X���� ����'h�AB*0i�$2dH����������P}�$V%+E;�S��*?�@�xi�10�#�@\�O\. ����"�
�
���p| ���P �@�n�*g�yf�'_�h���Q�P}�$V%+E;�S��*?�@�xi�10�#�@\�O\. ����"�
�
���p| ���P �@H�v�*����y��
����M9���Q��Z��*���@xi�#6C!�@��'��dI�X�%x�E�bQ���(K���H@��4��>��'�����i��>}�0���|�r9���L9����k��;��7�x��{�����J�l���C�	�' ���/�r
yrU����+���/bQ~�'O�@�
�ru��7�%@,����i@@�'@bU��@�xi�:)"�@���$�h��
�<��sHR�X�$�@�Sb���t� � "�B��<* �@���,���'D ������B \��p�7O�@P�EA]��@��E�Zo�@@�;����g@|�������	�U@� ���
��E� �@�EAX�� � �$V��*� ��&�K3~@ [��l�3.8�EN
�@ [��l�3.8�EN
�@@H_������@��	��,pK����'4K��"hbQ����!bQh��E ���@/�C@�!�rh��* �E	���(!�#��W��d�R ��E[�J�X��,�"�@*��T�h� � �@|���p@����Y�-F o�?y��<9-@,���c����(o��A ��E9�|L@@ @$Vh1�
 ��
��,SA�G�t�?��q�)@,rS��@ ]bQ�r��n
����/@@�0�X����@�N��fy��<9#@����b����(����C g�E9�TL�� ����p � �>
�X�#6C!� ��/����'@��'C=�)@,�S��@ ��(�� ����Om�B@�g��yuy6@��	��,tK�#�O`��� jbQ����G 0���,A ���P/?� � ���U.b� ����Y�W����'�k��#$bQ�V�� ^bQx��'G H�� �sA@�e�ry��; �Q�4����	|�f H @,J��%�M�X�5!�@bQ.!� � ���U)`�@����,�+���_�O��-O�@.	�ri��+�+@,������%bQ.�sE@��UA^�� �@��4K�� ����5J:B��E�q+�&@,r���@ bQx�����;�k��fhK����5s
A	WQJ
A�����[\s|1�t)b(5�>�5���jMmC����URs*�*	�����^�>g�s�>g�������G�����y������� @�
�*0� @��v����#h��W@�i���9�N��:)��B�}�������$����i- @��PX�J}c @��&xh�dP� P���S7���( ���k����������quM� P(�U�
�� @�@�xh���>���3#P$��H��V����3#P$��H��V @��4V���o ����f���D@�I(� �B�����&@ ��
;�P@.j!��	 @�:J@aUG��b @����/��	�N@�i���	�L@.������Zgod>��>��G� @` 
���^ �3�r�!P ��@��T9��rS#P ��@��T9��rS#@�h+�Um.�%@��xh�����' ��g�g������������l�L�@�rQ�VZ @��M@aUo:� @��6����f�:H@���`Z
�6���8x�N����
��hc����g� @��PX��p����f�s7���o�N�' 5�RO�_@.���;	h��\�<K= @�[@aU��o� �a�uX@-�@	�?m,S%��rQ�����\�F�2U, upp-� @ S�U�r��+��Y��z'@�g��gW�N@.���H�, �l�
�	�E�Y� @��Vuv|��
&��Y�n�r$ ��(�B��rQ��o�r$ �(�B��rQ��o� @�MPX�TN� @���
xh�Z�(���S��[;���E����(��\T��[;���E���� @���������� @��*��8 �����!���Q@.���2��2�6=
�E=��@� @�!�U
qiL��-��Y��cv:Y@����Z�����'VfJ����N���h��}be� @��PX����hH�C���4&@���O1uE�@���~����&
�EM������M�F @�U
��8 @��������g��Y@�i���;����:'�VB����v������sbi% @��PX�Z� @���
xh�TN� ��������& �F�c����������huL� P0�U�� @�@gxh����:y��s#P��8��Ry���s#P��8��R @��tV���w ����f�r��
���.-��ZFo`*��
��L@.j��	 @�:L@aU��r @���;�VO���O+��M�@Y@.*K�%@��rQ+��M�@Y@.*K�%@� 00�U�s7����f�
��(���S�p[,��
�E�
��(��\T�p[,��
�E�
�� @������6�� @���<4�M�5�����7�
�E�JiG�@�rQ���&@�^��^)� @��.���wW	 @�@[	xh�V�2Y% �tT8-�@�
�Em:'�QrQG��b���\���3q^`����^�
�F�
C����C=����Xb����|�_}��V�?�����^z)|���n���/��_=��o�^y��������Z*,������
��V�Nl ����f�Y��j�������Z�nT���jG�F@.j��Q	 @``�j�-��>�l�����"�,�p��&M
���o���w�=�~��
�1�Z=�@���{WXa�0{��RW���[8��3z�v�������
�=�XrO����������p��G��W_�|�/��VeNn@ ����f���������}\%@ �(g� ���\����d# e�lh��i��.�������Y��U/��r�l���"���Z=~����z
��}��p�����o�����������_���j��f
(�j��� @�@�<4kqO���O��o�r$ �(�B��rQ��o�r$ �(�B�u	���a���Um��g�V����a�m�
�s��-���V�_^s��)�;vl����Mu���.��>}z�kc��	��{n��NH[@aU���'@�
xh�!�����8 �"��E��%@�J@.��p@�@������5kV�o��������=��������X���*v�UaU������}V���?
�rH������{�0�\s�����{����w�yU�&L�F�]u���V�-� ����fb��*����-��ZoX���*�H@.j�a	 @�!�{���T���o��/�{�Wa��o�N9��p�u���#���V�_s�->�Wa�l*�Hu����x����k��V
w�}w���HM@aUj�:&@��xh���	�����/��<�Ey��9  � @ rQ�` ���[o�N>��p�M7���t>�{�[a��w��8���SaV�$���V��+^/�VX5s����k$��~����^����y�������K�?�|�{���c;�PX����	 @�@��e�m(���*�H@.j�a	����8 �"��E��%@�@�	|���!����}�_�����?�Sn�m�y�
�.�1c��)S�$�qg���#G�7�xcr���/�pr\���#��X��u7n\8�����{��G�S���&��=~,@z��Kov��_���������*���|�+����w�
}�Q��������CK��|�Ix����O>����������,�k]/��M�6-����!�����y�����j��Ia�}�M����~���o'��v�?��0~����w�V[m�����V�-� ����fb��*����-��ZoX���*�H@.j�a	 �a���j5jT���7�<\v�e�qO;�mT&LH.��
-��2��v�m}���8�U��N7�pC8������V���X�U�F�Q3�w��/�iV�1��~��������0{��d
]wV]u�p�Yg��[k�t�M���>[���v�a�p�������g5���\t�EU1��o�{8���z��b����EV�����n��3�H������[B�+�w��W����5v�V�v�ma�5����)�(�J�U� @�%������C@��g@�@��<D����
 ��(Q0:Q`���nY�����F��N�������6�?���q���������&�_��WU���U���7�a���\q�
V�72�;6����!��-���f���7�C=��������a�=������*T��7����^��u"�o��f5/?��3!~����.��_����u-���y'c�],6+o����a���~	�.��*ub @���<4���HT�?��h��\�w� P- U{8"@�5rQk��J�@����9����f�#��Z������k�
GqD2��g�v�e����N,���0���SN	{��w���{�5��>���sn�V���K!��h��v�Vd�EaU3�����FmTe�b���.f��b���|��7S��Vn��U�����K/�Xb��V~�T�M|�W��!���+�����`�
���o���b���~����w��U��/����������|��@&
�2a6�F�C�l��B�@w����3d/ eonD��E�M�!@ {�({s# P�"V���;U�j[{�����{����������O>b�N=[#�U���EaU3�����.�����}��7u�Qa���J���hy�A����'�k���VaU|�Tl��r����3gN�-P]��.�����V[%���q��U}�/S�XU~���'�(�=���RX����������o8�,�+��K M�Ui���d,��Y���#@ �
;�P@.j!��	H����-��Z�oh:Z���U1��u�Su���K-�T�0�}�����+��o�����K/M���)baUW���h=x���\��U�S���V�R���X?���MT�����X�U�����k��u�Y�|����Gy$�7�|���N���|���m�����O���n����i|�WOc'��HA@aU
��$@�����U��%@@��7@�@��<D����
 ��(Q0:Q���US�L	c��IBz��G��>89.��p�
�b����W^b�O�[��������{�������8l���=���8U��7:]x��U��V]���O�U5�������]v��R�b�����)��������'?�I����U��zj�"��;W]uU��7�Yy�>�LVe�l ����f�8����Owg�^@.����t����8C�@�rQ��F$@�E-�����C|���3J��o@�����}�v?�p�||���i�j�%����:Q���J�X����>2��t��o�6�p�0{����������)��ZX���/��}�sU�T|�k_Kb�bSy�o������^>,��K_�Rr�u'�����[�o��k��rJ��$���9���g+��'��������C�2��,dC PS@����$�E����rQM'	�X@.��pF���U1���w^8����X�q�a��VK�_~����z�%�x`8��c��zv�.����������m��|o�q����z���/���c�=�i�������^y����K/�����^x!<������>�*�1bDx��'+o������o|���������b�-��O?]:��r�����k=����
I�W#�Uq��Mh�o�r7n\;vl�)�2PX�)�� @�@�����wz�z�q��������D�@�rQ�6� ���\����(�@���N�7�p�	��\�8�����{�	+��br\�N��U�f��{��>�l�w�y�YF�oaU,Z��������KU��Wa��k�&N��kW�o��ZX�����>Q;Xu�U�/~��^��+�����/�K�s�=���?^��QG9���sd-��*kq� @��<4KW��* ����"	�EA��^��^y\$@ #�(#h� P8�"V�`�3&L�2���&������C���~�_��h���a��I
�}����?,�v�m}�E�7�|3i�Wa�&�l�����}���B���U�Eb�i��w�}���VOaU�T����#��)������v�q���_-PX�2z @���xh�|S= P���S��V�+ ���w����s���t��t}�N�@q�^X�|?�W���������S����G�O�����]w�59�w���U�q8��C����Z�)3���*�7k�7F��VZi��S{iVU��j���/}:��D+Nn��v��G-����������K��r7�����_�PX�J}c @��&xh�dP� P���S7���( ���k����������quM�@��^X�����e�]6��y����g�N>��0a����3�<��o��������������|�I�S<xpXk����A�zmW�X���=��#�v�i�K�~�����w���tP�MMK/�t2dH��8�%�X"9�*����7P
��U��X8W�^{���n����X�V������Un��\��*���E@aU^"a @�	�5Q�K@����h��\�dP� �/��_ln"@��rQ�AuG��	��*2s�1����*�><<��Sa�u�I>O�����/��_b��d]X����o�Ha���������3�<����D��X�����[n.����a����U�mZ7�|s��<�Zj������Y�Jo�*����*��*���r�o��/�p�i�Z.����!0 �<��g�'�����t��t\�J�@crQc^Z ���\���^	 ��:���[��?�K��/��>?(,����j����?�x�f�m�>��?�3�s�9����^6�h�����"V�O)N�>=a����
�w������)�����l��Bt���YX���Z=J������g�Q>�����������g'��_�p�e��X�g#�7�Uy��� @��xh6<� 0 �g@|n&@�IrQ� uC���������&	�EM��
t����p�
������g���AC�-�j����U[l�Ex������/���q�N�"�x-������l��O���VX�������������?������`�Va�	'�����+�s�5�7�tS�k���sv�I@aU��a. @`��
���[@��7�	h��\�DL] �o���tn$@��rQ1uE��&L�N>��n�������|�'�XXu��G����:!���;�����Z�����_�����L��wF�b�U���7V�~/���p�I'UQ�d_��=���a�}�	3f�(�*�v-��Ed���r�o�������U��u�[��VXl��zm�"�f
(�j��� @�@�<4kqO���O��o�r$ �(�B��rQ��o�r$ �(�B���9sfXc�5��l���a�e��v��E,�z����;�XE����V[�>�������_O[�t��i�������9s��o���B@IDAT��a���U�Xt�EC,�z���s�=Wu�|���*�{�������'��6Y	(��J�8 @ �2@65���,N ���\�1���) �dq�������
G��
������(�����k��'���[���5~���[��A��I�x��
R��W�l�Ir{��b��f�
���o��s�mq����<PjVYX?#���+V}*���z����'��PX���~	 @�@<4k�!	(	�?����\��(�r���  �!
�@��������U���s�
c��)����k�	GuTro|C��.�����
+$�;���w�����c ��3~���W|���j��t�!��5�\3����a���O����O<19=zt�v�x_,D�m���G}����p�t��_|sV|�����>��p������#��rJi��7��6�Z�����o\��sRPX�
�N	 @�@k<4k��Q	A��W@�@��<D����
 ��(Q0 ��@���k��^}��R��,�_~������A�5�Y���<���R����VYe��[������&�:�U��72h���fM'�!u
�?uBiF�@�rQ��:'@�N��N(�HU@.J�W� @�PXU�`[*t���f�c+$�W�'��1/����o�%�W�(��1/����o�%@�HO@aUz�z&@��xh�9�	�����O��<�Ey��9  � @ rQ�` @�� ����h
 @�_��S @�U�O���K�@��\T�a��V	�E��7.�rQ��} @��PX�;w @���	xh�������?�	�����\�������E�	�����\���� @�@	(�j�`�*�K�C���\'@ -�'-Y� ���\�����% �%�_����� @�@�
�z�q�����fm2&�1�O���B���\���3y# uL(-�@[�Em>�'@�������T @��@<4���	�����_9� �L�����"@��rQ��G�@3��fj�� @��
��}k'@�������BjA�F@�i�P�(����::�G�m���	���h����kq @�
(���P @ m���?=	�?=�8O�@�rQ���"@�'��'�	�R@.�R�X @��,�����km P8�
r&��'7�0���
~�'��(7�0���
~�'@�h����&b���Z�C�VG���+ �7�VN OrQ��a.�+ 7�VN OrQ��a. @��,�����g� @����f]@ ��������E@.��%2��2�6��E���D� @��U
`iJ��.��Y�#d~:W@����Z�v���)Z�J�s������h'����e� @�yPX����hP�C��4'@�i�O�(uD���������	�EM������V @�
�*0� @��v����#h��W@�i���9�N��:)��B�}�������$����i- @��PX�J}c @��&xh�dP� P���S7���( ���k����������quM� P(�U�
�� @�@�xh���>���3#P$��H��V����3#P$��H��V @��4V���o ����f���D@�I(� �B�����&@ ��
;�P@.j!��	 @�:J@aUG��b @����/��	�N@�i���	�L@.������Zgod>��>��G� @` 
���^ �3�r�!P ��@��T9��rS#P ��@��T9��rS#@�h+�Um.�%@��xh�����' ��g�g������������l�L�@�rQ�VZ @��M@aUo:� @��6����f�:H@���`Z
�6���8x�N����
��hc����g� @��PX��p����f�s7���o�N�' 5�RO�_@.���;	h��\�<K= @�[@aU��o� �a�uX@-�@	�?m,S%��rQ�����\�F�2U, upp-� @ S�U�r��+��Y��z'@�g��gW�N@.���H�, �l�
�	�E�Y� @��Vuv|��
&��Y�n�r$ ��(�B��rQ��o�r$ �(�B��rQ��o� @�MPX�TN� @���
xh�Z�(���S��[;���E����(��\T��[;���E���� @���������� @��*��8 �����!���Q@.���2��2�6=
�E=��@� @�!�U
qiL��-��Y��cv:Y@����Z�����'VfJ����N���h��}be� @��PX����hH�C���4&@���O1uE�@���~����&
�EM������M�F @�U
��8 @��������g��Y@�i���;����:'�VB����v������sbi% @��PX�Z� @���
xh�TN� ��������& �F�c����������huL� P0�U�� @�@gxh����:y��s#P��8��Ry���s#P��8��R @��tV���w ����f�r��
���.-��ZFo`*��
��L@.j��	 @�:L@aU��r @���;�VO���O+��M�@Y@.*K�%@��rQ+��M�@Y@.*K�%@� 00�U�s7����f�
��(���S�p[,��
�E�
��(��\T�p[,��
�E�
�� @������6�� @���<4�M�5�����7�
�E�JiG�@�rQ���&@�^��^)� @��.���wW	 @�@[	xh�V�2Y% �tT8-�@�
�Em:'�QrQG��b���\���3q @���	(��Y@L�D�C��������?�s/����%�" 
D��4K@.j��~ @�@�o��F������������U�V@aU����	 @�@w���8C�@6�O6�F!@�w��wW	�F@.���(�. ���*���9s�UW]�?��0r��0i���v�~r*��*��1- ������! �4CQT@.���	h��\�E} 0P�h���'@��p��g?�Y������\%��
��=��O�*<4���K�@��O��#@����	�T@.���`�  ��4h���;�&O�\�MaU�PuC �
�r�"@�����?j�!@��O3�A��@���
���f�E�P���*�~ ������}\%�I
�:)��B�������L@�i��	���*0� �2��e�&@�B@.���K�RPX��.	�T@aUNcZ @�?��G�=4C@�i��>��\4PA� ����� @`�r�@�O���q�5kV���!C�<��S��3gNx����K/��y����B��~��a�5��
��"�>{��0}������-,����+_�JXq����C���v���_|��_7nq>���VZ)�5�\���\��y�������^~���|�Yf����K�E]4<8i[����o�O?�4������G-]���|����x����[yK�~4�����_w�%�(�=Z��P?v��/}���o�~��_���?�5���zu�U51�(���G @�@�	xh�~13c�" �tJ$��@{�E�?�'�)rQ�D�:���\���3{�M����{��GiZ#F�O>�d�4iR8��c��o��m��/�|���+��������u�]��c�	3f���v�UW
g�uV��=m��)�7~��RaVO���q���<0|�������O>	W\qE���~Ts>��������!���e�������^����w�
��zj�����]+��k��J���
+����Tk��fr��&L�_~yr.��]z��a����:����	(����� @�@.<4�eXL�@!��B��"	�^@.�}�L�@!��B��"	�^@.�}�L��6x��?�n��q��������vbA���^:��b����KE?��������/���k��3g����?<���]/�x�:��������i��.���n�k�>|x�����j��V�����+�jZu�ka�O<Q*�*�a��q��8�/�0����]�����j��w��P��?�y�>�u�}
(���H �>��O���@�	�?�Q�!��rQ{���	t��\�i��) �g����������g<���.6�W���~���&VYXUk��f���g�g�}��r,���+o�(k�V(}����6�l�����m��tP���[����8^|s��s�^y���'���w�G��;���[n�%|��U�6�p���r���p?1x�wT]�������������]v�%��^�?Xn\~;T|S��7�X>�y����u�d�M�RK-���?�>��*�x�t��\����k��������<e��(��[	 @�@�<4�[D��@q�����J	�Y@.�st��@q�����J	�Y@.�st���vPXU����a�-���Nq��+^����n��J�����o��J�����Y��;o�0��O
k��Vr�����no��O?����9�����cN�6-:49��t�=������V��VZ)�w�[����o�
��j9����a����&#G�,}�����������Uo��|������^x�r��'�g+����r�����F�����j���!���;��b�����V�j��(��[	 @�@�<4�[D��@q�����J	�Y@.�st��@q�����J	�Y@.�st���vPX�Y�N<������~v�_{�zh������_y��a�M7�:�������G��������)J��?H��p�
��_�zr�u���)^�o�Zl��J����S��C9$u�Q]�(_r�%���NJ��v�}�V9VO�U��~{�,��7�����0h����J��-X������zkVm��6���/���4O@aU�,�D�Z.��Y�C`
+ �6�N WrQ��a2
+ 6�N WrQ��a2t����s��Q��?�i������m��Z[�\�w�������_^z[T����������s���y����ZEI����~��X�����7a�e�-~�����_�j�R��������\s���+�|����.�,�HXr�%K��|�TlWOaU|����S��Vz%'+v���k���?��O��
��~����$m� �|�U�7�#h���f-�70���?��@ rQ.�`
/ �O�\�E��I ��
���c�=6x��5#?��������#�<29���EA�S��-������v�0��os��Ns�=wr��N|#U,�:����K��+��br��n��{��79��Z�vX�p�
��.���g������%�X"������?v�����������_��W���?]��^O�!@��
����3 �Z�Z�otE��}k'��(?�0E���}k'��(?�0:K@a�?�y����-���fp��?OW�b�S,B�������l�Ir������?vb����3��/����?�����i��UL��w����W_�>������UW]5l��f�"�5�X#:��z���
��A�1"�����8�7�|3i�9d���q�>cb,l�+��*]_� @��L<4���`T�?v	h��\�2z P! U`�%@�erQ��
L�@�(��g�o�������f��Vu��_�M�o�qr��������'�>?���O���g'������*����3�,������^zs����b�U������������n�<�HX|��K�t-�:����1�3�!�O�@
��r�����f�-s%�Y�Og��j���\���3o�% uV<��@�
�E�9�&@ �
����n�-����5��������7��C�z�S��k��ZXUnr��7�3�8#��1�|������a�=��v�������g���v_�'&M�F�Y��ka������k�F����V5�9����fy����l����ku�E@.j�H�'����:;�VG�]��v��y �n
����
��N�F�]��d�E
���ZXq������������p��G&�{*��
���b�������~�����;��C=��t_�U���i���{6�p���&������Zh�R���U=}����4(���A0�	 @�@�<4�st��@g�?�_�#�.rQ�D�<	t��\����:�" �K����vPX���eUX������'&K/�t8����Q��<����/��O	�b���[aU�M���7�S�L)Y�7ZUnK-�Tx��*O��
�^y������&���Ww�q�qvV�G�=.��j��z @����,7�0��
r&�K�(�a1)���
r&�K�(�a1):@@a�?��EaU�"�XT?�7������t�QG�k��&��`���+�����^}����/�X���n��!C�$m+w��;��cUQW,��V�����8^e�Xv�-��o����'�����b�-V�o��a��A��]M���GF4U@aUS9uF�Z+��Yk��N���O��o��# �'fB��rQ��o��# �'fB�@g	���7�~%7����a�E�L}>�@i�=�L������?�y��w���y�a��#�8"9����;������������	��E]N;����p����>����s�%���N:)9{�����6�(9�e�]���������~��_$��;o�qx�������[o
���Nr�ug��Y�k_�Z�={vr��g�M��V%,vd*��*Sn� @��t<4K�W��, ��l�
�	�E�Y������m\!@ ;�(;k# @��(����{������������&'*v�}���}����!L�81�����s�?�x�f�m��[o�u������A%���n���������2�,���������e������n�!~���=�/�|��^s�=wr�r�����]vYr�;��N8��s�c�U	��
(����` @ ]����;=�?=��B�@vrQv�F"@�g��gW�N@.���H(�@+
�^���(�l|��7���[�|X�}���Jo��2eJ��xp��W�M6��t��O>)�����V{��W7n\�����������N=���\�a|;U��9������4is��'�o|��B���[�t���?�n�m�:uj�.�����j�%����~���	&$��N,�Ze�U�s
�
;2PX�)�� @�@�����wz�z�q��������D�@�rQ�6� ���\���� P�VVE�1c���S�Pj��V
��(;UJu���'�����������}��'9.�����a������O<�������
[l�E�y���s�
g�}v���A�c��*�����G�/%��-W�����~x����>�s�1���J���UUd&��*3j @���<4K����j�8K�@�rQ��F#@���\T��Y�����6:]�U�U����Fm�������#J���s�=��#G��&M�j~����O?��\O��/��*^u����?��9���gw���Y+W|��a������:�baU�MaUW��PX���Q @�@&�e�lj�?5P�"@ s�(sr PC@.�����E���-p�����v�-Y�w�Q�)���?v�~����;U~���]��������'�/�����V[%�q���s�3yW]uU���A|�S�[�/B�;6�x��������
_��������c��3�<������]t������c�=��&�������8^����Y��v��������p�y���������
7�|�R�MV��h�����������Z>�K�@J
�R��-h���f�P7&Q@��w@�@��<D����
 ��(Q0h���o�^y����K/�>� ,��2a�����
��0�mS/��Bx��C,|Zb�%J�\`�����_3g�s�5W�EY��7_�����qca������K.�d�������&��*5Z @���<4�����S@���@�@��<D����
 ��(Q0 @��NPX�	Q� �/��) �*��U��%@�R@.���O�@���V���J��R�> @���(���]n�|��w�C=T�O��j�o��3�9s��^�������=��b��^SX����|���a����&<8,��"!��p��!���y�h��	�z����	H]@�I���! ���	��E���:��:�4!@� P����:�����C	\pAi��_}�i�����3�<�����[o���=k��f7n\�y���]���_���0~��p�Yguk��B�<0s�1�s��\���N��Z� @������f
�?�������+�>�) 5SS_�W@.���� @�T(���h��I�&����:�w#�U^xa8����{{�9��SJ�W=]/����[lf��U>U�w�m�	q���
�y�|�h�������l z�%@` ��@��K�@���fI�����E�s/����%� @���(�j���{��'l���U+������n
c����7,���a�����~�������
�v-����~�Yg�nEUK,�Dx�������7�&N���o>��p�����n�"@`����
�@�����������E7���n� @�Q@aU�|������/tP���SX5s�����W�{��'�X<5������{/�r�-a��v�j��_�2|�[��:W>�EU�>�h�0�=:L�0!,��ba��9��G	�o�}�c��c�=6|���/V�����; @��<4�[	���3 >7 �$��I��!@`@r����L�@���&A�� @��
���O����}�g�}��)Sj������N:)�|����g�uV7n\r\���F��	����o�r���],������>���M�y�����o��k�y�	o��F�{��������; @��<4 ��	�����o:7 �D�����"@��rQ���H�@��&b�� @��
��$�}�Q��~�>��^g�Wa�������B%��[~����i����Ck��?~|r-~&��_�jrw��z�0i���\�6��w�qG�j�����������krw��_�� @`��
���[@��7�	h��\�DL] �o���tn$@��rQ1uE� Ph�Um��N;-w�qU��o|:���g���������$�]w~������&�c���G�w�y����r�-������N9���8~����T�o�y��/~�\�������EY$�$`���>�4+Z��� @�I�5	R74, �4L�R��R@�%
�E
������PuI� PH�Um�����	�������k��6���[a����������.�(t�AI�Gy$�����q���^8)������I�'�|�j�s�9'~����Z;{��W���+�K���n6lX��h�%v �$����&s)�E)����������@�@
rQ
��$@�(����6	{��j��W.X���a��!�k!R_�U���{��{�eW5��u��v�m�m�������O��A�J��]vY�g�}�kw�uW�t�M��Z;��w^;vlri���a��W/����$��Y� uC�@��O�dn @ �(T] ���\�0�HA@.JU� @��PX�&a���;�{��b������Y7ZX����_�����Zh���o$}��s�!��.� ���?�)��X���SO
�|r������t`r�b��?�i�q��3�8���h�%v �$����&s)�E)����������@�@
rQ
��$@�(����6{��U��PO=�Ti����S�}mg�qF8��c�f�����.[:>��#�Yg��\{��w�<�����y��B��`y������{�Y:,Ze�h���f����
�?��iO�@rQ��$@�Q��Q1�	HC@.JCU� @�EPX��Qo��j�%����ji��l�I���{���;���]s��V+���~a��	���>�(:49���������Z+�t�E�8�t\��;h���fM��

�?
������PuI�@�rQ�dn @ �(T] @�R@aU������y��7��5���-��2���?�S�'?�I����v=�P5jT�x��w�_}r��O?M�{��6mZXe�U����W���+����$��Y� uC�@��O�dn @ �(T] ���\�0�HA@.JU� @��PX��ao��j��3g�,���7V�7R�7I��|0�������w�=\}���K����g�y&������{�<��p�G����$��Y� uC�@��O�dn @ �(T] ���\�0�HA@.JU� @��PX��aHa�f�m����>.���p��'�~���&�Q{��W���+�k�q<xpr\k��'�k��fr���/N
���_�����_=��1�w�� @� @� @�H�-�XXt�E��dk%@�MPX���u�ha�
+��{�����_�p����9��F���:*i���/�%�\�t�b�Uy{�����s�]>��?%��z�%��������|�t\���~�(���[ @� @� @�PXU��[24E@aUS[�I��U���Nx��GK^z���/����?��p���&����������t|�q���N;-�VYt��������,l��v���o�=�=�t\���~�(���[ @� @� @�PXU��[24E@aUS[�I��U���{�����	��3'2$9����;�[o�5�Ty���_��{����>�]w�����E]:���R|���Q�J�E�/A�C��&	��������Zk�d�����?��E�(iC�@�rQ���'@���%m @��-���o�\�h��j�������N�?��r�%��v�Yf�0}����
6� L�<9i����I��v�e������|X���?����k���n6lX��h�%v �$����&s)�E)����������@�@
rQ
��$@�(����6{��Uw�qG�j���U�7D�����q���^{-,������:*�q���[o�X`��x�=�W\qEr\k��Pk�5���^�����"P�S��j ��%@�Q��Q1�	HC@.JCU�4* 5*�=i�Ei��� @��
��<��V���{��_�b���o�J.�k��3������v�ma���.�~���o����+9����5�?���q�N���z����:��#B�r+Z�k�O���
xh6PA� �_���r�#@��rQ35�E�@�������f
�E��� @�@�V�y�-����}����W_�����V=���a��Qa��Y����U�����C�{�N����N����>a��	a��������;��M7�4<�����Z�",Z	�4A�C�& ���~	�?�bsM����;�% ���M4Y@.j2�� @�
+����C����i���UVY�j�?��������C=��ca�M6I��b��/�8���~U�����?,�����W_M��O��s�5W����3Ko��,�3fL����{�;E���n�h���f�P�������- 5[T�G@.���{h��\�lQ� @�U@aU�G�?�Uq��{l8����V?�<����������*�Xdu�w��������xm���J��;�o�y�={v�2eJ�T�w��
�xk�%��:_>(Z�u�%@��@<4���	�����_9� �L�����"@��rQ��G�@3��fj�� @��
��<��-����O��g��<��>V[m�0y��0�|�����;�;��c�[�j��������m+Z�Y�F��z<4�WJ;�- �4[T�G@.���{h��\�lQ� ���?j�!@� �]@aUw��:���~��rK�~���^��w�=����3�t�'@�t�I������{�n�k��>}z����]w�U�r8���������������d����~�hT�C�F��'@�Y�O�$�C��@�������f	�E�������^ @��	(�����{�s}O=�T���~X`���2���6lX�\>���?)�:thXz���r�-��~��K�M�O�C����"@���O�M�H�@�rQ�f� @��rQ�M�H�@�rQ�f� @� PK@aU-� @�@�
xh���3m  �t@-�@�EDK �rQ�t��\�A� @��\(��EL�4G�C��8���������A�@��������������A�@������� @��
��w�&@�����CkY�@@�i� �"��E�%h��
�d�
   ��H� �����L�
B����,g� �]@��n���E�����rQwg�^@.���� @��)���3�jU PP�
x�&��'A0�\����<�Ey��9  � @� ��U�q�����f��I(���S��[4��	�E��	(��\T��[4��	�E��	 @������6
�i @��Z��Rq��,��,��A�@_rQ_B� ���\���1�K@.�K�u @��	(���I+ ���E�L�@G
�?V�"�vrQ����	t��\��a�(m' �]�L� @ �
�r�"@�����?j�!@��O3�A��@���
���f�E�P���*�~h���3�/�
F�����<��Ca��9a�%�_��W���@nj����{	�PXU�������fm>�'���O[���	t��\�1��m- �u�L�@��EJ!@�@�b!�[l�}������g�,�H��&M
���o���w�=�~��
�1�Z=�@��^�(��n�h[��6t&N���������#�h�^@.j�Z����:"�A���	�v�i���.J��=k�����_�m�Y�={v����Z=~�g���	(�j�� @�@�<4k}��@Q���F��	�K@.�W<��@Q���F��	�K@.�W<���8����������)�z������n���[��U���f�4W@aUs=�F�Z*��YK�
N���O��o�r# �&&B��rQ��o�r# �&&B�}��5+�7U]u�U�Z���-��������c���b�YV�z�nxN �4�UM��h���f���(���S��[7�|	�E����(��\T��[7�|	�E���� @�@m�{���T���o�l�=���������rJ����j��vaU����h'	h�����r���V�C����@���"G��	�G@.�O,��@���"G��	�G@.�O,������[���O7�tS��g��g�V�y����#�=f���,�j��Tv	HQ@aU���&@�Yxh����(�?e	��R@.j���	(�Ee	��R@.j���	 �9�~�i�od*o_����s�]>����?���^r}�y�
�N����L������_>�92�x�����<,����q��#�<��~��S��q�����>;9��{�>5��h�N��o�2tC�@
��@������f�)�$�y�O�������\��Q3g�' u^L��@;
�E�5s&@�@�^}��0j��db�o�y�������v���&L��\�<yrXf�e�����.<����q|��	'�n���p�q�%�{+���Y�@���1�4f����/^>�*�j���� �������
@����,;k# P- �T{8"@�5rQk��J�@��\T������E�q7*�/��_���"?����i���a�������o�����w������*��f��]��D��_���Y������f8�����k�Y�~�W4\X5|��0v���������,�Z5~i����LVe�l ����f�8����Owg�^@.����t����8C�@�rQ��F$@������'s��/,����UVOu>�^{m8��#�1�<����.�$�]w�����@U�N9�����{�K��\sMXm��J�U^h�����^
��{o�i����a�*�������W-��
(�J�W� @ [���6�	�?�Y�#@�urQ���L��gr�g�h��\�:{# ��E,�z��w�J+��v���'NL����������nKN?���!~������������Uy����F�@�
�7s����f�
���x���Cl��B@.j�0�$����:>�H�-����I ��E,��a:��C��7��D��K-�Tr\�y�����+�\>[n�e���K���vV�%�:�PX�
uc @���<4K	V��) ��I��E ��>��>�4 @ �(dC PH��VM�2%�3&���G>�����s�
7��?�|��������&�}�(��K�uZ!�����$@�)	xh��n	�S@���H2��2@6}
�E}i@�@rQ�� @��E-�������Q���3Jq_z���}����o`�v?�p�������i����C��������d�'@��
�Z�ol �d���;���������quM�@�rQ�T ���\�"��	(�@Q�b��;��p�Yg%����;�j�������a���K�<��p���&���d]X��'��_��W!���
<8l���!���-���I�=��#�v�i���O@aU����	 @�@���H�)�?)��������4"@ e�(e`� P��\T�FhX���U]���o�p�	'$�\pA8��3��{��'�����q=;YV��5��9>���a�y��gAaU]Lh�Um*%@�}xh����# ����W������t��t\�J�@crQc^Z @�^�"VE�1c��)S���F���7�S�~�iX���K/�T�6r��0i���~#����-m	�J@aUV��!@�xh��!�) ��dq�������
G�@M��&��d, en8
#P����'���9��@IDAT��v����
6� L�:5�=�|:�?>�����q�;
������,Ve�m, ����f)�����i\ @ C�(ClC ���\�#�d( e�m(
%P�����?,���I�w�y�p��g��O>9L�0!9��3�����/9�w'�������o�'�|���Zk�0h��^��/�`Y�/��PX�q�
 P�����Z%o\*��J
��J@.j��q	���*5� @�yE/����sL����J���O=�TXg�u��o�Y:�����/������d]X����m���^)���������Y @���<4��I#R�R@�%
�E
������PuI�@�rQ�dn @�@]�������6�FC������Y�������m��&9�����p�9�$��^{m�h����FvV5��-Y	(��J�8 @ �2@65���,N ���\�1���) �dq�������
G��	���m���a����V=b��������Z='V���
Y(��Z�x @ E�R��5�
�?���H�@FrQF��!@�W��W	�H@.��0(���	��'��m�c��
����v��
������,Ve�m, ����f)�����i\ @ C�(ClC ���\�#�d( e�m(P`���a�5������'�e�Y���zO(��WJ;�PX���� @�@����{z�z�q�����
E�@�rQ�4. ���\�!�� PP����;����LV���k��'&���QX�5� ��������O�2��,ClC P% �Tq8 @�ErQ��
K�@��\T����	�E-�7,
$��bqUy;��s��1c�������k�QG��;u�����&������
a��������w�I'�T��Mi������ �(�J(� @�������ch�U@�i���7����:+�VC�]��v��y�,����i5 @��PX�:{# @���xh�tR P���S'�f�* ���s��������T��TyuN� P �U
�� @�@�xh��1�By���"P,��X��Zy����"P,��X��Z @���V�g�g ����f����	�?����\��(�r���  �!
�@� �	
�:!��@��%���?Z% ��J��T
�E��	h��\�*y� P) Uj�'@� ��U��s'����f��	(���S�P[(�\�E���(��\T�P[(�\�E��� @������6
�� @���<4�K�u�����/��E�hiK�@ZrQZ��%@���-m	 @��,���gW @�@�	xh�v!3a# �tL(-�@[�Em>�'�1rQ���B���\���3y @��	(��Q0L�T�C��
����
�?��s������/�+ �W�}4S@.j��� @��,������v�8�:.�D�m���	���h����kq�F@.j�P�(����::�G� ������
E����,ma� ��������d) e�m,z��z�q��,��,��E� ��
�:9��F�����p!�`��r
!Ph�����x���r
!Ph�����x @��&
(�j"�� @�@�<4ku�O���Oqco��$ �)�B��rQqco��$ �)�B� ��
��9z�N��xh��!�	�?�Q��^��^p\"@ 3�(3j ���\��K @�PX��� @ ���=B�G�s������h'����e�:W@.���Z�v���)Z�J� �g�Uy��� @��<4kLs�& �4�RG@@.�[	h��\�4J 0�hxn%@� P!����.hw��=��O�}�������$����i-�W@.j���9�N��:)��B� �J�U��76h���fM�u�?uSiH�@�rQ���&@�n��n*
	HQ@.JW� @��PXU�p[,t���f�a�#�_�'��13E���mk%�_�(��13E���mk%@�HS@aU���&@�xh�1��H����-��Z�oh�(��C�@���� @��VuT8-��.��Y����@��������_5��� I�H�e
�IB#r�&�n2b��]�ri*224�C��JQ� 3��R�=���g�9�s�����W�����z?������
��'#��&r�&�@ <rQx�<6	��6Y�� � �@9V���w@��/�"��@��?)
6CE �����!�"rQ���P���(���k � ����*V��� ����Y~�"����li
 n�� ����?[ZF���E�[q' � ��(����5@b&�K����"� �O���P���(����$H�\��`2b,@.�q��: � �@�(��T8� ��	���<?����J��� ����;KZB���E���M�N�\��%-!� ��[���t���#�$L��f	(�A F����"�`rQ�������(F���$X�\���24@@�@(�
���!� ��/����u�-@��m�N�\�5OB�����6\A���E�Y�$@@�dPX���2:@��	��,eg�DH���`�R,@.Jq�: E(t���R|�� � ���U�r� ��
��,\��@��?i�>cG :������ �frQ�������(:��' � ����*���� �d��,��P�� 6�B�����4\@��Eb�(�)@.�I�@@����(.nF@ ��4�v|�I �$9��
�����+z�@��EI�.cC >������"� �D[���h���!� P�/����f�P���!&M!�@������"x(@.���@�drQ�t|@@�
�288@@ ��4�w��=q ��9z������KF�@��Eq�}G 9������ � ��+@aU��<@Oxi�)'�!�@��"��| �FK� P���,nE��E���0 � �@�(�JY�. �@�xi���2:�,@��rt�� �'���(�����@z�E��5#E@�W��*}i@�@xi(7C�����.�&@.
��#��C�\��`B �F��@@&@aU��p@�-�K�t���#��'L}�������� ����@� �|"� � P��U���m@"%�K�H��� �*�O���`���(���c�J�\��p3X"+@.�lh� � �@�(��Y��. ��xi�O�k ����O]�F�B�E�Jq�)@.�S��@�PrQ�R�� � �@~
���p@�X	��,V���$J����p2b+@.�m��8� %*���
��b::��^`���h�"�R���k�N�W�^��k��&6l�F��n��VR�|)�����r��t�R�����f���+���m��U�|�r��q����������5�A�w
�|'� �'�K���yd
�2=8B�p�E���T� ezp�����q�� ��	h!T���e��VC����;�Xt���M�~��Y������x��E�Q��~~9}���M�6��k�ZM���Sn�������3Gn��y��7�w��k��%����\z����>����D p
�'�� ��'�K3�li����p� ��S@ ��(�W@ rQ0�<@�[�a���w�a����-�Z�l�t����]X��
^�;�V�[�N���
�2eJA=����\y����V[t?7!���U^j� �!��,��xR,@�Iq�: E(t���R|��@��E
]A(H`���2|���{���b
�>��39���E��� ��~�=��?)�0`�<��#���qc�����+\�����v�m�s�(��[��@P��fb�(� �dpp�!	��B��� �!@.���B ��c@�X�f��LU&L��]�������_~Y�X�YT�
UX��+��x�����{L.�����lT}���5jX����[k���#Gf�7v�X���K�9�[��*��i@�xi 6�B��O ��($x���@ $rQH�<@�(�3fX�P�V���=��������W���C��������Ua??��C>YYaU��9#����E�e��EX��7���{.���C�7
�|��a@���Y��<~ ��K@�(������"~ rQ�@@r	�����!C����>�����}��������d��A��0K���*�����b����+W����kz��kW3f�9��s�i����3���>�H��rKs�~PX��0�#� �/���Q �!@����B ��c@ C�\����$@.
	��"�	����Egd��-������~�At)7{�]��T�Z�>������Y����������U+y��G����zK���o��;�g�-�qo�#F���{���4'<����Z��d�kf����Z�p�m��-Z�n���w��������V�ZR�zuk���~�E����s������O�g���������m����l�2����M�e?'_a��i��_�~������r�	'��l;�G������KO?���l������V�-L� �(�K��yd�288@���E!��X� epp�!	��B��� �@�>��i����QG%���9����Q�;�\����4ib�O<�Dy��7���*u�5���?,W^y�9���J��@�����g=S���aC���UX�����}�"���^��]k����{����[n���y���`�����t�Ir��W�O<��]m��;���Q�v��0r����.���^�������Sn��&��.����S�-�3q�D�����e�]X���OJ������)����WZE@ ^����C@��?���(
Q� @.�7�Q E!
��(���
���u~�����u��E���c���we�m�5���)�YX�3Q������UGq�\t�E�H���G��U:#���G����YX����L�"^xa�Se7�p������m��*-�z���2������N��N��^~���D������~�}�������6^�I-��b3{����f���!��.@a���<@��xi�5OB�L�O�G ��(w�����L�@ rQ8�<�/�h���>Z��6i������&�&M�A��1�|��r����c���h!��
:T���kZ�<�����{9�b
��.]*:��)��R��&��*/���G����a�[Z�������5kD�q��e��3S�2���YX�<���7�F���f�*e���~�C�K���u��:T�_g����n��y����ViQ����.]��s���|"��U�0�@���Y0�<*
�*�p� o�@�����	g@ xrQ��<�!����o��&c��6m����Ss��s�]������+Z�S�VLaU���(����W]u��7�4��_?�����F���������/�/6���Z���Jg��{��c��6l�f�r��s�=r�1���ug�����i1�������o�m��������*�c��]�"0�C:�����>�'~
PX��.m#� �/��q `�?��Q�\">�F#@.2� �@����y4$Z ��UP]�N����W^yEv�uW��|�^�Z��k/s|��G����k�+�Ica��Lg�R��U�f��Y�t)E{�V��.��B(]��=�����i�������O�m���ek����gK�:u�9{�}��w�g�[��O?�$_|�<����V��+���M� ���U>��$ �a	��,,y���~ rQ�@@�\�o� @.�B�$Q ��U�f�������<X���o����~�*�����/Z�S����*]�Ng�Z�p��lOw�y���9�t'gQ���4f������U�'O���������������n.����KA�����_��W�����������z��4����	��#�p�b�@(�
��� � �/��q�) PQ��S��3 ��(xs���EM8�����7�� ���Vm��Qt&�+VX���^~��
A?������_����B����:KR�/�v"��UN-r�|���Z�j���_|��r�!�v�Z�����Q��'��UK�,��6�,������ob��KZ�dog�}�<��S���m����w�7���[�3V�om����K:��/��Z�y�}���*(i�� �@�4�G �@V�OVN"�@�����yd ee�$,@.
��!�@j�ZX�9r��r�-&�O?���l��/[�L<�@s|�y��W\a��	��J���%��3����u��1��|��6l�������6���EV��/��K�����e��E����Z��6*+��W����;���
�:6�1K��;L|�AsO���e��y���}���Z���M����b
�t�:�������e���S�#��U�r�0@����������?�m���	�����I �[�\���+ ��(8k���Hsa��pJg2���k����o��n��?�����Y3s\�N��Uk��)��,���k2)��J����'3g��
�
yXe�Um����S��m�9����j�}���(���{o�>}z������B����+�������[�_v�er�d����(�
Z��!� ��/�|��i�+@����EH�\4�A�����<\D���EA�H�@��4���w�Y�fYq�����������?�,���7�@�Z��i����Hka�?�`=��������U��}�V~��2q�Ds�g!����Y$VH�����W/��:�
)���
���?�����_�1j�(����}�'�	PX=F@�{^�yoJ� P���0'�B�E���:&@.*���@�_r������H{a��|�K�������C�2g�����}Z�.=z�0������j���r�����?��I��Z�ha���3F���������.�r�X���{ZK'f�����'�(o���u����7�|SN?�t3���e��@�V����@�X��f��,@�)��@�Gr���4���
��F�Q�\�#.M#�@��^X�~�z�}���o���N�#F��!Cd�����{��'u��1���]X�3m���?��S�.V�ZU��o?�R�J�����Y�z��-��
�/U��������q�����fjj���T�V-����Q�F���9���s�rg����p��>��S{7���+_a��~���97��K���x�
��PX�H�@<����4�%	�Jb�K ����cP�C���E%��%�X�\�1(�!��	���J.��r�0a�%R�V-y��w�m��fy��]���1c~+�#����zW���V]q�2~�x���7�l��dN�v��I�������{���>�>�,�����L�b���Wd�]w5���5k�X�k��sV��V:��s�����~�����#��U��� � ��/����%(N��S�w#��?�"\i� ��� ����WZE��j��?Fb��Ud��k����zK�;�8��K.�Dn��Vs<i�$9��C�q1;i,���/^l�>��C�Y3wL���.:t���S�N�n����*��Z�
����~��r�M7�������W[�ak��5��o�^���~�b=6�&@aU�"B@(C��fe��U(K��S_F��EA��%@.*��/#��G�"� i@���.Ew�!�d�7�2n�wP����SE}����s��2o�<��3���[�;w�ENzMc��C9o�t)@-~j��iF��=�\������K9����Y0�����k���������uky��G�F��;DI���(E�� � P�/���� P���d:��
��<��)(Y�\T2_D�Eb� �@��c���!C*�0`�8���BO���j���2q�DC�K��=:c������3�<#��w����i���h��s�r�*m��{�������k�>}����;W�<�LY�b�}��tVi��9���>[v�e������d��v�{�R��*/5i@��xirx<) ��8��	��"��@��E)>CG B���� �	X�r�����F6s�Li��I����Hca����*��u� ����9�kY�7�xC�O�M���?~�,a^Vm��AN8��3gNF74h Z��h�"Y�pa�5��]X��3f��/����]�
��(�
J�� � �/�@� �U������ ��(`p�Y�EYY8����q �@
���k��d�M�62u�T����4V)�����Y�
A��$-^s� �3^~����^Vi�k���~��������}�����+�m��*]F�Y�fK�k+�5
�r�p�/
����]@B��Y�<,�?���(
Q� @.�7�Q E!
�H��.M��U�v�m�I������>x������wu���������iSS�s�Yge!�F9���|����.]���:C�\ �[��%K�H����}Z�t�����.]�����{Z��o+���Q&M�$��~{�%�t�,�����������SO=e=R#C���s�t��o�����c���.q_(����F@G��f���T!��+@�(������"~ rQ�@@(N@�����O��O>�
���n;�s�=�a��R�J����n��G}d��[�NZ�ha��U�Z5�J��'@aUx�<@�xi�9)
"�@�����
| ��K� P���@(nC_�E���8 � �@�(�JQ�* �@�xi��3B�*@��jd�� �+����
�����@��E��7�E@�O��*�li@��xi89D���?�@ 
��(D�> ����DA�\�(�@@�$PX��(2@~��?K���<�E�����>�%@.
K��"��S�\��`@@��(�*��o"� 9^�E.$t���Rj�@��E��C 5������"irQ��C�@@b$@aU��EW@�L��f�	q� ��%K� P���-�E��E~��.#@.*F�{@@�-@aUn� � ;^��.dt���J�@��E��G 1������ krQ��G�@@"$@aU��AW@(W��f�
�}(U��S��C/�E^j��*@.*U��!����"/5i@@ �V�9��@ q�4K\H� ��&Tt�D��^�@l�E�	E ���D���!� �(@aU��<
@�xi��0�#�@.�O.�#�@��� �y� ���<)@.
R�g!� �$Y���$G��!��N��f�9F 2������ �jrQ�������(2��#�Z�\���3x@@(����@[��faG��#�^�Ozc�����(J��/�W�\���3r�$@.�R4� � �@�(��s��; �.^��@8D���?�Q� �#@.���%L�\5B�<��<8\B@@�
����V@�.�K��G��!�\�Orc�����(N���$W�\���22�$@.�S��+ � �@�(��rt� �E
���H0nG��?�Q��!@.*��"��g�"�(i� ���W@@pPX��`@����,����W�����s�$@.JR4� �7v��$	���M�� � ��Ua��l@<�����4��
��F�Q�\�#.M#�@������| ��K� � ����*U�f� �I��Y�#�����'���g�I�\��h3V�+@.�nl�i �)��@@�O
����m@��Y��<���P��!
��B��� `�E��Q�\">�F@H��U�
'�AH�/���`��'@�	��'#��&r�&�@ <rQx�<6	��6Y�� � �@9V���w@��/�"��@��?)
6CE �����!�"rQ���P���(���k � ����*V��� ����Y~�"����li
 n�� ����?[ZF���E�[q' � ��(����5@b&�K����"� �O���P���(����$H�\��`2b,@.�q��: � �@�(��T8� ��	���<?����J��� ����;KZB���E���M�N�\��%-!� ��[���t���#�$L��f	(�A F����"�`rQ�������(F���$X�\���24@@�@(�
���!� ��/����u�-@��m�N�\�5OB�����6\A���E�Y�$@@�dPX���2:@��	��,eg�DH���`�R,@.Jq�: E(t���R|�� � ���U�r� ��
��,\��@��?i�>cG :������ �frQ�������(:��' � ����*���� �d��,��P�� 6�B�����4\@��Eb�(�)@.�I�@@����(.nF@ ��4�v|�I �$9��
�����+z�@��EI�.cC >������"� �D[���h���!� P�/����f�P���!&M!�@������"x(@.���@�drQ�t|@@�
�288@@ ��4�w��=q ��9z������KF�@��Eq�}G 9������ � ��+@aU��<@Oxi�)'�!�@��"��| �FK� P���,nE��E���0 � �@�(�JY�. �@�xi���2:�,@��rt�� �'���(�����@z�E��5#E@�W��*}i@�@xi(7C�����.�&@.
��#��C�\��`B �F��@@&@aU��p@�-�K�t���#��'L}�������� ����@� �|"� � P��U���m@"%�K�H��� �*�O���`���(���c�J�\��p3X"+@.�lh� � �@�(��Y��. ��xi�O�k ����O]�F�B�E�Jq�)@.�S��@�PrQ�R�� � �@~
���p@�X	��,V���$J����p2b+@.�m��8� %*���
��b::� � 1
�"�� �@9�4+G��"�@9��r��.x%@.�J�v@�rQ9z|� y%I; �����/�?����|���o�*�V�������#� PQ��fM8����q�) �_�\���� ��(g����E�}�� �@�6l�	&��W_-�Z��i����$�G��
PX���-@J��Y)j|� �x�H P���\A��^���P�
(W�\T� �G@ �����+O<��u�U����@�(��{�? �^�90�E�@�?�r�0�!@.��iT�\(7C���0�F@�#��N;Mf��i�Fa�G�4�@D(��h`� �����5��^��P�
(W�\T� �G/�E^(��+@.*W��#� �_����>\E IV%)��@ ��4K�OB ��F��@�!@.r`���	��B��� � 90�E@�
�|@�I"*@aUDC�@(E��f����B����"m �@���r�>x!@.�B�6@�\rQ��|@�)�q�FY�f�u�Z�j���[[�6l��^{M�.]*�|���������N��w_�R���	�6�|�MY�x������w�Yv�m7i���T�^=��|���,Y������M���4o�\j�����������>�O>�D�-[f��I�&��qci���T�Z����Y�z�������Oy��7�K��)S�X�����k;����f��>��zn�F����E!����m���j��/��_|Q��_/:�<���2:���To����n��L��X���3=��V[�f�m��+�����p�B�S�����{��[n��;��r5��~���;����E�4����.
Y�n]�Q}.Z�H���7�|s�g�}�������o��~���Y��uOe
��SY�i�NaU�"�x@-�K�D���!i�O��C�H��(5�f�DZ�\���9R#@.JM�( ��s�='�{���U�^=�;w�L�6M���
Y�jU�>����2~�x�e�]�k�>��\~���b��
�����r�-��~����I�7|�p�0+�}z~���r�y��,<�����������������������iWe����u�����_/&Lp_2�g�q�e��3�6-�j�����������ce��q���h����^i��M��B������o�Z���w��[$�}�>}��y����#F����i����o��k�:/��C9Dn��f�x��t����./����3F^�uG�w�;�8��_�jZU�����v�mVa��������'W^y����Sf��i]8�����6��i��M��gPXeK�� �@xi�� 2b*@��i��6	 %,���
��b8��@��E	(�A��,^� 2}�;�x����o�Z�34��E;ZPu��[�����RS�N��~�����?���5�����+W�9��Si!��{:��>;��A��
�;���y{�}-z��G�e���=:��^{���~����������������}j��pGg,ro���^�z�,�������
w��c���n����y-�:��#�q��?������O�K��3@���_w:;We��N��N:��
����3T]u�U2q��
��:�}x��E���m���?����.e�k���|����3s�������{����.�"V�+@@ A�4KP0
1 ��,`t��
��X��@��E1�E �����a!�@����L��9;P��j�{G9���}����*��tf$�=h����3-����M���6mj-�����S�N�LR��������������>Og��%��/_n-��no��Ar�Ee|/[!��n�����k�����G�|�AY�U��K��~�������y������Gy����������{;���e�]w]FNg-r����+�X���s9�9�����_v�*x�+o]f��C5�����U0fN�v�����Y��:�(�����]j��C3�}A�u)F��.K����d'�p�}��Y���I�DS�M��hJ�d��'����{�{���wu��=z8O�b�k��*��������l�U^�d{f��QX��_�GH�/�N�@��?�
�E �������!+rQ��EgH��(��e` ��U�5j�t���*�+�
��`Dg0:�������>����0�v������.����9����z���QZTr��w����j��g��?_�W�n��O�?��u��uV+-�qn:������B�lEN�D��4[�V���
��������O��mK�t&������u�A]v�Y�u��G[����~��U��K�?�|�����h��N�}��5�����_��z��������.3�tyC���ry�4���r�zN��M�t�,]Z���7�K&:�W,�Q��x��)-�����V�j?�*����}�M��p�t����K���9���.F������t/�����K��8f�*~ �$J��f�
'�A V��X���"�XrQbC�����(V���$V�\���20Y���M���k+���/�P�L����_���/Gyd�9=���DT������(t�B����o�ey������6��g��^����v���M�r�����.�(�����=��#�]w�9�?z�ss>+Wa�SO=%����;L���J�*���}-
��*��{��
���������^)'����k��KFj���e�to���uI���}�]�l���c����0_�b)]p�m�5��;Z|7p�@sJ�p�%���bu��SN9�|����������.7�t�9��5Kg4�X���h��s9���k:�1�cZ���*�}2��%��U�@H�/�L��@��?1�E �����a!3rQ�FwH��(��eX ��U��@�+{��������{�\�M��;��S�%�,EW_}�hQ���E�]���%�
h����eo/���������?� �����K��}�'O�5j�s���(��1;��������������B
�t�9s���fz�����Q�{��}����lA���������S�������K�l�7��I�����E�������_���������c����]ld.���q�F����)�P��>0���b&L]�P�l�e�4h`�s���=[t�C{�����?����Okf1�����t�����bEwa�������\>7	PX���=@b/�K���� [�OlCG�H��(Q�d0�V�\���q%@.JT8DH���_�q�W�wd�t��?������\z������EA�����g����lNZ����[��*|��TZ�\.�]���gO�1c���k]t�EVQ���oo��SYa�.��Q#�T�3s�/;���t��^x�\v�������[��33�M�����k�����{���}��3�<c��N�~z�{��w�yG���k�Q���u�d���2}q�h���YH��O��n�;�����,f>��}������������U^����s��U�,�C@ ��4�}� ��6tt�D	��N�@l�E�
G Q��D��� �@�(��5��{�}��Y#�����n���NZ��m�Y�?�ps)Wa����-\Y�r�,[�L>��cY�x���??�`���]�3q�D<x�}9�s�����WtV�}��W�W��q�}PYa��xG������6���U��m:�j��Y��65�l��hRe��4i�$�m�xk�����t�����K,�u�Y�X����m++V���i�O�n��N��8�'������-
�@IDAT�:��.io�,��U�b��g�\�z������g���?���a��w��V�e�����d���_��������U^�d�C��QX��_�GH�/�N�@��?�
�E �������!+rQ��EgH��(��e` ��U�@�F;����F�]X�^���%]��c���T��*��g������s����c3_���.��"��o����*��D�����z��!Z��m���J�z��r7]V�a��V3�����?_.�����p/���_N��t�>���-w�T���E�bon��n�)�Mg"�u�]��K����;L<�qt>���J��tK]���YX�KC����.4���?��gS����>�gs,Ba�@$�K��� 3�O�FwH��(��eX�L�\���]*@.Jh`�.@a��!x��'�u��Y��ua�K/�$\p�)*���'��U�mS�L-��gI��g�����O�>.UVX��O����[�{���6m��j����� �����3�8#k��V��=z�h>|���s�F-�0a���������nk�5F����9.u��k��~��Y_/��~�'�|b�,X`�����y��+ga�{��k��F�>���m�:� Y�t�u�,����~&��(��d� ����Y�C����'����$J�\��p2b+@.�m��8� %*�"$@a������=������Ai���4k�Lt6]���g��K/������Jo����}�g��2o�<�=���y��f����J��;��S�wt�A����B%;'�p�����]���\E_zs)�U~ykQR�v��H/��"4h�|��wV��"$]B����2���{<�{!�H��r�����n�8����������X�P���ETZ�������-j���?�(�v�u]��,�Z�d��o��\����7k.8vt��F��3��*?|���1V
v@��/��CF�@\�?q��F Y��d��� WrQ\#G�H��(Y�d4 
�~�EP�U:t�(fi�����CZ$���[W�a�R�Zldo�
��{��U�V��Y��"+�����Rt:��s���j���r�����UW^y�9.e��� ��H�P��;;���u�����~������s�8J�|��g��3�4]|��2���/h��=��.�8}�t�RI��8����*�%-��.)y�G��;��<m��gms���������5�B�_�u�����*��k����U��*~	 �$H��f	
&CA f�����"�PrQB�����(f��$T�\���2,]���_CDa���E��tY���k��\v�e��9��3X���^�����I�-�
�z��)��U�o���gk������y-��+{����]@��`���?����|������?������^�zR�J�~���`'g�^p�]���������/��9���B���:����~�^������X��b���G��[nif��Xk��q�c���M���V��\�O�}i��i�����S��?���}g{:���g�[la�^�S��2�z�]X��O�pB(��G� �@�xi��`2b&@��Y��.	 %4���	��b0��@B�E	
,�B����j��WC����z[7�����>��S�`���c���������u�Y����q��k��o��qIg��7mC�	���;���d��=��S��������{��������4i�z����9S�Y�:v�(.4��"��m��c���5k���������L1Y�A���{��~�.Y��U+���3xia���[o��!2v�X�V��.��g�q��ug��q���/�~��������k�e�z��-�?���EG���{<���=z���;Z���#g������^�>������U�@H�/�L��@��?1�E �����a!3rQ�FwH��(��eX �@HaViaJ�^���u�]0��n�:�B']^����Am���N��g;��c����2�A9���Z�������3g��&M����}�ZK���lK���~X.��b���=��S��)�lKW_}������r�������j��)2_*p�k�l�����}���>��~��v�a�S��~�O:k�k��V��U�W�6��i4�/��BF_��"'�6x�`�����m���E}�j��Gy��7jQ�.9�E���]X����Y��*@a�@$�K��� 3�O�FwH��(��eX�L�\���]*@.Jh` �@�U�}��)���=e�9���C�s���2h� �5kV�y=�8q�~�����~��*fq�hu�g���e�m�1��������������e�^|����u���{���E_Z����������7���/s��1�i[Z(��eKsNg������1+�^|��g�E��>?���6�v��C�.]g~���7-���
6,��H��t��O<�|M�t���s�3t�P�B8{+���t��q�WX�V�Z�nR���+�P�9�}������/��>�>o��F3fL�9�i�����u��| ��{o�����J��'�SXV�C@@ A�4KP0
1 ��,`t��
��X��@��E1�E �����a!�!	�QX�C���{��-�j���hq�;9��<:{����i�������g���M��o/;���������~�B���w�t��9�{��v��1"��}�m����a�b"��J��%�^�u�D����hA�s+� ���B�����L���z���r�)�n7���L�����W��5�S�5Dg%[�b����t���*P�^��9_���Q����L���oP��������s�G�}��QGe�D��t<�[�V���m�
�������^��*��g� ����Y"������'a��$^�\��3@b!@.�E��$� %>�T ����?�\=��
EG��6��_�>}���Z�]���,A:[P!����K�i��{���t9��k��/�{f--����/^\��l'���}�ek;�9?����Y��K:�������[�o�p���Y���X��3MM�0�����:�LX��u���d�>����W^�'�|��2�������������~����.��wos����}�+�=>7	PX���=@b/�K���� [�OlCG�H��(Q�d0�V�\���q%@.JT8 ���3�g���O?�t�Rv��/;����������>������Y�����s�s�1������_Z3i�L�Mg~���-��e�y�s�;��c-�fN�����oZ3��-�A�r�XK��LV�6mG��.��6�w�}'#G���z���Kv�:����3Ye��B���M������}����������?��rq�S��.���nw�{:��.���?�A������}(�Q��?~�U����N�t�C]��a���o��$a�Y�������V���t6{�l������~�>��������C��sZ������n�c
�� � � ^�%(���	�b0��@B�E	
,�B f�����"�PrQB��@��^�Z�/_.K�.-ri������R�f��U�@f��E�d����F�YK�m��vE���g����+E�����:u�����E���e[m�����w�����m���~x{�E+fj�������������^�T�������w�l�2����W_�.��b�����������Gi�=z��|���8���5h�\}��y
��A�� ��C��fv@ P�O��<r��r�p ���@ ��(�@@��n��6kf*-l��Y�������n��������m��cv����c�� �@`�4��!��K����B ���C@�%@.r�p����Ba�� � �@�:��.?ho�'O�:���:��!��qNg��|��3�q���U���: ��
��,Pn����]M�\=F�����.�&@.
��#� �y��y�����g����I�&�{	J]j��3��7�x��{�����w�m��	F���`�y
 ����,f�Y�?YP8����'�� �E�\��S ��(pr� �$�f������X�"��n���.��"7n�%K��O<�q�V�Z2c�i��a�y����c�� �@`�4��!��K����B ���C@�%@.r�p����Ba�� � �@A����q���7iQ��q����*�;����U�Y� ����,��R+@�Im�8� E*t��
��Rz�@��E�
�A@*��Tw�u�L�8��5����������~�����(@aU��<
@�xi��0�#�@.�O.�#�@��� �y� ���<)@.
R�g!� ���\�R>�����O��O?��U��;� 
4�v��Y�U��:��B��*/i@����,"���P�����3d"(@.�`P�) �0��
��"�� � K
�b6:� �@v^�ew�,�/@����' �@������� �o�@�rrQ�F�� � �@!V��= ��D��f1	�D ����!!CrQ�F�H��(�AeH�P�\���e@@�H
PX���)@J��Yin|� ��oH P���|CZ@���E���/@.*��@@P
�� � � ^�%(���	�b0��@B�E	
,�B f�����"�PrQB��@@��*pr� ���4����@ ��'�W@ rQ0�<�����p� ��S@@�/@aU�c�@R$�K���"1�O�BwH��(��g�DL�\���R*@.Ji�6 � ���VyNJ� ��'�K���y2i ��������(q��]�\��_�G ��h��^ � ��_������ � `xif(�A���?��8�*@.���IX�\08�C�����,�D@@�h
��&� �DW��f��
=C ����G��!rQ<�D/H��(�f|�C�\�8�K@@��PX��C@
��Y�T���<�9(I�\T_B��E���$@.*��/!� � PA���
$�@@ ��4�o��9q ��=���d���GF�@��Eq� �G ��d��Q � ��/@aU�1� �x&�K3�(i� �	�� ����VE�"�EE�q;�"@.���F@@R(@aU
���@�+�K�����!u�O�#D�H��(qf�D]�\��?�!@.JG�% � ���V�o�@L��f�Q� p	�\ "�@(��P�y(��E.@ rQ(�<@@ �V%0�	@ ��4Ko�9a����G �;@�(������"~ � �x#@a�7��� �@$xi�0�	R)@�Ie�4� E.$t�T
��Rv�@��E�	B@���U1
�F@ �/���p� ���3@�2rQeB\G� �EA(��L�\T��@@(L������@�X��,a��$R�����2(b'@.�]��0� %2�
��	��b2:� � Q
�"�� �@)�4+E�� ���/i� �+��@�r�����
����� � ��*@a�@$�K��� 3�O�FwH��(��eX�L�\���]*@.Jh` � �@�VN�@�O��f���2� ����*#@.
��� �@~rQ~�"�@0��`�y
 � �@�(�J~�! �@�xi��`3T"&@��X@�) �4���	��"��@J�E)
<�F@�\��*�Ii@��xi�=OF �����?� E#�������`�DC�\�8�@@��PX�2@�/�; ��'`p�Y�EYY8����q �U�\���� � �-@aU�d|@��
��,���g$]����3>�!@.�G��%I %=���x���'z� � }
��#z� �@��4+��@�c����4�%	��Jb�K ����cP�C���E%��%@@*PXU�� ��W��f��=G ����G��#�rQ2��(���(���$C�\��82
@@��(�
?�@�xi�%
!�@���"��| ��J� P���H0nG_�E���( � �@
(�Ja�2 �@rxi���22�.@��z��� �#�������!��@:�E��3�D@�_��*��y ��	��,0j�.���CE�\
;E����!�"@.
���"� �$P����!!��W��f��=#G l�O��� ��"~ rQ�@@�\�o@ �+V��E�I�*U�]�vR�z�����k���
�Q�F��n���F9_
������"�@��U�!� k^��:|t�X�b>:�@b�E�	%A ���X���#�rQbB�@@�T	h!T���e�������w��h�i��I�~������Kn�����(�a?����]�(@aUE� � [^��6tt���bB�@"�E�#�@ ������ �rQ"�� @��	6L���3n������e��I�N�d���V;AV��|��x&@a�g�4� �@��4?���
��y��@��E���A ����F�q#-rQ��Ao@*=z�><�F�������>�L�?�x���-�����o��O�V��*o=i
@�Pxi*?G ���T���#rQdBAGH��(��g�DF�\�P�@�J��Y#:S��	*���ZX���/��2�����
��~~<N ��gVyFIC ��/�K��c@H��'��g�DK�\�x��*@.Jk�7� E+�@ ���3�b�U�Ve�A�>���j���2t�Py������waU���:hN"���Vy�Ic ��+�K�p�y:i ��9�������z�@��Ei�>cG :������ �T���+C��G}��E���,_a�������A�$Wa�6�gaU��wP��>
PX�#.M#� �/���y `�l	>@ LrQ��<lr�-�'�)@.
S�g#������Egd��-��B��rK�0��?� �~���^�vm�Z��9������5����{�)�Z��Gy������~�����3{�l�������?p�@1b�9��wok�As���������+e��%�x�b����E���fi������n����������o����l�����n�o����Y3���������/7n�f��Y
y���ke��
V��j�������u�D�]\�l�5�v��I�:ur>��\�}�����{�����E��v�����n?����?��l��d������[9>y���Vy�Ic ��+�K�p�y:i ��9�������z�@��Ei�>cG :������ �q���ODW����������>����Q�;�\�9s�4i���x����o�c�U��k���~X���Js>_a�fi�����W�z���a���i���*����Xi��������!������[n�����\z������S�<��U,dNd��B�}���\9����>���������B/�5=n����|��r��f�l����������n������o��Fkf2�B�.v;���{�����S��v��5J&O�,���Hp��i�9��q����V��K� �*�K�@�y8�?v@ 4rQh�<�"� ��(4z�	�r�K�����k��t�"s��1�x��we�m�5����Gg��}t&�^x!�6����#���.�HZ�nm]��?�Qta��4`������9(�����?e����3\+;����O�>���^zI���?��s�=7��\p��7N���*s�������;�c�K�����Ns.�����/�\r�5�����:H�.]j�����L�8�}�u|�u��Yg�e�{��|����SO�������Ai���hq�nZ�6}�tk��/}������U���: ��
��,Pn����]M�\=F�����.�&@.
��#�@���w�|t�u����J�Qc|���I�d��A�:�����n��;:{��@eoC���}��������E(���SX�73f��SN9��RtAV����>�H=4��N�:u�$�o���Y�F���`��
�2���2{����)�Y���!t��\�Q��7�����}]���>�ly����C��^�Q�|�M3�}�M�t�M���tV��Yv����r���s��Yv��}�M�6���j�����*���'�s9���U���j�t
�+VX�����;�������R�Z��I0\[��faG��#�^�Ozc�����(J��/�W�\���3r�$@.�R4�$I ��U�|��4o���Q�J�N�j��;��s�<�������sEv
��)���^�Ua>_g������_�~r�e�I�5�S�����P�/6���V�1Bn��6s]�c<�����s��>��?����^{�����W^�?����X�ti��N:������{N�;�����l�f+��%�t)-����T�b�����SgS{��Gu��t�B]
s�=��O������0���
���1�`�w
�|'�I����d����t��q����_�_~�l��f��#�����VE��? q�.@.��� �@����| �N�@ �i,��P��s����i�����j����W�^{�e��>�h���{�qe;VU&$�6n�����#���V���������?�(����[o���=�Sg+5j�9�����x��W:c������\��mk��;�"-�c�=fJ����t�=]�p����o1�~�hq��/�lf�2�eGg�b�U�V����*?|����]��*��y@R�?t�CM�����;N&O�\a
�|�� P�/�J��{ P���\A��^���P�
(W�\T� �G/�E^(� PQ ��U�f��������K��������]|�����?^�<�Hs\��U�	���3Gt�)-`�B�;��S�?���_��g\��]e����#����l�.����[f��q�Fi���)�Y�t�){�e�h���<�L��_�jf�������{�1�t�f���cwa���3f�27������K�go�T�s|�y�S�.������U~�������U���$
����Vu����Q�FV����a�fM�Y�N�$r0&��/�"��@��?)8�E �����n!�2rQ��p���(���[ {��ViQ��(�b�
+��$�����t���_�:�����?_�W���-�1�U9i�^X�~�l���R�Z�����_|!�r�Yv��c�����;�~��Lg%�7���9�W_}U�u�fN
6Lz��m�uf2������h�g����#��r��t�}�Y��'��U�.+���jA����^j�k��������=c�>���y�(����S �S:�v�t�"c����v�I4i��=[��w���F��+�����	v@xi�*M"�@A�����	| �L� P��� &nB��E>�<�V ��U��#G�-��bb���OK��-���e�2
i�;�<��?Z�ta�O?�$/����g�M�������Zn����
�SZ|�EH�6/���D��/��K�����e��E��P����V�]�V�6mjn�%�4�m�����C�S��������_u�U2n�8s��o_�l���>�����W_-��s�9vV}����Z�;��������p�=��~'�=�9���������u�(�����R"�S:���*��r��6���x��`�����zk�"�=mb��8@���Y��|J ��L�@�Cr���4�%��J��� ����CL�Bi.�rN�}��r�5���o�]t�4{s/�f�����<W^y������������Bw
-l�U��K��k��R�v�|��kA=��>���f��iT����VX�����y��[������~+{���i�����������i��&��r�=z����M���V�Z��i���|;�������+U�[�B3���Sg����tsV���|6��
PX��/�'P@��q&m-����~�u�Z�}�1��k��������%�K3�di* �T&�uB�\�2�@���E�	q� ��3@ �i.��x;�G�W����7�����o���S��QX����wv���r���O>�yS�#���U���\�U��L��Z$��gO��_�����/�/��?��?����*�BGq�L�0�|����G-��^��+m����������m����ewa�s,��_��B�QY;\/^������F�t�?��TGu�L�>=���G��;�h�<���)s~� �@��4+��#�@������"x(@.���@�drQ�t|< y�IS ��C ��US�N]���&O�,:t�9s�H�.]����C�L6Aa�!��cVm��Qtf����=z�M�6��Ek&.-��?��7]�O�\�U�����[���^�z��@�����:��?����������+����.�������H�Vy���>���4����l�}���g�}���.���'[8���U���jB���+Zamo��z�\|���a��3�8C�?�m��uR�fM��O@�S^�y�Ic P���,nE��E���0!@.*�[@�7r�o�4�)H{a����e��w7�]�l��2d�;v�9��{�I�:u�q�;AVi1�����O?��b��Ue����*U�����X�R��<_WV�����(������n��I����Z�j���e���+��w�q�6��z����F�����2x�`s���^J������~SX���{v6��l����,\����]X��Oe���wVygIK)������3�4#���#�<�g�9r�0�\��m�peC���������
Q��[�\��0�#�@!��B��� �-L� �V��Vi�/��r�\[�Z���w���m���}�v�*c��)�'taUI�,�K�V�T�[������o�YN?��
��'>��S+>�q���>��3k�+��n�A6�|s4h�}J^|�E�c�=���s��w���_o��)S��4��v��Y#3g��m��Fv�i'i���U�e�[La��.��t��f���]����sV��S���M��*�hi8�����W_m������07����c�Y��9=>����C>@Oxi�)'�!�@��"��| �FK� P���,nE��E���0�\@�VN},2
5�.-G�V�T� �z�-9�����/���U~�m��Ir�����E}RXU9�.��x�bs��~�w�����K�j������s��g��2c��r�v�d�-�����D�%��y�����i��C��z�g�=z��l�}M�8���K���f���e�����o^-sm��C��]X��O��p�{
��7��h"���[�����z���q��W^yE��oo.�7Nt}U6@�^���J� P���%�A��E~�>"@.*D�{@�or������W@����gq��Q�^=ki�����������r���;��y���:cX��u��s'��x�<e����.���?f����{����.]j.k���'�l��;���X��]kN��W�u�]�q13Vy���Cs�1��F���P������o9����C��]X��O�9�U��*_yi<ig�}v���?���T�Z��k����M{�����|"��
���SNC�"�?E`q+�&@.����@�rQX���	��|��a@�_��+C��`1`�8p`�������r�����������0��Y��[�~��I��w�9g��j�J�x*���w��>���Q�d��`��]��}X�S�����W�������_l-)h_�={����W�Xa����:J���~s�;�V���3w�^���SO�O<Qv�m7Y�|�<��S2~�x�-����JOz�S����M��*�hi8�Z�;y�d34���l�?��h����3^���!v�{woS�?��m*d����*R�R�JB]*�Q�H�k�*C"�$t!�����$�"Q���n'2��2d���{}����Z{8�������<��|>��>���k��:{����D�C�(T!�@�p��f�p/��� �#��r��� �@��2b3 ��)	���S�����>/^,+V���������-[6k����+�s�9�b�
�_����~k���������]]�u�]�36e�t����5� �%JHjj�h��3�.]�
�*U���:S�U������JJJ�k\������8h���U�8�K.�[gp<�U�����/��=�����gOS&��)��f~j�dF��Of�h��%��(�d�2#��(3Z�E���^�]��� `�i����.��UK��}���W��c>|�5KU<�u�%
v8p�i��w��_���]jP��s���~[n��gU���x5j�(;vl���J
�={�5�w[ff��}��e�����sg��\e�\Eg�����-����k�U���l����M��G�?t;�8qB���k#�~��7R�F
�m����K
�@���C��P�O�G��O<J�A���^������p/�G�6 �����[��@t�9
�����l��.f���7����{�}���[k�#Sg�J�*f)�v��������������_�c��ys��6l��
���7m�$u��1���o/0�H����o&HHg�����$_�|��F����u|:�V��U�L����/�
��Dn��fk�+���Y3���3J���q�F����E�k�����j��5�\#M�4�V��[�����YCl���L�0!�p����9| ��wR:<������=x�`����|�r�]��]�3f���z�I�.�$@@@@@@b	h ��#!���#p��q��m�l���
�)V��T�\Y��-+y��	���u|?������O��)c�O_c-Gx*�O��3��U�V��/dx���pP4 �*��
�<���2t�P���_~�����r��N]�����l�;w��j*��!�*�p�� � � � � ��2�r��t@��>��SkIC
T�P��<��r�y�E�s�����Zv�y-�����_����_#F ��S����\�l�\��1G8n�8����i�3X]w�u����UY�c?@@@@@@ w	X���7g��&�K�h��t��K����);3G�]:�^P���3GtF��!@`��q9����/]��N�2Ey���G���%%%�����?����2e2 � � � � � � � ]����.s
��O>��U���4�j��!2y�dS�9���u��m�Cs 29&@`U�Qs��A���]��N?�����kv1�k��Mt�F��Z�*b;*@@@@@@@@ �:���y�\i���pU�`A��c�,X�@v���j��
6t�QHn����1��r�-�p�Bs�={�H��EM���e�j��m�tz������ � � � � � � � �@�8 ��5�����6p�@i��]��i�V%�ub��:u��i����m��2q�D��7����N�k��X����M�R�J�L@@@@@@@�'�w�^�6m��7N4�*Z�W��t��]t+��'@`��wM9�l8t��T�\Y�n�j��K�?^t�?M;w���M����Z�l)o����� � � � � � � �[�����v�Z+F`��m�1%K�����YS.���`��;%�N���s��������n;�F�Y��K�.um�����+�|���z
 � � � � � � � �� �*���Q%��G}$w�u����?�h�=�\���/�z��1��@@@@@@@@ 8V�Z0�$HKK�:���#�������zJJ�.q;� � � � � � � � �� �*���Q%���c�d��
�f���?�T�PA*U�$E�M�3a� � � � � � � � �*@`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@,�f���k�.\Xj�����<xP����~�?�|)_��)R$K}�N~�����#d���'d��m�y�f9��s�b���}(�<~������[����)#�K��jw�wY;"�@�	�����;�g�
��7��-+y����1��w�����g�R�J��^(�

LY;"�@�	8p@~���x�7���2��~������m@ yx&J�k��@@�'@`U��	#B�E?���T�P�:c}�/3�>��Cy��'e���a�5i�D���/�^{m��h~��8�#�@b4������a��E�o�,YRn��62dH�_"�_�^�z�)�5kV�I��QCz��!�Z�
�������zH��,�}c���a�(W���m�V:w�,��������2y�d8p����3�I�v�d��Aq{��_���@��
��R���e����6l(}�Q\�������:	!�@�	����2r��L��+��/Z��������z@@�.@`U���C8m:$�5�%K�X����*������/���N�>,�[n�%f;���y06"�@B~��i���,_�<���3F:v�����c�S�N1�����[A5������v�y�q��exo�Qi���o�-����9H
��[������l��Y��\r�%1���_���'0i�$i���W��U~?����9!2 �GyD^{��L�G��j�������wM% � �I"@`U�\(�� pz	9rD���N�7o�9��Vi �~��M��.	�M�����u�]�jS��?�1����)�!|�������������L�6Mz��������-[�m�v��������'O��}����"�JH���9s���o���>��K&��/	�G+t���V�j@IDAT����+\��=�\k�?�B��4Xk��ER�Z5g�������$���W�Z�5�x��~���?�	Q@��\~���3�e&E������2s��E@@ ��)�I � ��?��czhf������_(!�Q|��������^��`-k������z�
k��o�E����"�JH�@hY-�=!\�Z�&=4[�Whi�������N�/�%JM;������0`@���{�&�@���_amB3��]�^����9���c��>]�v5�
��i����]����������>K��GN?y����>s��"\mj���c�E=@ p��������O�=$V�����b��m �8�{�y������C?x����/�q�<Ed�@@�����@b
;v,]?s~x���XU�NWK�.�x��C����5*b;���x*@ a��ow�B3�����#�x�AX�����j���5b���6ZZv��N&"%���t�@ ���w����HI����
��-k�����>GE����^�Z�re��v*@ ����w�S��KF�U~?���_���X@�E�������;Y���(�t�� � �@�V�MEC@�.�v���/	��i>���������[����Jgkp~1��;g����/�`��	-'��oL�4)�X������W�=Jg�s&
Rpn�\�r�BDK�_O��+u5��?W�@ 0����}E�!:SC�4w�\�V�E�������u�y��7����`4�������?e���P�~����
�������+��@`������������3���e���@@� 	X���X@NK����>0�?�o��y�s��x�tV{}�4����a�w.��s�<C@g�q�7t���R���]�8�2�/_������J�%���O=�������:�����gO�.Aj�Z�ls\���i��h��75n���F��b��~��^��L~����<W@�1.W���?h �34V`���0~�\uF�]�t1�
8?q�D�Q�~����,�;"� �  �t1
 ���)��<��H�_SRR�uF)
����	�r����=���K\8���9�&���e@��u��N�3z��(y��3R��1�}K_������sTh@�3����o� ,��;w���������9���g��3:s�3�������4i��1�
6_�p�i�w�c2 x���[����W�l��^�F
S+���g��<>D 8d�{e5���wY=/�C@@ hV��0@��N�X��c����7�st6�X�����`:ud4����s&��s�M�S�;���^�����+�����5k�����w�1yE���@N�=���?v����]�o�����
+W�t��v��?�_^@ ����g��a
8��*��a��/�����+��;?�������?������1S�LI�g���������r�U��@@N7�N�+�� �N@� <xp���[�����*�����~�O�\���O�v��?�_^@ �^|�Es��{N���]'T�^=�]�3�I�����������tL�N���~Kw����j�������^9��������;\�t�����w�c2 X���9�����k�o`���0~�gN�J 55��L��]���u�����9���w	c���~���?{��"� � ��V%�d� �I-���*� ��������t�
{?g���e4�#�@��_2����\��A����=E��'=��sf�S�m'������C�_���53C��m]�	�W��!---�D����j;���6�
]��~�W
��������������o$
��S��U~?����}>�"�@�f���z&q>�D��g9,;��a��/l�T � � ��V%��c� ���@f�t	A��l�>�l\w�q��O�m'������S@�-uf�}�~��a'S�\9�&���B/����G�����L3��3�A��x�,v��~m��7�|�uOY�xq\�������6������R��\�
"�7���g��$>�B�t]���L���}��7�s�.��L~?����s��@@Hf����1v@���L`��u�\��1"��o���k?{'������O@������Wh �`z�s����{7G,�?������M;��3�A������uop~q�y�/}���a�1a��~�{JXcGE�����9I&�f�����,�=�x���S�~"��LI�:r�@�&M\�!}�IIII���_��#G��H�F��7��~���?3P2 � �$��UI~> �@rd&�*55�����!C�:�{��������������%�K���[�u���-Z�Dt
��xg��~@�l�2������� �@�v����3k���;}������"�>�����L�b�C�}��%q�k� ���k04B�8t��k&���+G�/��*��a��/��9 �%P�^=�s���~u�������s����M{��a���� � �I.@`U�_@�� ���/+T��d~��G�j�=�\���F�1�E;����/� �<iii����3�A�,�z�/�6l��s��1c\������f��3�A�����m:�K�,������L�:��}���f[���O���N~�g��+K�{���{��+"0+�U<E���;v���j���QZ�����
s��:t�`6���wf�d@@Hr���2|@��p=eX�}�v��i���5jd�s�����@ 0+W�Lw5����t��@,]�+�4|�ps��8�����x�C��������/����`�w�}�����?�7E}=y��k���~�ul@��	�}�yO<xp���X��3���E=A6 �@R	����u��U�����0~�gJ@@�$���}�@B@��h�Bf��e9�����OQG��QB3N���/%%%���e.��r	Mom}I �V���~����#�@����'M�6u
,d%����O�J�^{��fx��dt��������5�.��={�h��V����A� �@R��3Gn��vsm���W_}�*��G
7�f��!���M9Rf���R�D	��W�^
���~�gB#P�T)��s����C��3�0egf��A��~�J���~a��z��K�~���?{��"�@�x�a'N���y����0~����� � ��'@`�@(���*���4�B��?�p�y��1m7n,|��)�����V`�����c����!���\r�%��H�Bq���f����%_�|�)����v�>~����!�@�	h�>���n���x�b�Z�X��e'
�r>�������N���*S5b�����U��?s2 ��D�2�����u�]gu��3�����y�/K�f���z�j3(��)��a���� � �I.@`U�_@�� ���`�xf~���[%�L�u����_�5&��m��\�r���������w�c2 H����'�t��^�z2s�L)V���>ZA���c6���J�J�L9R�b�����fmrGh���E:>u �X��~�M�,Y"?�����K�.��=����G��3�4M�W�.�I�L,P����������n��2o���kV�O?�Tn��f����E:>u �X��������+��@ ���!7n�]�v���y��7����Q*\���I�Z�j�n�:k��a��/��b; ��v��a�����������Gk�^������\|��1�f��D?;�)�>7o�,G���/^\�_<I���l�":C�E]df�g_� ��I��!�G@ ��7o�K�Z�B_0fx.�{�6�u���	c���[o���f�r���?W�@ P���\����n�:�������G����N�:5��[�nu����3����o� ���g������f��>z�r����f{(���)b>4S�i����������\�S@����U+=��?�s����m�������0~�gJ#��{���G�~�����{�e���}�~���?�`) � ���c��4h�^�L�_(�*������;����hx�l�I�����2�>4����~����o�I���������_�t���~���29* 9z4� �.��V-]���!���]�y��]�C��t5��?W�@ 0��-s��KB������������+4U�>4�����9s\�����9�@hY?�}@�2����������]���s�����'�����}���=�\�^��M~����2$��3��a��Q��3���E8@ a��������}*=4C��t����Oh9cW{��a���5X
 ��!0d����5Y	�
���
�����D?�lo���Xu������;���P��o����	�DX�u�� ���2X����� ���8=��Uygz����/�@�D��
���4��y�����)�)�����h�V�_����v;]��M~����2$^�����1c�D�W_}���h{�,1�chRW�����'�O
������m�{����
�
H��*V`�����0~��4��\$�_2:�69rd����@F�����j��3����K@�F�d����m�����Y��ONV%�����x��t���Nv0�
7�������U�!!����1@��@f�t�W_}��!�~��3O�I�@�/��i�������^����9H��/x������c��7n����G���C�'�>SRR\��^�b�+�J��?���]��?�_^@ 83g��o�}�l��0�&M
km��x��V���L;9r$�C��6�m	T�����+$�@f��~������g�����'��M���^x!�o�	&�����"%��a��/���C@�)�3Mk��3���g&�j���aAU�ONV%��N�D�3
��%��kl�����2C�Y}����v��"	����=��@@ -Z��Y�fYG�P�����O�"4���t�M
�r������J�>���k��$�l���.����/� �x�PP�,X����o�I�b�\������2��P����__B3�H����mZ?�|9��3\�v����~yE��t��U^z�%��B3�I���%�)�Y��s���K��I)P��k?-l��]�V�*���wm�}�-j�s\B��-������~�� T"�@�B�n���W[��X%}�Q�1���w1�FH�@hFq�6m�����o�S��?~\>������;��Sf���3�K� ��� �����~^�{�����j�*���"n�+C3:�����������=�P�������O��Ou����*U$�l��uhf^6l��0u�����4SZ�E�.R
�XOBK�M�]v�|����L�� �*'�9 �Q�X�]�i�v�D63Jm�����T�'O��M��/����9*�f�+��T)�J��e����+��C��X���w^��~��@l@��	h��>�L�>=�1�o���D�Q�kP�>O��.���S���X���b�m L��V���w�TfT�n�����9��2�:t����[�������0~�u�l@������4H�}���V�!z��50K;����D?&^7�
���]}��ft��]$4��)G��j���|������G
*dyE ���vb� �@t�{��G�y��A�j�d��u�{���:��F�{gw��:��=����Tew�wv��"�@���<w�u�)��?��hAQ������~�����V:[�c�=��~�6(*@ �:U�N��C�3��Q���,�=�rR���������83|�p��v�>�e��s�M�/���-_��h�&M$��D\�������:	!�@�
���\R�^=��,�7�k\~?���_\'A#@��	��:#���<���>����<h�&�v	�l�2lU���qr�UW��Ltg�M�T�R�g����
���=zX����?��h���)�����l�����i��=�a�"E��+���/�8�����;v�js�9�H�������'��S���;��|u�'��]� f���:6�>��_~}��u�q���X5o�<i���9�+��"w�q�)G������g;�6]A��g��wh�B��I�O<I��R7M���Yg�u7m��Cl��Qt��]��s,�TAgD�d����d����������������/R��k��=��-[D��=�����������O��^��g[�X�s��a�@�~�A���^z��S�t������s�UN
� �$��>�|����#���������~���i��_f�O{H>�#Mg��?����+Z�b�Q�,��/������i���!���,���~��A�YI����?�,���~��A�z/*[�lV��>����,
��@ ��~�����e����T����%_�|����*U��g:<��7
�������[�����5�)S�����:����v�����n'�A��+��5�T��������'�|���
�Z�t�h����?�|��(��, ��������}��'f)=�����2b�+(�Yo�������
���_g�~���e����������Fv_�W}?��u��HI���k���-����.����K�/��3�kpW��
��3g���Q#�.qm;Uo]������9���s72���s�.]�Y�������O����6�����?/���h�����1c�f�cGoz�������Su���_�:���x�
����?(=z���I�&
�� �hi������["%
$�{���b��i�HuVER�@@@@@@@�����o GU��7�T [��3��������K��E�b���:�����-Z�jgV5h�@�t�b�d^{��LVi��d����or2�������{��.�
C����[��rVi@����ZJ/l��U����)���$��P.V�S��k62o`U�}�m��5��N�����}������w���<���������L�:U�z�)S3y�d���[MYg������S+��cG����5����_��W�$Mz4�-R�U'��kgm���y
����{3|��S:��i�`�?������J@��|<I�1\X�d�x�GmC`UT6 � � � � � � � ��_="�
;�v����1��u<o�������Cg�����M���
�������M�6v�z��k4����[f�4`Dg?���{��lr"�������7�t��H�4��D���~k�K�,_vc
\����X�����tT�\9k�E{V)�����j����3u�%����^g��4�n���v7��S
���>
����n�K*�J��[���Y��	����Q�Vz�5�����G
[��^&S��\�2l�h���*��H���p~�������U���9�{W�)E�z����o���]���������[��>�=���Y]�GF`��� � � � � � � ���1�j��}���4(������_M�D�j��w�}'�O�L`U��r"�����F:�����o/�{����U��Z�Eiii�>��U��t&)m�Kk�� 
���M�4In��6��fz���Z�OU�Z9�w���o����3ZE�q JA���ysW���p����k�j?�u6�Q�F���r�7�p�);3?�����_�T�u0`�)���r��w��^��x���3i`�O<�
t��a��*]bOg��`<
6�e��������k��������F�����AM��������G
��%�u�Cg��?��k��3�<Sw��O?�d�3���n�+�U�(�@@@@@@@ W���*����K��I@.��"�h^���+��U3�������j�erc`��Lg�R��y�F��Y�t)E;E
\�V���Gg� .;y���m�\{���fk�����Z�;�<Sgg�m�����6���'OJ�n�\�9h���go�����vRi����#���^u����G�����^4�Lg(KMM5�g����7Bo���of��iJ����U���._x��g�M�kv�hp��%K�fW���l����X�
�����t�����3�}j��\���e��I�b�����X7
@@@@@@@r�@n
�Z�t��l��\�h
:[���i��i�A>���X�K��LRP��%)))r���G%�gP���4v�XW{o`�[o�e-��j����C���K/5���p�� �]{��g�yF&L�`�X����Z��PF��k����*�����@7�2���^�B�%:O�8!5j�0�C�%
uYK
B�S��mE-c����0f'���j��vQ��U��Ow��e�2~���t|v6l����z�U����w��a3Vyg�S�?�0��~����f��;����������X�m@@@@@@@r�@n
����g������t�o�%����+�Zg�Y�n]�����1��i�ANg�q�����Y������r��7����6m�
d�����M�6I�\�8�\s�����Lvz��Ge���v���E�1eoF�#���2;c����
�����k-�h����_�:����f'
,���L:[�]w�e��*?��)��n�e�O]�.V���/��{�1M&O�,��z�){��]��
���L;��^����4`���/7�k��Uk��u��.O��k�h�Y���A���1w�l$��B@@@@@@@�@n
�R��^zIF�aHt6������/���
y��'�_�~f{<������-Z$�+��|7�|s������-[�Ti���d6iP��-[d����rf?����������_F�U����Jzn�t����������hP�&
��%�2JU�T12�	��s������L��h��~��}���s��.���eg�s�1c��RS��t�e���iq�E�A(�s�N��z����C���7�J�j�l���3X�r���g�9��7�J��4��N�j�r-�h�{_G�e����/:kWV�UYQc@@@@@@@�\%�����S���s���#����������^s:�j������b�m��
R�p�XM���Vi����Se���V@��0F&��*
@y���c�����Xu��W�����.�:u��o`�o��&�[����W������t���UgN�������N�Y�F�/n
����R�R%{���Y3?~�)k�U�V�uwUf��������^������J���g�����Kzz��+W�"R�������_:S�&�{�{q�w�t���r����;X�� � � � � � � � �@��X����t&�U�VYK�i E�:uL0Pf�8���5�����V���9s����{�n�-���xf�qBy��Ab�i��z�!��:M�V�R���w�y�X;��g�������z�5��U~{�x���ki���=4+�P�]����oy����6�5I��39������{�qt���qc��c%�\��K.���;.������M�f�z�������������]�?�UNE� � � � � � � �D���U:��.�g���zK���+�~��4i����f���s2�rc`��'Dg��5kVD.
f���+���4�D�]v�ef����r�X��%�2
������~s>6������^�X��:6opa�5��s�9���\O���W��/�F����	������qZ��E���e.��x�F�)/�����m��R�|yS�'�?~y��G�i����0*@@@@@@@p����C����^jPt��^xA
$'N4�������;�����t`����['O��9��y�J��5%O�<1����<=���2t�P{S��.���}{W}�����*T� ���sm�.��mN{m����Tg���5p�N������X�t�Rk4�o}��#
�����RV�_vx��7n��Z/_�\
,(:���:u�$:��7y���C�~3X���wv�����9����o�YRSS�m����3g���|���Eg���D`UNIs@@@@@@@�����Uz����+����s��5k����^k�������km����t`Uf�o��V9�?����yk�h���&��S�%�������{�=�p���_�E]d���w�h�U+V�����4�F��+U�����|vx���}��cv2d��q���gO�J>��3�T��)����y��g��e^�vmS��Q���K�"E�L�2R�ti+��n���*�]�����U�V������V�^�Z�5kf��@��]��r��G}d-W�>��p������'�*&@@@@@@@�����D`(.��G&�)����8t��]t�.;����r�M7��L����*]J1--�8����r�Yg��73~�x<x��n�����3�X���(Z��}�1c���a���Dj�w�^+8����]�:ud��)V�����Lvx;�������ZU�]w��y��V��V�Zo����M���7�(3f�0�H��_~�Zv���Ap�z������*�]>��C�����AQ��������X�g����_�:���++�����~������v��o���J`U4�@@@@@@@@���k���7�2n��^�����L�����[o�U��]k�t������3�
r�m�p�����*U�8�!�q���v��%7�p�8�"V���_&O�l����w�}�5����s&;��C�t����l�.�)9rDt)���7��8u��w��3���?�����;�Xf��v��5o��6�{{���������| ���sU{�t�w�4�1bD�%:u��������e,O��#���B � � � � � � ��L�8Q
�A���%���rc`U�>}d����L�����U$�3=���������D�y����*�w��I2p�@�!�%��8v������v��aWY���*
"� gz��G��/tV���r�-��n1E����C>|X���JW���}��
1�����z�!�����S'��������Agbz����i��Q#k�/���f&�*;\t�.���t���ZK@^|���e��;w��^r��|���_������Vgl��3K�,i�58M�G�I���l�� ��D`UV��@@@@@@@�\(�s�N������\*V�VoEn�Z�lY�,>:������ +V���E3�6���s��w`������;�p����)]��h`�O?�$�����
����T^�������d%e��w��t����36e�Z�n-.k�AR%J���5@���:hp]�R����
��.�g�}VRRR\���)`P������u����_��]���{�I�����q�	����� � � � � � � � ��Mk%[�V�Z������,����*�>|�5KU<h���k��t��������������/���w�d���8t�&;��X��HV�Z5�lN�.2��J`�v���w��f�z����e�m�e�5j��;��)bY��f��-:�7ef�*�7�\f��)�;w��U�%��L�"v�X�%.���~����>�:u��,g���:=�E@@@@@@@ �	��t\e'
i���]���o�!�{�6�~����,=�"�L�*UL�E�v�\AHqvqJ��r|���u�HIgh���5j��M��N�:��<
0���4ibf���4)V����c���7��1c������u�,��Jg(���t�7M�<x���6���1�����o�9{�7��;�wgp��(��W_I�|�"5�X��7�X���,R��*u�����P�B��XF�Lb��5����Gl���.��7���.z^+W���?�u�5�������
�[�����Y�i���L�0�94W^g�����E�������w��C�������)X�m@@@@@@@@�l�%��m�&[�n�O�+&�+W��e�J�<y�����V������
���?���E+3�C�?��{$���Q�?������O��)c��5�����zL��3 �U�V��/�u~d�>��o�1��/oE8��SO#�< @@@@@@@@@ ��~�����V�PAx�9����v�z�j�Y���3�e�|��6'^	��	e�� � � � � � � � ��i.�K�h���e�.]�g�����9r�Z:�^P���3�Z���.�y����@@@@@@@@8Mt���.��u6�|��T�Z�U�AUC����'��s�9G��[�mK�e"C`U&�h� � � � � � � � ����o/���s5h���pU�`A��c�,X�@v���j��k�I��
]u�.X��+��@@@@@@@@8M8 ��5������h�����]����TC�rJ�� � � � � � � � � ����+��M�q���ZEK�������K�5�5Ih=�U	��� � � � � � � � �����k����[e��mr��!)Y����f��r���	�
��ap � � � � � � � � ����1@@@@@@@@@ �V��08@@@@@@@@H��U�P�� � � � � � � � � h�}y � � � � � � � �$B���D�sL@@@@@@@@��U��<@@@@@@@@!@`U"�9& � � � � � � � �Z���@_� � � � � � � � �� �*�@@@@@@@@-@`U�/�C@@@@@@@@�DX�u�� � � � � � � � �� �*����!� � � � � � � � �@"�J�:�D@@@@@@@@�@X����@@@@@@@@@ V%B�c"� � � � � � � � �@��
��ap � � � � � � � � ����1@@@@@@@@@ �V��08@@@@@@@@H��U�P�� � � � � � � � � h�}y � � � � � � � �$B���D�sL@@@@@@@@��U��<@@@@@@@@!@`U"�9& � � � � � � � �Z���@_� � � � � � � � �� �*�@@@@@@@@-@`U�/�C@@@@@@@@�DX�u�� � � � � � � � �� �*����!� � � � � � � � �@"�J�:�D@@@@@@@@�@X����@@@@@@@@@ V%B�c"� � � � � � � � �@��
��ap � � � � � � � � ����1@@@@@@@@@ �V��08@@@@@@@@H��U�P�� � � � � � � � � h�}y � � �����={�����u�����*U���'��!� � � � �@�	X�t��#� � � �<�V��?��C4h6�>}�����M����E�H � � � � �@�
�U` � � ��f:��O?-�������W�v�V��P� � � � � �*@�� � � � p:����y��'����N������r � � � ��>�r�5��@@@�V
���7�9F�~�d��!�lgF�-/���U,X���]������W@@@@@ V%B�c"� � � p�Xupj � � � � pXu\DN@@@� 	X���X@@@@@ �VeU��@@@@�%p��	��w��<yRJ�(a�u��Q
d�u����:��9rD���O+�K)R�����������B�
���������e��-�}�-[Vj��)�^z����?��g�}&�6m�c��Ym�T�"�*Ur6�0��!��q�|����k�.������+��r��I�<y2�� � � � � �|V%�5c� � � �R`���r�m��[�&Md���V�~���s�=g�?~\���g��z��#FX���[����e���2x�`���i�����1C�<�L� /�w�����~g3+��eK=z�\p�a��iii��CY�p�����=�\>|���+�B@@@@��B�����2r � � �$^`��y��i��i���|��V�>}�XAI����=z���#����w�5c�W�J:;��Q��E�2g��XM�B�
�a�9��3"�{�����G���[�c���j��Z��(#� � � � �@p�
��ad � � �$���_-��u���t�R3v���z��V�n��f���V�����>k��%����u�V��j������M]����L�2�����
������ZRRR���w��,YR�CT?IDATn��&k����W����]��8�T`�\�@@@@@ 9�J����@@@�@zz������O��2d�)���Vip�{��'�k�����[K�����Z����~��i���5�\cU=zT���+/����Dj��!�V�2e�����������SO=%O>��,X��������o������c��O<ayE@@@@�$ �*�/CG@@@ ��X�3a���u��.!x�%���\�m�6k�*gcm���X��T�x��S�N�Rv:t��e������33gi������&����y@@@@HB����1d@@@�,�]�U�
��*Rj���L�4�l��V�<x�i�3T/^�*���R�hQ�M�0��tv�hi��Y��E���W^��{��� � � � � �@r
X����Q#� � � X��
��4[����3�����,X�@n��SvfF�-]�t1U[�l�r��Y���WK��5��XZv����g�m�k�����2 � � � � �TV%��b� � � �_ ��~��W)Y�dD�#FH�^����7J�*UL���0a�t���T9��}�]i����V�Ni���)G�h`��7n,|��]�@@@@�T���$�p@@@��
dW`��U�P����
�r.���a��������jg`�s�='���3�������O � � � �$��U�}�= � � �����*�7Z�+��������G;L����w'4D@@@@��
X�P~� � � ���'���U�A�����sg���KL9�L����c���4�
 � � � �X���_�� � � �@2
$s`�o�!>��a�;w�4i���� � � � � �@� �*�\k�@@@�H������K������^��S������-
�r��I����H�"��R� � � � �I"@`U�\(�� � � �@2	�����w��2l�0S�3}�������E9~�������{��!#G�4e
���F�!�z�2�w��-��7egf���������-[�XQZ���(Q�l;��se��MR�X1S��|��R�n]S}�����e�L� � � � �$��U�y�5 � � ��pVu��ARRR����*�C=$��O7�m���L�4I��do<x����WOV�XaW�����ZN�l � � � � �I%@`UR].� � � �@r.\X���o
Vg}z��7�J�*R�`A�������Vm��]��-��n����LW\p��OKK
[�p���s��s�u��� � � � �$��UIy�4 � � �����e��%a��\�����V}P�tp/���t��5l�5j���U��_}��ga�-Zd�`��
@@@@H:����1`@@@�/��[oI�V�"���C��NA����,[�?���y+��8*g��-��~���, � � � �$��U�|�; � � ��0a�����Z�9���T�T��0@�y������7o^S����6�����M��=z�t���T����R�HSvf�N�*m��1U;v�p-�g6�2:3��\5���V��G�R�L���@@@@@ ��J���@@@����'E����+����e��Yg��!G�Ym��A�l�bb]|��r��&��D=Q6 � � � � ��%@`o@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � @`�@@@@@@@@@�#@`��" � � � � � � � � ����,�;��IEND�B`�
hi-concurrency.pngimage/png; name=hi-concurrency.pngDownload
�PNG


IHDR	V���O�?iCCPICC ProfileH��WXS��[�����H	�	"�H	�E�*�I�PB;"*�T,`CWE] kE�,��/�������&t�W�7�7w������9w��;�������9�|ILh sBR2���@P�ryybVtt�e��{yw ����L�����h�y<�h�S�y���W���|�2�|z�X�a� �Kd8]��d8U��m�b���B�r%���C�Y�K�j};��B�L��rrr��@lm���=S�I��f��&��>�s�� a�8�;��L��.9��AV�R3$a1�9�����
�a*�����(�� � ���!F)��x�=j��c���N|nP8�����##�|j�0�1\!�a>'b=����c�6[%�1J_h}���R���_�����x�R�u������
3�!�@lQ L��X
b����p����v���D#����(4P���IBb���9y����f9�J|0?#.L���������D��AA������A���c���X��q~`�b,NgG+�q3Av��7��5� V9O��R�������q�������x�� �A`)�� da[oC/�S��.��t JfpD��G����	��
���
@�����H���Gd����p�
���Q�!o	�	d���������U����A�;��L���zd�Z��A�0b�7��p<^`u�=q��y|�'<%tn:	w�
�$��:�~�2�?����nx ���2��
��
��p��
�le���0�i�m?<
�����u�d��#�����Td��1?�XS�������C���
n�-�a����E����I�k������z"_]��b��dA�?�
>YY&��j�z��(��3d�h�����3��,�E09"��H�����������!�n �K�������}�"�^?�n���9��5���2�TR��p����p��c`l�|��;� �Q $�)0���%`:�
�PV��`#����`8�1p��A;�����
^�>�|F���:��� ��=��x"~H0�� IH
���)2Y��!��FdR���EN#����� ��O(�RQm��BG��(
G���h::
-D����z���������
�}��cS��)��ybl,
K��0	6+�*�j�k������bq"N���\�ax<����s�e�F|7^�����.��F�	�o�0��N�N(!Tv�����MxG$Dk���I�L�,�2�&�~�)b�1��D"���I��(��O*!m �%�$]%u�>�����8���$��T�T*T���P���L�3Y�lI�&G�������&�r7�3E�bM���Q2)(�)u�����7���f�^��U���U��P�������E������R�r�.�)���fE�%��i�i5�3���jt5G5�_m�Z�Z��U���duKu���B�
�C�W�{5�Vl
��\�J���4�5���5�4s4�i�����\��e����*���uF�1����t}!}�,�[��m�����.�������������3C�R��N'cX18�l�
�A�M�']#]��@w�n��U��z#��z�z��n�}�g��g���o�`���7�n����A��>#x#JGq�5�3�1�e��������(�Hl����Q�1�8�8�x��	������d��I�?�:L3������354
3��n3m3�lfmoVd����9���<�|�y�y����8���w-������,�[����J�Zl�`��Z��c]h]k}��f�o3�����-���6�v�m�j�f�aWiw��w��o��I�5R4�z�-�����������X����r����Q�F�����)�i����Z���.�4����3������%�e�K��+W{W��f��nt�qn������{�K���{<,<R<�<nyj{F{.���E�
���u�����w��A��||�|��<c=F0f����f�\�m��~L���~����\�j�G�����X��L�^��@�@I����lo��� ,(4�4�-X+8>xc���������P��Y���a�a��nq�8<N
�o���9c[������E�EH"������[=�~�e�(�!
Dq�VG=������x�����������s>�;5vO�����q��m����	�	�j�'%�'vN5a���II���dRrB�������N���6�d�����gL�8�`J���S��r�J!�$��I����Vs�S9�U�}<6o�?����#��������=O�M_�����Q��+d7
_e�en�|���+k ;1{�JNJ�Q��(K��k�;#�Cl/.wN���vZ�$\�3������
�[�6�E����������9C4�u����3���<����<�t���]sXs��E���m�g>�x^�����Pd-�����������M�F���/
]T[�V")���g��%�����.K7,�V�/�T�TVQ�eo���F������i��V������R���*�U��5�����~
sM���k���X�Z�ee�t]�����,6���ec���������V����tus���-F[��|�*�z{[���j���������H�q�g��kv�,��u�hW����-555{���Ek��={'�m������n�~����������r�`���C���[�:B?RZ�����k�h�lLj�8:�hs�O��_�u��X�q��+NPN�8Yx����T�������6�;3�����-mg��^8r��y���|/��}��%�K
��/��������#m�m�W<�4�{�7u��8q����kA��]�\�|#�F�����oM��y�����;����|o�}���*>�������������Z�>��������'_�����V<3yV���������?&���B��so���V��yy����Z�&�u���x�����]o]�6�G�?|�������v��x�S��g��!}Y���k���o�r�\	W�+������z�$��|F��8���8���OXqF�w�`#��g���V��v�_����������\)+Dx�$CwVG��aEq��!��-��������z�)���eXIfMM*>F(�iN����x�	V��ASCIIScreenshot�Y��	pHYs%%IR$��iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>1420</exif:PixelYDimension>
         <exif:PixelXDimension>2390</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
)��iDOT�(��o�����@IDATx���%E����#YD%	���0dA���"	* � �!A�(q����,�DI"E�(�?o3u�>����{�>���<���������Uk}�j���'��0C�0C�0C�0C�0C�0C�0C�0C�0C`�i�X5���1C�0C�0C�0C�0C�0C�0C�0C�0C C��UVC�0C�0C�0C�0C�0C�0C�0C�0C�0bU����!`��!`��!`��!`��!`��!`��!`��!`��!`�*���!`��!`��!`��!`��!`��!`��!`��!`��!`�*�v
C�0C�0C�0C�0C�0C�0C�0C�0C�0b��C�0C�0C�0C�0C�0C�0C�0C�0C�0�Xb���!`��!`��!`��!`��!`��!`��!`��!`��!`����!`��!`��!`��!`��!`��!`��!`��!`��!`F�
�]C�0C�0C�0C�0C�0C�0C�0C�0C�0�Xeu�0C�0C�0C�0C�0C�0C�0C�0C�0�#V���!`��!`��!`��!`��!`��!`��!`��!`��!`F��:`��!`��!`��!`��!`��!`��!`��!`��!`�@���@l�0C�0C�0C�0C�0C�0C�0C�0C�0#VY0C�0C�0C�0C�0C�0C�0C�0C�0C @��U �k��!`��!`��!`��!`��!`��!`��!`��!`������!`��!`��!`��!`��!`��!`��!`��!`��! `���5C�0C�0C�0C�0�D���w������k���G>���}�c�@S�����o��{����?��O7��3��~��n�fp�L3MS��tC�0�a������^x���w�n������;�oC�0F&�����N����v������X��x�w�u�{��g:����?�\p��������ow��W���~���s�1�[q�k��_��Ww���vdk�%�p��?�q;`��!`�� }���w$��"���Z���0���o��^|�E����������9Rf�e����-������!`��7�|��q��'�_��_n���v3�8c��������g�m�����s����6a�Ygu�e�
������K/���5jT�\�
���,L�����?�N?��A�7v�X7f��A�l�0�����;��{�q7�|s��j�0Xm�������K��!P���{���vc#��t�M��W^����N��Yg�A���c�I�&e6��������+��8/��V^y���A����
w�-�:���;�j"�c���C�1b�1���{��WXa��t�{��c��\�/���p�
��1$p���������x���w�s��~G� �}��_�8nC�0C�>�����������E��f�uo������o���.��Xn{~����.�,�������������z6y��{�M���/�V]uU7�<�$]o�@3@��`����n��g����v��ot�'Ov85�d���v+����_kR�5q�D�N>���`�|H&��M���$��>����[��sm���w�����C�0�"�d�����Y���4��9bi�����w��J��������vS������5|�8��ma^��%}�����#b��?��������}�m��6��q���{��wG�L6�o��:�����?�O~��A���f�)�!�/���!`�L�X5���X52?{kC�0C���D�z���\�xv�yg���|�������6�@�<�03�qt�
�k��F�j��3��5i�bR��k�z<�������H�Ib��)S�k������q�jG�b��K.��=��#�S��h�6�tS��RK�/����B��/tD]��&�l��Yf��!�o�@%p�v�a�_K�;�����g?���t��NO:��J��4��Ex���H'���lz���^�X�~m��*���U����
m��������!`##VM-l#V��Zo�j��!`�@`8�Xv	B��O>9��F���������f�UJD����H48/��*$Yx�H9����E�(D�.0�#��/���>Zl7�"V�l-K-�f����nn�9�����q�����������K���!0�x��'��	��c���s�=�4�L3�����!P��.���y���n%b��3�\����Y�����!F����Is�j����Ku��#V�_g�:�
��
���D}61C�y�jj��j�U~{cC�0C ��N����;����w5bU�H��k�����(��~��_�{��'=��+X`������7���2�"���/f��w�yGL�	b��l�����3�0��k��J/�rg?����+��R�����X�(��v�!�|�8c����Jp���w��?��c�c�@�Vu�����[K��s�9����+�����X��T�������@;r0�������C�X�[���3��a�:���x�"���vC��jj1�jD�w{IC�0C�4C�X�C@(F�
I��+�w��L%V]{����nP�v�i�|���9ng�qF����g3�c���>[}��0��H����W�X�����SN9�����O}�Sn�t��6����d13p�d�Q���'�p�{����c;���G�v��	!�X���Ki����@�\~�����n�,��vt�vC�����?�N?�t�v��,�g�y�e~!auc��Q��_��xO��I�1�!F����Is�j����Ku��#V�_g���7?~�����<�C��W���Xc�A�l�0C`�#0��Uo���C�	�P���m�h��W\qE���~��Y����!`C#V
���Z����*w�M7u�����A�#�u�.�h4�W_}�z���5Z�������:��}����2�,�y;a�@x���E��)�!V��?�qtPGD��B-����o�|���������#�����7��-��R���hcU���KD<)BN���;��������w�}�	^Rv���>��;��c;��{�9�����0C�
��L��d��������������qD(��P�K��n����q�R/�����P����a���^�X�~u.��'�|��x���h�q|Gbv�0C`H 0��U�
�s�Y����~��[]h����U�.6��!`��G��UC�����O>�=��c)���n�(/����?��J��f��@��l_b�%��[n)%m�C �N�&M�F��'U� {����s�=7����e�Y�m���QRDM���"j�4�Ln�����Q�
x_�T����gYnh�]vqs�5W����+����r�-�C�y�e�]v`��C�c�9�=��s������o}�[����!`u���^��D�%Bg(�/Ddd�U���(����H�F�z��
bos���;�'/��������!`�F$�j����j�Y�
C�0�2F������kF2�HIQa������w����DLr��6r�-��x.<��D,Q$I/g�K��c��PF�o��3��0�������������?���j��c�A��"I
�)�<��{�����"��v�{��G:.�a��%�u�d�>"��3����;�#��;`5������)S:RYw�u�*���q�[���Nw�Eu$��j��5�\���0C`8#���F�����X�2�&L���u����C�0��#`���������?��0C��F���C�9,[��?�^-+

RT(e��"�D��^{-L��3��;���0���~�M�<��x�������?S�		2�$?����G?�Q��xg(N�P>��O�]w�5<<h��#�t/����c�|�_p[l�E�q���>�`��;�P{)!1a;ht�
���c�9�����.<��4���������[|��{�F�b9��e�{�I{�!`=B��U�=��U��!�������GU�c��!�%�X�%`��������i��!`�0bU��v�%Y
0���Z�m�������<�@����#��%�����>w�9���32�C�(F��]w��~��_�����\Ub�/�q(K.�����������bI ��8�������2���%w���^����R�D�21���kB\e���v�G���!`���U���w�g?��Zi��y������s�-�����y��;��C�0�3F�z�t����k��&S�u���i�����o��!00bUC�����a@{�����/�������}�#�S���'Y��,���#��o��XB�Y��f�e�,�
�~W�a
0��x�
G$�A����>���<��/��9x�[o����v���!����?��gK��8�eH9����n�9��]]n,x�+�����_��WVo(��f��������1�?�������a�v�i��������_�������Q����w2���w��^�����KA�6��q|k�o���3�������Y����w��������n��������;�3��t�M���{�������g��X�)��w��}�3�	W���K���DnS�\i?���t�M�����x�
7��-�����<��2�Dy)���B|`J����{����.B�}�������@��g��V��`C;�NL[A{E�@>���Oz!`@{���w�}w�0���7�
������l�)���^��������VX��<�P����iwC�����^x��p����s���Ow\��8�/������=���S��HY�������.s��g�}6�&���y����R�������i�.cx���=��B��G{��C����D�������������q7u������z���~���l��x'����{��h���D�F���<���&���a{��7VV���V���|��;x����b����1u�����2$�S���I��������7����}�B?j���Z�iw�w=���p��c�T<��|�K;��;�d�6}o/��������>�9��6����q�"��/�:
�G|Vl��;�����C�l*���_�������/��������_��[g�u:��C�0�����#V��������|qb���W��?T��N���]w]��k7`�����V^y����u���8q��["��$)�*�j,s��wg�)�����^�}�K_rs�5�vY���h���[�����1 �g��Sf���g�y��J���x�=�d3��z���sI'4���[n���%~��@��.P��!?S�L�������!�1��|4V,z����|����:���[h���2H]f����w���UT�]����	.����UR���?��]�������(���2X��S�V[m5��J+eNM�5�ij���v�2���)�
������zJ[.-���6���w��q��T����P������e���OG�5�{�l�I������s^�},�������
��a�������w��o������n�~���Xb����4�o'JP�m<m!��0	X�'�K�7���[n�e Y�V�8��&l�W\q����9��eI�-�N��������|�w@�r�Yg90e��v��p��&�����3�8�#I��U�������^K�u�}����d�=N����������#�o�%��wNd/8MX�
}'�&���b��UVY%#�k�I�q���J�����`�9��pI�0=�y�D�U	&�	6�y�(b����dz�2�,SZ���]��9��&��
��{�B���b���
��t����Z���Y(��u�]7<\�O�>��T�����AD�����*#2R�fh�%���+_�I��c�_�G}��B=�
c=�ma����o5���?:D��J��\�KRb�D��m����26�a�Mx�u�vGI?�����w��N?���:$�y(�n,�������e�u��4Ez5�U{@��~��<�`�#�6��R�����4iR�&������������SO�������n����%%��U��o� �T7��8��;��A���z������|�M��h��H}��7�c)��(��I�����Uaw����������M�yM�^�;��;���o���j=h���S�m�
��$�nl�O{M������}U�&�U���b!�k�-��1�5I�����&�a�L|71C���8b�.�2#e�%OPz u��0�pG�����9'0��33�b&R(6�_�L����:����>��,��K0��wKee�y��HqUb8�����B���'�Zk��2E-�����+����.s�lj����>J6�,�Us����5$Q������Y���?�����������gA��-;�����s�vX��O<1j��>�g�Q�������!{1�|������-���[/3��:~Gb=��W�fV�'>&������f��e!�V1z������k��n���J[�����m�I�?��sW���_���i��Xf�|&^�����?U�)����|�1�d��O}�S��I8
B)C��h��Gj�<����^xW�)�%�C����	2��,[�]���-��?�����{���	��@�w���+��|:�G����~��V#R��H�e��rm�t�0/������t����}C�.C�����qd����i�e�dT����%?�]���������������p��(	��3�c��Xc��m������U��X�\�&�U����{��G%4�7D\��H��]��P��&<�������[��S�)s
� �<���[v�u���t�1�D���X�0���^�������c��X�K��
���������}t�#�8B<��+�o�i��;�"�B!J�S��Ug
m�����S�>�O��`/uH"�Jv*p`�[4�����A���g�s�����n��y,+E����C�t�M3[Rx.e�6��K.)� ����s�{%�oYr~��7|���{a_�`s�I'��r7�R&��}������p(ItR��^z��b�Y�%��=�LBn��k���O�C�AQY��|�z��1j�c�*��,��2�����.vHVu�}U>���l��*�X�[o�uFHo*b�����M(�R'���!`o�X5�|��7��1�U��`�f�D��B��h����Q&�w�������������3p])��`�C�e�p]��,-�X>�a��dp�����2,;�%�����{��'b����,+A�6�[�*���bA��F���^���7��}#�����*e0�BL���
����CX�BS�,�v���XE�/���)���s��vR��ii�����4�"��`-�������o�)�@�V"Lv�X���<6�.���D?�3�S�i�5����g����|���q!�e������{������@���� ��P�����K]$�>|�D�[�I��Fm���k�*�"�E���C����i)�*�h��T�@>+���q wAh���gH���A��n�����U8�0|�;4�Pl�V����^�n������?p�U�!m��3�[�6�g3c7�J�d:v(c����E��&�5�"�+H��Y���3�;��s���T�~������g��D3��O�wmY���S��������o�l�����N9��,�gj��u��<1N�����'�4Q��2���!����hB!Rv�*��a��	�����t�~����@��H\uL��{�������_���@�=���:.+C��G�vd���^��J������Yd�������	�x�����NJ�����ur1�4S��6�*�&��~��]�8��U�A[��u���U��.�����3Vg�n8.+J��}U>/M���b!�_x���le��,�������o,�����!`�@�0b���I!Va(���!�[3�kN�������m�����
����3���t����zI�7�}���
��1�+8�)���L�Q�8�����X�{����*����E��w��UU�����0��������[�'��h��H��R�%@�#�b�9�����i��|���X�{2���@�Q��.�$���m;�����e�#�X���(u�]�K<��g(�"VA����aR�S����������Y���������Y��X�\�wN���?��N�����|>�,CH>�
3����^�"�}�����I���?�9cb���������S�]���j!
5�fAH����o�����.��ue$�����6O�B&��_J6���$�7���F��P�����������vf�=�t,K�������UU���=�'��n��T���dG)Z:=�j����K���$�r�H���C�x�J���Q'HOR��M���yD��]������jN����C��}�`�������Tm�E[I�I�9�V{@��:�T	'�y�hD��+��.�X��������{m_l+�J�3h�i��J���Gw�Oj�^A$c������y����o�������`� �\y��6�*���w?�������Z�0Fm�X�D�D{bL�J��u_��:�*l��,��
�J�"/R=�8���������!`#`������8!�D-�y��3�r�����4�
���7�x#�ABD�`�B�=��$�KO���\�(���P�\��-	�H�)�/�\ADa���e�p�V4f��+R^��He2�>}�k_�����/�g�9��DP�?(����AyQ����m%V���n�K�I���t�u���1f��<c��v�������;���*fX��T�QDc�2�����DBa)��ii3�J{W���D���-��/��
3�pJ��~�>�6��!��0�"bu��E}�1}?��&��Y�-JR�����<�1�b�?�`O�-���>���!��h�(�fR�X��#���=����8���\��0���t����7�/+��E�#�������&mIL��N6"&�D#V����)t��|K�E��f������^�`�����19�����ihKX��r��Q�e9hS������|�9G}b�H�X zk���nD�#���~KZ�X�B�2���2�DoE������kN�2iI�0�P���E��7���h�EmV�'����? ����>����-����/��-��A��M�~1���A�PMLz�O��-��e�,�/<�K�k�IK���>K����;�y��W�����n��R =����$�DDG���)��H�>����D[F6���q���`����bU?�W�s�c��^�!(����/��Bu���W"�����'AK����e�/��k��S'��'����A�	�>��-m|����6�*��<�����z�/����j=h��	��v1�.�;���
�,���c������G���,���E_al�=9�V����%M��c["��7i<^c���!`C#VM-�"�/�-�>I`�'r�A~^0�0���R�	b��Q���!8[o��v�c�L{��t[�fYy<1��D�3��]��bJ!�cK&��!zk���(ep'N�Un)�f�H+�'e�`^z��3\}���u�w����^U`�E���%FxZ������n�-3k�v�l0��U,���'����2���������@��f�e�N�e�1�
�y,ZQH��\O�>���("�
eD3Zw�)(�.��m�Xb�1����m-���\z��Y[������31���{��M�5��D
c��l�
y���D�)���������TVZi%5my���	}N��Tx����i[ ��Sdv1N����v>��c��'����?m���:KxM[�����{��Q�EK�j(��:�a�z���cd
�����~�"��plb���'�p;�~�0���.��4�"��h'�~Y����U�Kp�C���K_�R����s<�h
Y��D��O Gf�R�A5���sV-�bT�4��u�!I7�Z�y���$V~��"��N;�Cs(I}�F��_�]�*s�d
u�:�
)�Td��D*�~�-	��E�ih_0��0����B�B�G������;�?5�x��Zr�5�����Iic���s�g��:m����/�q�7m!�0i�O�D���lv�q���M�"�T���o��#���G����28R.��Pb�s����hXvY�~G�B?����?����d;��������1.����C�����oW��Y��������yE��~�o��������m���"� ��b�u��)}��o��%��#���z_�����j�;�w�f�D�p�H����5F�`r%vnM�n��j�mw�w=��g��Z�=Fm
�Tb:�j��6h��m����:K���g���~�U����X��	h�I�S�����q��c�O�f��������q�����!`_�N�:�0PR�}\��RU�N3����0��Az���z*[@s*�{��[l����g1K#I4���%v��k�-e�3�F�|Z�q�c(����L�f��,��?���)�2>!���gf�_~yT9��>��
�$���Y�K�P�9X4h�PO�M��� ��<���-b��i�Wly�P!V���#y�T��;�Q�bFo�o����D5�)�%`\��7<���3���zz�
7�DX�D�e��T�����nF�IM��uC�X�Y���D
�U8�BR�����,Q�}GE����KZ�?�m�XER�~�z��{d��|z�mI$�OYI���SS{~���, ���������o�Nb,n��!f����q��9�8M��9�Q���q�!R�*�)b�����.��Bfj�Y��7�t8HcL��0qC�b�^��X����f������`���I�Ud��n����o�@"��$8��)%����D( �AQ�K;{�I'���u�(�S��&�UZ���^Q�8�ap�%/Z]�-���_�aI"���tk���",�Y���2��������2,y��.b�N���"���������m�,�4NK�f�2;�hby��A9R�z�F��&��$��K9@��$6F��/{����|���%?�A��t�*:�4D�P���
�����	�j��-Q�c����o�6��E�"BS,�-�����.U�����$��6�o,����`_�y�7�
}��SN��it�N����&}u�O�4%�wb����H��>3|W� l'�%���~���t�W����=�S/���R�
�cU��6��xt{���Sw�B�b/�~M�;0��>G&����
}UUb�C������1���w��M����xb���P�9^
�e���!`�A�'��^�Z7�U��T�q i�����T<��#E���������3�j��m��6�x�
�IV^y���"���\B����l�h������?Q�RE�u��1#����%b����|-w�-Yf���:��}�m��j+�����@�*�.�>��
�9_6="��<������8�$GL����4���K�Pv8�DK�C`��

��2�m,�T,�Z�iP&,s����b�*�;�_�*�/h����,u�U8� {J�������%�����&!�G�1��p"}��i][G3x3z�-��w�}�A�:����.��z&�
�_*��k�80��Q�.�l��kC��(�:�c�����mL)��bFk��)D�)��|,��Gh'$A�D�%������W�M��y(�����PK�T����Zd>�t���*�>���8��'�*$�0
m_kc��D���H����G�N��p�V�%oD����k%��!�Gs���,�"�V��$2�f� �(��T�"�-���<5���A���%�v���5���W:��%e�J�[&tt�P�0n�=��7�	}��C����l mJ�Al�������Q�>�D��L<�$F�jC�j�.s�
�E��~�bco��:���������N���[����oc��b����<�����`w�g=�e8��U����1jSePD�J���?�����6H������B���A��e|�1�i�!Vq�fG�2�'=C�0�������SL���������jST�E��X���<`\O5�b�AQ�HIe��E�+��*8�y�����45�;8����f�8�����5�-�5GV���}e!��vZ��{��`�B.���~���OW��y�9f�B�1fa������Y\�w��5������|iIfa`|��YF���|g�R#��jmT��
�D3��3.�%m'V5�M���ZT!"LB\)#��e�$1bKTi*��}K�@D	����<&u�U<�@~\J_r�K����w�_��L\�l�-������
�(m6:���9�c6� U�N�����+���O���~�"D�cyMIR����Q���E��H1�>��������`<"�A�0��cK����.��?�_��b365����
���PXj5A(<���&�UR��;1J�|��?���Q�.����&M�H��V�����$�W��"�b,�����l��D�H!-�������e����i"�
�;��o��jN���;@�JK�h�������/��e���{
[C�����!�/$�Yi����'���D���(��7�r<�t{@�p)�S�����.�&x��-���i3<�������=�\�Tv��J��<1bU�7�=���b_���7�Jk������3��8����#���0?����-��e�uR�pm,�r�D�++L���
q�����6O�%b��6��U�2������c�������n�_F���X�)�����J�c��$�8��C���o$�*�'��.�J���Ld	�i���!`C#VM-��r�)BU��8?XX"N�����*3�����k������j3�K��<0���.E��3�5��W��[�F����b����D{/"_���.�m������I�6�%g�{0��,�$�������Pz?�i�D��M/6P��Y�������U�EN�PFz=�E�KuVj���,����KNV���
�3�C)ZD��@:U��XyH�N���yI0$bP,#������K�X���o�?�m|^5ROJ�j�}����	���,g�a1LS���D���YM���"����r��c��>����V
l���8	�N��P�D���~Uu�0�p�_��NgD�g�1�j�~,������U�=��h�%a��hF�*$��^��>,���7��cs�N��AN�m��J��a>����J[z�<��J���W3dK��5���PYU�;������Z��8b"���SQk��d�C8��9�����xap0�|�,:Q^���L
��jJ}������ �SV�Qy!-i�x�(RD������.�"���](Kd�-��HHU+m�!���3?�-�����/a��-��&��Q�8��q^�(N4<��I�����UI��	��x�-�+�S��f�#���sL�*���X�E������~o�F�fr$y��1!��s����9����N�9��+�u����X��$R�����*��6��U���P��J=���=Fm
_��H�R����j����m����4���QW]u�"���E��K��&�W�X1(��c��!�j�X5�x4b�6 a���$
H�J\�E�}1�J�	S6���f�V5��f�����C1��9�s'}��0������	9��S��Pb3v�k�}-d�d���ae���v�,�����O<���
/�s�93�wx���.���y����:�	�e|����o;����3��c�����v�m���/�Ilc�.���������^Oq\�`��ho��cy������P�8!�{S��L�b������<�`��2eR�E"�I/�:����g3��4��\�R�K/��9�*Qfv���d�����:�*m���H8����oU��g5yN#�">�I��N8��q^k���}/�g��5�T�4B���m	m����~��S5Z�&f)��������|Yi������U"hhd\���4"��	)��i�XE}��.��]u�U���n��\Zb����s�B);;��}I��x�o���$�T,���M�g3n/;���]���y�A�9`��~{7����dm%�<3�i��~B���6���1�*��Xf]���M��a]�.��!i���R���@���w�w��(�����l�;��o���	�}�qA�HoZ��
-j9����\Vb�v4bU[������������Ob�X"��7�XD\�M:����I$L@���r^�?8WW���j�N��g�B#�imw�m^BM���u�o[��Rx�~�Q��S#Vi����j>J�c\�`��Wiv,-b�6��=����D������|�ao
EZ�%���
C�0�.]'Va4�������b���7aY�N[���rB�|0W2�W!Vi������S�Lq��%�Q������g	���hxk3%S�Axe���HK<��C�����X�*���C-�q�	�s���L���[%��F����6���|���k�
��zJ=�������F���oT<G����U�"�jN����\A�*�C|(�-��7n����C����A�;��;��/�,8���Mb��#oD���[U4#S���U�P�>�m�!�F��Ei�}�K��p��i�A���E�����UU�%�t�m?t�X��*:X��n���"�P�����t�}m�{�d	�h]U?�"D��R�'Ov�\sM�:��7��,��,1w ��i�Xsdv+b���eh�E�����j���ug/�w�$�dG��[mk�f�'/�!�3�=���E�aY<pE�s�u�;D�]|��3���_�������h��|k�����#*�������o������l{�t�2	��oiC���O?��������������	&8&�����R�a~��������Ob��O<��<d~�u�h�e���<���l�	�&6���_:)vc�H����]U����r,���t0�4����������z��p�/[�{�{���Qw����D�+�M[����*�VBZ���RN�-����?S������g��0C�}t�XUe�s
L�{l�d�-r��U��H/ug�j�G�������i:mv����V3�T	�������D��)�y��w�aG��E#�T5h���D�)�����6�p��,VY��UU��H|��O�*,�Ct5I��#���Sl	����e6�R���'�K�����f������'����:
�&e��P6�dG�]E���1�P���{0PC�����y����)�G��U�A�����!9��+��c��1c���[��c�o'3[�U|geE3����P��I�L~�����'iy��.�s'�$R_(]��"�r����mUu�Bp(E�0M���_I����g��Qa�2���m�,���Y��n8�R�Q����U�C��9���J����%�\� ��"��Zd&�q���k����yZ�E�cN��d5m�
	��|��5}'��E�(���e�!����X(�~u�I'��<�<�B�E�����H�����D|.�����{Ls�W�,^'/M���%�c�����B��x��n��K�7��)Op�����c]'�D��9�JZ����F=�����-V^Vc@IDAT���W��
0V�S�K[�/�4�I��y`K�M�A_B����"Z'��"VWyFxO,�rxmS:�fw�yL|���?>:y���D�e�y�q;��Sx8J�*���V��������ziw�G=�������������V#V��iR�I-��S�����*m�,��r�J����,���*m�T7�0��o��!�.�X5�<4����E�8,��FQmfWbU�H	��6���*m��:!���	�5%���0tj3��B��E8E�����_�X�a��$80tS�L�"KL��XU%=�.��S���(#��z�4���k��V[m5���6[e�Ygq�nn`Gr���XUgV������"��wY�H(u�U�pR�����,M��l����~���*�J������X�&����4��H�G}tG�5���������{:�[MJ�t�;L�8��U�0z���tPF��?XsT5�s�=�h}�T%VU���5b�����%�������p$w[�
�_u�Ib��7�]RUs�KK����Ca�d�O�*o��fF���H��5U�5"$ <eD+"4���h�%-2��PK�����Qj���j8�w�e��������@��dE�@$�~D��tp�'������|/uH���pbK�kdpIw�������i��TFM�)�e�QLy�0.`\����t5b��~��_w��]�q�r��otW_}u�Y�X�����p�m�/�l��X��SwK��#�}m������^���I6M������A�m�F����m�;��H�T�K�Aj�*��2�cY���l=����U������J����Y�&MC�%����,���K/�"�����Zk�UW]5<��/M|�k���u�9���BC�0�� `����k�=������QT[f�
�j���sm�Q����~�4�]7�%ia�H�"P\p�F��L(��h��������%V�[�k3�JsFH���I��M/�h�?���e��)��c�-��Ak��^{m7z�h�t���S���N��EDPm)����"@���eO�w�����9����(K��i�CN�&�����F�:��Mrw�|u�^����������fca����K�j��H��2�E���.�-����.z��y�|�5��k������M�0fke����B���a"���B_�
"C�,M��9E�5�����Rsa�n[����g�����5~����5�bYr��?���3�I���/v,��6�Jk��%�N>�d��c�
J:O�����x��I����-��6�\]`������t���7�O�tH�M�����H��1�X��	����4n�=�����|��>���%�b����R����#�(����S���T��{��o�}��{��x/�vXD���T��Z'%�#d�^�6nl��+K�i�����������iKv��{c���>-�X��1��K��d���������p��6�U��K#�jC%?[*n\���O>���[��-Y�[�$U��I��1C�0��!`���e�9�5e���F<RkY�XUu��~���_��:H�����?d��Zm@^W��������2>e�U9��(Q�A�y�8F�HMO#>���F�"���JS�i���){���H��C���y���J����E�
^��~[�Uu
51�U8X�0[�#�uUE2V���4t�u�9"o5-�$Vi����!��B-����o�
����?tJi}~���%� �����~I������
��%���4w�m77��s����F����7M��Z�U�U�A�6r����p�����M7us�1G���~O��*
oIG)�b������V�>�����|�;e;�Z-B_�1������(-;�$�~�������+^��>�E	���Q�C��+����*��rD�;�e�]���BD��f�m���,��w����.�@������>K�l��h��&��~���F�F���2e,�q��a;���n�4�����A�g�=���4iR��_x���F���nU	�>���X�(�P��|��7�o��6�}��#�J�6��z��m/u��2�R��8���t��}���E+�&�YK#fw�e=��W��d�*s�V/��!][��44_\���>?U��*FJOy���<�p�X�����*m�\7������������*��l�1�7��o��!0�0b��2��{M��y��k�����kD��p'ViN'���<��<��S��N�H���$4b�dL�7aE3|����|�+n�5���'E4bU����Q�����5���Tufid��}�c����4�)!��(+���[����f��3�8c�1v�5��v�u��i@W�H��*.j/$�}
�'�G�Y@�#\����IF�b��t���n��sN����6��H���25�U�[p����j~zquS"d��_mi%�[j�����eP���"m���W�����|�7����p�}M��t{#V��������!9�����a�7�����R=)���G�-^'��kb��2	\��N;9��y�&�T�}���u�>}i�9����Bgal+��:�;�s4bU8S�_�V�i�cam��w
hK�m���n���x��3��D��]q ����H�������>C�;Uup��6��>/�N(E��w����[���_��A��nm���V�e��0��0��h�HqL<	�,�j��Ww���q��-���S���7�^�:���T���ce��>��H���l�s8������:�6h�=��4�A�m^YB�����or?����z��;�*��6��
%����J�p����&Qk!"���6�Ue�U�{�{��g�WtR���"�:�,�5/�$VI�������!`C#VM-;�Xu�G�����%��6�8BVVm���Q]tU�������/a�)�����)s��'�p&L������'�9$��f,,kh��.KX�.S�Ci
�0�p_�XUuf����(4MY"�����9�!�5�?��-��%�Fz=��9�0f���?v�L3���,e���P���X��"���~�Z���J�&�5�J���|$l��U,�C��*B�0�|�e?�$D]���G���J��8q�c�'I FvCp���z�H��ij�����e��:���d���:z�A�j�1(��N�tmRC��:�"Nt\I�hyM�������6�`)[�1�l��~�&:
�/�y�+AE}���m����~�I�$VI�a�Urh��@�G��.����;��C;���~]�(s��uF�����t*J�5��:���S��cKz]z�����o�'����Gj#�%�4�o����)U	����=�����R3f�;vlM���]������9���2��Pf�������z<�d{�q�����E�'��@P��(��4b�mn��W��wk�DJ�P��W�:�x���>���X�-)�;��X����N���xv����rv�e�z���<�_�|/�n�M,���Y
������d]�]{N�z��i���/u+�nX��dU��u��/��~��*M����"K�NU���H>���*ml��������!`?�X5�L5�^�t�������f�~(1�X�N�~��Y���w3��!�q�g51kX�P��;d���;������cU�o����k���LNQZ��Y�l�P�"��w��0����c��^�H��y�q�2�D�&���5�:��:�}��'���RJ!�Hz����(8��*�*��{��*�1$g���^{��1[l���8\E4k�X��-��*"0��Y�7>�\s�O|��1O�#�����R��*���k���.1��6�u������I3�N<�D���Ov$\���9.��_��-�����������F���v��������u��F��	������V�]�{���������G'�$ViK��q��5S>������A����h$��!R��I��FN#:Q���)���}���$b�!���2�DGD�%��e��Y�y��z�%f�������w�^EzV>�n��tp��s�	e�M:d>��-'O���x��9�4{=n�=C-�D_�3����V��`��g/����/�q\���	�+�pI��|��6V��U����-z���6�}>�#�J#���}=.Mo��I�1��wD�
��uM�7���%�hm���5��e�j��}�t�D�����I�k�/[|���XU���j'T���*K���]j�����o��I�����%Va{�J~l��}C�0��������F����X�:hJb���������:���/��j��6s8��!I�g�g�Vyvl��T�Z^z�
�3D0I����F��J���C�X���&$�JFz=
q��{�eE�%/��a^��5c���/JK�W%VU%P����������D,M���a�O�UD[�,F��������~�)�����|��n��6w���wd�[�����K<A�{��7���:���a�M6qD ��u$��_��_s����*n�u�MI��5��E4=�	��6�\K[�K�(���XV.H�,=D�,Z"���x����7I�z���\�zJ�5�7�}�M�����K��!4���J��nH�NEm�O�J�ZG4�5"��	�X/�(�	���V"�i}�WK�}�n��kZx/t4"Y��K���3����4���Ss���v��6�v�x�M:d>�9g�����,\�E�����i���2n�=����!���&��}�C�pt��N�H���4���Im�.�=jK��^��_�VBB�,��������}�?�
�*&<2F���H$����G~K�J��P�l�������b���d�=������nk��#Z���9C��P�4Q�|�U�o��$��3�����G�;���_�V�
��aZ��p�I��*m|�E���MM�I-)0B]b���9���,hm]��v�0C`H"`�����ux�����s����WEp�1�W��`�i'L?�UZ8�:FN��p�	�l������pg���O2K����\�2a�O?��[5��W�*2���8�X*
�;FA_��"�,��i�E�����;:f"���w�;�MK���}>�&��%1���G���^OC,5�W~@�cg(u�DaZ)��@����7R�DC *B(����������������Jw��7�����K.�������G#D���4b��f,z
�$����>�h�����J���"d#���"���sadML�%�Gl�����^�r��w��.�((�_g6�F`��#ud2w���SO=����l���Ts$k��i�~$�
��?�*��P�"�rm���|���}o�1����_�Hi&�����$!��E�����F��-��~���SQsz�pL}'����7��_|q5��pRAVdI�P��Q#��t-d`�0�Rg���G�b�;Q�$�c����;��#u(��KQ�M����6F��u��4��c�Av�|���m7�h3y��g����N}�M7����*]�_s:j����Cq�F��H+��D)��F�jK����vM���>��"V��QhB)������SO=����g����M���o���J:�m�
6M�y<�,�f�����*�5T�)[�{
gb�X� ��6���M}UYb�f��C��V �Q��Iy���P�����eW���0C`�#`���e�7��5����7�i��c���Q�i'L?�U8�q��R���-��g�k��b�ZU�������1�����O>�=��c�\g��0��z�9���-]����������&�P<���p�3��n�`o��^B|��j�{�-#������9Kp�~I@�_��o��F��cE�������:N5�/E;��I,�wPV���Jsv����e���it�X�xf�v��������o�����F�f���:c�J7��]�H#0p�n�g�Jq�C��	)Oh��"-�EZ,���n��:�mZ���*"@^f���/Q;p4������P �o�������7I��y#E!���F����2�$Z�T����������V1�Cx@�=eVuy���g��w�����5������li�02�6>��I�?�7�|Y$�/��?r`�B."�e@���-z�V����36��U�����ke����������D���HxO��l[��M�Z�/�hD�,+���X{��2��)���5bU[�7��b�������/b��Q-���	P>�E[�&�J�~��_vy��~�����h��/�|�W}O��}�ry ��%��6�<�%������zP���~_�z��G#I�OlK_+@��c�����U��J<�&��&mqhKkK_����~;����q�7�������4�N������]o��!�[�X5o���EHZf�����8��0����;�J����W	��}� o ���+�6I�>����4�ZS��@X��hD��x!
�%��1��8$B��f	X>��V#}pO��|:��'���'�������x~Y�|>�Z!��#������������Z�8�`�Zk��V]u��pW�����"�"�2�
���p������<�����]ya��K����e�]V:��D�(�q�j����H~��8�xS��%�	&8��H�q�:-b�(�1&�
'KTy-�
�X}���_,O�8��DJ�"���B�I��� ��u��!C��Oh����<|v��~�"�o ��R�x�E��Z����P�"���2S�L	�"[���[�������������qKl�$���.���/��l�@�w�D7��i�%�p[n�e>������1����lmC�]��
��?>#��S�lm�)�
������C�$���4�0�	�,�/����g��|������Hg��D���P����C����
,I��<i���Wf����p���a��^y��\4�u���p�&�p��s���h>Z�e"�3Y���t�IY�;�>�X�����\���s�F/��>�Z����s���;�<w��w���m"+�h�BI��v[���J�*��N��}*�9N���C�$��4M�y��
���v�~���e<T��Rx7�F��b���>���N;-����-�1W(m����x��Uu<�������u���h���!`�C��US�D#Vq��k�u8�$)�������MbF���0��X3-��rn��6���k.�/���~$�:�]�`�3�O��h��e��g�}�YA�����A
+#<��ci�P�����`��v,E�*8tK�	Hc��b�)�#�f���g��OI]t������4��}-L;3eK$�*�D��e�i�(����[v��y#�UY�I#djFA�I4�w�Ce�h�r�F���LU1R2��a{'myD"�����f`�����?G�8_V��i�b��(��C����?���_�t�m���%�$���R�+��?��S�
A��E4���*AN�hH�y]�}/M��C�Xu��7�����C2�%Z�SY�������}~��M�b���!Z$��2������������6�8f6wK�t*2V���N�D+)jl����������	'��X5/�GSI������%�|~�!��� �K�n��}H:��8u������lF�e��o������������3?$�q�E��n�2n�=�-�����G���^;��p?�L�4G���"?)�0�]P46��m)��w�]�����6���J#���*�E�L<	�����=);�����S'}����$-��#�dY������}�A���6���j�mw�g=�c��W���p'V��et#�����M�jK_���Z�*�W�����6��D���*������:��&��!`�#VM-��*��%	X����E��I������;��U����_�-K��9��e�]���pw����a�����LA���>f��JlF7�|����\s��X�;jN@���H�`�"�IW)��
�4��ga�%,u�\z���B�Ub�I
��$e�|#,�(-�H��21#��J�sL��+]�r(�
��D������Z�
mK2IR�XE��s�4R$fh�O�YC<3v_��XdB���U���C�2�,��&ENGm������_v?��O�GS�,���T���cW���FIiu��%�\�~����I�m�c�W"�aL�����d�:D��9��2R�^�]$����D)������+���
'��\���F��}M���,I$��H��*�l�WI_l����q��^=FlI)�X{���}��/E425Dv�~��hmk���O�A�b�{��T��r�QG��^zI�E����c�^{�����Y���a:L�aM��`�"8�%&�m���S����Z$�bb>��������������*��6���l�(�e'��i,�/��H�Ztz&R^EB�-������{5b��P�>�u�m�/����X�'�c"xa7O-j%��;��3&5���b��(|P�=��R�G�eI��ucI����M�y�[�1�TL����������T��0�Uem��(�1H��*���r�e�'�P�O��%VizU/�����1C�0�� `���8��{.�9P�qNb����3�VU$#�XUDJ� E{
����[���J+�4����E�����u�����G�a�F����,3E�I�BX��`��A�^1�^��I���4e��?��OfH���5<�P���z+����CA"����h:��,��,1G�-�s�=�n_�����S	/���	�I!���4��E� ��hQ> K�,��:�*�H%$����	T"�����v)K�`��x��M�X#�i�D�g@��<px�rSl���E��JK���P�8M��k.H�b����S��s%��o�M����?���<�\F�J�H�e���br�q�e��kR"���3�^K��s�_�H�o�;��B�������~@�I����3�q
�"BB����=�H���-���������m��*��~���26�,��
m<zul7����0�7�O��F(���%�\��]�����eoy	tzVE�����?I���{4?
�S�dZ�|Z|�����u��E��b�-:K��H�U������@��il����m:d>o�������*mp��M����`�|D�M���~:k4��4���|�=�P6Y������>�5h���e;5]��#V��|}>�l5]�4{e_���'��<h�A�Ah�y���@&1�EZ��thC�wR'�rO��N�}�>P����o���6}��������d����j�mw�g=��&U�A���M�C���&}�mBH&r�$E�
����|A��U�+�5���0>���`����=��!Vi����G��7C�h7F��Z>E���~;3
J�>|����g>��,�K)�<c6�������H V������`�u�
:����������A[������#��X��C�'@���h�z���$�	�,fSk�4cv�#V�Fm�3J 
*kWK�����el�|l�F��Kz��,���AE2��U���l�of�2�r�$�7�]v���{b
�����X�%f��Nv8�vDN���D�c��&&p����0d�}���S3���n]bi��0�S�`@�D�U�?�8Bq�gp�(�o)�rz����{��%F &3EN&H��#���_H"����-�2M��g�qFG�
�5�@U4;�g1���0�#�H�XVQZ���S
��
"QQ�-���?�:�{�������+�Gm�?.L]VP3~��zC]X����o��um�E�!:L��_�d����o��%�@G?M;������^3pVu�UbUl�})�]�aR;
�����M^I%�r����*�X������t�M����������e���2eJ�K8�~_Z~�o��U��J�a%l����9���)$#��1B�����O����p���h��ue"�q�����9��D)��N�hE1Bi��������~(����D��t'H�����L["�H�tH-�)�������[T��=n�=`LCI������{h#!s��	}�
���?�dd9A�D��.C�*��D�����g#Vq���K�
mN������I�"f0!��#�Puk�����|�� ��&4U���I��S'��glB��	6Vt9�X�����0�6��������o�C?��V�C�x�z��|�����;w(��G�nl��X��h�Kb��"���*���V�iC_U�XE�Q���_�aI��_�0aB�]�T;dX6�k6�"����3C�Z�jjy)�\V����)�*�1�h�!c3g(����e�)U(��5�T�3�4 ��\�J�����Q��(ZR�-��Zd��L�U�,���`b��&|K(����e���fmb��h@��=�T��*���c������PF`Q������������������!�b��2�d��5�<���v2&8w����-x��'�7�^�*�����������1��O�o�8p�����x6Q	5��O�o5b�c$R���Y�r����DCY@B����JQ��;�t]tQx���9AcN!��6���>Q��D���w�?Sf�kF�^���c��t	�8m3)�WD.@�H�DM�g�����\�0Ad�|A:,��C�W�/]$��;�*u���o��c�jz(������>��A#V���D���C9�=1�h�7�n�wE�+��6�,[�U+�~������GD]Mhg!��2���v��!�P�Y��{S�&Nf�}Mh��^z���	Y�>�|��q�m��&/ii6u�i�"�����g?S'����g�����O�<��3��)J�OS�2I��B1)�r/����;/�L�(Zj�����O�y����Y�"�x�&@����>C���S�tj�N9�-E�9.�~�t�|���cV�u����*���p��u��5c��2�z�q�5c:�����[�(�;���I�4����]�e�G����E��~������#[���!����[MD�E��o������_�+`/C�*H�1�����M�y<�*��{�iw�w=����T���g8�|y�`�e����hQ��:��w_U�X6EQ����%6]��m�Y����������/���6���
C�0�F��Zf)�*.���M=��kL���0�h��J/�<�hG��Ja�b��eW�}�{��U�)�;����{�?���@�h�F4f��1jy@q�HDC�X��b� �w���2s���b3�����,��M�]w�53����9'�pB#��`Jzyi�X�O7�?F�w�Q�$�O���?�02�to���J3N��[��X>H�h����b�PQ��|:e�������fd���<��R�%
�'8@dHH	,��E�LM�_WD���5���.�;�"�U}GHu�#���4����U`D�
�i}��]��O7�u�XE����3�	!j�U�(��3p�.5U��4Lk�6��.����r�q�����&1�l�-�,|~xA�2n�c3bc�,���5��8�R�z����hR a������s�<@��
D��T��b��e���VB�>�����.����keP�=H!
T�)�/��_K��e&r�{S�)��~�o�;�^�O���c�U��cE"+���O�X���['mzL��`5��I�m^UB��c7�i���]<�a[�h6��L�*[�����F%������
)+��>vC���I.�c��&��!`�#VM-��#1,~�U���b0�PI8�_��W���Xh���0�R�+b�����
������k���3�	Z����%0�I�+���M�p�Kt�)�-����K����)�`Yr!��@���p�@�I����3�
C��������GB�B�)%	!�i��-W\q�c�|a)�7�x�c����*���
�n��VY4�2i@>ai�� V&
��H�}F�3�{0
��W��������y���o[[�&L�}����:_J���'Q�RE3���XE^Y>rz����(?�D+)++)[mi��� ��
y���C�=��FI�Hc��R(z���i�~(������,�@���c�����n�0<A��PG �ECsAG�]
���i���S6������������g4!E�`��[����8��qJUJ��t������+E8U9�>F��o%bQ�6����g��!5b�a�����k<����e=�%��f�
tQ�|����H �����"c]+�g�i�����TRl��Wz�:��e_�yn��q�ni���k�-
��r|�o����r�)��1�B��"i���J�����v�~��<C��z��|��
�&D��hT�r/�������������+�tE�G�k�-�B�a�T�XETb����k�d�|�7C��
F���sb��^z���A+:f�n���QOS8������
�*�%����sB}��}����H��
F+����6Vxw���4�H>,�E�.����
A���m���
+d$��L�wH!������)S��A=����+��DJ�z�B���-���An��otW_}u���Pei9��,��1y�J�"M�BY2�����Zk�U�!��3�����+E��<Y
�\�$."V��j����_�?�+���� D��f�Cl���	Df�������E�������>�����8dX���h�S?�?���}'��a
��3�\�A���R���Qi��F���v����m��"�Or��z�����iZ���*��%��wp�V&��^2���������Mb��\5y����;5����42�,���"^������g��7����d)�^J�N�0����%\�{�}�Z�S,TG���g%)C�byw�y��L:��8������m3�c/�7�1������m�!�w���=��n��[~�������w�=�= BA��"�KV^ye��k�Q�FeDM���$5Zc$���R�g�������=G�?!�	5E�Q�)�*{M?��>�m!V���,�������"L����['%bc�QU�<�X�4��U%��y������ �b(�W���g8�X��Q�������������� V����T}�c����^��y�J�b�r�Yg����c;3fL�q;`��!0�h�Xu��'f����k��vx��>3>�AF�l����_�����CI�3����3�!����3��Q��Zj)������)��2�t�t�e��1��b{-8���������$1��y��2���*TX�))�E�]z��3�
���h!�Y2�����6H����n��M.�A9i��d'1�S6�t�JQ6�����h\D���������g�fs?u����0���ha�1:���*�-�cM��=���|p�������F��6U����������x��9��yS�QE��e�e����_�E2�E�b�*�\�����D�(�^E���A��J^-Br���_�D���)���;��p�!)�o�g������:SywHR8N�%T�<����Y��p=}���_��O�>0�CLp�S��$�-N�\0s��%T����D{�y���e=�b����3S|)3�hJ ��+���� ����DX���b���K]�w�>�D'I���8�����QM��ZzE�0����
�Ub�������.�b���>�����[`S�:�w�UWm}�}�<��������d�|�����D������9��3[N��r��^m�wy�6�)t}�B3��^:u?�iH1M	�	�����(m�'t"H�M�qTUD������6�l���c?�pF0�8��l.e&�HiP&`u��wK��c���P���cu1��5�e�'�I�-:��g�q�>R=>���e���r<������@��"�'�F��E�>��v�e�E���"/����?���Y�bo���@[H>��`@;����c��,�X>����}��G�����w����D�H��l����'�N0���vN]���Y�}k�uR��@l�)�/����`R	U���<�fV���/��������c(n���6�Q����w���r�8	�c��`d������z�Wi��*��S����R�?�8���;D"��f���^����k~��I�I��E��!`�G�1bU���e�:m��(�#]0��d��2T(�up6`�gf�����<�?'4�2���G��*���T���a��`�|p��2`@������>�=�?HW�1�D��a ��l�:���{���4C��dN�u�ve�J?�)X��������O,��F���x�Q���v�:C$�1��=�p��<>����1��G�/�;?���cC/�JffB������~< q6����L�B����Y�~�A?mNS������
�`M���w����_Y�1hP��}�'��o��_�������/�z�m3�L?��Y�R���,}X�2�M���K_A?A^�������GQ>m�~���#},���7����� ��m�q��
�i�� ��?�u'/m���W���v+�83����ih8F]��.�I�M����Hd8�@?����Ili�r4��n�������{�;�i���<�-�:���l�|{��������������R�{�Gdz^x����L'����E�L�k/��a�B�~<B�H�q��L@���r���fc�0���{����4�C�2�bL0����b(O�������d%�9�76	�G�#m�~���%�8~~l������o�(�m���<�����z�~�F;`����~���L�8���;�P��������Q�.�yA��5�o,�J?'{�y�}C�0��"`����+��@����0���i����!`�@�������C���+=3�o��'����K�0C�0C��Z������TC�)�/w�-�s�����!`��!`#@�1VBe��v�&���m�0C`�!`���2��/�1��)�?���U�P�]tQ��D� d��!`�@; ��r����y��RK��U�H�u��!`��!`�i�bf���G?��k�4���k��s���#b���Ye�5"�I�-���EC�0C�(�Q�@�#/��������]���!`s�X�P������	/��n��V��1c���c����!`�@K`y�3�<�#7+���[��;���F���n�l��!`��!������9���w�8]p���F��+�p��rK�c7�`��
+t/:0q�Dw�wt\f��H��!`��!`{�1w��'w�	�2�ab��!020bUB9�a�q�	
2T�l�����gk'�I��5C��
D�:��#�K/�����������9#VY-0C�0C��0���Cq������RK��7�|�1�1z��*�U��;��n�wG�_~�ew�G8����=������a�7C�0C`H#p�����~x�;�������c�c��!0�0bUB�^{����n���������s�9;�I}�Qw�)�H�������f�i��v�0C����;Y����Ovd��1�#�at��U��0�UC�0C�0*!������������~���L�^"�EY o��[v�e������;�������m��G����!`��!0\�T������u���o��^���0C���*�l�{�9w�1��W~�����#t��Q��k��x��7�[o�U<���6��-��r�y;a��!�}0�x�������}����o�����?��������+bv�a7�|���F�A#V��R�w6C�0C��#@4��>�����v_���[l1����F����	C�,���YD~�����o�)S��I�&���zKJ�-��bn��q�9;h��!`��PE���Ns�<�����;�s�=�C�0����������s�<��z5�\��:��n�Yfqp��d��$��m����C��0C��u�]��/L~2��c���G��F�	�l�h��!`��!P��O<�&L��qK��t��!�K���7y���#�0���&�_{����I�+��E��M7��w�}���NM�N��!`��!0��'�o8��+����!`���E��U�e���/�#�<2����0:���>n�fH���4C��
�?��;�������~�E�J�a\h��P�����!`��!`IL�8��q�����B�[C���������s,���X����C�0C�
��+��(�@IDAT�e��1�*F�c��0C`d `�����SOe�
	���|�S�r��;�L35���a��!P�W_}�z��I�����n��VK�v$]����0)����gr`�!C�%+`@�����fQ1�T��kD1'������UDW�U�EA��3���o�j��4��������V��w�=_{�^
��m�� � J@�����,	H!J(5�EJ`������*�R�#�k��V���l � ����-[&S�L�Rvv����u||�O; ������q��{������E�U�N��������>����@b%�
g��w���~����_��^��(�rc�3 � �@Y����^x���Zn��;��i��h����������B.�w���j�J����JZZ��.�< � `+���R��_�>z�h�S����Bg@�'@a�1Z������3�����`���O>�d9��X����
����	D��lS��\UP��k�`�i��O�.�g�������q���4 � � �t���_2g��a���N�:��q�@�
e����o��.�kSSS�[�n��{wQ��l � ���R�jIo��w�����!��W���J�^U���������]�d������(��U���,�ONN���Y��o�v@�H��*�v��M��O5��*��[���i���#�� � ��������?���sd�tw������ 5#����4�,����������~��^����W���p,��;@@ ��/��K���T�R�ck�4I�A\)@a�+���@@@@@@@@@ ��U�t8� � � � � � � � ������ag� � � � � � � � � J���P:�C@@@@@@@@W
PX���3h@@@@@@@@%@aU(�!� � � � � � � � ��+(�re�4 � � � � � � � ����*��@@@@@@@@@��V�2�@@@@@@@@B	PXJ�s � � � � � � � � �J
�\v� � � � � � � � ��(�
��9@@@@@@@@p��U�;�F@@@@@@@@�PV��� � � � � � � � ��R��*W��A#� � � � � � � � �@(
�B�p@@@@@@@@\)@a�+���@@@@@@@@@ ��U�t8� � � � � � � � ������ag� � � � � � � � � J���P:�C@@@@@@@@W
PX���3h@@@@@@@@%@aU(�!� � � � � � � � ��+(�re�4 � � � � � � � ����*��@@@@@@@@@��V�2�@@@@@@@@B	PXJ�s � � � � � � � � �J
�\v� � � � � � � � ��(�
��9@@@@@@@@p��U�;�F@@@@@@@@�PV��� � � � � � � � ��R��*W��A#� � � � � � � � �@(
�B�p@@@@@@@@\)@a�+���@@@@@@@@@ ��U�t8� � � � � � � � ������ag� � � � � � � � � J���P:�C@@@@@@@@W
PX���3h@@@@@@@@%@aU(�!� � � � � � � � ��+(�re�4 � � � � � � � ����*��@@@@@@@@@��V�2�@@@@@@@@B	PXJ�s � � � � � � � � �J
�\v� � � � � � � � ��(�
��9@@@@@@@@p��U�;�F@@@@@@@@�PV��� � � � � � � � ��R��*W��A#� � � � � � � � �@(
�B�p@@@@@@@@\)@a�+���@@@@@@@@@ ��U�t8� � � � � � � � ������ag� � � � � � � � � J���P:�C@@@@@@@@W
PX���3h@@@@@@@@%@aU(�!� � � � � � � � ��+(�re�4 � � � � � � ����o�.s����/����*@aUP@@@@@@@p�@QQ����[2a�����L�>��eT �@%(��$ �#� � � � � � � `'�������~�w��*;E��"�@�(���8�C@@@@@@@ ��_~�|���z(��a x5X^��*���"� � � � � � � >
��g��@��V9;��@@@@@@@
�|88@����LN � � � � � � ��]���X8�#!!A�V�����y�d�����~�����M�J���%..�g��,��k����{�a����Ii���$&&�\� ??_��[��Q�U���zN�6m$555���9����W��M�d��
z�7o.��5��u�J||�y����}����T���*�?�~J�w��i���/33���}e���r�J��
4���,���������������������+iii�A��}�� K
�b���@@@@@@@"*��7���W^��#;;[�,Y"��O������]����eK�2e�4j�H?���_�]w�%[�n
��}��������,kS�L�}'N����N��~��r��7Krrr��JJJ��7��_|1h��.��5j�9����T�����7\r��Ay������
8g4\}���izz���������
7������Y�f�W\axw��I�W�bCb-@aU�#��@@@@@@@�(l���!)
�*�+�Vk\�k��BU�fhR�*�QU�G�����KJ}��'��o�Ee]g���3G���86>w��!7�x�����F�Q?��S��5k������^x!�=X����?�:���lUm��
v�O�a��E��b/c�-���T���y	6��aU�v�D��S�^�t����������UQ'�� � � � � � � �@�m�-��}����N�zH�&��q6|���U����kW}��+V��VEBj�?cSEY�Z��������w���LR����-��"��q��������w7n�gl��w�!#G������>�[o����g����E}�+����3|��r�)zq�j����������X��X�Imj��>��h�������v��gJ��������H4��3�SK�����wa�w���5�\#<��3� �@L(��	;/E@@@@@@�+@a���3�<#��{����VV�:������������e��F�/U����i��m���N0�Ua�{��0k�*xz�����'�0�U�\�l�$&&�mj���3g�������M�6�y��f�:��s�B1�D�"��/�\���Sd���SK�oj�_|��l[}���GyDj��m^��T�zu���W^{�5��SVa�*�����^�������?s�-�p��@�����J@@@@@@@ �V���{e��aG��1b�L�6��}��)r��g�����zH^|�E���o��)tR�RO>��y~���z�����]��N�Y�����_UTT�3�m��&c���{����W_�����<��S�{o��*�����W�^��;�H\\����}5�*����������>��:4�y4 �V���*�� � � � � � � �@(���v��]���-�_nO]���m�g���.��<��o��E
&L�9s���U�D-+�f�
V�d\�����3c��}��w�q�aAA�4m��8%j����_RSS�6c'??_�{�9�S��4l�P_v�{�)u]y
����'�/6�S�e6z������y����+��TA�jeb�� #
�b�k@@@@@@@�h
PX��?~��|��A���y�
2������N��{��_~��4���U4�O5��*vJKK3��w��T�j��I�)��_����c5��Z*��T����#�g��R�V-��\�G+�R�6h��|V�3�"mG-��f�R[��-��o����_��U�_���Z��� ����B��+���K�II���6�K�f9�M�yb�,IL���X��} � � � � � �������^{M���4�.���T��*B
��\�R�<�L�TY�U���*X��c�l��A~��wY�v�,[���`���i���~[��g���l������[/�����$&&���?8Za�����K�.�m����Z�O�q��]�}j�			��a�ZJ����2�e���UV�
}B��}��,k6����'�$e�w?qKxjN��� K��[����[���� P�y�,�@�<���(q
x�7�5�G���7���5 P�9�,���SX���:u����#(�a���~�7�%��8�����*5[�'�|�/?�d����5�	��_X�f�z������B������5d�QW���V�Y���S��~��'�_�����*U��]�V�wq? 	
�"��3���=�~!�O�YJ�����/8��L�2�=�u P��������BI6@�(���qB
�CB�p��7����!�!y8�G ��OSX������|fc��wa�w�}'��v��,N����_Xe\;m�4y��G���8��Y��PG+����Oe������������S�N�}��U_}���k�����@ �VES�w!!���Un����&dIi���zf���[���c@ �P	U�������/�C ���H�|�'@�p^L� oDZ��#�lrHd�Ka��5Z�U�/�~��
�Z��C���uk����������k���;���*�R������5�f��_~����G=s��>�G+��3g�\z���=={�<���(99�Uv���x��mk��@��VY1*�	�

�������i�������y�)��X'i��J��� +~(��<�E���
����#`r��@��y�^���XA��a�(��+@�L�(���F�����N��k���l����{����{w�Z���n����S���������k����z�����{k�����;��I�VX�q�F9����{��U�����c����X��b-@aU�#���@�����{�4���&���:vpc���0��� �@��� ��<�	�7�SF�@4�!���]8C����82
�)@���6�B�y������*�k4
��o�����*�R��eff���c��;��c�������H6m�$k��U�4t�PIH�L�`����z�_����.UX�
���h�U�}���b��>������E���m��^�z����l��������L6N ���(��pp��-���$`iJ=)��Z���������W�1\�1�����jl*@��i��6 �X$t	�7l,���E�	�@�����NVm��.2?����l$]�h��DxSJW]u���hV}��r�����9r��q��������E�p�f�26��L��^x�y����S������em�����w�}��w�}WN?�������?���~�}�����_��;g�q��Z��8��?�X�u�f��8p@N<�D���5O�X��,&���dal$@a���EW%����g����JI�S�K��e��'IJ��
<���C���CA�c@��y�n��XK�b�x�� @��C��#� oX+��	�C�1k�7�U3g��+����6l������s��AQ�N����j���O�k��z���e�����������������B�?��l�����y����5�\#_}��~l�@ub���2z�h���-[�*�JKK3��w&L� �����t�e��O<aSXeR��6���F����X�a����%�%�N��x�?h��Vz���V�!��E���"���H��a�`�U,(@�`P� oX<@t
�7,�����!6
�
����-[��EQ��i����O6������3Y���>�������3�<So/))�g����������o�]�U�f�����7=���f�Z�P�N��t�m��&���?�k���^����^���E����X�?�|Y�x�y�z��=�C�f�����'��W^y�lS;�p�]�vf�U&; `#
�l,�������q�w����������W�WO���h�r, �]@�f�
���"`1r��Bw��y�A��XL��a���l&@�Y�,��XV)�K.�D��T�T�6md���z��w��?����/�]w��������k�cc��SO�z�����{e��E>�	�k��������k\�>��S2i�$�6�@=#''G?TEU���3N��j�+��`^^�����>�������.���[����U> ��M(��I��&����d�WJiR��V�T��h�.3+{}��<�k@ :�Pg�����N�&cA ������F�.@��{�?� oD��7"�$r��������j��mr���������������;u�$��O�������Gy�������}�*Ux�����o������?%�3k���[o�U��]pm�UP�
��7
��E8F;PXe�(�G�!��%2����~USv����%%���M�&�YI�x
� �@,�� ���{
�7�7z��U�!V��@�>�
����"`��U"A?��9��q�j�g��%C�5�7c�������/���3���r|������]z��a6����r�y���jg����2yo���O�q�f~R}ST!��Q���>0N���K�f�����Y�`�<��c�a��[WN:�$?~�>����������_0������K}.?|��<�����{���e\��O�yj&�`�r���K��U�V�.�
���U�	A��������C2{���F�^���=�X�D)(��'�t�\�������@ j�P5j^��c��	%A &�����Rl-@��u��<1 o����"�r�cB�@���o�l��Q��_/�����ysi���������mj��5�n�:Q�O
4���Q�F���e���c�����*����
y��z�*,�R�����
����$ `Q
�,��@y
K%�M�yyV�%��\)Mm,�����~�f�3�P�m"���E������[XX��a���5l @�A��" oX, t�7l$�����!]C@�EV�(�����U��+-�,�PUJ�������$�_��LF������A�d(DI��%h^��C�!
,�B �����h*@�ph`Q �D	�� � �@H
�B�p��JJ�#3V�7�;ER�wIR��_���G:��M2�? z��������g��y���
tr_��y��b\��
� PrHe��@�%@aU�$y1��
�R�
����+
�����.�[TM�����M�����#��Q�� oxk�� �TT��@���w**@����#���9�[�}@���U�����I Xa�����^���:R��VS��Y���vaz+�A�H�CA$Ty&� o8;���H�C"-��p�y�y1eDDZ��ia�����!��/�C@�.V�%R��2�-�.mP�mI��+%�{�w&����7O��$���e<�f��?��W#`S��MG���9�"���H��a�`�U,"@��H �6 ��4pt@�	PX���2�	�$�>0�����Q������������zg9�s��ki@k�C�5�@/��y�N���XO�b���#�.@��z��� oX/&�;	�C�-�� ��s(�rnl�K�*�����r��J���dW�����s��=W6s��D�~�P`���cb-@��ux?� ��;~��X�7b��;��y������Z���~@PV�=@��%%"	-g�R��_��R�H�3:��lZ/M�~���GL�p�?87���H	�7"%�sp�9�qf��S��NM���;���3�D R��H��\@���U��Z,*�����qW\@��S�Kcm9��ZgIQ�V��m�&w�����ki@���CA�c@��y�n��XK�b�x�� @��C��#� oX+��	�C�1�� ��3(�rf\����H&�d�.X�e/��*^���a���3���&��?�:��	�7�3z����!V�}A��
{��^"`%����A_��9�~1�� �8Q��*'F�1�N`��bi|f~�q��yWZu���{k���t�)/�l�Z@ ��P[����v�}F�:����� `��]"E?��y�:��'�Q�b���g@�'@a��b��\*p|�C�|K�����-J~������DY�Zw�\90�fZ@ ��PUn^��#��#�@ f�����bl+@��m��81 o���#�r�#�� @���U�!@�#����e��%�q�E��������H?��;H��U��b*�1����R��a���i,#@�L(�� o�&Tt��7,
:��-�!��F@�qV9.���7K�3�/X/g�t��J~]_����Pn���[�7�������!`Y��eCC���9�a��XJ��a�p�l!@��E��$� �X64t@W	PX��p3X��p�!Y�>p������sw���5��]Ze�������?����#`K��-�F���9�2��#�F��a�P�Q,#@��L(�� ��2lt@�	PX���2 7<��a�l�������o�������T��e���$=%��\��	�C��BB���y��!��XZ�b���9,)@��dX�� oX:<t��C,":� ��+(�rE��[�o/�:=�xV��v������me�f�r�/�i-�������B@ f�P3z^��m��
G��K��N `+����Eg��y�a��V�b���q@%@a����`9��!�qM�D�f;�S�m2{Y�~������6����?���#`[��mCG���9�a��J��a�p�Y,!@��D�� ��6tt@G	PX��p2D�{)_n{�S<���T*���/_-M���N�o�>��@ ��P[����v�}F�:����� `��]"E?��y�:��'�Q�b���g@�'@a��b��\.j9�F������O�����(�j��\��#`~(�N,�	v o�%R�k
�C�z����V�}C���
k��^!`r�]"E?@p��U��/�s��i��9������j���|�~�~m)�����l `
~(�F�v o�)Z��	�C�z����V��C�z�
���!`'r���E_@p��U��-#s��K�����A�L��q;e��M���'���c��X��#`-~(�V<�
v o�!J��
�C�z��U�V��B���
����!`r��D@p��U��1#t���=%R��a����������2�Djr����Ix- }~(��9oD���
�G��#[rHl�y;v o�1j���
�7b�����9���� �8C��*g��Q  p��C���~��\��%����d��|�}�������>�p��������V�,@��s��;� ��>��	�7�1��@����=@���;G��#� �
��KF�����������,�(r������;��o�������^@ 6�Pw�����v�}G ������ `7���"F��y#�1��Y�b���w@�#@a�sb�H���
��7�V��w8.C>z���� �@l�� 6��;�7�=��@��!��=@�n�
�E��"{�F�c@��9����� �8G��*����  ���C����rV�"���LJJK$..N���]�S/��*�Q��e8B����02b&@�=/F���
����#3�F��y1� �8"�@�PXe�2�x��|��� ���H��kd��\��I7��z�*�A�A���CAT�y	� o8*����C�N���y��!dD]��ur^����!�
'�A@��V�6tt��8P*�'���^{�y{d��u���������������'����M8E����H2b#@��;oE���
;G��#�Fl�y+N �8%��@{PXe���{�*���C������4?$�j��OT�L���(
��/��&�Q��E8F����P2b"@�	;/E���
[���#�FL�y)� �8&�@[PXe���yDJ������%%��tn�!�����e�����
9\P������rF�,���@ :�Pg�����N�&cA ������F�.@��{�?� oD��7"�$r����X@���U��=G@(*)���^)uj�G���j9���v�����{�:��\pZm9�q*K(��@t�� :��'	�7�M��@��!�7���]��a���/@���9oD�I�'E�� � `_
��;z��.PPT,C'm���y���R5-!@f����_���s�|�_s�~�s�,7���������T� ~(�
3/A�Q�
G��� urH��y!� o�>����7�N�p�9�Q�d0 ��V��*����#�(,.�!�{f���i�2��:4�X ��U�.�����R�O(���y�o�%1!NZ7L������
�CAd}y:N o81��	��	�C�g��p�y�)�dDO��=k����!N�*cB@�~V�/f��������*;�D^����:��+��Ny"�������0}�~��kZ��M2$59^�6bI�@-Z��?D���#�D�������9$z��	��7�I��@�����M8Q����2&@�'@a��bF��(--��>�NJJ<K�7���i��s�:��y�����M��IB����{����]O�gI�*��?D�� �8���B����9$���G�7F�@T�Q��e8N����2 @l)@a�-�F�8"P*�2�����;���=�U����<r��{�>.�Aw[P�I����X,-V��o��',	�H�������t�(@�pbT� �D��7!���S"�8��y#z��	'
�C�U�� ���(��_��1O~������z{RB��6���&��\WXX*���/X���^g��i�T����$$x�eI@B��?D�� �8���B����9$���G�7F�@T�Q��e8N�����f@[�n�5k�����{�����X��:tH.\��w���K���+����PTT$�7o�-[�H�*U�N�:���S�����Uwv��!7n���x�U����WO����Ux�������v��y�4h M�4�?�1�X��*��;G���_��f�,g����Ou9�s��^vu�L��`f��R��U�����B�����:�V�F�����,@ ��P~S�����N�0�C ������t�(@�pbT� oD���#�tr��#������s�=WV�X�P}�U�RE�	&��������K/����_�G���U�V�c�=&3f���}��r��7�\p���={��/� ���[vv�\u�Ur������,�����:�>}�6L?u�W�#�<�2�@��V�4��YsVM���/+����i�dy����}�y�\02�r���M:y���g�����l��sK:���h�-����C���
+F�>!`r�}bEO��y�*���G��a�X�S�(@�bT���~�a����N}�+ZX5s�LQ�=����7�xC���n�Ue~�y��2b��2�',X ����\�)�g�������������p?�x����
D���3�U�:�#������X�m�|��s��d�6��g����#�j��4�/�A[�0p�u7H���zf��4��,�pX���$`�-DB�
"��3p�y���etDZ�ia�������)#B ���H�|�-@qv|�8�g�}V&N��34�=�Ha��9s��K/�yF�
�>��s���|��7n,���hW3:�s�=��'����WK�~��%���u����O9�}V��UW�Q���yF�?���j60�|��QXeH����U���T���D�x�,I����/��h���w���O��Q
�>O��6p9@I; ������rRg���*��x�%i@ r�P9[���S�N�,�B :���8��$@�pR4� oD��� �Tr�S#��q��!5S�[o�08�=.OaUqq���������-��(���k�t����]�G����S�Nyyy��_�m���s����+��~�O�q���/^l�Yg�%�?����][������^+�����?v�X���3���y�v0{�l5j�OQ����*)�@��*��\���P���W���m������rzJ��r[IJ������Y �o)c9��r���2nH��_}����%���E ��Pia�������)#B ���hj�.�!@�pF� oDS�w!�<r��b����5K/��.�����j��52f��?����~$
��x�	y��'�wL�0An��F�����AK-����o��O�����+�'O���D���y�f4h�9#VFF�,Y�DRSS}�����o�>y�������n6�)�2)�A�?(�������K������(Z�h#�������7��)=�U��V�.��]�J��R��.9�cu�2��>[K��q�@D�� ��<G
�7V�@��!Q��E8F����P2�&@��5/B���G��1���g�����������UX�fqz������B=$��U�����Csi�f�����~Pe�I����/�����W5jd�U�4s�L�-�5�IU�6t�P�P��_|�y�v��<��������;���5�8g|RXeH����U���T@-��N�T����r|����M'��i� E�R;`dW��'o~d9�m9��%91^��y�$j�]�/aI�A��?D���"�d��������9$����	�7�Q��@���7�
8Y����Fol����f(2���IKK3��,((�C���
��233%>>�8�K.�D~���X��l�R:u�$|����p�B})<��kGM�8��ED��t�UW���?o�����������Y�h��������/������SO=�<?b����;�cU ��qc��W�^����<��Q1QN�,_]�t��>���,��3��O?��^h����~�L�4�<���+�Z�f^��B��*W��A:]`���H���0;�;E�n=���S��J�I>_}](��T���h�6j��$����/����7{/	��4J���#�x�/�/��?T�� �:���B���9$��<W�7\f�@X�a��a�N����Gd��6m���������������qY;j6�W^y�<����K�����.��g�>5��=��#S�NU�dl�
��R|jI>c����>3�*SK�[���R~�}�>}�^�d�/�g���B(��O>���l���>����{e��a��`;�F��)@[�z�Y����W�p� ��������G����f����`��������3������T�����I�cO=�x@��2���>���l�U��4���7J�F��������M���?,�J<�hEU���
�+����i�A����(3F"'@��-OF���
�F�q!9�F�ly2n �D&�~�-2��S��hQ���~k�~�d���������T��������Naa��k��\*O�D����������:KF�)j�%��-���J=��1��o_IHH���pV���M�f����l��Q�h}���f�*X���fl����_��qR�v�i�a��W_}U���>��zv��m��p?�x�QX�fS�]C��gS�)�2��D�`VS�
�	���%C8[�K���wj���2D���/�om ��~>��[���A�L��������;���%Wl8l7��,�[_�@IDAT9��cv@���PPyC�����n�8�E ����z�4� @�pC�#� o����!�6rHd"�m��c���<��Z��s�n��pg�oy��w��;�0ox���d���������3E�@el<��\s�5�����;�H��?�'*RX��w�I^^��s�9>�F��j��A2w�\��j��%K�x!���	|f�R�j�j���}��gD���9s�i���a�O5K���V��������
����_�^f��%�^z������'�U> ����U~ "`W���%s�|�w�a��R(/����j��fK�V��@��m��}}a��6��Yp��n��ud��;d��"���t�&i����F� @�B�PP!..FM����*#@���"�N��;�����y�2z�����|�XX��~i���	����y���o�Q>��3�Y���l)�*�y�.�:���e����;u�$���h���?/�<��y����I�&���>(/���yn����LPf����d���f�SO=e.����/	�CaUN!��PX���,�}������h����tyF~Y�Y��c�Ti��HK���R:��������MR��Ny|x���#�k+.[�'�E����g$H��)>���]�
���;p�y���g��G�G�����n�6cE <���8��*@�L��XX�$���S365n�8y��}��t��Z����^���;V�x���u�V}��z�|��e
�lW��{�y��7���jc��5������C�z��/�����k�"?��\y���q��g�$��U!p8�V�@�I�&������Cj��TY�s���J�^����B(�m��<y�3O��w�$��\%���%O�������bY�5�lkQ?E2�}�k�d*$���b��|
@�2����q/� o�3�����7*��� @��w���Uj��K.��D7n��z�����3u�T=z�q(S�L5�Sy7;V�j�Jrss�!�y�����oux�pJ<���.�;w��.�~��qJ6o�l����f�R�66����)Lm�~���P�V���0c�$0�����G���"�Z~*�m)����#Ki������W_�a�eR�v�����-��o��e�!�s���%�'�
��-��}8����@Z@�����[q%x�|@������q=x�C�5��������b����9SS�f�d����]t�����z{FF�,[����/y?��U;v�]�v��.��U��Uj��.]�����
�<�U�V��3�8���������n���������*�@��� �$���t���_P���nc��5�j�����U
���I-�~����8Sjm�Mv�g�v�6���0hK��.O��j�]=Qd'{��Y�
���p�y���g��E�F�����
7�E ,���0�\+@�L��ZX�4�~�iy���M�3fH���
6��'�l�|��2~�gu��(;�.�*))�o��V�g�->>^/dR���U={����{/����7�xCT�����5K��Wj5j��r�7n��P����*}��1/�8q�2D?��������*�@��*�8M���1\���Sa��N9,/J~����KjI�fi>C��������U�tH�wZ)w����0���=�`��"���S��Uk�m�*������@�G�
|88@�r�7���% P�9�LN �@��2`hF�2�e�p�!@)�1\���*���n�A���S�����G}�<�9s��n��<.�N��8P�>�X�B233���N��k�������|��'G��/�(=��y�����^�z��*�R�W��f�IMM5�~.\�P`�S�8p�~���/	�CaUN!��U|p��W}-�6F�M�SLuF��������n-Se�E9>C�;�PNR�r�=���;;��u���|�a9\������ ��\G�_�
�o�� � o�M@���C*����S�����3j*#@����"�9$2�7V)�K.�D~��7;;[��,11Q��jjY������:u�$��O��+��
����'�/����qc�;w�Q�x����+��b^�|�r������lS�>��y����l��������k�1[�z�-9�����p?�|I�
�B�p
(��;���v�n��/_)��m����mY��6}?Q�Pj����jZ����Z�)���J]���E���)�^?IR����~(�DVl8l>�qN�dg�����%��t8����ThC��
�C�+�u `�7	>@�����Jq �S�|�����Lj�?c{�����T��*826������|���j��2m�4s8j&����vh��s�����t��y�3u�T=z�qJ>��3����yl�����?���;����y����Fa��� �-��j������}��@�6���O���9_�cHLL����+[�������&�w��_����j��yn����R�>�����z�y�e�����H?�����q�$&a��F�	k�%�"�1��
���p�y���g��E�F�����
7�E ,���0�\+@�L��^X���'�w��{�����I�$��L�����/RK���]�w�D���wo����_�������;�?���[))��0�}�{?>>^N8�����^xA~�a���9s�i���q��SN9����{����G��-X��\�O5>���r��������u�]�f�2���WKZ�g�p?�xG�O
�B�p(��;����0m��)IK�����G3}�[��'�e��������-��uk$���<kC���]r�HO���f|6h�\����L�"�?�T!���yRX������(Mj'��������
$��TZ�gI�c
;?��!�^��{c���9$�<w	�7�oF�@8��P��W������J�z�ddd���K�[�n�k�.��/��������c���Y�d�����O=���D�����m�6�(�hV3~�?�8�}��I��m��A���O{�������]���}{���/�+��<��!v(�
��)`)@��]�4?_v�r�$&K��oKu������������t�>���j����{f��oHmi����%��v���I5������&y���@k��[,k����Z7L�*���5/f������zq��?t�N��%��U����=~(��8�C���
��� KrH,�y7� o�3n��X
�7b�����9$21T�UW����������������~��Ej��#�3f�<����}�]9������������.�������/�C=d6O�2E�>�l�X�������{�M�����e{����t�Mr��w{_���<<��UAPhBS��L
v��@�VX��VX��U'�$���(�����_?�O��X��<��un3A��8I��g�t����o����%�t]���gb����d��n���t��oo��|�w�XoMI���L���C�	i�Tm�������3���n�T�������'?TD�k@@	�7� �@e�!���^�)@�pg�5� oTF�{@��w Rj���={���k^���������p�<
v(�R�1b�L�6�RY�V���o�2������u���y�������Se�����T��c�=&j	B����r�e�������`K��y��������@@���/6()*�z'?5I�]�)�`Z_i1�v���UY�|��Z�Ja�z�ew���~RB��6���&���}O.��_lTC-����rI����.���u]�h���z5��n������F��9P,�����?��s������.?T��@��*� P)��Q)>nF���
W��A#P)�F�����C\��(�+��"���;F�%��~{@{y�RX�r�J9��3}����������b�%K��KEU���'��!C|�S��=z���[�sjI@u}J�g����W^�ST�f�<y�y�����-�����dhG%@a�l.PT�/��h��AS9�����	E���n�����sMM�?6����S]��|d���+�H��Z�Liu�zc'��6�iH�<w[��+��m{�d���P�5I��${�	����Lg�%3xe�j�T�e���9;�qY��	��Vl��D�p�c�4�����
`q)��
� PrHe��w
�7�wF�@e����^ ������;�s���P��5o�<���
v)�R�Q�T�=����222��SO5S���^�����$%�Xa��Y2t�P����^�z���e���>���`3f��z�����~���`�VS�

�	>��@Qq����}��4������@V�(�9?}'[�{��[7�+[��_��v�<zu]��m��j�����m�NB�t��J����lG�]�|�a9\���mU��eO��`�����w���rf�*2�{���zl��Zpxa��.m����,U%����N��}lZ'Y�S�e��<)�s��
S�J�����?�
\��@������D���@3L�(@�#&�B�%�
��a"!rH�`y�)p�5��W_}ew��U>����Xv�TX��DT�E=���Gj�6m���?��U�L������N�
&��\�Np)k��P[��W��(�*K�vPV�=@����Uj8w�w�j�*�N�.�R���y���LLL���h��_E?�xuiR;Y�W
��S�����c��z��'_>�R�7��n�?�_"+66���I5�����by�����6��vz�*r�)YR�:V�%_[�q��9�y[�6Y��n�dQ�j[�9�����VW[
�KA���
*��� ��|@�2����q/� o�3�����7*��� @�;iUT�����������3�����w���c���.^�Xj��e�g����^{M���[�[�����g�=��#�V�
�_@�3F���
IMM
8�a���2n�8Q���r�#G�����`������h
�Z�2�����z�����]F�T��*��a;G��(_�ud)@5������&R�-���Y����_�������kt��8x����s�\������z��������M�,_}�<3>Qn�����yS���;
d�>O�M�������	��h������!j����n-S�"��J��u��W[�q��,Ui��Tj��4m�*�mOn�����7�k�U��f�b��?T���@��*� P9��Q9?�F���
7F�1#P9�F�����C��
`��P���X�BV�^-��U�&M�H���%--���RTT�/)�|�rILL����iS���������������ag�N(�
���+��)N�1E]�a�UI���'�/��3�d������IJR��}dI����6o��r��5r(�������t�&y��v>����������Bm�#�egi�X�923V�{���A[����v��C^k���@�&)r��Y���{
����k�#���M�LU�f�>S����Y��{��C���o��I���-���/[�
��� ow��'@)�W!�����@�|���9q �w�@�+@aUt�ya(,*�
�Nx��E��f�g������y����_W+�n�/=Y���_M��-}����"i��e�}�����_
������Kz�����s@��h�g�"��6�R��|g8�~4���)_�`�.���G{��jJ����A�V�O��_[�0�;-�%kV�rb���sNiP*��(����@J�M��Y��/�XWi����j����,����?��p�G oM�� J�J�s L��L�6%@���98�9�hB�G@�hPX
e��@�J
e��.o8�u_9u�A�����e��e�q��Nr��!}�U�d��!u���x]�}q��`���q�����d�Y]�,h�d������P�~&U[6��6��gn� G����������bOQUrb����l}�B��/�=O>�
��o8Rf\� ;I��)=�b��X��P�>��T��H^��Y���Z���,U9��W �][Zq���G�3�b�0u����W��A"V�FX9y� ��.��J�7*M�p�y�u!g��U�VN� ��(@a�1�qV()-�~wv�N��Sw��.Y���%�dR�1�i�Z��K���{jX]�W#I����7��s��{���g���=�����nx.HK���������d'K���+�	��J5}������s�i�2��Z�\��)��fk�|4w����a�^��ZY	2�{U9�CUQEZv���T[�(U�=KUFZ�4��,)�a�(k���:�*���<=��tv�	?�-b����7bz����!v�}G 6�����V�,@��s��;� ��>�@D(��[���J������k����?��=�e�^N�E�������}�*�Y���-C�����j��Ur���n��A����u���m����M+����FqZ�Q�&iQ/B�`�^�������/������@��fmi<�D��J��	��gfU���N�*}N�*i��\v�.���J~��A����Z\vV�������
��e��b)(������"U���t���"�W~(��.�F���
g��Q!-rH��y� o8'���h	�7�%�{p�9��qeT ��M��*�E��"D���.�u[��x�_�j��3�H��I(n����\�.11Y�3���+S��6{��[H�VP��W ].�(���-X;����C6�[���f�����H�6��?����-w�Y��{+��J{^��[fy-�����py�T�rl�>��g?�����g������8������VU2-^LT��Qm�] ;���?U���N��
�Ru�P����*�a��h/A�����(53��~N��T���"u�%��F�����!���?�%@��
�7**�� �-@��`�#@�(�� ���y�[�}��9��b\� ����*�<�(L�������xkfZU���e��k������iI�'���k33�I�H�uaM9��V��m�
{Yf�k�-�S?��+�Pn�e��vQCi� ��TYjV��m�7O��f1�t�Qaq�<��N����,�zy��)2vP���*��W,��/���������������<)S�3+6���?�����o+�Bm�FcKH��F���������{�j�l�y��xf���������_+E��H��Z�U�Z��*���jY�)�K����?�%R���7�z���!v�}F ������v�(@��c��3� �X'�@7PX���3v����-���)�92�+��-���T_wP�/�'��m�/���d��H|���~�tl�*�/����}�y�����`N���j�\�������ti������;
d�>��Hj6$�$`��4`$�<mv�����U�=d�'�H�Q���r�����%��^�+_��/�-�J�f;�m�\pJ�����b�k����@v������6�X��dI���*��7s�Lx-p���<#�����RG+�R��Y|UG����V�����-_a_�wX�?X-"���7�#z����!V�}C���
k��^!`e����C���9��1�� ��A��*7D�1�B`�������e��|J�^R�q����%���M�@�<)��U��WR�i�U"/�R_T��g��*c�����������l�)�����;" �"6�*��>D���AT�*���T�� ��@�!��&��f�-I6����s�s{��p��?�������2/W���s" 
���U��`�����c�\g�����Wr�g��x����P/�nU.�e����	L@T ����?��"�Q��rF����x~���)��%��#v=�V�
�h|��,=���Cw�?o�^��X���J�E�����;Q^��y��;���-T��w*�� �&[S�GjFb���g�<�����zyle3|�}�;��Gy^�*{&�����hp_d7�����D���X�"�A���
��o:-����Hs�%@6�}��NN� D@IHX������*�a�WX�y��~�>����P�T�Ri�e_V����4	B��v��=!�H��������|��uDFV/�9�)D�.'��g(�iX�����w�����d�tbH@�6j^Wk��|�:7Ruxo}<��}qA��YH�@����EL7��\����K,��qjY����5��e���TW����L���^�	���*�U�"�jBF}x��e�����K�4c^��������uy�ay�����b���}��0��������+7Y�%i�S�����-��}����&�$P����p:dC���h�D���n8�
hD����p�+�
E �����"@�p[$�r��������,<6����'�����[o�V��x�>�����TZ
um�TSa���B�]�>��k��Q�H�_����j\�J��m7LD0����<X
�c���\l2�W)�|�*4��-9m����`k��Dd�������V~�����^���}�8uU���"�4��a"$
nkR,D��Z��s�`\��/���a�3/U\�T���@2�,����b�\��Y�k���B�@W�c��Rj��<4bE��������Z��U�B��X����d����+2�������P$����pdC���h�D@1�n(�*h#D�i��p����E ��k�M"@�p;$�r�+��"����b��_?����iTs�i�V����D�b���qE�.��j���o��up�5���9����,��,��G�;�_��}�=���8,��:�tU, ���z���51��Zr����"������S=�5)4�j��x����&�������E�(�
���,����<8�#�B�vV�+����/VT��/,��uW�j�uyn/�������T�Zr�q���\��L�5��FP%B�������>��,������Q8h��3���t[�W"�d7�q�"����8���������p{Z�8+��zs�o"�dC�q�"@� �N��U�������N_��u����&a����S���{f��h�	]�����0�b�����<�����b��C���V$��GZ��&sJ��S������v$	����q���x?_O<���c!��hp#��y"E1L&���T��}O{Nea����_&�a��������v�d3Q�����Gbv���RU����*��*�f>^�������[��7>������:s���|������������>��%[b���6��o�nc��:}P�P��8pJd7���h�D@1��(�*h#D�i��p����� �������$@6�)��6M� D���������n��:<�J{����>������8T����]Q�v=�D��v����C_���YB�Q��<��K��FBb*��o1t��|u�4M�O��y�n�)j��i�X�},�F�sK��4j<�3/����"�����B��+%����t���&n9�b���x����,i��}&����J���1�nM��?a��l�����]��!���?����V�X6�{�������V
�PY�<��>:k��K� ,����X���������� lcEbIi�>������������>����v���RR����
�=���!��Fc��{ ����O�'�!@v�2�h �!	z"@� �$@�*G�������z�M��x�=��a[;����5j��m=�U��OaB56����}"������J�?�+nD�G�"-#�����1�����u
1r�
u�e�������boG|[��s0�vG�p�0M�HoT��G������C�	��k0��p�V�+���*����%2�OR�z�$�'��@��|�U� �yb�����c#�*�n������yb����^|8/=R��-_���l�[W��Z���[+���9��;Q���n�X0����v�<�A�����D�i	��p����E ��k�M�"@v����6KA���"��6A�����:�8 D��"@�*��N:�����i�xH8�����#;MP��f@��������� �Zm�Q)���C�p�W���:�f������on��}g����i���Yn��Cz�q{�\�>�V�B(>��ux�Gz�D��hU��\����d[2v�(�����7^oM?�n��\������g�z��^��pA�F�N%������_�Pl�P�i��KMf����'���h���?
��w���,�\��c�E6�5���th��N1�hM;"��b�=�:1�e����
��}P`�4%pqd7\���xD�����0MO\��
�T:�1�6L�'@6��/��G� D�I���I.��I�"p:����^�������Dn^����m:�A�F��Q_���Mh����������m�;B�������a�^��P���-"|����� G������[K�3����x����i�djR�#����=K���0wS�]����]��b��P!�a��l�/`���x�?
������� ����w�)����0���[<����x{��\�����zb������[1�j�xUj;\T��U<�������i�['���4a����iO����v��>(�;rZ�8=�N�t"�PdC��'NI���S^m�8��
������� ��WH D�"�HX��H�pg�:�h��J��K_��FP��8{��	���a���7��D�f����x��AB��{�Zu8:����B���B[`5-l����"l���y��8|Uh���a��}g���q�B�jN�$*�/������p�R-�w�B��!o������aw��e[g2�W*.����g�
Wc��w*O��pZ����M_�����<�=�{Nh����	x�������_��>51����*�-�a�(��
|���+5T���@2^���0�W���K:�p��	Y�#�
pP����u!D�TdCJEC
D��B��F)`���R	��(
5"`�!@�.D�"@���	�����i"`[��l������eM!�?���������
d��j���c�������%1����x����H�����=�oA^�N����1hY]w��/,������4���l���;@[�y���h�%$�}:U������i��:���~#�	F�����2\��.z���/I��z�OO�0QUI!��^����YX�5Yh�Sa��H���Jo��W�]�7;��)�^j��@���U����Cf������%��0����/�������#����L�8K}P�,7E�$�!@vC9wA;!�H�l�3���8��
������3 ����F{&�!@6D9wA;!D�"��HX���Ogw	�������Y�����:���5����e;4i�Ou�/����c�`��)�*���cy/���f3���X���	`p��k�BRR!��������a�\nE��:4j��3Iq��E\%y���"(����?0]����R�|\\!��32��0J�5DoS�y�H��Cj��Fz*�/��� ���������x8��b��'����H(:5�5��fu�Iyxn�)\�)�(U����4G����K\��I�w�`5��n8��?_��5�N����s~G����zY�AAU	�x"�~�n�������5	�
�&M�����q�tJ"`Md7�I��"�G�l���9��"@��	��J��B{" ����m�8�S�3#��������=���V�#2DW��>�vO�e�������>T�O@���XU
��L`2�T�gN���)�,�a��Mj��Y�z!Z�N�u],���C���f1�����]�C�X�0�-�!!�}1�Tbb� �JL�e�<{&!>�c���d��%�B�1=���^D!����y�~���������*�y�RWNOU�(X�[
���7�o�����
�mY��p
&|zY9�B�^B�`|�Z9����*z��!�5�����������A&$��9��fgq�D8������c	��p,Z�8;�!�~��"`d7���V$�N����� ��8������� D��	��M NN�0?;[G��k��>�g������p����i?��w�\�~��X��B��V��_�r!���J|���k��5c�1eeN�������|;�M�v��!�m�S�,�{�1�Ny(����@-<�
<Q��D!{�=����tl�:k�u��#�������m�z0�V*4o�B�F*��'���Y����8M^'w�lLBYHA[�Y_]���D/d�Z���������V����MT�5����O�����w�^����]Z���-K���z��@��C�#�$@vC��B�"NC�l��\m�(��
�\m�8
�NsU�Q"�HdCy-�)"@� nG��Unw�t`W#PXP������h����2�D�H%;�l�
�t x���3�ob�;w3�K�P��>��6h���:��"Q����	a
#SFFV������M�p�vk4a�Z4Q�q4m�F�j���-���&��������=�lv������4��/��������]#���2�N�GR�������P&��b����;����"Q�����hh�p�V�j�S�e��F"@� �a
U"`1�!���D��"@v�^"@*J��FE�Q"@J R��� D�G a�����D�J
Y���-���(qy���v���KF-�����Q�6����
����V�N�������#q�\������_}���7���`��l;�&�/��������6�����5�@��,�!]5l��'sN���,,��, �Sa��Hx������g�0f�9���X��,�^n����Vjb�e�q�z��[��B�zZGZ�m��3��_���;�1wtc�+�'}P����m'"@v��.��JH�l�/��DN����/��GH���/��D���'�,�* D�&@�*�\:�����.�
�&>��Z�W����^<w�k�	��]�=�q��e����`x������B�������A���d������||�=SW�Z��L��c�������F-�Av��4��h(:6���������_���P���)��{ S����������
��_���m�oO�.���ty������
{wB���Ec�����
��� nF����]8�X��+���� ���LG$V&@v��@i:"�f������q� D�(�	�z1�-"P�_��_6����6i���|�7���@��V�^^��D���>����Y����I�f
��4?�mx*���rK��������`N���I��)��or���������S�<Uy�G�ba�<�����	����F���S->�YY��CZ/����4�[}=���#30�����D����x������C��is�U�sOu��d�;8�(N\�_�}�&<j��������AA`QW"@d7�E D�*��T��%�I���{�;��T�������D��
�w�"@�PV)�hD�
�������Q}�R���N���m
���IK���`��w��Q?�Jx�qd+>�j�����A��
(����ur���Yh����zu�����T�����'�Q�7�X����3��uR��Y2��>lh0~�<5:���������<&<�1��������[_ZoOtl�~�C��B���P�������U�����l���PefA+U������)V���4�>�1�!ZE�"4��u=F�_��61M��	����F�������}�����0k0qx������m��
l��f'�H���+�*������������ ��*7I� �#@v�~�i%"���������� D�8V9��������"=��{6?�����
�x�@���{P�<�A�����
���:}�.�e��}�&�S�WoF��t������F����F���+\����������0�S
kya`�tn�.�IH(�gK����Bd3�[u����@8�X^�a������g�B�����T��3/:���%����8wU�fdn�e���j���Ev�7���,�!��S_y�]&�y��N�����4U��C� <zw�<
s�� ?����q�Q�Z���p�r���~���6	E����HHcL�~��YC>��3�A��o��G�G������vD���g�-�+P����p&d7���h�D@y��(�NhGD�"@��	������.E����	������yo����k���M�U������0qs�T"}��B|���B�Z������/�G��{y����'wvm�~���Q�0��g���������t��5�����7T�U=&N�cJ��1�U~���#g��W ����4,,���>���@��En�2�����X���y�W�k�
��M���ba���-:/3�:��K�<���O)�
�X�?^/���T�d����uh�6��2���/
�B����R������X����{������
��*L�(���mo�%l6}P`3�41pYd7\�j�`D�.���3-B\��
��N:��v�L��%@6�e��F� D��������6K�X��=�!��
���l�)�S�E�kU��P���h�l���P�`Ljf�����xD���|���xWN�2�W�P#4�:D�k���	�_���M2�������u@T
+zz*��
��8��m�$�|L6�b���&����}��p�����'��eo�}Yh�r���
�	�gN�b�y�����k������d��5u�:�a5�����V�_�W��Z�bb%ce�[T��$����B��e�o1�y�
g��$��������\9&)�,$$O<a�p���L��u�A�������[�{� s�Q\}P��+�
� ���+�
E �����E ���k�ME ������� ��+�
"@�p$�r�k�C�:��G�2/IW�:��O��=���4����I���_���#L�g���B��"�k����w
����N���W��%�Z3x���?��k	_�����M5<t{ j{�6DQ�\���<Ee����{+����:^�=GU&ee�>����pP��z��`�1�P�_j&�R��b��*������*�B+��0�������Q��gM�9z������D�Tt
���Xq_�'���.�^ia�8Gw�
}�>p>d7���h�D@I��(�6h/D�9��p�{�]% �������#@6����vL� D�	���o���v�&���'7
���>73M�1���AB���������_������`��a����'x<T��xlm�M����c�����l"��y�����y�j�"��G�{��h��?Xu�G&��cEg�W\x��W��<d�(���������Y���*�|�56,�F����'�S�h�&
��oZ�������G�:�=�w��y�b6
o!j^W_���):>}^>�""���k��k�z5l#������k�����{ ���L�$�"@6�Vdi^"���n�����������Y����!�q�tJ"@� J'@�*����X@@�����"�(	�=gP���fGml��k��
�<==����T�zP3o._� ���</�ax�{���
�m��4�>�	�d�'"�f2R������3b6��n��kq{�������
P/"�\7���f����J�b��,.��%��ae.NS��h!�yw��*���7V��c�PY_�d����d!o}�f�/���V5���,���yH������
)?���-���)�:�*�|�OM��\CF9�}P�X���8}@IDAT�:pFd7���h�D@9��(�.h'D�Y��p���}� ������g$@6�o��L� D��������N�n�G���_@���?k^N_s�
x�����e����_�������g��L���{|�~�P�����:��h�,�������KC���&������,l`4���EW_��"�����f%|5@P5�{*�(�������g����������QC�y�2�.��g"�$��p���>UV��B�`a���G+
�X�?���u��/���j4��-�����7��{'�i������{M��^�*��U�Gc��{ ����N�&�"@6�Z$i"�>�n��]�I������I���'�!�y�tj"@� J#@�*����T���ve�Ja���\�I�f������Lk�k�P����C�.x���u��/�����Dfv����?����|�?j�j�`5"~�yqqr�o�����Q�W{���h�;r���Sn�}�eZ4�����c`�6hn������a��\|��+��Xb��9�T�<�>����.�3�VL`%y���<Z��m.�
��Bz".�@��]C_�m�����C���#�5���=����3�A�o��D�M������vG�N�l��o��G�G������vD�N����o��G�M�l����vG� D�]���]n�������++W���yaW�51�U����������w��g�������n�x���������C����1|��}Gxa`�tj,
�

pu�*�;*��B���S+B�����?G/B�}�����D��Q��
�<|;��	o/�y5��_����>�|�Q�H����h�������QI�U�-�V��Iu��{B�=XU�D�^R�U����k�_��`���,������'�
,gE=�	���7��� Rz4��'��y�tj"Pd7�B��"@6��"@� D@	HX��[�=�*�^�E�bh�S�2�����������yiw?dT7�6��w�������Ix���Q�\<�~��M�a@�@4�4�C�������yI���D��g����������<YE�����k7R��Y��7���]]�sY����
p��4\��ke��������*L������W�B�,`����Cf�a(�`��*�_�e�!�������fm��?�}�1�R�EY�m�����>(P�+L!NC����\m�(��E^m�(��
E_m�(��
E^m�8
�!NsU�Q"@� .M��U.}�t8w!p��Q�<x@8n�V��u�3�����C��W��E����kU��]���K��
�w�N��c;�|���a��9f����8{W�}^�\��D<��Q�d&.)�����7R��B��t��g_E,�C+����t�e�~��4��#
��M���sG3L�5C���R��6����o����S�k?�B��������+B����i:��2�y������.���u^�T"�Lh�[y�\�7]��o��i��������B^��J��P6����P:�!J�!�P����P:�J�!�P6�!��� D�w!@�*w�i:�K�!�b6n@an�p�5����5"��S&g�N�����@���R����]��	�������a��g���S��f�D5� ���g^b"�,Y��������7�y��Z�N	��8�Y�����Ly;>Z���T���������x&mMA�8{��N�0R9����3��0�ohn��+g���3s�8�'95Cl�������zy�"+.���.?T�t����6� �����o�B��������O�����im"���n8������R�
Q�M�>��� ��<wE;%J!@vC)7A� �I�l�s���q�.^���x�K�.,�H�)>;;�p�l����6G�����������C��5^�( E,�MBB�]��s���0DDD@���/�[{>c�������!22���7nvH��gV�|rRR�������z��	��C���D�V��AY"��n;������D'{��@Qf.�N\%��+y���E������1���>Y���3o._� �{w��������2�UWV,C���r7M�P43��(%���<�]��b��E>
��a�����i���[�<s�\��<q����o{�\|�[h������m�T���g�^�+��Hf!y
b���1!l`��_V���P#H�N�Y�D�����y�(����:�Llf�(�w�
���V$�N����� ��8��������3 ����F{&�%@v���iu"����8�
����8��{��������{�JM3f����+�a�/�C��06J����|����d���[��^���M�J�HMM�g�}�o��g�y����Xpf������[�n���#���������7��nu�>���;r������"3��	����N�:a���h������"%	���$
�'&P�T�1����V�OC|`.�?�!G.����V>�;y����Qm���/M��������o�m������,�V�<)���"����H��Y����F���#�E��F���������8w�X���>zo��|o������_S�����C�ZL}$s>���+��y�*31�N�>����y��y{Rb�����b�H��
-�sM��"+:������\���O�de��d���l��|X���!�����U��dE���E\m�8�Nu]�Y"�8dCw%�!"�xd7E�A"�8d7w%�!"�T��8�u�fo�5k� *��������;v��{�dKa��U�0}�ti�R�\���K/��.5pa���CM�1R������ ���)�����OZ���������=�VY��J�/++���6m�T�JJ�?���x����j�v�"`$��T��8�@��H����|���%g���k���tW�C���B�.8Y���4U�b�7������Q������3�|%w0��?�k�W�0?_la����j��������L�z�~,X���o��m+8����7�k{E���LXzC���QK��F��g�����<�.�S�l�B/t�X,�+�}zp�`G.f��[G�����,1M'����Ue
ky�c�����N3������P~of>%5)�I(�*h#D�i��p����E ��k�ME ������E ���k�M�!@6�i��6z���0g��=���j���2d���V���O5j��Z����EG���{t�9s���d��p����~Y�$��U�222L��u�&x��V�����i��&�U�a�70�QJ�VY��J����_���%���A�B��%S�!���y����!� @�*{P�5���^�6�Gav���i����Z8{3/C m�a���@��������%��y���s����v�"�>,8s_X�!��������EQ��"���-�>�,T�\��L<����~�������7���,<`�H�De�+P��&�������`��A����b�gx��GT2�5Y���}��W�E��7{j��k�����,���Y�h��UX����!#[J�
�b�>�X�)-K/{��B��]�p�u������P��zb��N��QP�
t�"�$�n8�E�6��B	�
Q�������	��P������B	��P������� �$E�DC�S��5kLh���a��E�Y�v����x[����L��M�8Q���N999��m��o��u���g��uR���xH7)���[�V�F
�������_[J|�W^yE*<�=��������{J��xG
��}f%�������_���#���Qn���p���7���K�
">�J* a�
���D��N�D�?����5E�[?��I���������N�b��j������*w�o���B1>[�_ f�o)��,����#xe�2d�?'M	o_:j�Xx3e���/���[��&�N�����t�����7W� �u<���"� ?���d�	P�Pt�O�����u�1���cU�0Vk�Ws��g��bE�X ���(��\7���MGN����GK_�
)_����������+�����x���&s;��>(p$}Z�8'��yo�k"�dC�r�"�<�n8�]�N��R��P�M�>��s ����n���s� �))*�����	�.^��I�&���%��y[�>��#|����3f��/� ����-2��/�����q����c��%��4��Yll,{�1�#���?�=*i�	�=�4/�����w���_]�Z�WEX���l�M���������X��J��G�(��j����u����y�������u�:"`$��	V��8�;]������Lx:�� d����O5�X����`2���V���u�����s{����W�'�{k�1��������&�L���f$��!7�}}Q��Q�o�H�SR&/_�O�����:QT��W3,�M�=:5��v�E� ��DD�	E���&�,Y���1�O&M����j�7��)�+T^AN\=�q�X���������]���Q�U/\�.MM��;��_o��U����o�^�	�B5sc�YG��6�E\��
��G:p�!�"O��%@v�y��vNE�������D�5�
q�{t�S��������7�|S��{\���{q������]���-����C�6m��|<���a"�������g�IE���u�����v�(����>�\�6l�0�B��G��<c������WL�2��k��&=�"�:{�,���ni*l���Z���ee�}f%���������8
���es�'�x�v���x�C�L"`K$��%]��8�@���H��GX=�����K�s�9��'����8�&P��}Fbx�qr�����S���ydfg]T*&y�;<T��������5�P��y�5	j
za={��UJ���d���8|:�`K���3�������6�\���_S��w�h��`�����B<=6;OT`r[w�V������{�:q%�	�D��X�=W��R3���p���S-��D ���G��Cz��@[�rS�{[hy����>(�jZ���.s�t"�dC��%NM���S_m�8��
�`�E��� �2W����_�������m�#??<���&���c��gqR]�&M��];l��Q���C��C��K\P4g��&����g�1�p��<`��*��������3��)�\�������/���N�*��@�^�zr�W�^������q��	�$y����~��G�����&����<�i����������~�\����(SYa�������n�*����-Z���f��_~��gA h�3U+ a����tD@���k�l�>3K����t�� |�jh�������(���CPtK�R�zVM�^�K���IW���Y$�&�}��{O�1u*w0�d����������[;��:O���E��A�M�����;p3��k_/��O��%J�q�����"N���+-WAe��V������{�����l������ZT�^������XH@�B=Q/���,H�d 3Wduk���P���^w��Vh�4���������>(�gZ����t�t"`dC���V$�N����� �����
�3���+ �J��������K�.������+W���2����K�f�)�a���%4�����96l*I�,a��C�I�s���g(.�!��dma�Wr�\���Ne��m��B(��-[���O�:e��7�x�@4#w,�y���
h%�Y{>iY.���8)���
w�����kK�p����gV�|�k�w�}����]�<�_Y�XX��x\�G���	��A��  ��\M&��[X�@]�=
����y�^����|�����m���5�DZ��2-�ypb��._� ����A���{,��eq�tYY��dr���sh#� j���T��(y+dR��j�������`{95����@�F����d�������RjP�<~gP����b�+y�r�:��b���d_��7!�?�.��YDH�k�x�FI��q~��'�o(�����\�RR���6Q���<��SW�q��tknY8���tsz&@����������N]�i�������D�d7�- D�*��T��%�I���{�;��T�������D��
��;��v+��m��������m����~aT�t��	KE�gAA��-3S���=Q�Py%�$����7&L� <�EK�����&MB����V�a,�����{���i�|���&��(��h���or-�H?\�~�����{��!�>�-[�7�|Sn�s�h�B([{>iIX���qa�SO=�����*k�Y��IwR��qh���������
Vd�K� a�9*TG\�S�\��^�Zu.41���9v9��L]%�����������C1��i��-�����������.-z��a���4���db��Sn	�xs`�����3=�Uu��5�������J�k����W�������������X&oK����dl$����Uo��)�o�t�S������
X��22�0���V��������Z���x��:r1�tNh^W_oS�V�3g1e�����Y��]��0�^���?=�m{���������M�w�s-}P`g��pd7\��D����8>-M���
'�8�6p ��OK @6�6�x����I���JI-�z�U=�M��n�:L�2E^��>���C��qf���")���;1��gU_~����M�6R7�Ya�_�����s�=am-�z����w�^a��k���G
�`�0c�O_\�&t���O��Ji��������f�����������Z{>i�������b"�q����gV�|��X���HJ�{������"=���	�����i"�8��!��]�����Q�k��c�X/z�2�����p�������3w�js������z|�~�:�����^+���R�i-�:��g7�o�Z�C�b]����<��3:}!�����BnS�J!A~�6�/�n-UU�Y�/��1���bMz8�5Q�
������7V�����s�2�h[>��{W�����<���e�f!�j[��)�e -K\�KS������C���NQ���{uba����i;4�v�LK#@v��.��C�L�l����rD���p�K�#; �ag��p1dCls��(�JOO73f����/�fLJ\x�H����J�����>}�������< 9��.\���_���?��__(����X�x��v�E��<A��F��b��r��y��0}��O^�����U�>���+�*L�t����A����I�{�+)����IlE��U�"K�;(��G�GEm���y������a7����k�Y���2���!��.������s^X�6
o���fVl���\-w�V��Z����r]y��o�@Aj��-j�8Tk���!�i��������=�]2�S�Vu1{�C�Q�{Y�F����`�!�CS�Z�:8���2�'N������.v�e~c�a������i9zD�����}�hi������p����5�B<����!��y�yX�n����x�����i�Z�����i)"�"�n��E�1����
qxZ�81�N|y�u"� d7��%.B�l�m.��U��q�;���^�z&������t����[�|�I��*�AX��S'��qC8B����q����#�so���\����� �^y�p^R���<=��������{���`��Yx��������)#SaUbb">��S��������~����!�Kf^|�E��QC�����>_Ie��W��'��o���q��������@��2D��HXek�4?�5&�J=|*���b�\2��$���P�c^��0�U�-�����Jv���;h�)zB��e&<���V�����a���(b��)�Z0>x��	o`�4�[6#y���1�����E������O��%�"!)]���S�����C���F-�[�����)+���L���c"P�7���k�>��Ex��\|�����
��L�=����}X��[�]C_���e���Eq��A�5�jN�����D��N����������ll��W�}PP9n4��3��|�tv"PudC���f �F�����8��T����3���; b��wWa��4x�`��i�0n�8�,e6l� 9������=<Y��AX��iSdf�����wc�������XGJ\<��}{�8f�|���Rbcc�|i����-%j�{
����Ik������{���;Q����mC��m�fk�Y���������o_�f
z��m���D��HXeS�49��[�*���fM�����V]�����t��,t�q:�-����^�|������,�s�@��{O���_NE�N����yn1Z�� u)��y�.��Hh�@�w����:H�
Y9����O|����+�Z4��5s�B���B���&�����u��wUh��;���^�GB����T���Exr�{������f�{��H�3�w�sc6���F��:�{	)yB��#�����z��H��7�F\��
W�E:p�!�cO+g%@v�Yo��MG�������D��
��-���J���K�.���
����6����c���B=��s���r�/����U\����$l�R�U��**�C��}���,V�;ww�u��n���=z�P��|�"ed-�����>_W!4�������-[f���W_���c
��@�A��U��LkH�b�zx ���T3�U%S��H��O�J�ZU?^k~G��3%�������Q�[(�9�Sti�Kn�h���C��b4�s���O
�=���,G��a'_�
}�8������[���+���K�����8u�����u��v�0�Y���c�X�M�������`�����S����b�V�d*����s���x�M�i�)���v2�<��#��p��A����r����0�_�0c�p-�����<�����" � �Q."�@�@������0K���Y,TI�@�n����(���rU���
�8����c���2���m����W�^E��]�2���k��eK2�V�Pi������b����L�YRXu��w����.k���j�*p���v��	�����_~� ���k��u����'N�@�~���9s��������O^��LE�U\8��h.����{���"
��]��QZ��J���Q!''G�&��~�L�'O.�{�~�'� @�*[P�9���	d�?]�M����[�����^�����4��RH&������U@�^�&e���������Z��[�.��*���p	�.}�i����)�F���>Y�|W��
7�������Z>Tfgh�b�~�b��T�vuA\U�z5���g��#� ;OT(Mz8�5C7�9P��U��� 3�������=S������Ql�-(����?�
�=^����2st���A����Mm��������T�}PPE�4��!�nx�td"`EdC���"nB����\4�X��
+����� b�Kwga��pj��Q�9s���O?�������;��Y3�lI������AK��?,JL�=p��%�8�;w��-[�=��E���{���8��[Qt�����t��Eh��@Hm��s���JE�� ��=��H������!�o��V�Z�5Dh����>_i@�����3���%C9~���U�'v%@�*������m��!���o��}���6,�`1Z/���y����'*	�D�q�[O��\���g5�j�bJ���0��w�.��d$a����M�&�}��p<w��l�Icj�����j�Z����b%�q_g*���,����n�B1�
�WCd�`�����l?$��n��kC�-��NE31_�!
����]-��~���Yl�r������zuh�E�����W_��_ncoo�/_oY�j�k�
l��f&�J�����,������p�U��+ ��J�Ig!�!@v�>�i"������f�YX��<{��������g���(bN
xX��h��f������[+|	� �����q���l�c���������[oa���r�S�N!00P(soS,��J���J��1B�]�f
z��-��=��HG��}f��g�*�\��'�|R�;(����O����JEz� a�C���D��r���s��0�s���%T��B1�~#{����+������g3u��i|v�=�<��D<��Y��*S������G�l�	yx�6w���3��j�N��t8��dUM�x��EOZRg}�u����:�}�X�����_�|oIW�1eE�pt��i���07ON��m��C�t���J�9�Gmz���*�k�x#�]����qw[��]�7��p�����h����G����F��D�@E���-�K��1�!�D�L�@y�n�G���0&@v������!�ey_wVq�L<�����_/xp�B#.8��H���:K�� �z����i�&�8���Zm�s:��<���(����
6`���r��:t���2��~��'�o�^�j����o\�ha��������<xC�Ef��XBj��~JezG a�����D����>���Y�Y�4A��o��`���+H��w�N���V5HB��-��c��x`�����W���P|5��>��(�������������;�MnP���������~TT���0���-59�s��K9c=��0tA�X3�)4kP���M_�����~����A��QZ���B![
�y����==�x�����R2���+����3q��������T��+i�Q����)B��^��`Tc���O�����i1"��n��5�!����
qzZ�8-�N{u�q"�0d7��&.A�l�m����U9��h�5��>�����Q�G&��c�iV�F�?�)95���o_����?�< �Kf��-�w��VT��m%�*���c���`�j>��3��5Kn��{7������L�n�dOB]�t�w�}'w��)������1d���\��W_�R%�.��G�9�����(��ha������J�� �=��L��U5o��d5�������a�ia"`}��lA\%����X
nb�|��dQ@r%(���Q��
�k�4���+�n��}���hY~������7y�~�~��[�STD#�?r9�=R���1_��X�2�X�	��wy�g�������\�+W5-V�~
��*�T���m�=���dl$�f��!�m\�.��e�2Q'V�>��o?���������Nd!.U�C$6��<��������'5/O�.�� ��H���I��*�I\��
��_:�5�!�&L��#@v����NDlM����	��D��	�
�������S-)������c�p�m�!))I�>h� ,\��R`oaUe6�s�N6L:o�<a���2q,jeI�{�z����"�����E���c�a���r�\��P�u�����_�n��O������U�>��������8p�T��}X�zu���P�X�	����#�&����a
YH@PJ�W����oB�{�����s�������<��Z|o0�^*4�l�O_�$Mc���?�a����!����1{�*D����������)`R{p�P�Ys���'��B���>u-2�����h5X�����^��+�a��d����I���&�	_W�&+�_�G����s�b���<0�]-�ZC%���|�{N����B�����������8-[��HLx��=4�i�}P`;�43pUd7\�f�\D�>����3�B\��
W�M:����L�W%@6�67��U	7�_R��
�5,P�V��T������>(�2i�$|��Gry��u����\�H��U�^��=P�w��Ex����j.z����\���k��]r��(�Kf���=��O/����Ln��ha���Z{\���%��u��+W�<R"J"@�*%���X� �d�������B�[�P R�kUtP6.��C������k�
�;�^�>��uk�4;������9���.J�}�1q�r4�]�l��`>�.�f���S�~{�
��]�\���)k���+lX���%o
A��
J=��_S���k�{hzmHx�}��a��<���y�*�����[�z�C;O�h:&6��/�������~Z��^^f��	��H|��4���3<�������j;}PPU�4����w�tb"`MdC�I��"�A���{�3��X��
k������ �~wn���*w�y'.]�d�$A��=O���?�t*���U|�/��6m*v�P������a%�K�Z���?�����a&N,�:�E8|�x��)##�?�8�9"W�Eh����J�XKX�g�yF^e����_��\.+c�3+}��3gb��2�:��o�a��+��7@"PV�������������k���
��Yr�^���X!>.W�6l���K�M��7p�����5k�N�:P�-N�����+��������bK�Z��^��c�!a�v���y����V�|�{x\�&
��Y����BP�&��w��#��m��:�o1y��&o�7f>��t�H����N���Z�6���(k-��y.D'���kp3]���a!�>y�Q�����>�&�c��8�����@h@���7���*O��a�s�8{���ms����
oM/�k��l�&�a�o���ky8@.��:�R����F5��^�{nn���
*B��"�	������� Rz4��'��y�tj"Pd7�B��"@6��[X�t)�z�-�%^~�eL�<����
gV�={w�}���f����C��b��G�
!%Q�<g�<��S�x!�E����;���J�<$ ���-����Z|���
DU�s��%�?{��|��J{ZKXU����[��J��������{
��5
u�:1�`T���{aTKE"`$��
W��:~�x|����������!C,�q52����]4N�����������q���y4��\y�����xKK����?�s��5������X�������,9�%}��\A~J��U�����������?|���D�x-�y��vK��K����(5���u��k_�b�)��l$���xQ��m��w���C(`� O�xM�g��b��PU�7�I����<>����v��V��i�p����Jn��8��.z'�5O��������#s�j�62qUa�'X0I�q��o�����3b8@�
�u�X8����a������j�`���^����A����tD�
��p�K�# bC�45pQd7\�b�XD���n�.MM���7�d1!!���7�g��OT69������|X���t^�|��c����=z��������������
�����z�wr����g�w����Tq���3X���a��������{��V��������*S�X"`1VY�J��n�*�`�vh���+��+B������a;vl�]k����HE���S���1{�����-dY�����}}}����W��+�X��!��I1Od<�D���f-y���$�"
����}���������K��2��}��s����]�1|A�f��o$������FR�<g��m��S
�����C�"?tyf<jt�M��j���T��7E��������~�L����L,�&
�����l|$xgO\ ��b�_�T�io3�]|��:��Z��������K��A���������t}�:Q��fzKtki?�}P��o.�����
�3���+ �J�Ig!�!@v�>�i"�J�n��m�Y���	�
�?sw[q���~+�?{����e��*ap&aw���E�������9s��y�fT�V�/����_�N5Jz�279pq�|�����+m-�����}f�����f������vWR=	�$��V���
���c���c��%�*�
�qJ��;g0���i���8����Wc���&cxE"�~�=HU4�&�:s�n��6��"##��<�s�3�80P��d���g�_k���K�������	l��[�6���,�^A�Ma�k���pa_�jv�M�4�n"~�4��)��`xk�C��T����TL_>
���.stP�`�	�B����Z
j5�5B"��,���,�����*l���f��C�dp��n��d�	���mM���iq�i0�
�Yz��K
�b�����Y��N����uB�3�0q��X����b8��u�����I��*^]v�����l�S�{+k�����%G���� ���wO''� @6�i"�^�n��}�i��5���E���/�!�{��:9Uqq�����'�����y~���x��W��G�AXX�\�$c�o�������%C+��������3�����&M�$�|X�"�X����1m��R��p�&L���������6�?{�����?e�J�"E��K���5�&�5��j���^5�7{������Q�&6��� ��"����f�e/,�����y�)g���f9�[���@I�3w�\���+�������lL���W_��wm�����F�D���������I�,
W�� e��j��9X�f�t.����oq�����L��/�E���?Kv�r��U���i���w�]wI�'N��Q2b��#G
�����\TU5$$��w�S��hL�������%[�l�����Z�a=]{n��\���"��9S���o/-�NNB���B��	w����e�z�0�]��jZ��y���b����>�c���hh1��H��.���'��'
�4�5��w'oAx���got�1d�Q���t�S�Gl���on�#�����Z�\�'{N�	}]|X����Zq���p��^��{,N~Sk��7�Xg������(q�b&�/��t����3�2���-�x�G�T��������nZk;6U����w�3=�	���;|\�'��������!"@t ��u"` �!�"3"@$�7$T!D�@�7EfD��$@>D'�$�F��GTT�����];�����������{.O)sssa-___�A2�:XC�W���a���l��s��E��U��yW)?���8r�����%�JNN�<���<r�����6�EX.����_��}�,X �'&&j�G0�R=Pm���F��8��+Q59~�YRSSk�o�����M�
����E�P������,��kk��T���V%_<��K}U+?tU ���j�P�4�MG�����7����FL���E��o�#�8�&j�������������[[�0������M%������9*<�h#��]�^7��x~v�����[�&E/-���\�=#��J��!xi��Z}���b��Y�*^�:���`��+��"Y��5���u3<4E�����E��exwk8Z�����N����M�������^���FGL/ -���w�t "����4)nzh�o��k�C�&%@~�Iq���@�#@>��])�"@�@�$@��ftm����������m�.a�/���I�&IK�HU\<����{<��&��w��3t��Y��S��#`q����1c�`���t.��
f]e��]=z�4�i�&L�6Mj�������Fh�$C��,�l�"��v�S��%/�*��\���
�E���}���Y����"T�#5C\��M[o����u?,�������J=��-�8tPX���A(����W�~�����i����)Y�-?��<�{����q	�r�
0c����d>uLO���h��Q(O|���?�����:�����Y�A)���gA���}=���k��k3z*��������e�XG��@Vy!bR��p��]}�w�C�3���L���Bn����k�wF�l�?���FK��L��F�\:h�C�2���0�7Z���q�@ ����D� ��/��F� D� aU3����z��/��1�����O��w����n��%��**�<�>��2r
�����U�L��S��T���jRj�:1����0�m�6�P��|mu|@IDAT�L&������/�]���u�h[<+/���Chh�df��Im�
c�s�2J�j�-2{X�V�s�\�6�Nb~�$5C�a�:w���%FL}�������p:"TH�V��Ri�J�X��p���Uu^]�\�-��O3��#�^}�����&��W	iWq-�
��b���X�V_G/�kd��1��H}&M��*(����p�r�9����^=����M���L��\g�P��8y���}B���o`������RTR�1�g����Y��T����j�|�"O`��������F2��W�t�|�]O#6Y|��)�xb\�}��mYj�
�"` ��"3"@t �u"P����!"@t ��u"` �!�"3"@� D�Q	���Q�6�����*^y�i����Dff&�u�&��%��)�<�����qC��k�	{#��]�.����x.\MQ�T���L���ob��e��z=��;�u�v����<��#X�~�d�s[Z���}=i��\)ew��U�b��(6���{���!!j�k"\��e��J4����E9�=��W�Q��n�c��u�w�O�"�1�\u���	�F���,�REx%�A}�ee���y������q9,�=Z���	<���M�R��F#)=����yN����-��6#��*�m�A�iL���<��8{�0�8������+M!������c������-/`�������V=���R��V�b�.���������O�*�� 5�rt���q&�@1�8��a]��l[��t�����?+��*t:��q�������/
*-IZ8�-���xD��	�id��<h��o��K�#�F&@~����D�� ��/��G� D�� aU3�(�M��*88XXM�0A�U]8T����G.d"�R)M�����Km^9y�$z����|\��e(66>>>���3����(Kk!�X�v-}�Q�{���>|���U�b�HCg��E��]����'m�	*��x�]�d"���}�`j���\~y�:t��y���w���s5v�e*_�a��WnF�Owi\U����~�����3��s[�7�!��3�
ki^}+��#��	a�����m���.Q��G�:p�O�=����O|B;w��p<��9vV�5�h�������:����r%��F#%gL�\��W���Jvkw��������X5#�l�He���U����)
��l���M.������TT��UX|�������r��_:@�L�����'���	_,G�M4p��(h`��h�o��K�#�F$@>����D�� ��B/��E���F�KK�V@�|H+�d:" D��f@��U���4[��gxd��c�2-LE>,6����?�P+b��E���{�i�%<��[���gK}<b��_~)D��:�Tx�B��.��o���+WJ����h�����U���_��HC���g��z����R�">e_��rq��KXz����?�l���vq�>�+�1�JM���rX�x��F�NM�'��������4����J�i*J�'��x�&��M;M����3g��;�^�����<�.C�V�������o�jD���������!�U��!,5]�� ��]�'.�/�����S5�K������w��g��M��
�
��|�(M�Y�������p�o�w[���>R��U����H#�q���_�D�����`��5?��8�`}�f��M 7��7h�'����_�5��]���� ���������zD�� �����NH�����Kk��I��F��W:hL�7�.�MZ>�!-����D�"@�V5�[�c��)�JLLDPPrss�]�� ������O>�l�����6m"XU�_�d	V�^-u������Fj��=z<���p���Y�������sS=����-���cG����);�D������YK�.@����d�d����UkF�����D��~��O�r������{P\"��4F<-`��^;h�
58M`YQ.���%b$�������N�l�=�p��_�����x�4��Sk[+;�q/F��_�@��[l��������]�RV��fY_��2�z\����B�����rb�D������z��f����Dcm}YH�;l,m����|�Z/�����*I���K+��P����*��\M�jS������!��
n����k_�E$�8,Fz�������!3�����Ty�U`P����0"���=`����o�ECD��!@~C�&D� �C�DFD�"@�@# aU#n��KX����A�!,,L:��a��o�>���p�#G�h�Z�.]� //�U�<�:������L���c���o�����EW��J2`���O�g��hK��9���/��zU��T���hgf	�3c�����	���Y�I��O
��755Ee���r���Wcp����e�g�G����:S��:�c������$&��;M`���#/\�\�O��6������9i�s|�����+�U}:���~g�m,��LU�����aG�O�~�d���a�#��s6���/�-}����RU���
;�a03�����>��Dk��������x�E��y�����>S����bR
��[*l�P���"p!2m]�����|��h@����qCJ���r������v�+�3�{����o�����.�Z�$
Y5����U�����F��@k&@~�5�>���:�!���V �����v�t^"p��o�:CZ��f�CZ����� D�V�]��NCX�S�1BK,��F]�x���Z{-a��L�����)��Q��1.�z�����g�i��X������7u�Tl��Yj��lu�K,�]HH�d�#^=���B����6���2&V��)+��Yxx@����O31��l;��4��n������v����.G��%��7��p!�?�vb����J��a��)0��hL<^.~5�5�G#i�OB��c��?�j�gx�Y�*�w<�������{
����G��w������jL�����_�Y�����P�e���}&�[���x�C�jwe�EKGt3�s����XSLt6�^^�$����w�er�:��Z#�im��7��q���.D&���C��x-�:^|g����p��2�F0���zea1:w5��e��DkA=���F�����h� ;�g���r1b�4p�����T"�J	��h�O�&
D�|H��e�@+"@~�]6�4�
��!����Vz�tl"@� FF��UFv!7���Vedd`���8t���v8�!C�h��Frr2�u���41��B��������-����f���5v��)% �6�b���G�����f
V�Z���mc_O�tW
�_�*>^|��)�X���B����yJ����px�G��K6+�/C������>�i�v�����6&�:v��������t��������L�-\)��G���LD�TEl�!����\^uz���K�zi� �:qL����1LH�|�t�)&9[|�����X�������q�f���Y�|M�����O��4���E��#�3����J�U+���a�7s%!p-����j�����G$���dAL����9�{-,X��I)]��_#3���-!�?��yZ&�nU	��o	Gm!��]�76�`��$��k{��"���U�E���*D�H������������B�D��B��F-ph���o��B�D�H�|�����"@�hT$�jT�M�xC
�bbb0j�(DFFjm~���B+��j���$$$�������B���kj�O?��)S��Gy��������ig��5�`E���3��C�h�����+����z�&o�9(e"%^�YD2����=�w��m�nB�u�B�����D�����r�8�GN�s�&	`t�V����~?��HMy�����p�t���F���WC{M���9URA�0n���p��?�����I�����@�*p<Z��5=��8�_�]�sWN�������Q�&A)�L�Y��Z�����?V
"6h�m$�Y�������&v���d�e	�,����_����1�FDu����11UXT���J�;_]8�<����Q����J]�����5*�H�hUW�=������M�^���������-�����\\�qY'���L���
}Qp��hh��o������� @>�!(�D�u �����NK�����Hk��K�|H��{:9 D�c"@�*c����KC	����=Z�<���!�*���������s�d�l�2����B�����J��ZX�..9v����/�WU�e��I���JRR�1�&�
Sx�O&��dFKc��>��g�cQ��Qq���U�~�&L<���[{X���L�4�L��Y�G�:�/B#� ������cV���M�.��?�3b���v~(�s����j�d��s���#P���
w/��^}�5�����b���4�2�%&���z�'��M�w��F�:[Z���b``���4P�J��W��Obs�~2s�� 37�������_[[t
	����8��	�T��&UA1�b2p!����p��$f���k���~~���uD'?Gt�ub��'���x1~:Xi���	^�,��B������I� D�"@� D�"@� 7A��m�?W��vi
 D�"�����\fC�v���1c�h�pqq��]��"Ai�B#::����
��w�����|�r���[�X\\���������5�?����{o�XO���y��������0q/\&��*���mF��]��B�
�"$��A���fW�o��*���/A2�
���An�[�Re������u��e���^����g�m�� �}��'��x�4�3.QKD�Y&�:�K��)��!�:���A�E�6t
���������0���e�����P��m7Le�)��%�akz�0�m� �3�����Oa>k�0�����fb�kI��0PD�7�e/��|=l���T>n6Z�/7S���O�+//�I.���RA�({���+��Y8+x��+m�0Y3�UG&�R���U�����M��9����9��4N� D�"@� D�"@�0v$�2���"@�h�HX���V�U<m�O<�E�C��Q�|}}������;;;i��#G
�������������P���Oj��|���x����!��o_1����'m�&*
!�����yEt�\&V�2g:�JK����lT���S���	&L\U�pM�n��e_[S����Ka)����Xm :-k��+�������6��~�
��B���#�At����t�%j��=��XF|z��s3stk7����h\.
�����a����Z���~� ��W���BZbe4�z-����E���d������J��T��r����8k����1�������O�`�g�NM�$��aj^����l��P!�b��9	�F�c��l�_"
y8����$���P�"@� D�"@� D�"�HX�i	"@� D���������[V��P<BT�2d�����ptt��������*==7n���i��L�w��t��EZs���������G1p�@il���x��G����������_JC�������������X)a�r#*�����+����=�a�Y�Z��,Bj{�tE�K��?���S������<�.����|y�8vX���~�2M��7������8�xN��5n����X��<�!�F����k��j�	���i�1�\yY)� V
3����j�>OW15-�{��PZgI�ym��P�;)
P�������������7[b����-��������\�REE��>\��$�&]��1x����Av�����w�����������Kz��//��F9K���_[Kl~9�6"0���
O��)�E��=�������� u R!'D�:���P��������"P�!���1"@� D������H7�{nVX��G����Y�f�G�R(U�k�?��3���O%��{�b���R[We��-�2�R����c�	����Z���3gb�������xZA.���G�������t��\���EQ�
a���p��Ga����ZeR�*�������{��~�k�����&��,����x��
�r�����\�4o�X���$����obx���y1����}�mnk��7����"��?��@��x'��h%���+�V��%��~�3_����+p-�2���c'��EE&(d�,n���E�-�����	A�n�T!��^����RD%
+�e&�����U�]+��(f_PJ��������Sz&������X���#Y9;���W'�k���:�����x��������[_	���~�W�EXGU�E�*]������oT'Bm"@�C�|H}h�- ��
�"P_�7�K����J�|HUT'D�"@nV�.�
���V�Ty��������K���o��DL��5XKc����:u�d�S�UZI���p����������x��#�Z������}��e���X�j�f��4���6{��L��}����HF��}iIp3��]�]e+����wv��������a��D����'��a�(���Zt���e�����o�����a['lxqd�b!���KP�R	��/������Ze?����T\�I23�2����'K�J���Kp�\��aP��xs�w������h;���*&^���G	����m���-���2.�&GH���F){���D�����3a���Lc 37��'Ga���.����4<��U����m]���rg�9.��/
$�T!D�@�7EfD��$@>D'�$D��7j�CCD��$@~C'�$D�@�CEfD�"@�@� aU��m���+��%lZ�p!�_��S�]������]kZhh(������i��<����&������Sj���u�0{�l���G�7�|SSmENN�����mdd$��o/�y������ml�ha�11��6�����a&W��s/HQ�"�J�y�9w�n=������Xw�n�cR�_�8b����+p�0��?������(EI������1��'��q?�����B���#�~_eD+���WT�eX�.iY�	[KS���k�,����v����]��)W=���R_SV�$"G%���YW�JQ��}������j�jF^,�i�A(�����o}�Gk�����c��x����x��+(��9+���]W5���y���`g]{����"@��@S�
�:8m��!@>�A0�"D�U �����K����H��VK�|H��z:8 D��"@�*�����L}�U�}��~�i��q�����xD��s����Ik��1�6m��...X�f
����XT!M��/���x���K�.Z}j�:t@BB���S���J�R�KKK��*��<y2x��������������B	�	��}TH�g7q�����V��z7'�x�������{�
�L�E�|�[/`9�i�YK>��n����5���|����!�L�
�w���Ihg_���o����/����h�}��X�!�BQ`��"��3��#X�U6�����V2k������{k���&��e� ��(���0C��#o�-�T��8D����=�k��]\t�b,�z�WdfW~��Y��o^.�6Z�;��'?�@I�����6��6���2��h�/
~��<��F^~!����>�����3Q!D�yh*�����n�0��CI� �74$�I����oJ����E�|�.*�G� D�45V55�Fx_}�U����0�V�r��
8:�P/%//OH���EU-�����������?�T����-ZT��w����G��16r�H��9rDk���N�<	///�~M������v?����&��_�4TI�`��@�g_���e]��6��	�7��0=�F�	Un�dW��e&��1���0n����z�ee�xt�h��Hl��}N~K�����aK�GYE
���_����?z7oD������,U������Xx��A;�yl+>��K�'Nvqp��'6���i�8�������)��-a��N3���V���� K�:i������c�8y����7r���?�|D���ho��V>�^!��P3p�|&���,���8�������.�j�/
�V|�'�=���������bB������[���5�hr��7��@�B"@����&�M/#-���q�t"���o4)nzhq����+�"@�h�HX�,�M{��V�?]�v�^�&Z��U|���/c���c�������Y�������<�rssk3_����5"_U�d��U���j�h`j-,��mH��N���#3��FQU����5��|`��	�s����zB��\�����<�9�.��fH9zi^_��`��|�p|����5�"��Y��6~\��e�������r���J���;�0���A,����~|�	�Dq���#V�����>�o(�K�((*c�AwG9�H������x�}1�`���|1�h����P���?����<������9��VW=��2�JD5���[^�?K-������`�_g���*����{��{v�f�����*��n������H�1��m<���&"@>��@�k�@"@~�]&�4�M�^CZ(�!-�b�XD�"@�V5����K�.!$DL����m�����_�)~��WA��s��YYY���)�(a�����;,Y�D�����U�V! @������h<�����w�N����c��pgi�)���!gh
�&�+HM����	Q�L�J�/Z�Rs��713���I+!#/G�8e[��g���W��C������_N��hQ@���KG�I�8���(�-��������^��G��#��J����&�A7��#)i�8vomZ���b����o��m�5&����]���JqP Kh��RFMTa�9���,5�~K��q���V��OE��B�{c�����*�z)����Uvv�2��j�^qUc|Q�|=/��?�����T������2�'��������(VIi��;�����l��L`5�	�t���E�����6 �C�1�F���V%D�	�1�[�=�&@~����vG���
c��h>��4����"@�h�HX��o�6�����������L���BJ@}i��j1K�u��)�����}{8882�����Wc�M�Q�V���"^\�����iC;C�����5�c��r����8UT��o?Fr~~���T�#q��xi��P��������(<��)��Yb@��(-(���4o,2�f���0���s��jP\Z�Sp-UG)�&x{�<Y�&����X��c,jT�`�d��7�|�N�=��0&QI���EM2st��0(%`VV<@-��jl���&��]�Df�����r3R�+E�������)pc"$M9��G���P�/W��R't���m�/
x`��<��k��j���^x���h�j��������������Wp.<������X����G'/&��B����6,�d�e�I�@hH����%�hf��4���# @~�.��@�����h�D���1���"@�h�HX�J/��M!�JJD����_��`^d�D�'���9��#`
��dp-�F�rUe����d����W	����/��g���k6��C�b}�l]��'����<�f�N��W?��QW���M�S�����~F 3�/�OfO1M]{3���UV��hK���J�_�F�Z���exi�'�8��i
6������Y�,1-���<��_1Lc�2qj�9{��a�0�Df�9*<��6�hPv6J|�����+�}�j.��UA��gci��WvB�v��
�4���YX����+���T-�;��K���������H<�C����'
�t��������{��w_X�w��r�b,�����RK�\�����m�����^cJ���Z8:c�h(�������h6��4�����!@~�h��6B�
����h�D�(	�1�k�M"@�huHX����L�A����8ygfLDy�(��_:��?������&-f����u;t4�CIr*�,bY��h�l�WU*�	|#��2)�������p�i#�����3����Bax�}�c������$o�E�����s�5����I-������x��V�W���TG�*��j|Z4�~�2s3�>3&p{a���y�d���<u)"���W9\�
��Y��5�����iI+��fj���[��l9�e�x�]�;i��w�Z��~	�*Q\e�4�����o#�4�k������H|_�o�vxg�}:�TI/��r�b� ����UD���j=��� ���E���t����
����o{�����!&!�����T@���+.��^��e�8K�g���PB-+fkm%G��X&"���hB�$�~�Y�6M�@� � i"����hU�M�%
B��F�`�E�@�%@>��^=�"@��Q a�Q]m����\��>9�g������s0,xF��	�.H���*/����7rS9
�����o(��=\Q��uU��W,]�||��5uU~��Kl�-F��TZ`���P�+�	��2��}�,e$��		��'�oHF#zX���R��JJF"�\5�)���w���Cj7f%�FR2D�� o%,�u�b��0tB!bRt����GwY�hh��~_h�_�;�U��XQF
��%��N������%d��i-fB�*���V�(�����Tm�Y��OS��g	�R5et��i�������Q8|���u:�^�����?�2��,�Us-OFa��3�{��m?B�������vL4�;k��W���������F�-J�@�"@>�Y]m��Fq
�	"����hV�E�%FG�|��]	m�"@�@�$@��Vy�th"P?���A��/	��,,��,���n^t���9wD/��07���|�
�_��Uu!T�b�9];�1�v�Xb�}O"�c_���anc
��+L�riJqIf�=�9� h��)xb�rD��
;�9���KiU���?������!VR��JV�
!-`lJ�`zw��X8����5�8�&D��/#�)d��Q�u�������L|W�;D�������,|U=JlR{i��+#u�u���N��EE'�0���Z��u/�4�v7�
���G����Z;�DLo-7���1���GX���L`����gV~�������'����~��_�\R�sXd���u�9$�e��j��N1�#�Xt���b����E��~*��QK�X�};A`���7����
	���1�K_0�����@�!@>�������r�"�|��h>wE;%�H�|�1�
��"@�@�#@���w�tb"Po���gG���Qv<�.CX�R�	o��:�U~.���3f�b���eKP�{b
��S"�`tm�'���m����@���db�`��3��m���G�a���XX�o���.���]�������4i>U����76��b��V��EiZ��+:z.z�J��=(���\��N�84M����r\�U��B��dk�v��B<}'����=�x�QX���������z�kL;����G�����Z�O�Od�?����|�����23�Y������={����*W���w]�L�L���=6Gt����r)*������s�E��������
?.��)��7U����������5~xL��;z�x�{K9yLpU)��u��?�L����Y��b01V����P�mX_Jz."cR�|g��(������x���p�d������/��JhCD�Y ����6K���
���hV�o4�����#@>����6D� D�U aU��v:4�?��sA��=�D��w�����\�N!��`��S\����Uw��A,�S���� �/�ARQ1�X����	�p*z��43ai�bSq)�*���G/?<7b1�V�#��YZ������J�T�eX�.iY���Ji�U����DJ���k���G�}�a��7�z�v�y��N�a|1w�������p�G�T���	v�}N�
I����GN��w~���[�E���C0��;��T5��z�3+�UL��t�B��}�%����C�h�?Z'��E�z�E�2�RF�
���O��EJ\8��t	l��1�E���t�g�h�qI����4~�{^g�-�6�6�'�c�P�6���r�8~>�g����8D ��{���K�f������Ih���r;��/o'}z7h���4�;���&@~������@�'@~���!���N�Cn'}z7 D�"�!@�*
	z"P+�������	������2z2����68�)g$K�
:�uCw�;���ej52��
�HA�ZW�%<D���,��#b�M'=��e,�X��Lgg�T��9�`��mD-�3��bC
T����u���Yn��&N��Q������F�(�cA���������c�����2<�R�e�O�d�����)�n������on�J7�o{|�l",��5�z��v�E"�D3��	������U���X�j���������q�:��.�fJII��o&��w�
�X�=}����E���~��5�C��-�3?�� �Nu'.��Go�Z�
s��#S����^U�����_�c�b��*N\q�U�p�R|<Y$+p�����h�h]�5
;����o��G������0F�7��VhOD��	��0����c'@>��o��G� D�u aU��g:%h�/-G����Z&,�[�w>���7�Q
;�(���j����Ba�`�����&�%�)��8
P�!��W���
@�y9.<����+_�_G��4&�*0�L2gg(]]�h����@fkk���jt��om��.�G�Kpa7gXY��<���G���V�n�������
PX,��dQ�:z*k
Zv<R�Y,�Zj9�^���	�����X����v��D���aQ��|��������)E�����V~���f�W����CeJC.L�����v������o-����]�LEV�����k�d������E�����f�p�<�b��������������\0etw�?��-*����1�y�@��?�������T��g��n���	�:3�U_�2���������������rY;�����4����Y?��q��bi�������k��
��3�}�hl7B�!�����u_�["`�o�-��@�"@~�y����!�v#�"@� ��	�Z������M(+)�����*��0_a���O���L&���N�������j������N�}�����;c<PZ5��.�����M��� xw����"��'����Uf|�����JSq�K��a�TB�DVJW�]��)K+H����c����l�c�[<8�^j�V��Q��,�T8Wi"�9����~aLJf	^��t�?����|������rt�z���?�~�}V��$��p?��Vi, �\����ye�Hw<y��S��d�v\��.�;�(U+��1C��&M4�Jbjv���Ld��@�
g�#~��?CX�C�z���������������P��1fh&����<k�7�~n����8�����Iu�G���	{����@�	���bd3!Hq��.QZ���b���������N��`4�Y"P����L����	�����"P����L���	�1�Y"@� �G��U���V&-�@��k���!(+)�g7h�\ ��T����/�'Bx�I��G���=����>����Z��VU�b�s�E=n�+L*��=-q������Q�"�G\k�����?�.wD��/�����fJ}�i����ts�m������Zk����zY%�Dg�jo��a��sp&���X�w<�{���V�w�e� �:K3YQ=�g��L��zr��c9(*��m�$����L����]9hKKC�wIS��������R�W�?|��1�����I����F����4�q0Q_c�/����LL�U�D
�h���}4�N^EA�xf��z�;#u�0��������>����:�?\`k��1<:�Cczb��.�.:�����f<O1���sLlu!��������<rW�'jV�����F_0�����@s"@>�9�����q�"����hN�E{%�G�|���	��"@�@k$@���x�tf"p��~���-�V�{�)�)�y�5ww��;WC\��w8�]�;��6��#Qt��$��LP���T.(�����2�v�Tuk���Y��|�n���Q�F8��]�Ldj
�a�a���"�>��,��U_��M�(�m�H(\\t
�����r���"����������h��?��Px�,�l��4c)#���.��&yF&�Td���dl��|,�/���(5�&�B,g9&�,G|��mz9�7*�Q�PK�,�^�o��[��Rj��,���/N@D�ED�����%,����
�e�@*^�����5S[�������^&��~#W�y{{��0r`�m-��������ZQ�4��
��3�]�������<�J�hV����8[��W��Y(e,r�6VrX��b<����\|Z)X����*����lN�z����������VOOQH�n�c��������gC#D��&@~C7�%D@?���� u R7#� D�"@�	��1���H��OE������X*�������/d�L�ffm�����)�%<r���{�� �e���;�
u3(��)�����~wS��]���G`�
���kss&�Y��;(���F���"���A`U�v]|������"�(&ffh3t(,}�i�Z�33�K�&#G%
|�M�j6��eY����of����Q�&����6)�&c)�+"Q�Y�!�C�s��Kp��(�S�L�����3�����9��J3���{��j�dd������?&(�/wG<�`\-�eOv�D��?X5����P���n�w_[�[kT�[`�\D��hV�]ADLj�O���
S���qwu�W�z���O8v.g����1AF1�N��)�xJ[ke����?N������sv����M�����G��F�\����1�Y"PI��F%�"`��q"+"@t ���"@� MK��UM���FZ���\�����,�L*g�^����np4�=q��EY,"�/Hg���;;������
����(�|Fg��;�����J��*gl����?�[(,�.T�!���^"F�	z��ZS���"���(c�+Mq��v!!�f�}F%����#X���&�k3�`nZ;��Q�����~�8���}R���K�P)��j#��}�����x:��b��C�X�������>e�8s�p|��7�p�w����G��(�f,���9����9���k'��j���T�c�(7����t�KZ�V��3��p8Z]�5��Nu��.�|O��N���
��9�<���m[ ��=�/��b���^�S]nxw:��J}T�I���x%�:��4��5)Sh�Z�i�7G'#��������L�+����h�D�8�1�{�]"@�h�HX��?t~"p2����Y�21�Q���(���rt����OS�L�!"'\��%W
�8.v�(S��1a4�/���S���!�������-��r�>�%,����ta7x�������;t�H}�yyH��%9�R�MP�����r$<�l�!P'K<}����WY��,��:%��o"����>�F�OH/Bj�(Hb�=y3!���*�l���b:@w9zX`�TX�Z�����6)�>@�g����\�d�v��k�O�
+�	k9�����[�+F��s������3����>�����V<���SW���,:U�74���S��J�b�U�8��������#��6Un����ax���PR*����dm\$�Xb@IDAT5!���>�-�F���lxN^�g��x���_�������G�C@�D�����CnM%D��o��"  �A"@n���[�Gs� D���"@���"I��VJ r���[��xzSS�/��7���b�U?��*'J"UpU"��U�����JYJ����u�8.W�|����l!J�*#II�+*����2��5S�)���xQW���~���>�F���L���ii����K
8�,�Vk.��g���w�@L��cz����V�� T��,��(�P�L���i��O����R�}V<����������`�1����gZ��o�c��^���XD�y/mABJ�`�`k��_��z�kM����x:>�9WUZc6�L`u�;Y����u^������Y�OC5B/ea�gW��%
���{��6xg^{�B������$���+��r�dg������ �ti'�Q��@s���Fv>N����������I��V���@<?{X�^j"p�������|"@n�����F��@k&@~�5�>���:�!���V D�"@n�	�n�!�@Z7���o�H�F]9XY#���`����c��pXT�.]FTQ���Bn�!�����/#w��@IE�;g(>�g�LCaVedirE%��q�5r�����YK����_��m`���e���~`?����������������Q�pA��Sq1VL���I��� �4
��v����,��9�x@~�X�3;;,�j&.\=-���<=��&'�S����QX
N��h�ZS���9L����!Vpw�?����^f���O��m�OV+�PT~����Sb���ag����A4�o�3�I���$ .E�egg-V�x�BO47�	�0�@aq�������e��E���J�g���Z�^m�Zv������	bC�Z�)�����I�+�~����#O�w�B,�D�(��b�2�uC�O�����k"P;���Cj?	�"�T�o4izh9�o�������A�|���N�$D�"@� aUu"�&D��
RRz�@)�Ta� ������E���w"��UR���E��ZtMz���
�t�{KG��9�����p=�Uu!T���+�L\����L���p�K��6�b�6�0a0++��^7���<�� ��o=��������6pyd��Gi������bQ��uVg!$�0�d�����U=�Ip\��Gn@��)����~�8���j�$���RD'��0�Bw����:]��f��DG;W�t���~�#g"�
@WQ�|�i�--TG��_���c��4|�-AK��_co#���<Xz:(u�?�c+4\����<<�q����������[�-^^w[��J3�Y������;�:H}T�?��I�������4��`�A�&=������v�E��)�4?�y�"D}����vl�����-�-��r�g*�ON�g���o:�"PO��C�y2'D����h"��"����hA�IG!������^�*	��������8qb�<?�"PV�E���0�@�����\� *s�}���%���+0��, �J�E!���HD^���i��:6J;�n����^��x�'r�VP��.��]x������J�~��	3���)	������	�<}a�!%6��/`���0Q�	�X�6rm�^�����[�"x�<�����Av���r�zq��	B��p��Sf`��W�5����O/BlZ1������VD�a)�d,u��]���s c!��l������{+�j/F���h������?ZW�
�4�|�~-�����n�2X���?��o���>�J��js�S3*V3oZ QRZ����
���J
�����u���I`U������G?���?�PV�s?��6xu��V��_�b���(*?L������xf�w�e�]<M�C�oDV������n��x�
�\�UZ���|��������8�~N31��+I(*��w��V����G'OAH����:��2?���b),*��?��s�4]X��0<>e���
 7O�X|����f"���o45qzh��o4�;���I�|���O�n
JJJ�q�F�\���u��;Z����D��z aU���"@����SH��7a�T&G���Q� ���e���v������S�8��Q+�"-g�������Rn��6�$���K��]���@���(��dIstU�:�:�V��	���+"S�L�b��7u�R����(s�����`=x(�:�1�yEG���>�����;�B���=HL�`��I� ���S'P��w�������6�{��I�r�-uQ�1�T\Z������&n���Kk�*
.��=�vV��.5���g1�L�Z��r�D�1�&������������+�,/��E%,-����r{"nd��3�;�����-��2u�'�����NR��"�(
z��y��w��=u�����U��*n���<����O�D������<�x#�������������j��Zo�o�,'���G���b��jm��1a\���$���
W'���c\\5��������U�$�F�v��[�5�&D�v �q;����@�$@~�y����!�r���J`�����}�p<V��[�s"�HX�i
"@�,�S��(�Sb)<}��&��+��>��a�J�����2W�WWY)m0���P�t���/�]�WV�,������,��a(c��j+�lk���0)�N���f�{�����aY�.�udO���m���,7��Q|�JO�j���1�}�����p�1}�1}X���("�_��d����L�'/6�#���
�g�z #����U���b��N
u"Y����U8t�R8c�j�&X��%�T��:y;�W��[s��~C}QPX\����5����[���6r<1�S�r"ri
RC�}�g>�/E��Xt���;����$��d2�����39�U[%�}�#:x��k�1UtH���i��G|re>�%s���It������u1�W���W�/4GN� �"�Xm��,YZ�@OAH���7K��	E��C��Sc���p�B�d�h�0<� E���P�����!7�5�B��� �a�C�"FL���_m�4�C��%��5��S���A���V5����"��HX���iy"��d_���������,��E����N�}���n6^U|�nd ���.WWY+m1��\(��������{p��y(+��T�K4+����Qla��e�����MO�\KFi�%�F��<�*�bQRx�8C�Lw��,�d����SkkCWhT;!����P��~���_ �Z�����i������������O�H���JQ��c�08D[8��Q��C����g���m�D��9
���c��Q3����^m������ORx��b���t��JX�6s��JQ9?>�9�Ra\]X��������;��!;�THCX�}�&�����bT���R�e���9F��;5`CQ�.,��=��z{r��W\xj�'b+*"��45|v�����x�Rn�3�a���qz�����$����z�����T����r=#���6�GF��'�
�����4[����FU����c��}�2�d�Q��������J�W=��Z�����G���o���@�"��>�u�����C��F��k:)h(�7�$�CZ'�!�����MG��UM���D�@�&@���}�{"`������-���l2e�=
���8.�x�(+��XAXV!�pq�������y�Q�m��e�����c;�N�F�+i:�!�hG�(�8�rW8��~z��s��F	��b'��7I�%K��oU�Eq��lvvvvv���H�>z?(d�C+
�a���a��m��f�(���3U��KOW��wd���\����"&,&�-�A��[6�Tm#�:���\~��JL�����������7���h������W�A��~W�A�y�����}�#g���o��F�g�()�����N��v��w+��}����dB1�I9�����
w!��0f0�Y�/��Z�L���K!��
��=�Q]�v�>te�]��&��81�5:II���Z��	uj�{��t?�(�k��#l;���:���/~8z��2���T��{���#]�8����@�����.�[�����cJ����~��i�-�������`c9�}7�Y����t�H$G�Y�<Z��Q���rz��N�����#�#�4;�g�'��+������W#;����G���I����u~� �����^�~�1l���������a�&�I$G�DL�L�RX��^wp���,���N�n��x���T����!)��P`�) ��!v��p�=���7z@D��P`+ ��!|����DV����$B�� P@�U��"�!���.^��c���������(7Y\F�	�9w�
D'J�M��`�^d������
�%W��W5��`�CWew��5p*�#���I�����H��Y���bF��Z�a=t�t��x��C�X%��
��E����m��Ca�d�(8"w,x����/9eQ�f�Z��Y��i7��������PDd�f��@*r��j�S����P��<��Q���'��� �R�m�z�G$��������?4
>�/���+�HM�w7�NV�t0��S��#�-��������q�>�5���+����ih���V�`�� �:=9%��m%������/
4���W�X�m���,��GW;m������^��}?pYy�I�����qeip��QRi�K'���{FuV�;����)$���Z��X�m���N�3��o�J���7�@� ��mYN�`�:�����#�dV:��v�a�\��t[�#�����t<r�b�������D}��PV�'������P`(* ���x�����S@���O-�
�9d��=;~����&K��:00P:Akk+~���	@cc#��������'��������w#77�d����a��!==>>�����������������v222��N�]O��9y�$���QXX(�7--
��<%66��c~w����~Pi��U��k�.�
���O?��|\P=�h'�f��,�Q?�7!!A�;k��|��
8q��S�^��������oq_��woP�N�D�P@( �UX������CW���j�|�t��,����MA�����\/���+q	��cx��t�e�[�����E���� e(i���I�}~P�U����?3ro�
�Gm��f��<]���0�;pkr=�a;."��-��1� 4��;���%�BN4�'N��u�#a<r��	��5-���B	�	��8g1������v�N�����v�����)�_�IQr|���(�<.U�p��p�E�Hy��B����|�g����1I�/a��
�����]��t��1d�Q�����B�iP\P�f--��Zh�A�iF^N5dt����W�������F�3-�������E]-���ah��a����_�c�9�����������`��������q��D��v`���������Ux��<�0�����;G"���z*5i[q�K�N�VD���/GX�x��s
�vt-�������~�_O���3��G/��
�/;����t�
����<����
?g�����U���P,�9
�f���������{�=�*�u��;���&��EF( �\���C:oU�
�b��WW�M(�;
�y�wt�
��b*W�o��a�\w�u��"""p��|��7x��GPM��\���#��;� ))I��~�z<���(++s���c��/���n��T�L|���^�������?n��v�}���
&�	o��6^}�U����}�W��{�����.c���TRb���ZWC�Y�~�i�^��Z�f}���K�������_�5n��i�_�6m���^k��M�0A����HB��P�L+ ��3}����X��Mq��km#���A�g���E*QE���7�����Z�8�?���rev�b�*��X�=�1M�?������r������$�'�n��>��N�����L���`���?r��Y����n�������0������47-�0���
o(|��������}��t��T
�Ga}��J9a���_�����6�"���
��#A�K�C���{�6�D!W`����
�������_A�AV'���d�C�9��ii&8
�f9�k-�]Ga�4�~���Uy���V�sR���h�����Y�CG�q������������� �D������#
N�
'���_%������]�b����}#�~�����<Z�$�[�B.y=?h�j��i^��D�%)�y������E��B���Aw<�	6dM�M���_N�trxaYw�uW�
�~�y����c���Pk,���d�H�9S�cTJ��*��L�U��2�Np�:��a���=���7zPL��P`�( ��!r��0�����CzG��9;{��n�:.��n��C�b�&N�0Pu�}�I�������_~���zK���g-����$�+��u]YY�[o�;v��u�f�)>w���?��3x��W:m�+�#�'�|�q��I���j�����
V���O���[5�}�����N��U����k�����`-���\��m��P@(�
��/T�
a�>�J?{OR��������h�sb�N��G`���i�d0i������ ��E�Xd%�nk����Z���`@-�i�����=K��;����{l������U��0g����T�,�pz���|�'�l�J���YAh�<oka�2i��%H�������IP���.Z�z�������]���������^���f����|��k?�,��V��B�Ko�o����3����4��y;Z�����F�����3����3�E��=�x��|����2������c\j��794F�?��]/�@]#���Rd�'������^[o���w�=Z]�����s7�������v���`8��?}�o<f+�6!���UP��}��UD�����z
�TY��8v�o�*�����&c����L�����-X���5�U+�_��'��|���|	��"	��*�������P@(0$�����b�B�n) ��n�'
y��;��{�_�����w?�V�:���n���q�g�8�U���2e����1�w�\�!!�gMe�5J
���t�h�"�I�Z�����;��_X7�5����8�]QQ������<�{������?�w�y�S��9s0b����C�[��i��3$�����+V��^Y�Z+s�8�S��l-���G�csM,@rr2�������z���;&G����5�
7����k��
�gDV���I�CG��^4��|i�~��^�7�,��&����4l�m��1Dt��)4`���QGFV������l6AG!����[)�����y���BkSm����^���J4i�p<�NGIEQ� +����1o����jr�q&��t�(��A*�])d���tr��:���q�4:w�U��m(-����aX�PY��J�e����������?���UJ��R�z�/�����x^��!���������q��vd��������p�5:,����	W/�����j=	��
�4iR'���V�o[��?/��B�Y;9]8+��Rlw���(k���?��m���x��it�����h�
�s�F$���2��(���~���[����o����x���J�+�=kL'�/�Kj���cTe���bzOs���W��g�J�T��DH���������V>��
�b��?�+��p�D���sH?����P@(���F?�@�{B�~���7��E]
 ��;K�U��������K%g'����J����/����������`VPP�u���p�����?���kO�������/���s9r����_s���7Jux?�Zedd����J-^�X��;�AN�����u�V�
���P����y�e�9�m-Y��>�,���m�9� �t���=�\�����:�i�b�j��Y����z�)���SbC( 
�XuD�
54����lL�B��^x%�o�����6)�g\��H�~��d0��/��G��$����c8�!�"�`|�,Q�@NZ}*~���;~3��k'����_��,��N��FYy1��� ���i�
�S�erLJ��1ig!2"U�4j-���.}9BU���np;�V]L�U���Z�N}N���/����������x�����	i[�o��s���&#����JJ�/��PY�
o�3��rm����g#�m����+�on�K_�C6X� `�(
&�lFb���[p��t��2k�>[��
xaM!>�XI��N�W��������������D�Te���~��}���i8w�����m1�����a�}N�>�r�(��@����>��������Kp�
\`�6�2�cnIv.���&�V�[;(@�ySG`�����_���v ;\�*������+�N #��n�{\������{O����!��"/
tE1otE%QG( pT@��j��P@(��b�T���`�]�'�x7�|���T�������~�T��;�`���Ne���?�	�����|��
N��R��_m���Y#D���#����U*..N��J����.<��C.-X6_{�5<����}\��;&�s�V��P����{���Q�kb,���s�k{��s�=��+W�6'��B�@�Q@�U��R�������<j������R��Je2rZ6n%"-mOet�����:��@�������.Va�(�(u^.�]u	Z��]��m{�cQ���:^E��V.��#2 ^r����w8�@�E�U�0�M!�������D
�����F��(���W}���������V�� ����i�85��"P�{r����VE�s��e�w>��U7t�K_}���P�����c�yM��7S�K`L�/ff�p�(r���>L9%Z<�V.vip:kB�������������\�^\S�7�.s����	�����K�3��}U���)�������D�qI�����=�+�������iI����kDu�,����M����{Q^�iwtqQ!8g:���9S������<�v��U�����-;�F�����WUo@U��H��k)��	�{`���-���!Eo�+�
N��18���P�7�Fo�+�
~��;�X�U]�N���>��- �n��r�����?������z���$�(k�c�=��~�	���RXAv�r%Y����K�3�u{��->|��������b����GA�l	������?���D)����7��j��e���-���u�!���u����?�����+X�@�u���`�
�gHV�!��i�CQ��+���[���P(�����w�_C���~
.:�F
��V�N
�i6�j���
9(3T�L�9���4	��
J���{�����U���"n��/�63U�%N��}�;	^f/�th=�X��'�8�9����H�H���d&N��)m�p:��c]�.�s
n����*�jL9�Ha3����G ����������;ONiA|
�,�j��7b��+��

8oA#��,���!��q)��A����~P��������������p��7�!%��eip�?���G����B.�C+�q��XkQ�Xo;\����
�fMs&���;G�B����%�/4�G���������w�z�[��a��x�/+����Vqd*j���`�����XNy�=�%��[4s2��k(�F��<�.����y���p��qCBm�	u��|�n�a�>H�R�y��8C�L<��^[(�
���
���B�!���7����
��b�!!]�`�E�Gy��~��:�M�w���������>h�v�:tH
%h-c���.���i[���N~~����TC�����8�_zz�m���8T�5�����{���9s�Y����*���`=:�l�(����4r�Hl��Y��?�`�M7����e�(2B��P�) ��~t1DW��]�W�y�4��,!�����5����o������&\O�|��A��e�h)�����r�:���r�������d�K�������ZTo�����w]���1�����A�W;��	I���qP�|�D!�6��
����EY�r�
��u#RFaj�\,{3*����_�n�������*~ }�Pg��@&f�U�%�����(:��F#���������;���:g�v����/2(�g�P��G��SKp�`�7�,���I����O�v����x��b������,P�^���H�0S���j�M����O�a0�C�JV���G�[���7<'�� X<����P"B|�_��y��:���P9|}��P{�����~���u��:�6�~�$����z;�B�������������7��#�n����H�_0�f�#1�����Cg��5��������<4���8���������]9��)�
���{U{
�r��b(]m1V�@�( ����Q�"J
�yc(]m1V�@�+ �����[`�E��_��{�[�����.����A'������,,X����=��V�2,UR����B���@nn.�9�LY���|��w�������i=v�X,Z�H��&N�����������Yg�e;GDDD�B�q����dx�2���(W��C)�Z��v�
��QV���"�$�
������^���Q&�r/����}ds�J��~�3.�P�Z-�W�
�EknF��\u�E0��*FRx��I3����(������ID��wK� ��8ASv���\��2*�P��| d ���HZ*k*O�R��1|4n>�a�F�����i��k�����|�����1���GI�����K�-�kXK5&����2X���\��g��q�����<A�����q;=y��~$s�T/���A+9""��b�5�������!8@�{�H�5�����J���j
���aZ
+t((��p��s��	���d�f�^���l|��=��R!�-'aFfH�~�RH�h�T����M�!X�?����-�]X�
�u�����|�F�QZ����gz�y�
o��"�@��D���X��8��|���Tg���Tb��1� GzrYe�&M���k��V��'�+%-�I��=r)��=x�cz�lhE5-^����B��P(Y
+[P�v~���}�
t��tm[l�C��s-�H�}���7�Jiq���Q@���Z����b��Xe�u��5�5k�[�]�*��~�q�������������/���8pjz����
V������g���������u�5���+w�3��]�������l0>>^j��b�L�����B��P�7`Uo�*�
:T ��?��KH5/r����ZF4cw�&�q�������mw�����"�kkm�u�#OQ���l��ug�*����-?�e-u�V�"|�J�/�@�������.G��o�}|��AMu-������t~����w�f��cf��� 1*����b��#�������_\��3'JZ$8��tIPPi��c{p#2��`�/��������G[��:=J�<:��*OH��xc�BfN'�+�t������<�|��>g�5<��!S3��E=�����S�p��
48Bk���������w����@�]�z{�wex��\�>�73�BZ��t�A*�1�>!�J$g6�������2����+1:-�Vv�vGS7[@�F�	��x���G�DO�V�P�������C����Yv������3p1��[0u�T,�`tT�9_��%��]�,��U����es�8W`[����T5�m��"�����)���\��JO�}��Z65VA��4�����C����
��b��	EB�����7����
��b�iE-�	������k�����i�j��-�����\���Q�������O��s�����Z���=W�������
���o�m��;���L�0A��
V}��w����jS��P@( 8#
����.N*�
��_�.����$�op8�o���6 ���)q��p�r$�[w�������	��&�J�<y���#���Z,�}��@���pz��T��a$���Y�\y1|��]N�F=�)taB�pD'�����d�^���7����a�������O�Y��8|�Y���|�
�0|Z�
������������?p�G�. �t0��;�-j��!��GG�VJ
%B��Y�z��j3V�F���wB�y�pO��h��M�����X�T��X���i_-�^MNq�v��O�xj8[���p�����t�."*��:��Fv����k����Z���MC)��u������j����8f4�
�s���P�d����F!�"�J�p
8h4F�Q��:M+�z��?�;�P��S�w��M�}�fr�rLI�aHK����(�%EHK���]�8�CTM�T�����z�����9����()�q���������X2+*?����F���
k4�����B��?~��t�b��
rUt�������
��S���-��j�).���0g��q��^�2x���P���Fo)+�
^��1x���P�/sH��,�*��}V�����-s{1ccc1n�8���c�����}��������X�
�{��u6m��C��=r�w�}�������~�	W^y���9s�����E]���(�W���;z��q���%2B���R@�U��r�����"�X:�S!�"�-�����������i >292��R�1������j%��c����
���bT5�P8(�Cu/z�������e��L�E�I���~9d�v����9	a��K��l�k�u����j���4n���
�es��9g]�v�@/�~x=���}�0��k?tf�*k�%���
�,�K������Ogql�J��O�k����������a���2�=9.�
\��Y3|�z})^���`g���Kq��	�M:
����Q�����������a�����a� 4p�L���m_]S+^�('2�&���� =)R�Jg8���d4���FN���y��^_��	��?S9������q3	���CW�O��sWv ��~�.4Z{�Ow��,����I�I�UzZ<�"��TAC.A�����������Leu�j���IC�V���w���<��C��e6P��t\�`,"B�;��v���`�j�oW#����w�����o��N�0�[E��xqT�=M�u�����{�������VJ�����5ox2.Q�s���f���PW@�C��
x���7<�L!
�s�]���	���f_�U�g�Fn�=BAjj*�x�	L�:��m�-p(Av�����*k������m� +v�rL�����}�c:��(j��i���{���>������T1Q_( �
��?\���U����q��;m��x��_����&��F[�'����Q��7�gM���8�rF��P�A�?���-X�io�E�T�c3��z!������������ �P[�k�@�Z�����r��@�^����u�m�G���+�l�U���������LOuoy�UH�\>�:����3�e�^'��B1���T�`D��(��a�K���d���7���������.fv�i���WD���'�#88�B�:b���%O�R��BS3�������Vk?�!�j<0w�A�����R�G���wW'��Ea�Zq0W�C��P~�����~]MJ����%p*���	��6�_��dC���I����x��|���I�����{r�9����	��m��H���Ig"1X$9S�[�ug`RW�������n�����z:KYy��������t��q�B��9*��IK��`��Z�"vDVy�@����r�k�n�q��4�#@w\�0����\r|��RYB��M|��"\;����*��W����X<3��#�l1Cx[�`���`ym�w_t��-���W�wr�b�1!B!�?]iC��
�9d�_C1�@_+ ���V\�O(0������bB�3���CzG}VYt������)� CU/((�����C������wttjmmEqq1rrr�����+����p��^�|���`V��X��s��0���n=����}�P^^���8i���^��'%V�+��!
�cX��/���P`((p��[Q�a�4T�\����}d����a�-��1E9��&�Y����h06"�B�i	V0��1� �pa���W���zl{ksb"�W-�bQ%�RlH2���B!s�D!�jv��&;'����v7��)����.��|����K$����.����t�;�i��R���}t�����WGD�G}�o8x@
�M��a�����I���Jr���
�����;�4:��/�;z�iw���(8^���Y����
&
iHC!��h�s`� 8%�O��\9���
�Z=�bC�P7������Jhu�aw��Q ��Uf
9R% %��]�/+)1�����*r��u���@E%]�*�Ji)P�����"�ECS��Bh�	
�������5�i�y����]O����A�a�
)$����+���N�#Cx����7!B����j�/��K���j�C��>����k>?�^uS�S����.c���M�!�$�3-|�v}f����!��J'��_RK���J?�D�#6�}8��Q[����y8|����K���������#�e��")��*j��v�!��|�r��8n/-9S'����t_t<���#A����2�t���������������m�����p�|l9��>����c����M�I�]0��u&�����-���M�_��4Y����%�
<�2�����P�L+ ��3}���O1o�k&z,�O
�9�w��UN��;��F��)�q���O�H�a@i��U����������n��v�{��<��m�5���v�b�)k�68L �W^y�<��u�)q����k���'�|����>���sm�+V��?� m�;�~��m�53�|d�3-k���/p��g[7�����0y�d����%;v��	����X�IV
��%�*�
�j4�e�l�j+����
���[��o��K�pd��f-����R����9��i���3*>�QE�)U���x#��*���Rs�m�B��]P��aiG'��BCa\��%3�Ei�PW^���~DkC#*��`��1z�3`�����$�1v���������U��_���mG���}-����qZ���7�@=b*ZC�m�|;�4��5��<b)
#Ho+��D��F��/
�����;��Q��r�L�ET�=���?�p��4:��
�	E#����e��]-px;v��P~�)=����@��jk�(���R��w)SJUSD�b�,Jy�`���N
3B��	#n,���0/��%�X`�����)��|����gE��U�(�0+J��U��TrMJ�8lXD��=����d��P;T��b�a*v��,��=��V�-F��6W�$v��#w+v���C�q�Rh�f��t��B�b��,����8�U��
���>��U�<���R�%�2(�_&fMJ��0��D0
���\�Z:	�.d����,�#Z����}r��I�N'���U��V#�����O]�SGZ7�|���WIp��p�����r�����5v�r|�1����8�`o���]���9}�c�P��W�7>{�~o��B��@P@��*�>
��b��_�C�F(0�s�@�b���g���q#���Z�07�|��V�����2�v���P
|����2e�T�w�^\p�����>������l;Ne����Ol�[�nEZ���H.�����w�I���
�k���}��'��F�	�����������o�i��UW��_�m��&���HV
��%�*�
49�����g�������O>�#�5�����`�%d*J���:��w\��
��[~��/G��;T\�W�S���K����yPP;!�����PtK@IDATrFj$g$3��M-�T�[����������S����*L}N���<�3Tq��o���Hg�k�*����������F������3����u������hN��Ln��RS����@�j���g/A��_���$��_d�X �_��CV!�l�8
���m?����F|s�F�u������!��i!�/���2�v��8w|�{ud�RD�K%��z�����������`��,4H��n�s�
�����?v�����N�v��#����4��V�����L�PHH��Su'l�u`�f����@�fr���1��S�!�@?Kx?+�����DA��������Aq��}����?u.<g,�C���cH������Z1p��

��C��t}bc��������m����FA����SW��O_&��*�[%�9w�e��(���*�����y����IXu��]�{�L8��9�Jr`�KNn=}���^o�
�1
��b�jW\�W(�}���}
EB�����C�������	�����EYG����b����Mi]PP 9Ym�����7�}�],X�@*7����P��hu��������	!�c[(z
�MO?������;�c������}����O<�y��I��F��|Wf��^x!���o��m�{��q�le�T�������g+��[����2V����P`) ��t�DW��Y������W�b"=���G��5�G�l�}��|��.Df*�����D-�1K������y9�� H�H�c�D|�ZHnY]������GBw�4�P,�@e0�BS��F�_B�#�aAak�����-?@_E %#����p���P�����J&6"����'_J�O�5�+���:��UW,���k�Do����Q��*��j���7����=��I����U��
R�5��ih
�������/�f�O���O���k���L_~Qp�H�����v�=�7!U���U��������o[��3
�BW�%���^D�6�_rk��yx��4���?
�2q�@v�rM�/���bJ`���JM���i/q8Cv���u�����C!�R����w+�2�
f��C�Eo0"���*��B�c �X��F'L�����Fp��_quE
gu���i��=�����uY`+K��:��zlt<��y�����@���p�])-�+��N����5�K���n���o���	�����	�"����u�,^�W�m���y.?��T��>7�|�e[C!(�sM\����R�z&������`'�~I�Q�k�4I��HW�n����aG�^t�:�a������G�BtN( ��b���T��P@(pJ1o�[A( ��b��z�XW�X�}���+�
L1(������
	vr�\���?�����m����o�m[33g�D\\����o�>'������X�t���������^x�����mDEEI�U-[�����f�+!����;v8���J?�0���[}���I�!
X5@.���P`((���eh8f!�������g((�^O���4��*k���Dsa!F�w�Tdh���5�`�~��)��p�f$;��D�����4�nl24����8/$��bl�4���5�����];a�_X�Q]1~����#��.�I�e��������`�]:�?T�r`�{�A�+��Ze"����A��q�����6|�4x+�������M������L�cR���,�},�T�|�>�T�+��w�'$Z���L|Q��7Pc�~5����
k���q��@,��.l2����oX��������&��7���/D�{����������Kbh��j
9����!�h�9\�	�[�����,w ��}�8�U]���������$�+��t�nE!q� '�T����K��|)NY|���b=5Vv���YU7���CA��������.������t���RK�}D��h����k��)�@����{�����.E��%'���'=����j=�/8�WE��������;���
�9�t8����o��.m���+_����m�L|��o����) �
����B@��.
����C���8�U�3V��������:r�oGDDH��V�Ze�?a�|��7N�_~�e<���Ne�mH�U^��'N��	��j�]pu�b���;�D.E��Jb���*�$�*WE��P@(0`�@�J��B�!�@96��p&Zu���I30��Ozt�&�j

ht����Q#pT:���{>�7����z���C.{������hm���K�#��!5��g�<<�����(�f -j�Tn$���B�i]>�V��������t|W6��N���E�8b�c�w�����-��:���4
�����\]��<�F�Zz�uw���%����&m��MY�
s��/6�V�^����7������S`� ���������r�a1��X����f����/
��e����������I~8=1M�E1>�Orq�j��~�����Y9�~Y�3����f\�T���|0:��0�S��*AVz
7�����_���;%��TJ�R��X�C\���=��fo_x�|��"��u�P���C�{f��zR��Q-�u%5�~F��|
:<����(u���q��&X��������.�BO���s;��{UO�����a*�7��r��Z��e�F�~10Z��{��*���"$�U�6�3���MgD�P@(0 ����L��B�~���7����
8�2�.Y����M��r�J[��[�����2�rrwr��X��yyy�5k�����^�y��g��L=��0y�W�v*�n��������^|�����8x� ���D�{�n���n��e=(66��M�#�<"9YY�]�������^y��N�u:������?l��e��d��=v�r�XwG.�.�F�rWU�	�B�~������
X������;op��OE!�R�J
�#�A���dB�T��
��L�C���>�2#�0p�
_T�+��O�DY��ZJ�p<y�K�|�?��*Z��m����������0Mq��B�6F�L��������Sx:�%dJK�{E_b����$�i

���gc����DKX`��M8��h(Dv��V�pMW�Q�1!iT�	Xm��
��������k;NU�����8H����:y
�)�cW���U����Z"��!�
��Hx�x�,Z�/���>��&���8k�Z��^5~8�F���
�"#�,����Y���X�]+����[���/�L�A�E�4N�'Q^��Bd��DzQz����em�U5J��B�R��h$��	hn��pn^(e��nN���.
.���s���9���%9�T�#MG��k7\���b�o��FV���EZ[�+xe�B��mo;>;
�����|�!�S!�\����(��p|2~5�Z<��w��m����{l��C����[�;9���R"8�OZ��P�|����(�=X�I��Y�~���1�YT��78��p9b��aG�u%���Tu��;�)kA�>��f��G�/���k�#�U�Y9B`�:��!O���ugs�P�A�S( ��b���V��P@(`Q@��N
����C���8�?*������"���-���a��y�����nS9��#�L|JHH���y�����UVVB�T��������c��2X�R���&&&vz\����B��P��* ��~zaD��CY���{�_|��>J�'�A5*�\�g ��+_����!��H�<�s����b	�*�/F���g\���I(������+J::U�}���-��%���)~H���1	�!�����x���.�TMvV��O�|����hrp�rj����ZM'�j:���O���(�Q��U����*��e���8z&$����h��l�������v�9��uK����U�y����&����|��9w>|##�E�[5Tl����D��4i�a��3����A[�g�A��]j��}Q��wfk�� �#�m)  ������0&I�4��3�}o�7���vr:i{�S�^����gFL���-&����y!1��1�(��T$�GG���TR�Gy�3���4���`����hFi��e�T���**�-`VM=AZ
@}�/��`0yH�8��%?�~�t�7�]��Q����k%G"�~[�
�`�+�}������WPT��� ���)L�R�%���*o)�g0�� ���$v��R ��
MY�OI ��^w���c����s��`H
���d�e��KM���I�],�{>��#�zL�	�y)���P$P����S��%�xnO��/���@j�Q<��{UW�6SXN)�(���&��Lo���]�|�����������@@��e��cv��!�'���m���s�@���P@(�s
�y���-	��b�*WZ�S(�;
�9�wt�
�B��P@(����L/Q[( �#v]v�Y�`4xNc�J	��1���tr#c	������c�=���&�/)	�� I
v�"z�~�n����r�z��I�@��L4�G�U�������06q|�&T���jgw,��h�T��xi�s����y�Sc]�HO����q-cS���!�7 �|?r*�� e�M���V��}�?��t���VqxE�OG��%�n���#t�D�B���w�P���;�t��T����Bp�>i[O�Z�����
a�Q��_��C��{���!
9��}X��%'�0ol����hn6K���������0�N�wi(YIu+J)Y9�?��Fzh�J`����.T���P��@*��_*�$��F�����R!�@?�\���-�Ig������S+���B\5�k��Y���zV��5����A����|P��@m�
���Nn���QW�������0	0x�$��!��S���IDa�(�����S�Pq���
��
���|v�)vUJ��#1RNa�d�zKa���\�L����(0�M�>d3�NS�1�������z�_������BX
jh���J��W|�V�^|e���U4[��aj5��^�K����<�&F*��{�2�5�Q��[i!�4���Z������0U��{�!e���3��$�
����PO��!C]1~��P�}����6b�P@(�^1o��E�
�]S@�!]�I�
�B��P�w`U��+Z
�����M���)�84�4����(��W������_|
�G�[�+r����5 )��4f8\��\�Lz^�B��.�����D�����><::lC �'��4�^8�{�l|�1�����)�A���0��^
9�b���-C]c�OCqiL����	���������J��r��m�r*�J�Ef�!�PUJ����`*��d2r����3��w�����j�M�n�]���VSv6jw��t���a�����.���-,@���0����j��[/Cn�xo�8�:	
��E�����n�@�����m?J.V��8Y���������v�����BA��`���B�a|H
r�a�*�^��`+~(�D@U�tm�Cb/�c��&� ZO��YM�	[Q�/����i�������k��f��f���a�^	�Bx����'
tK����F��*5p����_C�B{|��� ��|�	���A<���}�i�1
�^_���xz~5�g�W�s���r������+��0�XU5j��KPVw�3,>\��NW�����@ VX����w��r�bh��b[��p�Wq(Gb-0���s�f��`V:���H��#C����Y���j�=����
�W���_����P��* ���{mD��A1���$�(
�B������5#
J�uu/���1h����&��0z5���0y��a�1����D����8�VTb������r
����X���:��-��>zu���1fN��mZ��P�t,L���vF'al�Y�=ZBc-t������2h}[)�N3r���_�/��*vc�������%s�$LJ����r��i�jq]�XU5Z��Y+���;�gt
Xm��_��������V�Y��-�QLp�2y
B�;�_t�����b�Wn����u�"�U���X(Q��+���_�Cc
�V�u���/
L��Ak���Q���������y�Z�=�X�tD�\S9�,��9�*�����AK����Pd��<%T�������� ��@~H���)���7h�nQ�h$�����:}�~;�Y>� �%��B�55���5rI��$%��w����%����)����}�{��aw/vc����pZ"L~�~�	k7�p��mt��sy���)d$��Q5��s�Bh,��X�������xL`���{���������5V\���Uz�X��*���"u���X	��@T	D%��@w�qX����8pX�v�`69��A�?�1e�u&��b�9�1�u�y�H��tw��P�SX���z�VIE
i]L��5���kOG?���j�Y)����8�f���d~�^�K+pxGv�r��b'<v	d���L:r�b+��\���Q�"	�j��>{5]�x��Y1o��+�&����;��V�CE1��+-�)
�B���������
<T�U�&��(�<N�1h���9�$Z�=�'W!0s"�'�3u��M���`4������;����%�%��y����D�������J_[��O��v���54���10,����c9C��������G$�#d���E~XL^^��y�����/�)���l�f&."��N�D
��J�6QQ�I�������lX����q	X�w�pu��z��X��N�v�m4PH����$�(�~Ed$"	����������~�6'�M����^��&��������vx�WQ�$�k��E�����r�Q�M��.���c���1�7<Y)"��o����^�zX���i(d_[�$v���+AL���N&��a���C�9���n:�
O�q[���U�����Q��,�&a��*k1�%�)����a'�X
%��v�h�OG��ue8*���`��������ja�KZh;��O5n��������nA������u����&|�����z�-���)�i,-d��%��:`��[ 1 *��b��@Zl�\N��(	N,�a�%��^/�.&��*��}�_'���u�.T���j9fDN�	'rL�:I0U�	�y�6x��7�k�F��)4`�g������0j8��%(��:���[�h�����%Z��.WtE��Z�m!���r��q���YHup���~W�U���l{��b��x�,$n{m�d��^c���j �I��#���OV���=y���Vo~��oc�
zF1o������PR@�C�j��
z^1�����E��P@( 
<W@�U�k&�
�95ee�BW�)��	r��=���r�]����Z�R8a����0��~�=����v�d��%���g��&r�2���������������:(R��z�h/�D�0�0z��@�S'����������&�j@���!gX@FD�G\p*������]���
������]��1i�L�{��sv�*�9�}�[Q�T��0��7�����!��%��������R��
��~#9�5p�.�E���j;D��P �\��22��I�������x�Bj-�\�����G����{�7�z������:+�*��L�dD�(�b�JA!9��r�����E:�����c��J����y�M1<�s*� �������>��CW�v�0�fQ)e�pRQ!}�������Yr�1��p��`�gw�����@�V|�m+��)�BZ4��D�I0��*r�
 +��gy��PU��ZNk9�w\��m��~�B��T�������{�����v��[����&
	�H�Cz��\���CbP���(�%�S���U
v���z����V�����g�&������I�3#����O<EKV�'
��]B����z\�n���6��"��i�K����T
9�2��C�>"y�@U-����+��
�b�������6�tv~}����~�����L�#�*��P���^��s�1T�pU%AV[9'3Z�����AC���f���k��#M4� J=��cI#�"
����7�F��* ��v�;�B�.( ��.�$��B��P@(��
���%'
��MZ��Uk?������.u�G��l�pl���D���J�|����'V�����6�0hU��(��+Pd���a��4�NF�%�aN��U
5�#�*r������0R
��n��5#c& �?�r6��C���4���|����������]�����MP�5�dco���+�E����q���0�	�ru�Z��\���cy������q�21��fC�����no�[����c����T;q�z���a��{���w+�9i�t��"d���D��DL��t��0��0Z���u��[��"�YI�9[)B���lj6b�5��W�q�����8e��,.T����8<���7����r��Q�CXI�)d!;V�	i��Z�M�$����n��a��s;j]9'�F9�puu&��t��HN7�`�1H��H���7�R^4�"3�[n�����"LI��*�}r��{j�y���ut�7���`d�IQ�Ha0��o���<o>��\r�:z���yfd����Pw�������X3��-�^1p��iS|�?��3��'-&�*���|���x���S��u���3F��w:�f���[ZN����H��jPP�i�|-��Fr��|CS3����Z����,�wASam��i�!������SJM��
�8sb
�OL����l�@?/)���
�C���/���P��+ ��~~�D���\1���$�'
�B�!�������
:W@������VC]-Z��@�]Yt�lW3�&yw9=,/$���X\q����x�K-�f��=t��f��.�f��$">��&�4e��8�.����V
�TA�U�J/9X)D`{�Q��fz�XS[���,4�t��$$0��\�e�~����S�6��:[r�jX�bVc$���f(}���m��R���JO}�����i?��.U�3f  ���m���kT�s�@��{��xVs�-�]~+Z�vP����4�d� ���b�H��'--e�F;I�Cd�G�"aX$�+04T^�CUQ54�U���UK-u���4�T�Ev>r��|)���A+�8oM�s�QZk D!�%c�����@)�%�&��434E�V����ZtR��}�m�KY����E���j8R5Sh����b�1��AI[�h�fk=�]�R(l����1i�3dx�P�{����G���@�(T���r�_�%���eE�"��A%'hW+�FKd� M�1���^8g��������t��6���Z�����x����ldJ4n\>
�,g-����:5�m=�-�rPYC!��"�JM�Tw���#�l�$�b[5����,���zh���393	�&�a�Y��C`.���M���W���b���UJ(��
�y�W���b��XP( 
�BV
��$:)
����
���Z)t�5E.Z���P�k'�"�D#�����A�d����H�I���<i
B���
K't��+/G�����?@����i��T/�D���0S<*�A��������v7��O�Uj	��*�������%������P�������'�a���q,����<+�8r*�����-=u�y�����G�i����0`u62�B�%��g�����r�b���f�������;�����i�!#W���*���#;�n�drh��
-�.������Hl
u7:r
�^bPM0�����o�KM�0hC2<�)aP�;�j�� �]M-�Y��_WO�U���1Y�����X.��2l%Cf �k�N9L���f���c{�����,p�{�f����B0�kq�����B�H�/C -��%l��>+_��_lk$P�������`D��������O���i��	��5�����-:ZhM��i������'�
LM#�j�7��a������W����>����M0�������"p*V\0���Lod�Ub�/��L�����1v����J
���	�35��9V�e�x���Cop�^@6t3��j���1�����������k��B��g�=��:�s�w{���;	�N�%U�P��mY�-�$n��/���{o��'��&Nnr����d��z�
{�� ���}�{�,����g���9s��y�������) ������;�
�W9o�WAy�T��V@�!7���w/�
H�R�����������
H��A�
?�W���/�	0���/�q����i�����a?t��	��C$���������y�<��/}����#�}���g������#��P�	
Q�]�����* ��B�s:3���w@s�����d��z���V%L�\�
4�����_��@VG/�����(��(�/6`?7+�����)�f�+G:O�C:<=Z��WF,,[�����o�Z9fb��-�h�'��f�	��+*�U�.�"��oT���)������[��$.IF
r&P8<	�'�r)�T�����Tvs��e���FUe6�b����;�@V��a�y������z[�aa�'.�O'��7?cq1�d���T"�_04��7�����+�I��{4��u�X��{s���s�H��UuF<�1���F�-|�p�"��)/[���
(��k2�b0��Xuz�6[�4\��F�M);Xf��n�1]�`G���%����2�����o�
��~���=�KM7�������M��Z���������b�V�4�no��y?���]�!as�3��Gn�&�bN�1G�x�W�#g����s�`�9\nI|?Hu	�A��L!X$�e�mV�,�S�M�r��bmx���?'����m�
�	����Thhh��C������������y��Ze[��F���l�E�����T@*��r�HW)�N* �+ ���2�
H����C���<G* �
H�R��V@�U���O* �
g��������O������7�f��T�~�$�v|��_�!�[�(�/@';'�n�>��?�������������;{r��	����+��Q:=U��a@.��r�zh"��%�f��D^i
!�(��������n:�G�fu���>7�����Ws�+�����O��y�N����8ze�n,^-�>.�r�d���
{�d�����p�Z�l�7�����(
����O���K�1�_�I��|�k	[e�Bw�&�*LKr�G�u@�VC�h�C�[F1l�r�K*QUnA��i�w5&%"\����r��*�/v�3]���2>P8[e2���{Vc�O�Uz4w�z��1V�+��{��b?�;��o���"TPU�x�<������F6�*7����Xo������+{x}�P��u�x���@���o43�f3����]Z`D��2�Wb+�FTr+ �509pe��0VNW��1w�
��;�������v�b#W�Cs7�`Y%�5P�1��h������Zf���`��k��X7|���lj
��1���.GQ��"��34�s���:�e�	x�������u(.���pBG:}:{��c���v��jh]1:�Q��>�_}��)q_�p�y����<z��=I����[�<�_9�Y��Ee�)*�`�d%�����?��fjQS��.^�������m���t�K
��YZ���j6p�f|�i��"�4xrR�L9o�`LW*0
���4xrR�X9���O]* �
H�3H	V���)oE* �`�\��/G�x���2�|���ee�����p?x�o���_#���bnU��DL�x����'��:�m����?�8/��[O���+��������}h%"k��<�u�ZdRN\���������WB'��<�Z�Z��e+���z���������]�����x7i���y�k�Fl��u\�������v�����z|����{�FT2�����3�d����2�R������{������\�
Bvzk���	.���}�is��)Ce��\����� R^ ��������-�W�O�D�hCV�yQ��|
�3`����(�)G]�t������T�Ip?a�^���9�v7g��1a��6,��,j%B�Y�Le���j�M(�\a�����pC@r�$����Y��uV%�������/�kCs���~esy��Z���&��4(�CVEa+�b��U9���t�2�����������Q�:��U�����5`u�	�F�Z:�8��ASw����)��#*�?7�+���������g��t��@�O���%������9�X_�9�\�`r��w��s�U�WG�j�sf��h����H�_��~��]7��t��n�Y!���L�j��N��
��C������fh�������q��������������'oGUin����8�~%����*�O�h%K5�������t�<,�[�����5w��y#��s�(�K��	�"8t�
v���i��K�)�^�
v���V����2�&����3��\��l�e�R�����7f�3�w$�l��1�
���3[9����+�N* �
H�7���Q���T@*p�h}�ut��N����l�~��a,*��KU�~������`�B�����+����p��+��!;E�=��/|��
�~9�>z�{�7?��!�F���V�z�d��9������	^�3�����k���P���L�^����t�J��q��0^��v���pk�]�]OM�������,5	^Yv}s��p2,�H��/���+a�����.O����N�1B��:M��^��V�����d�(��?���������� \'RDC�$BtQ������-z���h��i4*:�p�ZdS?��Lx1��m� ����U~����z��i8f�=
7�Q�g�V�L���"|�NX		��u"�f�5��62����TV^WU7cj�	���m�>q`��+3���,�
C?G.o��U�j���
����������Is�2�rNV��`9s��'uwG'.'����y��p���]q�.����\�=|Lv������F�Vu,���2:M���B�)P-���C�M�$��w����|���l��=Qx�*����?�I��t~B��������-5�}t���N
6������o&�{�\��W;����Cn��[��[�[?f������	R}���i��b��R�s�\�G�jVe~�������6����;d!!�T�F��]�x����&��)��Y��uY56��d85�G����"E�"��R��
�y#�4��T@*�B9o�FVK�i) ���d���R��T@* �d$X5����R���@���������F4F#���-XjjG����s����>��[����Z�oo��w�B����q�x�����yKP���Q����w�'�p��C���1�i�e�K��2X��B����Ys+t99�57�j��c�~}\�����n1�+gC��m������v?�������dM����!ka�����`�a�+u��T����._3�W�3tq0K�W���`V��uEK�y����]]�=|�nbp�������(�4:��+����!�G�Ta�tZ+Y1��9W
�RnH���:�!��#��"����E�C�����$5"�t]���[r��3�d������$]�R+]�>����D��L���5Yx��,���C86gW:d�U����p�j��K@X<M�d2h��.��p����uY���?t�������b�������|\�?�YY�?���H�0������������Ef�fG��q���Nh�m� �"d�6�����E���V.���@��
��.�4���/����=a�����V��E'C;�^�V`��K�X�0h�l};a�s!�N_lM*���X����Tt�Z7E">�4L[�����b�\�{J:�\Cv���Y	g+���!�����3����2�a6��dq_)��9�,��F�3��4�\�HC$�D* HP@�	r���T 
����H��T@*�R9���F�
H�R��T`
�`��-/%�
��
�O�B�O~�H0��"PT���N�p�\��s�}�w$���{��/l�6<�Mh~�h��"��]	m��Fg@������h.#�%�r��������!�G[����n���V���NY~[��/C��_�N�o�09�s`*)A�U��N�Y�tu"��(Q����������(���IU�f����R�*�Bqk����;NH���=�.&����f���T�k)���M(���iZ�=m��;_�k�������S��t������Y���P�
�Z���<.��wL�v�uE�%��
M��*Y	g��L��*����Op* r~L�X���T%��,@-��p\��,>:�g���pY��=p��O���sYy|����\�0D�
����,�_�'��:T0��xSgo@	)x�nWM��\]%p��dyp2��L�x*>d���#����*>w�q�"|����L�Y8���D�N�+�}�6b+a�.�H��0���	�t�����?0�A�*�`5��.7S�������������K-^���b��![-��:T	�8�b��E4I�a���r�+9W�QU�fY���)"D'����]����z^|�0�C�f�Y1��0�'m�%�������V���@8`�G����u�ZF���)���f��[�l]�Aqa�����j����~�v���B��`{:}n#�
Ms�&X	c�@�X��Y������U9��+W�����
H�C�	�CnJVH�����7&U^��T`�+ �����
J�R��T��P@�U7�c���
H���j���k�+6$.��|�	����_��?����oB���:������J}�����/���=D���������_���0�N�����D��M�{�;�/SA)2���e��6�`�2p���x�~z��Jt��\q<����[}h��LX����d����Q�Wx9F��Py���0��D�G�pf�a�Q��e������iH	�LCw��Hqh�.B����Y�=�sV`u���2�!�cKn��?F������g��G����m��<*�jQ[�C9��T.O�@��U���SAV@v�V�d��;l
�b��0��T��ATA�f�6l#8�H-�q���[��Vb9C�q_��S6^\���,�h!P%��9\����k}�M�[[��*���<
]����{���?�+��*�L��+�cN�u��h;��d���x������1���d��z�;S�����j?~�G�A�5s�^������#��<$����0���)N7��L�9����K	^��b�,^���zb��dc����o���E��X��6;�+�N�QTq�O?�����}x����aN�j������
�C�%cB]���!���9xxc6�2&������u��Qg�||�`���	���
�����'.�������^�v���t�{�JG��LV/*��?���&�T@* N����1�=�cR���* ����S�&���s������J�R��T`z* ����\���R�i��������v�;K��y��TZ�n����z����z���V���������tV��`�=4��E���,��N��XUU�����A� w�~�s��b����-ktzd���Hu	����)��E3��KH�E_CvcSNc!ul�Js#.1�_WOLG5� �?=ss�?
#-M�
"�S
����H��ixSz.���D���H�s��"`5��-X^��q����~�N�~�+}teW��w�G�����U�z��O0I@VbsyI*%Ib�7;C+A�(��M�S1�)�<{>INM�J.�z�H�-t�2�Q�i��.5\8� ������wz#����+t�I8XmX���da�����@d�f[Q��Q�NR�D�s��t��
m�T���l[��@�����YN]��Y�,�������2����>�n����c3��;O���lppK
�Thk�����B��,@IDAT��_��y6"����(VaV�
e*�T�Q�8`i��o�@0j  %�(���<����{���G� �T�|2�_����>���9���p�;���"��Q��;�<�0��r9�
;��BxJ��m��NVbp����}q6�-N�t���R��g	W	�X$�9����p"�,��^���G�l��z8\>t�z`�1���{�,���
�!yp�|��a>V,�{�LR��T`�3��c���]��T`���$�*��
�D
�9�&z��V�R��T@*0��`�4~8rhR���U �v����>:X�S������W�,q�2~|`�k���~���t��_�U6�����W��q5�������"[��?��\���6b���Bs����G�;@��D ���	(Y���TV���Y�,�G]p��B����P�����(����O�(".'�n��	r���[J�7�[�b������U}@\����.^��s�c�M���k�O~�
�#B���c��������u�Z�Z�~OOfA@TduxnT��4�����_���Y9�H���W(���xW���;��G�������"'x�
��pp�|������A���1\e��f,/�8F5����]���?�_
0L��s�Q���Y�.5��V����T�\����p�q���]K3��
�
 �����~&��Q�;����'I�3��*�6�p�I�����.�9�iwzUA�{`(��|��sk���p�]<��%�2��:Kj-hkk��^��C��$�VZR�������8s90b��X�~���U��oBg�t���%�\%�E���*��oa����������	�J�X��~/,,�8���E�*�X���xp�,�[�����
Hn2f���M���J�\9oL����R����Cf���7#�
H�R�V	V���N\* ��
D�A\���y�D�P2f�F���
C����.�{t������\GH�����Om$�u���� ���_1T��m����m"Y��<� �}�;0�~�4l�����q��=��2�F��n��o�C?-S��������s�Z=�wm���Ga������D�"����!��/��O�nP� *���S�a�8g���A����sw$U��.X�y��{d�����hx�r&�lt�:��JlY�Q	_�����>��:k�2��Z��/�@���~�m�������2y��Z�j5������pdW�{/|�����5k	�=I��8G�Y�L����>��k�D���(�V��	v_$dE�+���������	����-$8����&�S��s-�����UY�M��C]UA��G/:���
;O8p�,���IY:�]���W�b���['�y�K���?�n��'���� �{Y����d��0r�zd2��������k6h�G���Z�fj0���8CZ-lkf(����02�uh���8t�{�������f���r��������%���:��T�&Q`&�{�$�P��T`�����K./(�Q
�9dF=Ny3R��T@* �a�`�
�����R�i���4��<l�v�
�P@��o�>�99}u��c���;~��O���o�S�����,�*��A�-�y������l�6������������N�����=�	[����~�������d�:��.��?�K��=`����=y`��fh�o�a���'"	���R8��S}�S1�J=J��k��<�,�>~gT���{����.����5���7�]g<}��D���:��3�v� ��}W+��dTU�����
�c��6?��:G��j���1R� \�D���2�Z��js�)�$\�^�e���n����j��Y\m���Au��`V���)�`��>!�m����N�Gq���?���i�&��s��Z|���&��0����}������;W����f��
K�q+���;R�m[	L)��v��}U��Pu����s��z#��� �����W�HK�@X����z�X��,b�Z�9>pY�h	>�w�l?�O\�������4Wq���q!����r��T@*08o��ew�!oA* HC9o�!�l"�
�T@�!)���R��T@* �B$X5�b�KI�3W����C��!oM����U�����\j9�����$�W�uz|����c����j�z]'w��?A���F�;��%�����k�����
��8E�=|={w�������8{���|
D���?�(�pW�g�m64~���Y
��]Bz#4��AV|~�3)�)��%:^�
����C�[{'J�x
�n�������������j:��?�U�����1��xv�A��	7<�~HG8�� ]���0����*�%o�>7w<����m�	�<A��-��*��]��U�����.���`�����wfcQ��}._&��?0N�S�{�K7I��Tp9��4��\����J/�C���'~D��GK��U���tX�xr���;}�����V��s�1"��fa6�-�By����5��knS������;5��d=��b]�O�"B����LJ�; ���W ������j+�� �n�k1���o��=(��T`) �=����C�
� 
�y�yPr�R�i���C������
H�R��M���n�.oW* �<�����!��NiT~�����K��������3^������6�z1��������:��O���3��<7b[KU����<�Y�1�\<����
��v�g�v8������}M�U��-HC?��\W6��N��ti
0�]���E�(��CC'��}��s
�=�i�9�m�j�3I�~U�����?B���N�9����r
s{�OC��>.��Tt���.�<����zd���1L#�����e�>���.i���P��Q���}���.�'O��_���P���,���_����
l>��?���.��wS�f��a��o��Po,���@���C���L���`�:�Z��-�[�^*�����V�:�T�L#* ��8�Dcj�f��~��	nZa�oo��#�|��wv���(��V����-@W���8�D'N��������b��-�6B;��hA��#����������������(.{?�>�C��q�aAO���yg����])��l
s�(�����>�5WM
G�/�0�A�����`w����Vn_>:sy�n��X�������xhmD���L��!�NVo_s��x���u��
d����QV���LR���T �ycF���)��T`�
�yc����R* ��1�
H�R��T`:( ������R�����\�������W�����b����|�I���jgS�yF�}e�`�m���KU�uw���m�}��#g�9}j�;U������s;�Z�����>h�����G+��S�4^D������Q��h��edB���5�,+tV+�"gxE7���P����]a��k"$I#4P:C�]>���#?��L������[����I��)`��kL(������_W��~�8�gO�u�,�������kH��jdT�B�^SG+�W��X��}�`�f�5�J��`�����r�9t��6`��E}V.��,����\�`�R��p���
���	��%U�����`���d�v�q3T�v&��[W��w_C4[6�d�C���|���h'��~7+:Z5���<�~711���^g�]K3��c����X��`����
D����N�Q-��W������X��.{�)�K"����M8���>=�^�=��"��U�[�����-a(��8GE��B0
�t��iCJ�eY��@�}�N��P���TSjBe��2����Y����QA!��������0~�����������/}F��<���2�s��v��N�j�6���z	��,% )�EaN�*!0U�:q,���2��J�p����)�[bE�6���`) ��zYp���P{�/�w;B8x&�&�k������|b��F;��aBV��J8Y�����*����"�Z��������Ee�i������H
�v��?y\* ��
�yc�?cy�R��T@�!����[* �
H�R�t�`U�J�vR��T MD����7������(zh����f�f�1�go�#^��"�~aQ�r�������a���|h�����+��<�� |�H\���gx0J�h�����D��;��j"�]]�ww�j�����'��x����P#�������(
 `�B��2V}f6�?�9T|������~l�4
��p��N4���C�u��\k��%�PZR���l���7�U9o��>�����X���6|P��MG�\������$����������;aNVN#d�$������������By�9lz��}
����]~���?�/4���"�M�F���������v�h�L��x�W	Q?���p[a/|���3�=������x�O��;8��#h@M������r2�N����5�����o��������PY���y�����@����n���Dx��2BT�F�*��Q	�7��\�(^�M?{1��y��@�����P�Oip�����X#���t��K��nV��8��}H�S1`�X��bUN��S)��@}��n���Z�*�6�$`��;:���.�iL�}���k�c���xd]�X�����3�����1'+��=�����`3�>�p�Ey�0���4;A��|}w'����s���uQ6���s�o�~��i&��V`<���E��T@*0�r�FyH* Q9��(�l �
H�R��( ��)Y^B* ��:����?C��S�*�xr��8g.��=��h�n�w���y�;x��'���+��;����v{C���m]�;	G�s
P���uA`���E+�s
�2WU!���l�O���]���y�{��pb*z�	��C�q!����@����3�6\��t�����5";�zMb����F�V�q���V�m:�������\IA)�2���
��m�|����65����.���@O��dsy��lY���G�i�F�A-E�J������
�/��2���J>�$J�2\W�:�zq������'�=:�H%?���?`��P;��y����9*��M=���u�Gm4�;�N���uR@��qb���������V����t���?|�!���d�K��m��-u�!mV������6�8���VvW�7��(����M��*6��<U,���H�����~���z�q��~�~R�5������:���B����V���d=7�N)vF"tF���{4x�aJJ��(x�t�NT�T������;�lH^���o�w���|���wO�p���X�Om(5�3Qs���>9��D��d��0��}�,���k�����:{|
Lu�~(4����?~���0�7�����5o�����T@*p#+ ������K��r���@�@* �
H�R.�G��R��T@*0�
�}>4��p_���y������o��it��=��'o��������u�������kWG��t\E��
�:���' ������P=��D<���k�.{��t�Z���K���R���G�/������R���(f���y�+ +��Qx�~��n8CN�NB1�NMF�9�<XMy��a�':!�t7�@���G��^q��Oj����FY4Y�@��F�"���J�����'1���GO�R�G�&V���y�\�N�s�,<W.��h�Y�<�RoT���+`~�+�����aE
��������`?~����"hf�|}�I�}�3J(����"����"^s���:��T���'9���������������qw����j��{�����+u0<���tp�G�������_�5���	h(L�;;I��T��) ��86�#�+B�v��l�>LpV�����L	������K�*�"�����	����+?�-�t����U]p�$W�Su��w-�_��LF��Bx�� ~�N�����U��D�~�Rw+^���%'�&r��]��
��q���5.w�r�q����.�vG	 ����f���0��CpI��m�8���R���#��)A2�sz���0������f�R7���_z�Y;��:���n%�d�~`.��>�����Q?�s��9d��sxw�Yng��
��"_zl5���r���]Y��o����{�p�)�4�7-�w>[�FK�D*pc*0Y������T@*��r�HG%�F* H���CR)#��R��T@* �J$X5�j�kI�7��pW~�S8���wcyj	��%��p����~6:$]K"4����)����xUZ���{���ex�CA���V��6@�A>�C��u6���n�~��0��C,dG�I�!��R���M����#�J�6���:����he�G�1�i*��{Z����xe�/����W�+�r�������(�����OA��8�Etf\tJ�=�y=�r���F����8q��g��x�����<	�*Z�ZN
C/C5�����@����Bj����k�Pf..������@XK1ru�P�E�A��"��"��On;�UeQ��{F���z����g����t�uq^�������vhW�!}V.f���D���N����"�O�����LE�pY�G��ca$���{��N4���l/���W5`����7�����;���t�Fg@����]t+���N����_Ug��o)P\���o��@������Cxa���d���5i�c�c|�6�<��}��`6��s�W�<
������r��5���N���V\�����]�����4��/����R���Cd�����68�X3���xz�*���=���~��ow��������S��]�u�e@g0��(�+W-���e�8�a*�wbM����
Ls�b�����I��T@��L6�
H�sH�rG* �
H�R����������R������W�����n�TU����4&W���W�F���i����G���X�V�Uvx��L���NV�p�b���3��0���'�8�?�{�8G�}=�$j����X\<�.d�%`�������+`�=��/BX'�d����j����F:E�"hd�U��W+�[i��0Ey?x�{t�H��`�k��&B9eU���G���aV�L�,�*��dB_PCq	t��0�\����,�����]
�p�9�������U�����Vq�j����	J�`�88��H��ef�<d��9��E������w�����?���>A���������4\WB�av�\��~�E�����.���+�CCPL$C�p�j�I&��4V@��q��#���W_A�{o�y�t��Z�	��Y�w�%
c;�D
����/����h�ZW�T����.@~V��e`����#�K[���v�F����]��f�I��YUUi����sJ�1"�W�r�Jg�NO����Yu�0��R����||���!a%�ri�r��[���w���J|���|�B����bn���F�}a���K	������+�~0�h�N��eDn�Y�F���G\u��>?��kI�W_y�O�]��<	X�u�����T�7�Z��R���7��@* �r�z�\��T@* �
H&J	VM�����T@*0��;����}/�Z�a����:2������O�����St��C�e�,����{VlI~��"�^��
����f>8��8]�!4e-�����2��:rP@+]����T���Z�]B� z��p�z`��"Tf�H)L+�
�R���D��c]K1�*7��\t�yh�+��(@*��� �|>?N7�����n�<S�8�p�.�%4fG,�\�a�	�y��
s�h��OK�
�����*���zBWz�X"�_����.�vcG3,� *��6���p�b9�>+�����Q^�����n�f�����_�����
�D7��6���f���%�5��g�h����d�����#�I�=ssm-
��k,]�s�S���� �9w�<��7_G��w���:�A�����w��"����e5����iO�t}�l;?A��=���UF4e/AW�Z<���X�~a�EfP���~�\?���~��t�+�K�-w��d�FvY�
L$C�#\�g>�������w����hh��d����B�<�-���.�^�y��Y]nI�mC^��_����zN�k��N�_���!������]�z	�
}�S��j5�2�J�j����w�+W{����db��,�6a�,W	��z�������p�9��Q��*N�G��VM�W�t)������T��X�U��,
��	W��Vw#���c�?a�zR�_9o���P��T�z* �������T@* �
H�q$XWB�R��T`
��:�������/W��o�/�;����G��-���5��`��u��'��!��F�����0�M�����V��IoAIv�������p��$����J8Ry���H\`J�W����6�t6�Ul\�9�^7���rk)V�����k`�&�*������u ��y������������v���=:BpA���5�����7��tHZ���4��w��yEM&�b:�)��^���@�����M��&�##�ZoY���n���y�<������������cp�����-"�AU�T��C%����/�5���s4bV���SrV��u���}Y�
L7�cO�����J��?~oX*k�b�mz�?��������9t}�zw����plt{^������!g���xG����$����ut����@G;�,�����@WB�6�;p��B7���7�����$�l����:v<���*��E�H��M��k
���K"�p;p�:r���Q���
.l���7�v��� ���e9XU���sb�H�8�yUG	�;������5���4_~|5��&C?X?��(+��3�+���
u�����g*S�E��kI�p5�:�u��T�����:`�q���.���p�\�?"��d�cvM���[`i������
he��?<d|�S�����B8~�}��y���"�euJ�u��u'Bl�>����IT��g�(������M)g^�7iE���@8��D�VTq��j�W��8p%��%���ua�u�����G\	�K��* ��t����R�d
�9$�*�N* �
H�R��V@�US����T@*p�+�kkC�������}Zd-Y��/����-�����C�����Ls&���_`�����Z��h���l�Pb��x�Y�\��?;��t���$Du�U3!�f�u�pA%��T�%����W�<k�r�P,s���Pl�E�.�y��arT>��z��Ck2@C�(U�}�#�:�I�����"Xv!�[.n"�$��pX���Zg"��w�s�
Z���N�Genj�"wv���;�m��U�*���~)v�6���si����,�6
��`��h{�
tr�=��PrD����V��� J�<�Bu<�~�$��LG��p�8�p B4U���l��#w�F��q'L%���B������"0��R��JY������!,5<N���ZSr����M����{�|H��q�w���Cxf;)��?���}�N������7����������T`4^:�7��$�?������c�[Q���U���F�T�~/k�����w��a��N����ip2�)h����|���=�.Q���?����zi���a��1fY����+��GW�(�?dp���� �������m��w�Ng�������J��a���P��2Mj�+�cN���s���I#�=�����s�����UM�S���I@Zq�ja���:�!��z�mv�O�)�/
�5@J�R^BR�M��M�R������s���W&�U�#�.Gb<]����3�* h�H<_�E�+�pR�8�.��Bh�
��3��@%��X��;�s3��k{��%�/��V��Cf1
�?�9D8k�9a������B�}R��?��q��9}���(��(�^�l��%��
H�(p�����>tq�U&�J���I�����Y��eZ=9��
���Cn��'�.�
H�R����f����"�
�8
�}>4�����s�o���RT�w�����M��w�?^��^K8��b>����c�Xt���GYQ%��$�Q��G�P�]WcA�n.w"c2�PQT���
TT��[I^���`��n��N�.LA;C���Na�!��\��v�B��]z�xo�khj���2V7��w6Da��(?a�	:����z|
����j���N���y��
d5k�b�l�i�"�����t\I�����G'�rQY!�7�=������~�m8��H��>+yw����Qx��)�M��������6{ur{NC~���[��������Y�Og�C�F���8���.X�<�Y�A3]�d�r��8p(����1� Y7��<�b�(s����������)�r�r��sX�<��'��R�(2�a9+�g	H��Y���h��%��
F���M�:�=�7�	���Cx�(�
��Sw4���B��;Txd��o�8g��P�>����"d��=��������m����B�.K��k���.v����+����acy`�jVq�|����b�������{\!��I����3�����$�%��	�I��+
t
@%@�:BT��c��3���;-	������,��J8���5�L�%517�������8$E0�R�����z��%��R�C����q�w�dP)0�Q���J�OcI��i���b.�+{%K��V.A��	��~�� �U]�D�
De����S1�#���|�,�������o����P���t��!0&�-��D��
r2�
��E)�T"0%��1`J�����x�f���P�\:��t����e.��I* H����]��x�'����i`�G�����S��<p�-�L��2^���R��P�2TY#�
H�R���+ ����\^Q* �
�������7[�Q�"�U_�&,5�}u�-<������0z�9G���x{�V��5��p�2T�$�������S�t4���-~jJg+�TyA��BU���NT�	[����B�+��Mq��q�x3���0m+|4p����z����<y�>9�>�4������W{�U.���$�r�u���v1�:��5��&D��+/����s������+�!��w�B�����o7|i���afB4�su������2���$ ��
�.X���������'�y�Xx�=��g����t��P����:x�q_,4^h
�b���ZT�g�b�X�hl0���J�6����<��L����!t���{������]-Us��^:�mF����H7)m���n{kJw����=��N����kM�����+�6�!�

�/*�!����~g����|�-�2����K�o*,C�������_�~�%�~^+�����S��5�4a��lT��'��2��R�Y�c�Q������k�:���q�#�;���l�=��/DA66�)���+a/]�wy�a��
�	\��Kg+������s����������0Q$�wO�T9t�*�3+����J�R��+��0��
�����<$���B�P�vG��M��<��hA��	Z-�6!�cp��a�b�T���p��]��L5�I��S���� ��>���V�t����7��l%�]�]Zd������p�*���S��
����c�W�
�X�.��	I�nn�[y�����<��[%��g�>�n�x��"��?�v
�WF���o���K,�.<h|���3��Y��wyL* �r�����T@* �
H��������A* �
�K����q��g
L*���3(���p���W���9���{rf-�����@UGO;��r�M��W����T~��*?�H	��n��.��!�W
��*dw ���A����Y��p��v�q�*1��Ve����8���-�p�|Ar��W1���b���i�(�d�0b�������u���I������o�G{�����s��0"�gA�(����E�����R�T�b���L�&���jh��dLg��q�Za?2��]w/�guU���:�a��O�j>�rj�F������UB}�}�PV��������h}�9��
=������3��d���6f�m<I,@�k���5�8��K8NT�P[��B��/���D�E��.X_&P��%.0�pat6Ck���.
3��=�����W����)C��5Zd-^IW��P���0L��g������g>��;��y����>8/���OV��+����������������
a��NvzZun#d�6z��{�C>Y�[��nC�=��x�Ccv���L������!��~Wz&�N�k�Q�<:[���P�)��R��
���kk4��H�;<�H�r�'��O������q���5���
7+�ajv��~/��O�����6��.�?4��2�t�*��m���lv���S��z��>�#�	���o���u�8�(�J|J�E�f*S�e�J J���fh��1
�8%�)7�	G-a�*^�E8@7�K�z�Nv��|�0�s��|���NK�@X��K�'�)��{4I@e1@I�����t)	0L@>�
ey1���`j������N]���1�,~_$��!,����K�B�J���q�y(����3�����8nN.wQq�'Lu��T�%P-�1�A7��g=C�
H���%L��<�o����c�L�o��(���T��S@�!7�#�7,�
H�R�i�����c���
Hn6Dx����������Z��/<
e�b	��
��T�[� \�V+y�!����g��g��q���~����+OD�y�"BTU0���"( +�^

�������AL�Bv|:O3\F�S�Nc@m�BX�y8zq/�]�����;�$�j�uF�pQ0��a8 Qw���En)Z���W��
 ��D���0��`O��F�%���G��l��=�*�h�D����Y�`n(,�'����;7�����y/���^�����B��(L�[	[5@u�"���sX��xs-�]"l@�]���$�����j��2>Z
����9-{�.mY���V��OV�y�,�~�S:�lU��H�����\��L��`��������PF�$+�5�QO��P"w���4P]�CE��	p�:�=vFB#���%��h+E������" GJb�X8X���K, �hi����g�^���2���0U?�4�yh�&�n�����{��s��f����{�O�v)p@|L����O�2(�}�#��c�_L��`j<a���m��t�o��������aO���GW0jO7+��E���������Z�y7�C���'5���G���R�������
5�^	���XM�}��!+V����v��������w�j�kp��<�����N�����U��;�U�bk���R�-�!%d������j���"�e�l��.��YF,�k�#t�Z=��8�5�Ij&T������zUyo�_f��<|��������D���>���34#�)�-L�m�N�*����yL�T���9,�\_��>��&�b	+���k���6	�xA��W.�����J�E�>�Q@Tb+��1��?
hghC�k�����P���n��#�����V'r5�E�nlm���+W*��0���s(��^��B�1��������������\�
�����(��d�
\��$`Y�>x���������j��2a9���mb�z������ICw��4���!������x.��R������Cn�g'G.�
H�R�����f����"�
��
{{������x2UU���mFF�J��@�a�;��vD|����U�jm��8��u���%���!��!�^w:�h�����.\�]F��
:]�����My�1����U�X8w	t�(�������G�@��A�������:w�f/$�3$[�r!������|�"x`c �d5��j�G�9�y�<:d
������N�v��}�6x�c�! ���w"����x�H��0�3������P�s�o|�u�5��o�
��N4?�,��������j~�%�0�W�L��T[uy-�Zjp�=���]��6\t�v&_u:F��h��l��S_��S�;�6��`�P�G�
���
g�f�����ITI�-'��wG
�J����D�%��`����q����4�!o�f=��kn�Q�2�����K�k�_L[Ug�����P�ba�E�e���&\[�R���b�N3�����?x�Nao���#��	{���A��{�� �����KYM����Y������~��du���z��W�*QUBQQ��'�d���.l��������db���a��|�Z6�?�d��T��}��fBS-�<%`"��10	h�Ih�������/0���r$U���eZ|��q����m�A����������~J�
��w�c�/N"���fE������T��b��H0%\�`J�����}1wt���E5��V�	hJ�\�P�f-"������\]s�
p%@6��4��d��t�{,���;|E��v
��U7�=)�9�{�"��5���V(d��ke<dYY�t�c���X
\`(u�Ju�0�9���%�J���T�g��j��3���Z�?����IA���J��EU��.{]��e�����
H��r�V�CF* �
H�7���i��q��T`:*�{R����~�@����lT�������,�T ����I��#�v'm�SqE��:��
g�4�]���;E��|���;w�L��I���Fr�y���A6���9�0
]�8L�V�Xf�D&�XF�fn.����00����U�{z��K!�����u(�M�_��_�u����5�	i���Y��\��BC�bC�`Q�9�6���Z����zbB�]}�E���z��M:b��H��G��
p$�Z���V�$_�%x[�@$��&�p@eDk@�Z�PA%�5�Q�t.*���e�\�tz��P���E�dI����SM�nDXD�6:�x����}�t:����������+���Lp�ga��auK�a-q_��%�&$�f1�����@����^�����w�����3U��+����r�G���#{��x�
���^�T\g�7 BKmZaAU�Aq����� ���">���������tb�Z���~�n �j���:���p�|�]t�����ZK��%� ��{Q��:p��oU�Ip��x�� ����{9������I��D��H��U��Z��f���*Ut
1�t>>�C7���7�V�m��b�<+r2�������8�������L�t���T���WQ������6�����������X<��V������i�z����������?�|~���)�����D ��}|P"����F:P��CT���!O��6�+3���2�i:�a��=����D��^�{!��y�������.NF����J@X��o.���1\�x��I*�L�y<|����8y��������R�R����r����;��I�AI8?�&�����N�����7�d��"R��uW@�!���H�R��T@*@$X%?R��T`*���6���
c��������_�
��-�����C�[�����!�g!6������h\���AH��D���Q�A~(#�}��������Uc'9i��w&;	[Y	-(�s5!��&.O�V�2��\����t�2j�\p��w�n�Ha%��=y-\%��w�>�����;{.�G��N��K�ed���/"����9�F��,�[_W�H)V5�^��E[�?x�z,���{8K�2���9��������4�
*��U�u]��k���������PAQ0�"2��09t�9�������u�n��};N�L�9uN�=u���U��|�y��E���L�����w�!(�W�b!=�����������p�TI�f��pm5<5���O��P_g+F��Qm�v@IDATb�j�d���������W�_�]YK�e-Ig9��RG~�/�5�X�����Uq�aQ�"�x.����ar��D>���K��)�
��E������6��mU�
���X���(s����b���NZ��t�����s����_*�J���7�����9������kLM�a��T�<w�s�+�����]�����C�&e0_,5#c�F�O�GSA����L�/J	���0�����C��~�a���P�`��-V�?��Z<�����4�Q�����q"T�b.J'3M�F��s��[�<MHnx����ni��.�F��!7�y&U
���H����;���v�r2��t�4��
R
��}H}n�(����7d��0�����k��W6��yO�p,��,f#��X��,����aYE^���R��~�`���f*-N��.����l%���:��)QJ�T{*E��
O���>.Y�]'a�:�^�I@��E�Y}������T?{�
�(������5
�,�����L8�&	l��T@++��ZN�JKgo�U��u^���"1]U���J�Ll��� ���{�(����\�I�N��>�����;�����'�M-Z.�5d�b�mI��-Z�hH
�Jm�-ZNi�������#���r/��o��X�"x;��:5���:���:?D����R'�N�q#a+<����8�(�@��f�U�����m����`;c��8P��`��<��,2Q!�b��~%e3�V��MZ
x%����R�qP*R���
��X����4B�sG�d�1�{���?S����_�T��Q�����(j;+JV�`�i��HC�����UXV6���2�fO�?�
q���������z�=��v�-
�%U(|��(��}0��$]g:���9��6�G�C�\}[=�m50u��4��S�����>���*x�W`�d	��V`�rt��qy�_����Z�?sG�����e��.wC����;D[�>2}��f�\������l������2�0���OY���Yf���PTD�J��Nv�d;�bE�J���3�(����?�������S`�'	Sy&���}7Z���E�s�� z����B���Wp�����{�l��UF�j9!���q�N�N�'[�x�e7������YL:?z?T�!�z��mI�L��fDI�*Ym]�{���R���=�<��{BU?S���b���K-�V��f?�5�S�i��O���S�H��O2lr�"�%�C9&a�)e.�u��,:	P��G=���(�uh�Zz��y��v�W_�T������N�6�N��re��*+����>�(��>:�}����'KyYf\�>o���M��u%�#�?�������
~�0��R���3q����y�r\�u)�Sr�����k~��A���N��w�:T�c��u%��H�J�m?Tu�nU�@r��E�0���b5x&&���+�gCi�E��4u��G�����W����+�W@, K"�'���w9m�W�Z]������Z~fD@�k�;�gzho���+U����L^���|i�p�=O������M`�)I�t�n��Y+k�"pj#�]CNm����<mmm���������!/>O7y<���W���u����=�&��~�o��������EEE(((�v;�d����MMM|W���|����E����9����T��_~���2TUU��Z�E@��M�J;�h�"��#��g��
gG���+Q���`�>�iD���S}�X�^�H��nQf�n��������
wc����H����f�����A��
-PA�4���J�J@+�R`�0�%��� ���e� ���]s�ys{��=���Ob��E !��&��+P��@�?����v�wCw]-V��q�� ][�
4��bT���.B�PUP�
E�&l� V���-�I�eQ�)��(��[��vm�u�[����&_RE'��[�� �����U
�N����'����?G�g��V�s�ZXVU�������s?���m����O��[��������U�p�"� !��,�3|���L����4�y�"Z����K��7��S��-9P!WU���f����N�����w���?���GS%�t+������(~�M����S���:^�����DZ���e�*�6�9+P���t���L�*��2���<��Q�vD�G���\��,�e^���=�>�������J~h�
B�
��M����R%���J�(�,
>�i}�1�k�DV�z�����M��b����@T��Sq:�i!SD��W��'�S*�1��:��m2�?H���=_��j�jB�g!w!���������W�YA,_�����V^!r�a�ol�}����f*Pm\��sW��I%!��\.y�p�
2��'���Y�:u����?����P�������e��|�\�:���9XY��(!t%�����e���p�l_���5z\v��?�B���d�Vg���I<��7f���T�~{yL�L�>Q���*����4'�Q9����\o��$��^�T
T��SVZxN�5Z�,���#Y�fS'�����s���j�L8U*���f����b-Y�39:U{���y~{l��R?��*�t"!��_����&>�]����iXYpj@�3��1�����E@���"�]Cf7�S�6�\s�58z���9�P�n�������K��O~�\���m"��O�8�o}�[x��G>���w�qn��/�����`�#�MH��S^^n��6|�cK8�����$�������?�,z����o~���V���h8K#�)V��^�m-ZN��R����������JSn���XO�9z������C���v3�MX��FQ>�
2��� �v�����~�b����u�uJ����!������X�YQ����`eQ)���~�D�����������?.�<����w�����e���1�}l���5^�!�����{�]�q�5��H����O9�/A1���+�D�(z�'��k�cT[���#���|�~}���
0�7�����:����f��A�����F����)C`C%F7T���bT�3)%�S�������Q���5(]w�<?�Sk_���������.����8���at��t�K\n3;��(���l�[��,������V�(����%���s�� �<U)����� Q�E���0U���R�TF*�������w!����������[��85�p��u~?�A�5K
��R��*�5)7%V��T��$hUB��T�T�hSC��$�T%�<��T��U�0�7����C���������'��%h��aD�er8�kM��������0f�$��@V[�[�i���Gx>�|�N5��g����g_YT ���<%���
D�j��z9Ne���b���!'�'VSs���&�!�2��5g����n2����0|��:_ut��Fq�r�
�$E�eo��b"��������p�e�����{�G����V|����f��>����
�� ��\S����O<W `S�]���^o���"_E�SC��M#5�	9������ZJ�S����K�V+���0�,P�<gO�����jV+	Y����<k����(�=����?�n�����P�J��Tu^*�>��57�)�a}����Ax����y�?���@�Q-gy�k�Y~�����o|C�����y<]�������=j�O�����%���/��J������?�����{���-������*��zW^y�^�la�>>������rcc#�?j�5�*Y��:-gw4���>���k�"p�D��������Tz<�c��o���)�D�ff��h��q������[2��h+A��PQ�
8X����^�[�������z�V���T�S�~���x��.��K�ck�l(���^2�09�0�0f��"������s�P-�7�!��jJK�7�,Ci���=�R�����<�O>����?~����q<�6����b����)c��.���	���u
��6c��N[El&�mT�qr�c�k�
�	~?U`#�	ve^��d`g�yu{��rn��7���0����&��A�����U��|�h��2�^?�g:T�eve#�M;���W��s$@L����GP8��H�D� m�3=h��"�O0�ZU���eQ��@Q*�}c��4~���a�`�`U�L��#��*���5Q[����1�����4��zv=����tK���\���o@���$]g!*��~ny�vo��/r�����T���tG����Z4�V�����V]�<g�Y*I���w2<@%�,�j|TA����wqC�UQ�R??Y�C�+"$��
A���9Z�}���d�����bo�GQ�:� 
.�}W�)��o^f�6�V����j7�n|����������;�)/������T2������Wi�	�J	���)�Z�������XL�	Z����t�9�kHx��TC�u���1��K���7�B*��P�L��D�L�+A79.���fJ�S����y�'��8�8��^���*R����7u�/��H�+.5`�E���������Gs���'�e��>��J'�9)�k5S�S�������� ��,�u�x��/5�z�r�U���[�@x��-^�re��XH����T<{Do�T�������h�{�	��y����wl	����[��cO�~h�����?Nu���{iI�x��2��MN\���(��~zq��������W�IArQZ���\��9�������|��i���i�"0�2m�������}�y��1���x:`���?��o�9����z�!|�C���*++����P/�N_�����������������%(�k���
\R�/��E�+#�o�s�����\lE
L����Uj$�\��5X�FB��h�"pD��~����5F)%�$>����S:h}���tq�7�����2��B�L|#�
DIHT��=����Y|�=h
t������Q�L�����+�3��l5Z��x�)��m�[a'��#4ht�a��a�����L��8��
�	U�����w7r�����v�LBa��J��w�V�����l'8�Ok�y�_������N���H�������l�u�����������H�W{������|V#-*;Y�6 ���c���s��jh��?,�����A���$*?�����$�����A�3�P��@Z{0J���w}�W��h��U(�����:y��b�6��i����f4����<K��@��<g	A�2����L����(
	d��Nr����-V�?���n�����1��0t���`����M��&����7����5�:U)�S��^��q5�\^��@������-M,v4����mU���+q���\�Kc#U�y+��M@��(�m�Y�f�DK +Q�JlSP������P)�I��2P&?��S�Yp�q��6/
O�v��~u?������~�^pa:���:u������Q��w:0�p�.��nQ��.(H10L`N`,�_�b�
cI 2	M�-Ys9w��{��O�m�|T���������1����U���19>�C5c�����>&mO[~���c��;�T�2b����G�#���W���b��w�P�O�\�p�(���:��0_�$��U�*�%kc�����X�0��Q�,E�bfn�+���u�Dk����(���R.�X�}S�������;���X��Kx�5�x��Bu�9����cN;����GQCl�bs@�j���
�
t-
i��8U����r��}h��:��3�����V\�9Cy�9�cs��D{e{�'�]u���s2p���y}��j��\����D@���$j�gNE�����;a�r�V�����{����$�1`Uww76m���O~�����N^�?�0��_�%f�{���\rIL�Z�j���j�_~9���o���+b�(�����	�m5I������bL>���4�������O|"��u4�*>RZY��
���-Z��f�47��g?E����\7����=m����"��_���CZQ�^O�4�����������t(RJW�
�]�IG�-Sv�9����*�~���oKTY����,�)\�-%�qa��������V�[D����A��S��~&:h�D�~iy
�u����YdU�&������|��+_�����
bJ�����J+`�Z
[m����P�&�	Y
��0d���`����X`�FH�����$=X\UNQ�"P������"k�6X
"��?v�{��}��kO��^s3t����jf��}U�V(@U��&���Z��A*�&3&1���*`E-A*�u�R�}��}��U��5��Z�o�	D��b��X%Kb������,	���3���u#�f�����O�����C&��
��oC��
��N�������,����o�H�j�%l;���kK�a�����
�������N�c�)aj�^�	�n)V�����K��9�EM����(Z���B��R�RZ�m^j���>��M��}5a��`}j5+E��P���Jk��.d�*��Y2Q���`��`�2Q�Rrv!\�)�[�z�hY�uL*9�J]d���DQF��r [�&D��G�h�������FE�j
�*Q�9�S 4FO`+BW\��W��dJ��bCV�ji����Q<6����p��^�j���L����p���F��K���
#**����_�E��[e�
%yZ��x�����v�.����>�Dw����(S	Pe:��v�-�*yp�n'�=8���Q���w���n��t����sBW3�:Y/�$���y�R�S�*�%
oo��:PNp?.	�(�t�cu	���(��55o��/~O��/�u��?�9*z��.n�������ws|���Gt_����n�{�LB5�b)��Z����
��D-�����.�i���k�	�����,��d�
��y���:�TP����-�9����o't]���sIvr��#i���������'�5��9����>���
�
E����S�U5���S��^{����F�������o����Od_��q�wD��L���X���W�RG������Z���?���bQKKn����"��.o����Ns�^t���������w���y
���B��"�E`<X��
Z�h8
#F��~o}]����",��?��=�Dj3�4a{�����Q����X]�E�&������E��*p09<���
�����j����@[7A�E�����d�����������1��jEe+���[������R��������!��g���3�p�97�!`%�0G�B#�c	��m"���`-+C����c��1Y�#���}���
w[��Y�i)�]�
g��&�e='��1��kzxNya6��������C>Zs?���UN�z�z���)5����Bq.[�D�y�.<`,*�����po{;t�w�u��@���T���c��?]�0�ij�������d��t������+���jG��]������n3�
)[��%�U�(Z������&�BX�*��{�,/�-:(��������\7����M��Q
P���@p8��#��H]���	S���T�+��T�-D}?�����Au���%�nUy���v%YUs������X+�G�]�������dEe�JT�b=h��/��@V!H�'6����)���E�*��%���C
>E�j_��]���um=�x��n�q,��+�{��Jt32/����V���� �[0�h5	)S&t)�K��	X��^2~�����?>��Fp��\��Df9Qc����Byp�v.�a�U��y#��Sm�����!�4Yr9L(���M���k+�8gU�X������#U����D����c
�����He?�^U����A�Q��h�=��M�B~���y���QZFs^�L�k�L���p�����sK6.����'Q��&�'��&�+��)��(������.�vt i�D���l��\Y����x?��k2�~~:�3y��N�g���+���ae������U+���{��ZU$>�F+���K��N�wGx����8�j�[���->������7��Z��G'����l,)��{�v����6�E@��t#�]C�1m���@__�����������8X%*N?�������k��O7����T��[�w���A�}5���Gj/��_���eF`���z*R�lu��h�}�{�"�B���|g�,3s������?��|�31�Y�25��*5Z�E@��
�R#��Z�h8
#�������#=��������G�����<Jk�x%�<*��,����F:�m����tfF�AzhH�j��|d��7@�jx�]���kCg;�Nz���|�|:��uu���A�m%v�\G6��n���\[�6F�K]SG�
�:033�h�.H����q�s?��y9w?{��������*0�0��������Q��;`%��Fx|�~|����"�K8L�FucTZ
�:��a{	<����V��Y��X����:SwR�$��b�u��x%��j�S��o�{���$!�v�6�S�k���a�@�-.k�0t
�����k�o�������P���)����%X7���#<GC���y�c,���������oa����u-9~t��Q!K,������ &��'��	��B��QL�����T&�*U�eQ{5m�Lb�&�<bX����A�d���n��8����}� <GQ���v�����-6�+���f2�o�k�u���e��NI�5���.�+r��*��5��X�u�r�}?�����4p��#�zx�A���e��V����VS�b�\�U,������lC��WQ��x�go���`/�5�	IL\G���+\z�g�����?@_�9��\����@�.�*�~�F%�5Z�<�5d�@��t��	�&K��#�I.����I�z{G���QZ����wt�6R���	�m�����4x(	�BQ,���2/�NQ0�{��s^��zQ�R���,��1j��J����+��z~ �F�������y��5���~4�
����y����������H�+v�}�����R�t���(�cY�
+�����y�3��>������:F�)�NR��(-D�z
�����?���LAN#P1�s�t<:V2�R�,���-����2�BpfO(��y���������CE+�*�b��vUT��\H����C���6<�R/<�Dx����w���M;Q���������v��d:���<��][�.����_3I�uC>;��Yf��3�3r_>B�E��N��e���������}N����|:
��m�-�����^7v��-|���w�]O�?'� P%�����{|��?7�`/}�&��S�n��r�v��� jMh8�#�]C���?��>&��R�HM��lG�)R ��3����������7�t^x���VV�\���7���������W���TD�Pt��wF���t�m���?�a�^�����.R���>�p���~�#I�l}}=.����������g'^�@���2�|�����o)���1�8�*_[�n������js������������j1�����w���H������[demF����"XuVfm'�h8�#����h��9�3�C!����.����L���z���<c(;d	f��R�m.)���a�dV��A��{�]�M��{�=�~�z{�3��A'�����/[�p�+�pm����V��l-��m�[�o����l�,��`��y������H�������fZ���?��6�	���k���?����/�h����5C?�C���,�YT}���(��Q�I����A{�&'tc�!�����e�O�@�R�!�N�d@1E�$��K%)�M�29er���qP9<��y1D�<��O����1�?�����\;z8��c���7-��]�T�7!��O�wz�,��?^F�N��A���(H|��Gu�F��[C��M��2������I�+sE�
Z-��0���AU��h��H�A����h�Q<Y�U�t��c��^9�*6~�7��S{���i5g�)�}�8���k�f���WD���AZb������2)�F�K��:�~<70�_��g�D��x�>�D��su�1����������
j���'h�s�Qpd�jf$�����(JH��:Zc�I����NTTS;U@����UU�r�j�����_�9)������t2��/��b��������bI��[��c�jc6���dF	�Q�OY>��B�l�0�"8�sX�rRb��r$����r��fK=���8��2f3v�(��S�i.*�	�i5%^������e��d�+�g���$KN�
d���h���4�����k���:<�Z-Z:����`�� ��-dn���*��e�6m����G��O=/A/�L��[�%;>YT�!p%��RBW��mX]�H	\�Q3D��a����A������{N�������O��9� �2{�����eL<�-+�����X�4����`�(�	�9[(z��X����p!:U�+z}���k���X�M�>��k=���v�r8�:�
:lF�xin����f�v��K6�>{�����%�6��:��������^�5�eIT���� �-	Zi�V�����1U{NN|����q�Wn��y+�g��U��~���4�z�U�w����[g���v���jI����F@���4r���#����V�G����j�u�]�r�Q����Y��s�a��e��
7�c�'*G_���p�}�A@%5MV��X����s�U���=5�5X��_�*������I�^�|��MJ���DV;r�HL���/���`dy��O|�1Zuuux�����'@������c,�Gii�Z

���B��"�E`<X��
Z�h8"��g���#QoOd��&T���3`���]��Z�Ub�tc�8e���p0�|3^&yC�D�����D���C�%��

�VQ�#U�NL's'�"������C?���mBg_;�{��VG����Z5�l�������'�}�8�5�d"���d��:�t\�,ZB-�����=�&�M7�����I��w��+F2��vprb��s�M�"�T��e�b������O{+H(Mw�1��p�{������*d$�e���Z����,5�!����c<!e�0���Qup����K��Z+�����
���c9�<���������~�T�J��t:�`�w7
v��
��|���huL}��iT��>*X�d���~�U���6D;�a�s��{+��������:�Ke���P��=cV`F�����!����Gp�m>��}��*R�������
dw[|s)��+���~����~m7���������o�O��t(��@�<�a��>g�!,e9�K)����u������njU�����\ga��sQ�K[�='=	�z&�IV�<��5op
����S�����]U7Q�*�Y�RZ�Wj�(
V�@,0#���%V�����t��in�pM
���V�V ;Oc^����JZ��7`��'d��i[��$n�P&�Z�6��N�(��5�=�*6�,;����J����:�
R�6(��	be%p[|��L�39C��V��q��[;�{O
^�'�U�{��*��U��8a�����.��s���y�%W�y`��g��3p��HH[�3�:���Q�gD+��:>�����"@%������y���6n���}9��\9C0����F�_���b&�r�k�R*���>���C���3x���P���qg�zA��U��i#��G������ �s".]F���^U��7f�-I^�����Z�t# VmZo�+��b�������)�Va��B�*�j% ���D	L����?��������lpr�e����gbLk���������~�*|���eY��% ��6/ ��'/_)�,��^ryn��d��G�)��9��o;����;��Oz���������%���q	��%��yq�� j;�E �h�ij����)�O��Y�n��=�;Y����`�����:������A�6�~���U�(Q�U^tR���/�����
Q]�-�VI�����p���Rm��x�h��*Q������h�)R7#*ZO<�D�V�5���5��������|������/~�|�+_�,����]����=u#*X%�`v�z���B�,��*5JZ�E@�@�h`U��huZ�h8
#���[��~L8�# ��VY��|&J�jiqF�ME(Q_$�2�d�������Q�D��N�Q�����NO
�����
�LV��2J�����4J�
�#��������S�pG`�����O��<�/h�6�wc��&`3�7`�Q�R���+>����$�pP���*b�g���+pn�y(�/�ZNe�BP~�U���_}��_x���d���Nw+�����uRl��btf���	cN�y�0V2fe�H+�1B'#��#�c�Z��l��p����Kn�@���� a+Q���?�I��f9��,������S[gL��V�@��?KI1��u
��x�r���u��5��F�&,b/�Qq(�0b�/����1��5&�=�����qP�2���<�f*>�w���sW7�1/���j3����<��2f�@�)�jT������x����|��X���
rv����A��9��q Nr]����bu�f�1����(S����<�JI6=�YaC~f��s	����:�����c�fU�b�2�<Ke�H��gD�-�d�V��$�]b����:�����X�����a���j��sQ�Ol#�~{���u6��n\vy��lF��{N�i'��2�:��u+E�*K�!��,�7�f����@��2@:@�BV�l�,�B����E2f�%k�t�����5mxqo-�z�~�����wW��W�����q���>�������2Z�iY�[W�p��9�ts�Z=���/�?<���wu��3�~��e��h����
��x���!o|�SQ�jl����st�
����"�e���q��n�((��RF@�U��U�:��_��E�%aU+��]6���C��#��S��R2K��\N��������b�G�>��y��@+������v��v�<04?�$���Y�������rh��;mX4U�Q�����^�:�:���j���T�%r+�/)�(������o����?6�!���*�r,]����������B�aUK��6���3!����E_���������b�UkQl%%�0w����3��L��o}�[���["�����z
�@���}�k���������7�����)z�t��g�}^�W]u_z�xio���o�/����mQmz��7�w!������/�����u���S5=���X�d�ZL��JV����Vo~���u��=�


x���q��7������VEGC��"�E >X��E@����8�~?��5L<[�GI����{����������������������[G��\u���h�w&��5������Ue�2m.���O�h��`_�b-V�]�=}�qh�
]��������x.���/��%[xg:�t6���#����C}0�F�`]���#BW����1/��T��z��j��0��l�M���pW��l���O���N
�����u�&
&3*?�i,��#T�H<�����������1e?%��L��	�2�c%td�a����Nc�s��q}�����A_�	Cs7�
]�P�5��?�PS��Y��5��A*�����d���@l�����o�sNn/U�BT/!X�7P����c�@�C^�*�8J	%��0�}!�iTr�����x��P������"��1��`�/ �W����*�����Zj�E�D���Z�Gb�����rw�&Qcr{��a����*QN����U��]�ufR'�ok��P3��J"��0~E�l����5�L~���
K'�����m��E��������}{n��'t��W�rwDm�"w%U��)`�� �R���)���������]�6b�y����(\���(_���(H�ii&����Y���kI�$�ib�C�����	����u~<��e��r+�P���-�D]h1���T�;�@5�:���hu7�KhX5/�����V7�����
�k������3I���+��������1�I`����E�}�:��������U��*p�e[r"us=��@�~��^O��e?�y	m�-V���=��F|Zy����c�O�} ���	�'��mI@�e�W�Y��c��n��x�������TuTT���3����C��K6�q��i�oj��������QU0�����i���$0����p�3�t�_�u/���7�)W���LC�-�Ak�=T��[�Ew�6������K�L(�Z��b�F*H{�a�����ob���c8�d��n%T�,'p���U������%����iW[W��b����1?G�l���f��H@���"�g�����o�Tx$R:i:`U�������+�*yT�����!��T��?�!���oFV����*��������O~Yv����T�2nf��=x������w������"�dF�&	��H��h`�vh�"�E��@�������b��Hi���v ��	�1+�����z�r9_KKB4l��dUV��v�be5I~(���7+W��e��S�S����R���
��������\�O|u��x����~�2���������WES�A<�q�|b7�{j#@V�����Sj��7�����IE���4�4�ik��/��v+�V�|f��#d4����b�OY!����E0�S6��Op�0C�F&3�&�k#����.d�N&�H�4a������"ZrP\M��2*mJ�~R��\���N��g�����������?B&e�������@O7�m���M:~�-�yDaL�1�
�z��Wj"�x�3�+�A�4�e�]V��E�O9CPN�E%�>�Hn'���V��D&t�ld���,��\]T�����m���@;�}M��S��Pt���
�N ���F�5e�Q���U�g%LC�(��x+42�[�E��e��p��c���Or��O��2�M���4 �gB�?�����P+�b�@Wq����<��b�Q��Dl,JsM���
�y�
��������BV'�D���=�>�F�#_��*��;9�{0��,������{���~��q�I��f���#=���)�
����w!�B���a����Pu�G�H��s0���v%�Y���U�J\I�G~��H������X��AW�@"4�F�IW1*6���V����������Z,�c)+���7z}�K�������8�kE�^�_9�A
��������R^�$S���u}]0�;�wf@�tAo�c�6��=i�RH �q`��.e���6	�A+,��2��Y�^���|~p���4�^yEy��:�����"��Q^_f��E����b
=�*���PR�K�������'L���U���:�t�%F�O�y�?��"'g�6�����p��,\yN�cA��6/~�t�����xE�7]Z��_��,gz����QQC�5m�@��a*Z�'���S��
��i��
�-��~��G���A����c�l�6�.�jE�Z�+�rXS��%kc.�S�q���#�C�*�*3��-�x���N����a)�5-1JSA���A�j�����*n�i��u�T��5L�O
�.���'<
Hu������e;�8����c)��	������r���wQ�W|�Fke�y�cyddaob9T��+�fI������J}�o��t>h}�"�F@{�P#1���VI���D����2!�tkP-�d�������_�z�*N���s�A[[X���/�����jw"��/�����O>��>���A��$�PF�9Y:x� �����*���7����_)�u{��L2��U�G[�E@��Vi��-Z�����������E=f��t>�/��4���i�+���h���0Lu�F�9Z3�d)�~i�ZqP�^^>#xm6?�9h��T +�,�AZ*�%�l3(#������+	`3�L"��72��y=3�+��X	����8j�@�z]����DR�y�o^6�����7<�u��c@IDAT-�����k�|��)�������O���O`��W	n��[�a5��Z���e���~��!*����O���UV�K����������p�X��5�W��tiZ@`�p7�����$��+
7Bt:u<�8���'p�*<����X�������A�0l�#l��N{�F<��55��)��w�����l
F�]�Y��X8(��*T��y�%�>|Ey�*����O�m\���w7���\P�6ag��@���r�h�XLu������4.Y���`��P�S���{=Dk�!*x
� �C���O�/IM�R����Ze�V\�ET"r�{�d�-I��5=���WVBVY����d�E�5�p�1�
q�UO���`����c�����W�[������s�����%�K;��u�S�YQ��h]���;X�<wcR�2iW�d����di��>yo�Ch`0a�5���kF�m�1�K
8���J��T�eK�O�r�����y�O�R���v1�k7���l��we6���l�$0�� -���;�m�������
l%
m��"P@4�S�}��m����s|����0�X����v�c
H��V�PU���*=�r��H��8����bp��XN�`I����K������V5�#�3��$�1
rv#�������KK��A�����_���������07���t�{�$[��E~��ew�Y�lJ�6��f�}W�f����	ud���Nh��y9.jV�,;I���� !X�A�F��2`9���S�j9������#y�
4%*T�HUG(��;���
������-�:�Xjz���%�S�1���)����G�l������?#�)�%\�����csnj�s�
�T�oanB���qR�M}l�{q��T��=6�,����39��1�X�G_���T�k%��*m\�T �k��&���>3�z���K�?Q������v~�	R����
�h�D�G��h�G�>�+
7�~M��f�9�&2[Vj��@��@l������k����9h�r��J��4���!m���@�5D{������`�(,�t�M�@����>���E���}���O~��j����!
O����Z�j�����]v�e���{��=�xR�C=�-[�(��|�#x���EhI��zd����Z���$V��&i��S�1Y��U�EG[�E@���X��Z�h8�#0p���y��'���i3�.�����������Gc�����j--�c�*�l�mjR,�R���D�6Q�E+Q���-sNN�Z�����`4H%+��fM�Sh�A� B}�1G�F�8on��@��1#�%�����8���$k�W%0Fu�Ao>���%�'���/��]��)��c���x���x���|K�2s��T���b{�jV���?~�W��R
��c4��n�� MX2sa-���]��<���\U������h��Nt��j����TV�Ud�uF<�	���PcJ�����:�I�)�!9YG��2V��n>������_�
��|/O���!3U��|����dg��Nw��pU`\�J��8�n������� m��E�J����6����t6�x�m���YP�gG�/�M��a���fy!���D��aq�i��g��@4�^��Z��C�+�������Q^���Va����dj[��R
(�����<�x�9y|2�2���}5�z�pK����;U)0����$��������k��Vt��s�Q�i�b�g5Ml	�	����������PT���8���Aps��il@����}4~�^[
9����(��(��BU��2<UI��AQ��9�@W��!~�0�LH�p�������7������S��0��3]>�g�{���w�����������D�`	Fm�Fx�7P��@�)�(���e�����e�O�s� (�����|-T�[��d2��s��vS`�N��"���2 /��I�C'����ZNuxio�eT�[�{F��d�Z��U'����s���QtN-)	�SO	8%��e<�<�����'���c������I��T ���9��\Z��_����/-�u��GW/��=�p�#mx�������h������<}D-s�t^���h�=�LZ��UUv��\B�de��6c[�r,oz��A^�EyJ�|�����;��W����,0S��������pH��<
�$pA&��
��N4	��rr
NJ��:�W&���!�Y6he��2�
s��)+
�L(�q)����0��1��+�����X(�-�:q����{X���y�P�{�O��E5�Tie���U�b��r�������}Tl�J$S���l����2���[��~��(�S�>�N��N�R^W
|�0�����Rr����S�;/Xc�����[�/��	}� U�|�o�����BW25v��*%&���&/��w_^�[�,�s���O��(�#�����|�����.��<��9jD�%W&��r�6�?5DTO�����rx}QI����:lZjE�C--����,��/���`�(n��=�����o���;�`����+����;�r���)���9��M�6�{���t���*�J��u����j`��U'N����^	���|�����"�dF�&	��H��M�J;�h�"p�D�����������%����
y;/C���T�
g@�p�X�������.
X��a#2	�Yrs�j%�AD+/c)����&��DM�Z^Ae+�VT���S��������@@���R���Up���C��������v�@`��%	1P�:�|���}���7�	�;�"M���"��������o���W��Y�x�I�&���M7������
,������������|D��@��:Zy����@�t�3����Qw�j��l��h�F��
�
%e�ESrg��m�W"���Pr��i���o��#�0<m
1����
�����L�O��z������R���dQ),��Jh��t��,�tZ��+=c��nC�!+�V��Z�B]��U������� ��<h�L��x��j����f�nvX�<#
�rq�e�"A��>H�j��cn��W�#���H/�*[QM+�S:i���5}�����e�b�F�����z��@�����4�V�T�*E���i��,L��v�Pm-A���Jm�T$�u�'��lwM�k8�4Yj��������*F�v'�R~'A�����p�d�-�e�	�&j���{�s>H�*4n�+V����J.����(�_?������u�o�2��
����!���_G�ro5�dv��IG�TL����U� =�uT���1�0F��76��%m��2��)j��NLN�3�0b7s2ee)�9�J~��%&e@_�f��,����*����Z�4�`_�;�U�8`Sm3�A��E5Y���yq_��s�Gk;�v���;�=0�<:B���c#�R�;P���<�*/39�L��y� 
xy�y<cJ��K����9E�L��J�M-�)����t�.��+�����yf����]2z`p
"����2;6P�+��a'�f��@�p���e+�g��X��c�b�I��{o�}�	��/4\Q��e��b��ll^�sJK�m�h_v��U�|�*�d1������h%���R�r���v
�PO%LiO�������l9z���A�W!�>w����G��h�F��Z;S��(E8��pT)��D����%�JSR>I���}�O�+��}�r�q�����>�9?����/y��������pEA�jZ^�i����=����J��I&���sH�K3A��!~/R5X�n�[��RX	U���	�&y�_�k���:�}��ZZx��������f9����$�ay�Y|��$���k	xU��Q�G�����R��M���G{�"��j�j����LU�6Z������yg_�TCKe[�n�f�^^��	�m^f��*kJ8p&mk����s
����=-��`���}�{����9��<�6n�)766���'~���G?��������,4X5��iw����k���$I�#d�<���c~���M����_����IMO?�4D�J�'>��;�&���v&K���W_Y��;�����������F&����I��-�"�E@��ddLKZ�h�"p�D ����]O�����;Xe��E�e�#��RL�.qU���G���kD��5
H�E��`�Oke;��x��%X��
�����d�BV��rt����`��+��D��#
<E����]s��T�����''���[&(����q`����{��p�nB5li�r��-�Ay��io�x�A�r��~�y�h�hs�
�}�n�a������bl_w)r3��. ����6�u�����=��C���X��q������o[:8����@#4�w�%{q��|=�n���U��cA��~���~������RK>�T���O@��������	����m�.�_�V�`����tb%����'�:O�F����*������u�[E���z*ZQ)O�I�N���Q
+�r�yD��~;*�mTtJ�A���Gs�'�4��"��e)����.�V�OQe��r�}ru�H#�8����A+�<��q�
t�<��r�;��	���(��r�\�I�Q��'h�&��*f�CGE5h=���4
�P�?�2���]L����|^�=�Kz���2Q���(���^�a����$��O��h+������{�|27nF��rj_��\T�=���nW����ko���z&� �<�������Q�Q]p�dp:��4E����8@}������l��#�<����N'�I�(�!+��I![��YT�D�J@+Q"I��k������R��T�K��v�(PU�_[��u*�Sf����p���j:p��5�=|���VS�������%������|�"+�d���$���$Vc�Z<�����f��=���<��e�\n�JG���l?;������6d�>������.d��� �xz>7�����a(�^�	.+������)lVT@��P�BNE�z��,P���nW|�w?��7N&��f�3;6g���%��	�cZ:m# �1�(u�6�bX���}�w4�p�(��+�F�?_B���YM��(��4�Z�	��D�����T���[����M���Y��#u6N����'u^�gY��:��2�=)���,�2K
���������Xs,���jf�&G���&{�P�%��{x��<�����VQ��	�]un��fu����m��SY�
�~��=($�9�{���?-XO���*�s���k%��
i�XF���H|�%�oS��
oa8�����i(�I���RI��*�V]U��I���T���j[��#pUK��V�dI�n��7�,L�XQ�u�VN���Z{���T�2�bN�+�
e[ZI���8"0�k��������V��S�����/})r�~�������"��������#�tf�rS�<�>�������_�Z�h'��s��<0�����?������z�����(Q�\	x�����0�7F&I{�r����5�������M)�u{��L2��U�G[�E@��Vi��-Z����|�~~7z���\E�A���/����0�
�tI2 ����<'O(�:��np8��n\7��v-n���;/"E�J��|�nE�Jb�I��n�3&��dBZF�(9�
L�..c�2�i_�.���?��w��x���#�����?�s�]���DLc����/b�����y[O�4>=�����yk.���
T�����]|���oa��������|hSr)�iY�&�B�R3�-��u��%s�#���D~P�*���QJE�k���w����IwW����8�7fy���X���pp}yL}�����������p��K���V����T����b�%�(��.:�`����L������Z��U���JVT�"l!�V�`��fu
���Q���ld�!T���x�A�%k�E�%�
gh����-�F��������c�
d����,��;��M��
�L<�Bu�n3
�6^CR�Yh����EE%��|(�Y�+P��9Ta����X
f_�#!��d����5k�������Yq�u^�~,��-U;�����yH2Ha��������\����!��.���x�"@�����t����R����imV�uN�:�j�6��$��%���m������0A+���L�$�}.V�d�a�@�������������O�'y���*�U�Q��o7�,jV5��
lu��'I�t�w<���	/-��������P^BSB��'����	J�P�0��/d��v"��U��X�d>7�J��	+;S �0���3s;���Q<�X�����60�X�����x�0��L�>��U^�E����0�N��L8\?���s�U�Q%�we�2'.����f5���XZ�B��V�����2�<%�V�-�M����`�6�� �jmQm6I������)Y�p���2A��x���Q��T�I��L�S`)YW@*���df����/�=O�+����^���[vf)��l���=,��X>�/�=M��/wau��S^>�E��$�����%H��}K����rBS+�<�n����XUa�*�����i?�u�ZX�<e�}���.��$��d��gh�I����e�tE�Ql6������G���>�/X�����2���<Q�
U�;�Y(Y����kf��Yr>I������XB��7��Ir�,�r���|�����l��c���e���\C��W��g3X%G���n�/���<�m+���c�E"�x
|�Z��������]���?�X�������Wv���/��������~?���#�9r�{�$jS����#����He��c�=��o�=R{��w���/W�s�^d#��h`�$��i�"��U�9�E@��-�)y�t=�8�	�����|\q�2p��pTx�1@�X��C�5_�.	e����a2��,R�3�z?-��-T�jlP@+��m��$�8$%��S&��Q*��
�O���������z���������vl���%�\WTyf����&��������f��B����7����'��Qd�m^�@�����J�!Z�P9�LK��*����(}�{h�Y��{-����	��I@���~�?��%�Q�f�=����{��{c�}�Oz�	9��@�;oD���$��~�r��g�=����s�oz��vR,"%�*���E��&������������q|�u�\�/.w��9q��Hnr��lI��NRl�X@���g0���3�:@���k�}���?����>����Ud����1*[-$e�	.��*�ILQ�J@+��-
Z���<i��<�2`ioC��]�Q�MM�����Y���-
l���6nV �����R,C1�.�����A�xL��T�����)�aG#"��_u:Z�8��X����
3�###x�����OP1r/Jo{9�|+4
K6mF��-<W/o�U&.W2?p���~1����41�+�B���9�����Q	g�?M�35UT^Q�MCE�*J�^��bW^��	$����-��J$���\TU�<g\lhb��J}1���c ���
�2�Hc|���TI���H!��f��=���1�a��Z�y�-����]�mZ�t��V�*����Z�m�k��J]M�WZ|�`�}���I<�q9������	-����Xku�����B�T���F����#����vT��.���\[��q~8�l�9��U^vS,p�HR�&�����+�����T������o�������m_��z����~�T���(&�{3�~q.���wg�)x	>�N�{I���{����S���R<1��M�)J�*&y�
N�2_����P����D�� �ZV������g/A+���^<��([�[�f�p��C�a�RG�����8v��^E��$�]YnC	�>_��z+i�'����5T�u;���[�r��3���������U��Po�(Y�$l%�Q����
V�N��u�J����/����~E�I@#�2)��.S���j�>���G?�Q�������Q�J�� ������<��}�c�I��/~�]l��+�������;�EVz}s�Gf�
Ve"��j���jX,*j�5j�����Ql��O���}�T���k����<&he�?�"�l�-��PB5�z�[Y^�I`� _Z�>p��'%�4j���T�"@�rN��~����f���&3���FKM;�����
<�M���������vZt�b�D���_^Gk#��\]�Ck�?�r*������e]��[P��{P��{� +Q�;�����������l�����s=F<�����'A"6SzBC%*��=
LU�������J�$�"�-�	\�
�Y�mSO�9�BP�bv�?5�`b._�#���T�����4���L���S5�t���^�*g�������:�_�x?������u�P�a��N_�aBKaB��=-�����a���A4TuI���HJ.����2��x��D���w4�	6����)���J�������<�f�d���C���G��r�g��$i���9�L��f����v�zQZ���C��M��>��������_$���R������.��V���)�~����[���&�	�W�1N�W���M�E�`�e��<[���%�2u��D�@R�4C����a���?<�\��������z-�m�r��~z����+�H%�T�,���P���p�k���\u�� ����O�MzX�&E��j10�@�IT�,,�,�&�����X�����
��)e���������M�}��jli�A[c96�����������n#H���i���m`�D��k���h�N�y)��(��)���=U���?7|�8��8�����n�3���\������+Mh���F�Smu*���8�z�i�7����^���|�����h(���@o���J��B	�	H%����-y�x�������3�r����B�����{	[�
_7��G�eQ�ZNXml<��1?mg�[&#��r�T�2��\�J�^Q��rq�k5����XW��U/v��N���N*�^'�U�;ZT5����FY�V#�`��A�Wg�KX����iK�%,��EB|?n��|������������B`H,���o1I�������"�����;��3;�[�-�_IJ��I�o�r/�w�����������O=�ZZZ���
�����y���?��O��>|8k�'�_���p�}�e�+|�����TeRgg'�F���+���6��U�j������P�*�P#�F@������G���s3����Sq�k����J'�^��c�Nza��K��.��	D'&�H��w�6I6�*�/�2��.�FfP?��_����O�����lP��U����e�@6T_��z�G,3I�r�w�+}n!���	����4�Pl~��en��/.���W1�D������
k�7_��/���u������-�66)s��<�����X���lC<\�����	Uo��oz����W��%U��(����W����R��#	������H��I�"Jh�j����fr@,�K����
�k�'�X��y���=]\���LQT���.X�'���o��(��6�nN���w������[��O��U��=����k����+ao(���� ���w�u�����D(ev��#�}'&�{\�yz�
�{���(�'����;��u�+VW��p,���wZ-M)�n3���]�i�PP���z�s9x�B�jF���RB��j�$T�Z��_��w�:�sbl*I����3������c'Q�o,HRs��C�M��/�"��`V�@V:���L
S�@,���`��6��v�����k)���"du~D�lGqH�QiP*L�A)���w���I���)6�����{|a��X�2�)?�O����Rb�X�V�����V�[�7W��r��v__�6�����q>S��]�n]��#����z���0�:����TI�$U�*���O�����:��8? U�T'_"@UWIpJ�*Lh����Zk����i5��yt��^��
�[��D����w�����J	L	8_�e\&
e%:$����{ ��~��jT������T�8e'	�$pEe�~*\M���bS2�������&�h�ss9���Z�Bq�����/V�j}mZ��:���,���J���a�����9J�:X%Q��z���u��	���cccJ����7�k_����������=����wg�����X$f+

CT���E��S��Tv./;�n��9;����_��W���
����m�����&;�J�/��9
*X5Gp�Ij��V��9�F@��5�G 65�����'�@��Y�I���n�
7�-�z�D�)61NH���K	4E�Z��RI��b�X2��*�
��f�������������00v��bh|@��4���5��q�2��r��6.��%���'�|���uy�V������f-B���{��-��#��2Z��a���r�"\�^�r�u��	��7CcXZcf<�C���;���Rh��T;��n��A��<���HQ$���$���S�&��u��L���.����u�n�
����q�?@�i�������O�������X�����m(�]���>X��������o}c��{ABYu��m�)��Ua��Ux8
ZE	]���S�~��
?.*�\.Da6\b�?@F�A6��A�b�f�D!�i+W`�
����:��+����c�Y��!RUPl�B�M+L�be���c��,�'�N��8&����r��O*�D/5:�����q]�+������������g���ZU���	���K���2���>v��4���F(:�z)p��z/f��GO?GK�X0
�����]��=e�D��{�xQ�LKS�������X��MF���oQ�!�0Y�l����k��Cy��s�Gu����y��?���q���q+���^������
DEYB �`d���o�k�-4���(	�?�g����1Q��ZZ����f�i*�:���P�+��v~QZFx����tF�������]����}Q�����7�~%��9�"
<v�� :h�������76�[���I+���JE�J����r��Q�#>r"�!��HY���:Dy��8.�@A�!By���$'a��F��[��
7y���%����1�9�-������U����a��:;
Pe���	���,d��	O����:�N5��B�J`�f�Sj��"��1��_�j�b"a5k�2���d-�2������0����S^����h%�7�=]�:���`$��Z��U-�^�p�c���q�QE�>�����Tc���h��o��O��%�����x�V���*
�\=��Q�rX�i%+Z^�b.�t����������9�]!���	bu�:�ZE-�r*V���������N}�����������=�z��������P��P����~�������f����o���o��KA��8���-�,�����}����������V^dD��E�R#�F U�*
��F@��5�E I{*Q{�QE�'w>�*���Qq����@R
<%*S���T�jS�:%�W�M:*��	�X��FU'{2�\�������=���~�}g���o����Ce�l��|�n��Xn�:}}��/�}S��;�q!�P�d�� Q�c���Bwz�fB���Ao��%����lV�j�����c�$ �b�E��D2�X��?x��>�g�S.�E�%�G>�[��U����p�/��SO"D���d(+�k�>Z�Ug'u������8�w��+U�
���Q48����;Q��7c�����?����h/���z����N%��Qz�^������S�n�\��^�F����p���R����f"�C��`.0�������M� ����('�N
`4�
F�AM�����-Z9g�}Z�i<DI�!5Q�Hl�,��&���� @�^���:��a&�cij�U��fX���X���Dz��8o�����wZ�6�l�yM�-�j��Q�����IJ&����	<%C��rl�����D����$Qm�����k��<�������JV��zd�I���Ep�/�P����V[
f��oc�������?��M�e�����x��Y���`�.S�R��R[KC��Xv�v���-H�~r6�^�Pr��+e��r-��.�JN�,����e�9!=?�M(�Z��������N���{��-}?��er��U�b��c��S�6�����!
mb�3>
Q�"�B�4���D�/J	I.Wbh	C^�6%P*>�����g�zZ^/��k����r�X����(�]��)/�**n
��"�Q��LD�K,O��R�#��X�#�@wMue�=J�V]��`y���a�1�	Z�T2��o�6V~�hu8�`��[^RUS�@�q��q	+o �0y,J����|�����C���'�&^��,�0����98���	B-���o����q�_��T��r�������;_q��D�D<Vx'<��������*T��F5)��"S�BM����[�ak�}�kQg�"'��w������J	%�N�|VTr��u�Blx��8^
���������5��(3���R#���*��vv�q�a�*MyjV�
����r��6�XU�����v8qZ���q�X�������Tw�*�����r�-8����///W���K|G��*�������]��0�j��s�B?;gI����s�=���<�����>��#�������|������
����[��p�����,��%0j�5JT�J=��P#�F`Q��'��#�E��2���nNI.V\Q�eT�ac7������~(�?������>��O=�����o���
�$��<�Wm'�17D�]AN!AE/e<T��������w�����mOt���i�NQ�j��3V��
+{���H���?Bj��������@?��<���P�0	P���7���W�"ND�OF��"�(N������i���BX"�T��qc8�Z6�����
7��� ��B��%�.;�"
��
054���7���w.b��=�~�0�Q#���;�X�����(�F�x�P�J��Q*J��������������.~R2�(-�a�`�(y	P�yDzZ
`��,,55�xh�R��7|i	���(C�����L;0�lU0�������&1���4�����v������+��m�X(�U���?@��Y�?�6��<����8��<��|��"s��u/�l.�"L��VWm��S��N��T����=#Q��% �	HC��z#j���c�>�G;�[e7uF3n|��Uy�-P�����)3�����q����d5��+=����
P��#W`�l� �zS�����V�
��`$�d����@�|������C�
�������g�&�i%��*U��:In�V��20��<�Mu!+]�yD
�s���IQ�r��	g�u�R7/0�YVb�S��J��
V-UF�����i-F ����A�tn�=������=BU���t��/�}����R������]��;Hc�3/����G���m[������l|���t�frQ����IU���������fm���B��R0�S�8�zi12��ysZ��j��MCu,-�*r�98Y����`���Cu��{S�
^�P���X��-����"��?3���JS���64<eA[�[���%�y�\��l�������F����
�TS�����W���<|h���A:�-��w�TN��Z��j�E7����Q���(�=g=���N�N�h��V��(|g�{nu���E�_��_�7�73��G?�O|�3�Zq��Ug�y�U�zU�����?�w���Y�8;��{���@U2������]�zW�r2�D�+^�
�t�K@��4�z"V��}�{��*Q����U_��
T�`UA@�Q5j�"��Uy�PG��P#�F`��uvb���0u��BQl���45
O)C�.T������`��������o���~���P��7��6&�?>���=`�{�Ufo��
�	Qq�p��=��?Ocq4�h5-�n�������=�}tve��r��C���	4R�*7���%��t��R��>�I�?�icV�D��d��o��������V
�2B��@q.�b���8|�ith&�����v&�Ut�K����p]��9�d���KX-z���,�Y�
�/qA�������%���l �iP�%w��������\f����O��
`L�+�VQ��I����-�������p���b��-�W����EX*&��bK5&�}Z���G���e������b#��������L��i�ja��;��
�+�7���x��a�&P�?G�%�������c|���J�5�v2�W���D!��F�O��E�R��@�T�?�z'`�US��G1���X��j��=��	���������p�m�c��~Z����>{�[25
��( �V2�%�B���`��TQE�j����S����s����-����38�����Y�Y�HMRUT`3�!����F�b�b����c'N�I��t���8�+���[���JHU����rk����!��fX%�v8w�����F�[F;8Q���!��?F9�E�4�ym���/c�����n^�����Fp�^u\�����Kvoo��_{#Z*��T�����	X
�L�M���L(!-$����������<T��`h��e�~����"l5�]��a$�
�0�ke<�'x���I�a-�������5�_% 
�Z��)#��&�U����[K8���2����V&/!�%���S�5�qYV#�y�� 0%
T�<��V*/���&��	N����z67��I��
D`��YV`�U�R:z�����
��F^g��������E�_m�5��]a�0����>Qek�2��sa�YQ�r��g��c�^Cr���W:#���s���;�������Z�*�=R}��_��ivv����� JU��^R���~C�N	�=����w��OFn��6:t(o�������Fmmm^}fd���Yo�\��EE�S#�F ��DB���P#�F`I���c��G�e����V�b�����
hgy�^��_��
f?�?|����_��,U]^�7��lP��c3;{�K�����F��T�����70=�Dp���D����;��%����Q��{	��-^<�:)yL�K'p�@������Ng��K�2.���T�D9�w���'S�VC���N���	,9@Y�D��W��mS��������x���eFx!��u
+�v����p�_B&���D������ROv]+P0��������	��W��j��)���L��i��NJc	xE��TS3?��X(�-���LG��;�c�����Vr��;�5rFO�WKU��HC#
m��a
j��(O9�����Qq/�)/s*-���� 4� �w�$-�
�7-[x>�x�A������::B�:�E�PEy��$@�����c���c�|��G�����k���|@�����_@�:gKr}
�R��C����,�Q&B^��F
�Y�X�]��P�h�*M��"i��/�s?I�,!	,!//��<m��?.�d�����FDA*�R��R�����g��PCa��L)i���Q��5���XZ�J@*=afn�p_r����&����+^���KK`���H���Q���R��m����MRt�*������H����Wl�]��I��U?&��26��w�
GfB�f����{�����w��r�s���C,�S�;!*��L�� �*�]h��
�w�C+k�
'9xY�D?�F3����&����N�j�f�c��g;48u6���)<����vn�;$����5���!%T�r���kE��g������D��h���.��J����J�|���*�9v�8�a)US��Ne��~W�~��`�s]kP�u\kG|�������n���0F&f�:�z��7�aG�xMr�^�D�fu�J��a9��-|��m9�V�vz-'�r-��������?�pvc�_=~������3�S���*�n!jQ������U�&�%<���p8.}�/��O<�?��?�S�*6�\kY�\i��7��T�j����j�HT�J=��P#�F@������`�q����������v���?�����?@IDAT������Nbk6_��Z��N.g�i���8�������w��K���w�%�������L�����O<|�Ahs&���x!�[��&�������;���
%�����W������`5J�5�Vn��.Ex`>�u�~�s�:i�}`�k-H�n��y*����Y��5��"?V�v'���0TT)����fBWf*����k�����@$�HD�$OFc�x�q����D1�����|[h����;1�������f/:1����9H>9���`����z��PTZ�oT��<��TVI����V5��F��k�	S��g�2B���Q$�V�`k�c��T������0
 x��U�X�1gI:�\���1b����L�K%��ri	�kY8�*W�:@G��"��5:Tt{~{%���0n[�b\����_��/�DUj_^��!��8�sE^�Tl�-�b�������r�%��6u�$�TCK����X�V��������X��dar��L,aD�JMW�KAQ�*!U��i�&jy�qh�\������d��p}�����Ge+����j������;$�o��:����=[��;���3	�<��Kg�T���a�R����-~\+�Q���Z����:R��Ae�R-�+�h�1��vS[����[m������.q-E@��q-��������zG��~��*3�v���-6li�3���t�?�8��
k�*�!��	(*���Q>hO���*�z���.4Tmx����m|w���V��e��EuV�V�����zBV��X�3��GjisD��A$���%[�0U\��4"u��4�������KX�,7����)��m-e�o��/S����zu��5U	\�I_�������R��|�;���������CEE�Z�r�B�M�7��M�����g��O~��'���|3V"��?�q��=���*�I===����K��W�$v���GP���>+��b��a��,��~���g�����P#p�F@�����l5j��X{P?6�LNu�_����>��9,�p�����BF;�|����i4:����J��R�^������\)Ny��</��r�k���{�[�����
�#�c������?�C��'��^�J{�*UeR����{P���A���K�Vb��8�8�������D�//T�p���s�0FC������ZO�j��j��*���r�j�[��WnEH�e���*��)VkZc���QR1*D�����$BT���xj|L��DiL�� #$���W�T����b�� tz���0��]Ip��Uu��������1�v���p����h�������|��r:\���JZ��E�.� Bt�� ���V�c���^��r;�*
�+3R�p��._����3��'TUL�+�Kb�������m�}�%.Q��F
i�H�_�si��r�\Q�b��I�Y���:���dX6��`���:��7)�	��z��pn^kI�U��c��:��ps�(��������X�x	ZxE�=2S�@���j�Y-V,w�������8|���N~�jV�EIl�R�� U�$���}��g������^�}��Y5��mMlPN7�����3�)�V\�H����/gjZ�,�^��5hk��N��uZ�:6j�,V��" j�~JA��f����d����X�:�JY��k�2�U����h��.p�.*�5Q����q��TWq�L�U�k����E����^N�:��7�q$��06����0�1P���%�,�����@�F��d���.��3�Z?����)�G��U?<0:�,y�.�[������m�7�j��E�
���`�7������d������t�L%��^�LZE��������.�U��h��K��~�{��#��@�����A�KyF=W����@O�e��f���d]p�����t�m*X��U��F�X���4��;;;���Bss3���hy��kn���R������)�jii����o+��b1P���P#P,*XU,*j�5j���x9}l\������'�����)������s��2J?m�D�X�^g�
U9��T	LU���K���9z�|��%u=_���^8���r&i�������O ���l������Zn;�����k��|����+������ ���
���
x��A�Kw�]�~���"�����[�`�����0�&G0�E �V�JVO����2'd����B����e =-1E�L���*��Vu[�
_E+O��s�d@��!	�q�R������(�2�Q���R�	^/,1����	��/�����(���$6��K�&3�����:�P�����Ju���s�.�,���4�	vw#�}�]��Sx����7�fZ�+9�"0���D�.Ln�q[������?��a��n��*
�
Th$�"*Vf�k����	�{���������+8}bv�P^[C#,��0�|���Ry^8��k�
�Q=�X2Q��We�3�����W��-�aG�M�f��n��=.�����~�����F�*�����/]7��]���P��G�;{�2��}��.��:G���s ��C1v+������ZU%(�_u|y��~*X	hU���a�������1BK�S&@�
O\������(pll���i�j��f6�+�LN�z)
\	tu�l
�z��������+B [(�VO�J��f�4t�e�i��i�%���{���D�����S �=<x�}�#�/aC:r��W�"Qr�S_�N��E��6�5Z��;r����8����<�������@�Bp�UP��Q�N��6�+�}�����@YbA-��]e�,�����h�����J�V��g������G�`u���<
�-�3�����ie+��rho��������	Z�Q�J�����2��4Z#��s�.+���Q�Mf#���;���+>���^l�J����UW�p�;�F@��5j���`�5{���F@��5k-W���+�	�>����@��+��{�k�^��>xcT�*��t�Jm%�Wl���>�h��,�-���+	� _K�`�A�4�**� X�5��2�Cf\�^4���$�w����� �m� ���#�������?��<;����.���O}��|o��K%���'�����D�+�m/�y?����\ �$�2��O��~L5X����V �1O����������Qz��3���8ll1�C�p`��vY�z" @�b�H�9���H�!�����U�$��R�P���"��Q�IM�.��j�QW\�+w����$�:� �^{�����!26���Bu��e�SN��{�iC���D�*<�hJa�i�kI���7����v�P�-��g��I���TH
��@��9�e���f&V���a�~���1�ra�v��Z��	���J������'�
��S(<3c��7���7��U��'�K�Q���� \U��?m0��U8��k	�Y�h��K]}�z]dF��K�$��dP���r,]/u�y� 'e�'
rQ�����'����D�P\�*�pSb�jooG���0����g��g3�����>4�[�s|��=�� ��z�GN�m��Q�����}>�~g�-��xs^�Z�{�����0Y��i�'{<
�/e�k��w��|�|�K�U^����
��0�R��.��# 
��1x�lV��4`U��1<���G���=8D��o(_���7h�ZG�j[��h%�v���b��p�}B!T�e )t"�@2=��d� �e���?]L/��e`����@2l�W-
R��F7h?E��Y�+
6�k������s�Y��U	�5��STYG��H`��,���Ge`J�Q��A������B�I�bU�5��S�M<��$�d�J�,�����n_~\:�v�W�Um�����i�����wxM+���(������\o/
<g�]
�����G�����|�8^���K2P�LOP��[��4�[��&U��Du���v�h�i���>(�3��"�����TgY�g~{�]��\WiF[���%�UoA���s��������sQ�-����},K�����t��,G��]F�����F���^��kgYl	W#�yi6����9�A���*���.K�L����S�,�3���G����U�P�5j��P#�F�2G@�.s����P#�F@����"P��b�y�z�%�g���q���l8^{���go���W���lh��A��TZ����e���������c���kZ��?��C�����Oq�X�����_�N�����5��	P���!����a����'���������:;E13�f��#
Zid��cg��(^q�h8�����8���C�F�!���W2P�I����(-����Q��F3�e`����&~d�&���A��PV�\�h��C��5V�%n��U0RqIT���R�UB�LT(�<U[�Ao7�<=�^do���L��hy����jT@�*g{}�����B��d����S���zB�-wI�X�z���\ICP�Z]S��ZZamm������&$�����?D��I�
�%�H���������+�NM�w��g�.���9�e�]������V	d���vT�ub�{�q���G��~����7!���������d`��R�H���0�/�T E���4��_S�%�tptb���y-ey��D��P
@���V���eR�|'|G�PQ��7���yU������W'�C��^ev��������V���c�|%�=�FN����%�v���'���l�����c�A<r�F.Am
em�u�=��-�9M 8Q����������]�ap8fL[j��dgi8B���Tj�����f*Y�-kf(�Ou|e" �=��1v�	X�bI�P�Z�uct����^��U����������J���no�
;Z��-�u��,l�@\��-���M�n�%+c�&6n2=�K�2/����O�������M�v=)���,�qua;~���������������k���#}Ot)%��a�}M8.��J_�t�uF��G��Ja���(a�	2}���&���`�$Ox�`�������E�J��t���)� t��e+�3P4U��9�����S]TR�+�]���������X�����������s���%���KY���)���	`�"`��X!/6�����)vl@�/���a��d(�'���1V�>���|��\�IY���"��'"-���9�y
�Id9�F���Uy�����3��.N^�)�@Wg/�he7��8���@�i�4hec�����0Ug_�J�r�^xr;�X_o��F+�,��l
L%@�j�I_l�Jr�C���g$�>v,��H�0V �pda7Q�*w�h7jF]�u�y��4�>��U��q��8�M�.�����Ri`�f�?�*��<{��f�U�P#�F@��5j�"��Uy�PG��P#�F@�������`i���>���Ev�=�������������b
z���O��J[�{�%�w�������e��lt��G��7��������������o��}p;<M���S��hfOB~-/H��~��W>����P�v�+���Cs3U|�B�j.�i>�*��w����E�/�lP���p���F`t=��Lx1�pt��8�J�e�2$m,�YYF�������U�i�XG��"RT��rH���k.�.��&t���i7g�Ao�Bk�-���@J9LT$2L1�����B���#_UMv�@���|������_��AA*�C^�*����:��U8j	Q���R����}����{ D��(����^"J9�G9.�j�Gc�`-:�A?����pJ`e��N����n�S��eq�e�`-E)-LK�����K��KgC)����0dL"����5�l�rC�V��s�e\�4���
Il��]��E��|�.kK:�������������<o�$��}�2nHDP:�"�c���oF��%;_nA+hd�S�<��i����L7B�Y��J�$�-���a����aZ�Se�������� BE���&
���w�z?!���W��C��O�}����B&�{�l����)��S?�a2��s���o�%gE��k���##��-L�����M��b_�|��)6�����m���-+�r�x�������`%�|��rVK�n�yx���3���������
�'m�u���
���6(��<�_���`�*#Q*c�Z1G��5]f]0$���Ix���`K�G�h����{��`���
&-��&L�h;G�K��	�'�9�G���;�H<���(�,
�M)�T%��Pt��J=A$��� ��#���#b��:��u
�g$��>

����X�.��E���o����D�.
J	,�y���?�S�,H`����X������y��*#�iH�B0�nw�>�7J\���)47dl����M�>�nn0�i�����$#wa ���~�:���U^E�peb V�mT�j���Rmn���6����lyqk9�bz�4^�!����	�����&x����|���K��7cG������=����k[�9����r[W��F@��5j��HG@��3A��5j����
�~ ���o�;����
�&��s7���=����/��%_��x��I��2vO��b�������XE)vP�z��E�-��Q�ii��KuI�/�e-��n�qI�4�G�����s�M�C)gSq��v3�{v�au�C�	�t�h��M[���z\�v#Z�!����+x~��X�s?��[[��qL����$N�I`E�����E��x2���n���gIF={T��C��_���4xG�|��<�,�����t�K��R�PRW����2�T&�ps����~M���y��y�K[��c���.��B6��v���\G}�:vG����^�EI�Ap��EIG�*�����,�rQN*rl3��Q\;���T����^t.�8%u
D%0U��i�u������q��� ��WS�S�n��I�T ,).�4n�2H��P���a}~M���
��8E�����"U���@4���l���J���S���Ax^<��U
�J�-/R�&��a��f�uj�Uh����5�Ko��S��"�/".-��$������v�\A���)^�b�<�z��\@S�~@p
�v�j�am[��Mpn���
|*p\��W�����/��p�uwz_�f+�^����:<�;I��4�ZS���l{��5�ng����qv�(����t���}�nG{���v��?�;��w0;I�{��;�R�)[�V��>L:�����$���l��������YE���kt�&�� ��"���4�6"��������+DI�$0�b
���%�[S�C7����Z���
+uL��-b8��	X� -�e�$Qj�Q�X�t��QDS&P�[�lJ+�0��.�P�o�P,�:P�������hod������be$�`���&ih�:cN=�L��X�F�:��:�����T�P*Hh*@P*��S���*�j��
'hg\W�D=���R�\J�c�����q�N�0:���'I�&Q��D�����Cd\T�G��tO� Q�5/��mI�W����i�{��c�f�KP���#40�)Z�<O+A�VRf�|i=��vQ���f��k�Q����'���rz��.���3x��� o�A'��;����^������N-z�af)�1�9
�I�����r���2�����+mFmT��6V(-��e�vC]�5j��P#p�G@���@��j��P#�v"�~(X����?�����+������wcW�������_>���+��a:	��s?�mCT����v����+�vM��;���a�����P�|i.��X^�4l����ZTw�#c��v�,�nPYR��z�_��v#A�����"�����:	�
����ui1��c���8{f��d��S����$��&�F�pP������1����g��?����4����[K@�r��R���REE��N��(e,s�(����)����X�9�n�7W���R +�%�j�e
������
d�y
'��|Q��O[��"U������.� Hu�����~���s[�m�*���[�tU"
�M��"xV^?���R��H�J�n��_eIY��TV�s��m���7�����	�/V���]H���^S��4����&+���=�P2t���V��w��n&����B�b'@�����/�w�8�����y�@��k�l�@�R�����e�k��p�us�0w]��N��Z6�+Z���N������Av�-�{	71N���>{���SQM�'o�e�q���R��P#�}�q*�u+�1��HIBfb�C[W��n8��D�:3U\�����:���\�,��G�'psnr�r+��ron������<|qo>��j�����m�V|�C�	�������*Vb�"���^
0�rJ�)�� -�x��� !*��U<�b.�gK�ra+���f��0U3��T�"|����\j���@�,>Z�s��2*u��/�n��A'�% ��/���Y���}���]�2�6�2a|>��y�Q��R/���Kg/���^t�����r�|TBMU�7����u���6>id�\W�����=�����j��Qc�^>����������-sS�� {���R�R����9���<v��Z��0<�A?��
:���#�yjZZxk��VA�]������;s��s������N{<�g.���8�?1��zl<�!9f�:��� �Q>.w�Q�lv�{i�E]�e����l����
Zl��S�+�������T�e+?N�
��a��O5��VgU��~�=�y�,a����s��]
;��x�J��{,l��)h��`�yw�b:{��������"��0��e'h��2������f��t;���R�Y�\�:Q��5j��P#���`�"���F@��5jV+����G�4����q��S3V�X��7��>�r��l\Z��g��
V��x}��i<�	�p�)�y�<����h&����I���v������U����1������c������V[Zv-ho��E`2���ki�5�1N5�b�f����m�`�� 2�������8~	Z�i#�*X#���I����lr�0L�*h/��m�
�Y	��;+a�k�|eD��[����
k:�d����(#B6f�;.��O�X�����gF������(X��m%�0-��
���Y�
���������D%�Te��,�Wl�]�5*����O+���Z���xUW��j@]%a��F�x,O�J���sK�,=�V��9�!�#U>|�<��F��c�}�mw��w���D��0@����p��]7�G��o���%+���T*��F�9�	�$X'�R�;����S�>�����v_P���V>����
��(�n\{���k����y���O~�B���v�7oF�=�e�j�}7��zMv�Xa��)��?�#�O ��������?�����f����S�;�b��r��
h���T^���[��#�����c��k��p�����LQ����.G1F{�b�I��fVb����U)Ee��U�D�)�<�4`��Nf�K	��v��n�Ur��R�lh2�1o>X��}�����eP�8�FVBk)H}B�U>!Z�]�����~�Q����f�D6O�.F[^�/T��/��f������V�L&R0�H!Z�{|�z���'����Za\�k�li����JXf���d�������q����ZS�$<�����LF*y�9QS)JWN4��������R�7W���s|��:����$�w'q�+�s�x&�X������*'����"+��m�U�^������F���A(���A���+M���U(����$	`�$1B�j@ ���Y������F �2r,;���4�����m�)�_v&�p�#�;8���:�G�=�^�8���b�+����.��Y�	����g��v�2g9�\����I����/jF(aE<eGRw��D��T�
�@V)��YW`�4t���M�g�J��%�U���R+j*�~��P��n���;�����yu&5j��P#�F@��JG@�V:�����P#�F@��#����%n�Xl`�?9�x�����(��[x��7)6�e%s7.\�����/=��g�h��?�1����pc�Rc���eC�SCi����&�61X5�0�����	;�X�������� �X�5�=��0��k1���D]J��${D�K`LQ�� ��_I.���d(�������tUi�^h�(�pn��!���F	BW��:�8
�p/�1� ��}T�,�Q@+��(B,�(u6��v��������LV�;���v��B)�����	���^5�&:�N* �������*H5g��O,s�+�UmEj+P��E�*�$����<q�s�X���Z�gjl����jm@���h�
�j7��%�����(E+(bSb
D% U��������G�Cbt)*�H�}��%�^"�1b���PK�*��L�L[����M5�=p���w9����"d5�����U��^��M��k�}����u��������gopOvP�l���9i}�v�m������g��������u&������nUwB��)�d��������(�R���1�z���7]������R5�1���+3*�A���u<-�%������o�(QF�����J0�b��J5N�Y���E�JT�&��a���E`+�>������Z����,�<������>��W��J'2M�6��=�e[r|e{��h���TRu���G%a�
��A8�.��B��q
��>���L��2�:�T�Q�K`4����|!�_���@c�<����G�?/&��7��0���I5�l�/S�[��hf#�2^;����/���i���;���)t��pl�{���5�L�$i`��T]5P[-�T���������������@XT�#t%�Yc��N��&��Oc�� ����^��Y���G��B��l����z���3�
,vK��44J5[�8<�#��e���K��>����������n��bT��t�Ls"`�a3*��Y��N�q���M�b�o-�����D���^��4�������[7�Z��;�y��~��j^i�l�*G��y������8�Ik�Ax���j���2���X*_	����l����*X�j�WW�F@��5j����'@�d5j��P#p�"������OW�va~�����3���'��W�Tn�z�t�{(���j�����iu��y<�8�y�c����?R`����*j�������/�=0�E�q��<qs��x=A'q��y�N���nF���on���{���U[�fh��Zb;����������o��b���:��i�TP�����
bL�����_��	��s�$I/�9���D��;s
��s�{�a�����V�H�If5}��I��p�V�E��
�Q��i������+J+!�b���4�r��r���Q�������Vl��\<>�Hu�R�f9>+���H���b�Gu&�3����OY9w����B`�����s����X�Yl;�7lB[�f��o@cu+��l,�"�A)��C���x)����#�du��� �����}�S����J���9Ua"du	���}QE+��
�:�����������M(���av-j]+23	��g������'~����H����I�
�������Y{C+*�zj�z/,5��`Z�����O�h�e�����W�����u
b����{���|Z�.g����Q�;5pFOg6��[���!|S^�|#bg:���]�H*�����]��$��=���w�%���BSUJ�bf�\=�{�G���fU�O,�*YQ�J`��L�@�	��T�*T�[j���`��� ��4D���xi��yM��p�}]�%���lE�K�"p���Xjl�[N�Gxn���
:"X&�wz��������Hr�I�nP�����(#�"��V�b.`�(iH�(c)�ie,�xp6hP���c������bu-��-��7C���xJ����@���T:�A��TI��	�I����&�bG;G���P����K�W�11��R�i;����eI�@=����������&9x10��
��g���O�jm(Gcm)�+��h�D	�9���@W����Iry��#�@~�/e�(�2]���oO��4
�(�Fe>YFr<��p��+B`lt���J�cw
��fS�L��������,5��W]�"x���Z��,{X����s��0��(�FE`���������,�3���+����d��xIa�/�K�C��1o9
ly����&��r��1�r��{�0���+�`�����������1�s���,�y��u���kX�RI,��3l
���$g=�D	����������~���J��l�y�p~�~�_=���57���������0���Ty?cw0���^�(��^��V�m�������l�_L}�h������bfT�=<�=��8���rQ_�t�����40��U+XuUj��P#�F@���"��U�
�:�5j��X�,�qs�����fQ�9p�a<x��8���`+�������n��:~\�F������0��R�~�;�P���^uY-�����6l'�T�[=���?���"g�����Z\h���XT���]�^�.n�Y�Z|/v�G���r�
6��v�ZQ������������OQ������RG�a���F���6s��(X�������Io�`�3�"
a�w����O@�s���e�Z�%|�8}
��po�,ye[���!�\�R�k�VL�2P���!��k1����(]9�To!��v��W2�W�,���)�����#Yk���'�<��\�H��[��F;����N���P��dH+{)�z#4l�LQI"5��n|
��aDyn�	r,&Y�\��&�w��
�G��)L�(�[��!?'�������1i��iS�6lj��������g��RO�{G��+����kn������R���!.V{�4��#TF��cS&�G`9���S#h���!Gj�~���

l�������r�+`�i�*RUY�2��i��F��q���_h.>��>q	6�K�t���������h���{������M�`�)�|�T��&�p��������O�Du�'<��Yu67U�1��[����EY!v���S�~�F�K�k��;�+��b��.~�[tP�p:������?��buU�dsr_�<���gA��,MMpS���J�>g��F��*JV�Kk4�&������F��R7�F4����&�a*�F��@I ������� *Q�@u�a%��D�J��q6N,BYK@����T��X"���e�G�,p���X,'I��x�qH�w����9e�J�z6�jxL�-	�zE+D�E�Y:D.�U�+�Q����Eb��|<��&�H/
�<W��a����M( ���S4���r�ZZ`���m���H�����Z���[I���YBW��|�	�+6@�s�A9���v�	V	4(�����B���Bo#T]����C?���yw���xYB2�hm�����T��+�XWb��d��M,z������A�������������^�/�z���[���*J:�4w���x��i��E(�EC�zZf�S"8���+"6�,��X��K�i)���L0I����g ��S)�1���W{���L)8�)8,I3����:T=J�hJ��+����H�s��
��LWD
��_��_F/�rf\��n�����)�'�F���p�XV�e��xz��#�������d�X�@��7��������z��ZCz���#��Gg�g�H7Q��e�4�J#���M�I����e�.������e}X�tR6Dx��w�ZL\�h�Z[%V����]�!l�������I���w'/�����_�3/����Djo�b�;vnw���/�M���$�(�V(j�f���;�]�B���I_,=p����^)�L�.O�~���S|�J�b����W�����h����������P#�F@��5��Z����U#�F@��5���
V-2`K���G�����'��������x��w�X�g36�'/�@��1��?����������~�l�{7������IE�1������a��M���o��Kx�����+�A��M7����������<����<�sD���	�������DrHQ��ZJ�VZYke�������l����+K�Z�DqW
�(���g8�'w��F�(T�r����B�*�

t����wq��/���}����s��M��t�;83�>���%��h�$�8z����c���@k}g��k�"*'��A��}0�������x�`q�L��1�/����o�P]�������4����=J�;�A+����"?6�g�+��|��jq���������~�3T�����w�gg���D��isa�/�2�<���sDQT��}l�<.n)Gx)19A*�MO�3�%sjvv�Mq��%�9Lu�0R�������f�bM�m�?�G0��%��P��W�:vY	���5�m�l���|CxZ���B3����L`������e�s�m�
���[Q���e���L���S�����}�
��g<��YR9i���:���$v�Y3mdU�zTCe+��NQ�j���a�0�>�B=�D���O:�����[QG<������j�Zt6<�o���bw(����?���e�	����cO��_�E\�7��;9�������tZ�x���X'��������I�������������6���	�����N�����C��}?DU�B�J���y��z�[�a�^�����x����FNH�h��!����KW�X�v�����]:qc�bT'Z�
�TP��w�hh������[)���T�R,��H���B���`�G�����@TwB*�Z��������c����
p���t���(?)��G_f)�T�X�
a�$������� u���#�]������*�y���w�='A�%�L����~�y��L<(��:���X������r�s��4�8�w��.Ji�u1'pt�6�z{P��Z:{U�b;wmQ�.���!<\.��f�m�:�g�e�1��q����X6R�%�� ���Hu.��L���$jV�#��`hl[����Ck�����(�`UP�*@W/�[n���+�T�W�D(�TLbq�O����\�f]� �02�������gh�O����r+6S�G +����X���R��^�,�,f��q�X�	�&���[�c)��(m�����z�4���s����������t3�	�����N$�������a�YF^2l�K�jYD���,
�,�� +Q��8�#�%`�^e�VOZ���q�x_�FS������jWc��f���,�s	����S|	�/�����O���Z�]��Je��b�.�va_���/��,F;��Z��T�2��N{$`U�D��
����j���o����Ux2��R#�F@��5jj��
V�.uf5j��P#�y�������w������7�/�we��������G����
����VT�N]}�K������}������~�o��nz�Gg���=�=���u�[��|_z�W�]=GE��k����(�Zz���gq��'����d;��	�c�M�W*�C�V�V\�^[A�$MX@+�[o�X��o?Z>�)XZ�VL�H��iZ@��F�j4Gu#?�A�3b���gW�2����2�0G��Q���E��!��y�Y��[yX��D)�@�1�u^q���C��BT�j,�����T�"8el*�SRe�l���"�����i�O�K:WY�^gT���"X^�F�g����tu��/r��v.���@>Q}��d5[�!�`g����6,V�n�]�`�H}����J�k���$����|;\@+
=���T��
%�7�'�#(�2L����2��I��E)]vY�������fW+�
0R-Q��e#����z�Ii�x���v���R��2�?}o^����]����M�O��-��>p?����]yDp��]K����^�]	!t�dq��Rg����#h8�����nb@��^�����Z\�(�=�G;Cw�b]5a�F���#�q�t?�0�?�yhu+R�`��V�b;[�4���@IDATn����s��T>���eY�02�a� '��$pU'�(�8d �J��j��;b���@*�D
�nK�%*5T���nu��(iI�m=i��,��'�C�"p%��"t�`��
M�u!�Q����T��?�6�ok��S;"fz�-$���z42KYI�m6��������c�Z8���O]�Ix"pG'��Zc������	+U��T���}_�����T�xL��j/��YhA-��b�Y��U��DbI\���@W
P�#�2���`Yojk����Q4�9��B����+M)0�7���y=�z�jI�����a����l�O�Q����?L�l<�:�Ml�,�.(
YE`K�,\8���U���2)�o�bY����v����r�%�kX*�I�\���0��oBJ�n��x
�i��Sv$�^��TO����E`+�����4�����ii��&���j�T
��������Q]�%,�1����)�I��:<�!w:��VG�Y��v�i�TaW>gm�&�������sv2�2��e���d�N��[����O�e|�������R�y>�W�*����;,T�&`�X���i=m�V<u���P#�F@���;;*Xug~���P#�F@��]�A���0��y���������
��cY��}�~��x�����l��(>MQ�etf��(&�
yjnb�
mo�M{���� ����k���������m�[i�����c���<���0-�I��eX��N�:P`���VK������g����������UM��X�v����(����@-���_����/�r"T����V��)��,��������R�� ?�C�Y������%�����!��G���`v��I*H�b�d�xR���%���
A�hY���uGv<\V�.G_#Q�����
��l���<^��)���M|#�mCR��P�Sr��SZ��R��kY�(��;�"����PI�&���@��K��D����ju%�/�R�����P��6z��}�$������h��g<��p-�1�+��l����=2��)v�N�.��4%�~b�����av�Z|�a����=��h��`������K>:Qq�B�}���{�>F��
n�I�X�-�p=� \���-#-���rD�M��Y�x����gb���1/��
4�V�`��87��������?��n�Q���?A����YM�+��S?
3a�[�b�c|��sK�k5F#\��8�r��F��X���%�������~��*T�c���`��!X�������T�	h�;d�#���9�}�YN�yn6�d*Q��n �v��YNJQ�*�D���Q
P����B5K;�	�sT�Z�]�����	���4�>0D������{
ng��D�mN@�*��6
s>8	�ki������D{i��.�(�R��8����U��T	�,���A��A��7aE=M���F��D��a�a�H�c�r���N���z���Q�f,{.���'`�=P�D�@���T�=L-�%��g0����g�d��U�)�cS|��]�z�F��k)
[-Q��-C�&��\��4�LT��yd���u-��N����#�k7��5��� �U��	P��:��nT���$���@h���F��F�r��R,��e\��������nfJ��I�������]��U�3����t�&��,���B"��9���W���s�\ox{��2���_�M&�]|��p������������o��5�nEP_#9F[BBX���8sD�FBX&��_#u�9��}�8���J�m��MT&6"���5U�rOH�k�����R�YF����G�i��HED�r���Y_�q�d�#�#���^���h�ie�e��]�q���Y>!d%�V���+|�qH�6�\�iSW�F@��5j������Z��5j����
nu�WnOT��������������G~�s�[�B+f.SMD06;�SS���}C�E��o~v
���F3�|�y2�l|����WO�O_�=\��d���|����S?
�����,��$��4A�.������KV��m�=T�zFQ��Y�*K�`�V'�_+��X�V�[������k��8m��*�����4��I�Yk]�����Y���	��b��_���.�%��+�5z%T�I��z\2ye�e��:q*�(�E,��qv��)�"�V�j@�o�GmD9��	�I�����$����������7^�����al�'-�cC?�����U������X&�N�!��Q�����u��(�XM������ot������K����Q��>��[�D���uvt�C��������%���'~��'1��Kobfps��<^	�.Yx�8})��M��@��,���a�^$5������z�z*���`�uQ\�6�uJb��I����d�bKZ:	4��
���#�FS���-��#8�����m���1�n�Zv���z�6z�9X.q�'���1��w�Kf��|���'���)B�k��G����CZ���Go�J�����AZ��^@�WT�j��F��>����	.��0���re���|M�T������J���E�S`4E��h/��.]4���5�f��M�������kW���'9�g�3�$D8�,��z�K^�f�3�b�)�b�X��33��� 6<��<;�+$�����-A�I�W��rT�b&lUT��fy�!l�7*�]5�W;�(-���*�O��dxb:���b���k��;<��B��nz�eR������:�44=�(_%J��������n��Og5����^��2k*_U�q���K[C/��z�����l�V����Z"<�X<����"��,�J}��Ca8�L�X^��u�|)�'�'�����D�y�@��5A%�2�P��Jp��/��z���|�����{�6Z�I)Vm��Nt��������V�_T,/�&��o��$l�0:�����Y-���0�A�M���.�)�U�a����
��2/
��8k��O�����Ef��z���r�2�2p	ZYhl�3�d`��]������X	q���%U9�U2��T���X�[{���.�U�f�{T��lj��P#�F@��q$��'�jp��P#�F@����"�>(�)\�:��k����7��\v;���i|��GgS���~Z�L��`�7�I�� F0�'D5�Hli������V�u��������������������o����,���d�<�#���KUV�c�Cx���x����_��������Z���.����`��`�G�J��Y�L�`���Cg���G1��j}������x���5��q����HdQK��rT�*�X�"���Xa�A���
���7��
-?t��#����Av~�C3���s|�oB�k������]8�s�R����(���������w_F��wW��������'a8�)�:�����SQZ�%X�'	KY�Ne����T�rP1�O���m����JT��b�wyU���r�R�Qm�e�����.�#��2h����,|���E���'�+_�]���T
�����S0�c�2{'g�����y�d���';���Mh���m���o�D��o�N�����{7��a,�-+���c{��)���F��D�^D2p��o�����
07����?�Eh�X���/c��_Yb
(mx�}A�J���a���������w:�>z�=K�5Jf��AQZV��T��:#�i<T;�PI���T���$�p.A�J,�b,�u�:wU@��>l��9��YS���iBr�fe���������'��ih�)0���)�L&ubG��K)�J=�W�v+,#W�Q�{����e�\�S��H��,	SQzc�}fq}z�� U��n�D����r�����������j�J����>Q�������C�K���6�
�=�.+P�b�,�W�*�IBd�%������������IE�h��Wb�6������������%<����ua�U)_Kz�-���Tnm�8~a�|��T��D����>�YZ]Ir;��!p�Ip�����j{gCZ���PI�lu���`a�"�[�/��2�i��qB\R/v�wR0K,#�jm�Lx��f�a�h+������,+�n���g6��o%!�LBC&_+�K
�<����R��Dh)�Lee%/����0��0�~.Xk���w���n����2fvf�d������,�#�u��~��^8I�=z��_�5j��P#�F����
V���z�j��P#�#���[�x��}����wo�9���_��b�:O_�~��^L<5;������f��M�6��u0o���v����j�O[!�/}�7
`X����U�����9V����1�q�E�u�%*b]��X[c';�-�C7Uy6*E�F����ST���X��#CO;��7N���s?Z>����������lT��R`�\���T��0 �5]�'Sq!��*E���%�d�<��/��������c���\� b $V���p,_ps���2�]k�T���s���@�
Q��}���?��PS��PW��A�A�P<P����)��Ex���Z>)f�b� �����gl�^����8��aM��lG;U�@�Zm?C�~�����\���Y������U�Mt������^�o+��<�+��1���u�|�Y$����B$����Kp�]M;���0z[��y]�-nG��R�N�LO���+R<��C���hyd�;`w�����*IB���g��e��D��J�P��x8��/�?���!
�0����C�fXH�&4���A�q�.*��z��8q�I*��x�ea8�*�����0�x����K�&
�;����
HR�C]<�����^Z�i�Y~��ZQF�F���_~
B%�u(�4	�R�@�����&$���Z�a�Q����%���s�����a������e�r�d�E]L�Na*��nW��L`K@,���8���ap�E(U���6�D��������	N�����
L��uX��E�jAv
�@7!�HE+0*TmT�������J��-Y����������mI�zFD�Q`�a+E���V�t�<��n�VO�6�2%>��o|���M����^i�����g/^5v a{Re��?���^*����'~m�����2�V�s�b�X�
�'��%jZ���Rie\�I�3e�o�T�
��4Y�\J�iR�+�k��`TA��Dy��eG�����
�&�j���M�%V���v����Q+!,3--R���B[ze�����S��U ��|0��|��=8�R��P�y���q��FF3����X��_�ju�������}�6�
V�����j��P#�F���
V�����j��P#pwE`#:)���l���N��������_�"���vLl���������.4�l����������vh������x�?#���������������i�3�	BV/��s���2�����5t��
h%�=���8��T�RT�||��Oo�J�A�y4Z[���6O���k-���������&���o~�����+v������0>�	X�}Z��!E�A���o����1k���0K��������!��^����1A����H���|������T
$&JuS�q�����s�6C&P5��Z���*�zZw*��(Pm'd�Q
m��?��KE�?_�
�����/���G��UB���7 4�Yvt�f'0:w>Z����Q��G�j���`��p;��r���f��6�N{�v���B����6v��T���peh�,r�a4<������@���(o]�_�D��L�$�OF����^�0��a���g� ��k�L�n.A��6�tU>u�FE f�a`G7#J�D��8!�$a��f���r~?��	<�k��K�'e	&��Z�����ZxM9v��<��fg}��h#K5����,�VT����w8���-�h��}�G���m�R�)C�L�K������Me�����;<�:��V:��������(cU��T^���EK�������������y�P*��B�r��&�6PY)�TSU����OQ�<��n�����}�bK*�V�f	����eU ��:�#WBu�	��*0��/V����A{�Q�>���}�S+6=86��N���rJ������A�>Q�%*Q�j�����G����`g	�ms���6l�=�b�j��F�[	h%��:�k.�x2>��}
@��[T������qm�Jg�M�;��NV�-���A,3�V��U�v}��% �
 k�bs!�V@�`�/�Cd;������#�o��0>v��a�`�����=T#�F@��5wkT��n�d��R#�F@���;.������v���W���JU_����9����)��������4g��K�����?!��U������FO~����SG�����h���bxq�L��[	l<z@ ��7����	�cT[�u�T@`�1��f�6�*���-�8���}���u-�4kD������K�fd1��F���S)�V�x��p���������)��#l�=�������G���1hv���O�������]���=]:p�N�
�k�*J�W�y�(���������B�D�����*TyZ��QIKT�&	NM�3hJ�fS�$Z�Z��q;U�v���BSQ���/7;�q������/�|G������ie�Y*���_W,���b������t��U?FYM�+���\�o��0GE+���@T����P�����B�{�]�yQ5;s�}S�����@}<�=���2�I����L�����������Y��������K��������>�WT��iC����Fc ��pbqje���d�N��}R.�C��E*�d�LU#I�lv���B�9_��]������gg��*$Vl^�w�M��UW��=&�n_���5fAGw?��*�;Nx�6�T �A�h��M[<n�ZZ���[�K���,�),b�Z���-��X�����p��z����_J��\-q~��������i�}�W�[�&����2�9�F�9���T���JTA���d��m�D%���?K�m��\,�D�/��Jg�T�*�gJ��")���e��L�|U�w�\-�(C�<Hn�:2�O"{��#W*d�g��{�I�y���p�9-0A�����.�&��#���^�?=0Q��nNI~og�����V<N���8c�	�K�L��)B�%�7L��/}���6�2S�2��f��>�Y�QK%��L��q���?C���%���9
���[::���#��[��e����]s:��oQ���(�D�P�Y�7��&�Hu+�!�+Q��aQ���$0���E���ot��&�b������Y�&���Y�&��c�X���F�����n}��sC8�h�����W��F@��5j�"��U���F@��5j�H���[���r7�O\���'�L����S��]|��~@����1����}�?B�������#`����WL��b.<�7N��w.|�,�V\GK}U���'���X�j%�M]0��\x�o��R�*�����n.8CK��U�Sibc]��`U�n����h l�����;$�(��,TB���0�W�`��v#��`h�*Fgiq9�AO�F��*�R_?����$h����\�dq��{�v���b!��t�9\��z���{�D9J���b���aGsbl��Ih�&��:�y-�F����
y*�h������U��������V3���T��P �U|���b�L�=��l��+�(�m��]��e��7o�|�����[��������/��r>��Di�V
������1%��F��0JU�Q��EE�:{��Q9;Yv�<.oC%6��?���S�<r�z����6�U>��6��EBQ�O|�;PD��4i��6Q^�p�V~�,�w��4���+�2s��UD��)�x��wbU�:�������v�!F�Yhr��!�!�@y�Vs��q>h��c�t��*���S�N-�40����^���@�#�L��R���efG����\��d�(e5p�{`% �(���F ���d��w��a`��(���m���V���(�i���~����c}�(���}
����������]��_�6���f�,���N?��`S�&e���M1�9-I�4��X�d|q��Wzm�^�G���d$9;_��)a./0!��[�Xd����6`�t{f��&�Hq����f\���w!��M�@�`��ZZ\m�����'�R��������v���_	�%�6������^�jl�p�:u(BP��Qh'��F5EX:��_~�y~i��dv�!���.Ke�L,.2( �f�TZ^�b��r��w�������pQ�j3�X���y�^
X��n�zU=U�jM�A�3�R8}�4������lK���y�O�O}Z���~����~�����&��$�����V��������I����&#�&�)VL�b��bKZ��DIo��\��J��
���dX��KR�!�Tl�VQ-�������������=o(;NM�09���GPu"���<���5���1����F�8�k�f�l+��Z�S���Of����"�^�l���*�vkK�X"��d�)��{p��|�5o%������!<��
V����s�P#�F@��5������S#�F@��5�����q��S���������oZ)�������?��_����WL+V$i���
V2M+����X7)�,E=�������).��4M��r��M��n{����|x����K���f��Vl��
#�:�T�"h�u7(���f�?z��
hEE��ve3S��n�����j��SW�r��������NU�����4�$� �S�h*w�	P��+���5a�%�B#�L��i���N��'U����T��J�����0~���e�����.v6u������~�R���B|rr�PC��������Lq�O�=�����e���e��"����pq�4aE?�\-���'�X�#eU�B��b��;���u��^�e���J:��T���S9%�6�Y�b�6��hu�w����&�YL��p��p�C����.2.�I�����C-���7U���4dp�Q�KmfD��C�lH��9k���������H
?S���j��h�#
��T�J��)�K)
a�l1�o�5iv�0�0D�F����!83�������rl��<G�o�G�����`U�����|S:���~L�zrjQ*��	��Qgb6r��TM0�(d�3��q?r5^Or���m�>E�H�������G�����eK���>�2�����������e�Sx��s��e��h��g�>���Q����}��PQ����e(3���/��Fh<�ti���������s~��n}���=�q�g��������m�Z�mC��h�N�&�kQ�@����i�KRb)uY���X��YiQj�������p���NO�S���^��d��W��G���Ym��=-I�Q?�����9#�����j�
�����A��K���06c� ��0N�CGhO[���c��T[�$J��U`�4����>������T����T�"���#���h2�����"Bq��{��w��4�:����n(��K�EF�P/�r�V�+������=��.�<�4�S��tf��K�_�����o����V��sg�����5i���l�4;�����`���BW���y-0t������B��%�����Y�q�}��4�[��������������>���zulC#p3�Y6tG��m������U^�x��|)�d�0,
Y7�t��{G*MU\��/M�9Z����u�4*�d��	�WaE�yn_CE_�Q,P�p�����]�xU�Q�l�e�L#�P4�mt������J�W�K���)u�w&|V��aBX�<�
��a��"��:f�����d<N0+�a��h�83�)�}���"i��r�J^�6�n������x�7��*VU��Z�F@��5j�lvT�j�#��_��5j�T�ac��Rg�## ��W_�}�u���/ �t�$N�P�eV��Ei��l�$�`.�^gA-�k�lKm��|[���$F�#��jym�o����lP�+���
Ds]�bH�Wr�6o�!k�.*DH��S��gg��v�|�)����N;���/�g���
��E�����Y����>l7`�����f�o��K�[��	PI�I���
 �@z�rav�Ry$OK��P����������J��_�2�:��K�� �Ko��Sx	U4@���B���q����^�/��a�-������}O(ub��E^�����	����h����I��g~�*U��!��7��m��t�����w���XT�3�P�Fh�D J�;��B��g���_��������REM�w4,�� �S���;��8�8��� A��O6"���m����-a��0����k�m�����v_���Q����j�4��pW1���>��"�sV��jMZ�1��F�;{`�wG���!t~�G�R��s��s/���WU�t��h�����3�CWL��lkE/��������-7�����:a�Op�s��g�n�;=�����
qgqu�BY�X��4��%;�4�	��kH��5��VI�x=	�V������jI�2�:�[;�e�46�����l��9_�������f�����}�0���~�+�<�����wbO�*I;����0,�a�>
����7��UE���Y���V�h?��6��^����%��/�81������#�W�2������"��T�d���!���4��rIK���Z���Q����=V��n�E�[v�uS��0�v�[�����Qz�
��`i���������8���S�#��q�����Q�`�"(%��E��N-U�Z��TO�b���Y��������UFv�A�W��Z2/!4�S�U�����y�w`�J���P�uT�:���
aJ������^	�%�UR)o�X2���e2��mx�0?�I�4�R�|�PO`�rPLF��n;_:���	���� �mM�	OI	��S�u#vN�t%��E/Z
�E��*�
�U�������'��d�_i�8�q���8m��^	��g@q*�&��2M���?aE9�
m���EvZ%�pp�5����*XUauX��5j����P��[mu[j��P#�F`��W	�:�����������G��w��1����Q��R.�G����:���u
dS�����������D��iM3�2Tw�%y���NPT��-����T��s��.�1��?8��I��t�n�1v���^��\k�zQw�.�
����o��1�1�o�=���{��],��dX1"��/<���|8N��l���BB"`w���1~i��N>w��j�9�@
�,���2lF����N������z�5��5���=R�����d�j���!=8���ud�1�@~j\�@�P���R:�W���u�5���j������mW��Gg�A8�4���J	�E�&-�Iz���nh�}�^��3/*0���SK��Lc��	;v���=��@�)�����J
A#0?�;9	 ��9�e��>�;(��P
�	���#la'�I���z��y��vtQ��4i	��'�`�O��/V:	�6�i
�\h�s����#F��%�81+*xu���l���u��d��]hd�=O^�M�0o�cS3���O�Jxi��<�+���|	���!;:;���A4wB����`�&f�����'O"M�ay���	�����E��O���9�R
�L�����lg��C2���5'�!'&�_�-�����k�c���1��3� RJL������1N�j6����k$4�ZJ��w8ay�I�M.�i&���$���VE�J)�*�U���`I}	X��6��f�����c��$��&����:e1���D/��4r6L�F�QE�6D[��@rWR}�$��sA�*=��i���H�F
v8��������2�[��9u	�`��w+KQ��C��^����C�Ij^+7�y5�L\��"��P��$����n�>�D����?��{�n�������%4e���?��$L�C0�W�+�@�JT��D�z{�~��u�
���j�������L%@���#�<��_��o�bC��U�������������8��s����������q*��L��xc~�TD��d���2U%�Tcjg��&]m�V��d���+�2�:����*M`*H����@T����TZ������u
�%P����e)��V�_K�y~����x�����~[�	YIR�*%�?5j��P#�F�6D@�nC��M�P#�F@���rP6���Zw�F�����o~WF.�z�&�%�U���X�K�:�T�)�9M���z���i�*c��J5� -�%j0�w����y��vu�_>yC�C�.!��;��� K��(�5a;�,a�]A�gC6Va%���2�����v��p;��������W�1�)o�K\��M�-F����.�9�i������7�����2YB�Y�[�
-Y*�E{�h/b���A�����hF��ku|�&0����qdx��x�����������	`��>!�j����}���`���c.�|�X�$�n.J��h���j�}K���O�a<GkN�V�%�I����Bu�gsS����@��Bxb��a%�I����aP�B�W�5
x'Q. 4OZ�������*�.h�d�rK5��8������!�;��#gh�Q}�t=������AC;��:5:��b���9��d�S�P�m`��;-����9i��T?�B�\]�z���Cekb��kh�2Lq�������R��I2VX��d�����������j�����'�^�	X�	-
��8>��t�k� L>�c#
�=T�b�v�����g���H��	`���}L_=�����F�+�Nl>;;�d7�d6��[�Q��m�	�fm��~oA�:��M�1��tp<����{>��I���q(M�	��V�����(�vZk���U3��|M=�����(:�H����E�s����	^�D�J�\�(K�K!K5|�0�8m�*$��}T�"du��b�|6v�}W0}�h��6~T�2O�`�a�O�
T�ug�������������c�%�8��b'�Ab���:QRJN��O^����Y�a�J V�}��q�w��~�v�����0<���>�����y��%31DT�*�!B�@���[\�kVZ��������$��VY��}�T+o�[\�b93G�}��������:O���#k�C���Hu�"����j���}�J�~��h��e;?��>��~7VI^<v�y�[h��Z�
y�U�3��g�Q��'�]����m}��OE�.���8�m��<���x����O��|�jp��D:Fk�k�*/�,�S��;�����Z���o�@�
����P!�ZX|������N�\Ii�
�ZI�W������Ta�k-�|�L��%�^n�W�7���4�h�3��V�u|���kk�/.�{#J
��
� ��y��;��xC�Q���w��Q!�*X�QW��F@��5j��'*X������P#�F@���M����q���r�G�2�Ih���j
LU�6�d������K�ch�z�������}O��I��p���;!K�������9������L"�i�V�ff�YL%|��RKf\cD��./h%�!@�%L%���M#;�%�,mT�"p`�)��e��Z��~����7����u)7�	���6d\.�	������F[���wt@O�E,x&.���%O_���u~���'�����.�As0��X�\�)�E���H�ZG���$��S|�M�?����0s�$���V�Y��I��2���pn��������I6J0F ���a�$�"���Ctr<pp�U�	E��^�@C�Bm#!�fi�kn��a#?�&h7�Nk��N�F�
 ���h�HU�*���d�d@�o�O�&p}��������U[���VZ�iAI5�v��=W}h=u��"��������[�Z� h���s/���;�bG�Alo���{f.2��Sg0������L�!XNQ�e�����B-q��;����*��I\�h[��-��~������!���c#xs�<.]�Zvp������
����isbw�t������~`q���f&��9i���|�$�;����#�>��}��@1Z�b�?�k�(�o�PV�+���o<�}�<dh����.�c���U�&H�N�iS��A��FZ�	p��LK`��K�-�6�R������������>��aYY���i�j�=���?��F�]@z|� ��Z��V����9,�y�����^���}�,���tj^��ET�"�y�%���(����pQ��{�:'�v��n:��]���`y�jVO<Y:��K}���`�'U�lg�Z;f��a3R������J�B+��)�r?�|R2��\O"z�<b�W�e%��3~f^M�����[�f�[Z�F��;y����A�x�6$�7v�B��������zg��QP�\T%$*J�J��L����b����j�^9�jO�����sS��c)��l�)�)s,e�8^(�K/_��_���K!���}���?B����g0����i�*JVu�f�2pY����&�����y�H~]��O5���f��o��z�f�����z	��AJ�.�����=�)�������f7�d�4����bc��~M�}�Cg�@g�Bg6sXJg����jln�����_�[g_���^��r#}]��<��?^���<m���
��[���������%���Q)*����U0��-c��Y�-��K<�"�$�V<�	��%�5�Z���`M��o�fq�R�7�"�N��}����W�����$�D�S��x��p�g-�Yee8����r��y7"���l%����B�&�����Uauj��P#�F@��z"��U�����5j������7!\�*�lX&��p���8q���8X����B%��W@��v?��6��o�uIZ:��x�T��W3�0|�
�2��1��`j~�/+wL6P]����w
��_���z;!6Q���K�\��a�T'�����1�����VyB>Y
��r��3�����"�Z��.+��HYv(	�i�gLD�'����������CmF��;�g���0z�
?�=bTr���g�����T�*[�Z4���$�_����>�q���v�����&s��S|H��/BZJ�q������|�oe����)J7����@pI^P�rQ��ZM��������'�7���6�@��-!����I�Hp�`�VO��*��#�C��sTc4�3����
����eW'1<5P���O��i-�j������;�Oy�������U���n7�o���Nd�����t�B�#��������`�-\M3a�wE/�3��S9�p����{=�r/.���������p��!�P����DN~�G�`���E�v6��=+nD��	���}e�>c+��>�JfIr���:��u}�khF�X����5�5hc��Q�P�s7�$i�����2r�����1t*]��Z�#]��]O@f����,�tZ���J�sx��oL�������>s^�+%��M���S����[;V $^���$�d����9^�i�H2�PJ��wX��b
U��;�a����Q�^R�K{//y?�*������0P9�(���"�7�M*Xz/f�}K[�^����*}���>�g_A�?}�d@	t+���~���g��@d��	�B�J�[�����(��Q�����l��7ZM�q'FE����_f�$W�B��<����U@������(�&/]T��3��"��P��x�=�l?�K�]��
TQ!/��'��'��8�,���4��Y_	l%���\����c�����f�����V���m�=T�$�^��g����������;*�7����������i
h�t�������b�uT04��n%JS[��K��u�v�"f#_�Ql	P���K�8.�TwJ�eU��R����0��-L���{@IDATW��*���3��d��X/�4&`����S�u?��P#�F@������>S����P#�F��������8���G# ��'�du���8y��UUe��z��Z�\����	e0�7mg��	�m\�v�3�xJ��Y|C�io��7{hX��.>�u�Q	�E[F�����8"�uS)A`��y�p��U���8�CJIY���-H�l��o��g0L��8 |5���3����zS���	��e�moG�*&��6�:Z(kEE�*��V��Q*���(�V���6�2K�9��I�:�m%9�U��.�y�:+m�����Y�|9L�(e\J���,�����_�Fg�s|?��g~r���/ E;����� 4|���x�8E�<-K#�L��w4U.V���-��~e�1��U6N:v�����)�O�Oa������
�m@��Z�s<�c�i<��Q�
���+�
<G��J����N-YD'�!�h	l�W�EE��l���)�����6D6���C	579�:�6	Pd�JN%� ��k�,(J6��a���y�Fk�-;�*G�b8����7��R�F��66<wc�]M�4 ��T�S1B�1����W��v�y����PY����HR:��F`���9�y}��[��
T+kh�~��v��Y�I�����nh[��in��J��*	�,RZvd�EA�d���~��Wpz�m^?�v��q��)�����G�����&�KQ�ZP�J�+�����;5]����#���v� D����0�^#�V���������d!(��`������~?�����{�;��I%�&�~�����C��!�aBV�I��V�����z��w�VU��
���m7��!���1���k���Ff�z�j��Z81��7��A*g.m��\�*3h�*g�������W��*��LKLL">>J%��`��+���Q�����5�7-j�z�mv�����K���W�X�%#��'�>��;���{%h$�����u*�w+V�	XA���J����Ju�p���;	Q��ie��6d�Q�5j��P#�F@��V��
Vm�OH�?5j���g"�>(�g>j�@���{�5�Y��w/��*��k�><����$�ZvV<���A��hh����JMU������Z4�,��
^���b��$��[�*Cdh}�Y��N[�����z�e�A���VHV����7�&h����c'����x����&k�rPi���,�i��Hf�����T���z���bO�i`Gv['t���������c��RY��i��&�%�b�a����q6��xf��*�����?���k�KT�k_�2l��$%ff[�.Zv"�����Y+@���
x��w�y�����������Q��U��YIu+�V_����h���z�U�~�I�a80�	��l?��L��R�������M�����b*��	}�r����e6j*�E����w2�� ���`gF[,wi1�����@����'�������nM<nE�k��������X��)�[���}�rf�����T%4���h�������0
���.?�r�Z"	�a�����;B5�!������jA��������T�xl��em��G����\Gnx����L�B7��P��(��Q�����:���L�I����5�]�U�qm���������G(B,W�5[��q_��=Z�>E6�7K&�&l��`?;���:L�;o���cs)����)�dQ���k��P;o�8�{<���N��[�y?�����9�����w4V����+�A)9L�YCpW��
��U��fa���U�R+.ebQ�NX���;Vn=wB]���������������Jk�/��{�c���f�iM�R�'�q��v/Ao+�u|y��>bo�!T��5_��$������F��d�>K��L+O)�~�F��e���,*b��~����+W�K13��1k�f�k���S�R�#l�!L���z��o��=�6����!�'�&V����/�4_���i��i��O���b��J+k�dEq��P��ygW�i�~�*W����q�FL�
Ml��uI����������*�:���r
u*���Z6t_��,E5@�J +���i*/�*!*6j�!�����+��j��P#�F@��=���?|����P#�F`kE@}P��>uo�,�����x���;T����/��8�F����>���m(ep��	@�Q�j=��/m
]hw��1��sd���h4�V���SJ�j��,SSam
Q�%�d��8���z�c�m[�IT�<,�T������s}
_��O����1�[�C�f���m7���Q@������!36��	Z0
"�����r���@��8�Q�D+��.h�uAO;=�b'�Z�|7O����|�������_��,��iZ�������SQ���wb
��������K���������w�@��J>���i^���tF�C*#R�r���<m��I���c�
6-V�Y�x'JwnJ9<}�m�F���U��%qd8��Z��/�l��y��2�����,t"g����hq����to;rm�w|e	}���=M�bzn���$f3HW�Z������$�_��0�Lk�TZ����i�� B����heG_�|Q�	��F��d��6;�c��ce���VJ/��f��0��=������KH�_��
i���	�]l�a���	��)I���4�;���6Ckm?K�4�'iBW�ue��^W0���������&yM��������N;������m`�p��m��������{��%����4����	Y�r��^�u?��_������,���0��k�~�U��^U�<;����.%��F ���J=!"��#%��HRr�4l�8�i�j	�kd^�G�q-�-Tp�Hc���c�f_��J����IX�P�*.��Rl�����W���9�hp�	�8������\���#������:���LY��}�����C0�oCW+W��F�/���^�*)�H��-c�8�z�B;T7!+��9�v$�D��b�	������XeIR��d���'���	��m��7���-�D������UQO�}�n�����0��]�j�o�����/~�b�<���������k������'C}=,l;,m�0��[���j���y��RT{�6z�Vm&�i���w��'�]z:��he���1��B�zR�*y)���y-��;C�#�������?�Y�9W��\�6�en6�
��G���5j��P#p�G@���OP�5j���k"�>(�k>J�@��M^�(��{�{�2|�������m��
�����v�Tf	T.��\���w<}R��)7�z�����p:�#��M#J�*���!Z�E	f����#��������dm\��U)xE��Wa�\�������kgiy����RWK/:���]����TS�/����_�W��{t�+(��y�+_�Zb>�A[�=���J��z����<|�*�������@V	[IvX�5H�^�[���S�+v�Uk%(���,�n%��Jx�pv�}��u\>�h<���3�����{5+�$Kh�@:���c�����&���`�fB��;����8����6-U���d��
z�����V�e��	xi��G��B�/�S�H�_('����i��u\9�X`���X@K���U�S�JQ��&�������5a�`*L�!L`*���Ud���x�els6cjY���������0�I{1��7O�5v���&������a�"���$'��*'�L3�5���*�@F���������MT_����{�_��d��E��l5��`�L����@���)*V|��|�F�|q��R��z�z��q�6��w7a;	#)�����w;�v+m�l����������[C���%m��'Z�J�z~�,�#)��P�	��xa8���z������������������~�49��E]�]]����q��2��d4�&�����f��X���2��mZ�7�/��XZ0C�7�I��/��}���v{t{[:�+-�����m7�i*N��5�2A�J)�b�A����7����
���a��i�#-]�l[t��Jf���%�~�vf3����l��D���<�\s
M�\�'-aOsKs+���0�5f�?���24�O�PF�*���G�����n!�v�T��S���XT�q�0����(�.��}���,������<�}�b�MK�,A6�^�i-�
����%?�Z�Hr�9h���<���>�{��������y�mC�����F@��5j�l~T�j�c�nA��5j�T�AAUaRgR#��"�Z�����[�^��+K;���l����S��j����t6mG{c7��|�����{�A38D�h���`D��
��F�Pr\1hR�qv�*��G�B��y����$����"���'���*%�i��K�:�����A�"�Qn�N;5���EK0Q��i�M%�>�o�]������j�&F����������0�g��1���t����:�#�#�3B��Rj�o��Z�[]�\�vo����������jZ�z�[���������J����0.L_�E���Wh��6L�����������u���/.?���\��
�N5��&�K������\f�������������>m'V��fUX���JGfrp�o�X��A� ��s5��|N�9�P�pZ�A�\B�e��Q`��UO`J��{)��Y�}���Ke�4G�t
��<���M��� z�z^�DI.C��������v�O9h���)��Nf�ymM��3`|zg���������eG�K^��EJQ�LP
���������{vu�rP3���J:�+�%�>gE)���:������OuB�0��KU����HU���my��N��	��7�{��p�E�0
�����y�!��G���#$�Y��dd��s���_G���g�==����z[I���]��r�l�)��?B��c�B	��b p�@�}��>��q��}o{/��������j�ZiW������3����;�WzG����g&t��m��Nz�i
��%Oah�����%o���_ F=#�'2�:�]Y90gY|�i)�� ��R����>������������q�a�M�Ga���AU��������p�&��0S	,[�� �P
�h����[[��2��2���r�A��}P�J(A��uSmY���h�h'���g�]�|��c	��?����6�Z���l�m�q>�X�~%�)(�
�>@SB��'���SXJ@SL
�458F@Sz��L~t������2�o��`��u�Z�z�/_��D�h�^��?Y?[!h�`j�L@�w���"NW�t��4��H��{��TY��>�J���_w�l��X���P�b�JQD��pU�zS]������P4H�c��;�N!��� ����1�pn�s��O�<���:��R�TP�e��?;H�����ub^�����%�b<��rb_�'��R^���9��(+��e\�!��s�j�>�ij&mC#�[[�q+����{���\^PF@F@F@F@F@F C$X�!(�JF@F@F@F@F�TD@���TD]^SF��`U�Wj0h�E��j���+o*
t&�	��A,��b�Q�����
���,:�U������_~�Q:�s8�����/��{T����vy��}�Q<��cA�=�0WcQ��y^��������p�<����;�@������7�h��6����E�L)���G�����?e���;�@�^SMp�+�����K����]w�h>�9�%v��F'��+�UZ����7P��f���8��=�������{��-��h�SM
����H/����)��Z��uTu�����o�?��q]�N����c���t'�=YL�`�-~��X�F��5�
������50(���<�`�x�^�QU�5��m,F
��An�g.�
�L��&��`U�QGa�%�T�b��6�-���P�4����wW7o��k�7��":�^(D%������Xk	@zP��7[�����`�{������Y��L��Z7�&�gT|7q2�P��A)lG)�T*p�k��N���}��y��9mF��;��o���R��Bw����@?���;��BE�����lM��612D��]���-�,m JF�P$�8�`[�#�P?����3��[
BU�SUN��F
�j���f��V$Of��]�^����l$~d��j�}rc�n�Y����B')
����u����4�t�@�jS�LQ�71�cQ��1|��(Q�Ac������1�E:X��xO��(q<�lGjZ��WT�NU���Z�����r``�T?(��\0*�����-1��?t�4/>Mj@|�I�����8Y��>������t7�9@��tV�}M��x�5t�������� ~�p���o����zV6�+m���ed�'���!([���)e�����4�O;3��(li��;^;N*�4lKU�Y�Q������� E������X�����qX�����l!*��x��%u~���UK+i�X�km#5��K=���,K����ddddddN�H���z��heddd���?��/��5�"E@�E
��6�|��/�;��l[���/���f�H��\`@�������P�f��9w�Et��������BoY�#=����3���*����y.��c���.�����AE�9/l18��$�.�Cs]���VT,�5U�a!���U��vE�f��&F�x;������eg��I/�3x�$V�:����vK,X�:�E����������Pm�+���{1U���Ts���Z�v\�=v�z�N�a�7���%5/��g���k��f�F����L�4Qn`V�N
_����F3�X��A�Yl0��`���f�
?��{TGbT	���v�cQjb��� ��Y��6�6N�&�X5��k�Y�#o�L5��
�[m����iE�:��������W`� ���J�6*��I+��L^�g�)�v�B)��P��:�?����M��Xpd�BPe�gx�j�(l����B�?��������G������&+j���3��Ulm�����@|V�y�Ya���K��+�,|�\'5g�@�tb��-�ed�V�Y-A�����s}H���b��U.��`��w���
��j��p?@�Q2��>
�����}���S������J=�xM+�v*���Co�R6|�[5F�����`C�
��N�x{��d),4X�`_���&�#�F�5u�ml�:���'�z���E�S��aQ����(�����t`�<���SsA�k��`KZ[Cvs9�����4s�1c@2TI�V�h��P*��.���u����~UU�����������P���U4��7Q��������;L'za����d������1'��	@SQ�'���[�X�����Y#`�Z@UZ�L����J����G�JG�B^��U�Rj0V�I=�sP9'��!,5�/k�?�R�R��Sv$(����X#���D~��e������U#ixkl"�#-�"Ou��8����������������G@�U�} # # # # #�D" �P�D^9��(r�8�^�3t���� ��w_�qw��Qn����*�U	��r{U;��~ei5Q�g������^X�<��g ���;���`���+���]u)aeW�t���P�b5��P���=sv��u��<���e����s|`*�R��5��6dk[��
�����r%�a#K��Dl�%����e��,%��b!r�!��X<F�{_�=]��H2�.�������kl�N���ix�)��L�!����������o��$Yt4�����{v������Z��wJ6L)��k��������Jk#�L���a�
��+F����1��!2Ld2�D�2X�>�
x�u��j��
�+a��6�i�����A
*Z�6;���Mj\F�����}S��6B��
�'�	��	,�Ot	`�5�I?�P��	�����2�2�Y�ZU���?H��1j��������3�?�NX!�@de�DE����K����h��'v����m�4o���l6�{%	��&�V6��WRc	Z`�
6�q2�ak��T�B�6�9�R�
4���� ���*Vk�����*i���W����t��[�E#�:xb/��:Ac�)�y�k�$m�R���0�����P9>�_��(� ������o��1��7��o�����7���{�6�x�F^�N���d���]p!i�%x}���1�C�e1R8
���
JLl���CV6�:&!+LY�U��$T�[�Sa�a�=A	G+85����#�"-,(sM<�]PVd}8&��` N�#�H�vS�vx�������������: �B%VNrN��=t��S
�a����R�4��i��R��A�!+��LF=6��BW��aZ	A�&?cu��HUK�1s|o���F��
r��3#\��.�e1���u�����}��
���P�*�V��C��}�����)�$H�
�\I
���\A
�6(����<��	�K>��Q���C44�% �z@V5�2�7�S����
p�v��#���(�A��q~/���N�n�����W�����x?��r�'C����S�4�s'j")��uS���H
H�`�/��JU]���H��2�Y�������GQ�+;�������1��1P�����������@�# �PP���e���y��{MO�;b{�/�����`52�����Q��V5U��r��k�_+����!��<M�|�N���9��\��Z�p�U��b���c�^����xw���H����l[�j�n�X�����Vk.�5�uX����2hX"[b����?N#G�5c[���=���������(�����K�Y�)��Z�~��Ts��)g�E�l�4B�x���?��L���`���cq�l3��Q`s+E76V]����7�
��,z�mX��Z����4��� ��0�b�ZV-�\�0��7Os|=3�g�b�	�%f�J����IW�}`� u����.�Nx�����B+�}<~^�_�T�����Y'bd
��a�A��Cr�ru�/5�t����UEN���C���0P��6j�j�%������I����R�~�j*��y(���yN*V�����������;�?���$����=���N�����
:�{FXAY�P��gH�������
hJ����A���Z!�����V�������iJ�X�}���, �l�f;�=q�F_|1	a��eM��VE�9�y������������f������c��!�R�'�6BgK"�g�� sB���)X�1L���V����v��K[)�v�#W���v���Q
&C%'����s�������t��N��tP�+H�T��Z:	00���I*Mi�������	Vm��e��g��D�:���gc
9#N���<�C��!����4M���~�>?� �:�^6�>�4�v(Ou��P�:���c�������.�q2���Xq�)B��3S����T�����t��T�y.=)��kR��A���rI63,&��e�����_�l�bXT�(�������LmbP���y�B�����������R��s�En5U��(����(��qS	E�v�����/��jP�L�\�:��0�p����������&;����W������R��T~��}����������������	V�
���G��"�8-^&9H�%9o,������;J���/���F]�B]g�@Qu�+�|5_�`!�P�z@��kvE�e�+���T��������{�����[����S���5�������hlW4����9���V���W:��:��
+��&��������K��
���A��9��`I�U���RAz&6�`����d�v��4Xp�h��A��Z��nE�ZMK�.�7�z(I�9Z�����J���2]1
R��I���jPz����|�^����i�^�DP|�����|=�Mz��y�A%++BZ��
Y���D(2�F�5�����"�bd���I��`�e`Cn�0��"3@,3^�zv���R<���5q�c:bU�
W��r2,���@���c("Cb{SVh�b��'sXO&�YQM7Y�\�C�!�=�K�'��!���|�����XjS���JT�R���������	(x�>�3���8��lA��d�=�����Z�J\�����)1�X���WP=�=��R��� ��<f��\v���SulW[
0��jU8j��������������'��e���L��u��������|R*x�p����tP*�1,�����.<oN�V�f���1������P\�i
1t���Q(�����6���'���6�����a)-�)���T6�?�N04��UbS����=7��vz�R(���1��xd.��he��yT��Q<�ql(�D�<�|�)F����=P#
�e	b���	b.G�"�:����2��l��,���d���u��~#-o���6�1ZHOH��d�2�d�s�/�����|��CC�����JW\�T���	�@�B��[�4�Y��qV�b�
�r��P�2	�+�1�R�ae��=�`�w��G���c����s���[�T���y�����@�M�E?����'l�x���b�{���K(��*��5?�V�s��v�z����m,>����M����n5��Q�jSj;���
�
JSq<qX��Yy��1|?�4E�������(^�^C~������x�K�HWVE%P)t@��������%r����bc�.�/�X���*��
Nm�����1	V���B^]F@F@F@F@F�l�����W_�������������$���!##pZD@����tV�����l`9��9�h�9���fsZ��'x��G�a��k��|�X�s8>;w	�����z����m�ke�j��l�/���R�����/���x��d��d���n������y����Y�m���n���
�j�)�\P^2?�`��y �b�o���#4pb?
�%�
��U�<{Z���$d���Ie"�
Vh*+�b��`d������U����l����� 
_|��K=c'���	&D��H��{)�>�����q7-���\���� �t� �P/�+�V�����@��B��~�]����f�9��P.����4x�d�eF��3d�a�hq��b#�%M`z�JL��LKM=&y7��h��j��D��a���N�����1A�����@����4��'���@�A�,�Es<Z�)�V]�j��FMp���?��?�$���0���W�U����]yq�
.�u����C��9��a��T �(c?;��c��|X�.D�2��������}���~����{?��"nE0�G�1�s9�gh!����:V��_I
�+o---yw�\5�e�@(�d���Y������tRS�	�1��5����OAT1@Ts)7��=W�m��>`J/�H�)�M�lc`������������r�Js]��@�[W*U�0�
�gq<�*��8�u�������&X�u���5f��L�����n����m/u����n���|��JG#��������X�`���m5���r/�I"G�A��A@y�~�Kb`m���xN��e��MT�eK���{�{�Il������
D��e�����qP(�,����������'9`Mj�5)�e�J�k�"_��g�x��d�������07��9���
N��������-b1���%7>��\��56�J<�x��x�y3���`�^.���u;+3@_��#�6.�m�#F�=�����b�)FN�V@���eTl���Dc&��B6��G?���or<��'r��z>����B�TxC����w�����g ��Xj�8���h��1Is�r���R;A��y0�y1�4��?��Q4�O�Ik����M�M�^dv�P�RA��0f!?�k)32�Oy�B��"O�C{|n�?�9�,_(��(�}�)�\���I�������j��222222E����\�����������@>H]��(�'r�����9o�����r��B3����\
������8�W��m|J1`�{f��sW]Do��.Z{��l���R��E2�w\,�,�X��!�0��a,�G`s@�-���:�V�I��E����Y5��M?f��
���X�EQ��+�e�mL�RV5.�Sc}8W`*o�5�K�!,NEs�I��t#�`4X��`��75�f�B#r�����3�UV��8r�
}��-[j��#��p'`#���c�I+"Q	��}��*��� �(Xq���A�����D�Ta�
>���TW���%+}���@����'�Q�w�Hw�#B�H��66S���EUk7	�A�>=g{,�G��l��@���j1	;^T9a��-�l��p�����zB�[�Bc6\��Z�*J��rCV��h�U���g��0]m#�8R�D��tX86�=n�R����+E���l�� ix�<F=����"���i)����(�a��E�B��L1��t�e���G�v���l��s���F�	��z(�X-v��������m4����� ����a����K1�0��m�[�s�g+]�W������W��&a+k��+�KrZp���g9O��@J5��l�x�g6�%-�D>�0a�<��TV��)�}O)e���8���D�!z�����]�eD�%���u��5�������#B�����&V�b�:�`&�$�u�-^�]._�St����F=P4uw������7|4�!�W�����TW���+�R5`�|�4�-T5����:hJU������ ���\*c� ���V|�[!��&��GrQ
��s�+5G;���?S����w��=��:��3��)`����T��DG!��K	�lT���Z*Va[#���a��^(����|��<C(��"��+e7��Q���B���_�F1s�@�x�UB���U�e�[�
(�}^MA�	(+f%�S�������mOd(+']y�$����a���]J��������-�*Zhe�22222�E@�� �x��22Dr�����!�Pl5��T����U��P�l��4�b�����c>s��E+��,��r	o}�A���#l�\c���Y���+��K`U@��l�����_��\�(�$���r~j^��Rs�@�v���gI��CF@�7��o��J�-O=eAe����]]4����V�JU�*iY��LX�NM�=i����%3li
�8v���l������`+*���Z�:���^�))�X�j"E�#2;�/��4�)�eX��Z2���hWb�������l�&�&;g� ,�B�P`����V�'�z�F4�
��*EP�HMXni�*]m����/z���;�y��i�C��s����{��V���Q.����-���T*�\���hW7�	�QP��h��8�OC-#��6���`[�����2���H��A-)�WSy�slla�`�Y��b����>���V��&W�T��f�j�g�����P3LX�
���|���m[��F
W4Q��\I�E;5�+��\e5@���t!�����*\(k���6�6V�����4�����:�3��D���,�g<��;o��V�b�
����y���Vv�����D>��C����(\V��!8��x��WE���V\�x�X���}�~�<
�~�ZR����7T����u�E���
T���$-���R�!��6�<����s��2�����7��L�u����e/V���g:��g��������T��%*�w���:���W
�S�COP��=��&!7[��'�	�������Wn|���	�)|��x=y�0�|�xmY�����Z�#��{x_U�L���H���Z��f��;���8l`��1l��8~,!r�Y13uL����oBJPl����$��7�:��y���l���e���J� �,�O|�bK���I������c����xm���2�NW��N��7K���'��������	V�(�LF@F@F@F@F���((v�e�2g^��q�����d3�C�E�j�YZK�(,P�7y�^�F�E=�����k��TWJ����`������p�)�3�J��\N��*@[�(W�\)����\���}�������J�Do�X�J�����Fa��Z_�2�Y��NR/�Q�@�K1�T�BX�9ZH�1&���F��as��U��>I��
��&S������;��U*U�E���. ��V��x�)4>�jdV+nD3�����UX�OMN�x�d����h�
�8�b
+]<��1�<&.���s����{4������U�,�V��R�7F`'�b*�m�T�@�O�YA��]ux�����;N��)h�N�SuY-��6j�^�|9�Zqn8)��D���T6���P�b�VX$��6�q��q�(��`�?�b�X"���	2d%�42�T��/�QE?����|{]��'�������Y��,���{�[����Eu��9*��\���:|v�e�'@a��E�z�Y)��M0uP�1Z(�/����#H�v1��IzX����"�$Cu5����e$[H*���C���p�:����v �����;l�Z��V4l�����\�A(
z&���=k���kn��=�39>�t���za����lu}�8%��T	p�m�]��BR���k*2��f3���^IeV|7�V����6���h1w�y�Pe8"�_Q�:q,B����]�_����*�4x�ySC
P��7��[E�`s�\�B�sA�~Uz�+*'�
����� 5,GN�<.�nX^���w�F��?�s���d���V,�B![�1�_m����fQ6�>���%PQF�����X�������*a;���@X`��$��	8+�
�
O���K����6�+�2|�*��������|���w�hJ�!�8�Q�#���a��a+��bU�==��)��
�y�S6>�����'N+�.�@�{�;$?`�]�v����[G�I�|���=+����R__Y`\SSCUUU�t1�-+�

Qww7���TYYIuuu�8M�����S���/���/����jiiI?|J�}�K�?�>S�=����,�7�$���2)�`UJ0dQF@F@F@F@F�TF`!���r���22�.r�8u��W�8"P�9D��V-���@�������/�#_�O�d��Pl���l��R��f�N�b%*��Kjr9������	�q;]%�TWK���.��{�lo�
�)��z`��R��N��A����RS�+���O�w~��}�S�Y������k������J������X��a;��~c�d�����P�O��+n��z��'_8�����+,�V��������E����l����SW
x�}Q����[(��Nj��yi����&�+�;J��8U�k,���&�bF`D����i���CPXEJ6���+�h@QPC}U@�&Z^��HW��[aq��Ra,��(�@Z! ��
�1'���`g"�����������U2,&���2���6�\��6,;W�S]���l]M;��t���R�e��e���l�3�YWOZU�����2+�����s��0�K�`��>GW� sS�&2`�5=1�t�w����:xrOz�Y�����v9���P��D�M�K3?[�tf�R��V��2+o1��;�A}P�b����N��UC�)*���(����j*�Wc��"w�+��Cc��E�\D���p� �$;J*�����P���z�3���x+T��2^��U�U��	0��`?<8��XvR�p{"��c(L�&�e2�1a���c�Z�*Oa��0CF�y�VT�
N���]o�vAX���d6�1or.[��x�;��
�-��^9�,�|�zq�S�1�������5�p���
�[1�!�8WD@IDAT�f�Y�*������*��66Q�V�$X�DE�K=']��t��!1T��7J��/|�����\��������7��E���=J���7i���3���a�q�t��7�86[�8������$wz�8{�����?�����B��>&���G�C��8���������gj�hu������k��F����h�������J��~����g>���iS�!Y�X�H�j�B-/$# # # # #�=�\��~%yTF@F�L���7��WR������@1�^g%V0Yh��V�<QW���1l���S����)�}�Ee&����*Y�%d�f7��fi-%���pul;�_�.��6Mli���1,F' 1�UV
IMZ(}X�R�jUK-�@���m�X�l�-�%O��:#�D�8Ex��x6�~3�Q��
�U"m]����C9G�]�+j�L� �6P&[��:@��O��O��pJM��s�/���[��f����'P����4k!���VCgM�j(�r�)���X�������3����,c>*�S�/D�hLBW�9��t�n]��Wj���H�j��-�VQZ)��Z�Vu��R�����%��8u�'B1Pa'�A�Q^Hb��n����$�@-p�s��QO���������IO���������5[n�7_�����D�9L'S�5'k5f���f54��nvE�P�M�p`�Ej�TF2G�d�=�^�:p�����
EI�����IO��R
W�P�a�:`@4�>
���p�jP�G`=
�5wn�c�m+5T��U��Q}���f'���N�B���������<��;6�R�b����d��e~M��X)I@V��*e�M�PN��o���7
�����Gzr��w�+c�������<����Vy�P�b����������������.�eQo�p�z������s��b�k��.`u��khC��Y���
	�
V�P����dJ��6
�����2EH�-�|�k_P�2���U��m#�{�TL����}���W.5k�P��w�9�q��1�~��g�1�q%���kx����R���t���.��(@���
}�K�?��G������������������������e��@# ��"Wv-# # # # #�O�����8d[��'r�8}^+9R���S6���"Rz��)u�U�~�9�p
���	:���tSI��Ch&�'f��p��b�e!r�y�X����+{E����Z�`('�/��[�"�@��Ya��������x��^.�P��Q�w!�s
.�a�|�M�#��.��	��a���dQT�p15�1Z+�Ps��G��B��<�,���T%Je%Ut����*\�c��^��O�/O=w�SK+5���*2/=� ���(����Io�	� ����.
����`��P���\�G�7m6lP����e�
�riK��}6����t�ZK��
���d�g���`�V����6�7"���%�=����e��3``���CX���[���`���^����9l�`�������`�q�	�� ��~�y U'edk[7���V���7)UY�@�������A��(���������#o������`7>oO�'��Xf� f�)��
����F�f��yx�
��4R�qc�����3f�9J���FGh��>SsI&(r�U����s��jl37BM	�w�iq����o����Ju�\�����a�hF^�}3,Z]�d�*���VS�U�P"��8&B~���Izj���^X�eJFX��fX0��bG����������1]I���dK�r{�*��� m��8�|�:��������l�-k.���]M[V_.��>8�&���EA|��1l��Hu-E�CN�a��Y�����O���7��2_�j���t���N��X`�#�<B����]�w�~��s�wVt������18����t�M7%%����Z���W
���_|��B��
��L���e����7*�T�U������]w�E�����
`-�����Ct�-��w�����BF���`U1�+�������#�lq3�1��22K+r�XZ��������eah)�#:�n��$�)aTV���X�r>�P����P���4B��|s��R�������\�g�hS����D�K���z��S/�BrJ�t��{�*��K��Ev_��F�hPi���5�I�5
lex���*C1����:�M�tS����c��G��=Jc��i�Waa~K�����S�6�Yv|����{)88�l��j��
�R���A�+��:otA���������0�����-O������&��e-�����4��4��6P�Q���8���x��X"����E��c��&�����c��tH~���*M��<L�5�������[���vk��l����\N_�61����������|6������} #/��z��q��� `?���d��7�D�n����K���Gh��Y�)5
=����u48����6����7�Z���vfZ�5�3�F@B*(u�
���m�Vl�mC;-�����E�����`��$}TM�^���:R���U��C4l	��5Da5�9�U��=�r{�BmJ��8�*J���{y5Uo��I��1;��u�L��WS�����VbClr�Y���4��Z�����2�)��p_��P.��uF�D��T6�!���
9(K�������L��� N�9r~(������6��lU���B^
����,-IX���
Sg�
������{�����ynv ����e�����h�����r��������H�CC�T��_�*���8+�(�
y���
5��N�V���3�V����vx:1���c��'>��i���oKW\q��:e��*�tS��W_-������-��>��k+����g?��N�����������=�P�9�`U��y)�����n�����������h/��a[��~��b_��=��# >e_�2�����a�����������@��(�1P�����@2r�H�Bdd���ya��-Ht�?�1�KRa�XS�@�j^��U��P�R��h�A*T�/���h�k��a��6�Ic0B=���L�Aq��N��O?�]f_�O����'���OSxh���*���0U���������@����Pk��d�|
l+x��U���(r��]�
%���k��rm���*�z�i�������+�������ebQH���j���#��l�;���.^��.���s��r�*�fq��X"�R�j`��:L�O(4���n���>w������
�H�K�\����Cm"��@��N��cj2��C�H�g^
p�X��mQ~OL��U�J������*5
�p��]E@$�k�B\g�}�@��j���kd�����y��Z������cVY\g��Nz����{�\��q
��;J��E�KM0(�\Q"��
���}��Y]H����8��a�5t����Z��G�w�,�����?r<�~�q�	�eV�
�|����Y*��2<����
�\6�Q����?#��e(���&y�~,
^���h�����@Il$���p�y �}�V,`���@WP8�M������LH�R�a�a`
��Cl����K�HN�(��P�����"$[���*/�G�F�9�Ec�s���e3��6��hN�
cg@�����.���X1�.���akY����<�x�U��ny��y�W���L/�2���������>�5-���.�p-�C�p1���o�����Fa"���O8'J����s�U'N��O~���������,�����M�����������;��J!]A�-�~��_*��yz�n��~����:����^z�;��T�bPy��=I�Fi[���~9wA!�+_�
�w�}����B��QX���)18VU���}��y��w�e�MS�������2�tk��5��SOej*�d�	V%��S��# �P���2g{��q�����,,r���KEY����0@�(���*JRA������0���sl�*PQ�{u�v�����_���XV�m�Z����*�Q�*j�y���������S[�B��|#Y��i���N�����$��=��l�r�������/X5���V�<����3r������Q�6I�K*��(WPei
����P��;�j\:N�y�����X%��[h��O��u�"[�a�v{(����&r����k'�w�B�<����h����
�U���P��
�����
�lj$s�}*�kL2`���lvU�=.�Jx�������L��>���^1��NkA;@RV|�`J���,�u�D���Ag��������]xV�:@�0��c4��Y�����S�s�a/��rI:�x5�m�ZG+6����B�mv!��cu�P6�=����0�����u��-"y��3���<O��<�m��<Vd�IF@�@uY
�l�H�[�����S[�j�PN9�X�|�:�u`�s����K�C�m�~�6�8 ��R�(�>����q����L=�P�K��x6��U�~���
��l��
�G7nLZ����3�<3�R��j\����^z�����]�3��m��d]�6�A������*���o����\(tJ�O<�}�������S���UG�����J���qZ�~}r?[�������s�9'��������0�����w������$���	?H�IF`1" ����������������@�(�!H��������ycZ8�����@��sH��	�>@Va�VZ��`<%�QK�MAq�,Q����u<H>���w%;����z������+v���/�
���
(ka5�H��!�F�rrX*v9�������S������/�B�US9KJ���e��3�h��g�sd�"�:�`��Y��5o{���/�/
a�P	�����v�8=P�9	��p�=]_=a�8�����P�:a�x�)��D%P��p&;YX��*\���u	8�"�0D�p�@V��S����c��};��C�x
G]��2�)�e~�#�{���� [���u����._S����q�:�	��f���xDb����\�<LQ��(��P�'���mx_�(a�3����t;S�	����
���Z�r�l��y��%�U8����`�W����xrB�q��^@�Z�J�9��Q����X��r�=#'HMX���FM�K��)�P�$~����*)��)�f�	K\e��[n�^xA����+i������&�w��El��)1P��o|c�!Vp�����A&_���o��n!;�w�����}�#��������K�����N��g>��g@��yJ���+�����7���~M8N������K�����
�����;�����O}�����=Y}�m��	�%��V���z�>����T���������(����e�����XV�8�*p@ew22222���\��o��y2go��q�����e
9��E��cAV���'������������D%�����`��c��5�����^�������U�P���9����2�S�����\��Z�WQ��n�c��n}L�?�����2�-#��f��&Y�����{�~�\/<G�������D��J(qU��;�_S��4���6�o��;������a�6���#/�uj�4��(���2�= O[�b����l�}QN���e*���~j8J�:w���=�����,&e�8�"Pflc��*G��(m�<����>#	��?	\�z��H�>�I�����	���r(�(�)��M��t����e�\�	�����j��}MD��� O�l�Z����?�������������?�yr��Q�s�=�����l\'��7�<��������/�<@*))X�V|l���-[�e(��rOI����/u��0��-m��)	B�8���?$���^R���/}i4�l�R�����h��C��O�,�p�)����������J5�
�������c��������'o��{/��_��V1��P�L2�	V-F��5dddddr��\��!H��������ycZ8�����@��sH����t\{����~�&�z������������}����q�m?�'���Rs�_+�����R������Ucc����� �>p����
~Y��U�ji���<0w��C����M�<I�C]d�&�:�>��-��8p� �������(�SQG������G_1���x�r��E��y�^��1	y��YZ�h\�=l"��M�D�A����r�K��3(6K��&P���&!�F��N���A�����>����ob�<��r`�<�X���?��-�0�u�����J���T�Q�V�������{-P�*P �ws��?��VZ�T\���n��^{���M����Gr?��5<��y�	�����*/5)`��W_M����<���\�*�����$�p�
P��P:Sh���~�����BM�����P�z��'�����}�����/�����.�L�����g?���I����]+���r�bU0������9�j�������S^�|�tk�c����l���VF`��`��C'O�����(l��fa�){�8" ����U��(#P��9�x��=�����q����=�Ka�����f3�����T�x
��b����9���w��y�2^��3A�j�P�j(���}��Y*�
KM�IR

�*��6I
;LSs���*ik#
+$��5��S(��#������d��IU��Hs�ES�4�6gY!���5G*�YEN��\V�o�����(b�%��������n5�hX'�eu	5�c=hp��|��|^@^�@��/����-Tw��+?�����/_��F�
����HU���T[�F�v�V`A��+�d(/*x�}z=���O�����7����!�m�/����(�
d�!�l��Xr����:eK�M�%XF�s����^������r�DQ����O��� [/���Q�	6�l�Y(�����w�ZbL�H�vy��{m+��g~��v>]��F[�g�O�G�C����T��5js�{x����T��.�����u8���o����t����7���~wr?��m�6b�CI_��W�������_�����l���J3��V=��s411A�^{�4��b�U�|�;��_�e��=���+}�_�����Zee���{��qL��}�vjmmUv3��VpZ�x���m��S���I��t����rN5XU�{^��)�I�9���T�[=��S���e�	V=��22222�E@.n�'�JF@F`*r����,���9��3y����]��c���`r�l����/R�m�'����'���#�k�
�Y5kr�7�fuZ5�-d�����u)G�S��u

�k?A�����8���P��b���zJ�
������T��v�H�#G��M�X}lm�ZUs�A!��������'��#���:�%��8�j�0	^�h^i�c������z��C���%��F��Z�����5U�Q}E�����c���Ec�[�s�'	HE)�1n;��}������(Ra�	}
A.r�s"w s����An(y�h��?,��L���Pm4`��l�c���k�d�>�E�d[��)yUM����7�@��yE`h���{���m��`=8}~7Lt�97�E���s�1M�����*�����������k�hm�9�6��f�Z��MM��=N�{�����jQ^
���W�N�n�n���*R�{H�j�h�~�l��n�4��t+����q��6cJb���\R>`�l��z��@��g@���J?����_�z��?������~�����8y���#I%�deZa�������%Y���|'i�W����R8�`U��y������q������o%VS�����J��e�	V+��_�<# �P�g�ds���|��,$rYH����C��g�����6T���h����5������C#���Aw7�c3
��P��w�
���|�5�-X��a���G��J�V����4G��j����UkY�-#Kc��F����CqR��y \�����������J5)��*
�?lX�^z�\�v�o�.��v�����"�����&FNCB��Y�jW+�+G`�t��KD�f���`!����D�P"�-�-F<�8680
��Hf}	]y�5Ta�^R!d���c�j\�W��.`��wp��c���j�^�������Stb��(�J@M�2����%�3�����!)C�2�-K*�r0����g�z�g����	���^���f���NlN:�w�����:��tS(J+d����}]a����&(�5!o����?�x�^��������������=�m�}=�A��l�=24�U9F�l�84��w����<��(�s�\IK:�c{�����R���`����O��}��K.��L;W�|�K_J6c� V
����~�X�KI����m��o�>�����M�����m��&��_�"Y
��U������ co��Q��G����SW�Y=���(U��'�
}�K��d��(��������z��dK�o��c���d�,�;�*v�e�222229F@�� �@�f22��y#
Y���G�2���SN�����>�!
�'���"v������0Yw���	<	����!,����-�j���R�JXu3���7��yO� ��X�j������q����h������"tlp����clZH�$��|��j��rLa������Ec,$��]�~
���C��)� �2�/�c����U�@���L��G�J�������e���:@��\�1� y`�7A�p�"K,�������^:@�3T����f2 �a(�Q&Q�J�V�
Gh�c|���<�7G>�F^�����a�x�|,�F����PS@�)���/�g������^�o���+^��rz�>B���N��O?m?�U@V#�.4<2D^�oZ�b���U��������1�f0��o��/{�-���3u)F����l�Xa��[nI�������xr_)<���P�����X�)�t:�U�V�"��+n�����{��w��cp�a%1<t�9����|�#��?�Q9D��^:WbU+����j���8�?���|�*V���=1�u{�1��i�8\�{^������t�->��_��������r_F���`UQ�+;������=���J���HD@��� # #���9d!����N`���������i�x�eki�O����&����k�(uB~l�[��7%�����Vt�:ox`��N�SP��1��XWO*��]_Y���U�dD�PU���%u�c>���~W
8�����F��U�h]���n.K?��~`h�X-,��h,a���JX*����z����58@�`��8���5a���XJ�	�a>��(h~l9���o�!��Q�b���LG	E�J(�-\j���@!���F�P�1j��U��i(��~ �!1��$��`(���a+�*@	U�:�S5�0
���$@)���czX��Lq�A���:o,�����X
���������9���CZ������	�jU�ZV�P�	�}t��6���0,�GFG��������X��e]�;`/x.����3����99������J2�mb�
�p/��
VE����.H*5������??#�o{����W^���s�s�/�vr:�U�����a��X�V�U����+�HW��:
��������}��������/J��d)�j�j�������R�C��~�+_����g����?�}�c�V'wd#�Z�(�k����������$���L���7��C����9��0�������W���wPpl(y/j(��|�����a����"�0�������;F�Hf����Z@V��(�	`���~�X�X���������y��V��
2�������WU�w8������pv�������zf��Qo�5u[hm�ydxS��2X����#�3�U��S�dUI�qz���t��������.�����\G�f*��S������"�Y)+���G`Ma8(�(���\�RVPV�.��0^
���b��*��<#��%���������4����22�W�����5���#CM
���VK�3��D~���X���E������}�8�T9�;gsE�ZZ��	�zZ���|Q'�}5iA��XA�jl�\N���w�����J�P���-�7^Km���
��cQof	_�l��%��w�K���������[i�������.������l����}.��Ka��*���y�gg�Z� ��`���_N��w_�S��_�������~�ib�+Nw�u�4;���n��dK�������.������=����/y�,�|�*�x����������.��,�'����Q���zJ|2��7������>��O���v�,#P�H��Q�}������#�����<EF�,���7��7��}�F@�!�<���@,�#_�*�=������6���_P�����}j����e��a
��5k�d�T���a�D�,3��Ce����6�U�&\�� �NO6Q����J_Y��[1pe����M�NR��w���Ts�T��mP���p����T<g��������)i�x�//�SN*,|�:�"���'��}���j@��l���{�G���m�����G�um�a������H��.%��A�([�����eO�I��l���
vuS������s�:�������|=u�R@o��|ehh� ����X_O���b�(}��E	��TF@D ����=J>}uv�{I)�l\G�5�HE���#������A�0T�T��v�#?�dOU�d��t�����K��p���V��S�����_�b2�?�����������m���W'�s),6X��xr#?6��.��2j��8m������?�yk?����_��_��^}�U����\1x���.o4�����]��MozS������E����E����tC���?�8�_�D��W�{^������Q��������m(?��O�V�����F@�U�ny1��# ��8{l�����F���Z��" ����$[��p���>�!��O-B��O��?F���$�Q>�S��C(Yu������j*�JkU��5QYI�,�bl�64H��!
!�<42LQ��y>�U��RP��a+V�2T'�+�rI�h@X����J� �wp������S��qj&��b�s
� �(x�7��t�bU^!��C����O��vyi�T�.Z%��UkmB�`Z���j��������KK�jV�PyI��c�.�=����������G��&�+B��(9|q*��aE�])`ezK}_�_U��}�
�+�1|e�o��@F(a-�t�}��ut�����v��:Hm4��QF:~��<�/+�3�}l\f�8V'�IF�����#�{�p�^:���������7G�������-�V�;*���J3lS�Z��Jte���N�O������3>G��;����M.�Ft(�����l�8���r���"���������P�d[�����6o�L�>�h��?���n��^{�5qo�����/�y�_�����{�I�;x� �'7Ym����~�X*t��L+0p����?Y��_�����j�_����R8�`U��y�������������I>�J��}�{��w�C�����)���NI��EeddddfF�L�c��;�522����7
Q�����9��]����Xq�;�����!���l2��h�=�C�<�����q��
����(�g�E��8	5 jH�@�6�9�9�/�Y�*8��B('�aa=7�>�26�����,��df��T���$@*�Tc^�]��z	��QR)@�j{#��6T�k��p ����a�p��x�j_B������!�r���ft��K���~�V6����'g��?)�g��V��6VS��y�1�3|���3��/�_I7\x]��z*1�)��2���B��U��������l��fb�T�`��+���UM��$���|��W�����t������a�c��(������E[m�7��z��,���a�XJ�Ri��  ,X����R6�u�VJ��<����Y��l����j?uu�i�Qa��R����TV�
����5��~�V����8�����X>+Q�p;��4:>L^����W�7�G�����K�U�{���`�3�������~����GJb0E��S�r�O���;���~8y;������%���Y�������w����O������rUe��3�l����F�PzyA���� ��RE�U��

���O�UD�(!��� �m�m�^���y��������;�;;�{�r�=���9w������,[��'*�s����NK�.U]�=_�������*�k���������t�YgQ7�����gl� 0 �
�9���f}��7������|e���BQa������������i�I��{��%Q��/�����&O����`�3�|�q@=�@��/w7�2`7��>�.A _	�������F�@�6��p���c�~i��3��o���o ����� v�����P+�*����3a�XN�N��h�X��(��c���%��x�oW�����9���N
���Qm��:7��Q�+�t�x��.��qe"&���d�[I��z#��N����+H�o��rxTSCo���_���5��esW��Kh����`�bESg�
X��)��p^<�2�l��������;�u
w(���_v*����4�fz�4I����U���������5�����V�����t�Xh�����Z_M$��q�A��)�(fq�����������]��a��@��"��O�S����������6���$���CE��U�W��������9��	�r�.��
�����B��W+�n�q�zjiO/��x��*g��5u�t�a���H	�����QO/X{������<}.��=]����M�p*���+�;�U�RK�����>���	~��g��w�I�<2����G�`HB���0��x�:����6�����N;m�EbJ������P����^.�#�Tw�}������w_�jM�?,H�?�p�������������(F�'�w�}7}��_��n��/UZ��y3���d{>����Ve{��>_�^�9�$���������[�2��F
}v/,1E%��$12�~X�^]~8K����~:�Z�EM|�5���R�n��������;�e�����4_Lm��P `����0�����#�1�6�yF6$�6�3�������5m��m�{�{qV���_���<P�3r!���zi/{j��E��8�������e��x"D������..�<,��6�U�|--Jx�b���	N�� oYr1�%�����*���)zPJu���x���3_k�x�1;���/6�M^��������_<�=�����t�
���$������_�K���+�B��e�}����y������Q�d���^2[MTY]A��'>56�t��F;w��nu�������@+?$���Yjh ?K�={�9�g�����������g�<�d@�<�Z�x�a3�'���:���j*���g�
9��ndr������#��6���M��s{v��V�������R�YK��%��P�*l$��PY���|�U�C��S�O�Z�w�M�)�S���|�S���2�nUVR�!���0��������V��)�q5���8
Pc�^>v���]��U{������n��#���������U�aU:��^���R��������]K�z(��������/��������g��U��������������s�=�-z#�w����|�{��7�]:::h����W�����~��'*�
�-ZD���?�n��O�8Ia��U�^s���m������?���\�������M��2��t4�����*�L�U�K�e�E��&�����J|����I�O���������|�3J�v��u3�|Ia�@��	��������@���(�
�r@`�	���0p\nL���K.������k2����_�y7�BfG�{!��:7�t�F ��X5���b���)o�fu�����IB��N$�9��I����M�w��r_��<�p?���\��<��E<�&�7DE�^*����O�~}�x4s���i�9| �dO?���}L��l_{��b�L��G�X����e�'�����?���J��y����3\��"���vQu0����*���N�X^��j�%����^.����=`�;���=������e�W�)I�WS����I������b�<HJ�n�Z���������d�7A�C^���������n
{��F���T��]<��+k���9�,�r��+�\��P�.��%aG!I(F�[�T�hY�w8��8c*{�G�V}U?��v�Wk�1��H�[�(,X���&�%9�g9Z/a%�c
��f\�%�z5N�pyo�n����6�^OvD��n���>
Yyl4Y|!2�d	��G��|n
���^B���������,���
>��b�U"��<��>�y��tH>�l�����Z���W�@%���+�����������.4���?j�}����d��x���*���o����.�����?�1���gR��x�]������_��~����"z9���s)����+W�u�����L?�-����7�9�{�l�{�D��V�=e{��>���D����#���~XE�J�O���"a�h���u_z��?��V���N�>��/��n�:�%6������'w^�_��j��I$�1���c�%�c<�U����)�@�E /�E����3 0�!�����N`���-�~��^}���j:�R����:��j7�7+���!����5�w����$_�0J�S>Ky�X*"�
9��WM(�J��b*��'���0aR��h�������,�rs8�">������K)���+��������B2m
��*T��g?�;������a�F"�]n�;s��>'��������^�z9��g�x��M	=(,U�m�����V��p�	!�Q�xO
������,�����
*XH���?7*�yYp�eT��^
��"���P��G������U�#�!��KCX5;P���hG}t��C%���+!0�����J�u�W��O>�/q0�U����8���/u,�}��7�y���I�K���zn�����S��\�/>��3h��5zm�P���O�� �l	������s�����C��i���d�l�9������O���ot$IK�N�����mG��� ������O�^z�������y|<��o�Y��+--�^�����R.������>����
U��>-�z�������	(�n��~�m�:S��%q�p��%7�|�kG@����%�1ia� Bv���p�������J>����������k6�������1Y������-����DM�;9��%��������F+�����p�����8w�yE�8�+����{+6z�o��m[9�F};�+�9����_�9X\��V�����l��i�$?���w��k�Hx���zc�������G���n���`�dN�+RV�N*v���wisH�/��v���;9t��l��L�M�f+{33S ��=�hs�'���p_e�)e���4�v!YxL�$���v���EX"������,�X-��e�WH�%`f?��7}3���{����m����Q���=mu�Pwd���]=f��'���;�:�pua�F��_Q����~0`�W]u]s�5���+��
6����oY��v�u�Y���{�����*�����������''�]��#�������$$��wD=�J������DU�9L���O��/~���l	�����<�k�����[��`������h
��N7�fAtH 0 �	�Y����������^K8s:��[n���/w�qG�_�=b�����e��@IDAT�p��~{XT�c;6�����;�8]^������\.Wl72�|�����������	�np��d�"��,��TM�����k/�P]]�:���e��>H�G����+����Pa#�wR{��C�{���-,����8����e�X#�;�R�>N%�q���]�Q����V�,��c��g�������8L���e����!{55���<_C	��s��=X�+�*�L�PB#��^ T�-��%���*|W��a����;���wQ��G'y��_B&BE��a\i����V��z���x�R����*�����`����������,��<]	��3fR��x�l*J��D�[�����u�Z#9��,��P�>/�=�����bAV_����h.���Qt�����S�P����(�>r�GK�.pA	g7s����V<������~W�.a���]���$���'���>���k�^����~��_����C0K86�T�H��������&x���8��6�b�����A���w���{nPqL���k��AX%���5��|��E�m8I>k������� ���U��Q��_^�}�����|'�]�V�:���V�7g�Z�~����E�z�&�����Y�����>�W%��5��SN9E;��{l���h��0P04�\}Iah�X<8���`,rL6$��1}A�s��O�w5>�t?�O�	�������B�lo�H�
/��k�����&�(�`aTT4�DR"�OF�l//+���H�V=�����VB0���3If�������a��5�,��V�+%����d����u�X�!��D��5��(kQq��1��Z��5��v����T��0�������5�{��8��_$��+{��k��J<�����}�,$9/r���Y=�\SgR����f�c���T�"*+��/�O<����W�gJ,��N_c��8L��&�w��+7�Q������~�dZp�7��!�2�3��U���*Z�v�C9��y��tH�XV��]�E��G?J�������O?M�4#Yz��W��/���*Qp	k�7Y��|�]+_�Ur�^s��'���y�R>#���Va�F�H��j$(g���zk?��L+?����o�(����O��V,���[�b�
�YDS�]w�~_��y3��Pj�{�����?�NU��X�T'�t�������b,��OZH@��7�xC�&a�4��p@O`���0<h�"�Q@�����(�
����'��������E��f}-��R�{��4��'�u�Z������E	�X����:�����~@p8;������<�_������H��,�u�d���#^��T�=�+7�`��A���j#���"������ki��[�Y��6g&�U�)�����xU(����p����%�|��'{Ee�>	+�����k�R6IY��Af�Wm�^>��S9�_R����{(#(��������8D^h�}�:+h���4g�Ad���H	�w���;�o�.���x%e��Y�������#������k�~Vg�{�*��x�<*�1���y*�$�G�_�����:��,/��M\����e
d�X���4�����BXe�
�%>���$�*-�s�=*��v>�����=]����5k�P
{(�$���{������s���W_}��������������o�9��CN�s@{��;v(G!��+Q�p�W^y�r��=�.����/�s����>���7H�?�f����i����e�[>k)	F��U#A9K��8��F\�-���6v�d��*��U��w]z��z���~�D��,��JM%�]�j��]���^��������ZoOT8���HT�Z��n�[�m>�r��x@2%��)1��%Ke����7�H���m�A�G�Hn�����K����'���Q��
��e3u���z�l����Y������!���utz�����M^��",T�`�d�����l�*��Z^����� ��X@&�bP�9a9'N"������#'��J
����_��(�U���B��z����������m4�=���H�ud+*R��Q����������];�#�];��J<(y�����I8n(�f+?g����� ��I��s��^�����]�S��E��8�����>�i?���
�4�W����{�oX���j�?`Jf���\*Q��+E���KE����Re�:k��FD�<�"bN�#"��e���a����C�*o��V�y%4�v%dk����r��s���Uu�\�����?���l�g������Yd1���95��S}^%w�!�W�����%}��s�.�oG�N�����Z*��r��*vP����k?��c����4m�4�:u*��s;�$�4$���6��m���sT�����L��}ds�!���w��������@� �J��w��U,P�/~��d��B�T�*QK�=-����������,��o���/��?^�����.�@o{����N��~����UW]�7�Z��T�F�O�����	�K
�?������
���"�@�����+/�����h���f��4�K�{�;���F�MtwS�G���ET�[�P�G�X`��<J��������dWG(��2I�����"+W�rM�B�����&�9B,,����J���z���F{
b�@|��T�����W�x��%�B,���;z/��������D���m����)�"�����_�*A�VD"����N�*�����
�K��w�3��L�{��������@���j�����/���%9�c��"Sa�������V^������e���_N���/tZ
�FX�XI���7�t��&n"cC�
1����/��/Y��s�I2�|:@O/
�dLv#cd C6$� 0����v<����LUq��t���;d�;����5��������l��uk���o{��������/,���dc�N���$^>���x�Q�x�yXxb�Y���z!�G�}��&����� ��4�'�a�D4�G�����H�?9���:>0�E�
�U��y��>��V��kzv�$�uOxj�0��n��4Y��\��3�r>i,�(�e!�x�b1��K9���+	i��J�"�,��zG+����r��4�:���'��R<����|�����Z8�b){��HN����'7{�BJL��v#1
��dJ6$Sb�   �V�������J<C�]�V����P���m��F7�p��M�,��5K�_w�ut�w�m���TRR��'*����$!���#������N�6��9��E��L	�ndJ�Ab	����@�G�������/��m��DLR4uIXt1w�,XH%��Sq�}��q
�n��n���y��*��z��
i�l�bM'��YT4{�����Mn����b����Cx��S!�|,���p�&;Y�����@v��e�d+�:	�"y��2�"�jo��m�*D���(��.um^�b6�7�g�t�AT�p���#�V���g�*��P#��N�uv95�,�^�����,&M���,�4*5��)�<��^�~9������CW�mK�n�����
�n}�~�5��\��   ���*Jy�'Sa�dv�]����t����K/��r�?�����+����5/^��/��"z���6?���8������*6�}��G�\r�!�K�	m �"���o��Av#1�l�q�+��������{{��	'���	��=�7��S�]�D7�}��<������y�E\�57���=57�����D��p�,�
xz2���G�i3�=��S��R���T�B:#�0kY�*���
���:u��*$�*B���P�Q�R��e$��zYd�eQ������'���6vT��i~)u��'���RA�����R�����y�wQ�kaY|1�s�D�8�\S���=m9�Q����y������io�j������6'�-�Y�d�:U��.��o�i�6��\o����������`)�vCD}��$zf�C��=���2�D�P9�%W�q����s_9��e\�x3��m������Q6���x����\g�#ZgR}l�!C=�@�\���K�   ���jP4c�!SaU)�����R<������G��>��t�����|�MZ�|�:?��3�O�������+��_O.�[���5�\���6�����?������
���"d�@o�.�����s����L�����Wn\�[�<\�������T�m7���aQ�Z��������I�R^J��% ����������<�[l�h�G\�(�S"�*f�T�P�����`������*�����6�S��+�����*?���:���-���;T(>?�w+��,��B�I'�Tt����,r����Y�bq���If������Y�r��E.�������w��������	R���*��T��2*7�����QDV��Y��� b�Th�:o8e�
%(� ��Z����s5t����z����L��Dt%�,���+A��:���L����`��T���#N���E�����o�����y9K�3�&��
	��+?�&`��,%�����D�����Tyy��"��&KT0��1�I^�����8,���!.�}�
z������v�+�J���Q��r(��6����c��   A����L�U�����������X%��3���x�
Z�b�:=��s��������zy��G}Dp��|������^���6�a�=�"a���C�!       �&�?l�ogOH��R�=��v� j�C�=#�*j�4~"��L#��de�7�������C��n
����K�>>��"e�����.����{w1/n����SOL�b��	d�4�,,|�(�S�RU���`*�����f5�>Z�������=Z���M�I�E���e�X� c�a��g���P?��/��9W�v��i��G�������������fXY���Z�M<&
oV���K(\QA!#(���dbZ���xNb7J�S���zL��C]�j�P8���mc�����rZ�����"�RIB,�p��"J�'M,�4s�I��B��,��Es);L�[�0S0ZJ����>��B�zCT����f/�������g���0�!�4����]��$!K��s�1����B!�P��u����
V��}Jz��V�x�����+���x����e�]�����ua�y��G�>�����`fq��$�^����_�i������[F�Oc0�\DU"�B;B,������j�wn���z#��]���F	��=��9��x$�ZH����/�Ex!9y�Bc�'	y��hy�]�0I�c���:t�Xq��D��9�h�ES*gOB��u��X ���(*!3���p������L��|T�����97��������d��I8*sO������}
����V[�Z� �������&�(>����g��e��/,a9S��L��������\��r��Q����*�,�*%	#X!�!������E���Y�5����j:*m�]�"�j;����?w{���BT���N�Yp����S��r��#$�+�q�c4����#H�p���U�<$�|d#������G�}^r����+@���s�X�(��0��JR��P�)�0��^�/K���0�Z?�>���se�E,�e����fwm\���<\l���p�S����������"B)WT��y�Z7z�D�V��T��e��`k��Ca%�rEEW!�(KX���8bRa���0����@����K)�1Sa�\vS�q�F5�GA�V�Jq"�(u�����v��I�'OV�"����z���K��$I(��;L���?���8�un��tC(@X5h      yJ �"�6[��BW��(������<���-�gr�P���R%,�*����Le,\a���f���P
^�Fxo�x9�'��
���G���%���m���$O]yf���
��q�����o�JG%U�*YpUAE'��&��]��0���������*uU����N�JG�HE�!*� ���Q��IV;�Cd���C'J(D\JHM_s#�)$��),��
s�:9�L��@+��R�i��M�%�H�����Q��Q������4�0)�d�����Z}����EET���p%{���:�8r�&X	s9X�
��'�I��q���CK�Y����9��B|��!�����GD8�Hf�m/?g����X\�,�ylQ�Wy�*mfQ�H	��)��X��CRQ�k�D��6�#L����UPD�f?��l������m�4HG��AX5�{������ ��Q��B���C=��y����>~��-)��W�=����ke��W@������������������_��W���?������SO=U�m>
 �'��{����@G��@�I��	@ %�������@�������f�I��[7��yO^�c���:���_p[��d-*&s1���������Ur�4b��M�,��WV����������J��=����������=
�w�!$+?{f��E.��w3.��[�y4����38��#�N��bG���k�MA��<�n��Z�b���3���kY���������B�����TS2�&N^@Ea'y[����N!���h��ksx����^+
�$��L���VQ��Zy��pp�L���^��%����8�i.��i��r+������>���/aODi^�D&*u�P���*��q>��8w�S�PLs���b/X��������;�RS������� N-��:�asq.���6�~�T�r�}��\��SY&)������:wQc�Nj���!3�%'����N�q�S8�����
���R�=�;;���C���<���|�<�� ��
���A3�� �\�|hu\�8�db1��-R�e����n�6�����
���^�?����{�r� �Y
j�*�R�����\B�F��<F�EP�"���SD�&�^x_��A@@rF������3V�s�9��c��7������d��_�"=���z��1�<����z�o�A+V������>���K�&�`�|�run��t(����4�# �1����a�@��(��&��B+O{�aoWa���#,�O$���G���s.G�����j�~|H����Ws�������R����������(+��R�D�(J	����������a���#�w���n�{�
��"�<�Y���s��s�0U_\��l�<�"y���{�f:n��m[�w�F����f/{��1����S��������O��=d��W_�����^�DSe.�jK%U�Q�G���|��)�U_�.�l���K(Q�s�D�O���.��R�:�����Z{9�^rAY�
���.O�����'mAgN[1�8,�����F)�������j]-]{��sw�wR]R�x�W��Y(I��zZ{����!*���r��$I�f|�d>�R]��.a�oCH~�)�UG'�������?����VT�5��s2�9a����b�%/���+�e,*�^���vt����*��   #I������ke*���OJ���w������g���f��I[�nUMGu�\�R����������?L��w�v�0���K�W������/B��Wa��6������2&��12�!E���n��	��N �������EW�7Q������@�V���)�b+V�dLI�OUY*�`�TJL�&0�D&�f�?�/<d��rnb�Ql!f��Gy����,^z����{�5�>�'y/���l�K
{��z{ "���z�p�C�9�OP�{�drM������.��;�����Y	��1���yx�!$��J.[��l%��\v\�������E�����m�K{�,����������v�?��H�E���i<�DL5�jK#�z�:�]dO�����}{��A�,$K�lV;�c����Dh%����Dh��U'�Xx%�||.��2C�L��>�������F��x��UV�����%��!}E$+.Mf3��P�kK��jt�W`��aN1�	d*�z�����SN�-��=�\�<��{�n����p�_=�v�mz���6��_|�����}�Q�4a+�Z�l���3�|	�@��bm!^���A c�#���!10PH��FZ��	%
���6��y=54l�_��������N[�q}>�|���w�{�r�u���NESgR���t�AT~������T&	e&�2Mro"8	tw��e�r���J"����0�C��
����84�^>�����'��)�I�?N%�����,�r+!VT��m"��s��V����o��W!��=�i���QP�N�|��N`�Z����{'o��EV;Yd��;v)a\�{./�Q|�J����IJ\V����#�4� {IX;^�p��� �N�K�vp{��agI���q��M	�$��o��L&�h����W��Q�rU�.����"Q�s�,e�hb��D��#�5%$`2[��{������4aQ   0&@X5&�)�Mf*����*��K�xT�W����I�TZ����F��v�v��O}�S��/�u���T�]�(I���;Lo���kI���6_��Q0.�\�l4.M��Av���U�@�����,���%�Q�{���>���V���uj������Px�[�iN-rV�Q��%T�"��CWP���Y[�x��+����z)�B�TI�bY8�M�h,�u-A����D,�
�����e�w�"��K4�mS�n�~m�yZ���F}�^����7�G>z���h&��J��2���Q��\�qt��&���xNt����&2�`�s�3�������2�,���h�k6"�kd�Y#�T�Yl�*9��X-{��a�]5Jx6�l{�a�k�g3������',G�_��/����������%��u������#���|.��v/�q�O�L��k:��N+�s�wU/�|\��AkKx�����~f���NZPj���Ef"P����t&����5��*
r��"a�h���u3V���9�z������k��L��/�.�].I<Wm�����/�1I����z�\@>�`�iz-Q'��=����w��k�"4�|:@M_Rz��x��!a� �(�<
 ���������H8��w���w���w���
��;�'�����x�<*Yz��S����U�Ai6�8�_���$| ��I��������V"���#�BUNg�a��{y����!/�>>���2���R_(9�tnAT�r*Wy)��3���u��G?r��Dtc�D������H��#:N�Z�O�7����=Z���=[5w�!�?5�
�l�B%�g�Z�lU��+-�$/H"<�C���&GL�:G��r�+����>Qq�g,�nj�\�c����0�p������.�6�yQ-^���/M@�'"*�Ga�A�gO�te�����/�IZ�����    �.��%����"�Z�~=-\����~��_��^����}�]:���uQ�t�������.�7NN���9s�P}}��&!���]�JjjjR��bEU��~:=�����`���u#06|Ia����A`(`7�B
c@4�!	� ���H���@�t�����Tb�����F~+�m�$GE
�.^F�Q�V��e$�tjO�U��n�l
(��H��?*��r�D������?U�*�T��Dy��d1�x�2r�PD�+��m�c�#e����L-=
�����vokZ#^�*X��Vl*Jk�X��<^iB+]�l,���+"���"e%(�z��x�b����z�����Qd��������7	*��T*<��CF�J�@��W�=�����@@@`�	@X5��sp����6n��F��O~���JJJ��J<U�'��$"���{��Q���mR��SN9%��N:�$�f�����Z����Z�������k'F�O[7r�����=VC%�1Tr  `C��dJv#Sb��' �Z�~���}�:��U7{�
x9�V�$q���������K�b�A��:-����$��������Vl�I	u�a���v��F�;*uHE7���$���CS��9T�3	m=W!�b��>������7K.���.��I��$�"j���X&�cSP�Hib��zq�e�s=��Fm�j
���Am�v���-U��mTn�vQ<�9L�	!���x��YT�4��p @��M�BO���	�b=P
��R2��#������F�t�3Ta��E��w�I�]w]��[�x1�\�����������E_����y�J4@\�V�"�7Y2�|�X�
@��	�EA��1V�&��m���E6�X����@6�nd�"������Iy��x���~�z��LyQ+{�)���Jd�VK�R�A,��8)��TV���������x>.EE)�0E�)fM��	��N<e�:8JC�'Q��md�� ��:r�M G�xrq�48���yNOo�`K�Z��r4W��PKk���
~�a�t�{�����Vm�v�v�5g�����T���i%3�m����s}&%��<����=��~i](�N��JrU�<����J������-��J<P���LS�����y����e3�m�L��;�z���8 }�3���   �"aU�H��<�a��z�)���������t�W�G}4`��n����7�I.��8��u�V������^H���K.��}�{TWW��=��h���� �!�/)���X)d��F�Hb0&�c�;V
�!�1z�G ��K�����=[u��^�>f�V��"��%T4g���=[DB�����7g�n�,	�����O>a]S��M�mm�xj�y�L�XY��d��"[�8r������"�b�aq�QDp�4tJ�b��Xq�&���8�$�2fVa#����Ny��TB(?�
�B��
�����;���s7��R?��&���� ��J>�[�,���,�:)s�����9�m\g�Cr_S���5��U�
;/W"��<^�rT�`\�]n��yx��&�������(`
R �e
q�~���z9��HY�����qA���k�mf���Y��J;���������.��k%_K+Z����L��&
45S��'{W3�s� ���^�*�r>�,?J�
�*��V��|����[�v-}�� �����3g���v�������9��^z��4{�l���J2�|Ca�1 c�@�_6�m�{�t�n�C	}@#2��Fvc02���G@�Zu�y�:�{�:���wlLk�����j��T�d�[��]�`i�v#��P�[U��
��A<Qm&o[�`��Z���QYC������W����X��g�z�(��=������hf�����BA��,,J2G�]���^�s�)"�!�^��%_�K?��>D�-�C,��:>�~�X������4~����*
   #L��������`���q��P P�`7
��B�%��\��� P�`7
s_�*��q���w���5��������KkJ��K*�h�Bp�t�[�JK��TvC�iup$��O>��������o��v�Kz�D�r�q�;����@W������^�*k�`U��{���C�b�
*�??k�c��hoV"����^_��Xh��������GZ��+b�l�f[Be�����lQ�<   ���*Sb�  9"��ec�.�iA�0��1�y�u��!y�	�c`7����vA`�D���>��8�`�{�P����������j%���G����6m�*+S^�z6m���Y@�c����/��2�k�L�>{��G���S��dIy�w����K}{���soC�����������h��ox�|,v'�,8��^N�GIU�{�(�9%�b�UDh%a��,��D�����%T�x��jE��$���<�#-K"�7jD�C�MBZ���I���|�������D�}���@O�����<�O�rf�L�VM5Y�*���Ml��d)-����Faf6�pX�,�OnK���U�G�l��*[$1�����&@��0��c� �E�!Y���@� `7��X&$!�km������w����Bp��a�������A���=B��K%,�*a�P�s�!Y�����Xt���[	�������&%�qY(AL��9T�B��CWP��G���*+��I
��&�
)�UT�f����Tb���s%��/��[a
��lc��]��B��D�����Pk;�Z�(������ln�@[+����[O'�3I%���O�IS���5}��C��f��nB�a	���GB,�aV�0p\@@#���A=��``7#�z�t���C	}@b	�n��@@@#��m+u|��:��U��zvlb�Q@kN�;���=cv�UT@U�xq�q��A�y���S������������B��(UrV���EK�l�aT��p�m+���@��z��c!T�>u�����e?�,��#��a/[[X(�EAv�R���K+�5y�g�%��i,��KE3gR1�����G6ib.����j��0@@�L/
�����n`��D�!����� P�`7
tc�,���5,�Z�>m}�
m�@��r���!�f)�S�R11J�U!��w�a��*j�M��p5<=)�g�9�d�bZ��rZUrh��r��)t�	oK{����|�D$��(HiB)H:��h�@W�z~2)���NY���^���**�VUM����8�&���s�������s����w��p�3���@�@X�#��@@2%��C�
< �!2z�$�a�}��A`8�n7�6m�6:�m�j�&�5�Ng���*|`�������Y�R��8tJL �����u�[�![w�Am�[����!�E�������,"k	��+�ZYE6I�(*"�b�TM�J9k�>��/����w-   #I�����k���@xQ��@��H�� i�
I���`7t(��Iv�?(G�{�uj�M>�s���9��k���Q��GP�1�Q�����D����Z������N>��n"o��1
��b�TQ)��*�Z^NV�m��U�=K�E4U��x��z�r�X�PlH��$�  c��Uc{�p�  D/

h3�!�#��%R��e�@	�n�.��%��|c%�[��������
���J>�[�%�Tv�aTq��Ts������rL�uz<��nu����R�'��w�V
����T��}��K����,"����<"��RvKq��2��D8e+-�����]���h\@@@ )���A#����(9��
��B�I�F�l��p�UA`,�����{��!��9���[�������7���Ge����#���c�'GUU�������������5��*OkcFw��G�9��h�2��Df3�LfV;Y��M�K=��esL�m������G��X�3;dW^�*�:�^F G�3l���@@@��*!T���������g�+��X'�1�w��K6dt��� 0	�n��]�=�����>g'�{�5�j�u��*u���rR��I6�h�8�h�>�X��T�rL�t^��������-���o��������v*�<��-��y�9���T�x1Y����@��!�?{�;#�����������(�������� �1&�	7	yK6$o�7yKv#o�7yKv#�[����WWR���,�ZI=����H���T�B�*YU~Y\��cr��{�V���K
���FM}��7~D��=]�^ZI��s��ET%��j1�������`C�{pw   `Ve��N��'�y�E�A�;�y�%�!S`C��v�fA /�n��6�&@`L����v�;:�e�+���+���*�m�'
~]��+�1�*�8�*�9�*]Nf�m���|>��]O}������{7y9�6�!_�^��k���'��%���j%w�Tr�;��.R������8Qw����L,@@�0������A@
�^�~b5 0`7F�2��K6�p�+�\���Y��Kvc����o���oje�U����g_c��0[mT2w�!�Xh�l��<`�M��I},��DS�=����%�j��7s�T��lE�T4s-T"�:�Jf�NxO�cq^x`C
oO�"� ����{(HxQP���E�@N	�n�/&��'R�[��@�	�nd)&��'�1�[�ih�fZ������V����7e�98��Rr���=M��X4��K:.�F�����5d�k8�O ���T����.#[yy&S�o��
)�
��@@@`���j�ln@@��	�EA��1V�&��m���E6�X����@6�nd�"�c������e�S-�f�V���:�{��=�Y�I��L���W�#�xM�M �����(�$rI���	�!�%��5�rM����@��� MP� ����Q� 0�!C��! `p��|��!@�!]�6������W9t���)����$�����f{��@�	����R�	,���9���L0�@ -�!iaB'���*��1=���K/
�%�~ �
�r���

5�c��0��c� 0�C�6�c:���},���x�ri�������
I6����E���@���*��7  `TxQ`����A`�`7��#A�`C��dJv#Sb� ��g@`8`C�CcA@@�E��l��<   0LxQ0L�$�a�M��A �`C�S��A�nd��L�"��,��T `@�!�t,@@���Uy�)�%c��c�;V
�!�1z �g@ S��C�
< �!2z   �-Ve�$��a���a�p0 �
n:�Y$�E��
Bv� �e�@	�nd&��
1��c��B����V�ZE_���F���(��;��}�p  �!���j,�Fv#k(1�l�!���a��>C��0��c� �5�!YC��@ !�@ @�������n�%K����>��*A@�� �2������
�(��������!�1f�
7
yI6$/�7yMv#��7yIv#/�7c�l���*��%p�%��_��Wu�V��M�m���F3.  �	�EAjF� ���F8��lHf��@�vO�@�`72%�� �`Cbi��'p��g���+��Ve�/f(V�^b%  c�^��
����(����$���L,F�����e@���n�fb) 0
`CF:.i(Vj��X�a��j�0@@�I/
�Is��1�nc��J���\��� P�`7
wo�2���\��� `�!��g�r�@X5z�qe��E����_�[�&���X���F��bZ0��l4�	Y$��E��
Bv� �e�@�����A�
�����Vo�X���D�������c�������Z�>}:-]��L&S?Z2����K[�n���v�<y2M�6����GV��_�d'^���o����$��g����t:�
���~6o�L����s�Nu�3g��3fP]]��f�ol������0�{����;��&���O>��2���4vH��0����a����I����Tdlww���^Q@IDATO�����������R<��~��	��&�F�>�
  1�� � i��H:�B6d0�����h� 0��A��@ -�!iaB�4	�������]�����>���}�Y������e�,s�������4e����/�
7�@{���w��Et�w���%2��~���*a�`����k��o}�[d��v�B�����/�����
:��������� �".W��{��]zzz�G?���w���U�w�y��������������.Ru"�z�����s��^Z�%K�(��WH  0� ����A@@ J/
�(�dJv#Sb� K6$�� ���H���������2�@�`C2%�^����"��F��WEQ��3"�M�D�#�����Z��J=��3��#�(A�`���U�V)oW���755��_Lo���V�2�Sr����}o��V�����'��P���i����Y�U-X� Q�~u�����W+���a�_����{���y��V-\��do������k��p�7�@F��U#����� 1��Nvcp6hHM6$5#��Ov�?���&���z�N6dp6�i���1mk�h8Sdu����4�&��g��V%���CQ!�>���~�"��ZQ���sU�xOW'�x��$����K/���~�i�T�r=�%��v���<6��w�����W^�o�SO=E�]vY����>�f���<\I����{�_�����UR���Gg�u��+-��Y�I�x�z��'�j����H���?�x�:u*m��M�H�B�i�$�����XaUl}|����������8�Q!a��`�EA@@` �(�5 �	�n$��V��`C��A+��@���@ 9���|�
 ��lHr>Cm���?�������O��C���X�.a�>����~Zh?-������0���T;���:����sf����5JO�����������5��_OV�U���y/���:�v�j5�|�]
�U�S����i
�DNg�y&�\�Ru��{�0>�:���/���u�I'�O~�7n��]BJ��XQ��'�L=���G
�	�DHu��G*���������V�	p �@��Q��K���@"xQ��
�@���HFm ����"�v�x��Dp ���F*BhHF6$���AX����7�L^x���h��+��'�|�_�o�[:��������c��/��������N"��������\	����B��I�����	T�@ �����_N�_}���_���t�-��m�O����k
&��B{�������L&S�T�,^�D\�.~������n���>����@���U�������?������
���"�@Z`7���N 1`7b`� �1�����5�������_������p{�W��W_}��8����GQ�����n��V�ZE7n$	+(����������<ci����
��5K��|>�>}��D��O�9�N�N+x�^��/~A������'������_:��SO=���Y�M�O��W��=t�v�i���=��U"���dL��(���(��j����   O/
���@ ��T�� ��lH2:hHDv#��$#����@R�
IEhh�VE��x����o}+!D	����|EoV�]w�~[X�n�
%������}�s����7';�\.�.� �Du��w�M�o��y��xv�PyZ���W^IG}4���h�i���Up��I�\�fz'.H�D��%i��9���[��?���o|��<k�Q�<"aUmn@@�����������P�n���h`C4�A�%��.)���nh$���l�P��aU��C=D'�|rB`���>}�3���D�$"�Di��
t����M�	��\�RSS�����m�F[�n�����Li��C>��c���|Gk��/Z��N<�D%�Z�t)Y��~��'��U����l�2}XuuuZ!��[ZZ�q�N������UJ��s���� �H��|�����!	�E�!���a��>��
1�# �1����a�����a�
�ACXA������G��S��*>�_� 	�w�q��U�	��[�3�<��~�������IV�V����o�]y�J6���Xy�����F"�J�R	����x�nz���i���j�xa���b�i�����@.@X���@@�@/
�
C@��`7�`� 0L�!��� `@��t,�Ivc�1N6$7�U�����yc���ma�+��B�_~y?/N��KV�Vi}�|�I����h���Z���`^�R	������%�\2���6<����d��=^X���������
�@@`T@X5*�qQH/
2A
�@r����@ 9���|�
 0���@&�HNv#9��$'���P[!���)a��5k��SOM�]uuu�x�b�7ox��$��^x��������	���x������/�L������d�+���_u*a��U���_��>�����w��}�sT[[���V�z,X�_�GV�����@@I/
��X4�����a0�l����	�nd�@��`7��l���
:����Vu�Q�u�V}?f��A7�|3-_��JJJ�z� ������	��>Z���B����Y�G��4u�Tz���c�(��j��]�b�
}�x���w����a�P�a��h��j�w��(�(�� �)��L��?�@,��X(��Cv#J� Kv#�� ��
��Xz�!��p	aUccc�p�"���x����n���_O������X�N�@����i��-$����>�,��7� ������O�%�*Xi)��J��_�`O=��6|�|������@&LPGuu5�L&���A��@ �	@X����[0�(0�~c� �
����9@��`C���X9���P�a���q�+�l�
���s�����i`��jD,�c�<���E54�&���D�t����74������o|C���W^I�^{�~_���$�p%���$sH�@I��w�z��Z�HI��~��_�-���7���c�9F??����?���:_�h��������q�G7n�N�����C=T?�/tuu��L���z����� ���� 0�@X5�6�
  P��������\���U�	�!b���JA [`7�E���q�ng��R���\P5���!�z�����s���_x��*�^S���!:���;1�D�<�r�!�������|�3z�i��F����
Jo�D���?�Y�^�r%��9S??�������W��BJ���?NW_}�>f��9$b/�����n��&z�����3�8����.��*
 c��Uch�p�  �M/

{�:���\P�� `�!��k��Ev#[$1���q�+�\�
�U��9��={���(���O>I�v�v��;v(OV���Z�z9y�������W��PHy���hu�y��5�\C����X����M?����:	C(��bC^~������E�s��7�����Z�g�V��`�>�����5k�~2�x�Z�x�^'�����nz���:)�pk���z�U:
@����f�VA@
�^��bu �����9A�8`C���X)d��F�Hb0�
��5V
� ����s4�UB���O�x������O���J�+�����������z�������s�p�G��	����V�^�/�����o~C������*���{��;��W�������TDU��z������JB����[o��/��t�����K/��K��~8p 0F@X5F6
�	  P������+�l���6Q��"b���jA `7�As����nk��Z�6��l5�|�%�jhh�c�9f��(�nTWW��~��{����%������~����O~��~u��+�U"��O�6m"	'����D���D\u�e����[�MT!�*V�'����@`,��j,��@@������E�@V	�nd'&��
1��c� 0l��F�	@�p`7��X0d�lHVq~��_~��>�l��s�=�/�����u������/����m�FGy�^��_��N9��\
���*L��~��~���x~�{�C�PW]u=��Z3�]������s)����t������u����+V��7��<Yi����#��LIX��~����{<���~F��x��:�t�Ij>�d�(	�X\�/s��M�u  �7 ���������^�	��A s��3���`C��@	@ =��qB/��`7��@	@ s�!�3���&���A�v��;v�����3g������v������-[h���$��I�&�0������g�jjj"��I"�*++K:^�"�aYQQ������S�K:)A@ O	@X����0�(0��c� 0\��%�� `l�!����Bvc(�0�Mv�������p	��� ����d��U���9@@@ �� 1����6��,�
�2PL �a�M�A �`7�������l��\�SV�����@@�G/
���X1���p	b<�l��������
5�c��0��c� 0\�!�%��   � aU6(����	�M������N�r�B�������JJ!�A�A�N�S2D9(G
*�4((�H��r�+(��JJ�WD���{�[wk�g?�����s�}��u�^����}mW^��Z�1@A�! 2�	P7K8�E djH�����
��Y��2(�!��5���3]@�
�X�41�� ��7
��93F [�F��\���������D����� ��u���3{���d+�� � ��Ua(2 �!p� D�@�1��c	g��,@
	��p@���@��"!P7Be8��8�p�� ��R��&��@��F�{9g�d+@��V��p[��v��=�P72Q���n��f�@���l�@���*E�@@ n���8&@�p,�L���!!�2P7H2SD d�F����c���t@P*@c��� ��{�(p/���l��
r=nPC��?�G �F&j\����
�����V��� �#� �@4V��� �� ������%��"�5$dP�C���If��,@���pL��X��. �Jh�R��BpO����#��u#[A�G�mj���g�d"@��D�kp[���v��=�
PC��z@C���0@��Q"C ��u���3]B����p8 @�p �L���!�2�	PCK8�E@@��UJCX ��	p����3c��nd+���-@
q;���L���q
nP7��?�G [jH��\� �a�X�"c � �7
B@d�n8�p��@����A�$�)"�u#dP�C�1j�c	g� �(��Jib@�=n��sf�@���l���!n���#��u#5�A�m����g�d+@
�V��@@ ��Pd@B�FA���c�
��tY�2(�!��u��$3EB�n��p8&@
q,�L@�4V)Ma!��'���r���V���� �#��5���3{2�nd��5�-@�p;���l�!�
r= ��!@cU��� �@�(�!pL���X��.!PCBe8�n8�d��@����A��!�%��"� �T��*��!,@��Q�^��1�
P7��z�����f�@&��L����n���#��5$[A�G@�0h�
C�1@A�! 2�	P7K8�E djH�����
��Y��2(�!��5���3]@�
�X�41�� ��7
��93F [�F��\���������D����� ��u���3{���d+�� � ��Ua(2 �!p� D�@�1��c	g��,@
	��p@���@��"!P7Be8��8�p�� ��R��&��@��F�{9g�d+@��V��p[��v��=�P72Q���n��f�@���l�@���*E�@@ n���8&@�p,�L���!!�2P7H2SD d�F����c���t@P*@c��� ��{�(p/���l��
r=nPC��?�G �F&j\����
�����V��� �#� �@4V��� �� ������%��"�5$dP�C���If��,@���pL��X��. �Jh�R��BpO����#��u#[A�G�mj���g�d"@��D�kp[���v��=�
PC��z@C���0@��Q"C ��u���3]B����p8 @�p �L���!�2�	PCK8�E@@��UJCX ��	p����3c��nd+���-@
q;���L���q
nP7��?�G [jH��\� �a�X�"c � �7
B@d�n8�p��@����A�$�)"�u#dP�C�1j�c	g� �(��Jib@�=n��sf�@���l���!n���#��u#5�A�m����g�d+@
�V��@@ ��Pd@B�FA���c�
��tY�2(�!��u��$3EB�n��p8&@
q,�L@�4V)Ma!��'���r���V���� �#��5���3{2�nd��5�-@�p;���l�!�
r= ��!@cU��� �@�(�!pL���X��.!PCBe8�n8�d��@����A��!�%��"� �T��*��!,@��Q�^��1�
P7��z�����f�@&��L����n���#��5$[A�G@�0h�
C�1@A�! 2�	P7K8�E djH�����
��Y��2(�!��5���3]@�
�X�41�� ��7
��93F [�F��\���������D����� ��u���3{���d+�� � ��Ua(2 �!p� D�@�1��c	g��,@
	��p@���@��"!P7Be8��8�p�� ��R��&��@��F�{9g�d+@��V��p[��v��=�P72Q���n��f�@���l���6l� ����)SF5j$i��}�vY�t�w�q�'�*UJ{�t/��s��_�^���k�g�}����U��;�=����q�F���/�l��R�J�V�������tV�/��-Z$���C�5j�f�����3u@]�(���A 
��(d��+@
��"C@�uCkf���
��!2� @
�B��1^�4��j�JV�\�2�c����2h� y�������'��~�C�|��U�d���2s��B��p�	��{wi��m�cE���y��;VL��K����K�.r�����p�x�1��3f�5�\����+��;�Ht�@�Q�M<�F�'��}9!"�P7�g���-@
���C@�uCcV�	��
��!:�PC�g��	>�k*����q��U�f����/�l��0a�8���"?���'={�,��`��%��C��m��+�g�-������'<��{<���_|!&?f��:�#������ �J�Q�$��@��J�"�P��0)���r���
�
�BHDH��d�'����#b4��8���������^3F���O�.��u��.�Q�zuY�n]����N��^qX���;V�^-m���
J�9t�l�����SO=�{*��������x1���a^{h�f^��/4V�|"��/@c�/�' ��,���RN_�@�L!#�H��(��@D�Ia"�H���(��@�!L��!��!����'0��T�v��%�&M���_���Ec��M��n��1���wo�ux��i����k��
7�s�3�<#g�qF�>�4U-[����f���]w�%p��W$�cW]u����3~�������������y��I�^�b���94V�K��4V�@@@�7
�$�0��u#B�"T
PC&��P.@�P� �C@�uCaR	�	PC"�,�C�={���l
r��qq�U������G/^��������{��{���~��A��{��v�_���ye�O<������n�Zz�!)((�������K�v���*T� ��/�r�����x���l�"C��g�}6����Xe)XA�?h���� ��n(Ia !�F��E�(��(L
!!�\���<A���B������D(Y��y�f2d�<���Igo~�E5V��8=�������
vc�/��"u������U����3�P��y���c�My��w�����f�4#��5��Kt��4�u�����
��/��n�������7���n�yj��������|�|	>@(en�r�z"(@��`�E�E� ""@��H�E�
E� "(@
�`���{�n1O(�����K��/�o�����W�o�n����~R�lY���}{Y�`��6+Gu���WO�{�9�����������i(1bD`��y�S�.]d��1v�i�:��s�v�+���~�x���=z�(r��k�J������={J�~���i�^���n���<���v;~���8�O�j���L�6���x������\x����������}��v�s���6���YA'h�r"�L@ 
�(�B��]�
]� �&@
�Z�����n�~���	P7��1�E@�5DW>��W_}%�5���l�R�q�]��y�������s����n���m��>�������)S�4*�K��*�*>�J>i����d(�f^��/a7V�W�c�1c����_���u��F(��/�lO[�bEL���z�\s�5�x��^�z�4��^��6��=�����4��K�����������,+ ���U�@P"��%� "$@��P����I!$�P7�'��P(@�P�BB B���$��yss3p�VirzWi�6md��e���>�H*U�d��W~��W9���������������X��Y3����<u�,�MK�4V�����#�[��=��C���n�2O��:u��N�����[1O�z����^��V�Lo{���^��A���I3��#�<"��v�=f�>��c�������o�2O3�];v��f��X�+���h�J��>@JA����W"q�F�H���5����#A�F�F���u����#qjHn������'��f�F=�S79z���L��g�yFn��&{���#�C�v;~e��Yb�@�/C���]�����SO=%u����<�Nc�;��#;v����>;�5��n�j���,\���<�i����)$\4hP���L�Z�*U�s���~1��2�|�Y������<%+�T+�hu�9�x��=���u�d���r�����{����>i���`�h��a@���FAi���DW����9�!�@DK���|-��@DW������X���?J���-h�����?V�w�.��M��M��i@JeI�����r�X��ysY�r��������T�2f����;�i��O5j���o��v7��f�O?��>	�^��d������Q�F����=���$+4V%���U�@P"��%� "$@��P����I!$�P7�'��P(@�P�BB B���$���*#��;������B��e�}%�9h^�����:��Qh�����&6l����qcy�������on��V����o�f�����y����'C��	??��Ci���=6|�p������x�K���X��C @c�@�p�@K&���P7��+"E@�5DcV�	��
��!:4
P74f����5$7�r���<a�}�����o�����n�+S�L���{�����O�y�S�K��>�h��m�7���:K&M�T��L��ix�����K�����=z�+����������V�S��w��y��yR�Y����d�4V%����*~ �(�F��D�nD(Y���Bj������Dx(�n(L
!!!jHn��jc��]��Q�F�IM�j��y��B�����?�����B�
������� Qh��[��l���;�'V�7V�W%6h��#�i`�4V�Z�J�<�LK7p�@���ks2���$+4V%����*~ �h�F��L��nD'WD��Fj�������Cth�nh�
1!jHnr�jc������������3g��:u���/��BN9��}�u����v*+%�X��o���9s�|&[��-�52��`c����.�>�l�K�c&L���/�g���+����+�u�_~����I�|��G��eK{��#�c���v���/I�BcU!��U�@�"��-� �#@��N�����Y!&tP7t����(@���bB :�����������n������-������;����f��c�9�n��R��U[�nM9��+W�~��'M�4�5k�x�i��������N���a����/^,��U��M��i����?�\��+�o&�\�t��w�y����.����~I����ph��7� ��nh�q �FtrE�h��h�
1!�[���;?D��F��������&W.7V������<���+���������o��u��z����3��t�/
�Um���e��y��^��,\���)2D��o�[�b�T�X��6O�z����`������oH��]���'J�f������_�d���$8B��
 � �E�Z2ADG���\)�!�BL��n���!�Q���1+��@t�!�����U��L��2y�d�	N���4�K��t��T>��X��gO�:u���y��{�a��\}��b^��/�k�L�"�{����i��A�v;�J������~����a�������X/�6���}�;��u@(n��;��@��Q��#P����� 5�F�2F���u��s@DY������X�c�9��#,���_.w�}�${"�=9����!���8 �+�<�<
�E�v��?,��{�����7V~�����B�e���O<Q��)#c�������s���/5k����VN=�T�4�F���/�hO[�d�}���y������^j�'Z���[�<��_V�^-����6����d�4V%���X�o@%�(P��@ B��%�PP(@
Q�BB@�uCy���
�I!$"$@
�M�\o�2����
*�| '�t�l���C���e��1%���2	r�����S'{��Q��W$�q+�|������6O�0`��)[�l�c�=�n�k�N���>��h%��u�	'����nO{<;p����px �@�p�@K&���P7��+"E@�5DcV�	��
��!:4
P74f����5$7�2�U��`^n�`��'7������/1O�:����}���{���n?��3r�g��tV��X����'P�����a����O>��4o��n�����s��}��[+V����x�k��V<%��bO�AcUv!����U��@JW�����#E�F�F������� �FT2E���n��� EjH������N?�tY�fM��+W���Z������TvD�����g��2u�T;���Z��g�y�!��m�w�A$�-�x�)S�H����x��j���b^A\�n�*�]v�,[���N�*����_V�
�UE��<��! � �D�JADH���d*
�!
�BH(�n(O�!�P���0)��@��!JVC?~�2�P��z���}������4V}���r�Yg�L��;��:�f����{������#F���;�\g6~��g9���d��
��y%�9������W-v��9���<9������+a���[�'�UE����U�@P"��%� "$@��P����I!$�P7�'��P(@�P�BB B��%+��n��Q���_(r�:��?���TwD�����4R�=:fj*T����yRU������~Z��s��k����gK�N��M���iS����d���v�Y1O�9s�T�V-f���x���>i�J��>�h��%�D@���QP�	����u#�I#d	PC%�P��u#"�"L	P7%�P��5$�I�X�]�v�7�x�F��aCy����v&+Qj�2�D4O�������j������^�}��7������\s�5|�U�L��6�&[�������(�#������ �J�Q�$��@��J�"�P��0)���r���
�
�BHDH��dE4T�Te���e��Q�����L>�z�)�����t��eR�J���J�k�}�Qi��u*�ft��y�d����j��B���>}��W\!���+t<��u����7�,��_��:�o�Q�V���p�}a�W�~�q��G�f���r�m�%:�} ���U�&�i#���F������3D|������!�Q���1+���n������!�3D|�&`^��r�JY�z�����5jH����|��Mu����+W�X!�X5k���+�/� �������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt���@pE��*W2�<@�p�@}�u�
u)! "%@
�T��
i "%@��T�u�u)! @������3i@��(��bB@�uCw~����">�	P7�����.@���!�C@�5Dw~�@Wh�r%��@@�7
���P'@�P�B R��H��`P!@�P��@ R��H��`P'@
Q�B@�I��L;�F�(���Y!&tP7t����.@
��!�C@�uC_N���
�">tPCt�����T��.�IDAT��a�|���R�Li���}rG�o�.K�.��w�qR�R�"�o���;e������_�>��#x�T�Z5�/��{�l��Q���K)[��T�RE�U�&{��GFc�=^|�-cp�!�H�5���v�s�>�A��i�����k�T�^����
>_�@@���� ���7
JS��F ���h����"@
��	�@ :�����H�"@���	�@ ���h����McN�V�d�������t�A����?�]6n�89����"��W�Z%#G���3g���N����K��m+j����e���b��_*W�,]�t����>��������l��1C�����W\!w�qG��Jl_�s�>��e������%K���m�b�+T� ����_�~R�n��cl PR4V��4�� �@1�((�� PH��Q�� ��5$
,NEO�����n�+�� ��5X��������"?^�;N��j��Yb�{�%��U&L���_U��ij���g����1�C���c���g�-��������~�=^�/���/���7��vcU�s�<�O?�$��S�&JM�}�;w���_��
d9��*��� �@:�(HG�s@�P7� �@6��l��7�n��Y#��u#=�Ej���	<��2b������8���������^3F���O�.��u��.�a^��n��B����������w�^�Z��ic��s:� ��uk����z��T�}���?5�3��b�c����<
����_J��*�9k�W�^��s�����V�Z���5k�>�}��2j�(�OJD���a�K@(^��q�
P7b=�B���!�yq6���o�����q�)@
���5��i�<�j����5��T�v��%�&M���?H.�6m�T��j�{��^�g�v��!�����p�
1�<��3r�g���7LS�y���4k��{�� ����UW]%�������3�3��b�}c��yb{�MU���l�
{���{��
������v�*������}�v�	p��w���������&>�Or-@cU��@��Q�"�!���nX
V@ jHh\����
�L���q	Xj��`E��������`�P0\�;.�����?�>}���������\4V�s�=r�����4h�t���n�+�O�2��{��'���3����[�C=$���~�zi���}"V�
d������?9���q���-[d�������w��l�������)����U������=g��5i�D�O��<y��}���&���k��o���T�!��r��� ��/�����������?�	PC���j\�n��u��@v�������!��t����2d�y����j~�E5V��8=�������
vc�/��"u�����3�]�3gN�&(?&�4��c��������a�f���iF�5k������iF�����)��_|��6+a�����o�M7���,����Mc���~*g�u�?����r�����d+a�Y�x7n����[�/�P��c��\~��2w�\{����|��v�r)@cU.u@�4�Q��"��'@�����PC���Z��n��wf�@6��l���!����{���"����+�f�����b^C�/�����-[����������Y9����^�z��s���K�.�*�D�i(1bD�!��.]��4����s�=7��l6��������z��Q��k�������={��~���m� V�zu���iSy����v����q�����A�6m�=-�����{�=1
<�K��}������;w�\l��=9n%������}�3fx����|�A��������^f���5&<���,@cU��� �@��(�T��pW���n��9aPC�Pd��n��of�@��0w�!��>����W��Q#;d��-�����E���Q�?�6O�9����v��mc^�g�4x�`�2e��F%I�Xe^�g^��/
6��e^Ug^��/a7V�W�c4M.��)�R�n]�e�|�����+V�����[o�i��'Vz����|�P���_k�LC��T�\����}|���n)������}<���_|Q��O��I�&�y�_�%���4���<JB����P�;@HA�) q
�P7b8�@�4�!i�q:u��+@�HW��@ (@
	j����k�,��N�S#����MY�l�=��GI�J��v��������m��m�!�$*�����7V5k�Ln��F�����Jc��O�>��uk�c�=$�)&��*����S������������z��5�0e����'O����4�M�4�7~>��#r�m��cf�c�=��{<�K��*�T0����cG1�f)������}<?'�|������>����;�!8��h����@W��z2.P7\�2sD w����22�*@����2/r'@���-##��5$7Y��\=������=:4��h����_��3��M7�d/9r�t���n����5KL��:T�v��oz�O=����:u���O����w��;v��g����\7V�k�N.\��m���|���9$�4hP���L�Z�*U�S���~1��2�|�Y�����3�Up����s���
{<?�u���yR���^Z�!������������i~o�A�_����~�m�Or.@cU���@R�FAjN��
P7��`
����o��.@�p���H_����W �����?-�\s�����y�X����}�w�.�5c�b�LR*K:�UE�����������+��7�4MN�-c���;����f��T�F
o���o�q���c�~��}����d������Q�F����=���$+��X�����$����S.��B1O����`����Or%@cU�d@�4�Q�&�#����7�Y	�w����'�N��I#��u#+>.F�yjHn~.6V�����'6U�^���-[�+��A�z�G}��yE��Bc����7��a�7����s�=W�t�~cp����m�� �� ����_����<�����L����J�V������K��������_�d%������NF��p�o��V�O�n���O�j��vp�����8������tH���o�I�����������7���{R�bE��r-@cU��@��Q�"�!���nX
V@ jHh\����
�L���q	Xj��ue����
p�[�4��	K�����7�|�\��v�_�2e����o?���b���������>Z�m��M�����I�&;=�8e�u��4��_���������+�!Y�~�]/j�<��|���W
�'��%����H��Nc�y�W:�������^��u�z�������2����-s|�����Y��S�F �4V����@H]��[q&���
~	 ��5$=�E�M���yg�d#@��F�k@������O���k�4j��>��V�Z2o��B�]t���?����'�|����>})8H�L3��M���S}bU|c�yUb�
�1���Jc��U���3��t�k��6'��/I�R��U�
��/I*�C�����C��G�9��[n����1��@�$h�*	e�@��Q�� �@�u#��
HS��&�#��!�7�i��������F���6V����O���.�9s�L�S������/��SN���Um�����tc�yU��9s�|&[��-�52��`c����.�>�l�K�c&L���/�g���+����+�u�_~����I�|��G��eK{��#�c���v���/I��Nc�i31&Z~��1O������������4�E�u�a�Y�x1q;v���&g�|��}��<�ur!@cU.T3'�w������]������C=T��c���O�xM��@ ��(�t��R�n�
;_�@�PC�&�L��n�5_�@�P7�&�L�R�����������n������-������;����f��c�9�n��R��U[�nM9F����~�I�&Md��5�t6l(/��r�S{��e��a����K�j��m�pe�����?�r����	?�.]*��w�=f���������_�d%���$�H�+�x�
9����]�{���+
�����.]���}��n�!��uJT������e����/�,��{��9~1�"�;wn�����\s�����S@M�r���?�j������{����;������A�kn�uz�9�n���ApF��L��(�	P7B�d ��n8�j&�@N�!9a���h���e��n�������y �y-��u��c����3fx���_���i#��-��e���p��b�8d�?~�=o��R�bEo��;�<`�������p��kW�w�����Y3o;����$Y)������}�D�0W����n������r�%���|"P*4V�
{�~i�V����*����^��m�����7��lG�~����D�����xM�u��t4O�<Y��{�d�y1�<^��9�y/����O1D t�F����S����dE��
#� ��u��t3YB���N�
�zc�y:S������L��i8����������g�z��)S�N��1O�*�
AW_}�_��f��)��wo;��i��A�v;�J������~����a�������vcU�s�>^���%K�C��m���C�����l P
4V�zie�����;1O�Jw)����O>��N:�PS�!�"[�l)��i����*����8��/� ��7
��93F [�F��\���������D����� ��u���3{���d+��z��v��!Gq�����������dOd�'���0d^ifL��b���E{��?,��{����'m�?+���[pw���e���'�(e����c������9�����5k��D+��z�}�P�F���_�����5~f����+�^z�=�h����<��_V�^-����6����d���X������y��y�\p1O�3MU�k��f�R�����K���c?����0��
>1�V�Zb�������1{�l��Fs���/����91n�e��1��a�Te��_L������w�����{���^���������|j/+� ��7
��;�F �F6z\��~ ��u#]1�G���F���^����Xed�M=*T�>���w�M�6yp����S4b�#%�X�$�"������=>j��B�-���+�|������3O�2�&�/���{��)��������n'Z	6j�p�	���������d���������T�^���d����O>�vC�?&��B���\�����)O����/���/�?��z�����_�Rc�� �2k�,i����c�cY���{�}f�<f��3��5k�x���w_���omG�����8�D��Q�v��=�P72Q���!�� ��u#U)�C_���K���PC2Q+��X�h��W��)�Q���v����>��a��r�M�?1�3�S��;�<;b�>}��{����<���q�v;��(4V�?�+�	T��}��cla�^���k�7O��;w���<u�����_{��2p�@{m.��<�Fi7V�b��sb����Q���k���<���bY�$@c��l(����~����������'Q%Z�t��u��c�����)��<�r���r�8U�#(��|�9�{��I�
��X�x6xV@�in8�~&�@F���������S@�t���q>P7�
 �@6��l��6��y}����n�<������


��S^�Bc��L��=���������>��{
���r�A��E�
��d�����k�9r��W����.�L�-[fw'za���/+b%������J�������>*5j��7�~�=g��
<X{�1k��Ay����\�rv+h��JK&���G7n���{��1���+�w��MX�	S�w����l���/�d*�������5�9���+O>�dy��w�i�������p�����-@�H��@  @
	`��)	P7Rb�$P7�"�@������ 
������!C
]a����o�B�S����O?�T�:���i�y����C��|�r��~S�9y���pa�����r�i���
����W����k/o��j�s��1MU��a=��W���x��x-�������7�9k��?�V�Z��t��M;���}�6�>������l\�!�H���D*��%K�H��
��y����ke������+��o�}����6lX��u��V�����g�4��v8���+��R�_T��<mk����6�����' ��~ ��u#]1�G��5$��:�"@�HE�s@ (@�j���
PC���t6n�(���/t�y����^h�;��Xe�c�F�35�
6�:6��*�F��b�?���1��={�t��)��[o�����]�xq�1�t0�f�j�����7��7����*W�s�:������Y���-Zd3�"���U)S�s��]���SN����SO=�u(���e�#��Y3Y�r����u��I�����N�#�8���!�����^u�Uv�[o�U�=���+��w��r1���[����}<?f>@n�@�t���q>�!A
�@ �F*J��A�FP�uHW�����+��kWy��7�e��/�����d%J�U��@�iQ��~{�S�]�����Kb��ly��w��k���S��o���7��xE}���*_�s�6���s�1��F������*_������$�#���H�1�o����)S���L�0A�_>��<���F��G6�b:����������{��A��U�V��Gi�����r�%��Cf���.����g�f��F��?H[���6 �@@��`R�n���I �n0XE���!i�qA���*����F��^}��01���U�����3��R���Ne%�5}�>���n�:�K3:g��y2x�`1�&��(�o�W\q��+W.�p�m����o�Y���-�u�7�x�T�Z5��B������������>���?���nKtZ��{���+�iq���?kg�yf��q>	�X�[�^��/�x�.5�_�.]��Q��q���gOy�����]?���e��I���'���O���.���,��y����c)��L�W�.]�M���1��p����+@�HW��@ (@
	j���P7RQ�
P7��#�@���t�8��������V�^-��_�F�����/���;w��^)�b�
�a��F5k���+�/� J�"��a�W��|)�X�2�'N�8QL����i�F�O��o�y�i����S�����^s�QG%�S;��n�������X���k�'[�~_1�_'�x��5v�X������}<4+ ��7
��	�@��������� ��u#%&NB��u#��*�-@
I��@@ 4V�5�C���o�{l��y|��w�<Y*�b:Q��s��S9��U��7�J�*y�6o��=Fr��11�8P�j�]~��2y�d�m��Z�������oO3O�������}<4+ ��7
��	�@��������� ��u#%&NB��u#��*�-@
I��@@ 4V�5�C�'S�w�y6�-Z��o�i��Z��a���WO����P����r���&�������7�|��g�����9�_Ri�2��<����Kd���r�M7y����Ag����_��gA@@@@@�U ���|�#�B@�4V��K�Du�����i��w���[��ys�]���?�,_}��T�\�{�n��[�j%o���=��g���.������+��'���v��%e�����V��}i���=��C�y�Y��g��`�����@@@@@"%@cU��E� ����Uy���'�����}f��U�������� �A�\����K�����a��y��_�_�}�v)_��=7���E���SN����Z���Ag�BcUh\� � � � � ����*R�"X@�J����Jg��1�H����}�������n���f�9���������������K�n�}��E�V�?��W^��m���b^k��M�H�g�f�����_k��K�
$�n$��+@
)��@ N���&+@�(��@ �5$	�@@��h�*1j�_t�E�K/�d�|����a��v;���Q*V�h�m�����X�e��	��kW{��w���O>�n'Z;v���������5j�mk��
8/��� ��u#m2.@��5$��*�$@�H���@  @�`��iPC�&�@������_~�E����H�2er0U�,J���+W��U���^�:�<|��Wb�@�i�&�����c�������?�:u��������{�������q������?.W^y��N���G7n�=��O?��{��mk��
8/��� ��u#m2.@��5$��*�$@�H���@  @�`��iPC�&�@��@��~��71�p3
.�w\����3G���~1O%��q�w^�
���]}��1O5*rd%�x�b9������w�iR��X���d�����[o�%��7���V�L�"�]v�=��CI�n�����7����o�u��Y�x�	��h��V�4w���~���>^�����.^��o�Y#��u#]1�G��5$��:�"@�HE�s@ (@�j���
PC��|@��@��U��e��Q2f�/�-Z��o�Y(��;w�y��#�<R���c�}��i���g����3�IO&�b��������9y�d�����asm����c���4|���P��}f��g�-�A�_~���T����i�=��S���n�IF�i�����b�e��F���g�d,@����@�wj?HW�����#�u��d#@
�F�k@@ ,�P��N�*��������m���1���y:�����O�c�����M�D����W\!�&M�#������Y3�]��7�|#tP�i�	d'�|r�>��{���}�����uky�����Y�0a�t����������K��e�>����?zO�2O���U�V��G�oz����	�
pV�����#��u#c:.D���!�@ ]�F�b���
~ ��5$=�E@��Bk�J�Te��Z��|���1���;7�S�9������*�|���u��������H[���q�������K�j��v*+��Y&��=���{��������y���>h���xg����;������o����2�\�r�����f�`SU�����f0~�>^|�l#����(p3���l���q-PC�
 �@���t�8��@ jH6z\� �a	��X�e��	�4������?_n����n�5pK�.��j���5����������^-g�<�/�z��{�����3D����O�n���h���S��]�m���5�33���+�������Z������w�}������~�c���r�9�:��eK1��`���c��k��%r������7�����'�+��ws���T�����!�����;@�t���q>P7�
 �@6��l��@���j��a2p�@�ipy��W�Q�Fv����'�H����M��<-)~�i����I����~�����k��N�<Ej�}���4m�T���c��Y1�����c�~U��&���R�5���7�|S.����U��f����z�U�������mpK�n���"�u#E�@�]j���g�d*@��T��pW���n��9aPC�Pd@�V ����u��|`cY�v�T�^�nW���:v�(�&M
�b��������j�M��i�a	O�����^���x�
7�����o���s�Ny��G�_�~	��LT���e���r�G�4��5k�{����[o%<�G�^c�A��x�N�����6�#��wr�LK���$� ��5���3k��nd����)@�p3�����!aI2 �d#�uc�y���lc���������+��~���7��~����|j�y��i��f�3f�\w�uv���w��^��z�j1�L�+W�^	X�k�R�����*+W��������+$�<�H�T�R*�:G�x�f��7
�>�L�����2 N	PC�J7�E �F(���S�
���d]�:)"� �@Y7V-\�P7nl�z�����I�\���9��O?��{�<�����^C����np����&� ���7
�*�L��n�3_�@�
PC�6�L��	P7rF����u#oS��(jH�0�% � P�@��U����\p��k���j��i��+�U~g�u��e�g��e�����~��r���?d����Nc ���FA�S�(q�F������5$���d(�F�0�%��u#���d(qjH���� � �@ ���'�xB���J;��-[�4C%Z���a���������s��������7�(�F���� � �O�(��l2JF��Q2�|�*@
���2/r'@���-##����|�,�B�d�!%��� � �@r���^x����K���[�N;�0�\9��e���v����SO���+����v�y
�y  ��(���|�*sB �����2:�.@
��3?��n�o����u#�3����5$���� ��	d�X5w�\9��3������r��'�m��o��<���>�����<�*����'O��/���7n�t���n�� �@>	p� ���\(�F�8�-��5$_3����u#w���@�
P7�5��������3�� ���n����/c�P5h� ����]�['L� ]�v��/��b�:u��N�r�
7������9s�H��M�6+ ���7
�)�����n��3��@�
PC�5����	P7rg����u#_3��(jH�8�- � �\ ��*3�q�'+V���i�}��:�J�*�o���_��c��5k��}'N�N�:�����k�J��5cv������^{��c@�|�FA�d�y Pr�������GjH>f�9!�[�Fn}�|�n�cV�%'@
)9k�	@����<���[o��r���zO��]�����O��gOy����q�|�a��g�}���������s��E�������)S��mV@�7n�[F���n���o@ ��!��]��@n��qeT�Y�����en�^��{c�@���j��-r������[c��4P��3'2Ds�����O��_����O�2�>��C9����* �y)����L+�B �����28y/@
��3AB�n�N����u#�S���5$��� �)
��Xe���W^��m���u������_����s�k�z���}�F�����;��7�D@ /�Q��ieR�T���S^G ��!y�b&�@����I���n�}�� 9������@@ E������F�@IDAT���Uc���U}���2F�&*��%���J�1�R2�tQD���"��K�K�TB~J�P��rk��H4����Q�{��O�\;�}�g��|��e��>g=�u��n������EBZ���#]�v���7'�m��2s�L�Y�f��.]��SO=���w��r��wKYYY�1v � PJ����k���U+��
 �J���J�� ��5$%�A��u#��:d"@��D�s@ �5$��@@�<*��Xe���o���������u�d��mr�A����/�;wN� ��O����|�j�d���r��W���D@���QP��erD��QVE�j�3�f��&@����pF���L��(����A@@ K�����~{�i�2�z��r��GzO��c�=�qV@(un�z���P7�7eD\����m��@8��p��.e��"�5$|SFD@���4Ve:W � PZ�((�|2�C��Q�|�+@
)��23
%@�(�,�"P�����-3C�<�!���w � ���h����@('n�4_�@		P7J(�L�"PC���W"q�F�H�A��Qt�����P2�
 �(hc�'�|"�������^r�!�x��"t@
*�����28%)@�(��2)�M�Rn�|%#@�(�T2�M��Qn�|%)@
)��2)@"'zc����e������/����c@j��%�
�>}��n��s�
@\�F�����@������v
PCvZ���	P72s�,�)@��i�d/@
���+@@ |�P��M�&��w�.�l���<��c��E�]��	 ��"��W2�<O���%#!��5���3g��n�����(@�p1�����!�Y2 ��.Zc����/�{��8�j������/�����p" ��,���R�.sC�0����2*�PC\�4�D <�Fx����+�
W2�<(�5�0��� ��	��X�}�v�S��l��!��[�n-M�4�����[o%����L�<9�6@pU��f�y#��u#w;�Dj��V�����#�u���#@
�G�k@@ ,�P����''�tRLL�����k�������e���2v�X���|��WR�V��}l � ��7
\�:sF ?�F~~\�����������q�P7\�0������� � �@(�U]t�<��#6�{��7�k�v�*��O��������q�v�@\�F���g��.@����+@�'V�@���o���������?�	PC���j@G ���V�Z��%K����m+,�
*$���w��f���c#F��a���mV@pU��f�y#��u#w;�D��
 �@���G�f\����
�����!��q5 ��#Jc�>��#6l�"4h��3&mt�����{�y� ��p���_�G {�F�f\�;�!;-XC����9q��n��`
���do��"��W_�����s���r�AJ^ ����������=��#G���_��a���b�
��.]���i����A@\�F�Yf��+@����pM��Z��/�P7�7d\�n��q��@���p=
�x�m������e�����ys�={v�)l#��,JcU�	T��z�80-n�d����9�:u�Y�f�=�� �� ����W���'�!��5���3_��n�o��&@�p-���p�!�z2�W\q�<��s�n��u�Fv
��X5n�8�����oH�v��g���?���*	�@��F��ig��%@�����p^���O��ndM�8/@�p�'y	PC���bv)p����k����Gc�.�8�����3u@]�(���A 
��(d��+@
��"C@�uCkf���
��!2� @
�B��1�4VE9{���)@cUyj�] ���FA!�@R�FRv"�@����8
�u�R��
P72��4H*@
I��NB��*4JB�������@�#������H�"@���	�@ ���h���(�u���|7��nD3oD��j��L�F��o���7{��T��T�V�[��m������f����o�V�Z��Ai���T�P!f�f��������_������~R�~}9��C���,��t?���|����?�{�b�1�4j�H*W���r{���r�J����e���^�x�p�R�vm�X��=7��i�&��c����S-Z�2�;c�o�\W�z��%1������Gy�[�n]/vc�+s��-[����U�V���Xo���T�R�3h��Y�w��S���b��� ��Q�`2�nd��I �B���� �R����� �B����� ��5$#&N�P���_�=zxg��YS�-[&�g��!C����F9�����G�����;��K/�u�]'���O8�I�&r�����L��F&�}c����R�g�8P���J����������O��#��=���4��.]�H�~���~�\f�v��[�.��o��VF�)�'ON8������<�=�����9k�,�����}��k���r���/�����{�&W, �@�Bo�����O�S�y�w�y�����;�]�v2u�����M�p|g��O@�.����g��(�F������5����\(�F�8�-��u����\(jHa�����'$f��F���z�]��U�1�<��,�Y�4T�����N�?�Qj������{
E����/\��{����n��Az��-o����k����S����k��sG�%'NL��l�y"�SO=%M�6���U5n�8��1����y�����V��q&�	&H��N�7Vv�abr����}�]�}�������@��U������~!���@(�7
���w"m�F��G�[�R���DO����1��n;|?���&��] �|�Za�a���#-�����]l�Jve����W�-_�<��i2�������aC�5x�O�:����'I������$�>����}��3O�2�������'6��w�5���W_s�3�<#W]uU����;N:� �	W��s���9~��G{�Uf���[�[�nb�z���?��d����������?3���}��R�^=���O�W$�����3��3��K��*�?~�W�^r�M7��f(�@���.]����(r|) �!p� dP�C���If�P�R@\�F�D�%�X��@��eh��&�4V���y����C1OH2K�,s����������_��������������������_J�V���i�z��'�e����^7n�=�|�| eeev�ym��y��ms�<��Q�F��Y1O�:��S�F1�@�&���?_^{��&;��=��������s��y�����*�G��}����n^1h^;l�����<���������4Rs�1^��y=������96@��4VS��F@  ���� ��u##&NB���0�F�����4@���0�F���!1e}�U;��.�^z���Y������1#f���>*'�tR�>�q��7�=��c�����1�N�Q���o���M��5�q+�f's�<U�N�:�Y��m�yT�>}d���q#������7�h������%�]������k'�=��T�P!8��n��e���v����\x�-�H����c �E ��*StMm�����[��o�B
�#� Pn��/E ���H���(�5��) "'@��\���P7��@ ��������_\��i#O?�t������s��d��������~�a�iQ���C����e��b^+h���)�?��������o��������������-
4��yu���S�r��v����?����}�����u������y�4Vu��I�[��%����~�?����O�������Xe���t&�bV@�"	��XU���Z@JJ�%�N&�@�P7���/A�d�!%�Z&�@���e`JV��Q��eb��5�0�4V��:d����+�"����{����y���A��vp�����^%��3O������i?���L�S�*U����D*�u�m��C���)�_��������4k]}��r�q���{�����sW�U�5�u���c�k0�'��b^�h��r���+�������o����Kb��eOdP$@c��d
 ����(p;���\���q
��_�O�T�����!��/@��%�D�\�!�����~1z���c��I��,Y"g�q�=f�LR����>�����C���	?����
6���k��O>���W�|�0���j�)S����^���l����|��^�U�-���,�x�������+i�����f�������q�F{��g�J�����*�*��={�sYA4
��X�r�J1�4�o�[�Q���� ���Q�:=��J�������D&U�����T��nD&U��JjHa�Bc�/���M�c�9&)r|cU�����W��p�	vW��*����3gz�\�l�l���^�n%���<�j�������]W�jU��Q\p����d����S�����]�~�m�����Xe����i�~�#����*���q��I���+c"� P��((��29
"@�(+�"��5��T3QB�n�F�@8#@�p&�L��PC
�*4V�������<�)�vc����*}���y�S�����7V����1Cn��Y�~��+�g��B��������+��"����={�4o��;=��j���r�a�e:�!�E���(�|) ���(H4a��n���(������($
P7M�����}8���!�}r=Jc�/r��X�t�R���S�t��][�6m*�r�4k�L���^z�%4h�=?Uc�9�<���o��?����{���3f��}cv���j�����kW{�q�����:w�,�j����o�2�m����V@�4Vi�
1!�8)��'����K���#��5���d-@����p^����O�������b�~�)���c�=VV�^m�q������M�6R�Z5��_1�4O���t�U�9�������_������K�z���7���]5V}��gr��G�k������z���
�U��q
[���bg��G@�?�(����
P7��|
PC��#�@&��L�8����� ��5$[��������h�����b^7h���k��W��2Y���{�>�i��m������U��4=u��]*U�d�
��������e�L�������|_�|���3�����|��w��/��:u�x���YS*T���OcUJ6 ��b�'��@��F�[�f��!@�C�1pW��n��9�
P7r��:��n��{f�@��0�0�U���i��"����������v����gO�=��X��/�%�\b������k���n��|��7b�pe�<�/f��@�L�8QF����d^�jy����o���x�	9������u�������&M���/�h��WN8�Y�b��)�>��q�v;~e���r�����-[������f2�,+ !�"�,BE(mn�v~���nB�1pG��N��)a	P7��d��n��kf�@!�!�Puw�b4V��7O.��B�~���z��;+�~���F�E�����9SZ�n��[�d��q������.��w�}�=������SO������x��v�W�^2w�\o;����i��I����5|��f�*U��}���C��C=dw�w�y2n�8�Mc��`"$@cU��E� ��-�����/�C���B�2&�PC��53E ,�FX����;�
wr�L(�5����Y���/���6E��3f����:���>��Y�=����_��o6�L�"��������O���O�����d�����_��^��?x�M#G����k���������<��������K�v��F��:���}�v9��3e����<3�yzV��M�>����o�]&M�d����u�a��}4VY
V@ B4VE(Y�� P��((��2;
!@�(�*c"��5��\3S��n�%�8�#@�p'���BPC
�����h�2�]�t���)�(��Q#�����f�`�T|�F�!���n����/��n�+m���:u�����/y��wb^'h�����,:t�O�>��/��v[�>��Q�V-o�4Uu���?d?�S��+�n�*o��V����I�]w���O����b8�@����X��q�����,�;c�, ���7
J1��	��
P7
�����5��3��_���)#"P���R�0�C�������6z�����K9���������Y�{�_��=����7���g��>a�=zt��TU�V��^e����?�X���l�H���e�����*Y�zu���v��*�X��X/�6DA ���BN��f���+@��	p��h�|1��nD6u��
j��4��nD*]��
���4���D6u*�?�t����6g���W��?����{1Ow
��/x�Y���O��c���x�9�����Y��?���&o���1��
��'���4B���O�O���w�}W��k/�mV/^,c��Mx�R�����#��!C��}p��|_|��y�_��]�������^���y��'����x���z��'Y%[�{�	\&/
6Lv*�@54V�I� ��.���������q�����`
2�nd��Y �S�����5�^���W���i�|��g�f��������:H��c��7O�Z�j�|���b������f�7��MVc~���a��\�����5j�����|�i,���~�}�~�������A@@��UJCX ��	p����3c��n�+���-@
q;���\���q
nP7��?�G _jH��\� �a��X�����w�%�q�H�J���@�R�FA)d�9 P�������(5jH�e�� Px�F���JM��Qje>��5�|��6@H.zc��q��4W� � �@v�(����@@������������)@�p3���|���q-PC�
 � ���4d�@�Y��@ [�F�b��AjHP�u�D����� �@P���`���d+�� � P�
��� �� ����������>y
PC��r�n8�t��@���<���!���> �Jh�R��@@��@ [�F�b��AjHP�u�D����� �@P���`���d+�� � P�
��� �� ����������>y
PC��r�n8�t��@���<���!���> �Jh�R��@@��@ [�F�b��AjHP�u�D����� �@P���`���d+�� � P�
��� �� ����������>y
PC��r�n8�t��@���<���!���> �JBi����+��������[79����L�0@��7
��+"E@�uCK&��h
PC��7�F����b���DS����5Z�!Z2A ��-Jc����@�p�Q�#� ��u��l3W����o����u��3��_���)#"��5��l3W@�
�X�77D� ��7
K8�E �F����������Q���#�!��u���3uB����� � ���Uy2 ��p� GFA�%��K�f��/@
	��(u�F�g��!�u#|SFD�%j�K�f� ����Jon�@�1n8�p��@����!'��#��u#G8.C�a����g�� @
	�!@@ o��&d@��FA8����K�
���\_��)#"P���R�0�C |�F�����K����\@�+@c��� ��c�(p,�L��! 2PCN>SG G�F�p\����
����A�"C � �@�4V�M� ��#���p��.e��"�5$|SFD�����a��@����M��!.e��"� �W��*��!2@��Q�X��.!P7B@d��8�|��@�������'��#�5$D�@@��h����@G��82
.	P7\�6sE |jH����@�P7J=�������2".	PC\�6sE@@��UzsCd ��	p����3]B�n���8,@
q8�L��9�qP7N>SG jH�� �y�X�7! � �7
�qd\�n��m��@����M�R�n�z���P7�7eD\����m�� ��^�����@�F�c	g�� @��!pX��p��:9
P7r��2�n8�|��@��@���*oB@@ n���(�$@�p)�����!��2"�.@�(�3?��n�o���$@
q)��@�4V��
�!�8&����tA��"C ��5���3ur�n��e8,@�p8�L��!! 2 ��-@cU��� �@8�(��QpI���R��+�PC�7eDJ]��Q�f~�/@���pI��R��+ �zh���"CpL��%��"�u#D�@�aj���g��(@����pX���p��:!PCB@d@�[����	@�p�Q�#� ��u��l3W����o����u��3��_���)#"��5��l3W@�
�X�77D� ��7
K8�E �F����������Q���#�!��u���3uB����� � ���Uy2 ��p� GFA�%��K�f��/@
	��(u�F�g��!�u#|SFD�%j�K�f� ����Jon�@�1n8�p��@����!'��#��u#G8.C�a����g�� @
	�!@@ o��&d@��FA8����K�
���\_��)#"P���R�0�C |�F�����K����\@�+@c��� ��c�(p,�L��! 2PCN>SG G�F�p\����
����A�"C � �@�4V�M� ��#���p��.e��"�5$|SFD�����a��@����M��!.e��"� �W��*��!2@��Q�X��.!P7B@d��8�|��@�������'��#�5$D�@@��h����@G��82
.	P7\�6sE |jH����@�P7J=�������2".	PC\�6sE@@��UzsCd ��	p����3]B�n���8,@
q8�L��9�qP7N>SG jH�� �y�X�7! � �7
�qd\�n��m��@����M�R�n�z���P7�7eD\����m�� ��^�����@�F�c	g�� @��!pX��p��:9
P7r��2�n8�|��@��@���*oB@@ n���(�$@�p)�����!��2"�.@�(�3?��n�o���$@
q)��5������U��B�
��M)++�z��}��,Y�����C�=��3�1��`��m�n�:���/�W�������R�V�l������C6l� �}��T�XQ��{o�S��T�T����J�����o�)��n��R�~���l#���4V9�|�� �K���A4DA���,#z�!zsCdh�nh�q!�W���77D�@�!Q�1����:�����C�wl��]�*=��w����+g�yf�Cd|��+d���2g���k�4i"�{����:+�X�_��L�8QL��K��5�g��r�UWe�p�x�1����g���^����e����Nc8*@c���g� ���Q�/'D��v�����!��Cth�nh�
1!�[���;?D��vj��_2�Q�FyME�1�;���j��yb�{����U?���p�
�W��4h����7�q������[�n�e�W���O>�k��R�J��������
~�]�VL<~�4VuXG#@c�@�p�@I"�	P7"�,BE@�5DaR	��
�	"<
P7&����5$B�"TO�����1c��h��q6�U.��]���Q���Y�f�e�]�]f�^�z�f������N��
�^q�p��+W��N�:�%����k�����}���S��U�����x1��g����<
����_h��%�D_��*_�O@�,���"'��G ���&��P$@
Q�BA "���$�0P$@�P�BA ���&���M��yR������8��������)S����O��U7n�f���|W�������F��[��/� }���9��'����?>f��a���.]�o��'�(��z����>b^�h�]|��b��_����7c>�/f��7,X ����i�2��X/�6�X�o@%�(P��@ B��%�PP(@
Q�BB@�uCy���
�I!$"$@
�P�u���^sN�Y(�a~��j�Z�j�0@-Z�����j��qr�����:t�����n�+�O�2��{��G���3���;�}��'eee���n�:9��s���V�*��-���+���x��7m�$7�t�<�����v��*K�
�G��*~
 �(�F��D�nD(Y���Bj������Dx(�n(L
!!!jH���`�_���1B�z����7��T�U�)N������t���X��?H��M���8�y��W�������&N��o����7�����Y1�H��������4�h��w�7��B��s���f%���������5�\��,���Ic�/�'�4V�|"� Pdn9|=�nD0i���"j��d
�nD$Q���"���d
��D0i
C��c��'�����.U�T�7S~����������^��T�X�nw��E^�u�mV>�`i���L�>��_�d��*<�#�b����#b����gO�0a��o��N?�t����;��3�y��W\�r�O?�T��mk����W
d�M�X�z��v�v�������+&'���W��-�������=�?��o�-g�}��i?(��v������.����� ��4V9�f&� nD!K���.���|
Q��D-c��@���� 5�F�2F������GT������M�66�SO=Uz�!��j�<�j��I��k��&x��>���b^�g�r4l�0�6m��F%I�Xe^�g^��/�[���e��+��%��*�*�`��g�����K���Y3�e��9s�=��?��w���r������V������r�J���x���F8��/5k��rl~���o��Bc��`�#@c?@�p�@I"�	P7"�,BE@�5DaR	��
�	"<
P7&����5�0������8�Q+�[;��w}i�N�d�������_��sO�����?�a�f_�g�De^�\���O<Q���j1O]2K|�R&�Uf�H���R�J�Xvc�y���3�t�MMvg��y��K/�d����
*x�S�N�����c�=��L�����7�h���7n�m�=��%~c�y*�i�����'���4V�J|"�@2����@�"p���|%�nD<���@��!EN_�@�L!#Pd�F���#qjHa���_��%�[��s�F��g�V9\��%O<��\s�5���c�J�n��v���y��<��_n��&������}>��c��iS����l�^}�U��u��r�)1�,tc����+o����yj��e��SH�>t���'}�F�����;��;�c�/.�
��I?�S��O�2�V��v�wn����Y�F���/]�v�=�����}�X���	�X�& ���FA���^�+@��n��
�
Y �%@��V��
�

Y �+@
)L�\l����o�Q�F4�Uv��Vz��-�?���m�LR&K6�U��+tc�I'�$��/���y��b��v�L�0AF�mO3O�_���=r�H���{���>��>	���[Y�x�t����?~�}M_���/I�BcU!���X��@%�(P��@ B��%�PP(@
Q�BB@�uCy���
�I!$"$@
)L�\l�2����3Ol�W�^��M��+��A�z�|0��T;��Xu���������m��2}��T�����������/�l��,�	^�b�UVV�o&�|����C����Q��G��v���/I�BcU!��U�@�"��-� �#@��N�����Y!&tP7t����(@���bB :�������*���.]�X�k��V���*���L�6M����o���>*�	O�.Qh�j���l����R���e��)���i�2
O�2k�,i����y�W�s�=��u����T+��V�����j�<)�,a��G�O���pxb�@�p�@I"�	P7"�,BE@�5DaR	��
�	"<
P7&����5�0�r��j�����M���8@,X������^�z�-o��U��>������D���Y�f�q�F/�L�X�Xe^���eKo����e�X�b�
9��,�
7� �_~yA��_�f���48B�X�o@-�(��	�@ :�����H�(@
��bB@�uCw~���
�Y!&�#@
)L�\m�2�w�q��z��v��9��iS��v�Z9������W^)C������wc�O?�$������tK���F&�l�:�����'�Lw�w������/�����+����/�u��}����I�����r����S��#\p���x�K���X��C @c�@�p�@K&���P7��+"E@�5DcV�	��
��!:4
P74f����5�0�r��*�q���.�a��Y����[n���=o�<9��C�v&+��X�y���c\�|�T�^]�=�XY�z�7���[���3w9�{��Gn��f{��E��N�:��i�2�W��j�*�\�����s��%r�g�cf���;{�a�g�$�
�Uip8�4V�@@@�7
�d�8��u#:�"R4
PC4f���-@����C@�uCcV�	��PC
�+���h�.]���_�pk��)�wVVV&;v��Z�5k�x��7o.�g������(4Vu��I�.]�M�^�z��o�r�#F��I�&��>��C�Q���m�6u�]w�c��+�3ne�����W/�w���r��'z�a�g�$�
�Uip8�4V�@@@�7
�d�8��u#:�"R4
PC4f���-@����C@�uCcV�	��PC
�+������+��e�����L��i8������}�|F���o��2c�;�$�J�*��d+����:�_��L�6M�������^Z�li����;��5KZ�h���x��?~�U�"l#�@P�����;�;XG@��p��8�|+Q�nD9{��@��!�� 5�F�2F�_��Q�Q��&{�7Vm��U~���Y���?_n��6I�D&{r+�
C��w���OW�<�<
���O�;���~9����vp��U��w���~
�NX�X���j�J*T� 'N�Q�F�s.\(
4���V�>�h�4�6m��3�<cO[�x�}���y���K��]��d+�]w���T����+�J�*�f���������t:C��
 � �D�JADH���d*
�!
�BH(�n(O�!�P���0)��@��!�I���UF5��S�jUy��w��#���7z�g�}�L�0!��wcU.A��?_�w�n/?~���D�#n��/��������_C��7e��M��qc�}����w�a�����4i"/���=-����iVh�J��!�U��@�"��-� �#@��N�����Y!&tP7t����(@���bB :�����4Vm�b]a�a�����=~�Ry.�)Rg�q�����q���O<!����f%
�U�O��U�|���������G}TN:�$�mV���^{�5��<u�F�v;������
7�<%��bO�AcUv!����U��@�+�������DQ����3z�!zrA$DE���L'z�zrA$DQ���E#f�����;NV�^�p��5�W����%�dG��<���+3f��SJ����?��{
��-[�sk��-o�����L�6M���o�3�Vc���
���y�f9���d���vw�W�=���+4V��a7x4V�C@@@�7
�$�0��u#B�"T
PC&��P.@�P� �C@�uCaR	�	PC"���:i�$1bDB������&��tGT�>��#i��}��n������m�Z�l���@����<f����b�3���s�1�~�z{��������{���{���Te�v�}��k������M�IcU*�#������ �J�Q�$��@��J�"�P��0)���r���
�
�BHDH��dE0�
6H�-"7��;���g�#*�Uf>��������Z��U�m��b�T�D/������v�-�c�����{w�~�k�N���[Y�h��gV������#u�����o�=�?n�O����|�|	>@(�7
����
P7"�4BF@�5DQ2��P7"�(�D@�uCQ2�
PC"������W/�;w���u��2s�L���J���+���F����6j�H�}�Y�V�Z�s_}�U���K%���d�.cm�M��=^����*��@��X��@%�(P��@ B��%�PP(@
Q�BB@�uCy���
�I!$"$@
�P�"�i�2�U�2~�x��w�v.��=��<�^�t�R�{���v&+���{���c���\��9,�a����+�7
P�/�P*W��p<��5k����^+��_��:����Zj����p����K���w4l��6�]r�%r��7&;�} ���U�&�i#���F������3D|������!�Q���1+���n������!�3D|�&`^��|�rY�r���������K�z��J�*9Mu��m�+?��C)++��j�����QC�x9�E ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj������@IDAT���rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D� ��+4V��i�� �^��SD���n�K	!)jH��E���n�HA )�F��E�����K	!� ���UN��I#�h�F�������Cth��h��!�O���/'D��v�����!��Ct ��"@c�+�f� ���Q�>E��:�������D*]��
���4��nD*]��:j��� �N
�X�d��4 ��Fnh�
1!�[���;?D��vj�����rBDh�nh��!�[��;?D�Z`����j�*�P���i�F���R����w�}'K�,��z�����{�83����m�u���_|!����d�}��Z�j��;v��
6�g�}&+V����[���#�*U�i������7�cP�n]�_�~���l�=g����7z�����K�z���MQ��R4V0XE@���((�>��@4���Q#�E��%��@t����"�E���%��@4�!����Q���:����=
�;6
J�.C���z����{��3�<3�!2>��2v�X�3gN�5M�4���{�Yg��p,�����Z&N�(&���f����gO����2n8{����������K/�]x��2z��d�������}��K�����*�/�-[��8W�ZU?�p4h�4k�,����U�%�� � �n��� � @�H ad!@
��S@��n�C@�l���q>�!A
��"0j�(��������m��7o���)dc��?,7�p��U)?MSK��}S����n��%4������O>�k��R���+�g��%���k����o�)vcU�s�<���~+C��3f$KM��=z���_�=Q-� ;(��U�eh@��FA6Z��F������������)@�p3���|���q-PC�
DM�����1c���m~��4V-\�P�v�3F��f��%�]vY�w�
���5k�$�7Ot6l������?�X�r�t���6(����][6o����������U�Z5��������?����i`����R������}�~������}z�y�x��W�����.]������M>(����/A@`��(��g �@�u#��-�N���g#�M��@ {�{#{3�@�������0MC�IU�'ON���3i���}�L�2�{O� �h���qc�k�������4:m��U^x����OL8O<����1��
�Te^��/'�x��z�}��G�+���/�X�w������f�g��������4����9�l�
{���{���~_�iT�z����+{������'��q����?�&M����m>(��U�f|@2�FA�P��V��a)XA��!9�q	�P7�0}r�n���% `�!��������s��B�p��xW�U�V����E�����B4V�7Nn��v�C����{�m%�	Z��y�<���~����cG���������cV��['��{�}"V��Ue��e���?9���q���M����n�'�|2�����X���3�iJ�q�V�Zv�t+a�Y�x�{��H5u�T1��-�MX�5��_~9���C� 4V��A@�^���q�P7\�0��������(@�p1�������q5�PC\�����_-#F����z*m��w����<�������v�n���~��i���}5�y��+������d��5q�DS��������o���iF�7o������iF�����)����s��6+a������E������f����|�>��#i���?���;W;�0��n%�9ko��
��E�q��g��	�v����?_^{�5{����J�*v�
)@cU!u@�,�Q��"��'@�����PC���Z��n��wf�@>��|���!����c���"��w�=�f����b^C�/��W��+����Ky�����Y9����y��2}�t���%b^��l1
Ec���9d����g��&�|u��������;��3�y��W\�r�O?�T��mk����W
d�M�X�z��v�v�������+&'���W��-�������=�?��o�-��'~8p��v�mvw�=v��fO�[���*�9ko����k'}�{��G:w��o&����e��9^�`����@�4V��p ��*���\��w�����#�5$E�@�-��[�f��!@�C�1pW��n������.m���C�z����C��T+�iT�&M����r<�@�}�Yg����<h��a2m�41�J�����������_Z�n�=�����r�_�n�2���h�\L�S��Y�f���9s�L{��~����c�f����~���4��>�x���F8��/5k��rl~���o��R������}<���g�yF�����)S��y�_�%���4���<�C����P�;@�@� q
�P7b8�@�,�!Y�q:u�d+@��V��@ (@
	j���y���i�jU*�4R�a:u�$K�.���}�s�=�v���?����m��-�!�$*�����7V�x��r��W�����L�����;J�J�$�)&��*���3f����������^z��5�0*T���N����4��{�������o��3c7n���{<�K��*�T0��u��Y7K���������d��j��?�X��c�l��\r��*g:.D@ \n���h� @�p!����	PC
g����u�T3��(�u�p�������d����Q���������S&u�������'�xB���{���c�[�nv;~e��yb�8����n�^�z����c�=����i��1��i�z��We���r�)���f���U��{����^���M��-��C���C��<��4�������w�y�SY�p�4h���L��*8�hu�i�y��=���5k�<)�k��	
9�n�
{����s������I1O�z����M>(��U'�@�L��9q��n��`
���do��.@�p����^����W ��Nj�N�0�\l����ob^3�*�x���{�y�����#�����McU��
�Xu�I'������7�4MN�Z&L� �G�����?��_��9r��{����G}d�ew��,^�X:w�l��?���/�����Y)vcU�s�>^�T$��m��}��b���/�)q�fI?�J���B�2����C��_/�~���e�����~���=�2�����k@ ��(�v���bP7���w"P:����%3A����%�� P:����%3A�������Xe$�_g��T�^��M�6�W�����|>�`�y�vD����������m��2}��T����������yZ�yj�Y,�	^�b�UVV�o&�|����C����Q��G��v���/I��Mc�?����������W_��Y��1���S����\y����>�x�����������'����<��S�4�����~[j��a���@�h�*����M!:��#��~�*J�q|��G��������3Fn����sj��%�����Nv�m����v�6^2�!���(p#���0�aj2�	PC��93F _�F��\��{�
�r��S�����\m�2OX��������k���������i��F��G���L�(4V5l�P�l��M�}��2e��]N�4N�f1�C-Z��6���
y����C�n�:��j�<��|���W
�'��%����H��Mc�y�W6��T���/H�f���a�Y�x�L���?y��<y��x������@Ah�*(���W�\)tP�A�?(��0
`��Mw��������8��:uj��k�Otm�����n	p���|3[��n����+@
q7���\���q�
P7��=3G jH��c��X�}�vi���}R� ,H���/o�����<��>������D���4�l���;�'V�7V�W%�l��#�i`�4V�X�BN8�Kw�
7���_^�����Y)vc�v���K�
�������n�x �T���?��O1��@�<h�*e��1s�L�}����������q�	MUu������f�v����!�c�\/�<p>��7
J/���BP7
-����5�����(�u����@iP7J;���BPC
#�jc�����;b��3g�i����^�v�u�Qv���g��!v;���n�2o(z��W�|�[*V��52��`c�q�'O>�d�K�c?����'�?��'_��_�~1������|O������SO=��b��t�x�a�g�$�J6�U�q���l����?1O��������7�f��y���:����}�����[�zO�3�~���t��:�����s��r��7�hMwg�
�v����C9$��i�Z�h��o�j5i�$�����m��uz��g��
�9�?Fn��f�\qm���YG7�Q�f��5�P7���Z���@�l���q>P7�
 �@>��|�R_�rcU|��e�]&��
�Xw�}��r�-v{��yI�N���d�����-���m�����������+�W��Ni���� �d���s�=1�k�N�N�:�)���4^���U��r���f��%K��y�����;w��m�=���>�i�J7N�+���+�vX�K�ca�Y�x�@���J��=��>��y
e�>}��XG�\h�*Wn]_v��g�yL�Y>�`1�>����E�]������x��v����y����u�j������*U�����x1�g��F���g��,@����@�gj?�V�����#�u���#@
�G/��.7V�.]��������Y����eee�c�1��[�f�w�y��2{�lo=���Bc�y8���K�i�'&������y`�y���|�����D�iSw�u��{��tew�����^�z���'O�O<��{<�%iV��X�����,�~�����������9w�y����7�D�(4V�]�����>��Q=z��}�������q�A�I�3��;�����)S��G;�;]��7� ��7
��?�G �F.j\��5���2�nd*�y �P7|	>@ jH.j�������3g�y���L�:�{��i42
G�bS�W���2��BcU��}e��v:���*U���V���?J��l�k��6���o/3�h����N��4k�,i���wj��%���}�n�
{�����_�x�t��M�l�s���3f'A���"�k�J�:>�X�/����U��,�5�'S�������)�2�����m�:��#�o��=�����YA��Q��O��ndM� ��0XE���1q�V@ kjH�d]�zc���[�w����:������n�tOd�'g��0d^i�;���4��O>��z����y(E������w���~Jv���X���j�J*T� 'N�Q�F�c.L������>�>I�M�6��3����4����3;o��v����=�l������*Y�r�}�Q���������Ua�Y�x�\�'��'��49�T��Q��n�(��UE�/���jo��r�1����e��<�_������~^t�Eb���_���[�c�=�M���
�D�Q�o��nd+�� ��5XG�L��(q�A
�@ [jH�b���zc�Q
6�T�ZU�}�]9��#d�����g�-&L�4���n�����6���/��w���?>����y��/�����}��_C��7e��M��qc�}����w�a�����4i�����K������X������/Z�H�:�,��4��G}4����A�@ d�B��p���#Mq5�|���X�����
J��M�n����Ts{������/��_z�%9����v���i�~��!�x�f��y���gXA��Q��O��ndM� ��0XE���1q�V@ kjH�d]`��|���F
�IU�T�:{�WH�e6�y��g�aO0`��G��O<!�����g�������	�s�=r��7����%������^{�5{�y�V�5�vp%����/�n�!x��=^��I6��XeB
{���3�	��1����m���0
�,h��JS6�1�/�P�L��}c�j�d���2|�����UK���?�|����#e����Z��u�A��d+O?����������{o���,+ ��7
��	�@��������� ��u##&NB��u#��*d-@
���20��;���d���	W�W���^YYY��LvD�����o��2c�;�TO�������#��_j��-o��f���i�b�a�z��+���e���r�y��y���${a������3����?�\z��i���������t+a�Y�x��
�z|��-[�SO=%�+W�w�������|1O�2
P�,�����KL#Vp4h��z��v�7�|�p�=���7�xCL���<�������
�D�Q�o��nd+�� ��5XG�L��(q�A
�@ [jH�b�����I�d��	��7��R��D�����>�����L��[n�n���f�e��y������c���.� �:������1�#������+���������j�G�1MU��a��w���_	{<�T�a5V�?��a�Y�x����t��!����.����?f_��SN9E������!��U�QFg�o��6���Z�n-����t�/�z���5�M�3���/?��cB����4�xl����)'N�+����vm<��
8/��� ��u#k2.@��5$��*d$@�����@  @�`��YPC�&��,6l� -Z�H������L�����4V���F����;fj�l���IU�O�2��q�m��b��7���/��w�7�g�v������E��>�b�6g����1a���q�LHa�Y�x�wbb�g1���|�����d,@cU�T�s��C���4���s��7z�N~����w��	Em���b:@��<�q�������g�j���������'^�����gXA��Q��O��ndM� ��0XE���1q�V@ kjH�d\���y���{O1��9s����g�������E�9r�sm���<����|k����*�^z��r�lp��e�������K�]Z�L|a�Y�x�ww�!���7�*W�~�|	>�C����PV��g����?���s���{,��J��'��?���vu����k�J�
�}^x�L�2������?�C=�^c��{�5�89�E`��F��?�Z���5 �@@��`2�nd��I �n0XE���!Y�qA����4W������W����|��s<x��t������{��LV�_����J��3�4�s,X ��
�+V$\o� ���+W��p<��5k����^+��_��:����Zj����p����K���w4l��6�\r�%�I��W^������R=-.[[���	'���e��@N4V��V}��7���������}_����W�6b���������������t��������w�}�������l���6����fqm<����_|�����@@@@@@@�@�V�T�Gp���y]����e�����_�Z�����q�*Ur���m��W
�n���yc5h�@j���b���(����_9��ud,@cU�Tn�8d�=z�E������	&�c�}�����7�|S�:�({��O>)��w����x!������i�bA@@@@@JU���R�,�B@@��U�s�"B��?��G�����_�~����_/�F���<����[y��������{g��%�:u��]�"��BcUh\� � ���g�^�����_�������I��N��c��`L5�RbH)�F/��)�Q�����M9��"$�fL��L�w��nk�g?�y���y�u���?�:�����v���>k!� � � ���U^��`@�(�**�u7�i������.0j�(6lX�>~�������������cs-�;VN;�4�K�`��s� �s, �@�������Q�(X@�<��<8�B��!5qd	P7�@XE��5q�����a ����U�Fm�B�[}��_��Wi���������n��4h�;��GqO�z����K�.n��w�)��[���c���G������F�����p���*@�(T��@ )@
Ij����n�F�c@ )@�Hj���
PC
�x@���B����n��,X��E�b�
i���[������[o��;���_��~�3wZ�~�����r����rKY�hQ��S�N���������6S YybU��f�@���B�8����� P�Fm�8����� P�5�P1�G@�����.T��y�)�������|�������[�^X�x�l���ns���e��e��I�������~������
6���'��{����t�9�������.�6^��YA�`�Ql��8EP7���D�^���
�n*�� @��7��PCJ��\@HK����$=����h�j�����??��S�t��Y�������&(m�J~��/p�N8�7n�4l��m��/��R<�@�5k���O��z����.�6^��YA�`�Ql��8EP7���D�^���
�n*�� @��7��PCJ��\@HK����$=g��U���J�p��w�;�����O���'����{y�����	��>�u�]�m����W�6�l���W����'[�S��w���T��gO�4iR|��m<7q@ hn�~&�@Q����8	~���S@�B���q<P7�
 �@)��R�8@���*-I��y��7�]�vU������m�V�y��3gN�~}�>�j������L�6M?��x�}r�!��\/�������5{�l�l��2��+����oW�����#P�u�X9�C���;@�B���q<P7�
 �@)��R�8@���*-I�����o�����\����w�a���j����{�_������5��MZ3g������@h�%��2�'����r��(U��Q� �#�5$��3{��n��9�-@�;���R�!�
r> ��!@cU����_�e�]&�^{m�Yl���S�F�)�U���E�d������O�<|��Ar��&�l�s������?� �7
��53E -�FZ���@���0���(E��Q��"�u#��3k����%�8 � P��U��U��k���?�P�{�=���OE�:t� l�A������-����7�xC7n����[=fh�
�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����#� �@B���� ��S������)@��3oD��j��L�P7���"`E��a%�����?�F� �T��U��Q�� ��7
�M�#P6�F���0!@
��42	�U��Q��\���nTD�e�����&�������3��c�	l�L���U�s�(@�\�uN��8�F���	!P���z��bT�u�"��$�W�F�rs1*N�Rq)eB���Y#&L�#FH�d����"$@���U6�@ �7
� �@���B�8����� P�Fm�8����� P�5�P1�G�0�A����>�DcUav�a	�XV��- ��anN�!`T��a41���'�OE��nJ� ��u��D&F�!FCX#p������?�����I+A�:���P@�b�QP�� �u#��3{J���*���'@�/���R��
r>aPC��?��{����+ �@e�XUyd � ���
H"S@�������0jH�%�� P��z@�T�u���t�gjH=�s��h�
.�L����H8NC@ mn�-�xT�u��s��KjH]�26�)@����2+�R��Q����@�PC*?��9��k����+�K6j�H�7o-�Y�F^y�Y�x�|�����U+i���t��Q4h���1{�lY�h������6�L6�|s�n���q����[���o��?�����G��q��~{i��I���>������O>�D>���(�-��R��b�d�M�a�������+����������Y��]z���'G�z^�-��d,�������F��t�M����&=w��U�xzl�f��e���^��M�F�����&+ �@9h�*�>�F@ !���� P+�F��8���T�f�V��Q-
;@��F50lF�Z	PCj��A�x��g�_�~��-[��y�����Se����|��*�l��6r��w�/��h��O?-���,]����;���\u�U���}��I�7j���1���t��g�-��z������r�����]w�%7�|s�x��z��)C�qs���\�
\5}�,YR�����J.��2�0aB�}����?>2]w�u�M��?���|���6m��1c�w�q��+>�C����� Pn����� ���(����
P7
�xH
PC�,#�@m��Q�H
P7�,#�@���B�jw�������z<������j��Oh��6�hC���C������RS�L����G
E�o�9sf���x=�^�l�8P^}�����)�����x�=r�H;v�[���O�z���]�v�a���v�!�)������_=j�����o�}��1���S��U;���hn�?�o�!���N�.�@�z������  ���Q���� P�u�z� �@�����82���!�@�����8���ToS��{�+��������;�D�w��T��5X��*��]w�5zE����3vk����/�hS���n�/�IWtP�$�������N�Gy$^���z��(}���=�){�s�9G�<����~�a9���3����>���[GO��WN�6-c��{�5W����WK���E�z�0>Xc��>)���7�;��#:��O��]�M�6��D�H�_�������O��*�={y��r���fof(��Uea�� �T�FAU� �@~�F~�"�@~jH~�"�@U�FU� �@~�F~�"�@~jH~�b��X�)w�
7���*��$�T�����5~GuTt\�j���v������Y-Z��W���>�_��Wn]�����*O����[n�E���w�^��������m������G��_�j��������O�:����F�xG�&�c�=V����}����0���<��c2��u�!��W\!m��;\_1��L6uv�ar�w�ct���*m��k����5}=�����le�
 P����%@�%���\*lC�|��|:�C���!5	����"�#�@M��������!�t��Gc��v]t��t�I?n�ai���2y����w�}�x���t���/��o��m��g2��Q��k�u�'M�5�
Y�f'��O�j��ut��5k2�u�g�����5�Vo��v�����>=N�O~�����*�j����{��G4h�*Z��`isU�.{�����W^y������xl@��Xe%�� �7
��	�@�����8��� P+�F��8��� P�5�`�Z�@c��:w�,=�P��������-���^����wn������E�F�!3g����VP���))>��o����?��s��V[E������m���.�W������I�-^���o���n��7�����@IDATX6�l�����'L�q�i�������;76���mL,d?��{��r�m��#����K��3q'���I���2�sY@��Q�-�:�$@��I�� �O��O�} �K���K�m �O���O�} P�5�&����X����������Q_���G�O�`5l�0��\x��7�W	����UGyd����iN����iS�-{A�H��PW_}������n����>�I_��Y��3��}��G6�p�xs��kj���n���n�|
f����u���-�l��6����F������?��O�r�����P2@ ln��f�@1��b�8bjH,�7�V��Q[)�C�X��K���PC�Q����ct�w�a��l��9r�G�}���MH�>����t�����������6,-[�L>��#���d��E���og4L��g�Zp���r�y���3�w�yg9����&��;J���3�g���X����K�N��i-[���+�4������t��5�����U����w���X���bV�	@ Hn�v&�@I����8���!��@�`�F�d��@���� P�5�$�jO���?4�&M����+�SvcU����'�+�������*}Z��)S����7OV�Z������X�O�=zt�d�|�5k�,zrT�>}D�r}jj���N���J����k��_�"&��J����i�^��@�����.T@�"�QP� �u#��G�DjH����@������(Q��Q" �#�5�n~4V������xSR;�����{N�8����8%��o9��*>v���r��W���K�M�~W�T���}�Q4hP���v���S�C�����UO=�����N���@���XUv.� �@UnT5a��n��a/�����a/T�nT5a��n��a/�����)v/�U�������s�J�n�r�k�M6�v���v�m'���}}��O?-��
s�W�X����t|=f�����o���t���gl���j�����W/w�>��S����<�Hi��U4Nvc��w�vp�`�(@c��� �@��(2�L���%�q2�PC��	�@�����8�����@�$jHI|��Lc�h���j����E��|l��r�EI����y��n{����'L��|�U�1�������_�����V�O�6m���^Jn���>��c�}���9���?���n����Q�(��U���G@�n�S@�B���q<$�!I
�@�6���(q$�I
�@�PjH�b�;����8�Gc������Am�����h���d�{��r�=����':�Y�F>��Y�p�h�S��}�Q�F����^����mFS�6Vi�U����J��<^��~����j�_�u�����u���?-[��
D��XU-;@���U��Ch �a	p� �|3[��n����+@
	7���b���q�
P7��=3G 
jH�U����y��RuG����v�wh�+��"mP�����>��x�	�����y��g�9��������K�'\��������	����ce����.�&%}}`u��o�].��b���{��}�������[���'Z�y����'�t������_,X��#�<"����[�^X�r����.�j�*�k�������*��x$@c�G�"T@���FAe���!P���PeL�����kf�@Z���$�p�����"P���P
w�r4VM�>]�;�8�~�I'E�t_}��h���Y�[E�L�"���k�m��9r�G����w�[o��=
���aA�|�A������-����0@�z��h=��u��I�d�����m��F���i��n[ra��r��w�M������k�q�4V9
@�#�<J�"�T�7
*;�����n��*c"�5$�\3S��n�%�8�#@�'��������j�c�����O?uMQ�����e�=��W����GO�z��3������k����o��6zBU��V���}����������7�D�M�]v����!��S%_x�g�C=������d�������z�h���k�������;��c�����k��������Z7n�������N;�m4V9
@�#�<J�"�T�7
*;�����n��*c"�5$�\3S��n�%�8�#@�'��������j�c���J�{��)�
S�(�������5;%��3t�%���'��6���N8��/t��EZ�n-���?���_�x����?�I=�������������:c[��c�j�*Z���n������>�J_!�z�jy��W3^�����r�i���u���V@��<Ia"�T�7
*?�����i�2a	PC��7�E 
�F���@X�����lH[���h��������>�}���J�Q�l�l�2z�_�����:t��S�f>f����+2�U���Y���U�x��y���D_'�j���]��d-m�:���e��EU���A���*�CcU�� ���U>d�@��FAif��*@�H���N�\��0%P7J&d��n�r&�@���T9�l����o_�0m���W���/����OwJ��/y�.����^{����~�~��n]����F���0aB��xE�����?�5d�y������o���s���g����GWyV|�&�l"����><z�U�=�[���e7L�k�z���q�?��O����������D���C9$O�d�����'pi^��v�\��
0#@c��T �@��(���(\��Q�g �����-XB��	P7j��Q ��u�G�@�pjH�f�a[`�����������o��-��R��zkYw�u�\�6�p�B���E�6�t��5�?���
��O?�e��I�&MD���_����\���X��z�E��l��j</���D�
�Xe41�� �7
��93F�T�F����@�������(F��Q�� �u#��3{J���*�� � ���Ui(2 �)p� D�@ 0�F`	g��,@
I��@��@��")P7Re8���p�� ��Q��&��@��FAx9g��*@�(U��[�v��=�P7�Q���n��f�@���R9@���*
E�@@ n���&@�,�L���!)�2P7H2SD e�F���@`����t@0*@c��� �@x�(/���R��
r>aPC��?�G��F1j��@�������(U�R� �#� �@4V��� �� �������%��"��5$eP�C �FIf��,@�H��L�X��. �Fh�2��BO����#P�u�TA�G ljH��g�#@�(F�s[��v��=�
PCJ�|@HC���4@��Q�"C �u#��3]R����p @� �L���)�2�	PCK8�E@���UFCX ��	p� ��3cJ�n�*���-@
	;���b���qaP7��?�G�TjH���� �i�X��"c � ��7
R@d�n�p��@����A��$�)"��u#eP�C 0jH`	g� ����hb@ <n��sf�@���R9���!a���#P�u�5�A l�F��g��*@
)U��@@ 
��Pd@R�FA
��@`����tHY��2(�!�u#�$3ER�n��p&@
	,�L@�4VMa!��'����r��(U��Q� �#�5$��3{��n��9�-@�;���R�!�
r> ��!@cU��� �@
�(H�!L��X��.)PCRe8�n�d��@����A���!�%��"� `T��*��!,@���Q^��1�
P7J�|�����f�@1��b�8���a���#P�5�TA�G@�4h�JC�1@HA�) 2�	P7K8�E ejH���@����HY���2(�!�5$��3]@�
�Xe41�� �7
��93F�T�F����@�������(F��Q�� �u#��3{J���*�� � ���Ui(2 �)p� D�@ 0�F`	g��,@
I��@��@��")P7Re8���p�� ��Q��&��@��FAx9g��*@�(U��[�v��=�P7�Q���n��f�@���R9@���*
E�@@ n���&@�,�L���!)�2P7H2SD e�F���@`����t@0*@c��� �@x�(/���R��
r>aPC��?�G��F1j��@�������(U�R� �#� �@4V��� �� �������%��"��5$eP�C �FIf��,@�H��L�X��. �Fh�2��BO����#P�u�TA�G ljH��g�#@�(F�s[��v��=�
PCJ�|@HC���4@��Q�"C �u#��3]R����p @� �L���)�2�	PCK8�E@���UFCX ��	p� ��3cJ�n�*���-@
	;���b���qaP7��?�G�TjH���� �i�X��"c � ��7
R@d�n�p��@����A��$�)"��u#eP�C 0jH`	g� ����hb@ <n��sf�@���R9���!a���#P�u�5�A l�F��g��*@
)U��@@ 
��Pd@R�FA
��@`����tHY��2(�!�u#�$3ER�n��p&@
	,�L@�4VMa!��'����r��(U��Q� �#�5$��3{��n��9�-@�;���R�!�
r> ��!@cU��� �@
�(H�!L��X��.)PCRe8�n�d��@����A���!�%��"� `T��*��!,@���Q^��1�
P7J�|�����f�@1��b�8���a���#P�5�TA�G@�4h�JC�1@HA�) 2�	P7K8�E ejH���@����HY���2(�!�5$��3]@�
�Xe41�� �7
��93F�T�F����@�������(F��Q�� �u#��3{J���*�� � ���Ui(2 �)p� D�@ 0�F`	g��,@
I��@��@��")P7Re8���p�� ��Q��&��@��FAx9g��*@�(U��[�v��=�P7�Q���n��f�@���R9@���*
E�@@ n���&@�,�L���!)�2P7H2SD e�F���@`����t@0*@c��� �@x�(/���R��
r>aPC��?�G��F1j��@�������(U�R� �#� �@4V��� �� �������%��"��5$eP�C �FIf��,@�H��L�X��. �Fh�2��BO����#P�u�TA�G ljH��g�#@�(F�s[��v��=�
PCJ��r	,]�T.\(
4���;K��������9s�D�������<F�'�Y�F�,Y"�~�����z���K�V�
���w���e����?��
��n(�[��F��c
YH{��k���+��n��l�����YG��h�
8�L@��7
l��h�A���C������!2�
P7�f���+@���"C�j�Y"�lm�9��Ce����.�k�R��#F��w��v�-�����B����,���G��i������;�����������
_|���;V4��O��-���r������,���c���S��I'��:�����+��u�@ P�M<�F�'��{9!"�P7�g���-@
���C��u�bV�	��
��!:�PC�g��r	�92j*������������6����l�?~�\p�����6l�<�������gK���e��U����tP�x��i�����i��������D��c��*��2��U�@0"��#� <�nx�,BE��5�`R	��
�	"<
P7&���H��Q�5���e��Q�;.��j�����W��1��������O>9�Z���MY�xq���D�/�0z�a���ox����[�n�A)>f�M6��+WV����{FO�j��y|h�w��e�����P���o�?4V�|#�@,@cU,�7 �e�FA����P���a�C�C� <�nx�(�D��u�P2�!&-���iH�T5a��*�;�Mc���ke�����?���u�X�|�ri��}����O�V�^-O<���q���{������fl�W��j�����p�r�UW�Fm$��D�w�	'�^;�����{n�����x����/��!C2������XG��
 � `D�FAx$@��(Y���Aj������Dx�nL
!!��5��d��3���d�P�C�55V-\�P�:�,�5kV�T�\�U�\s�\{���#F�����x!�	Z������+�����;�����[o����cta��%��G�D�f����y��I�&��=^r�+V���^*��w_r�[���Q��?�X�O@#�(0��@�#��G�"T
PC&��0.@�0� �C��u�`R	��!%+�P������K���;{�W�X�Oq������]�$���o��F��k�^���[���>[�	*�I��5v��xU^~�e��/��uA���O����:&���h}���WE_�x�1��u]H{�x����/r�9�d<5+��XK����U�� ��Y�eN�G�C���I#d	PC%�P�D���I�C�
C� <��x�4�!��w�O(�?����4m�4^���_���|���n�-�a��n�g�����/�u]�f�m�C�����s���^��6$��h��Q�-"�������1c�vm�����[/u���_�O_?8h��j�����K�.n����e��an]���i����o?�������4'�?��S�N��c����/���^���>:^u�g�}�\}��n�_�~56���Y@� h�
"�L@�n��%bD��u�V>���!�e�x(�u��9 |�n��1�E��5�V>|���O>���;��9����;�zu�4�q�����?��l���n�����xu�>���/�I�&�6*��|�U�*>}%_��u�]�'Ci#��r/���X���K�8u����)�^������F(�s��)��w�y'#��.�HN:�$�?���!C2���}����x���N��O��-������E�Yh�r, ��4V�S@@��7
�$�0�H���Q����I!$�P7�'��0(@�0�BB�#jH�$�������Ku�}�-���O������;���[o�l�������N;��^��O��W�%?qc� g�y��S�����T��*������;L5j$��Ei7V��&O����ljr��)ZO?����
k
4������(�x�������j���o�].��b�O��a������/7V�S����O�>��t?�U�� �K���\*lC@��((:�D�s���	$|�,@
)s�<
P7<L!#Pf�F����\�R7	����e���f�"Fm|L?���E�Y�S���^9��s�	�G����{��������>�*�\z��2`��x5����{�]�v�?��4V=��s�z�j9���3^3X��U=z���^z)
[��4o���r.�1"�I_�����F��p�
���g�����m�x5��>%+�T+m�:����c�/`���2c���������������V@ K���,V@(�7
�%�u�W���o���Y ��n��/�E��u�B��!u������K�~��h�����(�=�����G��T�O!�U��W��Ux���??�|�D��j��3F���
w�>�i��7��/��2���[��w�}�=	�m�Z�={�y��n�u�]�^���x�"yh����.�� � `D�FAx$@��(Y���Aj������Dx�nL
!!��5�n�bc�Jf��N����M�*�+V�p�����z�;����q�m���j�]v��K�FS����<���M�mW��.���?��3�Y��s�}�W��'C5n�8^�����o������9R�����=��H�����h��7� ��nX�q ��u��\)�!�BL��n���!`Q��a1+���?�����?F���U�w���E�Z����	K={�t�w�yr�����xa��I2t��xU���n�'<���Cc���n+�V�����kW�8qb����)mx�?�?��t��1Z4h�<����.Y�d�[�nA�j���?��A}R�~�/�F�o����xb�@�p��H"��%�P0(@
1�BB��u�x���
�I!$<���M�B}b���k�s���IM[l�����U��������mo�������5>})9��U�������Ga���U��U���N�:Ecd?
�6�U,������]p�r�)���x�"yh����.��U�@�"��+� ��n��+"E��5�bV�	��
��!:,
P7,f���G�R7�
��J5���z������i��]�vn���>�=�����z��2|�p�^���n����o��g����i��a�������}��G����|�F���/��f��!��+�2$�u����u�}�z�-9��C�!�F��>}�D�i��.�g���<8�B��
 � `E�V2A�#@��'WD��Ej�������CtX�nX�
1!��5�nrrcUv���'�,^x��������+�t���O�������f���V�\Y����/-Z�����[-ZMg�]w�)S��8��o�Y.��rw��Y��u����6\i�U�Y�p�4i�$^��=g�9��#�>��#�����]$��Uyp��4V�@@��7
�d�8�G���O�����Y!&lP7l����(@���bB�jH��*��*��������n��-Eg�7����N��x�/��u��A�N�-�/��u�&s������My���j��%�\"���s����;����G����o���K6]��YO=��0�m�0a�p��z�����Y��*�@��*~ �X�F��L�P7���"`Q�b1+���m������BL�#@
��\��X�Og�W������?z��6i�Q�I��.�V�o�,�'Ov��'y5j����Z8��E_���L�4I����{L:u���s-d;=�����c������u��m4Ve���I��w�~���2 ��G��q���,@��9{��@��!�� ��u���/��n�?D�������^��U�W�������{��r��WK�'2��k���0����h��jq������:� ����n���������U�������&7WYn�����W��
���ce������3gJ��m�z��=���=��s�������f���^�����Z������k����}JU�y����i���j������McU>�!��U�@0"��#� <�nx�,BE��5�`R	��
�	"<
P7&���H�R7�
��JU�M=��5�7�xCv�m7Y�|y�~��G��1c�J@}7V��3�o�������.zE������g�EMY�f}������UY�b����n�G�r�����\�F��w�Y�|�IwX�����,�X��] ���
 � `E�V2A�#@��'WD��Ej�������CtX�nX�
1!��5�nr��Uk_}�n/b�F��!?>��3�?E�"u�G��:�,���k�����+����[/d������ve?�*{�7�|�\~��n��w�-x�[�}����?���S��_}��\��?��S��.H��x��X��*
�@�	��*G� ���FAy��:>
P7|�1#`G�b'D��/�
_2E���n��� ��5������>o�}��E�U	�e�����7n\e_m6��X��<x�L�<�M���V���{�kW�Z��&��+��"�>�&M��C�����j����� L~V�\)����d���ns�W�=��X54VU�f�h���� ��nIa ��u��d*�!�BH�nO�!`P��a0)���G����a�����K.��J�C����>����n�����w���]�fL��+����{�f�y��E������Q�FI�>}2��������^{���K�>}%���:�D��U�����h��'��z����x!���q�����:�#��
�X��@#�(0��@�#��G�"T
PC&��0.@�0� �C��u�`R	��!%��P�-[&;v����n�-�����|i���h#�M7��1�f��I�.]D�T��D/���?�Y~���d����1C���������O���+�5k����t�i��I���3��+i�������\*lC�X���X�o@�,���2'��#��u���2��!��A(x"@��$Q���!���d

PC<L�g!0@�z�)����*S�Lq��,��X��D��E]v�e5Nu����GyD�7o�����{NN:�$I>�*�	����:n�O��Uw-���a;��U�@0"��#� <�nx�,BE��5�`R	��
�	"<
P7&���H��Q�<
U����*�\w�u�����b����9��s��s���
7����f!�5}w�q�v�a�9��c^x����e��U�����:K�;�8i��I���6,^�X�;�<�������<�Li��U��U��=^�|�a�m�u�`�����/�u�@ P�M<�F�'��{9!"�P7�g���-@
���C��u�bV�	��
��!:�PC�g��*M@_�7�|y�����?��l�����Mi��iQS]�fM�J�w�yG7n���m[Y��M�WT��A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?D� �@(4V��i�� `^��SD���n�K	!��5��t,&�&�@x%@��*]��9j��� �A
�Xd��4 ��EnX�
1!`[��a;?D��uj�����rBDX�nX��!`[�b;?DW����Ke�����A����4n���������_��9s��;���l������5k���%K��O?���[O6�xci��U�����d��e���K��
e�
7���[K�F��3����x��WD
6�tS�|���w�e=�9[O��/_�f��]+m���~7e���$h�J`�� �@9�QPN}�����
?�F�X��X�q ��u��\)V�V2A�)@
�3o�G��9�z���??����6(�1b��y���i��r�����.t�Z�`�=z�L�6��9;���8P�:��*�����_���cE����l�R���/��~z���/;&]�:u��t�I����;N����\������l}��s��UW]%�g��U�Ve87k�Lv�e6l��o�>c+���U�%�u@�A�5��P7���
����� 	P7�! �@���B�8�������92j*����q��U��Om��?u�X5~�x����KU��M-��v�Ccz��]�9&�t�AQ�U��M�M9��/�E>��#�x���r7V�=g��}��W2|�p�<yr��T���_?���=Q��N6 P�4V�!.C#� P�7

��XP��(E�R��"�u#��3kJ�n���� @
�7����7�(�F��[��4V��9Sz���1F]5V=���r��'g\KW��k�/��]��t��F�8����
����t���5(��l��&�r��*���s���\��7���N{���X������������Ui���xC��x �w�[l�E��h�"�-^����\w�u�*����U���E@�Y�5qd
P72=XC���!�yq4���o
��7
7��Q���K��iH�T5a��*����6�Uk����'FO���.��/_^��jC��^���N�W��'�xB�8���p���^�w�}3��+�T��t�?p@�z��6�H�����N�v����=��x5�;��2�~��^m�I6U�1�l�J{���{�������iT�&M�D������'�]���z��q��EM|�:����Uu-�� ��R����0p�
G�!@
)�S\�����#P�u�4NA'@
q,�1cF���lJ������.\(g�u���5+y�[����k��F���Zw�#F����z���-}e�]w��v���v�ar���J����1��d�����{"V�f�d��y��&>8���q�{��r����}������Ki�������4%mk���;�B�s�>��{�-�'R�����r}�����~{y��gr�6�D���:aeP@
�FA�f��@��������!��q6!
P7B�:sF�4�Fi~��@��������_�%�\">�`�@�w\]c�>����n��v�o������i���{5��v��g�����O�;vl�*/�������t����H��Ow�r��f��}�����P<��c��.�=^<�_��9��s2�����Ki�z��w�k���P��SO�N;����-�=g��-[�L:v��8�>�h3f�[��p������?�v�k�6m��Y@�.h��K]�F@�n��� 	P7�! �@)��R�8�0�a��Y#P�u�=�Ej��4�����	E�X���N��1������,��h�B6l�J��=��_t����6�H���p����#�*�\m(5jT�.}�S���3�L���{���X|'�@IDAT������g���_4hP�C~�����K����2l�0��
bm��q��������v���u�����S'y����ai���k��6�d�>�l������~�������Z(��*�9[o����k'c��o�Y�<��x5�w�/��M�s�FR��*eP�C@�Xn+�y�+@�7���4�!i(2a	P7��7�E 
�F���@���ps���?��������C�;����W��O�7n���O��r�-��QG���>}:��^(�&MmT�?���U|�J������FO��W��+��O��U�*�d�����N�>���w�P��)S�����NF�]tQF��;0�0d��������/��6�iC\�i��e�c�}����7K9��������e?��������E_�����X��x��������>�=����k���.^�X�Z��@���|�{y����]������l���Q�FE�h}��&�I ��7
�N�#P�FY��(#@
��T2�M��Qo�\���nTL*�e���
��o��n.a�=v�i	g�|j�n�d�������zK6�`������;z}��U��]�$*}U^�7Vp�r��g������4V��g�u�v�a��{f7���X�O��<y��N���m�Z��h=���n�6�4h� Z������������{��9�o��v�����>{�v���/�H�X���]}����N\����*�9[/�I!���6|���d�u�-d�E�h�������H�����+E�`���j�J?�p�����u�������~���6�r@�
'�t��z��9��g������1�W]uU�c4>=��������'U���`}�\1�
��FAyf��)@�HS��O�^��1�
P7J�|��n��sf�@���45����M}���2/�r��rV�_#W��{��r�9���G�-�{�v����Om��?�^z�0 ^�������5d�����^Hc�s�='�W���>8�5�u�X��Gy�������M�����C��#Fd<�K�6�p���n�A�4���9S��m����~�6Z��I�'�����"���^�zUi�)wcU�s�>^���~��M$��>���g��W�F��h��sb��w�jw�+��R� o��&9������^�lY�c�w�;x����z���r��xS��#�8B�����T����@ n�j&�@j���(� �!A��I#P�u�$>NF H�F�ig��&@
I�2c���������e��.������f,�h��6 ��SHcUu��uc��(����.���&��>c���+����O�|�����.�Ln���O�Z�
��3{�l9��#�!�]w�{M_�����Y(wcU�s�>^�TT��f�9���3�O�K6KV9�
�,@cU�����W_E��\�`A�������>�� u��wgth'O��_�*��B?�5V��������nU��6�tS�wg7[���~��|�_��!X/g�lD���QT��,�P7Rad����z&�@�����8�`�����#��5$�*���X������1�iS�IY�w��+��<}=�w�������X��.����K��t��Ex����]t�;N��O
�����+����O�j��q�����7����9r����/ZM{����i�������|��������]�����P�V&}h�~�����P
�~��:T|�Aw�6����kR]O�;�R��*EL��:���O��Y�����F�E�?����}��B�;.\([l��;7^�G'�{���1�S��1�}�!�d<�/��MU�f��W�c������Z0�;5������G�-t'%����ET��&�i#P�u�<NE���#@�B���q<P7�
 �@)��R��?7��*}�R��=�y��'��~�[�&M�5r����	}�Sm?>4Vm����j��hJ]�v��'�8=m��f����C;v�V
$�>�h�K�,Y���[��Z�����jP������������*}�W!������OH�����i���x��do�~����0aBFOB�9�#P4V����1�9���ys�'Wm���9#�n����k������_�2�m�?4��q;j���.N���
T�?2?��O2�����d����E�E�u.�	��i������,+ �7
�M=G�h�F�t���PC� �@���B�8��@�jH)z��jc���k�s���IM��^x�
�o~�y��W���d���~���/%���J�y�/_�]�'Ve7V��;u����4��4V��M�����.�@N9��:/�F��r7VY7L;�|��}�����^=&y����/��vZr����U��l�"�'O�=z���IU�<U�G_�������{�������rx���E����O���b?��w�x��6N�m�6�p��M��?�����>}��u]�>^F�� �@��(6�L���E�q"|/@
�g��
P7
�x�n�@�R�!��Un��U*��������c�v���>�a�=�p���6}[N!��n��W�=������>
6���;�X��>��}�����h����E������H�|�}�F�u��V$�N��[o���(>f��Q��w�/�F��B��q,��������E�h�u�?������o�-���L{������ZY�zu�49��3�9����uO�2u!@cU]���3��x���O�f�m�7j}����U|�+�m;������;��>a����w��c'�L��
|��'���������p��w��_~�o}<( �7
��	�@�����8��� P+�F��8��� P�5�`�Z�rcUv���'�,^x�s������+�t��F�������f�������Q~Z�h!���m@����L�2����|��r�����f����\�
W�x.\(M�4�Ws~��3G�8��O�?��#����s��PHcU�a$��O=�����N�N���=g��U����M�a.��H~�5�����r	�XU.�2^W����S�|��hqz����A�y#�n������������Z�[o=7���Zhw|��y��C��j��A}�`����/�?*������u�]7Z�>^3� �7
�
 �@���B�8����� P�Fm�8����� P�5�P��rc�
���S^|���e�����7n,� }-�����}�w�S�N�����U��u��s�F��'&���K5N��K.�q�����a���~��O������d������
Gp['L� ����I{<w�<�n�J{������?�P~������cn����o���@Yh�*�_���o2���*f���1���g�v4�}4�����������0������V[e4e����w�y��p�	��<���r����\�,�|�����>�R?���5�!�@��(3���R���q.PC�
 �@���B�8��@�jH)z��zc�>�I_������	N�w��p�1�O�>�j��}h�<x�L�<��I�����"����O<Q��fK�3i�$I>$����N�:e��������K���c�/�������*�9[/;
�k��woY�jU�������� P�����%�����?�:�,����3���wLv��n�����X������q�<�s�e���#����[o��s-<��C�������&:��x���6S�a��Y#P�u�=�Ej�(T��Q��#�u���"@
)E��sCo�Z�zu��X��c����3���ck���0��4�h��js�;F�u�A���n�M�w������-�o��o�Mn����aC���~��h���2r�Hw�>P�m��n=���{���$��sgy����a���O7^{����W/�?�����/�����oXj��i���x�5�}���*�9[/�}��>I.����iS���o���2e���l�~\x��%Q������\O�����#�c�}����2q����y���
&W]u�;��/�������\��J}�V��F/}��~����@���Q��
�n*�� ���$5XF��P7j��1 ��n$5XF�B�!�������T)����Y3y��7d��v����G�G}��3�v�YG�wcU��k�:c�����;V�����v~���g�EMY�6}������UY�b����n�G��o��I6j���|�Iwx�����,���*�9[/N��6�����W�o�=�}��7$f�
)�X�2h%
��_�^{�%��v�*��O�W�����m�a�]�v�c�-Z��K��f���q�p��'�����)��7�r�����R&���5�1�J������e�$rW�!1�5/J�h���M���{�>�9�y�s������g�^3g���^{��z|g^���V��?��C�����i��fY��fZ���������>��������q��b�G��1$��9� n�Q��A
�@����������U��]�r	j����2�{������x�����e��o4�>�����>��6'iH�
��^�*<�1c���V�����K�������O�n���/7l��\O��g�q�\z���*b�����\�;�J�d{����&iBcp�?]H����Mx�@��H�������|��wr�A�$K��Q|��l���9=]�f�����9e��5������&�x�4Qk���U2��(���*��y]��?t	���?�P��mk���W��w�w]���Ns������?��q��d<�bH�S�%@���D%7�"�@��!�&�����;w�,���-��o�^�z1[�����*���F4i�$���U�����{���/M�4�7�|���#�<"�
2����1b����CwI:�����7��|[�n�W��������]��]����m��&��9���\��i��]w�e:v�(�=����_��q�@��XU)3QA���?��-����������^�}��7�L/�,Y":t��K�z�t�^xA��j�*u�@�����W�=������+�{Z�?�$Vi��o�[�������L�9A��P����Z��Qk2@��1$��)� n�b��N@����Z��@-��'W\qE�'ho�r3FAZ�>��#�����u�]'=z�0�P�g����������_/'�xb�1��?������{c��-�������V�'�tRNR��6v�X��k�=�p�������c�s%�7g�9���s\t��/9B�HL��MC�\"���U�����O>��b�����s�=��`�S����Y���������^j��6�����������O�?����?����������h���k�������\�����/����Gy@@@@@H��.����~�����;��s��vv-Z��R� -�U:M�����r��[���D�(FxE/-����d�70m�4����i~u��o��Vf��i��D�����S#�cl�����E%$Vi�l��R����[1���v����"[����T������z�Yy�q��*�n��g�}V9�S���/6{�0 g�@���A��n�]rr��w7���Z����t'$V��# � � � � � �*�R5]��l�>}r��u�]��'�(��iJ��]�t�������1�i�F�q�p�
����+�H�~�$��U�4�K������E��R����\i���]���k���+���*_��R�XU
��c��)�����6n�����_��f8��u�����/^��\r�\{�����>�,r[A���O>�m_�_?�����[�T�����_�
Q�@@@@@H��Ui����U���*����������B~���~������f��F���8'�m�����`E�6jS��W_��C�JxG#mC�,�z������jv��Er����������=�\����^�w���&��o��2l��|�JVf{���^�jq������o��>F}
 �� �l=���g�qF��Z�j%�����n�Sn�b�����aC�\��]��i��	r�O�o�!�������d���r�Yg�[��U�N���Jo�t�p^@W�>��"�@u���t��5	Cj�>��a�@�&�FMB�G���!��p��]��y�d������6�l#��7�qg����Y���Rp���R�^=�-�w��G�l�r���{G���s��Wi��_��*_��_]JW�
������e�M7
G�/^���cw��e���r��'��?�s���v���6(7�t�w����{{��7���n9������������o������_o����Jo�t�p^���	�@���&�C�"�@,�F,&*!�@@����j-@�5 � �@$V%���&o��������woo/�u�]7X\���g�-��v������K�.]�u��GyD�?�xsKW�:�������_9I]����Z���
���z������]��U7.�!��[����Un�=�E�P�F�r<�*@��j+@����@����#@)F�g@@���U�$S��n�������Z��>|���S'�����~XN8�SM��&Z������0�����[�������M��������&���9���2DF��S�����, ��
��z�@�����x~ ��g�� n�V�� @��o� ���� � `K��*[�)j'_b��A���o,h_}��4i�$��7�xCv�m��2�B�s�y���r�!��3�<c��d��	��OSv�)���q�d���2ez�|�rou��3g�����K��-���Tz{9����C��S��(X��Q0"��/��@������Q��
 �@1��b�x@l	�XeK2E��5J��cMv�����h��o_Y{��M�z���'�����]w�%�v�)����DW�3f�)����gK�v�r�V�Z%�Z�����r�P��_��W�t�R��`RU���E���^��\#���|(ps�5�7���Y ��7�� n�V�� @��o� ���� � `K��*[�)ig���&1��.�����l������+Wz���jQ�c�w�:��_~)/��r��w>r�H<xp�r-�:u�z��U�u��U�}���Z�=M�z��wd����)�/*�=���"���|(pw�9�
7
��9Pb P[�Fm����
�@�bH1z<� ��H��%��v��}i��}��
'Vi����������s�����n��,��Vw����c�9FV�XQ]5��f��Qe���C��^��\#��[|(pk�-6�6iw�!��=#G�P�F�r<����
w���#`C�bC�6@@�X��L���'O��������oi��a�f��Y#������??o2�&@u��EF�!�o�}���,\�PN?�ty������������^*M�4�{?\X�����5�#��w���"`K��aK�vpS����3j� n����)@�ps�5��!�$i@� ��=���������,X ������{[Fm��P��?� ���]u�^�z��v�I��-e�M6	��Z���	5@ +|(��L2J'@�(�5oB ���,�*cB Y�F����@�Y�U��@��!���M � -@bU�
w@(�
J�����q#�� (�1�l����
7R;ut��	7�F����1$�� @H��U��B� �>de&� n���7!�EbHg�1!��q#Y_ZG ���,�*cB�t���Y�&@� �*��; ��T�%��edB����id�M�R6z^�@j���::�@��e���dB���id ��^����O!@��
�2����	7Jg����1$����HV����/�#�E�Fg�1!P:bH��y �D�Xm�@J*����r�22!@���42�&@)=/F ����NG�l�����b2!@��42@R/@bU��� �dE�Y�I��@�����MdQ���YeL$+@�H�����q#����(�1�t��	@�H���� �%�CAI�y� ndbe ����#�Z�Fj���#P6�F��y1� �db �� �*�S�@�"�����$�@�t���Y�&�(@���2&� n$�K�dQ����YeL�N�R:k�� ��$VE�p@��
�������L721���	C�F��H�q#�SG�(�q�l���LC21�@���X��)d �Y�CAVf�q P:�F��yY �dqV�
7���u�(@����2&J'@)�5oB@�h��m�� �@I�PPRn^�@&���F�@��!e����V��������M��Q6z^�@&�!��F� �@�H�J�2@���� +3�8(�q�t��	�,
C�8��	�d����:Y ndqV� ����7!� �@��U�6�A@��|(()7/C ��LL#�@�l�����bR+@�H���q�&@�(=/F ��LL#�@@ �$V�~
 �@V�P���d�N��Q:k��@�!Y�U��@���d}i�,
7�8��	��	CJg��@@ Z���h� � PR>����!�	�F&��A P6bH��y1� n�v��8e n���#�	bH&��A � �z�R?�@ +|(��L2J'@�(�5oB ���,�*cB Y�F����@�Y�U��@��!���M � -@bU�
w@(�
J�����q#�� (�1�l����
7R;ut��	7�F����1$�� @H��U��B� �>de&� n���7!�EbHg�1!��q#Y_ZG ���,�*cB�t���Y�&@� �*��; ��T�%��edB����id�M�R6z^�@j���::�@��e���dB���id ��^����O!@��
�2����	7Jg����1$����HV����/�#�E�Fg�1!P:bH��y �D�Xm�@J*����r�22!@���42�&@)=/F ����NG�l�����b2!@��42@R/@bU��� �dE�Y�I��@�����MdQ���YeL$+@�H�����q#����(�1�t��	@�H���� �%�CAI�y� ndbe ����#�Z�Fj���#P6�F��y1� �db �� �*�S�@�"�����$�@�t���Y�&�(@���2&� n$�K�dQ����YeL�N�R:k�� ��$VE�p@��
�������L721���	C�F��H�q#�SG�(�q�l���LC21�@���X��)d �Y�CAVf�q P:�F��yY �dqV�
7���u�(@����2&J'@)�5oB@�h��m�� �@I�PPRn^�@&���F�@��!e����V��������M��Q6z^�@&�!��F� �@�H�J�2@���� +3�8(�q�t��	�,
C�8��	�d����:Y ndqV� ����7!� �@��U�6�A@��|(()7/C ��LL#�@�l�����bR+@�H���q�&@�(=/F ��LL#�@@ �$V�~
 �@V�P���d�N��Q:k��@�!Y�U��@���d}i�,
7�8��	��	CJg��@@ Z���h� � PR>����!�	�F&��A P6bH��y1� n�v��8e n���#�	bH&��A�@�����3f��G����E@��$V���7"� �W�yY(D�j���pj ��HD	7B \"�@�������C�����Y#��w�\v�e��C�2e��Vi���U��SF� �R>�t��6e n��W#�bH&�! Pb�F��y nd`e ���W;!��y��'���X���3H(P����x@�|(�-J{d_����9f�$)@IR����q#����HR����.m#�}bH����W��N����{� ���s��@��H�����w �	�����f�X nX�� �8:��"�E��(�
7�x���%b�%H�A B����@���U!.@(�
�%�{H�q#�sG��bH%�}@ ]��t��E���0���
C�;w�<$V�c��%�_�����=@@��C P[�Fm���AbHP�s�#@���D
7��#�@m�!��~u?����X���R�n]�p�
��5k���o�)�-����K���e�m���w�Y���������;���������l��V��6�H����^�z9u��X�z�|������zh��6m�H����{����,X�@/^,�}����-Z�v�m'M�4���Z��
�|��7���?K���e����-}��I��s}n��6
>�s�f���>��{o�f����EM����+����l��k[����4h��3h��}�;��(�[}��?�]w]�o�u����/�}�����Q�Pn�B\��B'?�����3G>��s���/�Q�F�?C�7��s��|i==��]�9��(���v��@!$V��3 �$ ���Pi��72>����!	�< ndpR	7�y2.@���xx/����t�I�[7�|s�={�L�2E.��bY�lY���j�J���^�z���{�?��\t�E�d��*uw�i'���D�M���]��^bVT=-?�����3��u�Y'o5MN���{d��1y��?��{w8p���kr�&p�thrL����o��������/|�\�|����z��g��'O?���v�i^�&M�6Mz��e���:t��u�
9���d�N�:�Ww��U���nsur�W��q�������&��r:��>y�d���[��]k��5�\#GuT�����e����������� X ��"M � `C�6i��n�7�E��1��(�!�}�F���"`[��a[��pK���|�����4\D��Z�����=��Q�B����	U�
����K��x�	�0a��PU�/�1c������.]�TN?�ty�����u�)}�f�mV����^+�G��R��@[{�1i���w[Wa�q��U�)'V���{^����VN����}��Q�o��pbU��mE�&|h���}���j{��������5����>�M6��\�O~�����+rir�K/��S����\���i�_~����_���_���3M�;���T��S�a
(R���"y@[|(�%I;�#@�pg�)IC�P�M�-@����2:� n$�J��#@If��~�<����4^@��p��t�9<Y�G��U���u�]���y�����$!���?4)k�v����tu��z+I�u����:K�q�������Q���n��[���2d��{��9�������u��YZ�l��p�[N�:5��{��%Wi��U��G���l�6�~e���R���>����sE�>t������'�|�m��'��tk?�<��U���y�>}����
�����������1������/������_���q�G�m������n��V����>��sO����7���7�W��Xe���� ���$� � P�
��q n88�����4��#�
G&�a"`Q��a��pP�����X����?�I>�`����J����Hr��Gz��-��m���_�K�6�h#�R���+�e�]��&�<��CUV�����o�]n��FSW����J�z�L�n��	<z�}]��M�6�����Rt�Y9I��%9�p�	�[���[��V��C�y��G������
>\��bS]��m�I]�r��?������*M@�k����5���+�4�l�4P��M������j��zG�*�SO=en�v�:�z������g����>���9t���>[������Y���"���o6u��pb�m�=�"`K��*[��� �@�|((��pP�����3d,
C,b��7�h���E��EL�B�AbH2�Nb��\u3��,|�s�92i����{��W�t��S��\s��3�����9�8�(u�M7���<���@d
B'�d'���J5m�����*��4���.����;��S�
f�i=�<���J�
'B����r���K�:u�My�?����\��7��>x�u�I��=��WH�Mo}�o!_���o�N*����I�:T�I���G�oQ���U�}�� ���&m!� P�
���Q n8:�K�K�4��C�
�&��"`I��a	�fpT�����X�_�N�:�����&�����Z��x��W����7�&L����\v�e2c��?�����BT��$��n��+c��+��"�o��w�������n��]A��������2�d���r�m���[n)[m����`p�)�'��[�n2k�,���D/S8	��t�a��w�aj�h4�K��31�8����{����{����^xa����&�
4��'������?� m��5+���\o��V��C��[��r��%�'�Xe����,	�Xe	�f@(V��
�<�	7��sF��Mb�MM�B�
����(�)@���I[�'@If�I�����_,g�yf^d]���c�5�t����?�\O����m%����UGq�i~u5'Mvj���)���T�5r�HsK��k�������t�<��d�s�=W:w�,�5��c���X���5k���U]������n��+m���U+y����s��pbU��}sV�2�<�����?���O
RoM����v��-+�����o�-Gu�!���%��=��#�\r���bU>�E� `I��*K�4� �@�|((V��pO�����3bl
Clj�n7��gF��M��MM�B�=bH2sNb�]��/�][���w���?���D'MB�w|��G�����[Q�U��/'�H�t�R������O>����~��0��o-8q�D�U��;���x��^���;�,����W����X���_K��M}]�(��}��e����t�u������U��b���M����,X� X��\��Z�h�������r�-r�
7��wL�:U��k�_z������kM��d#�(�����o�.��[p[���Y��^�-�bU>�{�E���U�$i@�"�PP$ �#��q��Ig�X �X��) n82���
��4�����d&�������m{��W^�pbUx{��C���~��g���t��'�x��~p���f5�`�I8�JW1b���U�#^����+G�x���	W����t�)m��CW8��o~�5N��$�`bZ�]���Q�F�������-omK���S��v�:Toy��2v�u���^e����c���p�����J��3�<#���7��N4I.��[0�*	�|}��bH�*F�g@�(����4��#�
G&�a"��1$!X�E ���O.CC !�FB�4��#��d&�����>��S9�1�m'V���+�
?�U�����<�X���4i����oQ�����Z����'�|R������Z�M�2E:t��=N�z����m��y�+4�*	�����k����SW����+���O{���,Z��������r;�}��r��7�lW'�*�*U0�*	��"`K��*[��� �@�|((��pP�����3d,
C,b��7�h���E��EL�B�AbH2�Nb�]K�X5k�,���[��l�����\����t����^�?�|S?*�J+��U����6m���3�<>�6�9������f��!�w�y�s����K�JyN�8�i���w'�X���q��<%RHbUR�������?�������p~���zo�0�����Q�`���G��j������>���_��}���s��&V%���"P��UE��( �6�P`S��pC����<3J� �$%K�dW�����ed$%@�HJ�vpC���<W\bU�S����	?I�\xz��m�.Ub�&�,\���w�����/�\:u�$n��)�Ot+A]a�?�K������"����IV��U�h��������"�)����?��v��<��W]r�%�����$V�j\����f��I��M�jIy�Z�J��~{��9r�\q�2n�8S>w�\i������r;jl����Gu�6�7�tSN�_�������c���UI��q��%�,A� ��
���XA�G�=��{s���)@��I[�!@�pc�%6�65i��!��y�%V�Kb���L�
o�IU�M�Fm9�\p�����~pE�5k��������?��uz��)u��5u�'��c�9&'�K�4��?jJ����k2����g������{O���+/�I�t��:u�x�k�X�����������D���`�
DWa���/���l4j���cRnG�.��?�p;vl�q.��R�0a�)
&V%�c^�	�H��I3 �+���by����9#F��1��&m!��q��yf�� n���-� �$3��X5{���4^@�m��]f��y�����Q9��se��!�:|�|�roe!?QG�k������=Z���Z��&)���Q��w�)��
3��[����C^~�e��N;�$�>��������~2�|�R�q/���NV�X!����d������y�L2Y��U���~=y��wE���c���r��7���57~9)��m���Y<�@�y��_|QtK�|�&jR^�&Vi�m���8G���U6i@|(��H8&@�pl�.��!�Ai�L2CD��q�2(�!��1��	Ox���
P�Mz��eF��_?o@S8���oE�f��(y��'d�]w����=�v��R��T���\h"�c�=f��O�.-Z�0��5�n��G�����G�A���w�j��K�j���_��{�e���w�m��?�����$�l{�A�z�	E�;w�Y����ri��W��_��[N�$\t���N:���c����7j��������o9��3D���G8���O�]�#`C��*��� ��>X@�	 n86�����4���
&�!"`Y��a��pL����'<�r$V}���&)���I�d��w�/��E�y+Y���k9�z1q�D������~��[�*����'�,��w�l�������W{I.W_}�)�muu����g�}�L�<������e�}����k���W���?����5k���m��Y���3e�R�M7�$���3ez��[m��5eI&V��6��������@�O��C����1	M2������&�]|���
kk�����3G�.K�,��N���S�� P��UE�8 ���P`K�vpG����\3R� �$�J�d[�����et$!@�HB�6pG���\�b��H��qu��]�	S�(��M�����d�`�T�B�xN=�TS����r�)��?�s�=�i���
A���������������{�7�|��92����67n�]j�L�n��[�WW��-W�Z%o��V��Z���.���:����$��}���f�X�ti�������������G}����/q�s�o0a��c��o�_l	�XeK�v@(R�E�8
7�t���Eb�EL�B���#�0�(@���IS8(@qp�r����@IDAT�����+�g�}�$����3v�X�������C�2eJN�Q�Fy+�F\l����U�x>����{��\�2|K�+ki����n�W��_
4�J��G��UIx���BQ��V��ec��\�I�h�nq��uQ��y��r�%��*�-.M�/'�|�mr��
�l(� ��P`�&pL�����3\,C,��7�d���e��eP�C�1b�c��p�M�&={�4o�:uj�Vv��/'��Ypu�|����?���k���K���;��C5�z�����&O�?�w��O�7��&B��r�>��������f�mf����w��#FTY
����I�m�����t%��C���-\�0��n�w�q�����?��[n�Ez��*+b��v����+Y�;�=����;���j�eIx;��jr���_�"T��\�I������3�xIQ�����3E��5�J��G��_�,���^�Vm����6|��q��
�l(� ��P`�&pL�����3\,C,��7�d���e��eP�C�1b�c��p�������e��E�z�ji����l�R�[o��G��M}��������&�4k��KX�t�Mk���_~)��]���E��6lX��:}�&������{��j����Q�7����E)�c9\�������|�M�����r���'��)@b�����@*P�8)t	�
 nT��=*\�R�D��@�FN
]B���>At�
 �T��=pV��������{��{������~�Z�jl�:��
i�����//@bU�ODpE���4�D��q��%-!��1��Yg�'@�(���pQ�����3f�	C�Y� `S�G����/�&u���U�&O�,�����������I���4�}E��
2=��D����(�C��j��5��5JB���3S�@HD��+�"�E\s�52f����Hu��W�:��c��d��yr��G�nY����^�z���"�
�R1Mt@�>�0����
�����k��f��"P�q�xCZ@�5��k3�x�+@��Ik ��-�>�@�v������o.�r�4i�DV�X!~��L�>=�N���'��z����s�@��XU�3D�@��C�3S�@�&@��FIC8)@qr�4E	7���a� n89�k�k�4�Xo�W�v�i'?~�4k�����G��H���)�C ��
�����g�.@�(��'@@��_�V��Q[1�#�q��(F�R��"�����2j�(y���#_�+Y��g�u���������@%�XU��C�@��C�S��`�"@���H#8+@qv�87
��A� n8;�+�+�4�$.����'�|"�/����J�[o=�r�-e����]w�����^���UI�> �1�P�j `���(@�R� ��q��?��@���x�1�Pp� �e �����@��
��#�@�F%� �@�1$J�r� nD�P�Q��(�@ �1$�u@@ i���}@b
�� &�@�7' P�1�4A�q�������b���@�(@bU�y5 �A>58G�8��8J�A�(bH�� %@������Q2�#�@bH%� � �@�$V%-L� ���CAL(�!�� n
N@�bHh<����
��>7
@�0�C�	 ��Q���2��j@�|(jp�q�q���Q��(�@ J��%C9D	7�d(G�8��8J�A@��H�JZ��@�)����PTC#@�0� �@���x����0|
 n��# `�!��@(��Ue��� ��P���7�(Q��!Q2�#�@�q#J�r� nD�P�q�!q��� �I�X��0�#� S�1���F��a(8A��!���7�`� @�(�G@�C' � PF�����@
�� ��9� n�Q�D	C�d(G�(�F�� %@�����C�(Q@� �*ia�G@ �
bBQ
�q�Pp�C
@� n8���(@��Q� �� �
N@@��$V��W#� �CAP�s�#@���D� �D�P�Q��(�@ J��%C9� ��Q� �$-@bU���� �@L>�������
 ���#8.@�p���#P�q�4A#@1� � �@H�*#>�F@ (����� G��G�: %@�����Q2�#�@�q#J�r�#@��D@HZ�����i@��|(�	E50�
C�	 @)�Gp\�����G��Fh<�F�b(8A@�2
�XUF|^� �@P�A
�@ �q#�u@ J�%C9D	7�d(G�(�F�� G�G�: � ���UI�> �1�P�j `���(@�R� ��q��?��@���x�1�Pp� �e �����@��
��#�@�F%� �@�1$J�r� nD�P�Q��(�@ �1$�u@@ i���}@b
�� &�@�7' P�1�4A�q�������b���@�(@bU�y5 �A>58G�8��8J�A�(bH�� %@������Q2�#�@bH%� � �@�$V%-L� ���CAL(�!�� n
N@�bHh<����
��>7
@�0�C�	 ��Q���2��j@�|(jp�q�q���Q��(�@ J��%C9D	7�d(G�8��8J�A@��H�JZ��@�)����PTC#@�0� �@���x����0|
 n��# `�!��@(��Ue��� ��P���7�(Q��!Q2�#�@�q#J�r� nD�P�q�!q��� �I�X��0�#� S�1���F��a(8A��!���7�`� @�(�G@�C' � PF�����@
�� ��9� n�Q�D	C�d(G�(�F�� %@�����C�(Q@� �*ia�G@ �
bBQ
�q�Pp�C
@� n8���(@��Q� �� �
N@@��$V��W#� �CAP�s�#@���D� �D�P�Q��(�@ J��%C9� ��Q� �$-@bU���� �@L>�������
 ���#8.@�p���#P�q�4A#@1� � �@H�*#>�F@ (����� G��G�: %@�����Q2�#�@�q#J�r�#@��D@HZ�����i@��|(�	E50�
C�	 @)�Gp\�����G��Fh<�F�b(8A@�2
�XUF|^� �@P�A
�@ �q#�u@ J�%C9D	7�d(G�(�F�� G�G�:�(�d������N�:��S'�W�^����w������=����V6�d�Z�Q���Y#_|��|���������[n)�7�m3���?�,K�.��?�\�Zk-i���4m�T���k����v{�w�������5�m��&|�kpX��*�'��#�T�
*k>�
i n�a��#�+@����gT�q�Rg�~!P�����z�@�!i�%�����>X�������cMP��q�e���w��=v��������6�����e��2u��*����Nr�����GY�^T����/=z�h�����o.�{���N8��^�Oz=e�����w�W�^2|��|�(CGH�rt�6 �@�	������!P���J�!��@eC*{~��(@���Y�OT�q�����!P���J�!��O��k�����{�w\���_|Q4��?�L��0a�\z����"�?�|9��s"��7�y������\��/��{��z�W
4�{�/����n����>���g��:�#��
�X�� �"���
���@��)�,��@
C*pR�.@���	�{T�q�'�.!�"bH�&��z��z�\��9�w\���3f�q���FR�UO?���v�i9��������E�����NC���8�r���H�n�L��_�I�&�b��*�{����*��n�W����^N��^�����n��$V��"��/@b�/�/ �e�CA�'��#�B�F
'�.#PA��
���@J�)�(��@	7*h2�
) ��p���&
�JU��w_�;��X���?�����K.��F�U��-������k��A�vx���j�*y��g����������>���S�_hR��Y��K9����n�-��Bt�D�w�)����?��.�������^N��\����2p����*�CbUX�k ���@*D�2t�	7R4Yt�
 �T���%*\��Q�D��@�FN
]B E��M��]�6m���L
r��qM�U��<Xf��|��'�Xu��7�M7�d�q�e�����n����
Z�e�=����6��z�r��;V���g���_|!�{�Yk�
6���gK���s��n/��7�|#W]u�<��C�bsNb���~ ��?@*D�2t�	7R4Yt�
 �T���%*\��Q�D��@�FN
]B E��M��]����%W\q�<��c��^����t�;���[���Fl'V�^�Z��kg���n�����^����IW�=z�)o���l����ZO4��_4e���75�g������G}�����������!C�������I��%�E_��*_�_@�,���2O�G ���N]F���!4t��7R2Qt�
 nT�d�R(@I��U`���g���c�u��
�������|��w��Fm$k�����������k�ZOZ�j%:t�G}�������Vx� p�	E�_}�DDWp�����5��k��a�f��=y���r����������~*{�����9�����o�5A�y���z�}��x�\�OtN��_��c����SO�j���~��������/��y��'#G�4�'�tR��n�r'K�.�]�p�������x���m����6��mY�h��8���q�g@��Xg�ud����|L���?_�����nQ��uk�?q��r�Jo�Gm\��u��o����v���>����S'i��a��q�j������;W>��so{K��i�����3?����?=_{��e�����j�b|�m��-@bUEO�CpI�.�6cE��q��#� ��1���g�.@�(��'pU�����3n�C�8������E9��k��r��w�������q������K�-���G��u��r4t�Py��GD�����*��O����]w��[J7t�=���X�[��8e�/��_������D(��O<a�i�J���_~�������w2p������7�����D8M����7���c����o~�K��U���	u���&!E��s�
7xI@�:��LZ{����D�`���&*�����XW�>������D��=����F�!���{��^��{�m�������T�?|�poU2�F�.~;���s���������_M�����$?��h_��d?�g!����6��/@bU��=DpD��L4�D��q�"&M!��1��Ig�)@�(��pP�����3d,
C,b�����W�q�h���v�[�n2k�,��>�@6�ds>�Ulte?�EW�������Xu�����+������8�U�������C��u�z+��l'V��S�&M2�	&5�����������RM\�S��w��)���kM������;e��a������;z����_�'V�JJ��u��'���J�X��j_���k��V0��y��W������_z+��������	��K/5%w�u�|���ZW��$.�r2�q�Ygy��+_��=��C-Z��v�'NW��u�������p	�d��yr����D����y�&M�-159MMf{��g�U�s�>U� 5$V�f��( �@��P��f|� n�7�E\ ��4��;�
;����K�
�f��"`_�b�T[�?�j���x	�� ���z�&;\:4�����>(C�1���;=z�0��]MHW������J����_z��N�v���o�&�J�dtk��:(g����M���=�Xy����n��M�g�!��e�]����&�5j����+�����1C��v[�2���\�J�=�P�����h���i�������^��U����>��]�~5�K��q���uf���SG/4QH�	�C�I�e�]L�����J�r/��$�9s�x���zL�:��������y���R�y��
�_I�����:����La�?�����
]�K����H�\WY�1���;��Xe�'�{)K��U��'z� ��
�d���e��eP�C�1b�c�p� @���H8&@�pl�.��!�Amn�u��g�$�x��"�j�����M���Vv���'��~�<��S�X�4�%�Q������N������`���i�3���F�2[�i�����6�x��������>��#��W!�i��Ga��|��f�>����Ts�tb���+G��&�]p�R�~}�����5]j����<�j���#E��C���k�����_��������{u�F��;M��M�������?�E��/� g�yfN�R�m�%V���� ��a����t�����vTW�{���L�u�B���e���LMN=��c��/�����'� �*uSF�@�*�����,�B 9�Fr�����f�1"`W��a���pA����,3F� �$c�bb�J���������WA���o��tzS��?~|�zQiH����~'K�,�����{���>5S���M����4AHW��]�����������k���N:�k�v{~���M2�*�7��S'o+���Z+o�t�*�j�?��C}��'9�T��t��7��s~u%1]�?�[.��W�b�������������{s<	'i�8&O�l������*�nOWf[���My�I�h2����jV�
v@W�d�e����pbU>�e��N����MF��
�:��������2.C\�e���]��]OZC�����HN������U��R���
��^(0�����3h� �R���^���iH��a���C�����k�&Ni����q;���w��y��'�[��_����p��n5�+��a���>��L��mu�)M`�D��o�]���?_�s�	=�����:Jt�����W�muK�
���?�(;v4�C��	q���"j���r�)r��W��y�
&�m�����[��/�$V��Vp�,S���.�/���V��������?,��/��X���y'� �*uSF�@�*�����,�B 9�Fr�����f�1"`W��a���pA����,3F� �$c;����=�'�x��b+@��&��
;�JM�E��f>t���z�+�m�>���W_
���������d��+V��t�DM��#�X��*M2�o���n	w�g$��yI5'I&V_�j�*Yg�u�n���������Z:w�l��;�0���;r�L�4�s����o���s�1�(�*��W!�6w�}wS?���3����3���������+V��F���&Nj���^juh�o�[�^�*	���P^�$VU��C@G�P��D3L,
7,b�
C�t��@���"y�N:CF��1�"f�)W����[n�n��hL�:U��kg�?������3�<S.��bs?�I��~��'y���D�;t�9Md��`b�&�<��C�=���0a�h���j>�����N���?��������H��]�����^N<�D��v{�%���M�*�;���L�V�u������?M�����/�j����_���~��<�;������7�tSSE�S��?���#
6�/��.]�Tx�s/������$���~=)�%��e�V��.�m���+����	�����X����� ��CA�'��!��q#T�D�!b�C��P�$@��I38$@�ph�*	C@��I����S��v�:�@�v�m����Gx�3����R'V�X�"g+���6o�<�h��d���6�;����<���=��3f����_Q��k���wN@������U������r����{��G�H{�%���M�*�;�Z�Q���O��%T�E��K��������_6�l3�����NZ�li�T��c��k=9���~���B��4)�?��U:t�)S�����-�����f���w�K437'�����UI�^�i�H�J���]@��
�� �s��HJ����,�"��1��yf�� n���-� n�1�����!����X�����6�|s���z���&f��x�z��I
������X��[7�5k����������B��+��B��g���;��n��5��z��L�2�����{Nt�$��������.m�����������{9���E�P�����e���jQ�Uo���u�Q��&�������_�b�V���'����o��I0	*�F-.t�t��#��!��m7����k�E��v�m�+��27B'�"���������c	=�2n?b7H��	�XU6z^� �@�
r=�B���5Q��!�6�A�����.�"�@�q#��; P�1�f�Bj��X��3�����{+8i��&�Gpk:�,�o������t%��u�V;�SO=Ut�D�>��#���A��[^�P���u�����O?-;���W�v{��.K2���5�������u���m�z+�ir���M�6�����XNTs?q�W�^�+��L �
~���6xZ4l��_����z��s�t&#��Xe�%��e�������[��y�J8�*	������ ������!�8$���&��"`I��a	�fpT����3l� n���8*@�pt�6��!� C���X�j�*�~����n�5r�H�nE&S9�I8aH���b�-b<��*��ne�w�q��\�_5�F�Y������U��Zk-�e�]�N�:2z�h���kM�3f���cnN�	3�:u�?�����;��c�����n�I�;�8s?��E]������A�^U���{�,nbU!��^�~�r^y�Yg�1�#�m�]��6}Gp[;M��l(<�o����
�����/���4�������J�<	����Xe�%�����k��~��'�����������CT�X�*vj� ��k|(pm�/�7�7�\ ��<��������.7\�}��@����
���zb���z6�`y���������~M�W5jT>��J�XUc��T�6m��2No�|����y�zE_}��������t5����od�w�/��c��[n��\�;	&��Zl��������U���\����#F��=zD>��_x�~������K�����k��u�YG����/�,-[�4������.W_}�)�&M��w��\�;Y�b�L�>]6�xci���4i��K������~k}�.��t����[�]����&�S��F����LE��
�>����
�����K��f��"`G��a��VpI����l3V�C��j��X���g$�x�6����p���,�]E���7
<Xn��Fs����>��c�ks������]����3f�h���{����K������4��?�[�(��g���^�?�H{9���H2�j�������������[�\�O��+W]u�)�����*�����h��:����������{����O�>����;�C=d����z����d��nqx�����R��*�.�>���r�)�/���ZF�K�N�J�'�/�W��U�?G�@�>82���
��4����'�!#P�q�H@G�A�������(@��IS9���&��]�
�o����^�z���Z��!�J�	1�B�D�Z�I@�v��\����+�vsa�GyD
�7'�h�+3���CW<:���e��Y�8�V���3/�8I2�����9s��7�
i�m����������|��m�6�:����W�n��h�"s[��>�hs<���OD���-���_]�7on��&����n�y����X��O��\4����g���}�������y!� �*U�Eg@�,���,�.cC �F2����+�Wf�q"`O��a���pE����L3N� �$�J��7n�\q�U8(��w^���iI�����d�����u�]�mQ�'C��=��"0�H���x��9������k��d��%��n	��u%=�-[&'�tRNRU��B��3��8I2���/��'�7�y��\�JW��t�����C����C���o������7o�l��F�e�_�.�W�^9����tKA�x������9���kW�����*�om��p	os���D�#�<R��f��������]u-|����m��;�N��U��+z� �q>d|�	7@�I �84�K�
K�4��C�
�&��"��1$T�4K�.��w��\�'��]�-��Z��%�J��T��v[�7�`�s�=EW�
����<������9����Z�����+�~����9������`S�N��M�����������db�o�Qe�$�������	�Q�|���UV	�:t��u�]�"���bSMG��������RM��5j$���M�
�r�&{m����Zm����W_-��~{N��\D%������T��U�9/�
@�A>88��"�E�8�C�`� @�(�Gp\�����G�HbH��<^�@�>}�U�������<���eA�iJ��-��+��R���My���e�
7���+��"�����zR�AMRkm���v{Q�J2�J��+w�*Uq��={z�}��
3�u���
c��/'���n�<t;E]E��CW��� G�USU��&�=����
P�j�b�>����������w/���n�V������\����.R%@bU����"�dY�Y�]��@2��d\iW�!��4�D��q��%-!��q���f�$#@I��V�'�[�ir�hrI������~���~������f��V�11N����?^t����W_}Ut�#]�(|h�������������z��E�����_����s������]��v{U^�K�;�`�����+���|�)��7�~R���8���d��;���~�����d��/�������K����(��[oI��u���W��{�y��Z=K�t��=zH�
�5!�����;���1�`R.���D�t\�������&~��w��n��I��me���6+�v�ar�w��g�m���8I��U��2:� �U>duf�	7���e\ ��0����
������
f�1"��1$9[ZF ��n����,X�@6�xcoE����G&��k#X�f�oK��s�z��i[�n��4l�0X-����b��bE�_|!�/�}6�tSi�����Yu��������>j�t;����{[5j�t��z���p5O��%�Pw�	'���#���o����NQ!q�'� ���CA<'j!�������j/@��O ��q�����@���7�	��1��!�T/0m�4oKCMT�n����O�6���w�]U�?t����������U��9#F�P>T���-*X��Q��C�H�1$�D�0�F�M�A ��L]D���!<9t
�0��������n79d�s<Y�z����.4�O=���6�� �*�
e ��A�e@���\����	���Y�R�	���P����I���Y��Q�	���\���	�� �@	t��6m�����_���[��iR�5�\#w�u�)�`�
��?Ll�C�"NR+@bUj���#�dM�Y�Q��@�����yY �dyv�7�q�U�,@����26� �$o�@�,	���O�L��3�8�K��_��,Y�D�{�9Y�lYN�{��G<���2.
�X��@�2
��������
7R:qt�
 �T�D�
R$@�H�d�U*D��Q!A7H�1$�G�@�2	�\�R?�p�?~�6L����>� ���yg� �(���
���@�7*|��.@��	�{T�q�'�.!P���
� ��@�C*|�� P��|���{��2z�h�D��c�}����K����P�� ��Pp� �@y�PP^��@�i�5��@�C*g.�	i n�e��'�#@�����'�Q���Y�� �@e|��w2g�Y�x�|���j�*i�����]v�E��r���(�H��U��&:� ��
\�e���]��]OZC�5b�k3�x(^��Q�!- ��q��g�� ����5@(L�����x
@�|(�NJ�d^����)f�$*@I�����q#����HT���(/�#�ybH���"� �
�R1Mt@�>�0����
�����k��f��"P�q�xCZ@�5��k3�x�+@��Ik � P��U��� ���P`����q#�S�HT��(/�#�I�F&��A!��q#Q^G ����O1D@ $V�b��$ ��|(pa�#v�v=i
��!��8�E�x�F�����k�
�f��"`W�b���@@�0�
s�)@����:)
"�y�F���"��1$Q^G ���LN+�B Q�F��4�@��!��b� �@*H�J�4�I@�P��,3F�
7�z��	C\�q��@����
i����8�E��1��'�!� �@a$V��S �X�C�uRD ����O1D QbH��4�@&���V�@���Dyi��C2?�@�T�X��i�� �.����Yf�� n���5\ ��6��������	7\�q���]b�]OZC@��H�*���@�.����4�@����b�@���Dyi�L
729�
�D����8� �d~�  �� �*�D'@\�C����+@���Ik�&@qm�/�7�7�\ n�6�������� ��	�XU�O!� `]��Ii��72?��D�!���8� ndrZ�
7��q2/@��3@@R!@bU*��N"�� ��f�1"`W��a���pM����3^� noH�&@�pm�/v�!v=i
@
 ��07�B@��
��� � nd~� �
C��q2)@����2( n$�K�d^���)f� ��B���TL�DpA�.�2cD��q��'�!��1��g�/@�(��pM�����3^�
C�z� �&@bUan<� ��u>X'�A2/@���3@ �$�K�dR����ieP$*@�H�����1$�S�@H��U��&:� ��
\�e���]��]OZC�5b�k3�x(^��Q�!- ��q��g�� ����5@(L�����x
@�|(�NJ�d^����)f�$*@I�����q#����HT���(/�#�ybH���"� �
�R1Mt@�>�0����
�����k��f��"P�q�xCZ@�5��k3�x�+@��Ik � P��U��� ���P`����q#�S�HT��(/�#�I�F&��A!��q#Q^G ����O1D@ $V�b��$ ��|(pa�#v�v=i
��!��8�E�x�F�����k�
�f��"`W�b���@@�0�
s�)@����:)
"�y�F���"��1$Q^G ���LN+�B Q�F��4�@��!��b� �@*H�J�4�I@�P��,3F�
7�z��	C\�q��@����
i����8�E��1��'�!� �@a$V��S �X�C�uRD ����O1D QbH��4�@&���V�@���Dyi��C2?�@�T�X��i�� �.����Yf�� n���5\ ��6��������	7\�q���]b�]OZC@��H�*���@�.����4�@����b�@���Dyi�L
729�
�D����8� �d~�  �� �*�D'@\�C����+@���Ik�&@qm�/�7�7�\ n�6�������� ��	�XU�O!� `]��Ii��72?��D�!���8� ndrZ�
7��q2/@��3@@R!@bU*��N"�� ��f�1"`W��a���pM����3^� noH�&@�pm�/v�!v=�{�w��>p|U�R� j�\
1!��4��I���!��RJL5��tCnI�2BBH����B��2o��eJ�{�8���k�����9���������^{�������{9�y�ZDC@��H�����@p.��I	��~/@������ �
��D�Kp�K����e���T�~#R^�#������/17� �@N�X�/� �|P��2���[�
��DC ��C���~(��F�
��@�	�o��+��"�V�>��'�@@ ;��s�(@��A�sR"���o��/17�@��!����R�~c�|Y�)"���������!��K������k��e�T�R��Yg��8����u���j��y�q��r��R�J�12=`��=j���j��5���VGu��Z�j�aL�X,���_����[U�tiu�G�����2e��6�T\��{���Jj���j���],�������
6x3{��U5k���n���"`	�XeaPE@�8���8�97�)@����W�@I�))���@��o��k��"PR�7J�+�u ���!�����UKb��^�/^�Q���$(eZ�����z�)��G}T��O�4D������SS�L�;�7������������/��~�A�5J�u������k��v�:��u��5�����U�N��]�����w����>����Kz������C��O?�Tm����\�bE����V���K�v�i�}� ��H��W��@�4|P��� '@�G��@�>$,�"��'@��d*@����@���5����]w��%�����L��O��$�G�(����n��6}��KIj��?��t��!�1�\sM\r����M�6����/�7%\����$+W�Tr=:����\�sI��m�6��_?���/'zi���m�V�z����jq;��@�$VE�Kh@2���L�h�"@���E�>�(z�@~
�o����]#P����q,���7�k?�����{}�-��$V��9S]q��Q%V����������KVd��+V�m���Mq��p�W_}�Z�ha�t�j���-[��m�������*��@IDATU�R%���t�����PF��u)��*��\��u��]���K��,�;�8��|�r�MWZ�j���WY"�OH��'��@��|P��� ����{���	��d�Ek ����\����q�O�>��J��$
�HU�>�l����q����{��q��y���D�X�a���i�n��fo:<It��c�z���T�n�|������s�9��M�HR�L�������M�v��G*�"Q�u��A��u���{������x���+~����;�J�gb��{.��&N���%�Q�o�^�+W�{��o������z��_�?������Y"��UQ?ob����o��F�.]�{�t��G�2e���7�E�����q4�(@����:���;�w�DB _�7����>p'@����H��}H>���w�������c'�w!����-[�z���>���PS�"�j��a��0���������Y���Z2e��O?�w�e�]����c�=�8��F*�W�V�_~��b�����?7�4���x:�,7m�����5~�x{��%��������$�cU�V5�SU\�sI���qce�H��/(�����N>�d��;�$j�6" �*V�����R��:th�m�(������}���e���g `�A��A��o�Q�
$�I&�vH&@��L�� �L�~#��@ �}H%���?���&L�����8Yb���4z�ho��TA\'V���O�^�zfj>�v�����K���$�q�5J���?�Xs�1f]*��4}�t�-Q�S����i�W�L�������K�u<�_�������o�,�O/��X����G�w�y:��:u�:��S�z���{.����_��8��q�����#G��D����J��1���i��/o�� ��UQ�{�������^����f[�l�$��B�
����\�
����G ��,�8�}����!�7BB�������Y��d��!q2���P��A*c��]J�!���C�f����Z�R�f�����N�:���OW/����>o�<%S�%*�P$�7�EFpj���/�D��.��b�Y������}�d��o�1iL���Q�Ff�?����W/�.	b5k�4�M�4Q���?�z�"��8�Q������x�
��u<x���Jx���[nQ������m���n�q��mb��{.��&O��M;��y�u�%�������2e�/A0a�,7J�����HZ7nT��W�\�K��U�V��2m�$+�"�����Y�r����#��j��%J�
=������k����T�r�_d�m��ySa�\�R�}�u�Y��C�&	K6.	n������E����~�M9*�����o�k�cv���]��e���>X�)���;�$���'���p�	�O�j�T�R�Rv'�Ua�h�@@@:����wqIU5j�����|�v�7���Z�N�nO�O�
��5��(��FQ9��������G ��l�8���������G���!E�xX�j��4�5�5k��z�)��t)�Q=���f���s�����?������dt��_|QI��.��d*>��O�
x#CI�L�����*����FIr�D�T���N3�Pr����.�$a_���}I3�������/�}�u<}^I���8]?�p�5���_���z�*��*��\����e�����|�3:n�8%���*��*I�������_b��k����H���`%K�H���Hf����]2b�\C���l�>}|S&�md�����O�}���f_��rq�����]������w����w�E��Ky����=����[J.�C=�
V#�"E�%����+Vx>�Hfv[I$��NF�+j��U�,u2��*{��-Zx���^��������c��_�~j��!z�% ���+ B�~#M@ �}HRv �@��$0lF���Ii��!�CB e���vgqT���{N�HO ����?����/�TU�T1�����"���$�J����N�:����M7�d<�IKa�$~�=T���U�2e��\�D%��U2���/�ln�Nj2Ek��if�$I�D��G�_Y�d�T��'�P�
2M$v��u�u���Itb�$[HbW����(9��X���Kz<��d�Nm�t����<��-��<���_�]>��u��W�Uo�7;q���*c��U��v��2f�o�,�AF��$.�4L�������W�����^I�I0�$�DE���;z�\���X�x����+Mr�����S2M�$�I�$���~�nb�22�<�a���2*]��U�4O�����,lD ��d����4�d�H�@����"���{��&��R�Jj��u����PG������x��K\
�o��$�'@��9w�@Q�7�*�����F����1.�C\j�/��!;���?�oC1�nk[Z���\�W������={�s�/�\s�YV�{@I����;�P������RF]���.�$VIB�L#v����6�:����/W}��w�2j���n�B�z���}#}I��G���Qf�T��3g�c�=V�&\���D��.��k�:��I.�����������N�r}�%=�~M�.��M$u����y����R
�9����t'I���-�SI{��X�d�@)2���g�i������~��{���^����o��S�vR���_��|�M��z�Q��������H������j�vb������@]��S� 4�h�U�v�N�I,���J���g�}V����w��7l�Pv�a�g0���%	��^_��
�UV# �����<��� ��������,P��� �A>(�����7�	�R	����a$��H��6H%@��J�} �N�>$�Pv��1�j����i��S�%;w��d�1]$�H��S2I�J/��*<B����jK_���#�������T�V-o��;��������������r�%�����7����gN��R��U�����K�R����%��N��Q��d���Bl��d�(]:u��z������'z��/#BI>�.�Q�d4$��Ed����W}Ky>�;�<�M�+�g�"I�����$^��x��_�&o)�e���}	K��!L�X%��� %�a�l$����w�"*���	��K��L�Z�vm�ML���:���L�X�q�Fo�C;QKF�:� s��e��b�^7�8D���H4A�����J�bN6����QG�����)����!�#������
�od*F{��Cl
� F�~#�m@����5�#�@��!���k���U"��N�j����i�&3%������|���v�6�Bb�o�[�v�Z�5j�dJ�tE��I��Q��H2�������nT�GF������Rm���V]���H��$�����S#F�HNf.�G������'l+I1Gy����=��x	Al������7��K��D��s��C=4��6����:���t��	��U2��.������k_"�$-
6L7�-et7QL{L�C��


�n��������wf�����>&N�h������*�nOF�;����P^=jIP����h_��a���a��9QbU0��O�>�k����"1e�\%;����_��n�NbU(&!�?�J�,N]�S�=U���k����e��mqCL�},@ �� _{��l�7���8��@ S��L�h���
 �@Q�C������w�T�����ECFXj����I�e��4c���3�(�)l����O<��r##��l;��$NI��.�<t�gx�7�x��4i���V�^m��*���jPF
��:^�k��g�X%�}e�7a������[���N�6�����vHU��%me���??�ai����2��$0I"���>����?%=N��DLAKFq��$^����z�������{�����������2U�$m���Cu�������A�)�JS�����N��q�U���#f����.r]r}��T�����z��/�=z����������*�Sf���t�����^��tK��	����M'��.�E��?�>������>����(�F* ��|P�� ���F�d��}��AB	�o�b�X�U�X�>$c�P���U�� �����d:*9%Xd��9s�x�et�����>x|.$V�w�zT��#V�d�DI�
,Lb�$��{���OF����"�gN��R��U%�����x)�]���q���!���o_oZ�t�g�����Te��Iz��D���&!���/V�G�������gAo����.2Z�e�]f6�#�����p����6�Uf������
�k��1����#V������$�JR�.2��X'+��v�)����U���n��_F��r'�p���z��HS!�*
�
Hf�dM�"���������gw����nO�S�
��u��(��FQ�8�C�@�L�72�=�o�7�E�)�^�c�5�JDd ��C���^�zf}����$���_�~f���N�����{�=%�TE�8�D&Y��U�,2~��T�z����$�IYGF��"�K��	~����yt�D�/��R5k������{U����u���IRT2I���1{@
;�����h�����l�1�[�� ����O�$ZJ"�L�&��]�%�d��q���[�~e:K�>n��e��qz*9�6Qb���[�3!�dJ?��"�`?o�(d�}��k��}�)��_�����������`bU��G��J�.���u�����`���=�W0�JF������!
4�M�hv*��7[���g��BbUP�u�������K���T�R��d�f���E�|�k�N��D<>(�2���T�� `����@ ��F%� ��-@�akPG�L�C2�>����S�����#�LU�KpJ-�=�r_'Vm���7�W�k���C9D5n��K������k��:����#�xS���2�Y�����`2�$��+WN7M��7o�j����'�/���H�����d�X�"�
Nq8u�Tu����:��W�
]__2������]�>�"�Pv����d��<�����f����3��*{_�z��*iL�Z�`�:����0��o�
�"��=���W]u�w���H��$*�b'V�~��j���zW�eQ]b���Q��9G�D3��������}�uX�j�j����~��nHb��`�@Hy��������w�N;�t�g�y�9f��Q���f@�P�
�3@�L�72�=��!�u#@�F�6 `�o��@ S��L������*���:������8�%I2H��T#%���_���U-Z�P�����XFL�"������]�h�IG�8~�a�N�2I8��xty��g�����������jY��U�����K�Z|��7����6��n��C�f����2���]�vy�Z2�e�"}��>S�&K��;w����KM8I�l����������.e��q����d;	���I]�#y�t�c6o���nP�K�t�"q�=�Xs��u������3�x[��U}�����d����]$Ve���. ��/���a�7Z����lg#�����JAl>(�5�#�@��0J�A�d�!�d����7����	�o$�a;��	��y�|O����d�?]�;?�I�$�HIL�S��ma���Xe�#�$#y�)S&��]w�u����c^|�Eu��7��%Q�~��f=Q%�$S|�q�^S���?����\�sI�������%���E?���`=����{�*y^}��`8o]Fr���O:�$%�=��L���/YbU0AS�������M�(xR��No�/�����M�
�eO��1���f3��*�.����E���Y��M��5	&V
6L=����:���>����H"���^���
�U>VH/ ��d��&�J��O9�}�����T��=�:@@�����T�~#S1�#��-@bkPG�0�a�h�����A2��T,\�|O���c�:����p����T#2��!*��!����#�q������2m�.�G��F����R���g����7��K�.���S�T)%3��u�]����3}#��V�N�8����+��b�JR���O6J��W\a�'�����7��W_}���/�5u/�����;���=��x���Y�����m�x$IU����d��tx�:u������72�q��h(�����$L{�+;P���={�75����K��]���,������m����n��\�G�����^�����


�v����'����G�K��
H�*" ����d0��"]$sS���*����}��2_�L)HAl>(�5�#�@��0J�A�d�!�d����7����	�o$�a;��	��y�|O�1;��b��j���w�����K��9rd���G����l.��w�5�������Kl����������6�K���e��M�n��zU]~����4��*v�G0y�u�D�n+��*��\��i�6RFi���=�Tp�&$�1��������"#f%+2u����JPZ�f���t2d�:��}�������v����Y>�����;�4�/���:����z����5c�U�reU�zuU�Z5/�K����T�-�]����]2
X���
����eKs�$�u����'���_�R2R���?�rH��I��X���$�R������Mu�#��LT��?~����+�5�]2a�e��BC@@@@@@�
��2���g�Y�.7/I���J=�����&g�Vw�/�/O��_����C�S�<�����s���-s!�*8jWp��
?��#J�Ct���?���z�[��_���K��v��7�p����������O�R��UrI%����I��$+�����Q�F����R��e��?�/_nN�t�RU�B����)w�q��,#������i�FI�y�:� �|��o����}��&�����)�+HU~�a%S��"S���K��L�\�����J���E��.�����*m��U7n������d��9^R��\��;WI��.��u�DK���
���z�oxL�C8����&M�e��<��<�)N�r�U)y�� � � � � �9,p��W{�2W2��$,��:�LA&����&��\H�����
G�d�VI��$7��ye@����/��n��f�{ne���?2��>1�|�6�T�����%��J�Z�j�j���9��O>�j��e�SU\�sI�7`�5f�C"	/&L���dv:�\x����/�0Qe���;����D���KxJt��)S�J�Z���O?)�
o��f�$N���5�v����Vr/���}}���Y��i�Ib�k�����.�Y?��C��������[�c������*����r���J�9
I"����|�M*����:�U�uB�;��)�����
�<R�R�yYu�7��Z�BbUQ9@@@@@J�@�N���CA���|�6x����2��L/�m�������?�������=���M����>��so�@;iCF�i����8Y��s�������]k�����^F���a���m[_�C�l\�3���*�*I�P�]�sI�'IM��c����^s�1����.����-e�$;������g��y�pc�Z%I92��L},��~����dE�O;�4_��n�x���S��ty���tso)3jI��L)����t��7���f��y#~�6��$�*
����rM�\)S@J����~�dP	/X%V�[�NI�]d1I��Z���,�ir?�Hzz�W�'��!*$V�@�	��dy�0���p��^{�^M��NM�D�e��m��Yog� � � � � � ��
�_�^�q�q'�/��?����a7�Jb���$R�1�wk�x ���HU��d�?��OU�lY�1z%Q��k�����F?����[��`S�LI��:�������X%����Kj<{���KzU�5I�����)2��]��QFW�g@�V��v[i�p������6��d��SFlJWd��i���5�$�#�8B(I����&'�^Gy��9����\���N_���S�$K`{��'��A����D�N8AI���t���w��g7�Z'�*����?��~��_�
�Y-w�"o������!D) � � � � � � P<����F��go���z����jVK����[o5���7/.���LRY�h�/ad����t|I�g�Y�D|����$=�+'�|�z��WU�J�R6����Q��Q� �)b-qS������$V������O��N:����9%{}m/Jb�����d��0E���~;�GF�
��f�J4*�L�(#��+2��L�9r��tM���6i�$o����X%�F�2q�D��[�����eJ?�F'���rQ����/����J&��e[H��V���Z@:;Kt����J�*	Md�?;��g���Pt	�@@@@@@"�i�$�JIdh���^�j��s����{�c�����0c6����{��'�LUU������#���$@�������\�r��	�M�e7�A+n��&��]��`�u�`|Y?��M�F��}	4��G���=��x�F���T��s�=7��|���)A�'Q��$HN���o|�Z�4�Lt����?��$	��Rs��Qe��1��U���{��l�,I��i���U�|����H?�������%K��A��O?����P�~����-Z�SO=U5n��Xs��+I,MVdd*y
�{�=�������s��\�qH�
���@�h��hu��A�\�z�ab���J:L�����v���	K@@@@@@@�Xd�>)����R�+W�F��Y�f���t�g�oJA���P��c�U�zh�C�w/�IJ�F��\�����^�Z�Z��K��������d�R�J�%��S�Q�O��������{�'Ky��(��b'9^u�U����u{�d%>k����Y�>�h�(Y�Y��V#�,����c���J��dW�p�:[[�m%��N��,w��� � � � � � � �������7��$�w�q�u��)+e�TUK�/����m�K��&�~+0e�u�E��_�f����f����W�jUoH;��� � � � � � � � ����L}�������L��gO�nW~��'o&������o���7
��P����S������/u�e��-[����J�*��3g�z���l�N@@@@@@@@ �d���O>�w��OW'�t�o�$U
2D�3�l�X��Z�padS����X�f$�����;�i��%lr��7��n�MU�V-�~6"� � � � � � � ���@�N�����}�t���{	W���Sk��US�NU6l��y���U��M}��s���������������������I�'�v���J�*��}r3 � � � � � � � �@*��[���-[����T�|�
�:v���V�+$V�+��@@@@@@@@��6m���y�5j�(%�V�J�&MT�=T����5)��$V='F@@@@@@@@`���}����/��U�������;T��U��<�Lu�QG�X�J�K��!� � � � � � � � �@q	�XU\��@@@@@@@@J��U%����@@@@@@@@@��H�*.y�� � � � � � � � �%V�����pa � � � � � � � � P\$V�<�E@@@@@@@@�+@bU�}i�0@�\�1c���{��Y��:��2��X,���]����U�tiu�QG���>Z�)S&�Xr��xY]!�@B��������Z���W����#�L�.�F����xa��6 �^@?���/We��U��WW��������N���~P��-S��o���c�9F�/_>q�[]�qJ� �@������;�v��^��I����x��m@`�	��
����;u���{�wT�\9�p/��@�������E���;�q��}��(�����x!o�f � ��~HKA@�,^~��X�{��n�!�(6l���������j������v��:��x�OLCH)0w��X�f�b�*U�{�e�����OR��w�~�]����:d/�b��X�6m��
y�P�F����c��}�~�{��G���{]���cl��5�/��i�Y	��=�����93T��PL4B �,X�W�^F���_?�m����=e������5�e�-bs��Iy|p��x���#�@v��B���c
4�{��3�o�1V�#���]?�����"� ��~%��U��GGA@ u���NS[�l�/L�R�_X�
��G�/������-[�^xAU�P!Yo��x)O�N%�u�VU��7n\�����{�U+VL�����:^�gd$0j�(��K���&b�_|Q5i�$e[-�q����� e;�U�;����=����\�Ky2v"�@��=�����Kab�j���^M�t���������<�����k�����7�*U���g�u�5���^z)n_p���S�\��[w��(���y��%�\�V�Z�2Na��?~�*L�L�����:^�g ����~�&�� � ��V�\��Q�n��+��U�/N8r��>�hD��/Kc?��c�;s/����	�k���v_Q�N���co�u9&Yq����������	����	�I"Y�!#M$+�	�I=.#d��G/e����������D�@g�:u�{���X��Yw��@�iF��dY�X�P�09<�����	�	�O�0!a��u<�%M�0Q*�3-#��g�����z$=��g�u���@��w�M"� �P`��i	? �X[��_�z�w��w����5+n��~��%������ Z�p���G��m����(="����v2�h���Yw/�5�
2����2���M�L iS8����|y�������V��,�ey����Y�ti�i���6�?$+��%;�@���k���{�u�.�����:�� ���^g�	I����k������;��z�-K�7��72������b�z��k�lzc���.�
 ��@�(�q�q�n�|S���g4l���.��g�~�]��
��@@`� �j�z9�@�(���:t�} �?(�e�����u|�_z���]�v�]��+|�������}��x:.K(�@pTI�LV�IX2*M��~�]�^/� ���$`��-���DE�����q\S����'IUk���k�c���d�O?�4���xq'`8X�fM�q�_H�X��Yw�)��s����|�d���;IK���X�r�]w��;|��D�|I_.�%<	@ c�<����A�%�!I�u����]�lY\[��86 � �@	 ���� \ �@��4iR�(R�R�X%�S���/������$�"X\��g2�/1������N$8Z��m�|��~�]��],+ ���$V��C���}���7�4m���#G��������k���������[�k+����:^0>� �N@F�k��������,S%V�~�]�s�D$�e��a���Y���3�K�!MV�����%�[����:��:d/ �����$E��pE�Q����=�����g�u<���� �y+@bU����8 �@X�?�����0`�����7�xc��2��>V���5K�^>��a��12|�]\��cSG����?>m�!C��g]�y{�����xio� J@F������U���}����~C��
�`RE�){�c��m��)�d�����@����Q�|��L����B���\?�����"�-��+����.8�2t�P_�D�i��%�����N�j������
d-������d#��l��9��I���r��s�X��:}��g� �.H�r�I,@��R`�����K�3fx�j�.�j����8��
K���];�1������ �@(mNF��_m��Q#�����=��;��=�����u����
@ #�����>������S'�i��CdD�����7��T������1u/��������z���r�,�����:^�*����/�%a'������k���p-k���v������Y�	��iQ��g�u����#� ���!@b���:r �
��*��G~�$������"]b��1c|X�_V�x�����}�HB�.����,@`�����u������x�B� ��>���Z�l�{���;����d�����������hy�{{zA����m PtI��_��y������cG��*����xE"���	��O���kc���n��G��~���c���}X��=����$]�Q����a�����@ {������?���#�����x����� ��-@bUq��@��,[�,6b������/��0]b�w�������@�I�N)6q�D��u<�
�S��s����z������Yw�w�� �@���fpDKI��/'�"�^��S�z�){w��|�j��[7��u<�
8�����9�#g������:�S,�!��ob��+��~_��a��#j�o��M(�:u��>K�������D��	l���<��?H��FT�����~C�����c��d�D����:^�kf ����U���s� �����L�X��gO�����G�Jv9�f��#S���:������L�!_P�}I���}��Yw�w�� �@$���JLF���������C�1�/_w�7�x��v��)qm���?���:^���#�@�dT���vu	�X��YwO�K(����__�a�����
�K���q�/V��}C]`��M�q2j�.����,@�h��m�/��Bl����m�~]�g}���q'w����w�l@@�� �*o_zn@�����@���:u����A~E��|��g�cF�eq����D@��m�{����A�]\?�����J�����{�HU��mKx��������1#a��F;���_nv��gSA'���F���o��ql��=&v��*����x��� �@��M�f����R��/��
���g}�_�b�/��w����l��K.1��9uqO�e�E�T~�����3.	�vq����g_+u@�o������@�(`X�.���+��}���_~����W������ ��;���Q��������Yw/x��#��[��������=���Q������N:z�h�q�g��k�h�|�����ys��u<�
8h���yv��d6�����:�,� ��' #O�����M7����/��]�c�w�y���)m����5k����}���.L��V�Z���M\��qY"�@��N��{fu�!�K/�46i������c��O�%��#8M��g�u��iq4 ��O$V�O�&�� ����%V��v�0�@����3���gSA�Hd������~��w'<��g�u���Fp&��w��d4���{�
�}a�?d=8"�SO=��g>���P��,��u�PC#%0~�x��nO��M�r�������%]`�������!}��-1)�~"S�RPP��7d��+�2��>\�Ky�D��2E�����1c����m�R�5uq�������% � @b �A@( �t�U����}� ��LW����;���3���gSA��d�.���wH}���I���Yw/���"��h�;�<__"S������S+��F��S�cd	]\��qY"�@�d�;!R�g$*a�\?���%�7�!�@�2���u�b�����;����!K�.���H��s�/����/��u<�%M �~B���c��)�>�����s�����g�u<s�T@@ �H���?@�"`��.��K�.��o��������5�.����,@ ���a���gZ��t��v�����Q@ ����[c����^DF��e��	�}�/�u��R�\���_z��<7� �������I��JR���HT�_���93Q���g�u���F�g
40}��g��������{��z����Y�f�8;Q�u�t��~'�����gV?���{��?���/	\�2�����:��N� � ��U�
 � P�!�,�%V���������+�����^�#_���:������&�	�o<��3iO��Yw/�
�"x���}��)y�N���g'g'� �v�~o��W/��u<�
d-
J�������n���|K��N�4�\��g�u<s�T@�X��o��K>���:$��~a'g��P{z����������T@�H�����������r���C��g�u�0�F@����u�.@"�?LH�X%�H��e4�te����cf��mq���Nd�{��L�6-�y\?�����	!�@$2u��Sd��qcs����w����}�*����3t�P��u<�
d-p�=���Y������yss
��u����RA�b�������?��Z���'#Q�)v_e�Er��xa��6 �Z`����9��W�#��`R��?�hs����g.�
 ����Uy��s� �E�?L�X%�v{InHWn���1��m3���gSAg��O�=����|��y�s�~�]�}#4D��6l������x ��k���e�R���2�����^�z����w���i���KVy��|��������x&0�Z ��*����xYcq �v����g�z����q�b~��o���/���^�����O��']Y�j�/����}�����
d-�����>]i����y�#V�q��u�����@@ ?H������D�H��23]b���}"�m�6�U�S���������� �@F3g��=��_�s,�����~�]���^h��d*.�}E��,X�;�]�v�H��c���3����?D���X@�!$�2�?��
�/��=�������M���`��R`��5�=��	
6u��g�\a��hV2z�L��$/���g������K������wH�.��u���k�� ��+@bU����9 ���e�,�%V���6m���R�R����g��������
 ���<��_q�w�y���7g����:^V7�A �����K���Kn_�_V����;����5����}�e�dE�'������x���#�@to����?��d����:^��f;d&`':�{�t?y���}�Hp������
JyA���������u<_pV@ k���G����n�-e������s������u��|�
 ����Uy��s� �.�/@�$V���1:t����7�R6m�k����mAAA\;���N��J�[�n��W~�}���b�A��u����1D��=J��_1b�o��2g�_?#�/^l7��{�}�$K%J���.]����;�KV\��;@ 2�L�\?���E�D`�L@���'�l�2iR�LY�N~f�l#�&�H6�����nJ\���k���H��wH���^JP�.�����u��������� �y'@bU����0 ��K���0�U�X!�n�����;v�0��n�����V�Z��v�u<;6u�N���>�=������#6r�����\��wr����x��e��8qb\�!}����MLI�z��'��������+�[����/6�)�������D���s���]�3�� �@��$V���~�]������~� UIDAT��@pJay/ 	N�De�.�0��3�'�|���BF���ct��1��m�����_~����������Y�~��q���	b��m31���[o�Q�yo��q���~�]�37E@�V���y�
 �d!P�T)sTab�5j�YOV�2e������v���n��
?t��+�S}��������m�+����,@ ;y���,Jy���U�/�}!\?����.��Z�{�����_����>�l�k�.U8:�*�6���pT<5c�U�lY�vYY�f�:�����-[|���*U�$���N��.��_{��:�����<y������I
%T�F��z���Yw/x��#�@v�IN�}���������{u���z�E,_����n������N�E�H1��s���\�p�Au�i�y���c�
�
��C������D��	�8C]x���p���@�����i���i�l�2%�A��~�]�^/� � ��y�R��#� �@������V���)����/7����M���u,Y��g������a��D����0�*�I]?���%�h6"�@F2RT�6m��G�}��-��2�9�����)8���e�)��]��g�d:b�\��g�u<�JDD ?�}�_���Xa�DJ��d���W^*faRW���I\��qY"�@�dT���{�z�e��������~�]�^/� � �_L�_�7w� �X�N�����2�^�+�X��M�~!�Z����u��'�!��k�&}�����G�21�����x��e����R&C��%V��^8*f�c��I�?�=��y��������4D���M��{�2g��Pq\?�����	!�@Z�%K��
G��������_?6l���IP�D���x n
A�p���+��Rl��u�D������
$�?�t�[�jU��w�b� ��S��@��(���Z�x�Z�`�:���!�k���M���u����5pD/��Yw/z��@~l��Ax�������OT���Y~�����kU8"���i�������W����KD��.��@ r����9%B`����T]K�.���:��S�������/��������W�~��7}�LV�V-���l�����5p�����-R_|��:���1����iE�)��u����'�A@�� �*w_;�@@@@@@@@" �*"X�"� � � � � � � � �@�
�X���W� � � � � � � � �	�X,a@@@@@@@@@ wH�����+G@@@@@@@@��H���� � � � � � � � � ��$V��k��#� � � � � � � � �@D$VEKX@@@@@@@@�]�r����@@@@@@@@@ "�"�%, � � � � � � � ����U���q� � � � � � � � � ��U�@@@@@@@@rW����}��r@@@@@@@@�H����`	� � � � � � � � ��+@bU��v\9 � � � � � � � �D$@bUD��E@@@@@@@@�� �*w_;�@@@@@@@@" �*"X�"� � � � � � � � �@�
�X���W� � � � � � � � �	�X,a@@@@@@@@@ wH�����+G@@@@@@@@��H���� � � � � � � � � ��$V��k��#� � � � � � � � �@D$VEKX@@@@@@@@�]�r����@@@@@@@@@ "�"�%, � � � � � � � ����U���q� � � � � � � � � ��U�@@@@@@@@rW����}��r@@@@@@@@�H����`	� � � � � � � � ��+@bU��v\9 � � � � � � � �D$@bUD��E@@@@@@@@�� �*w_;�@@@@@@@@" �*"X�"� � � � � � � � �@�
�X���W� � � � � � � � �	�X,a@@@@@@@@@ wH�����+G@@@@@@@@��H���� � � � � � � � � ��$V��k��#� � � � � � � � �@D$VEKX@@@@@@@@�]�r����@@@@@@@@@ "�"�%, � � � � � � � ����U���q� � � � � � � � � ��U�@@@@@@@@rW����}��r@@@@@@@@�H����`	� � � � � � � � ��+@bU��v\9 � � � � � � � �D$@bUD��E@@@@@@@@�� �*w_;�@@@@@@@@" �*"X�"� � � � � � � � �@�
�X���W� � � � � � � � �	�X,a@@@@@@@@@ wH�����+G@@@@@@@@��H���� � � � � � � � � ��$V��k��#� � � � � � � � �@D$VEKX@@@@@@@@�]�r����@@@@@@@@@ "�"�%, � � � � � � � ����U���q� � � � � � � � � ��U�@@@@@@@@rW����}��r@@@@@@@@�H����`	� � � � � � � � ��+@bU��v\9 � � �I�,Y�~��go�j�T�*U��e � � � � �@��U�&lA@@@�����C�;Vu��Q�-[�w��6mR�+W6������g�� � � � � �� �*�-@@@(QS�LQ]�tQ��/W�7oV�*U�]�U>V@@@@@��H�����@@@(��\]����$V
* � � � � ��S��r@@@�h�����o_s�-[���+�u�l��]�q�j��=�v��C��6� � � � � �� �*�{@@@(Qa�J�s1 � � � � �@�
�X��/�� � � ��$V����]#� � � � ��� �j��sF@@@2��u���k�������w�m������!���W�RE�*U�����*�yu�*��4�H����_���������E����_U�reU�fMu�9���:����/��R��?_�]�Vq��N�:�7����T��nj�z�j�p�B��rN�q��'�
*�:�F � � � � �@$VE�JL@@@�y��j��y)���;W5h�@m���$[�����Os�$U��T_}����s�������L;]�Z��z���U����MK�,Q�]w��5k�nb��T��O�+���lKT�������>�����]o�6M�6U�?���U�V��lC@@@@" �*R^�#� � � �F Lb�����Yg��6m���6��<d���_?��6n��;�0���s��n�!i��4��)I�Z�j�:��s���*�>��j��M��k��Q���WS�NM���(���k����L@@@@�\�����9 � � �E��������.]���_o�Uz��1c��O<1��*��J�z��D���T2r��;L�$=�~��j��u����F��HX��.��o��Q����Q#%���a����|�(�������J�� � � � � �@�$VE�Kp@@@�
�s�=��y:�L�W�bE��-3�J��{wu�-�����{�d�?��/�%;o��6u����r��ym-Z�6lh��d��o��Z�h��������������[��7��$��"��([���$j-_�\|��f@@@@@ J���%6 � � ���J�j���z���T���}W��SO�:�����S�w�}�m�2y�du����#G�T�����7�|��=�X�.�R��eOKhvVd�����l���A��u* � � � � �@�$VE�Kl@@@D�X���?�C=4�jW�X�j�����q�FU�J�6Y�i���n��f5l�0��o��J�_��'����/z5n�w�^U�~}�`�o�L+�y���vl@@@@@� �*
Ub"� � � �@�U��5So��v�+�����t�@����������J�2�:w��}�Q���?�YM�4��o��MU�P��'��U�6���_��8��N@@@@�J����d�� � � �@Q$V�t�Mj���I��N�j���7n\���r���e��?�Xu��'���s��L=Ye���j��Yf�����Yg�e�� � � � � �Q	�X�,q@@@�@ ����**Y������I�X�g�U�l�`�����yu�UWe| � � � � ��
�X���@@@(F�(����^��W��w�"�j��U����Nz��;�
�$��� � � � �D-@bU���G@@@��@�U��w����g��t�X�}�vu���s��QC�������4n�X�y��a��@@@@�Z�����8@@@�}/���U"%#V��UR����>��3���@@@@@��(@bUI|U�&@@@��rb�E]��L�b�l��m�B�
f=Qe��j���JF��������8 QS�!� � � � �NH�r�I0@@@����{U�>}�I~��Gu����u�l��IU�\�l2d�����Y��q�:�������
PNv��7����������*\p��6m��2u�T%�( � � � � �@�$VE-L|@@@
�1Bu���D\�r�7���PX)��U�/Vu���/U-Y�D�x���mze������.����U_�5#V* � � � � ��UQ�@@@�c��Q�]w����m[���C�)SF��SG�+W��&V�E�h[2��.�*UR�G�VW]u��������{�9u����mRy���U��]}�XA@@@@� �**Y�"� � � �������=����'L����TRG�����y��]��Z�~���V��4h�%���3G�Z����e��JF�*[��o;+ � � � � �@T$VE%K\@@@"��}�:��������~�����%z�*��5k����;�7�x#�mh����<y��P�B��lC@@@@" �*V�"� � � ���u��i�f����l�bN��M������[�*�bO��C��[n�E���QU�R��>\�t�Mf=X)U���$S��}��f=X9��#�hT��uS=�P��Y7n����;UAA��fW��������?���K���#� � � � ���X91'@@@@ ���Y-[��K��V�����r1i��j���j���*��Z�j��5k���:J�I]�(@@@@H,@bUb�"� � � � � � � � �@�X��/>�� � � � � � � � ��H�J��V@@@@@@@@�c������@@@@@@@@@ ��U�]�� � � � � � � � �y,@bU���: � � � � � � � �$ �*�[@@@@@@@@@ �H����[G@@@@@@@@��$V%va+ � � � � � � � ����Uy��s� � � � � � � � � �X����.lE@@@@@@@@�<�����UI8PIEND�B`�
hi-concurrency.csvtext/csv; charset=US-ASCII; name=hi-concurrency.csvDownload
low-concurrency.csvtext/csv; charset=US-ASCII; name=low-concurrency.csvDownload
#28Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#27)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Pavel!

On Thu, Mar 2, 2023 at 1:29 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Let's see the performance results for the patchset. I'll properly
revise the comments if results will be good.

Pavel, could you please re-run your tests over revised patchset?

Since last time I've improved the test to avoid significant series
differences due to AWS storage access variation that is seen in [1].
I.e. each series of tests is run on a tmpfs with newly inited pgbench
tables and vacuum. Also, I've added a test for low-concurrency updates
where the locking optimization isn't expected to improve performance,
just to make sure the patches don't make things worse.

The tests are as follows:
1. Heap updates with high tuple concurrency:
Prepare without pkeys (pgbench -d postgres -i -I dtGv -s 10 --unlogged-tables)
Update tellers 100 rows, 50 conns ( pgbench postgres -f
./update-only-tellers.sql -s 10 -P10 -M prepared -T 600 -j 5 -c 50 )

Result: Average of 5 series with patches (0001+0002) is around 5%
faster than both master and patch 0001. Still, there are some
fluctuations between different series of the measurements of the same
patch, but much less than in [1]

Thank you for running this that fast!

So, it appears that 0001 patch has no effect. So, we probably should
consider to drop 0001 patch and consider just 0002 patch.

The attached patch v12 contains v11 0002 patch extracted separately.
Please, add it to the performance comparison. Thanks.

------
Regards,
Alexander Korotkov

Attachments:

0001-Allow-locking-updated-tuples-in-tuple_update-and-v12.patchapplication/octet-stream; name=0001-Allow-locking-updated-tuples-in-tuple_update-and-v12.patchDownload
From 12376fa6311c435c33b2cd8464b6fca0390e9ab2 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the latest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam.c         | 117 ++++++++----
 src/backend/access/heap/heapam_handler.c |  50 +++++-
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 215 ++++++++---------------
 src/include/access/heapam.h              |  26 ++-
 src/include/access/tableam.h             |  32 +++-
 6 files changed, 252 insertions(+), 194 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 388df94a442..26623d8e25e 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2667,7 +2667,8 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			TM_FailureData *tmfd, bool changingPart, Snapshot snapshot,
+			GetSlotCallback lockedSlotCallback, void *lockedSlotCallbackArg)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2865,6 +2866,26 @@ l1:
 			result = TM_Updated;
 	}
 
+	if (result == TM_Updated && lockedSlotCallback)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+		TupleTableSlot *slot;
+
+		slot = lockedSlotCallback(lockedSlotCallbackArg);
+
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											slot, cid, LockTupleExclusive,
+											wait ? LockWaitBlock : LockWaitError,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, &context);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -3088,7 +3109,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 &tmfd, false /* changingPart */ ,
+						 SnapshotAny, NULL, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -3128,7 +3150,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, LockTupleMode *lockmode)
+			TM_FailureData *tmfd, LockTupleMode *lockmode, Snapshot snapshot,
+			GetSlotCallback lockedSlotCallback, void *lockedSlotCallbackArg)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3495,6 +3518,31 @@ l2:
 		}
 	}
 
+	if (result == TM_Updated && lockedSlotCallback)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+		TupleTableSlot *slot;
+
+		slot = lockedSlotCallback(lockedSlotCallbackArg);
+
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											slot, cid, *lockmode,
+											wait ? LockWaitBlock : LockWaitError,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, &context);
+		bms_free(hot_attrs);
+		bms_free(key_attrs);
+		bms_free(id_attrs);
+		bms_free(modified_attrs);
+		bms_free(interesting_attrs);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -4173,7 +4221,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, &lockmode);
+						 &tmfd, &lockmode, SnapshotAny, NULL, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4255,13 +4303,14 @@ TM_Result
 heap_lock_tuple(Relation relation, HeapTuple tuple,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				HeapLockContext *context, TM_FailureData *tmfd)
 {
 	TM_Result	result;
 	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
-	Buffer		vmbuffer = InvalidBuffer;
+	Buffer		buffer = context->buffer,
+				vmbuffer = context->vmbuffer;
 	BlockNumber block;
 	TransactionId xid,
 				xmax;
@@ -4270,10 +4319,11 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 				new_infomask2;
 	bool		first_time = true;
 	bool		skip_tuple_lock = false;
-	bool		have_tuple_lock = false;
+	bool		have_tuple_lock = context->have_tuple_lock;
 	bool		cleared_all_frozen = false;
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	if (BufferIsInvalid(buffer))
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4282,12 +4332,13 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (BufferIsInvalid(vmbuffer) && PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	if (BufferIsInvalid(context->buffer))
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
@@ -4296,7 +4347,7 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4325,7 +4376,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4477,12 +4528,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4517,7 +4568,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4545,7 +4596,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4557,7 +4608,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4585,7 +4636,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4607,7 +4658,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4632,7 +4683,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4658,7 +4709,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4698,7 +4749,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4724,12 +4775,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4751,7 +4802,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4810,9 +4861,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4875,7 +4926,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4895,7 +4946,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4916,7 +4967,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4934,6 +4985,10 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	context->buffer = buffer;
+	context->vmbuffer = InvalidBuffer;
+	context->have_tuple_lock = false;
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..6f024b5cccd 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -299,14 +299,21 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					GetSlotCallback lockedSlotCallback,
+					void *lockedSlotCallbackArg)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart,
+						 snapshot, lockedSlotCallback, lockedSlotCallbackArg);
+
+	return result;
 }
 
 
@@ -314,7 +321,9 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					GetSlotCallback lockedSlotCallback,
+					void *lockedSlotCallbackArg)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -325,7 +334,7 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	tuple->t_tableOid = slot->tts_tableOid;
 
 	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode);
+						 tmfd, lockmode, snapshot, lockedSlotCallback, lockedSlotCallbackArg);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -349,12 +358,27 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid, mode,
+									  wait_policy, flags, tmfd, NULL);
+}
+
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, HeapLockContext *existingContext)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
+	Buffer		buffer = InvalidBuffer;
 
 	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
 	tmfd->traversed = false;
@@ -363,8 +387,20 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!existingContext)
+	{
+		HeapLockContext context = {InvalidBuffer, InvalidBuffer, false};
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &context, tmfd);
+		buffer = context.buffer;
+	}
+	else
+	{
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, existingContext, tmfd);
+		buffer = existingContext->buffer;
+		existingContext = NULL;
+	}
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..a87b86ff614 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL, NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL, NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 687a5422eab..dfefa2cdadb 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1326,6 +1326,23 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	return true;
 }
 
+typedef struct
+{
+	EPQState *epqstate;
+	ResultRelInfo *resultRelInfo;
+} GetEPQSlotArg;
+
+
+static TupleTableSlot *
+GetEPQSlot(void *arg)
+{
+	GetEPQSlotArg *slotArg = (GetEPQSlotArg *) arg;
+
+	return EvalPlanQualSlot(slotArg->epqstate,
+							slotArg->resultRelInfo->ri_RelationDesc,
+							slotArg->resultRelInfo->ri_RangeTableIndex);
+}
+
 /*
  * ExecDeleteAct -- subroutine for ExecDelete
  *
@@ -1338,6 +1355,7 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, bool changingPart)
 {
 	EState	   *estate = context->estate;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
 
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
@@ -1345,7 +1363,9 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  GetEPQSlot,
+							  &slotArg);
 }
 
 /*
@@ -1543,87 +1563,33 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1961,6 +1927,7 @@ ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2089,7 +2056,9 @@ lreplace:
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								GetEPQSlot,
+								&slotArg);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2240,7 +2209,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2357,80 +2326,38 @@ redo_act:
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
+					/* Make sure ri_oldTupleSlot is initialized. */
+					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+						ExecInitUpdateProjection(context->mtstate,
+													resultRelInfo);
 
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					/* Fetch the most recent version of old tuple. */
+					oldSlot = resultRelInfo->ri_oldTupleSlot;
+					if (!table_tuple_fetch_row_version(resultRelationDesc,
+														tupleid,
+														SnapshotAny,
+														oldSlot))
+						elog(ERROR, "failed to fetch tuple being updated");
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2674,7 +2601,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -3847,7 +3774,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 417108f1e01..a5e8a90c508 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -191,6 +191,14 @@ typedef struct HeapPageFreeze
 
 } HeapPageFreeze;
 
+typedef struct
+{
+	Buffer		buffer;
+	Buffer		vmbuffer;
+	bool		have_tuple_lock;
+} HeapLockContext;
+
+
 /* ----------------
  *		function prototypes for heap access method
  *
@@ -243,17 +251,24 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 Snapshot snapshot,
+							 GetSlotCallback lockedSlotCallback,
+							 void *lockedSlotCallbackArg);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, LockTupleMode *lockmode);
+							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
+							 Snapshot snapshot,
+							 GetSlotCallback lockedSlotCallback,
+							 void *lockedSlotCallbackArg);
 extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
 								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+								 HeapLockContext *context,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
@@ -328,4 +343,9 @@ extern bool ResolveCminCmaxDuringDecoding(struct HTAB *tuplecid_data,
 extern void HeapCheckForSerializableConflictOut(bool visible, Relation relation, HeapTuple tuple,
 												Buffer buffer, Snapshot snapshot);
 
+extern TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid, Snapshot snapshot,
+						   TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, HeapLockContext *existingContext);
+
 #endif							/* HEAPAM_H */
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 3fb184717f6..71b93f1674b 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -252,6 +252,9 @@ typedef void (*IndexBuildCallback) (Relation index,
 									bool tupleIsAlive,
 									void *state);
 
+/* Typedef for callback function for table_index_build_scan */
+typedef TupleTableSlot *(*GetSlotCallback) (void *arg);
+
 /*
  * API struct for a table AM.  Note this must be allocated in a
  * server-lifetime manner, typically as a static const struct, which then gets
@@ -514,7 +517,9 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 GetSlotCallback lockedSlotCallback,
+								 void *lockedSlotCallbackArg);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +531,9 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 GetSlotCallback lockedSlotCallback,
+								 void *lockedSlotCallbackArg);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1449,6 +1456,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1461,11 +1470,15 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   GetSlotCallback lockedSlotCallback,
+				   void *lockedSlotCallbackArg)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlotCallback,
+										 lockedSlotCallbackArg);
 }
 
 /*
@@ -1487,7 +1500,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1506,12 +1521,15 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, GetSlotCallback lockedSlotCallback,
+				   void *lockedSlotCallbackArg)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlotCallback,
+										 lockedSlotCallbackArg);
 }
 
 /*
-- 
2.37.1 (Apple Git-137.1)

#29Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Alexander Korotkov (#28)
4 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Alexander!

On Thu, 2 Mar 2023 at 18:53, Alexander Korotkov <aekorotkov@gmail.com> wrote:

Hi, Pavel!

On Thu, Mar 2, 2023 at 1:29 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Let's see the performance results for the patchset. I'll properly
revise the comments if results will be good.

Pavel, could you please re-run your tests over revised patchset?

Since last time I've improved the test to avoid significant series
differences due to AWS storage access variation that is seen in [1].
I.e. each series of tests is run on a tmpfs with newly inited pgbench
tables and vacuum. Also, I've added a test for low-concurrency updates
where the locking optimization isn't expected to improve performance,
just to make sure the patches don't make things worse.

The tests are as follows:
1. Heap updates with high tuple concurrency:
Prepare without pkeys (pgbench -d postgres -i -I dtGv -s 10 --unlogged-tables)
Update tellers 100 rows, 50 conns ( pgbench postgres -f
./update-only-tellers.sql -s 10 -P10 -M prepared -T 600 -j 5 -c 50 )

Result: Average of 5 series with patches (0001+0002) is around 5%
faster than both master and patch 0001. Still, there are some
fluctuations between different series of the measurements of the same
patch, but much less than in [1]

Thank you for running this that fast!

So, it appears that 0001 patch has no effect. So, we probably should
consider to drop 0001 patch and consider just 0002 patch.

The attached patch v12 contains v11 0002 patch extracted separately.
Please, add it to the performance comparison. Thanks.

I've done a benchmarking on a full series of four variants: master vs
v11-0001 vs v11-0001+0002 vs v12 in the same configuration as in the
previous measurement. The results are as follows:

1. Heap updates with high tuple concurrency:
Average of 5 series v11-0001+0002 is around 7% faster than the master.
I need to note that while v11-0001+0002 shows consistent performance
improvement over the master, its value can not be determined more
precisely than a couple of percents even with averaging. So I'd
suppose we may not conclude from the results if a more subtle
difference between v11-0001+0002 vs v12 (and master vs v11-0001)
really exists.

2. Heap updates with high tuple concurrency:
All patches and master are still the same within a tolerance of
less than 0.7%.

Overall patch v11-0001+0002 doesn't show performance degradation so I
don't see why to apply only patch 0002 skipping 0001.

Regards,
Pavel Borisov,
Supabase.

Attachments:

lo-concurrency-11-12.pngimage/png; name=lo-concurrency-11-12.pngDownload
�PNG


IHDR	V���O�?iCCPICC ProfileH��WXS��[�����H	�	"�H	�E�*�I�PB;"*�T,`CWE] kE�,��/�������&t�W�7�7w������9w��;�������9�|ILh sBR2���@P�ryybVtt�e��{yw ����L�����h�y<�h�S�y���W���|�2�|z�X�a� �Kd8]��d8U��m�b���B�r%���C�Y�K�j};��B�L��rrr��@lm���=S�I��f��&��>�s�� a�8�;��L��.9��AV�R3$a1�9�����
�a*�����(�� � ���!F)��x�=j��c���N|nP8�����##�|j�0�1\!�a>'b=����c�6[%�1J_h}���R���_�����x�R�u������
3�!�@lQ L��X
b����p����v���D#����(4P���IBb���9y����f9�J|0?#.L���������D��AA������A���c���X��q~`�b,NgG+�q3Av��7��5� V9O��R�������q�������x�� �A`)�� da[oC/�S��.��t JfpD��G����	��
���
@�����H���Gd����p�
���Q�!o	�	d���������U����A�;��L���zd�Z��A�0b�7��p<^`u�=q��y|�'<%tn:	w�
�$��:�~�2�?����nx ���2��
��
��p��
�le���0�i�m?<
�����u�d��#�����Td��1?�XS�������C���
n�-�a����E����I�k������z"_]��b��dA�?�
>YY&��j�z��(��3d�h�����3��,�E09"��H�����������!�n �K�������}�"�^?�n���9��5���2�TR��p����p��c`l�|��;� �Q $�)0���%`:�
�PV��`#����`8�1p��A;�����
^�>�|F���:��� ��=��x"~H0�� IH
���)2Y��!��FdR���EN#����� ��O(�RQm��BG��(
G���h::
-D����z���������
�}��cS��)��ybl,
K��0	6+�*�j�k������bq"N���\�ax<����s�e�F|7^�����.��F�	�o�0��N�N(!Tv�����MxG$Dk���I�L�,�2�&�~�)b�1��D"���I��(��O*!m �%�$]%u�>�����8���$��T�T*T���P���L�3Y�lI�&G�������&�r7�3E�bM���Q2)(�)u�����7���f�^��U���U��P�������E������R�r�.�)���fE�%��i�i5�3���jt5G5�_m�Z�Z��U���duKu���B�
�C�W�{5�Vl
��\�J���4�5���5�4s4�i�����\��e����*���uF�1����t}!}�,�[��m�����.�������������3C�R��N'cX18�l�
�A�M�']#]��@w�n��U��z#��z�z��n�}�g��g���o�`���7�n����A��>#x#JGq�5�3�1�e��������(�Hl����Q�1�8�8�x��	������d��I�?�:L3������354
3��n3m3�lfmoVd����9���<�|�y�y����8���w-������,�[����J�Zl�`��Z��c]h]k}��f�o3�����-���6�v�m�j�f�aWiw��w��o��I�5R4�z�-�����������X����r����Q�F�����)�i����Z���.�4����3������%�e�K��+W{W��f��nt�qn������{�K���{<,<R<�<nyj{F{.���E�
���u�����w��A��||�|��<c=F0f����f�\�m��~L���~����\�j�G�����X��L�^��@�@I����lo��� ,(4�4�-X+8>xc���������P��Y���a�a��nq�8<N
�o���9c[������E�EH"������[=�~�e�(�!
Dq�VG=������x�����������s>�;5vO�����q��m����	�	�j�'%�'vN5a���II���dRrB�������N���6�d�����gL�8�`J���S��r�J!�$��I����Vs�S9�U�}<6o�?����#��������=O�M_�����Q��+d7
_e�en�|���+k ;1{�JNJ�Q��(K��k�;#�Cl/.wN���vZ�$\�3������
�[�6�E����������9C4�u����3���<����<�t���]sXs��E���m�g>�x^�����Pd-�����������M�F���/
]T[�V")���g��%�����.K7,�V�/�T�TVQ�eo���F������i��V������R���*�U��5�����~
sM���k���X�Z�ee�t]�����,6���ec���������V����tus���-F[��|�*�z{[���j���������H�q�g��kv�,��u�hW����-555{���Ek��={'�m������n�~����������r�`���C���[�:B?RZ�����k�h�lLj�8:�hs�O��_�u��X�q��+NPN�8Yx����T�������6�;3�����-mg��^8r��y���|/��}��%�K
��/��������#m�m�W<�4�{�7u��8q����kA��]�\�|#�F�����oM��y�����;����|o�}���*>�������������Z�>��������'_�����V<3yV���������?&���B��so���V��yy����Z�&�u���x�����]o]�6�G�?|�������v��x�S��g��!}Y���k���o�r�\	W�+������z�$��|F��8���8���OXqF�w�`#��g���V��v�_����������\)+Dx�$CwVG��aEq��!��-��������z�)���eXIfMM*>F(�iN����x�	V��ASCIIScreenshot�Y��	pHYs%%IR$��iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>1420</exif:PixelYDimension>
         <exif:PixelXDimension>2390</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
)��iDOT�(��B�11�@IDATx���E���J�G	A��I	�@T��{7

O� 1B�AC�J7J{R�! �fD@D���.o���;gv���{��|>���m3����9s�o�������(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�!0�������"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�$(�J+�"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(J�r�]E@PE@PE@PE@PE@PE@PE@PE@PE@P�X�u@PE@PE@PE@PE@PE@PE@PE@PE@P%V9���"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(J��:�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(�����@tWPE@PE@PE@PE@PE@PE@PE@PE@P%ViPE@PE@PE@PE@PE@PE@PE@PE@PE�A@�U ��(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(����(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"� ��*�UE@PE@PE@PE@PE@PE@PE@PE@PE@�UZE@PE@PE@PE@PE@PE@PE@PE@PE@pPb���*��"�(��"�(mC���_6��������w��|�C���#��_�������Hx���7��2K�1�QE@P��F�7�������>���-���w�y����"�(U!@[��?�������_��W�����1�Ue��(��"�(��k?��\z���y��E���J�z��7���_���5����M7���>�����[PE@P�F�����s�=������n3n�8���������n���?$��������?��f�0.��5j��s�9+��/4>�`G��~���>�q���s��i��_�}~�e������������+��b��k�������1�,��Ue�����3�g��u|���7��G���E@| V\w�uCJ�O�P��T}�����A��7�x���}�3���MC�S���-���4]E �<��9��s:n�x�����c;���"�(E`�y��w�3f������d�X����������p����5���/:����K��W_���������m���U��VZ�,��r]���`"0�����=�yObN���K?����g�Y����&v���xiYx���z���>����k�1w�qG��}���}gG�tGP��Z�U�&L����#�H����zPPE@P�"���~�#���������s�mw�f	����7�G���2����|�O�n�~���bbt\{����+�u}�E_|q�N���R����~f����t���������?�q����x �Gr(���`��Zk�
6���6�l�S�O�2�<��c]�@d���W�������yo+|��[ni�Yg�������"��D���;���	�cU�[o�en��Vs�-�tMP�������u�]�R'f��b�3�1E�������4�������v��G�d�!D��"��A��'�4g�}vT�O>|���oRh���m#�����/s�4Y4�����/�\����k�i��z���z`0��;�����������
������u������{��:0.������4����:���=�=���FG��m�cxE@P� ���2�����"�(��"0
��e�p��t�M�r�
������b��;76BM���f�y���E�R���|��_�%:V:~���������$V�P�����E1�Qe�]w���@����?^����-�K_���^'�&��������K.��RCt��TM�"}�wFn:O�7��N;��D����9���8��z�"P7?����������g?�Y���}����(��"P���z��y���n����cx�������*��� ����P�W/����z���w*W?�x"V1�NQ�6�|��!��(�@n�X�2�APE@P
�A V=���Rm������Qb������'��E&��K6@�aVW������7����	'�`f�e��cU�0S��SO���"V���Yg�U���m��Yu�UK�s���'KqH	���
�;����+����S����\rIWa�$VA�f��2By�bQt�����e��{�*�h8i����Zh!3~������LuGP"q0��I,�B�
��M
�����%V�P��c��P�?o����z���w�W��X�"r�F���!�c�_���(u#������E@PE���;���L�+��X�{��7��'�h����K��r�!�bYd�L�.��2�,�,�����{�I":�;X���c����2s=��������7�x��sE���i��f ���
b�,N�8�4���o���7K.�������1��.BB����/tI�9%Vu��;�@� ���]t���U�$��7����}�{
�
�<���8O��ZE�X�g������f��ud�i*��0C����y�����Yr~�=��uO�K��mJ��H��v�j���U_��^�X�N��wbO��gX`�d���VEP�"(��jz�"�(��"��N���u����D'`YI������#G�E]��:���4F��3gJ�$N�,g���k���(
�"|��O���<S�L:GD��?�<������n3�,h�9�0���7��-�����2g�q�y��������96a�CT,Ix�e�]�|��4� ���
D�#�8��<`�����{��c���*���\EP�#�3��S��X�������'������w�%�H��\0�j��d���:�K�,������������8�<�[h�������1�#k�����O�1�QE�(���mZ����D��}���'�5o�"w2N&�qh|��*��s;�	5����/�p�j_}�N
��'a%����w�'>�	��O~����(��"���b���E@PE``Pb�����v�
7�[n��{N�-����������l�����{>���RSD.q�:��}���S�y��3�K�������������_�^�XVD������k8����?���	MZ6��Y0��,����.��tz�y
GG������z��Q��d�%��7,�����C5�WE@(������.xsYbm���86���_�����	�����~�\x��I�B{,��v�m�j���>$�n[[,TO(=B��g�M�nv����UE@�&��&�0A��"m��}K��8(��E����/�N��U�u�Y'��t����p�J�z�Z
����g�yf����/~�0iVEP��(�*/bz�"�(��"�J��WZ�� �������a;&K�}����:�Cd�_��WE'y�"ZQ��
F���?����Vb�+��b���o�I&�D��o����s��=�A������'_���
�]����#��y�����l�������u��`w�	'x�
��g���.���D����D�,)K�
-3���}�l��6��S�`�_�|�����=������2�;!ic[*��Sz��)����e�V0���k/��<E`�  � >���&��Q�Y�=K�X��P��c�@7te���2��6�{X���^�X�N�bOs���'��?Y�D�FC+�@�X�-�VPE@P�����d�E���!"B��?�&��;��W^�{�=( ��3���Yk���[�hFDK�J�R�������4�\s����~{K�Q���e�]f�����[��
1(�p���'�x����������]���B�C� 2�q���Kt|�k_B�9��r�����������^�{N*�@��,�*Et�.K����[�/O��r<�@|1K��h�oc[l��[E�	�z�i�ue���� ���"P����vX��_��+��	-L��n�L�X�"����"�o�}��7&�5?����w��'���AW�2�(V�|�I3i����5jU$z@P"PbUHz�"�(��"�6J����t,���L�rL���[l2�u��s�y��G��!
	��}�rP�Y��?���#���0j�(3r���e����>s�W"����� -@V�E��|e��/�D�q�M��o~���KhH����^�l��V��[o5�_����i���J+��u���_~����;��}����"0��Qx�UW��z(�S�!V���DN�o����2}�ts�=�t]�r�,+I�b��z\�>�-/Y�We�|E��`�����v=�mB�{�n�����^j�����\�X�^�(-F@�U���A"V�DD�w	������n��Z\�h��"�F�X����eRE@P��"�����������R|>�O��-��bn����g]j���e��Nx0;��	g�y���;��Yg�$����.���C�/� �:Q��s������G]IC;���sE�b�������'��y��gX
�������^8�`s�1���
���"���[
B�x���!���?����w�Q����$"�*��b���/�*biiU���|�O�������^!�����|�S�2�G�v��"�(���UD��e�YJ�]���=���2eJWr�@�U]Qb����+�@�!���w������b�u���+U���}E@h%V�?�/�������_O'��:��g�y�Fg
K}�T�0W,�Yh����y����A$�����}���q��y��������'
�F�g���k��f��cC8Kf)33�Ny��7�y�c��g7����w ��,O/��q����t��<7xS�H����'R	���#����~P�^Z���M�E������+�
�o��V����.������.!o�|���?���y��S��b@c�p�����=�I��D�(;#��"��DVBh��Cy���o��9��q��*���w�G$�W�H������C9$�����-��G�y�K,a�����umQb�%�\b~��_t������W~����\!z��������N��]Y|����<tX"B���N����>��#a����:��T��z~�[%*�\���q.m��:�b���7��v�E��K=��w���i��Y�_|qW2e�U�3�6��+�|�{�3O?�t�m[n����������2Vy���r������,�H�������5i���3V����*&�������J����F�Y��������u�>�����*w����Qu{@��c=�u��B����1���%r+u�"�Q/�\�_��`��������M���i��xIh���������B��y��
�\i��i��-m:���,���M�m/�t%�kO�>h���(O]�t=����9]�I�+������mYil��Wy�^��@��2����?�����`����H�[���X��7�pC/�
�O�6-|�U,H��O:��t���
6���7���PE@B`X��z�)3c�����g.}Bg���+&F����8�����.�?����5�\��x�.�l��ff�%�t���/���������Yk�����q�������������s6��Z���p�
K�q�~���W��U2��y�w�{b@�W ���DZ0����C�D�\��18H�},/����'���<�QX~���%y���a��B3f���j�E)b�����%%��`���?��������q��Ky�����c��X��w�����7�x�$���^����%m�P���yjo������)�����zZG[q�����o'\Yy���z�������W{�YDK��(��b����e�]6W����F?�JV����LZ�G�O�����s��������F%�����+��}��'���m]c�5��n��*�U�����av'�	}����y����1�43mh'�0���OO���>��}���x���'�_q���?���}�y�M�c�0��p������s?�m��f������0n|��_�:�;@5m�4���c8����/%�����e�
����������?7���*��f��+-��r���}��Kz���)�9��w�v�ivwh��������~?�?��.���S$�����m}wL�������?��AoL�h��#\C?�X"�$��|s�{b�)��}�_��`�
	����'���(�o�+����q�6���6���1{��d-�t����l�����9����������;&p�#���?�M��������������wE����q�W�;$R?�o���a�-���;����ju����
���06A�+�!�����v���MW���������fik��,����W�A/�{Y�2va<O���L��6��~�����.������yE&�����NlY�\]NG&o�P���S��{�����g<�]:-�[����X)�-H�_���������[om�^zi3a���,�@�j��e��M���
���!�8��k��u��������z9�-���]I���s�}�d�L:��		��I����4]�����������}��b9t;f=#�����$�P�Y���U�u����CvR�16���@V�8��_����]���g��M�w��+�k}�%;���w��w�x�>��,�]%a����v��S��*�����1DpE@Pb��*�`t�8�
;N��`Sr�1S���������'����d��7������X�
Nm�����@]CUV�tn8�P���GPn�����cZ�`e��+���w�C(]�)/(A�8.���6}�����-kb8@�
I�
�`��������G>�����w�p6���e�e�1���O�<���%ij����~���W\$������m���,��R�%]��ZO�l+�4�3�	(�y6�C�s����r�����0��B_P�&�	0������7���1�aL����a��r�}�Kl���v����e:}����[�
3��o9�t�Y�!{A~
��N9��������<`�!�L��m*"��^.'e�#�H��p�x��A_j
�����T����������t��z�D�"-������+E�U���"vw�q��O��g��W������afb8c�p<��c������AUG�H���M��F;��^{�/���:����W=_��F=�>�vHsBxb����g�Cz�}@��TD 0�#b]U$��r��U����a�T%�J��YZT�3����������w�\�s�h��T�L!��M3-�"��B�M�n�O6�t��Ir
�
�����Xf@o�PLd�k����-u������0�Q�
�:RQ����G$�#�<�+���O��u����X���+2�#4�)}��
����1
�TW��a�W�9�>�
��LH�+��c0Y��-&o����h�y_��e$k\S&m�^0���b����$��
}P��<W^ye�kBw�<�nx��gf�?\�x��u���:2
�0���cC(��1�b�-���c|EhC=������>[����~�a7�
�X�I@�<�s!b$y�
�0��j�����W�>�v@��"�� e�Y_�%V�Yx�L^��]U�*�f<���9^����*��"0�V�*:X�e2T:����[\��p����	N��"����	�����/-�w��+K����:����w����bI
�� RQ6��!�0�/F$�
���S�z��1�r
�m���K�����,(_(5���*���!9�� ���G6���Y28��XU4�t>(���%������S
"C������V�8��32;�"��z�
IG�s�+��vb�2|zb���g>������#B�\�
��0
���	O�%�p,�mg��@T����:�U����Z�Y������r�=���h�L(���N�^��Y�x\�������v���O������*�S"�������X���O�I�&����.��c"�o�>�j�����!�fW�e	%'C�	n~�>3�S�"|a��]SRw�-=�p��C�*���4��q���=K�H@Z�:v�|�1bD�7��'������@u�#��Xu��7��o�������;���D�`��MK���t�������e�>2�/�S��S�q��"����H�$M��wR?�����>��(q��S�LI�<
��<��l6��������O��[��7���^I��$M�9�lz=�����]��������&���g-W���w��v���!�4��e�O�*�#�V�=�wD�H?&}kM�����j�$b:
���}�
~��}�kI�R�P�N[����EjO���Fw�m��rE�n������E��D�b|����o��'d��N����qA�
8��e����o*f�HVZL���2T��+��@�#r�+���:�(�p���/M/3C�@P�aC��P�QGT���O���oy;��=n:8�0zJK�b�����Y��P�TE���c&��=���[):�=_d�0�+(.,PVl���t$&v���u!�P���I��"�*�G8%}��t��w�h�#V�I����o<O�{��� B���5}O��i��
� \��T;����g�T���6� d�~_.��}�T"����O"E��,�;�X���2��P�$gN]�*�m�1t�+��*B���i�9B�cH����YDc�]�o������&����$K��*��Y�M�sjTI����y���0���|������'mf��e��yaD�v���Y�1UGi���LD@a����W}��|�]���U����e�6 &>�&N��%4-C�v o�iC/K�0S��O�$VI�U�o�����?~|��R�R�H����0�=&9wq^�"G��el�$-�� ���Jp^��Ka��������dIG��SH]����!]��/|!YF�w^��)��}i����s(�q�v����&�{����
Y�W]C���}��o���M�m��Hk�+��u�/�*�-�y�-���qI�Z�����&�<�XE���h�6���(���&y`���6h��7��M��tY��w�z������T�N���%�X�vx%bU��(��6o"|,�J�����e�*���}��0!�)C���S����g�4E��6�*r�P�+�1��b�%�����K�z�P����u�e�%��q4T���&����1����\h�e�^��2Y������9I(�������d����w��h��^k�1���NiHn��)����������'XP��]i�@���_��*_��1wi8�y-��w��<���N;Mt��4��,���i�
_4{���,�[7l�v[G=�e[!�����P`�����I�Cz�%_��cR�����r)@_y9|�D���hHY� ���f	�&O��u�a�)C�"V1c'XH��o���;q�Q�q�g	����d�����irN�8�����N����M�I_M��e4C�b�����I���N�4G>��a�=�2,�����R��v��K�z��yi���b�������MCQb�$V=��[nz��L�������!��=1����(�_~����;����
�fY������r��z`��]�]U����������eQ=�$}:F^���.�,[@����y�/�7$!?�^���f�-Y2�IY}_h96)���!B�������!��Xu���z�;���Yy��C��#2�/���f���8�P'%}<���K�:O�
1��t�����~)�}����m0��E��WR��D��E�-� ��i2]���;��K��b������Zh!�k��F"L���4���3��I����4m���=hj��b;i�:�}�_L���'�X%��t�MgYq���?�|f���85k���O��&��*"|�N�.���Gz��XT��� V5�5����U�]�n�>�� ��k���{)�$�!����idE���&����a%�
�BlQ1�Z&/3��[���_�o f�|��zt��N:���']�X���?��U6���bu�P��b}���yV_{>��|!�x0���S����� Ve�,�(@�9j����~P�1�1�	���<ql��E�|���c�I_��-��O_�l��}a�H0x�C$�����3��]"����74�	�"�:W �=&$(/��F!����/�A-�^f�����KB�b����&{,5#I�{���?�pM�G�g�"��u�2�4��$�(*R�������nb����"iB�K��%V����I!����XR��(/���'�'��K�	�~[�)��e[!Ey�����������������{��7b��o����������$Iw|��t8�����!��<�����~�
y�t $��"V�s�9b4��,�F�W�3�Q��$�7�A��
!���\�8�B$)�'Q�YM|W��������RK�}��w���)S?]~��3f�����?<!�<���'���u��_t�EIr���!�TL��k�$V����\)��}:��H�Kd1�����n|K~C>>���+�����>��D�����}�}F���A"��X���I4��G����k�u�]�B'@f|+	�7��@L�������N'��!�H:@�4�M�G}D0���W��2,����y��J����]$�V���t���������� 0����Y1���T;�;IH=�&}�+�3Cc5"�����]��4�n�
i�i�B���!'7m�H��>��o~c pS�%��0i��7�x#Y��=�~:"��������t���u�m�I��}o����-���:�$�%F��U����:KL��
}���
�q/z�ulQ��\:�����6�}.���+�3���=W�~�b�w�����^�����n�B}�[W��>@�v���v���E	5|�D�y��g��r0�{���P&kL�6m�\����m�Ov������-��l���Xb�D�z-���;�]B�M����V�$���66�1c�tD��9��2�Q������$��_/=^q�9rd2��t��>�7���P��H+�'�	Y~��_~9���������T�8*m�D�a���^h���2�*�j��\Aw�����UE@�B`��UD`F�U]@P*��c�.r�{?�
��1�a�'��`��0&�f/3���D*J)
O�5HADZ�	=�!f-�����&������8��d�:��-�mZ(�D@���t��W	��
���*�6���H,8T}uyw�Am�^~����sOq	��D�<v�
JKQ�+�F�w��*�G����z�}�%(P����bU��0�Z[����y��q��=��d9w�RO�h+�8�3s��.�0Nc�����}�k��K�0��Z��X��N;��VZI��:� ���'��8$�fds=�H��=�3B]�

�CN~�g��v����?��;���p��D���Bp�����h���>�n(�6��[d��Q��� �.?�6�B�N������n���Dw�Q�HO�E�8�K�$VIQdcC�K�(E2""p\a���\A/`��6�������H��"�����c@C��IVD-�=Uk��������c�U�"$��m��DD��I��/�r��C��6���F��1+-y��S���K����$VIN���EE�L�[��-mq�gM�'9w������ B��8"(2&�b�-��d�7K�J�c��|�z�=��W]uU�1���$�
���������)�v�(py���N��?��CcI������	u�9b����)�m�sT��e��� ����`_���t���L���z�1&-��A^Y��������hM��n��D��Y�g�}����kbU�}P��b>+���	��.���$@�[)J�	���O���0����/����^�d=�e�m�z �q,6�j�Cu�c���bxY�p�����3�~��^&������XI�;��#8y5&�*e����[�|C���~>�c)�?�K���	��,v���eH���g�5\�����(�@O��B����/����r�X4L�8�kX��X2X�,�4a���,5[�c��~%1��G'K��RH�k����I8�0J��q&J3� 4��
����e0�ScC�i�ih��,�
d$HI1����p����m�x�p|���H}E.�����X���)'my��'9=H/K1�y�-��;�r���6�V�#�X�6�=����� ���(��y���Xu�A%���<�%�\"�Z�"��G���e��l2��Qt6��G�����,���"p>�EL4i�C��$9��?�ZbI�Y�����p��$��|��G\�������T�v����X%��YQ���Uj�%����E"�`��%�	$vW�6��YVB��"Q'�����T��z�}�K�����mj!�Ph��3�<�;>�!~��C�|�{_S�*�U�}��;����Rt���-mq�g�]/9w����|���?��q�����{�~>����N���jC���@Z�����{��1���u8��A������e�!vA���$=�<�����Qu{���^H���}2�������G���3D��&1po^��"����T��������6>]�6����x�7��=/}k�&V5�����
xW!}��������!�K�m?~|�����	�A�UW�F��������-Rx��
�
����$�G_�"Hu�N���6O�Vm��-�������>�����z+����"�����|�����q�Xc
��6�pi���I��H<���H�������`���OEPxbNr_'��3�*�3�Z+��~{I����>e����]!��CK
�������"_��9ny�C���&�|���kX���"����X(�lH�VB���r^�f�4$��4����6�C�@��������K���X��*�$3el1[����y�E����Ye���w�J����z�T[)��s>#^Ld ��dD!��:��UyI����~\���sp���+���4P�g���%�
Qo\Yg�umt^���+
�1W��H?i�C�"��4��C������a�'��%�k�z���P��}O�6������$VI�����XI:�o& c�>�%�����o��!����O�����������MIS}����y��~��$��R��%����(D4���C}fg���a�e��+�G��:��$V�����{c"]J���aw�yg�i���6��]-x@r����D?	MP
�Yl^���D#��l2R�VR������j�%��|�T:�2�D�r�h�y��G�Hnz����Z�lH�!����3�rEZ��-v�*���
�=�4K����!;�����.-YNz!��P�n	I'|���6>�L����K>��C��U����I�8�}��o���*�^��6���mi�B�������~B�TH�G��xH_���H%�G�N�t�o�����"��g�|:o/�n�"�����CyY��I�����R�Dzt���:�H����� j�n�����|A;����	��7|1�HU��v��U�X%�@\�-�nE@H#0������%�h(�J(��o�J 3R]a�����'���\�s���Y�����AZ�e|�#)���R��Td��],5C"���n���8PDBK#�"��G�PQd��>�g ���2s�h[I��'m����Q���%��q�<�5NR�H3d(��O�LOR
�&�S��W.{,4@R��PO�h+,f�q2vf2����69�C��)f���<�+�����J��+��d�s��������A����F�v����3����i��E���"-[,�N
�������k����i�2�D0�#�e� ����ynk���.���jFrP�D���#�e�����#"I��� 9������E�e���:��E"^x*x���[����"V�%7����T�{8��
�IW6�d3f����O{��%H�1^d9����b�5��������>�HK�FYG��}�lmh����Vr�rO� �KS��v��w7���|��IK�r����7R������c�H�������D�`�i�W���-�����)���b���=�6���q^2c���?�K��y�ql�1��{Z�����|v�<$@�+mh��em�
��z�{L���.K�ZHL?{U�������I��-��!�L�<�<���]�����Q����[o5�_�{8�
�������[�A�/Rxv�XU�������e����������&YHDy���_Dz�P��s?���
Kf�D�W��Iz���nj6�pC_��1t)��/sNH��"+��uWP�M��H:!�E
������U�<CQ|��1�1#�]k�G��uW2��8imy��,�"
=y3�e�0�3�C1g��}�O>�dZ�W������$C�HJG��Rd�T�G�4X�	��'���wm�
5�j��Xt�E�����%_D�J������E�UEg5H��"�Ii�5��XI!L� M�S��D[aq��������H���Ci����X�s����E��E����m�]�����n�e�?D��<��^{��������$$�""�y1�J�gB�
),u�����W�R�1���ii�����h��k$"R�N"k��Y�)��L�%RN�l��N��Le�� �9 Q>�I�Yb����&�n��;��4���]v���5����=	_t~�!>��\K�F	uL����W��$VI�S����g��	1���JM��n��K�]��j���+R��P$����H��-��lH��H��������-������o�:cSW�i���$d�B��E%H�%9�������-v�*���M��$�u��_������JQ��F���1�\u�U�d��Elb�D�	VE"r���~�����k�J�`�iH��zM�j�jK�"V�li��I�"�i���JR��x(�4>���7Ul���-R�@����O�K�I�1�/��1��Z�o��r�d\8���e�sK�_%_�������9��\�l�y�|!;EQ���SYb�d�]n���qE@PB4�JR��2O����A�������:,���o���c���!
)_hq�s��_l�������6WQ�2o��S�����:�R=�E�"������`p�^�)y���H$�������4`.�3|����v)�����z�T[��s�sx���f��7N_��[2>Y��+�����p���-"&L0�\!,2�W+��Z�*���Y�*[��[�,��r��,���f�}�uw�K�,���f9l:2�������lh���K����1� �{H.��!�A$����3��������q�����w��*i6�^{�e Igp#B@���w��,%J��#�h���e��~��y�J�
M�����*lS}��N�����oz>e��E�,�����P��[n�%�t��c�wU��m8�g�e{�o�U��hDSW�*_����*+���%w���|!���y��J�-���p�y�I_�,��/6�~o�1a�t�K�`Gr����'�|�!��+1�n):��*���&�����Qe{�}��������0TT����U�}�h�D�-*�����Y����g��J+}>oo�m�X%��YJ�qQH���^�������I��������������e���K�q���k���
�~�z`�["Vmc%�����#��P?�����&!��X?]��o���������'���L�����>��/����eRZz\P�M��B�0�q^F$���!/�f�:iv��S�N�*:k����+g�u�a�+t�Ef���������B��/�K�B-��Rf����n�:>}�ts�=�t]������:.)E
�M\�������=�@IDAT	��3k?������$-J�r�.������Uy�9������0;g�+�7�t=m��H�#-����K��v�X^�|�LY�%�j��*�KZ&B�Sl��!��f�m6{Y�������d�,K=��S
+W�\�������"�&�B��������4��"V�"d�'3� ����>9��
��A�U\pAB~����0��X%}k>�����4�>������1�d�7�$�&���[����.�!1������#:0c[W��*��f���P.�A+���!j�|���^��U�xX_Z�=�O��L�r�g���Xj��!Y-D-�o���g�}�Y���lH��H��:�wO�k��w����c�I��,��i�%;�K8���-�|��������)�K��k;GU��������������R�s�X%���r��O|�(L��"��$k��'t,������l�X%E��[g2y:��-oz+}k�&V5�����|�������K��l��K{"��y��:����O�m��������>��W%� �w�J����o_����IR���=��a��O����{%/_�y�|q+���{V{;�/zk����/m%�{�t����"�M��f��fY��^��$��<����W|��Rl���E_%���s�#-�R6t����/�6g�4��2"�/����A��������78�]��U,��L
W��c6�d�p��y����&Vm���f�5������D����������R����iSmE�����&�H#�L(��O�Y�w��Ue	���NTW\��D��!�c��H��2�*�������Q�?q��W�b�4��
��yL�<�m'}M��w�}w����,�`��~��_yS"�z/n��*�U��Fe�|���E]��V��v���@hY�M7��l���5���tS}�����Fr�%�%p��H�����c�J+��D������#C�}$;�oi�<�Hx_��Aj�%�����b(���g��M�^'�w)a?����=�}���:�!`��<E�eL`�L�@w��b�����$��o�ib����f'���1Y��6�9�j���]�xo��)����*��X�uQ���I��{�D���/��*�������US�*��A<����
[z�H�Z�>�L�������|H�D��w�Q�L<./��cwE�z�^W����G��A������
}y���R�y��MG"Vy�����l�XUt�g���w�+V2�>�J����{��r�)n�����kX�7-y�|�]��-�<�,�O��{N���E`pXb���ux��D�:�����`$�0����-��3r�I98I]���h��#����|���6,V�HN���%I����HZZ��9�K�i�=!�K���E#�������p����U�$�����/���'9$�����{�����f����������rM�{�"r�!f��s��t_�K�~�UF�
E��A2����4�,j8�e�sy�U�2�=�4X�-�o['��A5��^�O��e���������o�,���d�,�����XE�U������������t���M[��O�\R;���n��;��D��X��:�%V1�����^T0\�3a���m����U��s�QG��EE2������Xr�J�$|�~�i���}�{:�����9(�!��:�����|c�^����=@GC��I��t!.�z�����F]���u,�XER�@�!�o�Dr��&���QU{�����xO���N�"���U!�����-}��Lj�|����,i O��"�\y��B�+y&�H�Z��^�Amj�$bU���y	5E�Ln���O�<t[Wz]����Kc�����E���[lz��q�hyEj#� VI�c���k�5��~{��n�+��UL����;�%������K���4�-�u���}�D���*�L4�I�}�/O=�(������z�-q��*fJ��#F������H��l2������IA$[p����6e
�Cx~���?5W_}u���Q��dXn��~��qs���Kln��%V �Aj�+y�U�v�98��f��k��>��y����&V��Y�*�%bU��B�\c�Q�i��t=m��p1���87����?o&N��&���)���J(��4�j��%@e<J�i��p�7��O~b�s�l�B�e1���b"A>a�b�R'�Jr�U�����b�����
�o������m�Jb��i��}�����E�1������l���J���#��>cS}����oH"V-���f����G�%V�4I�d_����;.a���}�s��@����TI����v�a����#���o��Aj�%[�g!��
Qa �"MTq�������S�2�G���]z������=�"�Hc���8�����G&�uJ�E�7?��Sg�+�3J��dw�q��o���;������[���{������e�K����U�%�By�=w���W����I�����O�W�T����1"}kM�(o/��6�y����y	5R���:T���m������x���p!V]BOj#� V1V%XGQa�v�mw�%L�W����D(t����"P|���SZ$��X��&�@bv�,��!I���������sO� +m=�(�����P�����x�t���>{�7+9o\�q:��������9��q�vwh�n�%'�V[me�^{��{�(	E
�C�f���������K���,#��J�*���4a����9� ��NH�*\��8'��,��D��o��
k^�*=�n�-O��%��T�������
;�����B����A�!W$��{]��6�b�?����G�{�k������nz�>Q(1
����sv_"2���[fp��6��`K9}�f����&��-z�f�mf�_�����})d��Qf�]v�����Xu�UW�3ft=w���&$-���`�m�V"�P6W�o��M����w�q����!V���\CG����b��o��A�o����x0��&LH�s�+�(�-�@�1� ��U9w%[�k�q�[��D�
E��iny�r�uXi\��/>}2o��O��Tw�~��.Hcc{>v���
i��K�W����@��4Yc]���+OU�$�wZ��!a��y�����W6��4���$�#������C5|U��V�mj�����i�Nb�4����;��6uW�����ab����}P��<�XUt��Xu����^���#3���E=����XFQj#� V�}��x��dsv��d{[q���;��U��X������N=�T����v���Gv��8���
����I��3(I���"��/K������/;�4$���..�Z���M��7��w�y;�oA�EFI��~���K�l��F���D���.[yKw�[i)@�����XE��Q�%3��rK�������d�`;ts���U4��M�_�U��;���!�6;����n��6�Vt���mv-!V�}es�UM���b���g
��$>o�GJ���Sn�!���%l�N)_��A����1��Zf�e�?�a@'M���,������Y�*�	��u�K,��F�9�\�H������(���T�����s�a�W�o�=��/E���iR4(���_���s�9� ��|S}�����Vrp�%?�T� V�����K�a�(�j�=�4��$>�BQ���8��iS�a#�M�E����*"��O>�����������s����8�lH���"�d������R4{>���c�@�����T�K[���.��T��6$k��&;GU�AKIN_��]�xO��A�"Fi�H�c���q2���l���;U��{���,Q�D���K��:�U�m!��Y����z����:��6�y�}�W�*�?�{����� �.�Y���J�
�(��M�X�RsQ��|I��qI��������o&�^���}�1�tE,��|R�*�'Y�}��������*��N����TE@�hb�dX������L�<�<���]I�;��0��4��d�M!Z���5�\3Y�6�����6�I�� 9�n���c�
kY6�~��F/fa��;���\s�5]I�QT�MV.��C\�^R?�I�*I��{�5�t�U:��UE���V���e����7��2����m�������DD��0��mE���E���,Y�$�O���A��J"�f=�=/9�]��Dv-;�����J�qd��nq�@���`�-���3�<������=���}��Nb�i��f�y����6���������V(��$9����o�;WX��Q�O�H-E����SN9%������>����o��V=��M��X�.)�&�+��+eu��|�\�#7m���oe��y����WE�����e��K3�C���
��������3���By�����e�J����b�-��
X`�.{a"���8�O����+�+D���
Bc-���f���ro��o������>`��=�3�����/�%������*c�~�6��i@�U������6�yM�n��F�^�J�
�������A��&H��]U�=7�������I����!
J}�}��V����$�a��)QPO>�do1}
$?�D���]m�����n��7����,�������K7���{7�W��F`��URg^E#i�G����Q��f���f��`q��\<����������l7�:E
1O���u�
�
6��E���4aJ�+u/�H~��U�X'Eo�Wb�$��O��o _�J���M���C>��J��w��|�������D�*J����E�Uy�>P���g����
}y��I��J���w���"w�#N"�����2Y�H�Q���a7(��� ,0���^x�����f��q�fKK����L/q��X%���Q�d��	>GfQ#^/��0��m��Yu�U{Y1���n��;_I��:Km����7I����
I�e�Bi9�3�5��!RKe��#���\���~l��"RH��Y;��c���7�KD�
�
�M���C��_6.� �!Z�1�M�������<#)�{�t�t�9g���6�i\��N;��VZ)�\��6�9�jx�6��$G�on��	���R{$M\&�>N�~�6��>g1X*���U�jS��4�j�����]�����Sf�l=(����%5��
�F|nU������o����oS"4���$M�qg�!�h{R���R"VI>��v���o�����*&}1��������R�{��+���F`��UR��2��TiP��;��W^YLR
���C��)S������f���c�&���Rt]
����{�@R��M��,)A�	C���x�0&9��`sK�5�X�l��6�dGR����w)@iPUty�	�.u���_O����4�&cE���<h���^{�����o���_�U(��������iSmEWe���w��k��>�=�X3���JIWz\�p��*�/J"�!VqX`@)"RY>���'��4���Y�T�4|[fr��pE"VI����%��>@��Gn��6s�u�u�3��BYN�<\v���}p@��]r_�G�fm�����P�I��x�Ag�+���
=0oY�\O\�������K�����n��U�~����z>�Or���\
0�~1� ��u
>Y��
��"U� �B$u��I�x�}J[,�My�������'����Y�B�R��{tR����	u��{A��P�G,k�'=�%����E����7I'-9GZ��.zmSH�d���=�y�0��&h������Gy���J�*��o�8�����A����}�����*�����Amj�$[�K��E0/�F"j��dK�-K/�+RzY�^�����I������6���y�����6�c�����3���.)k�Hd"��&������>����e�XiU�������E`X 0��*��8)]��%r�
y�������s�!�b�-��>h�q��n���,-H�i����@�����2�$h��iy
C�r���cs����n�x�
�(E!`�0��v�Ygy������{.� �%:og����j��2�%=H�)��.�MX{�Hz�%/�>Mv��/E`)�P����Cq�����K�/s�5W2��������k����M�.�v_��Jg��L��+���k_2������2�%V�.!��s�_�gu��a��E��*��K(�t��g�'�x�+Iv�;yEZ�>f`'9G��.����3����}f�a�yO�E�I���F��i�j{�y��Aq�N��"-�&-)\4�:���-E�UR�Z��&
�l@��v����8T��7�w�����@�b���!��G�?�4�^�tb����\5j��e�]����WI����E����L����%K/�}�_0D.�����U)�>���L�)*7�p����[�nGo�Z���6�~o$��utu�<��4A��B�=:�t�Js.����	1���q�Z�����#,���-v�*��n�r�"eb'��W$��H�����'������
���7`j���y�:&�����Hu�����d��]�����#���W�]w]Qq����T��6O�'zE��H��������[����o��/BSS��-���Kv�,�D*JH�����UY5���r��1]�C�z��#�DQ��l���y�U�Fy�#����U�X%��X���ITE@!0��*i�
!�3��k�B q%&$��8�:��l���4�c��o�5�Q:C�=-��C��,��U�[ZN�����+S;�7�+bT�I	�w�=&EL��D��:�^E��Hw�y���6(�yEr����T!��+.�=��)�n������
�*i99�]�0�a^��3���t�M�S����"��Dja�yQ���6�/�x(�J�I3V��"��C��,��4X����rpN
.E���
�_�`���GBm�D��	��?��+i@�u�s D"��Q�BR�X%E*!�<��lR�u�"z�e�������'GuT��|1��,�E����c�P�X%9�1��%b�b��E��j���4���I��q@��������o��V=���6M����u�H���x��Vu{U�(���!���s	�iD�-����8(���[��\Wdi8�������b��m�!
B{ ����/��2s�]w��;�N�)b���2�C��z��9�����W^�%Z�YS���v�*��6���s��&����s���Q���|"���g�Q�<!-�L�y�8�dI��x�4P'�*���U~k�y��5����k�X�;��1������EI�]�o��6J���4Y�)���WbU�R�����[.�@���K~*V9��wEZ����M��y�~(J����%V��)�m.����>���e�U�|���3�o���(zLP�!�X����g�bf���3`$�,��:��Y(-��7S���#�������R?���L%����[o5�_����a�{��%��[�yD��q@����v �����feI��^�(�d��a�A8�QC�z��5��K�$�;����v�2&)�m V
��(>Y~��
�����\$�|�3��X�����z�T[a1p�R������
H�r�t�����g����|�\[�,2�D��~��`�+wx�tr�5���D�b�O�HC�.�G��-��q_�=z��$���l�c�Y�1�5f9�0�1�J�-)���j]t�P�����.�;�5O]����RtF�+�������jz�`�U���Y^��c��E�`o���~�1��������:����
E�i��M�������7M���@��~R��A�X��E��t�����_R$��w2(mq�������u�� ndr���F�Y�V� �DXe�uW\{�{���"��G�O���^JZ�~���D`�/u�	�D�r%d�r�e�-v�*������:
����+��$�!��B�q����6�l��H�#j%�P�����	a�w������!%f_�*���[+Z�&����y�o���il��#�mx�E'bI�5�t��&��D)R�A�J�*�{fS(��dg�"��?Q���W���IGZ���JZA�|�o�c!	����$b�f�mf�_�P���"�(f��U���r'-�&�"��t�Ib��������������_/��RBx���+�<��N�>�]���T!��X	�]�LhPS$�H�����ia��G5��|�����
7��w�{Lr�b���.w���M��`��#�n������X���G����.��������A�����
�������	����,��>���K#����~����O��$~������S}�$���bH@�����\#
�h���#"0���������C�.�������V0��y$�tb�C ��w��w'�R�����d�zB�d�"�P�i�lr+�)�^{��D�-_����w���|��N��J)�%	�D������f�/t�H�7�^�C����*)��r7�w������4�*��K���N?�to��1c��M6��?��/�]Cr
g���$O�g�,A�1�c�����R�0��6M��4�b&����4���-��H}H��Hb��c�!��$��1�R�~�+�Y�l�����b�-v�*�����^{�5��;�����%����b�	%;�K�*��������g����@}�<y�a��Ob���{��������J��z���o�jK�'��$V��S�:�i}���L0�>Yz�������q��z�Q��Qb�"-�8�o����2�z}"-�"3�WBf���w���d���2�X}R�X�*OD��I^{9~x��>)K��"k��,�+�S��G`��U����^B'C��rl��u�A�O�D.���n�1���T��������=m�4s�}�y�`�*���R�x�
��Gr��M�~oj0X��k����s��-�=��0�8D%��oa�rHt�1�"L?���%)EW����'13ra�q�G�i�3��gE��{e��UVY�>�����8qbW$%{C����z�D[a��mC����%��{]������
��f9�ff��e�U</�X�5��CV&�u�'YK�Ha{I"14����n2FB"��!,O�'�K�__g�%�����J����V[-}i�o��1o�}�].������������^�3�y��d��|Q��������P�0�1�>�����o��g,�v����z*Y�W�;��%���,��s��*�U�q�e�BW �A�l�4�w����� �%��s�s���d�
�z��|��~xt�i�cJ���A~d:�VM�"u�m�\�C�����1f��
B[\%���q���D\y���
�� ���7��x��>K��!�{{���A�����!�E��'$�/�&CR�|?�ye��������Qe{����W\a�3}B��$+H�>A�"����$D�
E� ]��L>��6��.����'yI��4B����Kv[%V��`��&��6�ym V�FB���I��[l��������U�WJ��������CJ���U������|VR����>�ZV0�OB*���"����86c�s�UWuK��&i!V�6�i�M�[�v�m�����.0����
�3�]A���������"0�h�X����G9���f��B �����~0Y~Kr�������h1������/�����nc�:\x���]H$L���� �1�a�&���l"FIFH�02f�L8���sO��Kx�Y0�C����m�� ]
�i���R�����!6:y1����h������m�)����q��%�\%�2 ��#��w��hK�>|kN�g�(���}.���Xz�rI���!�r[�iSmE����L��uyg���-�;����}���7��w�Y|_!���'��!EG���
�����R~g}B�@�
y0c<y��|I$�4�{�:W����%b������p�����q�B0
KB��9K�#+"����j�}������
�3��b����%�<\G E3��'����������I���s\j�8��9r$?k�?H�R�p@���sVC
��h~��_�e��@46���M
����e"V�H��9����p:�����!Dy�x+��YzBGb
�H���8��*zS}w��9\��6�B$T�I��U�H<��ICr����z�
�A���ab�4������oy%"��{����"K�Kc��mq�D
pa,�iI�����r�-�:�8��]t�#�8"8	����6�AhN;�4��2W�,��NF�YdQ�6Df�#��.$V"���P��t:Em�m�sT���G��1�
g��_�����Xi�%�4D�z������#�`�">��;�C�*�g���`g������+�#U��UW]���H��x%V��M�Amh��B���Fw
	~."��� ��w�u����kE�6D�h����_�)�*L�����2��g��^�$@�g���`(�d���2�2�I�`s��~��G|��cY��%Va���-�����f��
~.�|f�j�4�}i�,�����+���E�1bU�K�
���~��A��a���
�^fob\�" �g�"��$'�M�mL�yi�{:��h����
9
vuHt[�Q*��@xL�!�0�f�-I�t`����aE���v��G]HbL�S���*�#�&9��;8,���I���i'd������'��Ss"��@����Q�b%�a�O��]>26���#_��F��L���@B�M�=�-XA�}#���LiS=m��'��_H�{=�{��MN�O<1��m��2���5�����?1�*�Z�h�1����Y3���z��ae������"a`�D����ioB�����D�b�'���qh�X����g �@���.�1�����,#����D��I�:���`�`���K�y��!��O!��&����|B�sA�^�6����]"��Y������.b�u;�d>>��3O��A����9�ch�!J*�;W��]��^�7�w��o�������p�Cn<!����^�2&���I�	}���F�����bic�&��$�0�C��A��������{�7F��-F��>�R�����c5��\x7��B��(g���}�����=�"9�D�K���c\���z���)����`{��C���I�O{^�����{v�m7����4m���=h�x[)A��,b/H�����a_��c�B��g.-�g����D�[���+����n�j��k��7"��7�X�v�v��6c�Pwt.t'��>i�������X�M����/6o�:&����.�$v��5��<���	��%vr�[���66�#�<2h�%��O?��Q �1	2$Y������ mc[���7�_b�(�+Y��z�W����� V�za�,)iE�A�CJ3���
G����N���	p:�&$����\���'�~&-��������_�Z��(��O��$�p�*����R�������\H!���{|���(z����UM��:=�,+ 2T-D#{H�TO)gm����w��D����>] �I�Vu<��f�<x1Pr%k0��X�������},!f]g������%���bGU�+k�n(�[i��D���� oft��m�Hm���XE^�rp��`<��'C����G��%�^��J�9��a��C9D��j�k�Vrp�;�0����D��z~;�U�Kf�23=�@���D7��f��E��l��H������c����mq�D�46�xV-Y����lC���{�(W 4�����aq_���
%Nm+���8��e�"CEo��!���D�6���\��zy���y(�i����+������L����mh��X�����6�5����X��z|h�z�D����-� l�XO����c�j�4Y�@����.�o�|S�CR�XEpn�>�!e�U���c�9&�C�Q^MSP�aC���y�P�����$���+O�AB+J�%�������@8��
�eD���.Dk�Y�*+-����jIxM�,���M�(+�fAKkg=O�<$�8.CB��<�����>gg�\~�������A!V�L��Y{:4� ��Y�!TA�����S��D[���(j���;�K���Q�H�R��� t��Gw]^�X�L��Y�]��|�S�2�G�N��Y��L���Zkyg���U�������0(�c�=K�\s�5]�e-?�L?�1nfx��]yp���?��`�h���A�3�c�n���&���XE~Y$K��He�%�c�i��:�U<SUN+0��'���#3f��my�&������a)@[������W"����j�#f['�
���i�J�]��B�t�"��mq�D�4vL����_����F'�~����]�;�fR��Llt��`� Bm�6��I�M��[���S���}�C�0.E�Zo�����o�f�{�);G�A[�{�%0�d�^�v�q/c��/������W��U��<6o����V�m���2>����>��/]�t��*���?�t�T��6bo.�,_�7k�)6�b�������%Vu�l���g��}�,���&��^>t]U�%	e=������������~����e�����(��(�D�r�|����(�@��X <i�Q<�

7a�Y���L�>��s�=�$��� ��y�����&P�ABW�����BY1k��bS:��d4J_����
�������)���2b���u��7�d���c���j+��4����������e�:��]v�%Q�0��|{I������$�Lu��**�d6�l3��J+E%��zJ��j+\� �Hu��������W�>:H�Eu����iS}��,���
�/3iho���q[}ic%�@�~��$�J���v%�X"�M������O~2Y�Or��1�g�u{���f��8���"`]����6]�jm�Q���=����&��5��<Y��z����o����E����nby�D&��"�Q"�n��6I�t���7�����{����#��������&b������\�7T����b�d�<�P�U���K���
a���roER���.5��m��;U5�����E���;�h��k��I$����������+E�O�����_��1m����D�Mk��wN�\u���/-��},���
i��QG{����}/,#y�W�"�bG�r�-�vH�C��m������(E�q)Knb/�OmB�l��XU�o�j��k#�������R�|��)���-�X���t=�U��^���nbv=lNDaz���r�9�7l�y�jn,����u�
}-�y��1R��|����H���xd���O�����R�X����+D�����(�@��X���]��}��'���A�%���@�+3��u�]7�	_��%��?|~��
�}�QG��j��j#�c�;P��q�[��t]�8K�q�	�,�1���������wp/EN)����������%��t$��H^���H���'/{-d�-����5v9��:��34+��_V� f��B�z���z���m������~�*�8��y	)R�jC=m��H�	H8��l�@D��O~��d���D��p����W���.�?�?I$C,�E�L�c����3�<|�U�N�)��$������,�s���6�n�iRf��~\a���%`�#a�c������a���"E#����z�������,�1�3�cyl��s!T���\y�y��������o���p��$wV��e�P1j��d6����~{�o��Q�HjY$��L���E���S�vp<b��B7�[�*�?F Vq���_���{8����7���w^�9�#�&:�z�0"A��o�D�Ze�U��n���k����t�U� ��(SfP� 8����e��2�����~k�%����#RvU��]�h1�]]'����~�!�c{ 9��I1�2�@gl;������+&����n���Jl�j��^x��x����d)�:f����Qg{���^�����$�����������gq�?�WJd=;�O����~��N�yg���	8����m�&���|�;^'�	'����M��Z���t��6O�6
!	�F^��4e����H�4��9�(D��N+�o����P���t=p��O�E��*�l�1�G>RY����/��^��(��������o,�G�*����7����8�����`��%N�r���������}����i�t|�`���r��|���Xa��+UN,p��}E@<j%V�\D#�@����_{�53���'�N��g���RK��|����('o�����?�1~��U�}������]��S������`�`0��?��,�,�0�� ���~�|k��R	���B'_cpN2��~������h����k�7���b����E� ��Q0lAh�]�?�����o��T!Y�*��I�z���6�	�18�"C�7�@f-���
�2x��N���7��lyN������lu����Bl�������20��z
:
8�}v��
�Y]��O�.����kP����H��}�l��3O��@��,���bT�sa0��R��{��GPwi;l;���8W�x�i4�w����l?H�4\��j�h��hq>���f��o�{�A�V�����r���ci`���������.�Jd�-��I��A�?�;��>
]��c��R5���~k ���;����}��I��1N���&�������q��\M;�1����^�w�sF2>�)^F[��+Q����ni'��G��+�����A���6�
J�W�[��$���{n��
�~��v����U���AV��|�"���>������A�#�8c��t;�K���F��/y���E��m��Z[����
�
6������2��0����*��"��"���X��:E@P�a��dT����%V
2�l��"�(��"�(��"08HQ��F�d�I	&�0�w���(��"�(��"0he���n�z����/��uB(��"  ��*=�(��"0<`F�I'����DU�c�=���J��o]�YPE@PE@lX^��ia=���(M p���&Q)�@a#?��%��KM�>��V"�����"�(��"�(�����@K���1���J����"�d"���L��E@P������^j�����G�m�����/�u|8Pb�p|�����"�(��"�(��`#����/���!q��|QQz���'��,���;~��dIv�x�>���L�+c��5o��{X�E@PE@�k�x�	s��gw=�r��*��"��A@�Uy��kE@P��>�����������c�9��
u����Y�(��^�QPE@PE@Pr!���o}�[��W_��o��V3�n�m�1�Qz��@��@���G$� i����f��y��kE@PE@h=��s�y��G:���|�~���tGP��X��^�(��"0�������SN�
��o��&f��1�A�*�*)�NPE@PE@P�	�_����K.�*�QGe����u��@��x�����o���]�z�9���
�����?n&O���T'�ya����"�(��"�����K��N�z�]w�����
]���"�(Y(�*!=�(��"0P<������6�L����0�O=��������o����,!�>��]���%V
�7���(��"�(��"�6D/��7�i����t<����j��n��c�����s�=�L����w�;Y�o�u�1��6���$�����n~���z�sp���6k���x^O(��"�(��"����?0�>�hG�^xa���*��"�A@�UEP�{E@P��/��?V6�`3n������uJ��YRPE@PE@�<���f��I]���!L�QQz��i��f�y�1KV#G�4,�@2y����J&������Id!��=��3t��SE@PE��@wB�r��C���������"�(�J��"�(���B��n0��rK�3���Ga0T��%V���(��"�(��"�(���e�]f�����[f�e�>���qLw�����h&L�Py6�y�{��Gi����V��&�(��"�(�@��r�)���i;vl�3}L+��"�%V�AK�UE@�{���ns���F=����o�\r��k��EJ�No[�UPE@PE@~���0�w\���� X�(�D`���I5���B�Xb	�����������4
E@PE@PZ���?l�N��Q��Z�|��_4�z��:���"�(yPbU�8+�@IDAT�ZE@P��G���7�'O�|��w��������
��X5��>�"�(��"�(��"0���okN?����^x������;���"�^z�%���������3fL�a�Yf)����(��"�(�@������L�x��W:�v�a��EY����(��"�%V�EL�WE@�k0F�p�	�3�{o%�U���w�t���.��d�+6��1v��8�$l�����$p�	$�	'��	�'��`c;x�����$k�}���{�{�zzF#ifzf4�z�t�.u���W��U�>�}����W�R��K���������gJ�X,f���5�c
D@D@D@D@D@V2��}�{v��7O9����uv���O�SA���������?6Z���+Zix�3�i^x�\�-����������,9���K������D@D�YV5KP������8����{�n��k�<x�R������SN1��W�r�l�^{�
�:�Sd���C�cD�����Ap�������,�ZWW�uvv��f�[�j�1�K}�������,����������vww�K_�RM�QFD�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@�! aU3������������������������������������@K���%O�JD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D�V5CO������������������������������������$	�Z����D@D@D@D@D@D@D@D@D@D@D@D@D@D@D`�����l��M�����wV{("p�����;�:`8���+��k������Z��������E@D`V�EU" " " " " " " " " " " " " " " �G`���666�>@�����-��4G@����im�9��qc}
	��(�Xf$�Zf'D�#" " " " " " " " " " " " " " �N@��V?�:>h
V��y�Q�������������������������������! a��9U�Q8�	HXu\�~������������������������������ P�V��_���J%K�R��7������z��.�|�������~�=����>���H$��r��o�����/~a����u�V������-�L�������}��G����|��GWW��s�9���?�^���Z4=�v�7�p�=��c�mq�m��������.p�q�\����j�����/z��_m[�lq����u���Y_���t�Mv�=��}���������s��3�<�.��R�d2S�	
d���|�*�����������[�;��������O<������k_���n#��R�����U��9�����������������������������c��t�I��������g�������e�]��X�r����w�u�]�����6������'�\�2�|���>��OU�M�?�|��g?kg�q�!mFGG�@���#�?��?��|�#N��v��<�)GZ�~��9�T�������������'�:$���������l�B��N?�tW�N��1���o��������>��R�
�����U�����������������������������������U��z������{����v�����7�x�v/x���k�9�
E�����?\Eoo��q��rV��X,S� 5�@X?��]���~����\�P�����6666���O}�Sn�7
�XOq�L������b2h$ aU#
�E@D@D@D@D@D@D@D@D@D@D@D@D@D@�����'��3���=���������������`�?��?���EN\t����{������S��{��_o?�y���W�W�w���r���>��z�.�������t�GM������Q�����5Z����?o�|�+�����?�+���^��>�����8��������?�A��+�T�{�n����
����}��dy�������������m����O�����7��M�lxx����(������6�����z����'?��utt]**����tVM'���������������������������������[>k�bnI?�H����{L�U3���k�7��
Sv�"����h���� \u�U����,(�_��_�W��UW��@
�2�L}y�r"�@������|&XlW^y�Ql���W�����/���}����^�b�O|��23P��k���.�((������������Mx���c�z����'�8���/�/~���b�IX��}��Sd�j�jtmHq����L' a�t"*����������������������������,)	��Y�����/g=��t�VE�
�LM�\rI���QQ�Z����\������Mo
�6��8�"� ��}��o|�����=���?�s�}����{����K�Y�|�3�M��h����;�n���/~�}��_��~c�n�������h����0]XEKUtM8����	�t)����������������������������SV�}���w��]3���>��u7t���Oz�v\�����-{���mt��h������:S29���|>o����;���[���.����o����y��2�S�t���h�#	����`UQ\u��}>��S��)�
�NVQ����~��V8	��DG�D@D@D@D@D@D@D@D@D@D@D@D@D@D@���Uf_����V�f
	=��Cn�_��_�;�����9+T?������U�+U*{��'m��]�c��o���a5��{�����^��~��j�p���f=�9���[�Z(����;�����Y�jVc��6�hU��������ot����������@#	�i(/" " " " " " " " " " " " " "��$�2����n�}�sgd�(����+��+�����MXE7y�u��7�������U\~��w�k_�Z���^�+>�y���l�T�^d�R�^{�]t�E�"�K�������\3���}�cn����FkVs�����$�:����X�����V(U,6��.N|G,��m���#� 
�Yn�%/��x���j��z�jEK���L,����L$��D������HP�TD@D@D@D@D@D@D@D@D@D@D@D`���������=��O���,���T*��MPu�9�8��}}}n_fVq���;��-���$���(���i��c;����?���Li?���^�*���>�V�.�������������VD�8& a�q|�u�"�����#1���S6
�-��)V��)l�mI�jo�����"X>e�z������{����]�,��X�
1ui&�D,b��r������3Q_w�����i���>l�H�^dN\����;�N\�%�R*+����{���~��z^h���-����" �t?i����@3t?i���h$��I#
�E@���-Er�v$�Z|a�>�����6<]�QdD�}�7o�m��Y&�����o��o����U�������7��_������~�������g����+�9���V�h}+7�p��V�������[�n����j:�E@�B@����R[�i�����a������5v�P(�TX����P���C��r�"����I����������n���v�����.>�?�U�z���Y}��t��Jm���������$�Y�
X������k^xa=����4C@��f�i]�F��4�P^D���4CO���4������" E@���"9u;V-������;��:�SO=����j;����u�����mv�u�����v�5�4.>b���������w�wX��
_�]������U��o�K.����B�s�=�^�KF����R[��$��NDe�Y�=��}��_�hn\��`!
��h��>����-�@�t�P�9T�
����	�F��`�j��Y��-����u]':+V����\N[��,+za_V�C;#-C@���9�:8�t?9��@; -C@���9�:8�t?9��@; -I@���9�V-��j�(��h�j�P�V��@���=�n�jbb�	�x������������L�m^���]u�U�����^>����CZA���w���A����_���X"���N:�^���aV�K" s  a�`����T?��?ml��N]����a�o�hO�em`�������N�Z{
V-��	;m���e������A�eJE`���r9�h-����������$���������"��Ik�O�K��K��lh]��,����jq�U_������h���]_OOO�����g>c���P����������+����g�m21P�D��La``��9�����~��v�������*Z�
�PA�������o�=(����j'�pB������`�����U|=���ve	��X��	��M����
M���u������[qH�E��
�(�'�R�Z5�sb+'��,���L���������IEV�qj�[��^�[����D`9��e9�����OZ�<�(D`9��d9�����OZ�<�(D`���eq���U�+����n�{���'������]�������E��'?]Jq���z�T_��������b��J����}��k�������n�F1���[��?��?��}�cOz����{��/~q}�-[��?��?�g�Q�c��������o����!�7���Uu4�������U���UD@�n~���ev����'�*V,[��Hw��C����v��mgX{2>}��"�$���$��!"p�����;�:`X4��,ZmX�;��w�\,�F@��EC�
��qM@���9�7�s��lx�[}����D49��g��Gt[��~�����?=(NI�����C=�����J���+�,
oz���n��I


�m����n�.��2��?Z�������'���)!�N���B!W�}�v���K����@�{ww�����x,��z��_o�����������F�Y����������S��TW��}�h��1����m�������g��_��q�}�[��g=k����US�� "0GV�������KY���o�����"��@��U�B~������e�CV	C�Y5���)�(��������|�[���*�X�&��x��uU����
�Uf�?_�������^D���4CO���4������" ����zZWD����'�4�X(��,Img)�U�}�
7������������|����]w�]p��u�[��/�!�����h!+�NYz�UW�_��_O�c�Q8FQ���/�rH��*���/�K_��)�$���C�9��j���\D�������-��;g��{����*����}�+�o�����Pn���QW��E,�DLD-��|8E]�BX6�7nM,�����gX����7�����9���V���6�3�V�z(��md�N�
�����Vu��/SF��^����)"�{����"���B��vD@t?�5 "�Pt?Y(����@#�[i(��r�l'�xb}��K���B-E1�������5�q�����������������Lir�-��G>�����_����[���N;�����.lf�����k�����\�5n'���������.�������o��o�6p��~���Uv���:W��-\�^��W�;��;�����z������x��v��g��+#" G" a���h���������e�K`�4=ey5?a��A���"�2)�Z�2j1�Z44z���")��R1)�J��*��l�(��_����w[���#_����o��i]'�g�;�a?�����-�*6
��X�
����������;���Q���g���'O.TN��^��6#"0���-Sp� "��O���UE@���d
D@� ��I�����a	��rX4Z�BT*��o���������a�m������s###�g���w�MLL8����~����m�X,���>�\�^��V�ZUw;8}�}���\�x<n7n�M�6�*����b��j1�j�"�������.����3������{y���PY�Y�m�mB���lOV�.�f��]l��_`�;��T�gA>�\����bEw���j���������5)��������\��4A@/�M���" �%�{�a�h���	�~2G`j."pX���������'s��" �"�{��0�������	�Z�4� D`�|�W����Z*�u���l��^��!���"�o��n~����k#��x����l�g>�2g<�Vu�i�d����������dU��*�T��{fn��7��3�=�.�r��Dr�>�X.���A+��n��}��\Z�R,�)�������U�R+�E�S�V��q�+U�C�����Pc��$v�m;Y��.68e���T)[�R2
��H+���z�U`��lX^�2�];��|�]}�r���C��I��,���"�pV��|y.C]���Z�dZ,a?�Y�R�`�~���<ca�r��e����g�3���w�`zO�e�S��rm�3�6���1����" �Pg`s�����$�O&Y('"��O����E@&	�~2�B9��#�{�����D@D@D`���j��!��,#{�����[;s�g������{d�e��rd��E������'�l<��--���Y�Y�c=������y�.�<c�Q��'!�
Q�R�>{t�l����������.���bK�R�6+=S�mh�����md���� ���H����T�D]�����^n9�Q�`���,]��F,�d<m�D�qq�t�"0��:�QYD`�t?�/9�'"0���'���,"0_������8�[�DG�D@D@D��HX�Z�SG#�J��������,3�����-����z��|����cp8t�>�88j%�:�OXm�g?�����:7�k]�'���)2����
���m?`���v���m;y�=�����y��S�S�-��O��(�SL9�T���e�����P6��~��U��B9Bd�h�Z��% u+b�Dny��04����P�z�U��Xf;,�Z�+b�\��[�V�h�\����T�G��2���}=����x��8_rZOD`:�O�QYD`�Z�~2Q���a�cBI������J�����{����|q���������k�N�/��x�z�Wc�c������j�v|Sx�oC_@F<����sf����s��"�Y1����(��M�YY�Dh��[lo������~��{���s2'�a]��	���>W���-�bY{��o����>b%h�g��|n��" " "��$�Zh����(�g�w��a����pS�;�m���l.��"��KV-�������w�\��"^�;6�������4��~X���'m��,7�u�������c����X��sQ�rs��A�bqv���]�o�G �z|�Mv�i��'�gvD�1�����h4jt�����\;�<�(:���:	�g'@`9�)�������>�	!_��
��+�;0�!�����aEtL�c�����&�F���gs8�Q#�6tt�|D>B��.�g��\�LX�:�{�0��7EUeD�����.��U�#�u�:��}W���nc��P��mp�_�S9.��Bn�k��
Hq�:�{�	l�������
��7�r-�LO�:�u��T�N����`�e�V�����|g��~��t&�c	�����HZ"���.���c�9�����B��%�r�uB��t�ms{1\c+-�C=�e,l=�u�q�k���l!M�|�!�o�����;^�]A�C��`91�a�>Q�eC@����ThGD`���d��B�,�x?)�s��������l��3��;D<���$���'����o��o�r
����+a��U�
���`�Iy�M"�l~��S��X6�<�7�(�0!x����$���d��&�W�H�=�}(^����f|A>�b#Nh,��?���R�)���A�}r,����l��K������!�/�����������B_����V��������/����l!�s�p�p�(����y�7��qb�l�w6�x��l�����Y'��l�GmZ�Y�8:}:T�	���K�E��%p��7Z)w�u�m8B��lk�]=_�+e��"�81�O)�?�G(J��/s#NRR�r4�?8	�L�
}h��[�3c��z�4�����_���@���R���n+������W�3���3�F�h)N���(�H3��u��:�+����A�1�n����5���c�6�AKg,���0d�.�&�E��bV,��T5�c�DGo����:^�u���T��QTME�T�2�DR%�*8��
;�(~� ��s
�FIt��a�S���6t`�*���E�Y��5����u�c\��0��H����u	L	|O����c=�5�}�v� '
B�n�(��m����v�����=��a�}`��8�������B����@
��N�Q��;zmu�:[��;�k���l��	�w����v�������\��G���[(rs9,/��p�$���;���o���G����,�Q�E�����Z��O�kB,'�+Y	�P��c6jm���#f� 2�}��k!��;����5��:O�3���O@�����\���
`�������
7h��E<�T��F0���l��
"K�nN'�\�A������km���������Rh��	�v�?d;����EG�(����,�����^��~�!���b)<�������wN����{.����@�M�b��@!����^x��Qx��������'��(ZJ�DW[%p�S�E�c�)���|_p��P[�	��9��1)���+�Q�F!�r���d��U�5[�f(��`k:6�<��s!?_�Z^Z�YeyQ���������$ a��</�+XVhn������mx������=[ew�e�S�k���
�f�PT���-?x��
�n6���<�2�!���"����6.��.h9���o��|�o�c��G,t��{��~�����#� ��7���N�->
����O�X>�Uq�1C�(5�A[�-��A\2��3A�DCn�-SA��AT��i�v�2g�-D�@u��*D*�`�[:�z�=���r�S��<��d���q~�b��X�
9��7��Y�	�E
��(��.��b�|i����U��.���9
�XL��	���H�V�����/��-�6�p���0X�F�H�%�Dt�u�NAg|B����K�|["���$�B	�g���������m����o��cu�[�����4�v�E\g�`�F��c��_��ms4[��l�������8���{JZK��+']X�����	����V�i��i��B�v��	��;�)�s^gq���*�Aj���(��[�Yu���/�V�P�,�y�E|tx���y�:�������]�<[�3�3��F�Z��>7P�gz7fp #�{�������>�|�w�+��h[ei��H���N�D�U����U���CV��~?�����8x�U����'@Q�9(����vD
�R(�i�]_�����
EX�b���)�[B��������V_*sB���?k�kK�*�����[���M��o����]Z�.�4Zu���:ZV�U%Z[��%��'@k����=E�����KDa�y��X+��:���~�I3�F�S���+�GK���z��A�������0�T��jG�DV^t���s��5���O������K�~v�	x����@�NtYw������8��:+�Ye9���������r# a�r;#�X���}��?�i=�����������8��Yt��f�*�;�0|�������V���@��xo?���3��������
"�[v��#7=�RK^�z��y�|6g�O�
�Cx���e�,�|�}g�F�Y�K�q��q�!��"_	�S���w� �	Y.!�*&�AAV�����;%�hE����Rw"tGqM|D�q��O��aMj�f���$,�J���:i�^9+Yt��eZ���D���+s��N�U[m|���)�-5-�n��� �����>!�����y���� t�)p������U.�����X:�z-��O�+��:�7!�0��I%B�&s���������P*c���tJ��#���5���a\2p�������iC�Ye9+5Qc���);6)���[
�Z$c`�\cZ�w�pG�M�����d��k�	v����<��	F�G�C����A����
�=�M7(HM&plp��J�M&f�C0H+~t����pM�~��`��77���
�I�2��u����mnf�w������������Z]�����cNp��d�����97���=���k�8D�^xa�,�z��g}cR���~t��:YI��NG����`��",WF�
"�Rhpa��)��,+�~�g�q{����X�v�Tf�@����NY��N]}��l9�Ldc���r��9c��=ty�<�/�T/�����rx�j�@�?���Y�����i,>/)x�5�xm��d0���$�l�
���(`b
'#��{9g�g	��,�:��y����y���<��{�v��EWY�=��A������G�B1����$I����wp�K2u��xG>�~s
��p����2p|g��,Fz pV��wu~�\�+�\&R��U��6
�j��R���wg���
�^70v������w�=vpd����^�*
����u+��<_�Y��@<5�~��TN�t>��m�f�q�:���w�n��z+�,*J`���C����B@���r���"p	\s��l�������?�^��(��I��Pba_g��YV�'���mV���~/���������g�Z��/�(b��=6p�N����/�����"��Y��;t7DV��t��V/�A����� ���P(�*�Zs��jb&�!j�c8W�|��m�phNa��e��4�"����~�B,��F�T*�]Jy��M�:UL&����/�����&�Y��8GUD�)����*h�s���JuZ��dnv�af^m����g�U��:�]_��/��$�;X��FhY+�<,m�g x�8�K������$:))�I�!��K�:�(���
Fi���(&�q�)v�:>�I���
F�;�oEo��10ur"���Ct|�%1��� ���LAN"3
��u�-���"������L�
��Vg"�/���>��Ap����s�~\��N\�L�)
�R	t��$f�#�@�V4��#D������F�iYD:��j�����-~w���"�BYBX�^�:P��z���Nt�v�Sx>���)ETa���*
����f�.d�������W������6F����fm47d#���f�s:�LbZ�B7f3�5�x���cF@���>XZ��J����dG��p�w��0���;�S{!�Zs��k���2�w{'�q�,�i)�����X�*P�?�w*�8�?�t1,q2X�;O>���tOOK���0
����V�9�e��)]�1��h�n�������q�3;�W������qfs>���68����;�^d�DS��9��������@�Y�?[��jZ&��	;���"Z0K�����Z+:��,����=g�
,�y���k$x���="H�������PF�r��>)H�`��]���u����+M/�����]�O���j��7��	����*�q�aW�@�q�V�
KA85�O1N�{�
6���W��w�j���������;^�b�[�W�:nX�$�Z�gE�$���c���;���c�!{�%Z�
c�7�������6���8���o���}V�l��Xo��,��Y8[�X$qt�5�9������c��t���\j�g�`6���M�4Q,s�c��t�-���qZ���vpaWs_��a=�<�=����������)��b�p�����r<����+q�k�&��h��Y���B/'�B:w�uh�������u��eZA�m(��mK�&3.�%!�� � <�C@�Y���K������>�����t�(��u/��.����0R@�$��]�E��i�z�p������s|;��������J
U�O���B�� ��1+!����p!C)3��m8+)�m!�b�������������T?���1�2���G�Z
pb+t��]@w�gQ����83�"*��sB*X��L����i_k�pk������N(������c��jB�1���Nt5
�-��7p&1�w2p0���\i`P������f�����
.����.Gc�2+��
Q��|�=(���.Wr�|��
������L[����]\������_������9x����r��M�CHu�=
WR����B��W��,���fA���_E_�!5��Z����p�B�n�"�1���R
���Vj1�e��j���QR(��5n�%%@-����>1X�u�7���&�y����T�wB!'�h�F��M�D�-,���rc���
���� ,Z�����CB�&P�D�V|g���<]��}q���G�~��a��� �����@�H���;��d%�����W|G��+'������^�G�����?��,���BLfDZ�2N�W�c� �����1����foy�m]����\���-��W�eE@��eu:�3"��|�����kf�V��~jk�7�����V�N^~p�=�����-V�����X���e�Y�
+&k�c~�jt0R��\��*v�>
��a��/��������eB p'W��k�cZ��)9a�K������a@IDAT5]\��Y�U��h��J1���/�i�����(��08dI,���&'��ub�S#�<��zVF�#]�1HP�,uv����u���B�`W�A]�L�dN�jZ��^,�\YU�^pU=�=�3� \��:'�r�+���l�h}*�D�1�lG�w��,�U�!��5Q�#�q]�1@��t��tvc0"�(��1bL��i�`�{�8��:�
�H@�
\���0n28��YqV9]sP���P�	�X1-�-�����pv����@H{Hg��X����AO�~g9C�����kv�8k�B��3m����h�?^gI�$x����=��Y����C���	�?�*n�'�����B�p�}���O~|_���9n������ �*@8��^U����+����Hd�;�G�Zg2g����������:��^/�
�W{���;nVQ�������>��+��X	�e)���=��R���j���k=�� vD�'��n��
=
1'���e����S�l�S �Z�1;��UX����G���0jR��Jab�T����1�O�3T��BQ�bSEW_�b3_��������W���^Q�E�X^���n�U���)Mq�~���C �z�bs�(�6h�<~��|.��+���+������3�[��U���n��B���P�DA���������v��[DQ���%p"�AGsx'�s}0��e!{.�3���8�R���i�Yu^���2/lZID@D@V$	�V�i�N����?��nh���u�����V� t��d�nz�!mVRE5���!���Jp%5��^+�+Y>�
l�8?�~��w�������"tZ�~�y�v��r�J4���!�d!uV���]cm�#�
.��*����
,z���*�[j	�)��������2���[�b}�,Z����e�NA����O��i	!W(���S��
�|C��U�����#�w���Ok�[&�Z{��9����w����~�����68��Qw5�[���t�"��`�i���	Z8X��f-����B��9X�+�q�!����{������C`A�	FqC�fLk��<�3-A������7�p8���)��c��A��5S�Q��:����u�����v�����.�������K}���6�<�
c.J'�J$�G,�]in~`��nI�6�c(��Ju���!^�(���+�`R	����h��a'�������%��_.�Lc�:5�jsig�*?���!����J���{���<DE������j�"�����,��Ww~�����?��{��K=��	���-���?T�I1��xWu�@^?��Q���SHGQ�2^c���*�&����Hn��b��o4?��8�|!w�?I'�a�� ���9��8�~�E�E�)���R�����=�t���u'|��'��p�n���*"��Q��{��R��������?������[n��5��B��������b�vN��OL���8��M��z�LN�������u� ��h*��[SN<Up��I���<|��vtAh�c�@l�h��#��B�{bukW_ykW
/����;y���H
A 5<^��� �e]*�)�BFl6x�U�����.����&�b��8�@W^�����p��xw}�M[,TE�X��M�'���Z\��Q5�Qx����F�TB)X�^!�����
���,���c������X�R��d�"2�x^��3���Y���{)�5|	ap_�����}Y|V�[>Z^�`�7p���a��2\�e���y�� ���7�n�Cx>��y��y�����3]	:��.�6>�u�j���e>/;���M�LAAT��TMH�-D-��0��J�0_r+p=|�����Lq����)����6�O�a_�d���u<���2�����C��vn�
��\��������`,\���w��		|�b
��N������BO�9�~����$��kf�I�������]u����_���2��|����g����7<���9��1������-sF�D@D@D`���j��:��,>��������wg����K[W��[���Wm���J��X5����wXql'�V�f����e�������]�U,f��
f�!����1�y�)����|��������(��$�����`�P��B*��������`����OV�x���zyt`�(���e��RX��Z�7�E�`=��V%�Q�`
��psA3�a����Ey������!���	���G����$if ���u'h��;!�n��;� �s����tvC��N���M�n����>��*R��9pC�P�,v@E�Z��#��n��Xe�6��m�L�T'��Am��(���x}�B$���4>��P�����e�����_M���A�����Jul��i\�9.�,w)���X�c=�M��O�����c.X����������6|=�x�9��k�]�V(�[:0%��<T 9(����Z�Ct�C����lty�c��8Qb
sp`�a��t2�b%��1k�� ����K��-�����e���^#�9���
�(�&����&���Z9�b���b��@��YaQ�EA` ��u^���pk��ZH�YH�[�r.*GgZe��q �B+6q�zz�V�Z���q��j�y�a=�Y��*��1e�zX�=RGFq���Pi-���*�@� ,4�/�f��L2���^MpU^�!�r,�64�{7�������w�{a����lo]�P\Z�p�kpl6ng���&
aX��0QX��@8e��V@��{�6<�����b�n��V������q��<}1\�=��u�K����{q�=b�_
�!���G�)��������_�������ROQ$E���(ES��Tc�����
B�4�E��^���9�������s����4��v�!�IE�+1d��^X�:�f�x.��EL���6�[)�T��.�������8�����/'�g#��A�4��t���7(���+��+/�B��y
�.���z����2�A���Z;��X�,t5�_5���0��`�+w�d�px<'���b�P����~/}���J���m]�`�k��:�oh��_XG�V�1���S�8� ������`�����j�I����Fq�Q���FQ���w,�����>��}�W� �,"��{�=)���8&��vp����1������8�e<S�/�[W� �`'���������T���o&�xC<O����Y�7�c��)De��O#�[8s�~��7�{���h������	�Z�l�XD`	����O���6v�;�V��~CJ�������M+TV����<��
C�Za�I+�M3�c�v���rh����{�zl0t������"����~��m��8�b1\��:���q��nv</��B-/��@�tL�n���
^�Q�_6��-� �{-�����^�("03�<�b��%����<:?E�!2�e�SP�l\����z�v f`�)��Y�0~�"i�6���-�0��w�p�6k�E���6n�_�}�_�v���T�LK���&�PpF1������F�4�{Qv�C�����2/��	�(�r�B,��R����4
���3��r�uhUm���"�7Q�5���..)���C�E�X0��E�1�X���8F�#8IX������|�.4a�%�(A|U�D�dF��&�l����
L��	�[h����
A|g�k��9�����-��;��s�}D���������R�`�u.?i�l���WEo��� �BTY�@� �I��|�X=����>0�Ft����\�rF}������t��m�9������������)�{��e!�b}V�f
	�tOa�{*��&\�1�w��g#\�6X�����XMa@*�4�2D����L[\��p�~x�<h�H�%�OE�=2d�X�
��x}D �`�]�����@Y=�0k?�"��A���K������0�O�BZ�;����2^�=M����{������3����E� �l�="��d��U�\��`-W4��,��)C\\���T��2��i�
�HE�`R�i���2��[�(���i iL�h�u��H\���U��n7���vk�P�=r���U/�/K|<G��Y-����h2�1k��
�8DR���W�;�(B�VB}��b��i�;'������h��c��CP�K�BS� ���b��FP��;��F��H�E�&[��e�b���������A�ki���V0�_]��v�����!e'�C\���6���8�x�zw�
~`���G-�z"DqMk'tp"+����\�",��V��wb������^B�,��\������L����("q?�;�k)#E�&��3����y���[��?�#�\���P��!4	��#M�Y�Bo��V����7p]<d�=�[i�����?��|7	�������)��?����8x_�������2�-��Kj�py����mSpF<�x.r�j�����ut���-W7����~���LL�) �R�;���t���P�\���K!�t���V��}�y������O������m}�i��v�]��u��5�=���~�6�0/���Zw1��'����
�$��XMH�,������]�[/��y�lQ�7���
�R
)w/�{ZW���W.���n�k^5��K$�Z��X&$�Z&'B�!���O��o��?k�����lc�F�,��
����]�UV9�&�&H�o�������U Nd��h&���������^��ZH
D8L)�Y�@�{1X����O�L)���1�77�������Zv����Y~�������B�mQ��G0#9���=f�����,���$���A}����6��O1DY��#gl1�e���s��yX\��.�U1���s������s{~[���o������B��`�8Jw���9��HY�+�i��-�	�9tb��cV]��� ������2F,��j��p�V���
���@�F��p �N7���;�
�����v{�FH#hO7�5I�^1��TXD�
V�����@��X��@�R�PV�����<��gu{T�����E-t�S���]��	�m���*��M���O�1rP#8V?0��,(3e����0r��N�u|+����,Q@��foG�����0Q<+E�in��!��9�cy<q�.p .YG�+>�Zo'�n�k�y�s�R����y��������w�������"�]G�@3�kS�Q�UTB����[78MG�=Ua�1�0����
D.�H���HX~+�@�2a#�#p-��t��1D�3���2uc5X-��"c�s��6k�;�t2ck;�m
\��f��'� N�T�(*���!j�\%c�r�N���:��.�@l���6��2]�E�Bt��*��n�*��Ta��
�h�"�����9�����F�60��uWsm��%`�g"�A��� ���	V
sy�� �wC�>V�����@���#�������!�6�`L��[:�t�2��TaJ�������B���ws�xz���c��j<�����wA�7����*|�J�{����d�W�>��.����a�HV�
�0�s=| g���}��k��_)J�s�t�����.�C��-Sfp�2�cd�y/��8B�n��f�!X�
Yg*�T��Vj���i>%��$|���������!��W1�	��xh��Bx����y�.�w�(�:eqB��b�������C�<u�~_��[3�X�,������8g��mUe��6Y��VZ��K�X�;�{9����6Amg"�8~SY�h�m\J�	��h�-��
l����y���Z�.'�Wu�U�H���w��V�Q�?�9q\��/���[��^��}���<��
��p��<]�J-R>;��K+�u���(dr�&��<XB���S<��l����Y�u�k���\�E1\�e,s.���x��S�����E���::����)��{�h$�|
1�R~Xv�;)�r�!��sZ��`\+E��\��i���k���[�ER^(��X��C=�����
�'��JAl���*n=���B��w�U��I������y��=�m<��y	�vCX'b/S����#E����F�9�h���Q�k�b�����h�!���x_�=6�����6��C��f�2F!F��e,G{������zr���{�����Q�~���?���w�'��G���L����� ���3�����-'��=
��P������Y<#]���j��u��o�[�MGC8��V��V�K@��{���"�x�"}���	=��![��CW��s�������M�W����}�J��Za�.+bvg)O �c�(BkVZq��b��L�����7�uNL3Y��I������\/��xt�8��M����E���4��O�\c������� ��C<����|� ��!����7�|`��Y�[/h��7�Y�a�J���$�� ��p
��
����v�u�Y����=HW���)^+\Q��E\LY7Yf��=Dj��p����i�����h�������K� ���������b)��]J2�]K.�p��Q�U��tB"-����o	iy��H�H�p����;��	1"EW�*�*�`#BL�k�Uk�,L�E��1w7���"�je�
�� �1�����.�rVp���I��^8��vt!�Qpi���2!@q�aa���DX��z���H��]	m����~������GO|�����To�Z�z�N�.S>/q��mX�T�����,P���a=��(,�-�Y���t������
�KyN9����%X*�����]���)���r���!,c���0���D(����	�j�9�osuNHS��������"��Bp+
W}!� �@�|B<G�����b�0���0�S4��1"����.%��Z!��m �����4,`0�q��������Y�����>���:f����2�o\�����N0���.7#p��<�w����a������,���$r���\��X��L���1u;ek����|G��?�Qp�Y��
�-��^�:^��)����k��5D|���G�]s�����z~r9%�#�
X{x���F��hB5�����Fa�(���\q��uc��gmq�+@��c���[0���:��[
�pH�k1xx�����������'X������Cl5l�u�a{�o��rx�K�r������I�}}��xg���� ��c�n ��F���sU�	:��"�����^!~�w9_���<�	�����Dx�F\����Q�3��5���Hp_�E�2��q����U)SX3����z!t�)�oN����t�V�>�W�eX���`���Aa�M@���%)�'pE�
���0YV�����bc$�]ts����S�}������w�"�������~�G��5�o%Z�v��;��r��2Pt��
�>���x��W=�I�<���;N�
�On�/�"i�c�81OW^�r�&~S�pGM�I�Q
���/��E�����7
�V����<f|6���E�<�q�oJ>%W��9a)�m8��������;.DK�
����H��R51��^b�.e�S����7�{��#��d��������~������V������2�wI�g��>�7�������jm�y|� �=#�gA>'�;���x~��7���#��AA��s��O��gR����k)��LD{!���=	�.��5�=�-�R���a<��������+2V����
H+��)B�hv�s!�����Vo�����7�	������K��Us���" " "��	HX�����^�����,��Az���n��6U�s�]�*w\�(���6���Jn�������7�d��m8��sq� s.���^��e���e��Rl�;0nc�����C��=l���20��pv.\�@�N}�Wbg��Q�G�����l�E�vt�v�,�+WH#��W�H|�7��� [����a�"
QV��#��i��b�w����.�2� +�)_
"����_�5�r�Ha��4�<-tM �� �C]��=:�a����2��2�����yaP�Bw^N���1h�f=�b��a JDD> :�]�<-zq�#P>��l�-{��uj��h�-�v��}.���
�;,��e�L�n�,�ay��-XJ��Z�����8u(�n`�1XrkBD<�����?FJ��D���;��~�=���,�q�=��_��8��3��[��7��M�@�"�J�j^�H.("�8���|��qp:XFK^������:�`��1��{
����S�6��R�k�`���5�>h��
-\�?��|�A(��!���l�,����+�u�G���:D�p���k�D)�~�����!���UK�@��	�T� �N%Y���Iq����u�{�X�9c����7��t����RH;���p�����{����Q`U�	���dR���K�e����V�P�(�7�Y����I<�;�w'��w��,�}�Bo~��� _k�6l-e�`�_#�����k�V�yv�?�}���x}�w��)�:��>'8a~'EY��5)2����������=w�C�@�����s��:,���~A[n�������A���?\C������
 �!�P0�kV��!���`�G�bG����=�,���-qy�C�`�:N:����#����e�/)����{t�h"*X�-"���L�?�������w��=>o�Y����{����1�<���e>��E��h��Q�T*�
.&>��[����{���~�m���N����vg$��
%���  aUk�G�,(����?�{~g�mn����u4��l������������������������0:f��Y�R���3�U�w3]��EV����:���|/�C������>�)��B���^d��N�i���EKN`��(,T��[q���V������V�L�a��F!�@'^��"q���8��{"�����8k=xi��X��i
�"60R�A�[_�O��H�J���o=�A[��=����lQ7E�c��>�a��fB�{!X��f�i\!:��_u�� �}� +���d�(��1&�XN���g��qD���2��s�Wl�d���
[��\������!���*�	;���tY)��C�aV���Tk����<��D@D@��pv����v�.���R���
eE@D@D���@��?�� tq���`���r�hd�&�r�@/��ur�\k���^MP�mp[�0�D5p�����@��D@�V^)�	D�����W�|};
���Ik���N8Z����@�3��Ly����)zt�,�z����:
'�`hrh�Dqd����|>�x��$�H�H�e'X�@���p�4��Y���9w��-������W���_#�p�kP.�9����s�:������y�9���u�|L9?�\�7~~������&��*F�NwB��{���}��c��Q(�v���N����G��v�oP�S�����jb"kI<oZ}���Z1��\w��$�:�*D@D@D�e	HX���V&�#�����x�{y�����N�~�UG�^n��gLo�r#���v[i����a��]�x�;$�5��E!(��@W^�|i3��0�~3�i��.����4���*Y8y�����K�������~�zk;q���{���� ����:=��0�b�����$�d�u����	�U���^���&!a5����� ��!� �"2��GP�E�Oq�QFfDEtPF��%!��$d����{�S]�����t��������9u�T�9�S�VU����9���]X�
� ����)����������x���v��e��m��a����kgo��0�|;��po��^\a�u�������5�����[^������!v����Y�d��1����l�02?z��V�
����+5����6_b�fi�(�sp
<�+���
����E<C!�f�>�7�<�)O�O���f{AV��,��bb ����b?�e���as���Bc�d,���1����1?L�e��5���Vh�W�N�m�\�P��s]���=���s�]zbv���p�Pf�7��b�W�YQ�!��P$�&jW9���=����N&;��pm?�����E@D@D@D@D@D@D@�A��e?����e�
����V�l�a��h!=[���|i�V/�����=��v$" " !$ aUEE�F�����[��e��{�J������e�%������	��*��.�����je ��	����$�'R��.��B�u�������_��3	��Wcn�_�`\7d��Wm��6X�s���K��T�����P{���K��Y�����h�u���f���u-�b�9��N�B45��c�
x���_�x'�/��:5��S]���t������\!"������f+1$�6�j��Q(��x�y��U�</\Z���x�^�b�P��b��@��<�����A�0��g��j�������V���
��<�
y� Z�@�B7|�B���2.q��!(�����0�E�$�+5��by"�T�'��+AV�D����q������+��J<`e6���A7li�&6��H�	�(�	��,o6x��wo�4=v���9�(�(������G�bEc���9������q���R��9
[���^�0�	=�u@P�9�x�q��
a��a�y!J�q�X-���9o���r��!���� 
�������A�74l��Cp�?d}��1,�0�����������;	Z��S�7cixl�
q��( ��N'W����sa����hF��l�% ^K��&����a�����Pn�V���
����g�Z�����#"0}1,_������A�����~�N4}��g0{����3/�i�P�!H��YG_�����VMv�XD@D@BA@��P4�
!� ��g�=��:����a��n�k]A��������MZ���*ew�7\ <Y����)���p��nBt��g�3��n��m��o�Z�{v��>��������>����Z��;��=v���Ntfc8-KY!�:�I����
��N�'�n���>]Lg�c���l���8\	�W���z��R3��f���}�lc�:�2��>@pA�]�^c��>���<`�|?�A7'
���6��^����x�!|H@���8c���KwxBsa?�YH+y��)��������8�bQ�5!D]���%�IonGA��LpNQ�V��G�L�,�W�q�5c�C.R�����G��a�y����(tdB��B\_�"����y���8���D�����	���&0,i
�����0$�F�;��%9D)<��m���0�e��C�?��jK��
��4�6����
�8$8(J�����2��y��ix��I7w�B/}I��Yn�W?���q
�8�+B7��`��\ZqhX?��:��0��0���2mH]8C�Z�};�GX��Y'�ms�����y�e�V��!1�j`�k�CU���?<	��N��0V��t�����|�OD1
%0��b�.����%�}2�pM�{�)	oi���-3�i�5��9
���`��6�s�	
q�e((dz>�sG@�"����08w�@��LS���58��4��H�.��pnkaX
M" 'P�o���h�<��7!��]��g�-�[�r��we�T#��u�k|��D�C��n����1,q�q�nxP��k�^�g��ZO�K[��������������`	�5l3?)��&a�fb��wRy���Y�-E@D@D z}n��f�-���g�����U�����
r��w���@</a�4A�nE@D@D $$�
IC�"7�s��<���EY\��u�
t��Su����Q�LYPH,������u�����!�b��G���pj&�s0�[F�B'v,�
!�@HV��GW"���������D�1�0qV?�S8E�d��K��*j����ge��[nx3��lBu��,�@����bO�U@'KsB�:_���SfD-���� �"�\/�����N�0A��G��Ax��0+������+�9	WX�7O\QRp��1�}Q|��wDc\�:v21tS1d���b�V���TA3����(��Y�H�_��"��,�<O�������x�4=k������6��MZ8;� ��� ���9i�����a��r|FI81Y,�	o�1zG�2'p��	����@R��NA(���$Q��$l2S�����83�J!��M��Z:��J�Oj��2�/e���@{' ����0S�����s��[iQ��s�-�9S�������&��8��)��y�7C,����\�us�������Y��� |��vB��e��Y��+�e�8W)��(�JM�0��W�"��^+b����&c��T�=�C qj��qR1'�Y�sV%
��{F�m�w�D�_+O90�<��a[?��V��u(	��T�v��:�o�F�����9^�B�)�l���@���o��35�L/)�K��e����y�q�8������{����Jx-�31^(���;9��������4�n�����_\�w
������1N����w���m���
���v��!�cH���9��������:��r�
A^���-���{,�CG;e�����e�����^�g�8��|��?�g$4k>��]�L��.���'�X�O��>����]�;]Z�m���c���v��������W���4X`�k����x�n������%�r�*[�q�Y���3�O�������Q��[}3�N;e@�#�0	�"�����B`0�g{z���c�=oK
��v���%����]+o

��.���<?j�GF'�Jz"�b����Ko]����5E�@T�US�P��F������@QY9��k����������p��8����!TD]���[����;��xH�;O3	x����n�q�a�@9{Q��A���5~�.phE����}o^j��N����N,",��8xl�
f������*�[���fz�b�y�BH!��S���A,Q9��������D@D`Jo�:��1s����w4zJ��x�Q|�	�z"������*��AG=���Ny/���{�w#�����|�3:��`wG�G�,fzc�yq��m�K�������b~��n��r�y���1^��H�^��La"l���\��K~�(��)����	c�7!S�����!��������^����y�|/o-��(.pxT{����2vjq��P.�<t�Q�/�+�
L�`�e��&����TmG�P�fb���_�@](���N�+����q^]����Bn��P �u���o���> �h�ixC?�v�0��y<cmBH1�p�2x�{��,>2���HS\��	����a��LL�n�8�`a��C',=��x��n�W�6,�������k��o�������x������T[F�����^I�Wxz-ED#�Q��w4����^��FA�a8k��!�}�Z0�R���!�!��Q��
��uNU39�����C?����w<~�������q��1�{��s^������},����I���K�������=������������_"�\���V��*Cz[���N�����wP��B\[.��)�!�>D�6./����6�?6���e����iy|;����~�S�O��3"���(�E�NHa��j�>�y��|���1�gT>�{���(<�'��F�k�/O�3l8;��-�9��o��C�l��[�����8b�j���S�7?����Zj�'" " �I@���l7�Z���M��jf\v��
�e�l)~X@�����C�~<(J�"PVMd|9��g,_����O�#j�_�!�w����n�>��=0�k���zlb������'3�0�����lf{����g��6#�����������-��qWn��B4V�t7�rT��\�����5C���^���"P��h��1z����2�_������Q��������D�_���<�#t_���A�����8�:(Vc�!�����
����D@D@D "����:�9Q\P*V�h�T��U��m��F�^�w���#�!��EQCQ,�ID@D@Z����
Y�7cY�k?=X#���X�@�=O������<<�f3���+<[��E4>c&�v�}���.�'/z�bf|������������
�sO�=��I*<�����Sz�_�.^:��7^��a,<�9�-���^��	���Nt���n]}��r?���
?�b8�n�qv�������"I/�[���4��8ybx>�xBxo��o��
�G�)��0�3�v!�8\������\�L�|��y�sK�)@��{����{$k?�|f,Is�	�L��.^���Wn�����9(�'{��B�����6�3�/�b�x��`������p���Z���U�������
��)<��3N����ah@
���!�������q�3�9K�~m)���+��HX� ������D���Un\UM�%�E��]O����5����g�*����K�?jT-������U��]����[�Ax�U�D|��X����,�J�q���m�;�Z7�W� ��
���FOy|m�X���	� ���.z�~	�f��0���a�����Z?P�S�����~��������Tv��Qp�����b,o�q�E��BD@D@D@D@D@D@D@D@Z��V��_m�)�z�B��?��������'����V9cTO�V% aU����-%n{��63�oI���.��l�=��FI->��][W*&"PwV���p����z��6�����K.>������P����+'���Wl�W�|U���'�~0�d�p{><�_�n�W�/!��Y*�!S�*��������@���"�&�@��X;�mf�a��t
��`��d:e)|���3�BB��4���y~���xb���#\ZoO�z�`���1��1w��p_�z�Er�'�}
��A�Rq,���$��&I|�Lc���>	o��F���pq�9��9�q� M@ �n� |)�
��!���V�aW8��j�PB9��!�8���PD��T���i^����E�c?A:�q������E��m���fI���-�9�e����v��7�TO��>=O������Jh5�*z��$a�����," " a  aUZAe��(�m/�T��"m�l��eH�s���-��;��Q��@}	HXU_��:�^m��r������n��Z�0�c�\��9]���j�u������68�ZBp�`��
c8���-�J���W�i��o���6�aO#�a��p������{v��>�3p���
��]����7{�<��?��|����K+.o�A\���
jj3m����B����RH[O�a������,�&f@���$�Z%0'1��r��X�P�I�\�����xq����>�����U���z��5�D8����0�"<��+�[p^���@��=�]n9H��s�Qwb�)'���R.�M1O�	� P����,Lt[_��6�;lM>m�z��d�w��p�0�c��!���Y������Y�g3���G��-�!�\�fZ��� �� ��lO[��;Y���6s����CZ"��8PZ��t����e�zm�S��!D�!>D��+V��� �ud!���r���b��,3������/��`;xC$�K���\���}lS�8~�}��!.�b"�C�0tC�`8N�N�q.�J��Jm����)�	��M,��������b1p�
������y<3mI�F(fK��t!%���PL2�
|�2�Pa�r�Yo(�^��a�"�v0 ��Ea��P�����z�B ,�L��`��e�BN��m	����@��4���	
�&��N@IDAT`��N������0�����0�
��M0�!Xb����6�8f/D>�+0
��4��cnr"O
���&�S�P����������� M����VjF����u�e\[)
�}-��3]�RL�����+.j�����2���3q���
 {����M�}P�FF���&��-����y�`��#��m�bX�v�����2�.���Y�������K�����9��;y�������s��K�c��������m����x�>v=��hg�G^�.N;�x�i�k'���Vk����,����������sQ�*��B�&	������TM�oK���{���S��k�u����K�����("P?V��u���
���u�q`=�*�n�8�\�llX���vE�e�;���d����	�x���N�<;������q�.�K@��	�(|��"'n�[Gv��e_�Tv��2�-9��b��2�����	�.,`�Z�:��;�������g���0}�z��2:���C����KA~���a^��(����p��4�P��� ,C�;��!�C������~��d����i1����@����x��mN��^����<����a�'�v���q��.
��g�eo���:�o��u�,��$��B� ��8�q�A���"�B-x�sq�<X�hv���8����[5�����|�H/����Y~�'�eW'�!�iP� �:���C���b����z�~���/��e�,�?$�`HQ���� pc��p����[�3OD��?)��  H/�k6������PT������mk�n��3N��<�<Q���@
�=�AD�T��--KaPQD�H�����Lz=�{��T�8u
S�t�S�u�2���'��jzw���[��8<*EZNhC�	g�o�����0������#-o}9���0�����/�N[���� ��^p���aQt�8��\��[bh�x��	��^<QWs�!z��S<�v�
�PtS�Q�����87���������8�8��f���4D�\��#��:7A#�� B7�����e�?�!qU-�;�����J6,M��qIL~r�(�^�O��(�.3�D�����I�*��1�I��dz�	*B�GAe�6����"���0�/�{���W�]��mq6v��B�
It@4�99��k_0y)$�h�g��
�}/�N4X�`,��hw��qt���8$��M�.��`^q���Dz<��]�{���7�^�1��}�����:����f�bs!��L�m����Z\w����1��D;�����+�����������Wx���ww��4/��~�G�����%���<���w�������!��~&��}�I�z���	�y�bc�'�xq�JA�����G�@��"�e�D@D����0��"?d�>v�=��_�{�7y<C�C�~�:�C
>���7�q�?p?�{����;N�����<�G9o�����/�4����z���}��z���d���,�����u;���w����<�<Z�pB��9��;��C��)G������@�HX��PaD������lv����m�����������,����NGC@��1HZ6���!��g�>���W!�����F�V
B�4SE��Na�3=��!>���.��y�g!�}?�-��/��:�+!2j�j��
 K�����(��pi� ���DO��(�����OQ@�����N��b+
�(4s-���+�L�'�r�-����_�����8�Wx��n�u��3.�z{�b�<Y����uj�����Y<	AM��� w�������cG=�h�mp^�J�PG�w��R����u�&H�J#A<��9p�Dv���1
�8��.�t�x�� �"�8q
8��aCO ��5�N+��.
Z�7�����F�������A��Q0�z��@�q'���
���2�HQ��`�Bh����L,���j6:4��NXNb�sc'FG�)��1��8C�k��;m����!b��FtPn�x�2��*T��f�g�$�/�B�8�$���,�p^��pO���QR�����t�X��)����������B�����NK3���C���*���������f����(�u��[������P,���"�f
�x]R\���`!��n��c
���C�Zw�d�k�M<eh����CS���QT=A��DZ�9��A���8��1��1��<��,=��������=pB���Ct?�����d���h/���������6�����,u"���3�C1��*P����I^E����'x�9���d6C���x�9v�6���5��PL�
k���p������%�:�fz��W7
)�h�^6y
��y��%B��-��H,��$��y�b>O����M'^�97�g*'��X���Uw]��-:o�a��cFa��D�	'�9�s�� t��Y\��K<�<� ����������g���>����4�Vrx���q������:y,��;�����������>����+y�0N#��x�1*�wi\�Vx�\�%0��y��-��D��=�
����g�,�|�p]���[�gz�te�>+�e��E�������,'�-�O�v��[�k�	c������`����}6�
���
�p�!���4L�S��������Y�|�=~���:w����y����B�^����N<����^k���|�<j���cx�L����P� �����P������U�y������X�CH�8�E���L��9�'�Y?��a�J�=���������Mq������}���j�+���$|���p��hI��)A�������@h	HX��Q�D`�	<�f�m�����v(�d��^�.��g��4�l>%������U����G��VNd��V]q��v����>��H���K!�#����X��,s~x:)���c)�����������!�U
�����+vF�g�������UiB=��q�"W�f�� �s^�����-
��#4�m���Y�U��u�"P��sR�8g��d^�2������s��	=�����:�v�NE@���u,�KR�/7�c��j�|_<S�IZ�@�^\�1���QEa�����9�hDqt��a2!�G"'2����D ����#�	��
Sv�yBp`3����E'kq���\�+DH�"�6���X!)4�;k]�-:o�yL�|���*T��U�Nx�����
���v�������&'��G�$<f��9+9�3���X��zg��?��t'AZ�L�QL��?���-t8���q<c3N�p�������,�q�7�������3��U���&f6e\':;�s�9'��m_���c=�L#9;��sPo��1x0Lt��g�����+ x���OQ��!hj�vk����m�f/C�~���z~	�#� 4�"d<�l��'�J�������N�!�����3 ���uB[��������WP��p�N��u�?�����
�mCpO���L�>X��>�_xw�B���P���a�Cug�F������SD���=�Qw���	�<Op����\���Z�Q�E7��9�?�h�C0�a�R8��N�S�������P<���g{�Zw:�W����
�[|f���u�L�P���(A��;�R����� ��u"%����)$��S��Or�DQ�}8�R����g'�BX�;��9�������
��=�q�q>�C��K������}ur�,�u���g`��5�Y��R#�x���� Lr���\����8���9������BL
q�D�8��?����?8�oNqzGF�eV����q.����9����������n���5��1	/�q| �H��
b��\�6����3`�:x��'f��8���r3GQI���H��m��*'a��C�����D���U�n^UN*���Gln��1��x�����x��03_i��qL%��4���U�����&���jtR.�������0�!��9~��/���A/N~����������N[�s[���q�C>�u����c=���(*��(�b�8{i�Up����-nH;'���&��8"�<7�'s�K��y��q���;�����&�co9D,=��)S�aF�3�9�e��A���v�0���\�S:��q;c��|
����������7��*&-�����]xe+`��7�o�������<t�G2W��Ew���7�S����ax���\�F�veP��:��s�
�����B�>?�.@H����������C�>�.p�[��r�v(���i�j�t���H���Hw�pMR$����8��Mq_�|����p}�,*vJ�H�_��A��d6�a:{X�z�s���d���[W�,�E!�g���;�x�FOqh�]��E�
����b�3f�}t��E[����i!����,<������;f�fK`_���L�N�$�4��G&�Iu��������&v����
n��P�s���i���|bNAJ�dt��A������%�
����7��A��2�9��{��a��m7����EcQ���^O�������u)�<h��w������������,0���N�yj�T��E�v�ur����� �� 
��NF1ft�Otrb;�C�y��
�Qj��;�P���,����}�]q��E��k�����l������`����s����s�C��g����cq����\��P�x~\�s������<�@(��(B���F�f��'��-w�/r(C��4:������#�S'��G!O�<������u�R��+��
,���b����q]3_'�4(������(>�@�y�+��������5�S|�� �^h���y��G�"�x��B�yh3��	�{q�J������	�i���m�p��o[�
��������l�g��SM���45h,	��{����O���;��,@��=����^��qN�����,�/������f���_������"�R�
6Np��oJ�7N��U��<�Q����6��N�S��^1]�5q��^�����_���l�S�b,>�1����f��	��]�����<�6^S3���;������H�	z��0�q��)�����]�;�����x��1���w���x%�O��7�w���k���]��x/��)�w�	�G��-A��S���h��]��Bl#����M�����-(�ez��]���O�cU-��WD@D@����U��f*�L	��[6�/znjG�p����t��]?���Gg���@�L���A��aE@BF@���qB��g��(��P6��E��r?j�3���-o����S�"��]Q8���{_�S��e��'�b::��\���z��� 
A���B�U��fX�(����H���y��Tt2L��n
pL�.��@�G	�$����8:����:��N���a�;E��e��3]�s"JkI�$�<DhO<����(X�������O.1�i�al��b1v�a�S��l�2�by�F!C.s(*�nq���x~��u��J�CM�^Z0�1U�^!���s\ons�Fx���f��Y�� �q���aH����1� ��UN����4:��!Ht3:����
�i���0�ItJ�2��)���J����������yag<:�M����~9/��v(��������g6z�+��w�+��
n�!:#�bN���F'(.�b����y/>���(B��
1���
=��E�	m����`(�z��y������7�dWD*3-9w��������K�����\���qh��D�����Cf��C4�k��"�;�	���v��m>���s��D`�L��E�vq{\�;���^������=�O���5n�
��4}4�i������(r��������b����������r��F1=�����$DZ\�!�Is�)���)e���G<5Um2�C����Qd��P`���Q�!'�r�>�u���:!#�����_��=*y���MQt��(>�2���D�\g?c���`��#��{�h������t���Bz�D��p����Q9�[L�A ����Qo�����Ox�G�>�%����fZ?����x�`]0������s?H�3��!��A��|TQZ���y���]��x�q�Z
�s�7D�������y��$����1�<p5�|����pn��(l��q�C�7����w!�����>��W�|�(
!��|�����f9�����`��9������g���#5`�
A$������5:��^B�g�	���F��t�;B�l�N�y{��G%|���P1t��.�t|�u8����~��w��&����#���Nt=�
�H��0��D1	����t�	�������L���y]{��.n��w��xU��]{Zr����Q��@�H��8�:�D��lK�[�������������^�1��}q����0��p0�x���8���q�	t��8��g��M���)vZ��${�\�����+���7y�+-������!�\QD:�(8e�\~���#��|��y(�X����s���N�x�i�q"�n�mV���
��.
�L��ooM�'T�<Eb�s#m������vB�%���Nt�L,D����I��<��a.��a��bz�2:�k�*�'vr"��p~���x����	^1&2%:��`�_~h��un�L������b
!b��A��W'
t�;
X!�`�p�	Y���e���aO�N,S��t����v�Ng
������ag4�vT� �������
�Ia=�8qE1���i���4��k���`S�����Q�����s��A�L���U���(J���k�9q�TN����z0�8�
;�}.^'�����=g<w�e��������<��(4q����x]%;�C�A�)�3�1'8����|���<��f���w�k`:V��N���nJ�T��	\[���m�~!s��.e��dO�nP��>��Gg'a+s���Z���	l���'�a	'��%���O���P��D;�p�����b����/���%74���Zc:�/w]�^?�����f|[��6\K�.p�P�O�	��|n���$��Y<�#��%�c�2�����T3B��k�y��?�1y\/i�SH���cQ�x��x^�wlz7�����c]Ql�H4'�g���!
"���p-�b����|cE��.�� pNt�"�E����������s`�^��a9A�K�mG���^�-#O��zx/��S�����7�������E	�������@4	HX�vU�D�"��A|I�^���mg�����u��}?��\q_Z)"P_��1��%��D@���lK3���:!���a������1
��H9�RQq���y[�P�B���I�D��&&0{���l�Rt����
��J���]g���p������w�N����(����N�R��@81;�=��'Lbvq�/K�S'���p�_8�G �r�.S !9�c��8� �J������$�1z��5H/W�:�_�ex�XW�����m��ek�p��
q�9QK�=�]9{2v/��8�	�0F���"(���!����ez?*Y�kF�D��[
�s�W�D��Y��g���4��]������TK�������@$	HX�fU�D�2�?>p�uw�5&S���V�-: �x������1y� "�X��1�����E@�E@��^�u�>�����j(�"0���y���eN�A�<]����7tc�z��I�q�Q�
[��E�SM"n)W/��@�	�!(�Z�<��k��^�(��z�T��F���E@�A@�%��R�����@=HXU�:����p6o-����U�yv��X���&w�g������E�F�{�[@��h�m�f��V"��'���c�@4	����S��\q��x�\�;�^�0,�&��'P7{���T����KYE@D@D��	HX��
���@�n{�!������8��^�V��>���R�>5&�D@O@/��o�@�H@�%���:�@c��4���*Q$ {�VU�D�1dO�]G���m�z�~" " "����U[Y(&�'����g{,K��k��g;~���;�d�����Q��@�	����m��@	��D�UU'h���p�QE �dO�����4���Ic���"u�-Qoa�OD@D@���j+�D ����S���\����p���&���}j����Q��@��=��2�@���D�MU#h��F��qE zdO�����4���I����"m�-�n_�ND@D@J	HXUJCq�0�\����7Y2�S�������+����,>�5c�(AD ���vP)D jd[�����4���I����"5�'QkQ�GG@��q�ud�2��(���&" " #	HX5���D �Z��e���o������%��f[j�s�'V6�E@O@/��o�@�H@�%���:�@c��4���*Q$ {�VU�D�1dO�]G���m�zG�~�L�6m���d����k��d����[�l���NW�Z�-���f����f��U�\s�P(����m����M���[�~�+��y�,��\&m "P_V����&
!�/����
�J��9�L{�v-���'�?�����G	" �!�����J"Q" ���T]D��dO�_G�(�=�Rk�."�X�'�����@T	��D�e�Y�O}�Sv�u����\���JNv�m�B�[n��~���C=d���n�7��
v��QGe/�����~��uv�������jK�.ui�-�C9�������J�544d?���������~��g����7�����~(���������<�L��o�[{�k4��D8j�'	��I[��xf�:���U��K
�n���b�NK-�<�UI]�E $����P1D bd["����4���I���"1�'kPUGH@����uh�0��7n��v��7�i����Va�d�<Nd``�N9��������%S�t���V�s��7��'�\1EZ^������������?�V�^=n�����~�3�q���Sn��e��mo{[ ���%��@�HX�6Q�D`J	@�mw>���%g��o�=g������c,1����(AD����^w�:�����hfUR�B@��.�uh	�'-��������I]0� "�rd[Z�������t�I'�({-���n?��e8T�G>�����F���+V���+���j;��#������k�{��������;�l<���tz�����	78z�}�|�;m���#V����v�}��H�a��'��v�mD�x�'���|V�GK�".V��=T�r/��bk7&��wW��fB\��Yj���VU>_���("�zaovT"O@�%�M�
�@����
�$�' {�&VE�ndO��Z��" ��R��t��d2v�W��_<����&�������a�>��Ok�M�����uuy���u�]��| �����|�Akoo�a�-��J�P?��O��}\���g������?]p����_���:�����`����s����;�{����)���k[��~�;7��?���_�*��B7	���>*�L��__
oU�����^�=W�����Zb����Q��@���=|m��@��D�U��p��J!Q  {�VTD dO��*�D��lK�Z4:�y��������=���e+�-a�d�/{�2��|�	��.]����Mo�����0
�J�'�x�����I���w�=�yO�����
)�:���F���>����O�S�NoSw�}�%� ��U�l�����9���/Zg�y��h��_l��E�rid�����/|���4��KX��P(�& aU��G��IX�y��_�/���~j��ix�J[j�yf�Z�ID ����6R	E�	��4c���"N�'�l�J����I3���,�$ {�vQ�D��	��4{F������o|�����V��x���n_��eV����w������^�������|�+v����$H1R�t�	'�w���;�0���kJWq���W�:Xf>��'��|/_��u����.�P(�1�1x�g��b����n���>;������V��P\�K@�����J&�&p�c/X{j�����K�Vu����&�G����p�{8�E��f' ���-���@x����-Thv�'���*�����Ix�B%�(�m�Rk6�.����m��e�;���{���y�f�Pt�D�M,p��ECL<�����o}��z���&6��j���2����.��B�{���N����nM��L���?����sO�HAX���K.��N<�D?�����������K'��}�{A��ud�a	��J�O��O>9&����f{�����W��UN�v��[�e%�
�("�& aU��G�������ew�s���m����^�yx��(�O�" �#�����J$Q  ��VTD dO��*�D���IZQu�p�=	G;�"5�-Qk����"�o~����)��Hg���k����:+X������s�r�0��������w������o���a�D�
Ue�b/��b�5�4Z<u��WB+yx�����~���d��`yt���.��.��%/^�����
�{���R������o�������;Bw�}��������
�8<��?�q��r�����$�
P("�& aU��G����������1;H����)���Xb�w������{x�F%�f& �������@�����=Thf�'��z*�����I��C����m�JK6��=��z��A!8��q�,��P(u�=���w��F�I��i�&;�������Q��J���j�U���/G��!�b��/w�);��3+n:^�_������~4�v������,������5��~�����:�1��F���/~a|����}�{����SN9��������	�FP��4	����TJ���Pf�y.?f�7�<��qK-9N����Q��@x	��=�m���@3�mi��S�E \dO��*�43��fn=�]�E@�$\����@T��LOK�<����x�{��i'KtvNp��6������v�;�0���k�nHR�����[S�����3�����^{�x����K��N/�K��(z��t��'����e����/;���]�C
>���.>�
�(P�'3�������7��O�;���v�u�`ytd������������6fY��1H� MA@���h&Rj'���kO����0a}�V�-�Y��������G����@�	��=�m��@3�mi�VS�E �dO��.*�4#��fl5�Y�I@�$���R�@��m��|���,�>a�^���O������w^��:�B�9T��_�) �9�L&�����FMv��
�Dk�T�(��������nr�P�E1'z����]�th?�P��c�=fGqD��/��-Z�����c�	��k� "�u����m���~W	�J	*.�C@���i+�Tj"�qK�-}11b��7�vF�{�R��e��7���LZ5����yT8hZ�-M�t*�����I��D��% {��M���@�����IT ����i�VV�����{��'&zd*�
��2�:����s�9�Y��OV5���l����?����-o)�5H;��3�W���[���+�t�o|����U�z������)y��g��o|c���[o�����6���?����5+�W.R�u���.��N:�\�i�������^����������*|m2�%��������w��9���;�t�2��z��6c���;�P�>J3���z�j����x���~{�e�],�)*��R���W�E����{r�V�qt�������WZr�,����@��{�4��)MF@���L���=	q��h"�ddO���T\1��7��&ML@�ez��U$���8��r���������w���s�m��{�,W���\��R�1�&���"app��,Y����7;�����r�O~����_�����{�r��[���}��_wq
����?��x�}�Y{������h{����y��#<N�������|�"�~��m���n������?��r�F�IX5�D�iHX�4M5��Rt��w��n����6������o��~��-�h�}����:�8�m��K/��\T�7���8v��>�1;��s-�J��7�j��8+z7��'�m�y�����r�v��U�gK%�����^���:*�4/���m;�\�F@�$l-���@��=i��S�E ldO��"*�D��l���c�
����^;��c�����k���{���/|�~���e����7�	�m+2YaT��S�u��5g�i���n>:���{���y���b����N�o���;����K.q��!�V=��#�c�C���w\p��~����<�O��*��=�yO��x	��#�t7	���>�.�~�;��S��T+��������x��x�YK���&������Y�(U�����Oj��[A������1�VZ��U���s[�{��=��
�Z��,���%w�Bt[��z���{x�B%�(�m�Rk�."�X�'�����@���D�5Uh,������E �d[��e[UX5z���|�3��O�Av^�8B'}W���j�Qn�e�T����_o���4�|{��]��v�)����}o��,XQ�0{�������/�8�]�q����\iz������P1d_�?Q����J�P�8�����'�P����U��^5���'�tc��nT�������N8�t3_�x�-]�tL:o����b�1��@��0FT���;��������Mo�������b���,�*6����o��9k�������Ko���#"�|���|m��@3�mi�VRE�9��4G;��"�dO���TFh�'��N*�4���i�VV�&�EN�=��_-��-��2b����f����U��Za�x��v�Z�U���]p���x�"���?�XwN��3�a�i����Y3Gv:���(�����f��/�C9�����w�3�q�i�����W�2X�����=��`y���U��Q�����U�n�	�.��8�}�=������Uk�������*_��x�����_�������D�?������uD��@QUi9�qow�qG��G>p�B���;�����O��V��_�Z��P�e�_8b�x�n��y��+� "������B�@��mi�&S�E �dOB�4*�4���k2XBK@�$�M���@S�m���kea��5kl�����p�
�����J��;�������v���H�����U���+>������K��^c�����v�m��t��(��4�z���7�i������F���k���������nu������QG5�n���b/����l�����8n(a��h�BBM@��P7��G1����������U�i}�K_
�����ng�uV��G�j��f�!�~��_���pt>
�~���Y*�
�0����������#��}�����cD�V�����������/��*��i��uD�D@���^����TZh�-��R*�����I��H%�f! {�,-�r�@�	�����TBhF�-��j�,�"����(�:��3G�NT�W����VU�Mi|�����4�~�+���%��5��������G��-[f�����������-o���^��W�~�������`yt�������1�����^�8��9���������g���Fpot��HXUJCqhV5O[U]R�;���J����A[�`A04��{�i�>��%�������>g_|q���G+qyC*��������n���>�_�k�������)Xf���7��5.d6Y����k��R/;���(��@���=l-���@4��D�U��0��� �  {�vT-D dO��
*�D��l���i��8��?$����`��~���������DM�'+����������}�C
V?��C6o��`�4�����=�� �����_�y�SO=���z��F$�&��D/`���w�������G���*�H�\�M��������X�$aU5��G�G@������J�e�������(���'���e�[n�����
VQ4U�e�3�<c{��G������/�:�]&�z�:��#�7���B�`�o�}0$ �r��w�[mA�'�g�m��s,�>��!��-������D@�B@/�ai	�C�E@�%Z����@#	��4���-�" {��TmD��dOI_����m���mua�������>�������C�`U�4Ya�d����F����������^���������N8�.���������W��� ����w�D��b�?��?Gx����;l�]w
��s�=��w�+X�X�����O<1"��3r��j�����z��$"nV��}j.��'�l���{�����c�������U�Xu����gl�h���������x.\��%������-�\r�%�KD?�����\���g���.[��o4����[w�?X�c����HKn��5\�~���@���=T����@d��D�)Uh8���7�
 �! {��TED��dO�*�D��l��4k��H��kR)e�X�h�������FMv�J�����?�A������g��O===��|�y������?G]*�V�Z5�O{���v�u�9�~>
�J�S���{�������\��(����9l��,�3�{�����������{��l$�\&"aU(J�&  aU4R�E�a�!��k���N<�D�o���Vq�^��O��&?mt��w��~�����|���c���p�x�-���i��e"����F��x�{��_�r������1)o����B���v�`��*��@X	��=�-�r�@s�mi��S�E LdO��*�47���n?�^�D@�$L����@t��LO[>�������(��u��f������\�Gy��{J�r�!�8�PiZ���
�&�}�rn���8���+����P�q�F��{��:������0:f�������.
������~���e/3:a?�?q�]\�d�����Vq�1�c�}�k��'�t��^����+�0��W;IXU-)��p��*\�1���\��8�+���(����S��*�?{�m��m,X��t�|��0�W��5k��Xq���������Q�[:t��^^��#\%r����sYZm�\&/�p>��,��?�]h;���{�D����m�HC�"�'!hA"B@�$"
�j�@����T� ��6j��t���������|�����L���FMv�m�����SN9��.]Z1+����d2Y6�MqH>����i�������?�2�N�|����
j��r�V���4?	���F�,!�D��mo��E�E���s���
�����r�p@�w�5q�Z�4��7��w��-�}������_e[�lq�	e"tc�!��G?��}��t���?��B(%��R���L���"��������*�'SER��=�9 "0d[���������������ht^���,����;G8����Z��n_���8�������Kq���������g�/~���|����r��>����JpLF$<��3v�Yg=X��8!�-���Z������(�z�+_Y�n�_D��$��3��8�������]�r�Za�.��b+V�p�9�����[o
�9^d��|�A�g�}\v��{�UW�f2�qU�~�����y���/��r;���[r>�" "PJ@/��4�*�-SER��=�9 "0UdO����#" {�s@D`:��LU���	����e���{mmmn�]w����t�h8��c�=�Fh�i��l��EF�$�NBQ�F�Z���s����D��R~�&& aU7����B&.sh>��J�j�U�f�
�<�������)���+�#�H������<�-S9���y���@IDAT�4XW(��x�G}t�*�����j����E@Z��^�[��U{�.�-�EV���# {�zm���t�=�.�������ks�X�A@���u	���*�MQm��n���~�����j�U.��k��m��XE�T�L�Oty�A���N:�����U#�b]^��W�|�k_��~��-���"" "PB@/�%0�2�-S�R;��' {��������=�2����<���?@���l��`�NE@D@D �$�
e�TW(zr���K����u�{]��G&"�:��#���o�w1nx�e���?��`�#�<�N>�d���D���x�_,R�����������V�_a�U�V����'��6����4������D���UM����z�~��A�/��B;������H���������m=�P����\���qz�:��s�u�?�����.n��+
������:::���!�<����u�^{��x��n���@�@D��	@�&" " " " " " " " " " " "P#	�j��" " "�d$�j���[:l�����X:��W����/YOO�K[�`��}���z���v���8����������g�u�J>��O���^d��a�uww������\��R���6:����]�zW�|��7����v��j� L "a��i����U5Svh2V5Y�����b~tR!=Dx��nY]s�5�����%�`�\�����_��W���m~���)������;���
��E.��r;��3�U��k�������%��(�$��I��" ���"" �$ {2I��\D   {�PDD`
	��L!L�JD@D@BN@���7�x��a��_l�����C>��S��{��"K�,��K��U������o���/qC
�	?�����O�����~�]q�����>���t�����"" "PB@/�%0�2�-S�R;��' {��������=�2����<���?@���l��`�NE@D@D �$�
e�l�P�ohhh������o�}�	������_�r�|�M7��G����~��������+m��w��9���W�,o������,�����:X.)j����V�`�j�+�Gi" "Pj��J����T�m�*����������" {2U$���" �A@�e:�j�" " "NV��]��T�x�����>�8���������������u�=P+���}�kF1�?��7��c�9�_t�[��V���[��
6Xwww�\��|p����~�x�����WZw�E@D�����@D`:��LU�SZ���Ik��j-�A@�d:�j�"��dOZ��Uk�n�-�MX�����*<m1m%�VX��t�Iv�5�e�k���?nx�������\�l�2K&����p�SN9%H���>dW]u���� ��-[����n��sO�^n(�V�_C(��N��  �2T�OhM�'�����L�����}�@k�=i�vW�E`�	��L7a�_D@D@�C@��������a���>j�|�+G���+��SO=5C�{��v�a��*f����o��v����000`{����X�"X�!�������]��y�*U�p�	�a
GO�����������]����t�m�����&���lw�Z�����tP�>E�5	���f���"0�d[����/" " �! aUx�b�JR����8������.Q��3g:1=U��T�D��M7�d�t�49�s��G,��#�<�z{{��;���\�`��xk�]v��/����z+�����  �2T�OhM�'�����L�����}�@k�=i�vW�E`�	��L7a�_D@D@�C@��������VaU�P�o|�v��go�L�����~��6{���yo��f;���Gx�*�\������4���*��:��"���jo�V�E@��^�u�>�����j(�" {R/�:�D���I��X5�F�miuSD@D@C@���p��Q>�`�����1������7�X�����?�'?�I{��������.��~�����1f}���K��G>����[����O?��?�|�a�����j�]-���&���f���"0�d[����/�C@��u�Z5��& {2���h�'��������lK=i�X" " "�XV5�S���=��C��O���sm��%n����P�3��qHA�3�L����m�=����n�oB���@+�{+���*�# �R?�:�D���I�[X����=�kI�N@�$�-���@c��4���*" " �  aU#���" " "0Aza� 8m&"P��lKE<Z)"P��`)��@E�'�h��@
dOj���" U�m��2�����@������Ph%zao��V]E�~d[��ZG���=�z�~"P?�'�c�#�@�	��D��U?h���p�QE@D@D�$�juSD@D@&H@/���D@*�m��G+E@j  {R,e�H@��"�����I
��UD�j�-U�RFhzV5}�" " �D@/���������lK�X�H"u�'Qoa�O�G@��~�u$�:������'�! ���:�����4���U���c������	��}�����@E�-�h��@
dOj���" 	��T���" 5�=�����TM@��jT�(" " MO@���oBU@D@D������Z[u���m�kI�N@�$�-���@�������$Q' {�V�D�1d[�]G�F����uL� ��O�6�H@��"�����I
��UD�"���x�RD��'5�RV��	��T�JE@D@D��	HX��M�
��������Rk��"P?�-�c�#�@�	��D��U?�������D �dO�����4��lKc���" " "�V5���)" " $��	��f" 	��T���" 5�=�����T$ {R�V���@@��X�*"P5���Q)�����4=	���	U�V"��Vjm�U�G@��~�u$�:������'�# {R?�:�D���I�[X����miwUD@D@A@��FP�1E@D@D`���>Ap�LD�"���x�RD��'5�RV��dO*��J����KYE@�& �R5*e��' aU�7�* " "�J���J����@�������$Q' {�V�D�~dO��ZG���=�z�~"��-���������@#HX��:�����L��^�'N���T$ �R�V���@@��X�*"P���IE<Z)"P��`)��@�d[�F��" " "��$�j�&TD@D@Z��^�[��UW�������D �dO���������I�X�H"u�'Qoa�OC@��1�uTh	�A]��	���i3��d[*��J����KYE@*�=��G+E@j  {R,e���lK���QD@D@����UM�������@+�{+���*�# �R?�:�D���I�[X����=�kI�N@�$�-���@c��4���*" " �  aU#���" " "0Aza� 8m&"P��lKE<Z)"P��`)��@E�'�h��@
dOj���" U�m��2�����@������Ph%zao��V]E�~d[��ZG���=�z�~"P?�'�c�#�@�	��D��U?h���p�QE@D@D�$�juSD@D@&H@/���D@*�m��G+E@j  {R,e�H@��"�����I
��UD�j�-U�RFhzV5}�" " �D@/���������lK�X�H"u�'Qoa�O�G@��~�u$�:������'�! ���:�����4���U���c������	��}�����@E�-�h��@
dOj���" 	��T���" 5�=�����TM@��jT�(" " MO@���oBU@D@D������Z[u���m�kI�N@�$�-���@�������$Q' {�V�D�1d[�]G�F����uL� ��O�6�H@��"�����I
��UD�"���x�RD��'5�RV��	��T�JE@D@D��	HX��M�
��������Rk��"P?�-�c�#�@�	��D��U?�������D �dO�����4��lKc���" " "�V5���)" " $��	��f" 	��T���" 5�=�����T$ {R�V���@@��X�*"P5���Q)�����4=	���	U�V"��Vjm�U�G@��~�u$�:������'�# {R?�:�D���I�[X����miwub2��m������uwwOh'���600`�g�����HD@����U��z*����@��{�5�*,u! �R�:�����hfUR�B@��.�uh	�'-�������lK����� ��O}����:���+WV��|>o���������=��3�|�r���3��x�x�����~�f��U���ID@����U��z*����@��{�5�*,u! �R�:�����hfUR�B@��.�uh	�'-�������lK����$p��7�i��l]����'���|�3�����Pd���}��=��r��&" �! aUd�R������]2�	?h!�A��%Z�|�4��]� m��b#2�C!� ��=H�Kt������=���4���$:c�X�����������o������_=O��:u��9���?���?U����:D�	�^@n���;���|R��Z���'�7wGU�O�Y�"�_������M���o������#V��93l�����_p�k���o��_��_��7�p���.�����6�����*E�Z @���+b$���/�nJ���I%�jQ�" ����M	TR@>�dX-�@�������x��w��g�N8���z�TX��������*�n��w�rHXp�����?\r�%�;��N�g����7��M��������$���J���������	�E@n������|R��Z���'}awS��O*V�"�w���!0�!y��p�A�i����1\a�����L������$��k7����+�~���6�v�ia�vH�� @�J
��Mk!@���x`�|�-�@_�����)�J
�'��E���|�v7%PI���a�(}�[�$��{��O<1�~����<����n�
U�����,�H�p��o�qx��������;y�����@��*(��B��j#���6��P=�[z��f*- �T:�G���IO���@���J����M@n�}�n|�u��g�y&Y��K.&M�4��f���|���)�!j��O_{�����k6N%'O�6�|����p�U�sL�	��w��q��;�l\��o�g7�h�p������ePXU��?�J�{��m�z& �����T^@>�|�-�@����Q����'�������������N
'�|r��'�|2,������K/�4L�2%m~��G���.�7V-������n�m�����N;��^3\a����������W_
c��	��T�m[m�Ux����.���K8�����J+�����3q����:F��	�/ ��o��" ��%��I �$cw P��.��N��[z�]��=���a������g���~��x�N,�������m��&���?N���������|8��B|���s���k��*,���O?6�p����~����/9=�C��*	(��R4��*/����!�@}�[����*) �T2�E�/�I_���@%��J����]@n�'���r>w8�c	a�uxu��b!�=���t�d�M�E]���3f�	&��b���-���]w�5�|������_��W^9=�C��*	(��R4��*/����!�@}�[����*) �T2�E�/�I_���@%��J����]@n�'����>�K>�w0����R��UW\qE�����|������7����vZ����c������i���*�Y����Oo��{���>:=�C���	(��ZD��*-������8}�[�F��*' �T.�D�o�I����@�������B@n�'u,�z��7�J+���s�1a��wO����Y��O��V�-~���CI�G����U�]vY������v�%����o�������!@�@�VU-��C����^��Z��	�-}�wc��O*R"�7��o�nL�r�I�BjA
! ���:VE��>8\|��	�k������<�@�f�m��[o�5������p;�,����>[A������u�]w�)8G���(�*}-��$���N��V��[zg�N�. �T=��G�w�I����@����G���G@n�����U���4iR����
+��GqD8������������*=7�N7
�>����3�g�q���]r�%a�
7���UPXU��ZTV�{eCka�* �����	TJ@>�T8-�@_�����9�J	�'�
��(����O(�ZX5�S�S{tP�����%��X������'�v�y��ma�;���|�������3~p������UPXU��ZTR�{%�jQ�. ��=&@�2�IeBi!�. ��=&@�2�IeBi!
% ����VE���:+{��	�K,����0��s�o�1|�k_K��?��M-�Pz<��h
�f����s�p��w��;vl���K�j�����!@�@�VU=��G����^�pZ���-�	��(��|R�Z���'�	��(��|R�Z�B
�-�����U/��RX{��S�+��2���:a�}�	W_}u�>y��p����}��tZX����>|��_��OOo��J+�����a���J�� @�
��ek$@���x`�L(-�@���B��d�Z@>)u�L�@���B��d�Z@>)u�L�@a��|BS���(������o�9��Ux`Xe�UR��/�<L�81=���Ia�/����/�_|1��l�9������^l�%PXU��>�K�{��m�z% ��J�}T_@>�~���@���^I����'���������z��������^{%��s�GqD�o����{��'�5�\m��[X��o��7�<��1#���;��?��0f�����$���N��V(������R@n)dXL�@)��R���	R@>)dXL�@)��R���	^@n�'Du/�z��w��?���������S�LI�`��|��U�{l8�����|��_�����s����!@�@�V�-��K����^���<��
�-�
��(��|R���0��
�'�
��(��|R���0�R�-�����UQ51�{����y��a��q�����Na�O<6�t�t��c�����,o��E`��G�k� @�J
��Mk!@���x`�|�-�@_�����)�J
�'��E���|�v7%PI���a�(}�[�	��������:���0��:����{����[�x��	a������SX?�w�m�ez@��������j@�TE@aUU"i P���E�����sr7$PY�����0=�OzN��*+ �T6�F��rK_�+��6�,L�6-]�i��v�a�������U��_��>��v��Wa�TL@aU�j9 Pm����������/y�%P=��z1�"��O�%���' �T/�VD�rK�P�9\p�����n����z*�?���q;;w�uW�<yrz���?��7�<���a�
7lnjk�u�
������5: @�,
��)�$@����g@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.'@�%PXU�`�*���7@�@rK��$PO���q�jy�'y��@=��z���	�- ��-l| P�U���� @��<��H��-������IK�t  �t��Z
�'-Y4 0J�e��.������^��0f����"��}��^��
���?����/�o��6�����[o�Zh�����g��f��^x�0�s�}���x���Z���b��9��sp��ws}E�]������G�{�iP��p
�
"@�Cx`��:�[:�s%�����\@>�����Oz8"@�;rKw�����S�NMn�����}��^?�
ca��7��;����#��7�x#�d�
6���'��[nVYe���I�������3�7�|s�>}z�6n��0a��d����>S��;��.���p�W�G}4g�n�aXw�uC'Eu�]~����L.���k�Zk���0���[�+b�^x��p�Yg�|0<�����i������Z�e�]����?*?�O@aU�bn� Pb�%��(���R�����	�'%��(��|R�����	�'%��(���R�@�f�����>���J�[X5�������o�=��#�v�mC�����i������������>l�X����g�!�=���a�����_�O,���/~�\r�!��:��3���}�si�O?
������.y��?�s8��[�h�f�m��G��o�v@�C	(�JF;(�����T@@n�@-�@A����4T@@>�@-�@A����4TL@n�X@+�����]w�u���)���n�� ~�o�}�
������opz������5N^p�����l�p�����?L�4i@���c��K/z����MX?��O��
8������/|�a��N�?><����Xb��M`����u��c7>�����[�+b��?��p�G�����W^9)�k�����S��T�������/�!V
I�(�������TA@n�B��@1��b��,TA@>�B��@1��b��,TM@n�ZD���w�}7�}����N�maY
�F{�l7�!~f��H���I�z��a���O�������n��ow���{��������^wb�O,�j.����K�����o��f8���C|�Uc;����^{��8L�N�2%\z����a����k��1�}���zhz>z�����k��6��_�3����.�������|@�],z�o���g>���M]1v�oG�������O��!0�����d� @��
x`/`PL�@��
�D@>)H L�@��
�D@>)H L�@�����B�y��G�A�M��rU#V����7m���$�O��m��F�g?�Y�L��O<6�t�����N;��Czw�0����z���}����]vY�o��������^x!�����u�r������X�u��6��w����7����+�[��[m�V�r�)���nJ���7��|^����m�Z_c���?�{���r������������w�y'�z������;�o;�I@a�HB� @��	x`/P0L�@���
�R�Y@>�s��@���
�R�Y@>�s��@E�������om:������>�*�*��������{��7l��v��Xx��O|"=n���~�<���)~&0#5o;��c��4q�d�M�E]�|:����[s�5���/�ol�h�����v�|���g����z���������X5����+����q�����������X@���;n�O>6������1v�m�YZL�@�D5�?=���{��{����"���v�PX�JE(�������\@n)yM�@����T�\@>)yM�@����TTH@n�P0������.<��3��\r�0i��ag3s��?E�����_|��pp�Pl�<yr�|����{���$UX5���d�����>������c�"�9�������)25�[n�%���J�a,k~[�I'�v�i�F���~��_
�������}�Yg�}��E��Y������"�'�|r��o�qh�)�\c�5���-��"�����n��y�E�]���j�����s�9~/����c�\Pw�UW���������U8 @��bx`/v|��@Y���F��	O@>)^L��@Y���F��	O@>)^L��@��*D��k�E@'�|r:�X��t��.���0e������>]t����0*~�,��g�m�
��~��B�,�U�\�N*�N,�j�y*���)
�
.�j.���<�o+jl��v[X~�����=��3�7<��-�\�����V]u���R��_;��s<�r���k.�{���G>��}�����'������
+��zUX���-v������������	&��)t�N,��Ef�-��k���j�K������,	 @�@1<�3.fE��rK�#h��# �'fB���I�#h��# �'fB�JrK������b��'�����~�����;�P����K���f����^�����>�O��B����;9���j��7���o,~�1cF�=�x���^:T�������o�m���a�y�i��w��/��RX{����S�NM
t��A;���������������[o���{���{����RX5x��Y�P���������K�����M���7C�W��z�XSw��U~ @�D�K,S%P"��D�2U�O
 �#P"��D�2U�O
 �#PR�%���:��|�p����+|hL���u8�l��B�{��'i��'����f�bR,Pil�_������f-�|]�x��7��w��WN�u�)��w�qp����Q�mTq�}���1���_|�����N��g�~��d�baZ,Pkl�3��s����o�Fm�hw�qGXv�e���;���u�������jp����UX���-v�!���C
����As�S5PXU��� @�@�<��+^fK�,rKY"e��/ �?FfH�,�IY"e��/ �?FfH��rK>Q��������|�`�m?�P��UW\qE������>�������N8!9�D�78f����!���0j��5��O�e)J�s�=��~��d�X������u��G'����KZ�������~����;��3�7.D����:m*i���4���SO
�'On>�r����X�?8k�����������v�m7�s��/���a�M7M����u!v�������_N��^|����]w��Yf�����V
%��P�{�bJ*  �T ��@� �IAa*  �T ��@� �IAa*& ���:V����a��VJA�������XX?��t^���!���e���F���V\\t���@�������?����[r:@�s�9���'��Y�������K�������n�az���o���J��i����Z(��j���M�w\�u�][u�6x��pj�����q����y��g���`,���[�<�"�n8����3g&o*{���M����_��W�c;�PX5��s @�`��!P��"���O
S P��"���O
S PA�%�����*J�O��O���Uq�<��f��|���[o
+��bz<�������~�������
���?���a���OO��'?	[n�ez�j����f��/������oJ��?��?���G�~,P���[�������~6�`���M7�V]u��\�����f��^8��jg�5����Zr��c�
_���Zu�6�0�W�U�Z_c7���+����5���������a�9�lq�&�(���D(��������Z@n)u�L�@���B��d�Z@>)u�L�@���B��dTF@n�'�u-�������I�R����7a�VH��8���$6�?>\u�U���vF[���X�u�=�;��i�X�?q����b��[l�8l�w�}�	W_}urn��v
'�tR�����,�UO<����c5>��������E8�.�hz�j���Uq;��C�n��)�z��7����������x>n���8l����K���:*i�������n>��ov�y�����M6�$�w�ya�y�m�j���
���q�K�{��a6�" �T%��A���I�c`�" �T%��A���I�c`�( ����V
��_,�9�������/�[�E4��w�P$���0j���^�W�������c���~8���RK�]�:���e�����������������#�L��������KN�����
��W��Q@�~�s�k4�X���K���v����8,��NaU�{6��u4�[��vs}��.B�&���b���i�w'��oF;��3U
�r<�����t @����^�X�	�*	�-U������|�_w'P%��J����O�����* ����VE�X�?'�X�s���&�)���|bn��ia��J�e�'ka�Pce����������*���^CM!i�l��B\{������g�s�=��c���lo�����������O��3O�1cF�0aB�~����8���?���a��WOO_~��a�����P;�*������V�W^ye�o����c�=�"�1c�hw@ ����,J� @���x`/H L�@�����r�Q@>�#�[���|R��Z�>
�'}�wk�[�	n��^z�����k���0d�u�	����<yr8��S�>Yv�F
5V������p��5L���2���1��W�n����=U5>Y7��oI:������������(�7b�7c
�]p�����nr��
Z�?q���n4���b�Wc��������}�q8��~Vus}E��`�3�<3��?����}/����F�PX��� @�����'PM���q�*��O�����) �T3�VE��I?���@���|b\���(����XPu���UVY%���V�����d-�j����?i@IDATy��7����O��O��s�I��Zk�p�5�4����3���|�3i�M7�V]u�����_������%�\6�p��x�N|�U|�U���z�t����X�S{�rHln����H?����'�xb�7e5�WaU���W��5|c�����a����������9 �����v��'@�}���G|�&Pa�����4=�Oz�v*, �T8��F���I����@M��|]�������'����8���sf���{�	s�5W[��-���CM����_������<�HXl������/�0z��iS��]���6�x���SO%���{��soi���w�}7y�k����y��!�ol������������X�5���&�M7�4�9f��YX���1v����/���X��b����hV�V�� @���{��Vj$ ��(��J g�$g`����|R�`[*������
O��rK>��{a�;��>����7�x#��!��)S�$o�jW~��Q��~��.0����p�a���=�[����/����q��)��2������?������/�xz�����>�-Tw�qGXv�e��}����v��8K����[|;Us{|KR�Lc�m�����:)��o����+�[w�q���F���7x
E���/�������\u�Ua��VJ�����������X�{����@M����2	�@@>��[���|R�@[&��'=@v5�[�	z���j�[�������0n����L��-����M����
�3m��{��^�o�jl��?�v�m��M]��[n�e�b�^x!�����.a���S�N
�w������SM�4)�u�Y��������-��"L�6-m��
���?��7c}��_��^�;6���a���N��3�(����W_}5�� �-�s�����n��h��o����W^���?����D���~���C�P�3���U���(������	�R@n)e�L�@!��B����R@>)e�L�@!��B����^@n�'��>�f>w8����3G�Wwv�c�=��4_=a���P��-��h�F{�p��9sf��'?���+��k�o������q����x.Y���V�g����[|c�v�m�Yf�p����o��q*�s����/�|����V�����[�O|���'�L�k�E,�;���������i�VaU�������)v��-�u�]r�%a�
7��r��D@aUMm� P
����U(���R�����
�'����(��|R�����
�'����(���R���n�m����&�v�ia�v�ha�-���#M����m�c�=������?�w����1c�����?�w�I'�<��8�-T������_��ip���C=4�������=�waU�\��W��
.�6-N*�j��i6�U��h @����^����2�-e���(��|R�x�
�2�'e���(��|R�x�
���-U�d1�q���~�����������������+L�<9�����O������,���������+f��.������>��Lu��G�3f�6V���w����>%8[��6<���a��)!��i���J+�����7�x������?xSV,rZ}��G������"�.�]x��]~��a���_��z(��G���*"���"���[
�!Pb����3u�O
�!Pb����3u�[
S+�@|��3�<�|ro�y�I>������}�Cm�)~����/��rXj����q����/��8�*��7j-��b�8q��������xA��W������+�����3s������	�@@n��[���|R�@[&��'=@v5�Ojh�$�c����nG��(�����nM��������d�[�(�C�@�$��>d�O�(�C�@�$��>�+ ��+�?(��������	 @���ktK&����nA�&�IMm�z  ���-�D@>�I�-�@����������>��5hW�{�b� �E@n���Y��,J� �E@>���Y��,J� �������� @��
��;3'@��
x`�a�-�@�� ����'5	�e���|�d� P��&��L=�[z�v @��
����� @�]����O�@�%��>d�O�(�C�@�$��>d�O�(�C�@�rK�b� @���
(�*o���j(����A�d=�[z��j" ��$��I��I���@M����2	�X@n�1�� @��>
(��#�[ @��v<��+�?Y��,J� �E@>���Y��,J� �E@>����
�-���O��+�����3s������	�@@n��[���|R�@[&��'=@v5�Ojh�$�c����nG��(�����nM��������d�[�(�C�@�$��>d�O�(�C�@�$��>�+ ��+�?(��������	 @���ktK&����nA�&�IMm�z  ���-�D@>�I�-�@����������>��5hW�{�b� �E@n���Y��,J� �E@>���Y��,J� �������� @��
��;3'@��
x`�a�-�@�� ����'5	�e���|�d� P��&��L=�[z�v @��
����� @�]����O�@�%��>d�O�(�C�@�$��>d�O�(�C�@�rK�b� @���
(�*o���j(����A�d=�[z��j" ��$��I��I���@M����2	�X@n�1�� @��>
(��#�[ @��v<��+�?Y��,J� �E@>���Y��,J� �E@>����
�-���O��+�����3s������	�@@n��[���|R�@[&��'=@v5�Ojh�$�c����nG��(�����nM��������d�[�(�C�@�$��>d�O�(�C�@�$��>�+ ��+�?(��������	 @���ktK&����nA�&�IMm�z  ���-�D@>�I�-�@����������>��5hW�{�b� �E@n���Y��,J� �E@>���Y��,J� �������� @��
��;3'@��
x`�a�-�@�� ����'5	�e���|�d� P��&��L=�[z�v @��
����� @�]����O�@�%��>d�O�(�C�@�$��>d�O�(�C�@�rK�b� @���
(�*o���j(����A�d=�[z��j" ��$��I��I���@M����2	�X@n�1�� @��>
(��#�[ @��v<��+�?Y��,J� �E@>���Y��,J� �E@>����
�-���O��+�����3s������	�@@n��[���|R�@[&��'=@v5�Ojh�$�c����nG��(�����nM��������d�[�(�C�@�$��>d�O�(�C�@�$��>�+ ��+�?(��������	 @���ktK&����nA�&�IMm�z  ���-�D@>�I�-�@����������>��5hW�{�b� �E@n���Y��,J� �E@>���Y��,J� �������� @��
��;3'@��
x`�a�-�@�� ����'5	�e���|�d� P��&��L=�[z�v @��
����� @�]����O�@�%��>d�O�(�C�@�$��>d�O�(�C�@�rK�b� @���
(�*o���j(����A�d=�[z��j" ��$��I��I���@M����2	�X@n�1�� @��>
(��#�[ @��v<��+�?Y��,J� �E@>���Y��,J� �E@>����
�-���O��+�����3s������	�@@n��[���|R�@[&��'=@v5�Ojh�$�c����nG��(�����nM��������d�[�(�C�@�$��>d�O�(�C�@�$��>�+ ��+�?(��������	 @���ktK&����nA�&�IMm�z  ���-�D@>�I�-�@����������>��5hW�{�b� �E@n���Y��,J� �E@>���Y��,J� �������� @��
��;3'@��
x`�a�-�@�� ����'5	�e���|�d� P��&��L=�[z�v @��
����� @�]����O�@�%��>d�O�(�C�@�$��>d�O�(�C�@�rK�b� @���
(�*o���j(����A�d=�[z��j" ��$��I��I���@M����2	�X@n�1�� @��>
(��#�[ @��v<��+�?Y��,J� �E@>���Y��,J� �E@>����
�-���O��+�����3s������	�@@n��[���|R�@[&��'=@v5�Ojh�$�c����nG��(�����nM��������d�[�(�C�@�$��>d�O�(�C�@�$��>�+ ��+�?��z�����K��c���Y�A@aU���t*���S9� 0���2��s�# ����/�	�'��8G�@;�I;Z� �U@n�*������?�N8!\t�Ea���a��	�_�,� ����nI�:������N@nN�9��O���������t�#@���-}	�* �d�����+��rx��7�N
���r���	(����; @���<��M�2�-�t!@ ��|��I'2�'�t!@ ��|��I'��[����K-�TzFaUJa���	(�*X@L�'��}8��T@n�T�u�O�8&@�S��S9� 0X@>,���n�-�P4�V� P�Ue��9 @���'���O��<��<T�I���I=�n���O�P5&�z
�'���U�[@n�[��uPXU�H['�r(�*w���j&���f�\=�[z�6j  �� ��H�G�I����@
���	�A@n�zEo9k������$���{���p�����~��p��w'������0��s���_?���za�u�	��3O�������~��~{���V^y����k��~��a�y�V���_N����~�z�����O&��������k�O}�Sa���
c��v�8�k��6<��3!��_m����+������y�?�����.q��sLzj�w+��Rr��/9,��������v�m��G	��_���g�%��������6�|������q�~����>� �7�|a��vw�uW���+�=���Yf���F��v�i�1c�K�@�V�/�VL�%��^���:��-��(��|R���.��'��(��|R���.���-%	T	�~�������N�{�M���5�l��I!�������o������t�����K���.��5v�y������c�m4
�w���
'�tRXe�Uf��?��?I�R,Ln�u�]�G�4�~���J��'>1�%���nJ���^}����o;�x�������"����I�����Xm�VH�X`�dM�����n����a�6[��-������z(�����t	�D@n)I�L�@	���	�D@>)I�L�@	���	�P@n)a�
:���U�-�\�>}���=�����?����a�m��&���.��O,(����gk�a�������O���������X0� �e�o�������Y
�n�����+����_�bx��7��*w�q���;7V��X\�j�k��&�b2�V5k�'@���^����
�-%
�i(��|R�����
�'%
�i(��|R����
�-��������������>�P�Wg�lpaU���w�=|���M��{��p�A��^{�q:�?����|%���|0|�{�/��bz>_�����q����o�����74�b����7�|3)�:���C�[�N;����;���r�-a�]vI�>������.�h�I�;��3��_���b1W�MU�=�\�i��y��v���&���K-�T�s�9C|3W����>����c���^{���^:��93�{D��B�{��7�q����F{��`,����Zh�?�h#@��`�U�E @��x`/ppL�@�����	L@>)X@L�@�����	L@>)X@L�@E��|9�{��7�~3��;u�?�����V������m���"Q
��]|�U,�jl��sN�z��������/�������\0=��y����"�F���;�N<����p�	'�Xl����.�q�����K/��^{��a��b�sLzwbUc�:uj�0aB�0�{�e��o}�[i�����^x!L�<9��1#i�4iR8����C����|�;��c�Y�f��i�X\e#@��`�U�E @��x`/ppL�@�����	L@>)X@L�@�����	L@>)X@L�@E��|��*$o����+��G5+~�U,�����o��m��f������b�Vc�oz��������a�=�l���o�'cqV,�jlS�L	�^zir�����_���-�����<<��!�7�9����tc���H�Uk��f���-��2��'?p}�A����{��6�7Y���mpaU|SU�4a+�t;�
�� @�@�<��(X�J�DrK��e�
. �<@�G�D�I��e�
. �<@�G��rK>����o�z��o�:��C��x�u�I?�?�����e�x��[oM�}����3}�[|;�������i�y�m>�����;����v���+��-��"�������<����'��pj�H���3\a�����3}�1bQU,�j�s^n������������U���#�L��!@��p
���q�L�{�b:*" �T$��A��I�`
*" �T$��A��I�`
*( ��To�
��s�
��R��X$��SO%�=������������W��Ur�UaU�E|�Ax�������0}���?��MK����/~^��.H�^~����Zm'N��Yl�AXy���s���[�6\aU|�V�E|kVs�V�6�U��c�
_����n�����G�V5k�'@���^����
�-%
�i(��|R�����
�'%
�i(��|R����
�-�QaU�\rI�p�
[7V�p�	a�]vi�/~�o��������������V��>�`�i���o�1�{z?�����^���p���i.��:uj�0aB�T��D�o����vw�=�:������U�o�jw\�	���������	 @���K<S'P`����15%�OJ0�%P`����15%�OJ0�%P�%�@)�
�_��_��>�����(�z���B��HUk��F����^{-�K���x������e+E
W`���\K/����
WX?=x�G������������\2����k�	k��V;��K�@�V�8��N����^���1�2�-e��9(��|R�8�%�2�'e��9(��|R�8�%��	�-�DLaU��U|p����0~�/�������a��V.�`8�����~����P�U���}������o�=�t�M��Gm�J����������;�V��n��o5�k����[���]h�������%�
��8&@��U�h�K��,����p{�[*X�"����nI���IEkY�  ���-	�@@n�'�
��-��o�Zs�5��-��r��.�/�|�����������*i�d�M�E]�|z��W^y%�p�
�G?�Qh��*^��>�����WX5m����f��}c���?������U�h�K��`�U�E @��x`/ppL�@�����	L@>)X@L�@�����	L@>)X@L�@E��|��*����o��ES�mU��Y�f%o�jEm��F����z���`��'��?�x����B|U�-��t�M�S��sN�z�����
��}��[|��7�����l�����/�y��'�7.l��6!��Ma�l\hC@aUX� @��~x`�w��@5��j����C@>���{���|R��Z�~�'�PwO��[�����|�~����#�<2
^�\���.�7��x����SNI�&N�.����8~�o��W��)n��)=�����?�5�X#=�/��/a��7O������P��n�m�����������G����3�8#w�qiS,�Z���c�U)�:PX��K @�@�<��K�}	T[@n�v|��@/��^j��j�'�������|�Km�"P�%�X+�����7��M�������C	p@z��9�������8L�������.m��T_|qz|��x3U<��{��)S���S��������\L���+�Z_����QG��s���#�<��r��x��V
g�}vXe�U���s��W�}��'m��9��m���*��C�@
�:@s	����~��/�j�-�������|�Km�"Pm�����:��Oz��^�# ���o���|�p�#�vfX��uxu��b�Q�l]c������O}�q8���o�z�����N��������=��3������mR���z2v�MS�|�,�[l������n���0c��xj�����Y�9��#i�6mZ�l������s_d�E��/��Z����W�~����s��\�o�j���~����u�Y'i��w���������.���jI�������������E��g>��)�J)� ������\B��%���_��K��rK��kuz) ��R��T[@>�v|��@/��^j����-��u�+�eaU\���^��k�������o�t�UW]���^;�-Q��;���_�o�3f�����sN����m���p,E����;o�~��=����V[
8��j��PX�&�� @��������+ �T7�VF���I����@u�������Z@>��������R�8�b����~Xf�e�[
.^JO�u'�!*�)*n'�|r�������g�}�
q��}�[�
t��.w�uW8��#���O.�����g�^x����k��^{-��j��{,�~�������i����Za����&Mj4������O�h>�9��#����w��|*p���v�q��������_��������<��������zz��PX5��s @�`��!P��"���O
S P��"���O
S PA���A���>�����K/������g��\r����+&�T�P��O
/��Bx���[o��1���
���j���}������.�$�������[,����kb�g�y&���}(,��Ra����s�6�!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��C�*/����!�@����*E�ZG@n)N,��@����G��	G@>)N,��@����G��	S@n)f\���!��*Uc @���<��kX5�[j��|]�O��i(5�Oj��|]�O��i(R�%��S�w�}7����a��1a�Ei{�������O
��7_2�v�m���{����z+,��B��m���5+��93,���a�9�h�����^{���y��s�9��.�	(������t @��p���q��N��N�\G��`�d��c:�O:�s����"�	�����
Ec�J������S��=���m�v���t�Xht��7���;/<��#��7�H.�`�
�'?�����[�UVYe�a�����j8��3��7��O����7.L�0!k����T���;��/�0\q���GM�Y`���n�]w���EQ�l�_~y8���K������Zku2�k�����b�����
���VrK+mt" �t��Z	�'�T� ���|���kI@nI���\}��a�}�I��na�h�Oo<���o���c�p�m�
���6�b��'���n�����}b�V,��g�y���������'�_|q�>�-�\��/~�\r�!��:��3���}�si����VJ�O@aU�bbF @`H�C�8A��(��Q�������B@>�K	  ��p@�@���.A&W����]w�u�=�)���n�� ~�o�}�
������opz������5N^p�����l�p�����?L�4i@���c��K/z����MX?��O��
8������/|�a��N�?><����Xb��M`����u��c7>�)�JK;�b	(�*V<��+��}X'	�P@n��e�& ��F������\F��l��l$�����DC�&�������>;�p�	��#Ka�h����C4���p����6�SO=5�?��I��w�v�m���N�S|?�p�w�y�k�N,���R��P�\rI���x��7��~x�o�jlGuT�k�����)S��K/�4=>����7~�3&�O��CM��B�X�5�v���&��k|���_aUC�_�PXU��� ��}��$ �t	�0�����n	�'��4���y�-y���<�H8�����i�Z7Ra�h�oy��|�AR�4}����Fm~����X���=��a�M7M�N;����;��qg��
c��z��7�O������p�e�%��mS��sO�k���~/��BXw�u��C9d@�W�D,�:�����;����K��w^y��p�G$slno�+�jH�K��
���#@�<��p@�@���.A��U~tM��?����^@>��O�\��\X
:
����O<1�~����2Ta�h���-N�{��a���K����O|��q��~��p��g&M�3���y�q��w��4m��&���.j>���O������q��7�X��x�W|;��>��s��f�
[o�u�������[��]y�����N���ho����Y�>��
(�*nl���&��}6
tA@n��!H�?�% �tK�8�'~�! ���Z�1������3�$_r�%��I��E�9sf���kl��M�/�xr8�h(6N�<9l���a���n\�*����
2����?G}t�{���I��s����X���-��VZi��0�5�-���N
;��S��l�����_���I{�>����>���]�,�P[��c��O>9[��7�8<��Si�k���m��i������B(�*txL���>����[��h�7V� �5���k�"P{���?r�[ra�������ON��sb��P���^�L���~��G���.�7F���~��a�m�
��~��B�,�U�\�N*�N,�j�y*���E
�
.�:��s�B�����6�,����n�/�|z<x��3��w\���r�%>� ~*p�UWM�.�����;�<=�����=���#�Hz>�4V��3~�����~Xa��~
�R
;
-�����19 0P��@GtG@n���QPX�7@�@�����Y�@�������@>rK>�u��g�
'NL�?��������wb��}���4o��6!�5����������|8��B,T�{���SY�F{}cY�N�0!��1#���<��a/���������O��>}z�g�y���;C������k��v�:uj��j�����e���?=�������z��=��#,��"����~[a�%�!���q2K �x`�C @ �%Uc���|R��[5�<��<T�I���I=�n���[�����6��;u���
s�7_�Wg�,R�s�=I�M6�$\t�E-/�EH��>�_�?����j�qF{�P��������N9�����;�5i�o��o�������9��d���/|p�?)���'�C��b�Zc����S��_{m�Q�9�q�a�e�M��~�������j���f;VX5��PXU�0�7���z+��w��������G?������7HS��?���{����������n�f�
/��b�U�s����������W<�rJy�"�����D�������h�iHt2jt��L��x)�i��t�b�WR!�L���t�����Y���~���Z{�u����Y�{�����3�w}\�{U����Ot���W/���=�($nB������P2b%@n�U8� �$:|�X	�Ob�@��'��G ���`B���a��+��e;t���V��9�Ze���]�c�?�Syc�����H+**��y�ZU�������5{�R�t������?o��EXZ�����5z�hk?��~�	�?V�X!��z�se�����IQ����;����i��N����^���w�e�}
�\Y8�@�(��}��
P��:}�t�/���WW�I��<x��v�i���;����w�y��JM��kg}����eso�B/���;���d�]q�r�u�9KSVj�s����L�C0T�vC��X��00�G� ��A�f�,@>	��#`����`3UB ��mba��_~)-[�t@u%&]�)s�E&�������s#F��l�w����R�wXnq���S�K�.nM�s�����Yk��I��k���s��?�p�;w�s����5k�S�N��H���%w�+W��:u�8��v2W������o��n�������g���m�f���'@aU�b�{D}���d��M�B�o�N�0Av�}�B����+���`���Z|U������~�|���j��O>){V���i�+��E0J�v���dM��5!�z�I�C�M�|5!�z�I�C��D�����U*����O���V�t�R�C���_~YZ�ha��[0�a����s/�z�����o�����;�~����g����\u�U����������U�t����@IDAT���{�E=�@���^����C��t�I'9����/m���E�e�8����[�i��s��G�g�}f]���[���/vk�u���,H��U�	��@�m�fU��w^37��.[�j��J�L�����e6���1c��wlu���k�f����C��V���.���	�q�Wip�l����y�~�����Y��<WTN"�����z&�@���@yy8F	�O�
7�E P�I��<��'F���"��%jS��,Y"=z�pP_y�9������#G�����c�������kU��Z��~-�Z�xq����]���w�}g�;��X���[7������e��9��.�@��o�g~"�Ka��;s��X��u�={�t�~��wd���v��v2W��q�����Y�9
��88@ 1V%&T���������r.j����>*Z���.
9m�4�3���E�_<Z���}��'����f�5j�U<��~��W��?�A.����6/��B��jQU�jZv����/��o�!��w�h��v����V��m�=���s `�/�����#��%H]���Y����lR�|�.�F�,��Y�f��%@n	F�����O�������}����*V[�n��u��>}�X�^��Z��Y^��9s��'
m������~�j��Q#�����
��;��=�l�n��k�t�+{_�B�B��e�����.�����%{�b��
���?3���8LBa�+%'���U�Q�j���d��(u�AU��O�S�_H���s�=W��M7�$7�|�s��;��a��9�������kW��Z~R���r�i�SO=%���kV�����sggE,�X��i����Y�L{^��9@~���_B���*�D�L���qg�!@>	B�g"`�����3k� �#lja�jjq���������U�y��e}bn�����ax��F�{����Ve~FO�}���.�7������]���3�<�~&��>����_Y�6/�������nn��t�5d�����}{���;��1��y�f9�����O?��t���9��CaU>�#o
������e�9����1cd���q���G-�
^{����M�g���W����{�=����l��_{��2v�X�����{������lc_|�����3�����~���;��c���&� ��/�� �@�� Ty&f
�O��;�F �I�<3�'f��Y#��%a��>��c����Y�f�1�#��������{��vO?�F�{�����F�����|�������g?��_~�:�EUZ\Uh�\J�������j��E]KW���M�2En���r�
Z��'���t��|�ye.B��k��.~�{?�U�"#�
��'�Qj���7��\�%
3+c�����`�Z��>��s�[��}h}���Np��h��_�k���-Z8�u,�G�v��/�������s��u���h��~���|P��h�"��i�s&� �!�{� P6rK�(y��O����	�O�F��0^�|b��"@n	�UL.�R����iA��!C�u����U��~��Z�yO�~��g>+s�7���L�4�:��m���:2����u��G?��sz�����M�X����Cu�M�>]:u������V���n���==�\K?kXhA�B����Z�j��U�
���������s�O�&@aU�"�3�����| Z�t��gL��\�����'|�������	&�����Ck��c�=�9v��w�}�B(]�P�q�M+��/B{?~���}.��.��������_:�;4�y�?@�L^�35�G�r	�[�%�s@�|���K�|R.I���~@ rK�b|a�~~��$�~p���2h� [�/^,��W��_jaT����.�q�%�8������g�8sg���r�u�9���}�_\�����^���>`�5j��6sG�]]W�������N����7�,?��u��[Z��o�\I�K�.�c��QX�E�6�O�����$�-\�0����EP��VAO�6��?���9����"�O���;�����'g�����\��'��=��cU_���-[�|������D2xa��`�%@n)�$�A�	� P.�I�$y�O�@� �-A�RX�m�69��#d������d�6,��P�F����R��7���+��B����J��]��e�������?_�����v����3�9��[oI�
�c{����Z����_��M�����7��s�=�9�b)-���tu����yF�L��-w��>�l�B%^�A_�����C�q��r�y��_|����?��:���aG�y�o��_6�6m������ �_V�����U�t���[�Jj��V
g~:�>��s���Y��q��=�&�=/��}@������'�S��RNM���������(�����<��'f���#��%Y�?����&e*�"M�4�<�i����R�/4��n�Iy�����k����M�m���.�V������K��eK�����GI�W��5k&3f������i�L��S���C&N��\���S�n�d����y�l��'����w���?vV��_��,Y�Dv�uW�M�
�
�p
��
PX��=��k�ZR���9sd���Y����+�����:���
��|�x��JmrOh�o����Y��>�j6|�p���;�[���K����c�����~�����_l55�yn>�Cxa�w� ���30S�|bf��5A�O�P���)@>13�����-�����������S�^6P���������w���{2��}{�P(����R�J���8�l�"�w��*�����
U�7o���d�T�������n��J�< ��~�s^W���G7nl���~Y����~v�y���)�g��Uz�{��r�QG����o�g�"��|�A�/<y�(��*E;�%@aU��Q���r�����\���NC�q����(~��u�)��"��UU[n_o����D�����wh�X�[���[=��i��G���0a���`��� ��d�����.�M��R6J�����@�l���Q� � ��+��[a������k��I�`F�^���)�0�����.�����C
m�����'���f]mJ��z����c]�]�*��^x�S���c]|d�����SXU����V��������
:���e����QW_}��x���������|.��3��*n�����4i�\~��������r���[�}���'�|���s�Ng?��{��'�v�sY�������<�@ C��v@�l���Q� � ��+e ����!`����_D��+����)S��np<��s5k�t���,Z�Hz�����a�g��N��{�C?����9sf�����^�'���=]�j��Q�_v���3�^{m�O	����5k�X�F�+X�n�)B�la���s/Uy��7�d���E\��6^�h��PX	{���R���\�-��O>�W^yEV�X���~������h�}���kC�+V��T����~O8����}���i��~�V�8=�P��;��C���#�� ����\��Gp � � � � � �@�_b��)�@����:�n�:��{5j��>���iS�m��
��~I?3����i�&i���4i�D4h����Y-���6]Qk�}������^�z����i��*mu���;��G�ZYJ���K/���#����SO�_|���oG�����J��~��.�����hE���_���U�]���[��];��C=�n��<��-���*6@@@@@@��(�
��'#� 
�������Tpz��\]�����:��U+��V:t� �����6���(5b���?��9���c-���+{����d�=��]��O<�D��O<!\p�ul���"v(�*�[@@@@@@�V��9 �	��*a+e��)�c�9F�.]�<F�S�%u;�����Nl�f��o��u��C������i���K���g��no��6�Zf��s2gg��Yr���:g���#g�u�ul��v@������q�xaw(�A��-%r;8���(Q�|R" �#��#@>q(�A�2
�[����@���U1P��7d����{�����Kr��'[�}���i��9�����*���gOy��g\����~'���w�-Z�HN8���mg��	2x�`���`u���[��=�A`���=�](���l�<��'��
�@��'e��A/@>1�W ���C@���U���Ai���U�DW��{������������72j�(����?/��~�u<v�X���k�k�W��-Z8�n;��7��k�Z�:v�(�����l����'��'O�~�����?
$>��s��/��=���:6�y; �@�/��"�@��-e��A/@>1�W�&@>)%B�x���� ��%V� �@,(��eX�
��#�����;����k�}���c����?_f���\��?�)p�u�EVg�y�sMW���������
68���#F��1c�f�7o�
��]t�L�2�>t��Y���];��LM{�+'@�x�������u��	�[�F��0^�|b���M�|R6J�����@ rK �<@�X
PX��x���C����v��5K�9��8wg�����U+���/�K�k�����N����Jj�����@�\���w�aS��g��-��w�����v���7�9���K����g��
\'�x�s��k��#s3�y�sgP^��=@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X�I�
S���;��#{��W�g���Cz��)Z|eo^x�L�:�>�~���W�M�����j���+����w���o�$aEE�s�������w�]r�%���K�j��s��^]�v�7�|�9��)B���`���G�v~@ rK�<3�'f��Y#��$U�����3���Z���0�G@ >V�'�G�m�6i���,]���WW�z��G�E�����r���f���U}������:�t������;,���>(p���,Y"��r�ST��z�!8p`�}z��'l���|����5�$���?[��'�X+]eU�'�z�)�{������' `��nK��)@n)�&�B�l����g��S�|RNM���������J���,�E@ ~V�/&�F�v�Zi��mV��>@��6m*�V��Z�~�s�='g�q�}��������o�=��bi1��T�+Ienz^W��m��2O;��+k��u�&[�n��_�>e�l���h����u�>0�y�����/�� �@�� Ty&f
�O��;�F �I�<3�'f��Y#��%ha�� �@|(��O,�����g������OUmZ���E�w�yy����S��'������p�G����*u���O��|���w���
�rk�k��&��B�i�+d�50K�v���lK���4� �~�I�c�K�|�4� �~�I�c��B���:}"� ��U�����/��Bn��V;vl�g<XF�-{��W�6����/W]u��X�"����P7�t�����=����u������_��I��v�
�o�Q6l�y:��i���0J�v���dM��5!�z�I�C�M�|5!�z�I�C��D��	;�"� ��U�������E��s}6l�&M�H�6m�q��R�Z��:���-_������{�-��7���s�=�z��Q?)������f��I�-�^�z<�(nB�xa7)�����-�Y�i ��=�����'�Y�i ��=���h�-���+ �QPX�:}"� P�/�E�q ���"� ����) ���"� ����)x �x��! ����*�!d �&	��nR��+�	�[���'�.@>I{���	�O���'�.@>I{����[�q�W@���*
u�D@�H^����6((@n)��E�!@>��ES((@>)��E�!@>��ES�,@n�LEC@/@aU�C�@L����h3W� ��gMO�]�|��3?� ��gMO�]�|��3?� �D�N� �D!@aU��� �@���	�m PP��R��� �C�|��� PP�|R��� �C�|��� �Y������ �$^������	 ��$��I�f��'@n	���H��$�f~�'@>	���H��$�f~D#@n���^@�B���(��@�"xa/��@���� @����M@���� @����M@����3
@H��U�!@0I�v���\O���5=!�v�I�#��O�|�5=!�v�I�#���F���;�"� ��UQ��' �E
��^$�!�@ArKA."����,�"�@A�IA."����,�"��gr�g*"� �x
�B&� `�/�&E��"��%<kzB ����G��!��$<kzB ����G��!��%wzE@ 

��P�O@����H8nC�����<\D�X4E�����<\D�X4E���T4D@ �V%>�L@�$^�M�6sE <rKx���@��'i�0�C <�Ix���@��'i�0�C rK4��� �@VE�N� �)�{�p���-y��>�'>�h��'y��>�'>�h���-��h� �@�(�J|� ��I���m��@x�����	���O�a��@x�����	���O�a��@4��h��@�((��B�>@(R��"��


�[
�p|�O|`�

�O
�p|�O|`�<�[<S�@��PX��2@�xa7)�����-�Y�i ��=�����'�Y�i ��=���h�-���+ �QPX�:}"� P�/�E�q ���"� ����) ���"� ����)x �x��! ����*�!d �&	��nR��+�	�[���'�.@>I{���	�O���'�.@>I{����[�q�W@���*
u�D@�H^����6((@n)��E�!@>��ES((@>)��E�!@>��ES�,@n�LEC@/@aU�C�@L����h3W� ��gMO�]�|��3?� ��gMO�]�|��3?� �D�N� �D!@aU��� �@���	�m PP��R��� �C�|��� PP�|R��� �C�|��� �Y������ �$^������	 ��$��I�f��'@n	���H��$�f~�'@>	���H��$�f~D#@n���^@�B���(��@�"xa/��@���� @����M@���� @����M@����3
@H��U�!@0I�v���\O���5=!�v�I�#��O�|�5=!�v�I�#���F���;�"� ��UQ��' �E
��^$�!�@ArKA."����,�"�@A�IA."����,�"��gr�g*"� �x
�B&� `�/�&E��"��%<kzB ����G��!��$<kzB ����G��!��%wzE@ 

��P�O@����H8nC�����<\D�X4E�����<\D�X4E���T4D@ �V%>�L@�$^�M�6sE <rKx���@��'i�0�C <�Ix���@��'i�0�C rK4��Z��������?���
�W�^Q���o������u�u?7!�I��*��c� ��	��n\��0��[Ba�� �f&�@(��P��#�'F��I"��%tr:,A�W�����1�z��
<=i����?�I���?��5kd����}�j��C=T�?�x��/~!u����<!�I��*��c� ��	��n\��0��[Ba�� �f&�@(��P��#�'F��I"��%tr:,R`��92p�@�n/�U�V�����Z�-[�����EVw�q������2�@��PX��P2@xa7!�����-���#i ��5�����'���#i ��5���h�-����7�H��}�WUX�e�����l��1���?\��sOy���d���Y��|�I���c�9@�4	PX��h2@������3A" �D�N��R�|���2)" �D�N��R�|���2)" �DP@`���������c+�������/���g;����OF�!�k���}���2}�t���k�6����W^yE��k/�; �@�(�JS4� �@�xaO}�� ��["a�SR)@>IeX���O"a�SR)@>IeX���["�#�|�r:t��\���E�����_�+S���~�3�S�q��Y�f��A��S��w�����9fH��Ui�&sAH�/��1D rK$�t�@*�'�+�B �I$�t�@*�'�+�B rrK�!`9�}���7N�����+���
�^|�E�����w��z�����~v��YV�^m�0`��5�RN �i��*
Qd ����nL��(�
�[B��3R-@>Iux��
�OB��3R-@>Iux��	�["�OU�s���u��Ys����G���e��3|v#]!�A���g�}&Gy�}����wo9���D����Pa�-��b}BP�6i�D.\h���3���'�|�<�����8�$]����G��#�%��Q�f��&@n	���H��$�!f��&@>	���H��$�!f�D"@n��=u��?^���.g^������U�9��y��'d��a��w�yG��{o�8���a��r��7����+��_��.p�)TX��������S>��S���]���v�Yg��e��&?���e�����s
H��U�
G0Q�v���^���1= `����H3O� �oL�"@>1%���p�-�z���������Cgz���={:��;Z(���oZ��>�ly����&����y����_�Rt%�]w�������y���5k�H�N���w�y����?u��A�$@aU���\@R/�{�C��D��	;�"�J�I*����D�|	;�"�J�I*����\��L�oy;����5�K���+H������j�����SN9E�M��u�>X�~��o��>��i����
����+,p�����,�Z�r��A�$@aU���\@R/�{�C��D��	;�"�J�I*����D�|	;�"�J�I*����\��L>[�3�����<����s����f��i�2e�����
����������^���E�s}UmAV��Zc��q������=�9fH��Ui�(�AH�/��/�C 2rKd�t�@��'�)B 2�Id�t�@��'�)B ��`�`ba��_~)-[�t@o������s�;;w��>��V����1b��_��.�z��'����v�m������+R�fM�; �@�(�J[D� �@�xaOux��	�["��cR'@>I]H��	�O"��cR'@>I]H�� ��Tr�������[��~���;7x���r��g;�^~�ei���s\h���U�=�X���?���r����@��PX��2@�xa7)�����-�Y�i ��=�����'�Y�i ��=���h�-���ZX�d�������+@|������#e����q�v�d������v�QX�c��3�<�@Vw��O�N�:e��H��Ui�*sBH�/��
-C RrK��t�@��'�
'�A R�I��t�@��'�
'�A 6��`BajaU����S{C������[�U��n�j�7N����9�Vm������3�<���~�c��Y�8@�*@aUZ#��@R)�{*����\��y� ��&�L���'��� ��IjB�D���%�p�ZX��'N�[o���m������R�Z5�7o�\|���y�c���R�N����R
��l�"�^z�,\����~����O�!���cH��Ui�0�CH�/��
'�A 6������ �x�I�C����$6�` $^�|��2b)@n	&,&V}���r��G;��f��c�9F(s�������[���^����b�����O�SY�v��M��-����F�9��AL����(3G@������P2b%@n�U8� �$:|�X	�Ob�@��'��G ���`Bcra�����W,X`�jA��!C�u����O?-:tp���SX��G�9��#7nt�8���d��I�V�rnfH��U	 �G0K�v���lK���4� �~�I�c�K�|�4� �~�I�c��B������U�=��\v�e�~p���2h� �x���R�zu_�~��n�*��v��_����O�>2f����p����$@a�I�f� ����=�!d�R����0()@>Id�4� ��2,
�D
�O6�@��-������m���G!Z��[�Z���a��Y+X���[Xu�������n.������e�]vq����&@a�ig� ����=��c��V����00'@>I\�0� ��64��	�O2�@"�-�����*U�"��~�����I�&��Wu�Oa��U��K�.�#���/��A/+Ui������� �&
��M�� �z^�Sb&�@$��H���T
�ORV&�@$��H���T
�ORV&�@���`B�e������������\��s���ZE�r=��s�}�]���[V������3��y=�SX���{��W�>:�]�v�d���Y�8@�"@aUZ"�<@�����03IB ��NN��V�|���21B ��NN��V�|���21" �D�����v�*+W�t�y�}�I�^��c?;^����[9����<:�-�UY �@�(�JY@� �@�xaOw|�Q	�[���_�'@>I_L�Q	�O���_�'@>I_L�q ��!
���)S��np&�z�j�Y��s�gg��E��wo��
68��;k���N�:e���������G_��H��UI��D@�^��5@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J�v@$@aU���P@����B���*�D�L���qg�!@>	B�g"`�����3k� �-��@���U��#A@�J^��$�!@n)�[@�U�|���I(B�|R� �������� P���D@nG@ AV%(X@^��@� �-A��L� ��wf�@�� Ty&f
�O��;�F hrK��<@��PX�X0@����J" �@��"��\�'�,�D�"�'E�q�
�O\Y8�%
�[J��P�o�.���TTTH�z�|�]��~;����-{���5^��f����������:u�d����s�N��e���[Wv�e����������������T�V-�I����_�b����5k���jP�,vV�.$@�������
/@n)��;@ [�|���/@>)��;@ [�|����G��RG����~�+�1c����
|wZ��Uu��=����GyD�/_.[�n�n9��������3�8CZ�n]�c���~��L�0A,X k����5i�D��oo=�g���
l�m�&S�N��3g�;��c=�V�Z��S'9��cE��EQ�lO?��2����g���m�����)�����>�H&N�(o����Y���}j���r�!����\:v�X�7�'@a�y1g� �	��=��c��X����04&@>IX�.1 ��88
��	�O0��@B�-		��9s����	��U���t�g������������������b�:l���/J�~�
��"--��Q�F�v����w���q���m�H��������?o������O?�)�����\��[�����{��q����g�;���e����_��_Y�9@ ��U�d8� �@xa�aP) �� �L���Ob��@
�')"S@ &����a �2rK������M}��������R�����@?�w������?�uUWp��������L�"��z�}��s��%��G��s����8@�-[�u^W�z��G��
f]��@?�w�9������.�k�N�.]�u�a���J`tP��|�L}��@mvaU����M�<YF������Z�����������������@^
���p@��	����0"� @nIC�� ��#��4�O�E��@<�'���@ m���E4]���}�<���2v��J�RXU���:�sB?���_�����I�{��R�fM��_��W��������S|o��������=��E>Z,�Y5}�t��}z��/��o�Qt�+{�������.�����
�'�x�9������***�~���]w�s]����������>�g��nvaU�����X�"��N��t����G6��J]�������������	PX�O�� ��P���!!�rK
�����$&�`�@�|�� 2b"@>�I ) ��,�)�����e����r�J�YUUXU��������c�U�d�"t��'����0en�V��.]�8����>����s�;��+���N8!���w�5���O>i������K�jE}��{���}#F��*��/h���!C�CY�p�4i��9�����O�U�t�n[��Uw�}���?�z��W^i}^������5�8����o��~������.M�6u���m��YV�W��N����v��@UVU%�u@��"@IDATb$�{���PH��%E�d*D,@>�8t�@��')
&SA b�I��{R*@nIi`<-]�i��qr����E���R�/����7�xC�;�<��u�Q�q��m��&&L�N�g�)s;���Eit;��Sd��i���}���G�k;mooZ�e����c���[����s�t����������V���7k�,>|����}>�g��U�����v���W��cf�~����u���)&��t%�|�~z��K/u.����R�^=���(�rS� �1��=��aX$\����2|b$@>�Q0
	 �$<��	�Ob��@��-)
f�S�;w��[������/=z�(8�-[��~���t��
X��ECz�w��r�i����[$_aU��;x�y���d���V����[EJ������Z���L���K/I��-�C-�\-j���r��M+��������u^�'N������v�Y�|[����������s��b���?�p���[�nN�0��5����!v���C9�1�4iR���s�?;������gK�v�r�q�@��UY � o^��F�@R�-I��F ~�����!�T�IR#�����$~1aD�A����(F?-������h������x�	6l�s��w������:�,������=��{���/�*4�RXU����<�h�������jJ�����������Vdo����4o��>�����Vx���5�|t_?o��Mgu)]��O�>z�u���e�-]�T��w�����U�yF�d���/|��.���r�/n����������]����o�:�;ZX�Ef��+p5j��>�'�V��p@�x
����0*�.@nIz?� ��'����O�A��@|�'��#A M��4E3��h1H���g�z�����h���o�i�>���EW���?�\�<�L�O�i�����j]�ZXU���8��������[��Xl��!o���O������m���R�F
����|�?��c9�����3f��
t�9;�������'�����?���p�	���Ss_�u$�U��-e~�b�5���|���"���]���n�8����D��[���2����%@a� �$H����"� rK���P���$�bx$H�|��`1Tb.@>�y�	 �����<���C���:5+����mZH�x�b��~�l��i�7j���������}>���������R������U�V��Pw�}�����M��u�(]�J�~���-��b�?���2|�pk_?K���o[�����4-P�7���~N��>��O>�>-����4m��9���]E������:+�Y���
��9����r���-��S�� ��%�(�2���#�$K��d���"�rKR"�8���$�1b�$E�|��H1N�/@>��!I ����,��_}���x���xa���3�U�����>���S?�7v�X�P��w������R�J�����O�y)J���K������EXZ�����5z�hk?��~�	�?V�X!��z�se�����IQ����;����i��N����^���w�e�}?�UZ���
��sg�g���S���w�yY�C���][�t�b�s~���C���V�s��MVQ������-���;�� �O���|2�G@ ����0(	��[RD��@L�'1	�@ ���) �IL�0H��%���XX���_J��-P]�IWd����F?h:O?�7b���&y�K-�*�~���M�:�)rk��,�<��uY�&M�d��7�)�:���e�����|�Y�F:u��\^�`��n�Zr��r�J�S����m's���o�]�����,�\���p�m��Ym��O?�4�5�M��Z0��c��k~���C�
���l�b�T�z�j���3F.��B��
	PXUH�k ��L����� �rKJ�4���$A`�D�|��@2
b @>�A) �T�TR?e������8h���r��g[����_~YZ�h���-���aC�����z��p��o�����;�~����g����\u�U������������t���{��;����@���^��������MN:�$������M�6�+e�8�+[��[�i��s��G�g�}f]���[���/vk�u.�0)���r�/���v9���O��7{�/m���M�<Y�U��r��,@aUe� � [^�c�@��-��G V��X��� �h�I�������$V�`0�F��L(M-�Z�d�����A}��W���v�G�i���v�������kU��Z��~-�Z�xq�������E?q��)���t���>t�9p�@�3g�u��.����[���H�RX�j������O��{�����E8{���s����b���W�^n����)���u�\}���������~Q��r����_n��&�t������;���>�>}�H���N9�y��Gd��w�l�>(�*��E@�%�{���hH��%-�dD/@>�>����O�I��@����c�H��%���ZX���?-�:t������Z�X�E4��;-��y-���<����9S���������o�m5i����t���Y�e������~�O���Q��}]�������u���e����xeov��<�������n
6t��v2���8L������O��Z��n^>CX��e�;��Mrj1���������2�<@QU.�U
PXU%
@��/���#A M��4E�� ��$ZzG M��4E�� ��$ZzG ���`"kja�jj��~NN7-�y��7�����7/�s+W��:u�X�����0*�������*�3z���e�]�o���]���]���3�<�~&��>��C�e�]��J?_|�E����s~���R�F
Y�~��o��9��s���1��y�f9�����O?��t���9��UaU9����Y��5K
�u���V^EEE�y�"@a�%� � ^�c��@��-)(�A B�I��t�@��')(�A B�I��t�@��-������?�X�>�hVC�9���^�����{�u�x��Z��Y^���d����c�o��������g���/[�����d]�d��t�]w�O~��i�guE,]+�6e�������+h�~�NW�����mZ���^���k��Ad��UaU9����bO�0An�����������-e��V���) �Q��u��t
�[�Wf�@��(���t
�O�Wf�@��(�����[�����U*���;-�2d��n�����*�s�;^�2���/���ge���7��I�&Y���m+�>�l����u����~�#������M�6����.�z�sm�����S'�8wGW��U�t����3=�\K?�7b�=��=��S��k��%�V�*�R����
���r�/���}����;�����<���y��Y�8@���U~�h� �@���G�O��X�����25B ��Nw�X�|���25B ��Nw"@n	&��V����O���G��|�L�/^,��W��_jaT������s��K.q./_�\��g�8sg���r�u�9���v��s�����^���>`��soN������[��}��g��Q�F�����o�Y~�a�P���+����X�.]D��e����\��c������Z5M��N��(U���R�@�xa��0H��bP��*�O��$@>1(�L���'�x �x���m�&Gq�l�����{��a�
V~�K-�*��|��-0���+������\�u��Q6n�h];��������jw�����1c�so���4h��9�w{���U�^�ui���}Y�|�M9��s�c-�����MW��<��$�g�l������)���f��iuy���[��U����;�8�n��M��];�@��3{�li���s�J���=�E@ d^�C�; �h��@����C�'��i"��$d�@�@rK0A7��JU3W�T^�p�4i�$����R�J��� o��&�������k������/���.��Z��>��K/U*�������c���H�f�d����~�9���)su�=z����������K�n�d����y�l��'����X?����^��~���d��u�]�6�vr���-����OE?�����v�������s~q���A�d��Y��m�����H�����(�����N!��(����!� {^�c"�@"�-��F ���X��A!�H�I"������$�aaP$^��Lr���<���>2����YQ��������Z�=�w�o��*�<�u����R�/4�-[��q�����mu��B�����������Yi��������do�b�y��'�7�7�xC���g_���]l���s���]�I�w��]�:�(y������U����>(��s��z��UX��3�F��_�b��mZ(W�6}�t���S��s�!Vh�� �^��Gf�@��-q��A �������#7�I�"�xH��$��c��Y����$l]�v�Z5�����^�z5�R�J���A����Y�vm�������'KE�{�������?~|�����U�rox���1���=����d�����G]X��+��������p�Ha�
�*	PXU�� ��W������!�drK�������$^�`4$Y�|���1v�%@>�W<
i ��%�����)S��np����Y��s�gg��E��wo��
68�^vJ��K��?����3+5����Z�>}<}nOW�5j��_�����3�^{m�O	Vj���5k���a�DWx��Z�l)�����;�^����o��Z)K��;��*�+w�r�/����S�M���OK���������83K@������@2
b&@n�Y@	 �$8x��	�Ob��@��'	CG �����%V@W�Z�n����5jX��k������n�����[�b�l��I5j$M�4�
�~�Bia�����>�X���U�^����xC�������1%W�������#�(���Ag�� @n	�.0D�|bH��&!�OB@� �h��@������@�(����@�+��_1�#��r�%� ����%� ����%� ����%� ��_r�_1�#� �\
��;F� `�/��)#��%d�@���!�f�� @>	�.0D�|bH��&!�[B�;@"��*B|�F@��/�~�h�^�-^�h�^�'^�h�^�'^�h�^�'^�h�~�-~�h� �@r(�Jn�9 �����t��@����C�'��i"��$d�@���!�f��,@n	��@�P�����@�����=x �xQ�
x �xQ�
x �xQ�
x �xQ�
� ���= ����*��c� �
��n`��2!�[B@� �h��@����C�'��i"��%dp�C@ B
�"��k@�
���W�� �E���E�6 �E�|�E�6 �E�|�E�6 �E�|�E�6 �W���W�� �$W�������#�(���Ag�� @n	�.0D�|bH��&!�OB@� �h��@������@�(����@�+��_1�#��r�%� ����%� ����%� ����%� ��_r�_1�#� �\
��;F� `�/��)#��%d�@���!�f�� @>	�.0D�|bH��&!�[B�;@"��*B|�F@��/�~�h�^�-^�h�^�'^�h�^�'^�h�^�'^�h�~�-~�h� �@r(�Jn�9 �����t��@����C�'��i"��$d�@���!�f��,@n	��@�P�����@�����=x �xQ�
x �xQ�
x �xQ�
x �xQ�
� ���= ����*��c� �
��n`��2!�[B@� �h��@����C�'��i"��%dp�C@ B
�"��k@�
���W�� �E���E�6 �E�|�E�6 �E�|�E�6 �E�|�E�6 �W���W�� �$W�������#�(���Ag�� @n	�.0D�|bH��&!�OB@� �h��@������@�(����@�+��_1�#��r�%� ����%� ����%� ����%� ��_r�_1�#� �\
��;F� `�/��)#��%d�@���!�f�� @>	�.0D�|bH��&!�[B�;@"��*B|�F@��/�~�h�^�-^�h�^�'^�h�^�'^�h�^�'^�h�~�-~�h� �@r(�Jn�9 �����t��@����C�'��i"��$d�@���!�f��,@n	��@�P�����@�����=x �xQ�
x �xQ�
x �xQ�
x �xQ�
� ���= ����*��c� �
��n`��2!�[B@� �h��@����C�'��i"��%dp�C@ B
�"��k@�
���W�� �E���E�6 �E�|�E�6 �E�|�E�6 �E�|�E�6 �W���W�� �$W�������#�(���Ag�� @n	�.0D�|bH��&!�OB@� �h��@������@�(����@�+��_1�#��r�%� ����%� ����%� ����%� ��_r�_1�#� �\
��;F� `�/��)#��%d�@���!�f�� @>	�.0D�|bH��&!�[B�;@"��*B|�F@��/�~�h�^�-^�h�^�'^�h�^�'^�h�^�'^�h�~�-~�h� �@r(�Jn�9 �����t��@����C�'��i"��$d�@���!�f��,@n	��@�P�����@�����=x �xQ�
x �xQ�
x �xQ�
x �xQ�
� ���= ����*��c� �
��n`��2!�[B@� �h��@����C�'��i"��%dp�C@ B
�"��k@�
���W�� �E���E�6 �E�|�E�6 �E�|�E�6 �E�|�E�6 �W���W�� �$W�������#�(���Ag�� @n	�.0D�|bH��&!�OB@� �h��@������@�(����@�+��_1�#��r�%� ����%� ����%� ����%� ��_r�_1�#� �\
��;F� `�/��)#��%d�@���!�f�� @>	�.0D�|bH��&!�[B�;@"��*B|�F@��/�~�h�^�-^�h�^�'^�h�^�'^�h�^�'^�h�~�-~�h� �@r(�Jn�9 �����t��@����C�'��i"��$d�@���!�f��,@n	��@�P�����@�����=x �xQ�
x �xQ�
x �xQ�
x �xQ�
� ���= ����*��c� �
��n`��2!�[B@� �h��@����C�'��i"��%dp�C@ B
�"��k@�
���W�� �E���E�6 �E�|�E�6 �E�|�E�6 �E�|�E�6 �W���W�� �$W�������#�(���Ag�� @n	�.0D�|bH��&!�OB@� �h��@������@�(����@�+��_1�#��r�%� ����%� ����%� ����%� ��_r�_1�#PX`��er�H���7�* ��U��% ��
��^��!�@!rK!�!����-�"�@!�I!�!����-�"��Wr�W)�!PX`���2v�X�6m���1C��o_��"�PX:]"� P�/���q ���� ����- ���� ����-x �x���Z�j%[�n�QXU��� ��U���3 ��xa�M�
 �A����& �I�|���F �A�|��& �I�|���F �S������h���s��*�����U1�A@��/��t���
�[���>� ���p��
�O���>� ���p�� ��C�g  Ba� �
��%�� ��xa�W� ���30S�|bf��5A�O�P���)@>13�����-A�|S(�2%���dPX���1z@�xa7,�L���-!A�
�O2SD $�IH�t������@��zJ���s���������N��c������������������������cG9����c��5jXz��o�i���_�"�7o�V�Z��G-^x������6m�d�����MV�^-����5����K?�p9��������������1<��s�n�:�g���r��h�B��kg����o��F�L�":�[n���t���K��-������R�n]���h�W_}U�/_.�����_��
��#��6m��i��&�k����>P�G}Tv��!{���\t�E�h�"�9s�,^�X7n,'�|�\p�y�a?�� `��U���#�$X����#crK����H��$ac��X�|��04&@>IX�.	 �$$P	��4i����o�m��\��9����[7������+��Rf���y���gN�>]�6m���w�m�f�z�����?��m+������[Wj��_XJZ�Th�����9�*h�v�|��u�Q�n����[�Rv�O?�T����7o�}��O-�z��������Z�v��[�k��e�i�������+�������yN ���V�f� �0^�0��@B�-		�D ���!"��IB�0H��$Ab�$P������t���U��5��k���!Cd����/lw�)���i�*����9s�T:��D���e��%��Yv����{w�S�>p���^,Cz�
a��![�����DZ��D��U�`K�x�_Fv[��he��2Im#����ik)"��5d��}��s��<����s��~�g���������\��93������)������V�\�]��4V�Y�F7s�����#����(?~�[����U��j��w�e���j&cC"h���`@�xa�<A��@H�-!Ma#`�����!���4q������BH8 @m	&���s�j��A�K�v��?�W�[���6V�'�q����������N�{�99x��Z�U���������-[����ce��}��j�JOO�c���[o�U�����
M��H}�����k�z��W%r����zK|�A���k�Jvv��9���`�
�O~�������_S�\�JU?����i?�yC�2e���A5n����s�9�V�R�#��m��0@
$�7���2Q�P>��R7n����(���?�>!���>��s�[���O*�!��4V��0F@�b^�-N�!bjK��G�X&@=�,!��@��'!N�#`������P[�I������O����k�.��4V����4���>5�D�9;���j���3fH�^����=Zf������U�UZZ�>��>|�kr��������7��O���E5[������}�����_�C��PT��k����jG5P�[QQ�t���z���'����b��{�����{Ki��6�eff��i�������^�>��.:u���O��*6@ V���X� �X,����!4B,@m	q���'�%�p��$��#t,��X��A�jK0���J���-Z������j�R��S�L�n=z���M���T���������o��+�����S����d�j�RMZ�6b�������
7� ,����se�����U+g�x���-��gk�j���^��g����;�D�>r�>����O�Cj%+�\��6V�����	��������U�S@@ D���(Y��@��-!J�"`����!���(Y������Dx�T��L�h�5j����������������I��^��}����a����L_��Vg��������;/���?.�?��|��'�O���N�9s���:g�����j��S����l;�5V:t��L��T��������6m�O��.�����U�+//O_� P��U��p@�xa�,!���#�G�4�@�zbAG�'�$�i `����$
P[�I*�U"����V����&�]�vy�^|�Ey����]��B�b�
�\�����<yR~����g����x�����[
+�:�y���g�C����Lo����j�-��"-Z��5j���;VYc�ZY+�B��y}��F�����/�=��wYlcU��x�� )@cU�� �X.���	"<B*@m	i��'&����$��#l,��X�BB�jK0I��J��?��]���l��8q�dgg��N}��l�U�3yj�U�V��G����*u~��-����_�{��O��k
$���>��D6JI�.]�S�>�8x�`=���z��/���,��*r5�����@ �h�J��3c@�����:P[,N�!2�I�F�X,@=�89��@��'!K�"jK0���Jd�����S����h�������5T�i��������X�5V��w��V�RMQ�5X���F���G����*���1c�D]_�A���e��)�Ob��-[&�_}Un�� ��4V�p��: �@�xa_���0P[��%bD ��p��(��$Y"F�!@=	G����	P[���U�7V�9R>�����O��&#���f��I�V�$--M^z�%y����k��X������y�f�������>�m�������-[z���w*k�R�n����m���qW������[��\v�e�a�bu#�@Uh����"� `X�v�	��8*@mq4�L��<G�'�&�i!`@�zb�G"���`�LcU��Uj��v����5m�Tf��-�\s�>����#K�,�u��]���y����������_�+��|u�����V�X�c������V5Z�m�V���CcUU��bh��a� �����[�BC ���'���L�zbYB�POB�<BG�2��e	!���H��m��]J5M����m�N��V�����u��W�:z���0�s�N��}���7O�jT�6u�m���O��1Cz�����5V�����M��5l�0x�_�)��}�J��������{��WTC��h�:�� P����� �����tx>n
P[��+�B�����:�D�M���yeV����P���/@m	&�4V�X��;�H^^�N��\_�
�8r��7����'�C���{c�����tQ�LjS�N��)�v��!i���>5k�,���;�8��J���7B�����i�&(6l�+��R�#w


d�����j������1�U�����U�@�' ������<�E�mj���ev$S�z�Lm���������H��$��<�����k��m����/�_�~:y�F����\=�w�M�&���������V�\���F�>�@�����������
1b���6n�(��T-Z��
ZO<������r�9����n�*={��������������������K�������g�|�{�X�i�A�j�XU
4~� ��)^�M��\�����_f�@2�'���Y�-@=q;���d
PO����HjK0�^�u����]����?�m��H���%�n�o����g��m�����S'���[o�]�vy�&N�(���Q�����E}�Om��I>|������:�>�w��w����Z���XJKK����N�:�>�W��J���;�G�Q��������/���5��{���_&M������K��Y�[��
��w���;z�_x�Q�YEn<���j��;��_��u�"O�������n��h��� �@5h��?A@��/���y.nP[��/�C ���dj�,�����_f�@2�'���Y���%ur�L��X���|�r4h�Y��������%K�H����ocW��'��<X�
Y5k��:;c�7n\�15�lSMQj���o�v]����r�=�D���*��TQ���*�q9 �&xa7���pW���nn����$[��!������23�-@=I�8�C 5�-���d��������J?*�yI��wG��V�R��o�)}����c����#�>j>|�<��sQ��_�^����y���/�>�>�W�^=i���<x��$�����;�:u��)������_�<�������:���	�{D�P�����<$6l�>����C=$O?��\s�5�!����cQ�W�Z%����<; �@e4VU��9@,������P[I$�@���I ��8�H�����@8(@mq0�)6��'O����*{���>�w�WH�f��f��P9rD���+�����G�zML�^{�i+T���'N��~���$��_,]t���`�o��?���w}�Z��Q�F��qcQ�+dC���*U�� �@@���mHqjK��`�$P�z�@Ln�@�POR��G ���br+��M� ���X�|��  ��K����M���=�{rA$�]�z�?�PO��� v�I�3H��)@m�3/D� �@4V��=@H���`�-).@mI�L�
PO���Hq�I��`�$P�z�@Ln�Z���)�A@�y��O1DpI�v���\�G��bO.���PO��A�G���=� �.@=	{�;�-v���@B��� T�' �	��,�E ��-)���#�@�I1�).@=I�L�
PO���@@P[4; �8/@c��)f� �.	���R6��P[��� v�I�3H��#@=�'D�@��'a� �#`����� �A�X�*�D@  ^�������%��0}(@=I &�B ��')���#�@�I1�hj��`@�h�r>�L@�%^�]�&sA�j�=� �.@=	{�{�'���H��$�$~������B@ ��P�� �$�{@�������?��@�'	��V���$��0}(@=I &�B-@m�� � ���U���	"��$��K�d.�#@m�'D�@��'a� �#`����\	a���=������;�BT �!������K�Z��F�ApO@B#�{hRE��J���t,VPO�N�!*�I��E�X-@=�:=�@h�-�M�#� Pe��7V�<yRv��-�����u�3�v�Z�2e��_�^8�]��}{����8P���w��r@Wxaw5������<��'.e�� `V�zb���#�����l2�����"A@ h��5V����������������.�W�>m~2x�`y���O;�HKK�%K�H��]�C�E@ %xaO�43I�.@mI:9D�Y����eb$]�z�tr����gS��0*@m1���@H�@R�,X }����X��m��o��:�O=���v<���K��=����@pR�v'���0.@m1�@���3�d"��O �����T2���X��A@ P����5U�]r�%������]��q���u?��s��j����R�_�~�q ��*����e^��������$@=q)������<��'.e�� `����\	 �A�XUVV&��7�D��s��r�}���/�u�C��y�f}�i��2�|Q���e�����]�v�k�}�Yy��7��@\�����27�	P[���d\����Q���9��9{���k��2�|�C��bG�@�d�X���/�G���P�T-^�X:u����;;w���-[�C�����O;���F+u�Z����CR�f���2@@�E^�]�*sB����|�W�'�d�y `^�zb>D��+�W2�<�K��bW>�@� m�j���l��U���O?��W_���;�MX���2g���K���q�$//O���]+��u�cv@pU�vW3��0+@m1���pI�z�R6�f�'f�y:.	PO\�&sA�j�=� @���j�����Q#���C��������[n�E���+}x�����gO=��Y�n��t�M�PAA�2D��A@�U^�]�,�B�����?OG�%��K�d.��������$@=q)��{�-���H@Z ������Z222t����r��7�q����G��/�<$���r�D�����4l��z�|��W��@\�����2/�
P[���t\����M���Y��Y���K����\�G��bO.�@��k�Z�x�dff��KJJ�I�&z��>���{w}H��Y�F�����[W���O���A����0�eC@�)^��J'�A�j�5� B/@=	}
��PO�I� z�I�S��R��beZ
@�@k��={�<���:���2Q�P���c�J��S�����K/���;VQQ!��{�>��3�������@\�����2/�
P[���t\����M���Y��Y���K����\�G��bO.�@��k����O�w��:���R�����8r�C��y�f}h��u��K=������%==]VMY�G��cv@pU�vW3��0+@m1���pI�z�R6�f�'f�y:.	PO\�&sA�j�=� @������X�v���_�~�t��Y�������e�]�����w��TQ'���7O��������KNN��� �������Y���Yj�Y���K����\0+@=1���pI�z�R6��P[��� � �@`�U{���Z�j��12n����3k�,0`�>������8�Nnn�L�:U�Z�v�t��M��A@�U^�]�,�B�����?OG�%��K�d.��������$@=q)��{�-���H@Z ��*x���e�������D}�~��zN'N�����NJJJ����_y�=�������I�&Q��;&�k��:�@xaw1��	���9 \����I���y����PO\�$�@�.j�]� @���J�P�����o����U��-���\�
&����>������'^x�>�����w�-6l��z�!�?��� �������]���9j�9{���k��2�|0'@=1g��pM�z�ZF�vP[��Q � ��@������+��?��3j.��*�����W^��c�F]�;w���zMX��[�s��m���t��� �����;�b&��j�v����'����ZIDAT��0"@=1��CpR�z�dZ���-�S@ �$M ��*5�E������	�m�V6m�$�j���V}p���Q����Q�d��	��� �8/���)f���a��8)@=q2�L
#�#�<'�'N��I!`\��b<� �@�o�R3Y�b����7�*U�|FF�|�����aC5�����������ANN�L�:Uj��y�9 � ��/��f�y!`V��b���#�����l2�
PO���t\����M���=�{rA$ �-���*5�#G����3���?�_~�E***�Y�f���%���gl������|�������!C�C�E@ exaO�T3Q�*@mI*7C�i����er$U�z�Tn��������0&@m1F��@H�@���;3����k���t���[���.���� ����=��#x���X�C t�������V�zbmj��	POB�2F ��P�� @H����U	�%7A@�^�I$�@�2j�e	!B,@=	q���'�%�p��$��#t,��X�BC@ ��������@IDAT���VS����z���D�(�R$�������DT��B���rJLNQ�E��������!D��r(iJ���($���;{�����y�����������g���^{��u�W�~]��kl�e6@��������q�k�����"@n)D�{@ (@>	j����O
��^
�O��#�@��-���@�/P��U��-�w�yG��rKi����7�T�@����^�0�(@nIbT�� �����"�D�I���(���<�<���[�a�� ���%+��;w��p�
2}�t���o~�/{�7��C��y��'�k�N9� ��*����!�@��-���'\ ���`�O�|R<KzB�u�������r�WzE@ �%)�z��������v������w�}���{W{- � ��/�.F�9#`_��b��' �����H3O��O��\ ��i��@i�-���i ��S�za������3��z�����w�}W��~����B@\����H3OJ+@n)�7OC ���$G��!PZ�Ii�yI �$9��
��	�[�g��@(������~�I�6m*�V�J�W���e�=���?�\���S���'�('NL��@���_� ��P�O� ��wf��
��
U�D�M���qg�� ���@�#`��j�����k��������sg�������#��n0m���g�I���S�8@@�u^�]�0��[���+.
�O\�:sF�����+�"������3g��[��@�"`�����2a�3�;��3�g���?�#�<b�}�����#�4�� � �+V�@;��q�W\ ��u�����WzE�E���Qg�� ��7�	���a��^�Z***�a��9w\���>������6��o��������o��
�s���q��Y�F6�|s�Q�F������}��^��[n)5k�L��c������v���[o��M�c�����/gL6,�6m�����J���
s� �PX�o���h��^pQ�|�b��3v�'v\��'.F�9#`_��b��'O��.���'{�X�"�����j���3��{��X�v�w��(����~����u��������2v�X�/k-]��kk���t�����W�^Yl�_�^&N�(S�L�w�y���^�z��S'i���h?Z�����4����'�����+�n�J(`��j����U�Vy�:t��5���+<�8����@@�W^��`�'@n)�%=!�����_�G�x���Y���O\�0��[���k��x�	9���M��Vz�yp�����N �f��p��o�b$]�����g���VU�ii�U�:u2^��GI�>}d����i���<�����i�����X�l�v�a�x���0%������*]V��o��f}��W�e�]V���;�,�/������������ �8&��cg��H��R"h�����(���D�<�'�)"PrK�yd��jS�~�R�������Sr�����V�~��������l>����0a�r�!�a���s�J��=S�5j$�n����7/�]W���_��}n0��/�����:J�/_�r�m���K]��&M�x+����~S��O����^LaU�d�D 2V��+P�x��2d��*'����<��w�G!Z�� ��
����{ P<rK�,�	��'���?� ����p]�|��/��#`G��b��^�#�a���Pa_����������~f����3��jR��z���[�k{������N2�;������/�n���Gw�@K����P<����>=�n�:����EW���+��RN;�4����z�|�_z����_�s��K.����B/-��n{��������9�������/�(Ya��1cd���Ujh���i��k(����� ��
���h��6��-�����'��"`Y�|b��pH�|�P��*% ���G�$�`����/\�0���
�
�?��!�?���W��t�R�l�������hSp[�h�|������n���{�c�I�\�l���~)���.��"y����v]mj��9R�V-s�'�|"���7���
K)��Oh���A��C�={�4k��wV�Z%������UA-����U��
#C@��/��Hh@�"�[��H �	�O�! �@��'��� ��@���Y����4z�h������&SaU��W����o���s�1��G�����8�s������c�&�L�#��}������5t�A2i���i����k���9���z��-�/]�����\����G�����sN�*V~S�N��C������_
���#]
��F� �@%^�+���E ��.@� ��C@�b	�O�%I? @>�7�6�-6T��s����l�2o�M�6��={V��f��O�������qc�0�hH���#�z�8��E2Vz�y@�;w�u��9���Q�F^�R�5B��'-d��^xAZ�j�jAXp�(���q��_Z���'�(�?��������3����~�0��a}���.����,^������^�[�n�L�U��"-@aU����@H��=��#(���8���"�~ P,�I�$��'�@������{}j�M7�d&��9Z��i{��e��!��;��#[l��w,����]~��r��G��/��Rh�MaU>��Ae���^��SZ ��Ee������o
����]�v5���5KZ�li��w���������-Zx>z��
�e�]��R������~�9�;wnJ!�[o�%[m��9�;���������+?��������:
�;DZ���H���!� �*�{�G PrKq�(��7����}R<KzB�u�������r�W�z�����c��f���^�z���-�z��7��#�<Rt�$[�z�t��]�;�<�B���k{��-�*�~������,_���\��
T���������3�4�.]�T���c��w2]����J�v����'O}f�-��G}T������=�X�o��d����aC��w�}GaU��C�d�UZ���j�e�^|�E����;�C=T����.q�ii@s�C;Z�������V5kUn�
��*`����?����(�R9�M�;�r�J���B��5e�������Nj���W����7!�@bxaOL(�� �D*�X�Ob>�@��'�
�A ���X���#Yr���|>�%;���o�l#���<���6-��3g�w�A$�&M
�Q�[m��G������-���O��g�w��w6�C�|����o�L�z��z��F�[������������~:t�����?�����0M��M?3��~��h}��������ys�����U����n9��#*]��@aU���C�d�U694A����6����H+a���z���7�A��������l����[&����ty��m��&�Z1��/��RF�%7�xc�)����>[.��SA]�����K�>� ��/���i#`Y��b��pH�|�P��*��'�����'��"PBr���h)?������������VM�2�[e��_����Sy��Yu�"�
VTT��3�-�0���3
l�m�1��)J:��S�������",-��MW�9r�������?���9�sf�����Y3Q�=z��Lq0�������*}��	����*��F"/����y��I�6m"�mk�����O>Y^�����HV�z�~_V��Z���P�jd�m���a�&�|�M������R�f�mV�u��W%'@�)^��
7�E�d���Q� /@>I|�� % ����!�x�I�C�(������U����V�ZP]�IWd
n���~2��t�~�o��a�K2�ZU��aK/.�8q�|��a��6�o��b Z5~�x�����M��{�!��O7���,Y�D:u�dN��9SZ�n-��\�pa�_�
��u�u�I�~�L��v�����O�^{���r�@ "VE$�C�����/^\�]�K���j��J�����gL��������W�K��
<X��L�c\�h����>�����v[Y�fM�v]f�����l�������]�/�FpV�vgC���*@n��K�8%@>q*�L����t��S����d(������U*����O��V�_+��)���_��v��?��oz���+��>�d����������l�����_�"�~�9�9�����7�9����r��-��b���j/�����������hN?��s��.��k�������l���U�7��/_|��w�_���P��(��N��DS�ja�~&N���MW`�n��l?&�������_������s��J�Z������r���L7��C����am��V�&1b�h�T�
��o����r��'�\��3�������hQ�~�����������7�xC�9����K/���l�O��k���> �;��!@n��J��)@>q3���������7����-@n�#�ja���s�g�����^�w��>\���^�X��6m�9W�N��Q���[s���r8����>���}X?��o:�n�����O?�ty��'�s�w��3��~"1��*]�#�:��)@{�^����y��b�-�q�Np�*G����.Ki��*��b#`��*6
1���+E���M�1�����zk�)�oz�K����^y��r�UW��^���!C�����"v���?����qs���_�T?����]���������K�"�����>����7)���_��9@~����� ��P�O� ��wf��
��
U�D�M���qg�� ��v��*�S�`��w\�~��o��k�z��!]�$�-���L�e{��)SD?QX���Q#�?�w�6�lc.7n\Ja�9�����'�m����� ���]�"!�i��JU���7�[����/����v��,Z���Is��C6�a��Ua��!}
����#|��G��c�5�u�*-���}��7�	^��v���Y�������x�������{O***�5���/�XF�e��3�;���9����~������=�����{w�P&M�$��������_��9@~����� ��P�O� ��wf��
��
U�D�M���qg�� ��v��J5��H?'����j��)3f�H�������yf�?�Fe�*��s-�
~FO�8���2
�k�?t�������g����?�5j����>����������N�:�|�r����i���D��i����d��w7�y�����9��CaU&�������%K�xU�J�=�}�4�T��V��g�MW}���������?���}���d�.q��~��sZ4�����i|�������e����r]�1�2�.�8}�ts>}G��u�-��n:�������?o�"�A^���#�@��-��� ��@�b	�O�%I? @>�7�6�-6TE\.����O�]�vv�������N��������z����lv�-���W��?��3U�we����7�1<����_��EUZ\U�\���n�?������Q��te�L��	���.�NW�J�<���u���g��+�
~���W^��I��V����@��V�A��s����g��o��o�)�����/E���a�H/���a�Y�j���r�9�����}���8lg���2�PZ���h������^{���g��
h�����o�����6��;t�?��� �@P���� P,rK�$��'�@�X��bI��O�
 ��
r�
U��T4��;-�4h��n��`g�*�����l�����?�Wp�����?�k����R�:�_�l�����7��=�����.�����e��v3�x�����9N����t�+��KI��8�*�.p2l�0m�~�aS�P�^=Y�hQ���^;��*��F"/@aU�CT��_�^6�tS�az!��c�����`Q��������2��z���6�h��dO9�s�.U��5';Z,��������,���o�_@ (�{P�}(���X����~ P,�I�$��'�@�����*�U��9��x�9�����Yg��a��~}��Q�(�0���3�S�r���,�-��2���'�%�\b��g�***�q�.]d�������e���\pG�U�����Y�������������;��--���W��Mt��lVe��5DO��������n��fS9�����=�<O����\l���|��g�\�����2����nW_}�������t�������e,�M�{������o�_@ (�{P�}(���X����~ P,�I�$��'�@�����*�U�H��{�)k����u%$��!)�Sd�B�
�?�8���>�l���K+]��p��r�J�\��}E��wp��������7Mo�����N������U�^}�Ui������7����>�k��M�o�:U�]?����������+u���}���U������X��[��o�1�I_AJW��j`����)��6�G*X!�����;���6t�P���M_����_�����=[t%-����&'�|�w�Z�@��/�A
�@�X��bI��O�
 �@��'��� ��@��V�jp�����7�f�����/�0������W^)��s����+�]	����k�t�I�J]~�/� �Z�����|�������-Z����e������O
W������7�����~�I�u�&.4���������B"�{�Y��Q�F2w�\�]�����
�������*��)�����+�������������3g�c��n�����?�����\������������{��������%��.�\�Q�����zK��kg���k��t�?�� ��=��.M��R4J:B�y���?(���h�t����� `E��b�U�8�0;���������m�w�w�����������W(l�v����B��j�k���}��������\u�*�����M3+U�9-����ku��v�w�u�]g�u��c�9F��~{o1]p����~v�e��~����j������������x������;��S�:�(��j��*+&.B rVE.$����~+�z��R����F�?��Ipk����+Z~���?��a�����3�8��z���e�}����?�xy������7��L;�����������x�K[��Z�@  �{�](���h�t����� P4�I�(���'��@����
+��W�k��)�&�v�m��w��|
-�*����_C0`�,]���K��{��{o�E<t�)]d��1U��'�W�J���g������~�_u:��s���<���JN"Y
�"������������t����;������JV�Z��g�b��H\����^�������_�~2i�$��l
�tU��v���s�
7�E]�d�@  �{�](���h�t����� P4�I�(���'��@����
+��W`��	r�e���\��u�q.;��n���cnY�b���f����y�.����2eJ��uu)=�pd��=]�j���|��J}�g�.���J��t�/
K�,�����7��~��K�.���=����SV��"���#�v� P
���n����-��;L�����YW�
���U�r�<���a��������{�i�������������oZ)\�fM�0���o�-m��5����.S��Z!���+W�~O�
@@@@@@��@�v��uN�8$��-Y��~r�N�:����7o.�l�I�
��A]����>�m��F�5k&�7��-�����+jm���^?�_�Z�r��@ �%+��u�]�}��V��[�M�6��w;�*��������9TUT��������c����+���f��+J
6������?�n���c-���+����7��C�����s�����;�;v�?����Uy�q � � � � � ���U9�q9 �1(Ya�M�y��I�6ml>"6}?�����G���j���O?��T��=�g�}�_��E����+��������7�l����
6��uYF-z��`�����w�������'�xB�8�����|�|�RX��� � � � � � ��	PX��W#� 7
���*����;��3S��o�N�>]v�a�����~����I������e{��%�=�X�=���d����~�w���3�a;c���s�9������w_����; �@@@W%�7^�}	�"�@���B�|��/�_(T�|R� �#��/@>�%��� �S��@���U��O�����tE����sg�2e�l�������F���/���������N�8l�e���7e�� �f�2���=[����v���J�������g�u��y�����u�d��6��]�� ��xa`��E ����p^�|��O�&@>)%!������X �Xa�S@")P��*�d�g�aA?[W�V-+}���[n�E
�2��O>Yt�:u���Wu�������DW��~2m+V��m����6l�\�������J)�:���d��	�|�N�P�m������_�m �@0/�b�(���X����~ P,�I�$��'�@�����*}"� M��V�3F�����������?�S-p�����F�)��|���R�n]sY�
T��wn���g���i��G������C�3f�����?��aCs�I��E]$����Z�����/��@�����*}"������3kl�Ol��'n
�O��;�F�����0�#� 
����G���?��V�`�s��i[�[�~�d��I��L�V-\�P��w_���o�ku��e��IEE��Ww����SN9E���n�Y��i�����Z�v�*o���i��k�v@��
���Ol�[l��'n
�O��;�F�����*}"������3kl�[l�? ����*:��y$w�q��{��)�iQU�����N;�4�]���������w�����w�)4�Ps����:�U�5����O?]wS����NZ�j%��i�O���n����j�*o��`QU��}���6��;������ ��/��/�_(��������������(���������������%@n�%K� �DO�����$��_��&euC�����K�b�-R�^z������������t�*]I*�i���O?-�l�I���������c�[�n�v�Zy��W�&�o���E����n��v�����y�P^�� ��
r�
U�D�M���qg�� ��P�O� ��wf��mr�ma�G@ :VE'9�D?���M���	�8��j���2z�h:th�-)m{�����5K6�|�����g�}V������U�5z�\����h�Um��W��@�-^���7�E�T��RI��/@>I~��!� ��J�� �|�I�c�(����<@��PXU���:e��P���V�^��(�������?_���J���+��R�<�L��o~S�|X���K��3��3f�����:K.��ri��I���F��K�?� ��/�n��Y#`[��b[��pG�|�N��)��'���w�'����"PJrK)�y ��������x�~�OW�Z�h�����-[����6�,��o��A����gEE��h�Bv�i'i��!��%�M ��/�.E��"P:rK��yI �$=����	�OJg��H��$�f~�G��Rw�� �@9�V�}������z�:���k����#�D@ 1��'&�L�H	�["�@��'��G R��H��� k�I�������%��a` �]�jaU�GK� �8.���?���%r�%X�E�A���Ag�X �X��[ �8t��@	�-%@� �DD�����a � ��/��(q
�*@n�U��@ ��$�� ���$W1�G�L��L2�#�@!��B��@�x	PX�x1Z@�xaw����$@n�K�8(@>q0�LK�K�t�������(����<@��PX�@0@���=%�A�\�-��q=d �d��r ��*�� �I�|�I�v(D��R��"� /
��/F� ��/����>��-�`��'�)#`I�|b	�npP�|�`��2% ���G � 
�"�� �@6��g��5 ���%W1�G�L��L2�#�@���\��2	�O2�����[
��^@�%@aU���h@�����G����,�"������3e,	�O,��-
�O:SF��� �@""@aUD�0@�F��l��r ��*�� �I�|�I�v�U�|���#�@&�I&�@�rK!z�� �@�(��W�- �����;�`�X �X��[ �8t���%��%X�E�A���Ag��@��Rd� �@D(��H  ������� �@���\��2	�O2����
�Or�z�$@>�$C;"@n)D�{@���U���Ep\�v�LK�K�t��������$@>�K�8(@>q0�L��[J��#@���U	�@@ ^��Q��U�����#�@&�I&�@ W�I�b\���'�dhG�B�-��q/ ����*^�b� ��������#`I��b	�npP�|�`��2��'�`��'�)#PrK	�y ���*"�` �d#�{6J\��
�[r�z�$@>�$C;�*@>�U��@ ��$�� P���=�E@ ^V�+^�@�q^��0},	�[,��-
�O:SF����,�"������3eJ @n)2�@@ "VE$@�lxa�F�k@ WrK�b\���'�dhG�\�'��q=d �d��
 ���� ��K���x���"�8.���?���%r�%X�E�A���Ag�X �X��[ �8t��@	�-%@� �DD�����a � ��/��(q
�*@n�U��@ ��$�� ���$W1�G�L��L2�#�@!��B��@�x	PX�x1Z@�xaw����$@n�K�8(@>q0�LK�K�t�������(����<@��PX�@0@���=%�A�\�-��q=d �d��r ��*�� �I�|�I�v(D��R��"� /
��/F� ��/����>��-�`��'�)#`I�|b	�npP�|�`��2% ���G � 
�"�� �@6��g��5 ���%W1�G�L��L2�#�@���\��2	�O2�����[
��^@�%@aU���h@�����G����,�"������3e,	�O,��-
�O:SF��� �@""@aUD�0@�F��l��r ��*�� �I�|�I�v�U�|���#�@&�I&�@�rK!z�� �@�(��W�- �����;�`�X �X��[ �8t���%��%X�E�A���Ag��@��Rd� �@D(��H  ������� �@���\��2	�O2����
�Or�z�$@>�$C;"@n)D�{@���U���Ep\�v�LK�K�t��������$@>�K�8(@>q0�L��[J��#@���U	�@@ ^��Q��U�����#�@&�I&�@ W�I�b\���'�dhG�B�-��qo�6l� �W����
i��a^����������7�<���	���Uq�cGpN�v�B��(���$�<'�'N��I"P�II�yN�O�3�D��������.���<y����+�������\�����%Kd����}�����v�M��w_9��3�A�Y��E �@�(��s�; ��s��;r&�@I�-%a�!8!@>q"�L���OJ��CpB�|�D��$% �����)��O����n����j��Er����y��}a;Zdu�
7H��=�N��$F������� �� ��Qf��^��Rzs��@R�'I�,�B�������D�*@>Ijd�� �����g'0s�L���_���V�Y�F>�`Y�re�}{���l��f��{����kS�=��Cr���q�$I���$E�� �$^�����	"PrKY�y(� �$2�L
���O���CH��$�aeR�]��R�0�*6l� w�y��5��U�V�q�2m�4s_���e��aR�~}����~�x@.��bsM�F����^�������@ IV%)��@ ���'>�L���[���CH��$�aeR�E�|Rv�@"�'�+�B�������dX�`�<X.\zEU�U���DW���N8�����;u�T9���L�m��&�{�6�� �I��*I�d. ����=�!f��E��Rv�@"�'�+�B�,�����P)@>IdX�e ��= M�����G�����v&�����g�}Vt�*{��w�a���a��]�t���{��#FT��@ 	V%!��@�^��	5E�����r�0-@>Itx�% �����!�h�I����(���l��z����e��e���6m*={��r~k���>��_�+D5n��;���/�M�6�)�o�>}��C-z���
����j��zm�f�d����m���
������������]����G��#�8%��S�f��L��R2j�@��'�1D�d���Q� /@>I|�� e ���=q3f��t�Mf^|����W���<���2d����;��[l���4i"�_~�}�����/�q�g������/���������KEE���TUmGq���7���O���5���9��V�������#��(���Qg�� ��7�	�"@>q%������<W�'�D�y"PZrKi�����>�H:v�h��������9N��B�7�|�k>��#����2��^�Z�w�.��w��JV�k����RXe:�bg��%��S's��7�(���1; �@�(�JR4� �@�xaO|�� e �����"�H�I"���(���,�<�D
�OV&�@��-vB�a�|;��k��-�fE����6�6-��3g��v�A��I�R����/�:���uz}u����~�����3����y�y���1; �@�(�JR4� �@�xaO|�� e �����"�H�I"���(���,�<�D
�OV&�@��-vB��k'�����y�n��D��US�L�V������oK����C����n3��k����oP?�W�f��JW������� #G�4�� �I��*ie> ����=��er�M��R6z�@��'�)B�l�����`'@>I\H�� ��	���U����V�Z����Z���o�ug����'u�*��s��
�����bV=��Cr����6i�D^z�%�[��icH��UI�(�AH�/��/�C�l�����`'@>I\H�e ����#�8�I�B������N\,�R��C����������2}�����zK�<�H����/�N;�d���)fa�}��W��������o���!p���U�!@pI�v���\(���t�<	���O�a��@��'���I$]�|��3?�#@n���ja���s�g��UW��q��������{�����m+��M3���)Fa��?��}���;�Hy�< �:uJi�H��UI�*sBH�/��
-C�������p%@>IT8�e �����#�(�I���d����N(\-�J���~jo����?� �����k����G����u
-�Z�~�����{,���I�8 ��@ �V%5��@ ���'2�L
���[��@b�'�	%A������� ��IbB�D����N8\-�R�q���5�\��6i�D�x�
�Y����1CN>�d�]�g�����As\�N!�Uk���SO=Uf��m��Q#y��e�]w5m� �I��*�f~ ����=Q�d2DF���P0b/@>�}�� �D&���ObB&�@$�-v��ra���~*���3�S�N����wr����O<�����Gn��VsM6;�V�����?����t�R��V�Z�}��'�l��icpA��*��@#�{bB�D���%R�`0�Z�|��1x"%@>�T8� ��:|��
�[�����*������9�����A�I���
�#�<";v4����SX��'��QG%+W�4�8��e���9��enf���U1 �GpK�v���l(���T�<���O�cf�@��'���9$_�|��3C�!@n���za�SO=%��v����>|��u�Y�x��9R�V���s-�Z�v�z���|�r����?^���z���0m� �.	PX�R��+ �@�xa�}�� �D2,
�X
�Ob6�@$�'��B ���X��A#yr���^X�~�z�s�=E��t�W���2d���U���V]s�52n�8��SN9E���*�Q��icpM��*�"�|@b-�{�������%��a`�N�|��1`"+@>�lh� ��.d�X�[�����*U�"����������Y�f���k���j��Er���.5j$���lV��"������� �$
��M�� �x^�b&�@Y�-ea��$R�|���2)�"@>);E ���D��I!Pvr���Y0�N�y�Z��R��^�w�w����+��uK��C�2y����lr)��O���5+��S�k���L�6-��@ )V%%��@�	^��3�D�������@+@>Ilh�% ����"�X�IbC��(������x��]e���f���v��������ma�?� ;��C.]�\KaU
 �0
�P�� �l^��_f�@��-����$O�|���2#�%@>)�<�E y�����!rK���1L�0A.��23���K��u�q.;����������b�
��Y�d�t��)���~�������gN�p1 
��)�� ��/���3@�������7����!@>��J��)@>q3�������� �@t(��N,	 ��
��^- �@��<��B�'�,4"�@��<��B�'�,4"�@����@�	PX�`1T@xa�7�6�-6T�7�'n��Y#`C�|bC�>pS�|�f��5��-���@��PX�X0@����Z".@�<�-y�q�
�OBYhD�<�'y�q�
�OBYhD��-r; �1��*F�b� ����ol�[l��'n
�O��;�F�����*}"������3kl�[l�? ����*:�`$ �T+�{�D\�y�[�@��a�@IDAT �����y�O�@� �����
�[
�v@b$@aU���P@����� ��P�O� ��wf��
��
U�D�M���qg�� ���@�#@aUtb�H@�V��j��� ����- *@>	e�� ����- *@>	e�
 ��� ��H�����"� �;��!@n��J��)@>q3���������7����-@n�-L� �DG������� � P�/��q�!@n��[@ T�|�B#�!@>��[@ T�|�B#(@n)��@���U1
CE@�v~ `C��bC�>pS�|�f��56�'6T�7�'n��Y#`[��b[��@���U��#A@�Z^��%��C���� �@��$��F�C�|�� �@��$��F(P��R  �#� #
�b,�� �/��@�����*}"������3kl�Ol��'n
�O��;�F�����0�#� 
��F� �@���WK� ���%4nA�P�I(� ���$4nA�P�I(� P���@@nG@ FV�(X@^��
 ��
r�
U�D�M���qg�� ��P�O� ��wf��mr�ma�G@ :VE'�@�jxa���@ rKh�����P@ �Ih�����P@�@rK���� �@�(��Q�* ����@�������7����!@>��J��)@>q3�������� �@t(��N,	 ��
��^- �@��<��B�'�,4"�@��<��B�'�,4"�@����@�	PX�`1T@xa�7�6�-6T�7�'n��Y#`C�|bC�>pS�|�f��5��-���@��PX�X0@����Z".@�<�-y�q�
�OBYhD�<�'y�q�
�OBYhD��-r; �1��*F�b� ����ol�[l��'n
�O��;�F�����*}"������3kl�[l�? ����*:�`$ �T+�{�D\�y�[�@� �����y�O�@� �����
�[
�v@b$@aU���P@����� ��P�O� ��wf��
��
U�D�M���qg�� ���@�#@aUtb�H@�V��j��� ����- *@>	e�� ����- *@>	e�
 ��� ��H�����"� �;��!@n��J��)@>q3���������7����-@n�-L� �DG������� � P�/��q�!@n��[@ T�|�B#�!@>��[@ T�|�B#(@n)��@���U1
CE@�v~ `C��bC�>pS�|�f��56�'6T�7�'n��Y#`[��b[��@���U��#A@�Z^��%��C���� �@��$��F�C�|�� �@��$��F(P��R  �#� #
�b,�� �/��@�����*}"������3kl�Ol��'n
�O��;�F�����0�#� 
��F� �@���WK� ���%4nA�P�I(� ���$4nA�P�I(� P���@@nG@ FV�(X@^��
 ��
r�
U�D�M���qg�� ��P�O� ��wf��mr�ma�G@ :VE'�@�jxa���@ rKh�����P@ �Ih�����P@�@rK���� �@�(��Q�* ����@�������7����!@>��J��)@>q3�������� �@t(��N,	 ��
��^- �@��<��B�'�,4"�@��<��B�'�,4"�@����@�	PX�`1T@xa�7�6�-6T�7�'n��Y#`C�|bC�>pS�|�f��5��-���@��PX�X0@����Z".@�<�-y�q�
�OBYhD�<�'y�q�
�OBYhD��-r; �1��*F�b� ����ol�[l��'n
�O��;�F�����*}"������3kl�[l�? ����*:�`$ �T+�{�D\�y�[�@� �����y�O�@� �����
�[
�v@b$@aU���P@����� ��P�O� ��wf��
��
U�D�M���qg�� ���@�#@aUtb�H@�V��j��� ����- *@>	e�� ����- *@>	e�
 ��� ��H�����"� �;��!@n��J��)@>q3���������7����-@n�-L� �DG������� � P�/��q�!@n��[@ T�|�B#�!@>��[@ T�|�B#(@n)��K*�a�Y�z�TTTH��
s~v��������Z6�l3o�������o��V4hl�y����f��|���F�9��~����_x�[n����Y3���s~Q��Bj����[����A�a���*r!a@ �d��=�
g@ rK�v�����T�@ �I�v�����T�@�8���8�Ki.���<y���+V���B����Z�3c����{d���v�Z��<P��g9����u���u������e���2s�LY�t����Y3�����W�^��*�Y�~�L�8Q�L�"�����O�z��S�N��}{�~�(*���G�A�y�>�����^{��MA�k~Q��'�|"������~[�,Yb~O-Z��]w�U���?�P�7�'@a�{1g� �1��=��c�DX����04b&@>�Y�. �D88
��	�Ob0��@L�-1	��'�xBN?�t#�kaU���g�����d��2k��W��f-F���c��<������*��"--��S�N��>��#�����\�2�5Z����K��M3^vb��er�a��b�rVk~Q��y�r�-2z��0���#�<RF�)��?�����(��$C; ���=�AaH$@���� 2""@>�H 	 �$ �L���O"��@��-	hB���6���/ev�Vz��C�S}g�q�<���)gu��?��|.�?9a�9��C����s����={��5j�H��v[�7o^J����������`��_�}Gu�,_�<�T��m����Jik�����;�����@������u�.�*����{��W�������w��+��W0�/�w�}����U�o�/(��H�	@�'�{�b��H��%	QdDC�|�80
� @>IB�� �D#���	�[��d�g��
r��w��Q�*M,���B����
�����;�����n��V�[��������I'�dVw�O���?_6�tSs��h��K��x���}z~��ur�����z�oW^y��v�i���;d�y������^���UQQ�=G����K�y-��������z������C��RVk~Q������Rt�Eo�z���{�Zt�.�]pu4�]�y���v�$@aU&�@��/�
CB ���) �ID�0H��$Ad
DD�|�@0&@nIX@4�����e�����������C����?{�O�*B�;w������L�m��Er�����n�Mz��m�u'�s�Z���~��\�������������f��9\���O>�������
�R�����A���2{�li���9��Z��[EI���[Xu��7�s�=�uy���z��?�V��E1vW]u��}��f�����4o���;�����/^�5��@W;cC�:
���< ���=B�`($H����`2�,@>)sx<	 �$(�L�2�O��@B�-	
l����6�=Zn���*g�������|h��7�xC�9�sF���{os����ke���^�~&P���[��}Eit;���d��I��f_?���Ms������E[�*_�:��o�����7J�=�'�9���U����N�*C�5+n�����V�J_Z@��u�]W����g����_c��kWSL�+P�JT�6������jN������aCs�aV���� �@Dxa�h`1 ��<��	�O"��@��'1 �G B���� � rK��Y��L�>]�-[���i����g�*G�f��O�������qc�0�hH���#�z�8��E2Vz�y@�;w�u��9���Q�F^�R�5B��'-d��^xAZ�j�jAXp��1c��q��_Z���'�(�?��������3����~�0��a}���.�����+#��=���+~��������U��_p�Q�����]w����?>��bN�wGc,��6m��m�6�2�H��*��@�-�{�������%��c�DO�|��0"�*@>�k�7� �D/&��$�[����A��n��&3-��"�L��>(C�1��y��b�-��`a�~�LW�9������_N)4���*�������b/�)-���2m��S������V�o�f���-[�����q��
Oz�E�������v�e�����u������M?,�{���d���J�6XX��g�O����O���;��JUXU��E-v������D?����C����@v��N���MW��f�m�C�"*@aU(� �DS��h��Q!wrK�#�����$:�`$�]�|�2~�#@>�N,	I �$)�����t���@?���W/s����Ro����|��G���o�W������~"N�j�����������qd�W�_�/_�]��b�
���L�?�����~���K�J�:u��J3]����J�v����'O�
tLC�N���>������)W{����~�����������V�����e�E��������)��^�rs�������n�V\�.��U�@��/�1
CE F����"q�I������$F�b�D\�|�1<b*@n���K���8�^wl���i�<���6-��3g�w�~�l��I�7j����^������7�������B���I����;���n��f���o�%)��z��F�[������������~:t������?�����0M��M?3��S����s��~�������yss�������w�-GqD�e���UXU��E-v���h�7o^J��?Y���r\��*�L@ ^���+^����[�)��@��'��#D .���D�q"}�I�c�����N�������';�����+v�^X5e�o�)x~�����O��5�;�"�
VTT��3�-�0���3
,���l��N=�Ty������K��t�U�F���?��5������/�r�93{�li����{�=L{�8�~�	���[o�>}�O���RX��[����7V�K�������c�I��q��������9����;�����������+W�K_{�5�~���1;d��*�� �DP���!!�rK�����$"�`$@�|�� 2""@>�H 	 ��	���U����V�ZP]�IWd
nZX���?����6lX�����Fz�����&N�h
�����s�9G{�1��@�?��=z�)��c�=d���^{��Y�d�t�����9s��n�Z���p�Bi����.l'�r�u�]'����,�-}�Z8��^{�\�|������T�W��pL�b�/}�Q�]U��5k�x+�-^��o����^N<�Ds�U	PXU��@��/��A !����i �I��H��$!�dD@�|� 0(@n�T�TR?e����-�8�����#�<�;�����/�N;�d���I/�Y�bEU�W:W���:��������-[�S��_���7�a;���<����)�������-��"7�x���j/�����������hN?��s��.���\\qJW��|���ua;m���/���;u�5���'�vYJ[zaR�
��5�(�.8�`��U^�����^����{��R�f��;hB���U�MhA@ ���G64�X�[b>�@��'�
�A ���X���#)�I���`H���N(]-��;w���������K���;�����{E ���m[�6m�9W�N��Q���[s���r8�i:-h�O��jJ��.��u�C��~����Ox��;�83f���Db6�U�-JY�����W�^��Z���[������U:���{�]���Ka���k��/���F��n�	D-K��6m*W^y��\��E1v�����r���K��t��s�=����/e�*(����� �DK��h��� �rKR"�<(����1`$E�|��H2�/@>)I ������U����b���{�?������_D����B�l�l�2����S�L�DaU[�F�d����%�l���t��q)�e�D`G?�����m���2b�o_W�������N����y�DW��7��J�v�a~�h�[�&M�q�Np��i�V�=�oSk5�-��s~�yG!v�I�_-&����w����v�wPT���q�VUK� �DG������ �$rK���\(�����<�$	�O�M��@y�'����$U��b'��V������t���7�x��L��3R>1�p�Bi���w]6��maT����?����g�tU��N;-����]���]�`��~P?�o����Q�?����g��������K�J�:ud�����C���SO��1���W_����nN?��#��cGs�i�\�U��_�bf=u�T9���RN
0�+����Hi��l(��F�k@��/�	�@ a����� PF�I�y4	 �$,�L�2
�O����H���Np].����O�]�vVC~���I�x}���[o��\��N��Q�����g�yF����}���7�1<����_������d]���$�t�M��?���4�3��"����i�0a�\v�e���
Z������tu�L�yi������+��;����������Z�����+�^{mJ�W\�����F�A�����@�r��^��|�)@nIf\�� ��C�g"�L�I2���(����<���[�����*
~�N�
$�[�6����dn�e'����=��B�������,�������k/y��'��S��-[&����M�s�='����w�z�j�m����x@:u�d��wtu+]�J�=z�1�qpU,����a��9t{��������'�-�r�,��rV���5�(������n��?���s�=��{��6�U���\��@�2
��^F|�@��-	.SC������8,@>Ipp�% ����!����N�]/���������>�|�L����#�j��	����B��4�����)��bN/X�@��rKs��8q�\r�%�I?k��[�.]d������z�{3v6l�����_x�#F�������*�����C-���L[p%��>Xt��l�,�*���;�����SVM��7-���=6
���PA�G@������G!�����`3U,�O,�=	�O
6SE����20�#����N�]/�Z�~������v�ZXC��!C�x+X�*_haT��goz���g�-�^zi����8@V�\�������|��)��~��r�������~[7nl������/e�W_}U�7o���7�|S�>�hs��RZ4����T�v]%I?����>o]�+��]Qk��)�#���:o����_����!
������m���@����i��U�V��
���=�E@�������!�����@3MJ @>)2�@���#�f��@�|Rd����;Aw��JU��
�g��-��56e�_haT��W5�+��R�3m�v�W���o�|���t�I�J]~�/�P�X��O>������H�-d������[�6-`
�N��gO7n�9�;?���t��M.\h��������9����=�X�W�j�����;Wj��m��j'�()����?�\�3���<���_�c�s��_�bw�Yg���S����^���Hs"dg����M6�$�M�*@a���!� y^�#"�@,�-��F ���H��A!K�I,������$�aaP�^��b'�C�������u�������}z/�G���}�]���4����C�P(���~��Q��_�8��Y#����Y�K����
U_}������R���"+-�	��������MW,:��cd����7�xCf����=��]l���i�w�Wu��=z��{�-|��w��������;��������bVe�����5�(�N��P.����N�:�{;�9"@a�#�f� ����=qdDM����0�+@>�o�9Q �D-"���
�O�;F�@��-Q�N����k��U�n��6���w^+�0������~(��K�Vy�~z��{�������t5&�$��1cB��W�
���g�y�Sz{��%�\"��sNzs���.���k~Q�]zQ]�9IaU
M�(��DB ����=��ad�Y����1v�%@>�V<
q ��9z��h	�O�F�@R�-I�d4�1a���������su��5������k��Os��+�~6;����3��:�)S�T�\W��s�|V�����F�!��/���~����/��)�J���d�2d��
O�[�V�D?[��K��S����)+ei�����^�}���X��B���m���y=��#��c����F7(�r#��@ !��'$�L��	�["��@��'1CG b����� c�I�������%��ah��U��-[�}r�N�:�g��7o.�l�I�s�O�������g��6�l#��5������Bia������[z�h�j���9<��5�(�.K.C +
��b�"@�!�{4��(H��%ie>�O�|R>{��@��'I�(�A�|�����d�,@nIrt� ��V�zp� �@�xa�tx� ��6t��	�O"�@l�'�
G r�����!�rK"��$@�J������@�h���80
�&@nIZD�� ����'#�4�I�"�|(���|�<�$�[�]�� �@��U�!� i^�#�@l�-�
G r�����![�IlC�����$r!a@$B����02	@���*+&.B@ ��G#���	�[�Q��@��'����$M�|���2�'@>)�=OF ���$G��!� �*@aU�G �DZ��H���![rKlC�����$r!a@�V�|��1p"'@>�\H� �$"�L@��(�����@��/����@ i���E�� P>�I��y2I �$-����	�O�g��H��%��en ��
PX��� ����=��ap�V����1p"'@>�\H� ��6t��	�O"�@"�-�#�@@ +
��b�"@�!�{4��(H��%ie>�O�|R>{��@��'I�(�A�|�����d�,@nIrt� ��V�zp� �@�xa�tx� ��6t��	�O"�@l�'�
G r�����!�rK"��$@�J������@�h���80
�&@nIZD�� ����'#�4�I�"�|(���|�<�$�[�]�� �@��U�!� i^�#�@l�-�
G r�����![�IlC�����$r!a@$B����02	@���*+&.B@ ��G#���	�[�Q��@��'����$M�|���2�'@>)�=OF ���$G��!� �*@aU�G �DZ�����}@KR���� ���$Q2HrA�H$(iDP$J%#���d� ��u$9�rA2�(�H@�(Y$������Z�g������]����+���������_�r�#PX����3p��Or"PX����3p��Or"P
��a4	 �������4"@������8��	�-e�����|28{w&P6��l5��Og���, ��9��F�V5z�#@���������
�-�
�����|�����
�'�
�����|����R�-��I @���V�������|��(�M@n)[D���������3��	�'e�����|28{w&Pf����57 �(���������\���V@n)l��@�������V@>)l��@��������B@n)EM��%���-&� @�@><��#FA�lrK�"j>' ����	�M@>)[D���������3�2�-e��� @��F�U�� @�@�<��:<G��rKaCg�r' ��.$D���IaCg�r' ��.$D�rK)�h @�-�Um1iD��!��=q0
e�[�Q�!08�dp��L�l�I�"j>' ����	�Y@n)st��4
(�j��G�r-��=��18��[
:'�;�$w!1 ��O
:'�;�$w!1 ��[JF� @�m	(�j�I# �����Q(���R�����	�'��wge�O�Q�!08�dp��L��rK��kn @�Q@aU��= �k����(���R��8��	�'��(��|R��8��	�'��(���R�0�hK@aU[L @��|x`�G��@����E�|N@>��;(��|R�����	�'��wge�[�]s#@��
�=� @��\x`�ux�@a������	�N@>�]H�@a������	�N@>�]H�@)��R��$ @�@[
��b���C�{>�`�& ��-��C`p������@����E�|N@>��;(���R���hPX��a��Z�{��cp
+ �6tN w�I�Bb@
+ �6tN w�I�Bb@J! ��"�&A��PX��F @ ��� P6��l5��Og���& ��-��C`p������@���2G�� @�@����F{ @ ��s�#PX����3p��Or"PX����3p��Or"P
��a4	 �������4"@������8��	�-e�����|28{w&P6��l5��Og���, ��9��F�V5z�#@���������
�-�
�����|�����
�'�
�����|����R�-��I @���V�������|��(�M@n)[D���������3��	�'e�����|28{w&Pf����57 �(���������\���V@n)l��@�������V@>)l��@��������B@n)EM��%���-&� @�@><��#FA�lrK�"j>' ����	�M@>)[D���������3�2�-e��� @��F�U�� @�@�<��:<G��rKaCg�r' ��.$D���IaCg�r' ��.$D�rK)�h @�-�Um1iD��!��=q0
e�[�Q�!08�dp��L�l�I�"j>' ����	�Y@n)st��4
(�j��G�r-��=��18��[
:'�;�$w!1 ��O
:'�;�$w!1 ��[JF� @�m	(�j�I# �����Q(���R�����	�'��wge�O�Q�!08�dp��L��rK��kn @�Q@aU��= �k����(���R��8��	�'��(��|R��8��	�'��(���R�0�hK@aU[L @��|x`�G��@����E�|N@>��;(��|R�����	�'��wge�[�]s#@��
�=� @��\x`�ux�@a������	�N@>�]H�@a������	�N@>�]H�@)��R��$r$p�=���Z(�;6G�2��U~	 @�@�,C%P ��@�2T9�Or �#P ��@�2T9�Or �#PP����3��	��������&L'Nk��F��h@PX�7@�
$���@�2T�[
,C%�s�$�2<�O
,C%�s�$�2<�[
8����RK-&O���KaU��c@�G@a��(����P	H@n)P��@������H@>)P��@������T@n)h�;w.�`:&�U)�
r&��*g1 �J�{+��V@n�V�u�O���'@�[��[9� 0T@>*b��^�-�P��V� P�UE��1 @���x`�S @ �%U}���|R���5�,��,T�I���I5�n���[��UVU%��I��
��?�'@���	x`�X�M�@���>A�
�
�'�)���|�'h�!P��A6E�[�^�[N�:5���?o��v�y���N;��x��p���&����f�q���Zk��W_=���*a��fJ4�5w�qG�����}x����RK-V^y���/|!����m�����'�>��c��G	?�p2����}a������Z�t�M��1cZ��p�W�'�x"�����.�lXb�%��q����w���+�{��!�����JOm��6a�%�L�?����9��3=7b�o�1�{����H�7����VX!,��2a�
7��>{�5��h���(����a�Yf	;��c���[��_n�����| ���:a�m���Z_�	���������	 @���<C'�c�%��14�O
0�%�c�$��14�O
0�%P�� �*�0c��"�,�����cR�3i���X��Fm�b���;�+_�J�����O������??|��L��6�|����������{��V
'�tRXz���i���3)P��I�>;��C8���������^��GZ]�����X���o�[8�����^[;4�w,�:�������'c����/��m���9���C��/����C���T[@aU��o� P0���(���R�@&��'�!(��|R�@&��'�!(���R���t�C�]t����������|��p��W�l��z��	&L�&]~�������c��w����Uk3e����
R�|�
XW]uU��������>-��+T}�3�	�'On�V��c�I�V����*��U�����b1��V�k�&@�9������
�-
�a���|�����
�'
�a���|�����-�����^�(����b,f�y��������Z�;��s��'>����a���/��b�t�_����>������;|����>�lz>_-��r�~|������������b1Q|��k���Q}�;�	��f�z��a���N���o��~�t���J^?8��s'�$����������'s�V�z����W����>��rJ�����������>���������Z���.���v�-,��B��W_
����P���oO��]4���v<�B0}��7�	s�1G��T�!@��P�UCE� @��x`�qp�@�����	�L@>�Y@�@�����	�L@>�Y@�@I��l9������x-����u��oHaU����W�����
��ETC_gW��Y���g�6�l��n8����O~��d?�.0^�>������+���9�����n�p��'�N���;.�b���r�-�i�����m<��sa��W���X,v�QG��q#P�>'Nk��Fm7���������Z�U;��3������'�|29�����3�8�v:4+�:��C��)�FS�N
�������CV
�O�r,��=��14�[
<C'�3�$g1�O
<C'�3�$g1%�[�	�����u���&�G�+]�*E����U��~6�`�t���U,��}��O��sO���o}+|��_���������8+i�>p@�����UW]5���h:����g���
q�q���}�c�.���
�V\q�t���7�8���?l��~'��o��wO����}�ghaU\�*����_��
�G@a��(����P	H@n)P��@������H@>)P��@������T@n�&p
�B8����>���x�UVI_�_�w���7m��p�
���~��!����Wg�������������T����o�<0\|�����6�(���?N�����7n\��f�m���H�
�^z���5}�>bQU,���������cQW���C�b�G���A��V
�Z�8G�r&��=g1%�[JH� ��$A0%�OJH� ��$A0%�[�	����9��W�j��EB�<�Hr��_�z�{���5KV����+�s�
��/z��w��O?������<���I���������{������>�b�f�5�\3�U�>������Z*L7�t��%�ZV����-��Y���uZ����Gv�i�������s��q��
��5l @���x`�y��@A�����	�P@>�aP�@A�����	�P@>�aP�@	��l���*���??����M����;������7m_�7RaU|M^\����n����C������;l���a���C����U|��n��f�y��xm��Pj���a�5���
���{��W���F���G�\6���~5�N�����	(��^���
,�����3t9�[rC#P0��`3\9�OrC#P0��`3\�[�	���.�����j�5�Ea��o��k�F*�Z~���������X�V���_�U�bQT���_,�Zh������*�z���oh�������)���\2������uXi��:�N[*,�����7u(�������	A@n)B���@1��b��(	A@>)B���@1��b��(	M@n�&b
��/�:����y�����J�Xd_���K�e�]6�>����C
��?���������)S�]w�~�������.�w�}�S��2�,��K�{�UaU\u+��U�\q�MW����=�s������a�UCu� �����N��%@���>��=��
�-%
�i��|2t�$PR����5-�O���*  �dd�U�V���V\q�4x�.�h8��s�b�-����s�=�e�]�Zo����	�O��~���5�\N8��P[�*^����o���V�U�&M
l�A�6Z���
�~'
�:�����
����'@�9�������-�����|�����'�����|������-�RaU��UCW��ESq��f��S�&�X����Yg�t���_=)�z�����>.���W�j��m�_����g�6�l�t�UaU�O\A����m}��_��N�_E���~6�4�La�E	����B,��U�p9@�@
�:���Z���#���) ��3�fE`�� ���@9��r���B@>��{(����M�Ve[X���0q�i������{�t�~��O�����Ck��f��������-��r!2�O,v�EO�>/��RX~��\��@IDAT��S?��O��n���V��j�P�[l�E���;j���[o
/�p�_�q�i��c�9&=��Zk�d_aU�b��.Vu�� 0(���w_��[�_�#�O�����E���I��kv�) ��S��TG@n�&�
��-����~>�����;����>�����6�8��p��G�v��Xu�UW��b!�y�������?mX�*�x����&N�������C}1�RK-�h������#��O?}���{�
o�q����K�3�<3,������q����=��#=_s�[�KaUJc��.Vu�� 0(���w_��[�_�#�O�����E���I��kv�) ��S��TG@n�&����l:���#v:=�6�]^��e��(�������K�j��V�m�^w�u�#�<�;������o�p����/~1����O�jR���J�wm��x>��o��6
��qe�o�1<����T�g��f��~�M7]r|��Ia�
6hh_�>�\s���>�������>��
�|���q������c��~����*�$�9��W���l���a�e�M�p�
���n�?.����_��_�1�U)�
�PX��K @���<�J�}	�[@n)w|��@?��~j��r�'�������|�Om�"P��:��z��,��s���+�n��6��bq�W����W^v�ea��q��CW�JO4��k��B\!k��1
g�>����o��X��/�EQq�?��4��8��s���n�pJaU�:PX�!�� @`������+ ��7�fF���I����@y�������[@>��������R�8�c����N��>��jh�Rz��q���RT��|������l�=����s�������?���~
Mn���p����}�����������9��a�W/��b��Y_��������������J+�v�}������M�}���&}����q���������*p�
W�F�l�M�{���b�-V;�~��_�j8~��W���[.=o��V��q��L�{�b8J" ��$��A �I�`J" ��$��A �I�`J( ��0�������{������5ym�,�Xb���������g�	�>�lx����"��_|����{��)���K^I����	��3O�������O<�D��=�yOXp��B-��
} �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����(�������	 @�L��Ms!��%?�0E�O�A�'��$?�0E�O�A�'�O�%�q1* �����,T�I�2����n	T\@n����	�P@>�!��T\@>����	�P@>�!��H����F�L�^y��0f��0�\su<��^��
����Yf�%o�������������c���oO�:5����a�9��M7]��� ����/&���g�0���mb���	(��Y@�����J�9��[��sC���"�	�V@>�V�u�O���'@�rK/��/��}�ka������~���o;��G�a,4���k�~��p������''�|����G��o�^z���I���o��~z�������?�[d�E�k�����V[�U����o��������/��w_��l���^{�������O,�������<�����������J+��M7�!@��
����V @`��G+�z�	�-�T#@���5� �L@>i����'����������������_��c�t8�V������l���a�]v	7�x�0-���X����k�ls�5���w��e�X��f�i�a��������>���m]t�p�E�X`�6�N<������dZ<�����c�'��*11" 0���ai� @`r�(�\J�@��|��a��Q�'��s)
�I�z$ ��R7�
�U�v�a��{tRX5��n�d'��o�=�W^ye�����SO=��.�v��s�
���'j�
�w�yg�|����;6,��B��{�i8W����~��n����w�+�>��O�'�|����q��]w��pl���OV���>�p|���g�����Na�pZ������|��h @�@K�-y�$@�K��K8� 0��|2
�t) �t	�2��O�!q���-=@�EfS�L	g�yf8�����G;�U��~��s �fo�}�I����N9��0���&�n������;��;�W�����}�{�k�F,���R��P��~���x���^�vX��^�>Gyd�m��j���.���t��CMV�3fLr��������|,��_#}����������+��I�&�o�U���� @���
v�����#H� �?z% ��JR?�'~d! �d���^�{��a����&Mj��H�U����M�|��w����<9��:������	������C���_?=t�������:��C_W�V_}��6�~x`�����q���n�-�0�i�g�y&��������P�U;���w��n�����"�,���o������O�X�����&��@�V�;>FG�<�7p�!@�GrK� uC���*�z&��OzF�#��O*�@ �%V��B ��t��'����-{��j����i����~{�r�-�3�8�#�H�_����~7�~�������X�T��f�m�M7��Zo����	�O���|+��b�����O,����W�������.p���a��6K_1���{7�bU���K/
tP��V�x����z
��+��*��12 0���iH @�rKuA�@" ��! �+��W��!@@>� @ �%���y�UW�'�x"��,6�|�����j����}��M��;o�;�h(?~|�p�
����^�$WX5�����q�Yg��|�;I��c�&EJ�M7]��c�S,d�}~����%�\2��a��E�t�Ia�m��5���_�B��o~���g�qF���\���%�S?�X����O�t�u�
�<�Hz|���O��6�h��������\(��uxF?������������3O���?H���O=�T����<b��X������?���a��������/���b'}W��Nl�%@�|��S3"��%Q0��O�G� ��$Q0��O�G� �7�%o)�xb��'��>����s��8 =}�}�����;��/����{�a��-��"����o(4j������A����j+O���Z�p���Sg�}vZh_y�����x��a��K��n�v�i��c�I/����O���
\f�e�����_�m������;��������
��7_z>n�V��3~�+_	���NX|���v
�R
r-��*������g�t������~��mw���&t��_Ns��q��?��������{�|�	'�0�TRM��/9Y&q�g��|�U����cTO�{�bn��! ��C�=TC@>�F���@?��~(��j�'���Y�����o�r�/.B���k������j������P��;�H�S�
q�����W^	�l�I��6�j���na�h������5�X#Y�#���b���o�K�k������K_�Rz���?f�i�t��p��{�����+��'N��=��m��_�"|�ckh���|&����a�]v	s�5Wr��7�PX��d�@1V#N]�2V��/��IaU���U�#}����y���7�>��O����-������e�YZ��Z-1�$@�R�+n�%�7��o�nD���I�Cl��& ������^@>)}�M��@��l�_��w�t�e�3��b��}�����.��T��v[�x���&Lhza|�P}�Ol���i��j�~F{�p�.��R��P�����6�l3\��x\�#�F?;��s8�������;/t�A�v|�����d{����i�@������S�����Yg���p�M7�~��������h�s�9a�M7�l�}�U��8@�
�
��y���7,{{h��*V�6���C�U�C?q����p��}����G?��i��Zh��<��*�����~��s���J���_S	��������	d* �d��s��O*n�%���|�)��	TJ@>�T�M�@���l�_\m��~+����u���������/NV��
�V�S��}�W�w�q�n, ���1c��N�=����^?��\p��T;EI_����W^�\�;c�O\�+.?���K4�����O|������"�,�{��%��!����s8��S�����O7�VX���A�PX��u6��^��d������v
�^x��i��z�G�X<5�s��_=\r�%�_�BC�W_}u�p�
��vbQUmY�x,V��?�,�@�����~{�r�-C�w�s������>����]��&o���x`��O�L��LXuJ���I%�n�2�O2a�)�J
�'��I�\@n�����U���ZXr�%S��S\���3u�����q������;������=����^�l`C��~������_�Y��X���_����~,�:�������G��j���W]uUzM��G}4�������X��K/��s��I����
�l���u�1��v��I��CC��@��J+56�G�@�V�.$�������k�4a�^�)�:��#�������N8!y�mz�?CW���������.P]t�E�{}k������u�]7]k��g�?�|�y��kM�����0y;���v?��[�P�'�j
�'���Y�B@>�BU��) �T3�fM k�%�*VE��*��J��iVt�]w��o���
7��Xb��n���CO?�t��CO���������_a��KO���?o�q��l��_�j��/~���-�w����;����X�����6���{�����<=}�u��e�Y&�r�-
+N����{�R��W\1�����n\0d��v���[a��4N�����\����M�2%�|����Ciy�H�U��X|�l��|���<0�2��~�%'���k?��5�!V�J���Y����|�&�lR�M�!������q�j�5L��-������,��,T�I���I5�n���O�P�'�j
�'���Y�Z@n�F���Uw�yg�|��S����wa��O�?�����8�7n\�����s#m��0���c��m���r8qa����F�����'�m��6��6��c�=���_���v�m�I'��l��"�����z�au�������j�����w_�{����f�+V�ql�����5SX��a�@aV&T�����n��7��� �a�����=����������|&���`������X4+��������;�������Gq�gL/�[-���|�����0�%V�>U��6o����^�a��^	�-��������Oz%�����[�P
���UC_���������/A~����U�&O����W�m��vm�����:l���/�8yE�p���c��
���&.�`���3�h(,KO�m����7������8��d;�vU���Z�P����{�	q����V@�?��O��X�6������6���NqX�CaU3I��_@aU�c4�����+�j�5�\3������_nx'�H�U��~z����}n��������v�~�7�|i!T������]��X�N�X9\����������s�=7=�+<�,�$�U�/E�A��:�u6	�����3J���|R��=�OzF�#��O*�@ �%��VE�X\_'?��'�;���O�����W�M�4)�1�I�v�������j��N��_���{��vn��
6� ���O}�Y|=`|M`���SO������;��5�\��G�>�mK3�4Sx��'�k�Q;�����8�'�;�r�-������|�������'�O�U��KG��V-���I�U\�p�fH*~��F*����&LH�]_�����O�a��w�}7�c+sw�u�����?��k�����w�}�&�j��G�j��6 P'����&=�[zF�#��O*�@�g�I�(uD���I�d" �d�Z�����{.����)���^VYe�P�
�����SN9%m��F��Q�����W_}u�7!��?��������>�p�
�mcQU�""��!�W�:��'�>���&-��F1.�W�����	�~���'�+am����u�y���w\|�C����k'V�$|(����b���hce����b�S�\�}���4Ra�������w�y���?_�j��}��'|���O��?�q��9���B|�o���#�4�:�v��;V3��(�}�~�}�U��f�����5l �+��W��!@@>� @�W�I�$�C��|�7@�@rK��}`M��uw��*.F���K�N�vWEJ/��F��Q���o����������o���>;9
���]�a��'���_�������2�,�����+���pz.��i���N��n����*W���f��c����b�?��������.�(}S�l��z��t��������V:��������f�#���*�u���&����KL��9��c���������������'�tP8���s���?������7�����_&�'?�I��e��k��<��
 �������>	TS@>�f���@�I��$PM���q7kY�-�����!��V6�w��\��fx������K���j�����X���^Igq���nK�Z�I��-���������jx�Q�7�y���i�����
�_�7f���m\<$.�?���{8��#�s�S�LIV{�����]l_���D�s�9�n,��\�}�W[��Cc;�U�(iC 
����������^8�����z�����������������\a�������'�������m�u�]
�\�~���0T��:�H<��6�����CL]���|R������|�CL]���|R����H@n����Uo��f����'ON��JH��8 Y��S��F�����;����_�r8��C�i����Z��g�M�m��6�{��^C��v��H�s��w��v������g
�P�t�M���`���;�[l�E���b���O\���x����72
m_�?t�q���b��PX����jt�V�1�����gr����X=�'.����{��n�����j�%��m�]����sS�NM���x���r�-���+^��P�����"� @�@���:��L@n���T^@>��O��	�'=�����'��	 �����	k�zaUT�_5�^9��g�E�?���h�F{}�Ay���?�A�����f�m�>���w�q�d��������a�%���&��<�L�oc�}]t�0q�������v(y�`��T�o�y8��3��q��w�	m�Q�4iRz<�6�c�X�W���g>j�^�;6�y��a�gL���PX�J�9�PX����zd�V�7�|��^H����UqE��?p��rKX}���>�{�'L�������|��=��|8��+�_
��F��Z�v��� @� @� @�
��W^��V��#���6i�Y��������U�qb��R�S?�5�X#)�?���h�F{}�q�������h�*Wl�W�z����e�]����������n�.O;��p�1����j_[n�e��>n���p���6���,��b�����U����6�,|�#	?�p�0Im�x��3������f[�Um1iD w
�r��
h4�U���'�5�\3�`���|�+i������p����;�s�=7=�|��~�t��F\�q��q����:+-��Z)B��*W� @� @� @�d'��*;�����4��t��������+��F������?�)���.���o�4�z��?�q3fL�v����+�N:�����]���\������1
=>t��_�z�{���n����%��r+��*����:-�Zj��B\�0~�\s���?�a�A��>����_������'���*^�>���z�y��k�M�����S������n���ZM��<���M(� @� @� @��PX5
<�6�W|��H����u�Y��N6������^���O���l���v�_��{��O�<�<�m��vm�n/�Lu�G�'�|r���k�9��i^%8M�x��G��
VC?�U���������S#���_�jX)+q-��r#^��PX5X�L��iaU\j���!�{���q|���_������{����\s����?r��1�]�����K�[l��������nZ��R�������{�S
�R@n%��	H������OF	�rR�$��A�@��b�����SO<�D����f�)y��?�������c����|0<���a��,�H�w�y;�'B������<������a�:��W@aUqc7��;-��a���	�~�~���(l��V����e�k~���4,�+�W_}��m���O?�a�����j���4�Z�|#@��v���[�P�'�j
�'���Y�B@>�BU��) �T3�fM k�%ka� @���(��O,z>�N��;��d���@b��K,Q�m���b����]k����7��������W
������������{��W8��3�s���Z�e�Y�����"� @�@���:��L@n���T^@>��O��	�'=�����'��	 �����	�N	 @�@.V�2,�T��UW^ye�d�M����v�i�t�F|�B-�>������������a���N�w�q��	��S_�5n��P��U����sTW�>/z`ufN��rK�E�G���Iuco�z- ��ZT�+ �T7�fN K�%K]} @��|	(��W<z:�N�^��0����c�Uz�?�|��T��e�]6�l��n�����k��6=��K/����+���������>�:��C�G��j����6��v���[�P�'�j
�'���Y�B@>�BU��) �T3�fM k�%ka� @���(��O,z>�N��v�a�0a��t,��Z5i����j�����I��r�O<���^7�����Kzl�]w
��sN�~���cq���G�`�
�w��o�*����b� @��<��) �������>	TS@>�f���@�I��$PM���q7kY�-Y���G@aU~b���tSX�����[�a,g�yf�}���b�;��3���ziQUl|�Yg�=��������o�%�\2<��S���J�����}or��^HV��/��f�m�E]�^S��Z�y�&@�@M�{M�7��[z��/��O��'�K�����"Pm����7{Y	�-Y����O@aU�b��uSXo~����c�9�a��>{RLW��+I�b���W^�����N���M6�$��ml��Fa������n�J���w���^x�������W��oD�~d! �d��O��O�w�&���|���>	TS@>�f���@�rK���'@��PX��X�|$�VM�:5�x�����qL+��B�����s����5�\�����U�b�����m��Z�,�#@�Z��o�%�/��_��C���I�cl��% ��K�}�_@>)���� ��A��'���������C_�w�%��-����{_w�u��_�jx����&@y���K_�R�y���9�����?��s�p���6;��k�p�a���������������'@����w�&��������	TG@>�N���@��I���'P��:�6S��[���^ @`�
��_������{�����
s�=wXl�����2�,]���)!�R0�9f�������%�X"�5�\��J�ETI�{��m��' ������]@>){���@����Y����'e������2ww%@��PX5u�$@�]
x`��e��[Z�8I�@�IX� �R@>i��$�'`iJ�@�rK�T @���(�*|M��$���J�6W��[�g�N�. ��=��G��I����@����G��F@n��� @��A(���{ @��.<�w	�2Z
�--y�$@���,M	h) ���q�����4%@�m��m*
	 @�@�V>�&@�U��^�h�+��	�-��v'e�O�a�#�?����D���I�#l~# ���]	 @�� V
B�=	 @�@����s-���<N ���|�����OZ�8I�@�IX� �����6�� @��
�
B @��*	x`�R���@����Y����'e������|�?kw"Pv���6?��[��� @`
���� @�K�]�����rKK'	�@@>�KSZ
�'-y�$@���,M	h[@ni�JC Px�U��	 @�@�<�W)��J�rK����@����G���O@>���;(��|R�����-�qwW 0�U�PwO ����.�\F�@K��%��t  �t��)-���<N ���|����- ��M�!(������� @�J��ms%�?����D���I�#l~�' ������]@>){����`�����+����A��'�R�{�p.#@�������I:�O:������IK'	�@@>�KS��[����^@aU�Ch P%�U��������?kw"Pv���6?��O�g�N�. ��=��G`0r�`���B@a� ���t)���K8� �R@ni��$�'`iJ�@K��%��t  �t��)m�-mSiH�
/����!4����*E�\	�O@n���;(��|R����	�'��v'e�O�a�#0�e0��J�!��j��I�����%��h) ���q�����4%@���|���I:�O:���������4$@��PXU��TI�{��m��' ������]@>){���@����Y����'e������2ww%@��PX5u�$@�]
x`��e��[Z�8I�@�IX� �R@>i��$�'`iJ�@�rK�T @���(�*|M��$���J�6W��[�g�N�. ��=��G��I����@����G��F@n��� @��A(���{ @��.<�w	�2Z
�--y�$@���,M	h) ���q�����4%@�m��m*
	 @�@�V>�&@�U��^�h�+��	�-��v'e�O�a�#�?����D���I�#l~# ���]	 @�� V
B�=	 @�@����s-���<N ���|�����OZ�8I�@�IX� �����6�� @��
�
B @��*	x`�R���@����Y����'e������|�?kw"Pv���6?��[��� @`
���� @�K�]�����rKK'	�@@>�KSZ
�'-y�$@���,M	h[@ni�JC Px�U��	 @�@�<�W)��J�rK����@����G���O@>���;(��|R�����-�qwW 0�U�PwO ����.�\F�@K��%��t  �t��)-���<N ���|����- ��M�!(������� @�J��ms%�?����D���I�#l~�' ������]@>){����`�����+����A��'�R�{�p.#@�������I:�O:������IK'	�@@>�KS��[����^@aU�Ch P%�U��������?kw"Pv���6?��O�g�N�. ��=��G`0r�`���B@a� ���t)���K8� �R@ni��$�'`iJ�@K��%��t  �t��)m�-mSiH�
/����!4����*E�\	�O@n���;(��|R����	�'��v'e�O�a�#0�e0��J�!��j��I�����%��h) ���q�����4%@���|���I:�O:���������4����)S�+������k��F��[o�7�x#�9��]]�"Y@aU��g� P9���	�����f7!P	��a6I}�O���&*! �T"�&I��rK���p_��������~���zz��w������K.�$<�����'�L��m����?����j��/}�Ka�9�h�?� Pd�UE��� @�@�<�W.�&L�/rK_���@%��J��$	�E@>������|R�0�$���-}'w�..�����{�W�SX��C����?�s�=�u�6b����6�|�f�#@�@iV�&�&B�U��^�(�#���-�7wGe�O�Y�"������H���IY#k^+ ����������;���x���W_}5������g�m�n�����2Kx�������]x��a���j8f�ePXU�h��^�{�Cl�" ���M	�R@>)eXM��@�����)�R
�'��I���2�@�)S��3�<3w�q����j�=��]vYz��;�>��0���'��y��p����C9$m3v������.��}�K�� @�@�V�)��B����^�� ���-awS��OJV�"0�d �nJ���I)�jR. �<0�������o�0i���-ZV���K!�LU�|���O^�W������K�^{��:��S��[o��� @�@�V�)��B����^�� ���-awS��OJV�"0�d �nJ���I)�jR. �<0D����'�xb����?�L�n���k��&��j����?�5�\��i��]w���#�$�w�}�p�GL���A@aU�h P��	�������Wn7#Pj����59}�O���fJ- ��:�&G``r���Ku����*<����X`����������������(�5���&�/��bXq�k�������
7�0�����Ua�QG��B0�]d�E��7�\���w�k�Yg�p�y�5m� �.����4~�)�<+@IDAT���J��d	�M@n��(��|R�� ��	�'}�v#��OJb$0�e ����I'�N>��t^?�p�m�����\pA8������w_�{����������?v�aa�-��������n�^������{��_������1c���"U����n��������o�;��V��#@�@aV6tN�U��^���3��������@U���D�<	d/ �do��" �T%��I��rK��z�?���a�5�L�_���V[��C7b��w�����>�:����+��6�d���>������3������*����G}4����i�N8!|�s�K�m @�L
��Ms!@���x`/}�M��@�����)�R
�'��I��|2v7%PJ���a5)�[�	���?�M�]�:�{a�������b!�m���4^o����	�^���O�5�X#=���#}�*��a����_���7��MXj���}(����2E�\ @���Kb$0�e �nJ���I)�jR" ���M	�R@>)eXM�����lB0��o����+�����=�3����/�8Ye�6����;�;�������SOM_�7v����u}#}�(��+k{����w�e����|'��A���	(�*[D��J-�����59�[F��J' ��.�&D``������@��������B@n�&U,�z�����K.��u�Qa��wN�����S�W�U��'�����N�G��^V]x��a���Oo;�������wa�YgM�� @�@�V�-��C����^�����	�-�wc��OJR"00�d`�nL�t�I�BjBr! �d�*VE��:(�w�y	���/��������+|�S�J��p�
a�%�H�[m����g?��4]���������j� @��
�
B @��*	x`�R���@����Y����'e������|�?kw"Pv���6?��[�q�ja��w�6�|�5��������~x������7.\v�e���6zQX����&�!<���nw������^����Q@aU�jN PZ��
�����2P~7'P*��T�4�O���J% ��*�&C 7rK6��ja��W��W����~	�[o��*V�'ON�O<����v����V�������~��_6�3�p���j8f�ePXU����R�{)�jR. �<@�4�IiBi". �<@�4�IiBi"r% �d��VE�3�8#}��	����n���0����k��6���N����&M
s�1G�?��h
�^}����/~1�|���m��.���������l @��
��a�#@��R	x`/U8M�@n�����@^@>)|M�@n�����@^@>)|M�@.��l�R�����{.����)���^VYe���{��/�<9>~��p�)��m��������k���>���6K.�d���~\p���
TA@aU�l� P��	��������p�B�'������|��p�B�'��������Mh�\XEw�a�p���'���j�}�
K/�t�����<�����~;�V=��3����tx��g�[|��g�}vG�e�� @�@�V<��O����^�x�-�~	�-��v��O�c3$�/��_��C���I�cl�! �d�^���+��"���n	n|�����k�t���n3�0CG��VM�<9l�����'�L���v��c�=6�3&=f�UPXU�h�+^�{�Chr) ��2,E���I!�f�r) ��2,E���I!�f�r/ �d��V����a�V��)~f�m�t��HV��T������>:�q��mv�u���o}+L7�t�1������E�|	 @���>�'�[�%��10��O
2&�[�$��10��O
2&P�%�0U��*��"�s�9g��o�9,��"��@'�U=�PX���.�����Y�*��7�|��6 P&�Ue��� @�@�<��>�&H` r�@���@)��R���D@>��(��|R������-�����������JS�����G���wa��Gh������h��:]c�5�������IaU|���7��n�
���.����cv P�Ue��y @�@%<�W"�&I��rK����@i�������]@>�;�(��|R�����
�-�/��7�`�0i��t���zj�z����N6�-�z�����>��N�nh�����%PXU����[�{��kv% �J�}	�O@>)_L������A��/��	�'���������(�w��{n��7��N��G	��:k����-�����^���O����>�hX{���u������_��W]�1�"���(�2N �o�~d! �d��O��O�w�&���|���>	TS@>�f���@�rK���'@��PX��X	Q���D ������Kh* �4eq��.��.�\B�@S��)���R@n%��	 @�@�V(X�J�<��
 �������>	TS@>�f���@�I��$PM���q7kY�-Y���G@aU~ba$ @`D�#i@�@rKh.!@���|���A��O�@s	M���, 0J�e��.'@�PXU�`*���7@�@rK��$PM���q7kY�'Y���@5��j���	d- �d-� ��U���� @��<��H�]�-]������IS	�B@>��%4�O��8H��(��Q��H@aU��e� @���Y�-Y���@5��j���	d! �d��O��O�w�&��������	 @�@~V�'FB�F��>"�t! �t���
�'MY$@���4� �T@>i�� ��[F	�r P �U
�� @��~d! �d��O��O�w�&���|���>	TS@>�f���@�rK���'@��PX��X	Q���D ������Kh* �4eq��.��.�\B�@S��)���R@n%��	 @�@�V(X�J�<��
 �������>	TS@>�f���@�I��$PM���q7kY�-Y���G@aU~ba$ @`D�#i@�@rKh.!@���|���A��O�@s	M���, 0J�e��.'@�PXU�`*���7@�@rK��$PM���q7kY�'Y���@5��j���	d- �d-� ��U���� @��<��H�]�-]������IS	�B@>��%4�O��8H��(��Q��H@aU��e� @���Y�-Y���@5��j���	d! �d��O��O�w�&��������	 @�@~V�'FB�F��>"�t! �t���
�'MY$@���4� �T@>i�� ��[F	�r P �U
�� @��~d! �d��O��O�w�&���|���>	TS@>�f���@�rK���'@��PX��X	Q���D ������Kh* �4eq��.��.�\B�@S��)���R@n%��	 @�@�V(X�J�<��
 �������>	TS@>�f���@�I��$PM���q7kY�-Y���G@aU~ba$ @`D�#i@�@rKh.!@���|���A��O�@s	M���, 0J�e��.'@�PXU�`*���7@�@rK��$PM���q7kY�'Y���@5��j���	d- �d-� ��U���� @��<��H�]�-]������IS	�B@>��%4�O��8H��(��Q��H@aU��e� @���Y�-Y���@5��j���	d! �d��O��O�w�&��������	 @�@~V�'FB�F��>"�t! �t���
�'MY$@���4� �T@>i�� ��[F	�r P �U
�� @��~d! �d��O��O�w�&���|���>	TS@>�f���@�rK���'@��PX��X	Q���D ������Kh* �4eq��.��.�\B�@S��)���R@n%��	 @�@�V(X�J�<��
 �������>	TS@>�f���@�I��$PM���q7kY�-Y���G@aU~ba$ @`D�#i@�@rKh.!@���|���A��O�@s	M���, 0J�e��.'@�PXU�`*���7@�@rK��$PM���q7kY�'Y���@5��j���	d- �d-� ��U���� @��<��H�]�-]������IS	�B@>��%�{w���>~�.��:�J�$[d)
E"�d�;�!�K�.[�D�RG�t�DE���$K���������f~���|>��l�yf�=���,��<�������z�'�,�D�"�-Er; �1��*F��� ������C��RU��@:�'��;�F���r��L�)@>Ig�5� ��[��#� `��U���� � P����
 ���- (@>	d�$ @>)�[@ P�|��I(R��R$ �#� #
�b,�� ��� �@9�-�P���S�|���3j�!@>)�*�D ���t��Q#PnrK��y> ��PXeO,�	 ��
��^-
@�rKh�����@N"�@�����'�,�D�"�-Er; �1��*F��� ������C��RU��@:�'��;�F���r��L�)@>Ig�5� ��[��#� `��U���� � P����
 ���- (@>	d�$ @>)�[@ P�|��I(R��R$ �#� #
�b,�� ��� �@9�-�P���S�|���3j�!@>)�*�D ���t��Q#PnrK��y> ��PXeO,�	 ��
��^-
@�rKh�����@N"�@�����'�,�D�"�-Er; �1��*F��� ������C��RU��@:�'��;�F���r��L�)@>Ig�5� ��[��#� `��U���� � P����
 ���- (@>	d�$ @>)�[@ P�|��I(R��R$ �#� #
�b,�� ��� �@9�-�P���S�|���3j�!@>)�*�D ���t��Q#PnrK��y> ��PXeO,�	 ��
��^-
@�rKh�����@N"�@�����'�,�D�"�-Er{�k���e��I�Z�d�M7����������p�
M������_��~�I����=�����ke���R�n]�Q�F���o��-Y����|���f���&��r|��N!5vm�Q��O���Y'@a�u!�C �d��=�
W@�prK�v�����L�@�p�I�v�����L�@�4���8��h������1c��.\��K����ja���������9s���+�-����=��S�t�"-Z���1�������{��_|Q���g�5n�X��mk�u��G�*�Y�z��9R��+����y��o,:t�6m��>G��
��|�I����������]w����uO��gc����:t����;��g���OM�6��-[�)��"���_Q~��>
��sF� c>�c<�������C����$f��X,@>�88t
��	�Ob0��@L�-1	��g�}V�9�W"���b�w_�e����=z��i��������]�v9����r��g�l�EZZxU�v����������,Z�(k-�y��'�~��Y�]�?�r�!n�O%
�J5>�b�E^w�q��z��A��?�p���k���s�y�&@aU6�#� `���.!�rK���D�|bI �	 �$ �K�'��n �0rK������M��vZ���)�*����R}��{�L�81�������_���9G�!t�s��s�����[��s�����
����3��LX>��Yn0���D�G!,����uk�5kV���������6�d��v���g;�j���J5>c��CI���3��w`���7Er�fN������o�u�qN���Ve�� ��	��n_L�I �$!��;�'v��^ ��I���C�|bG�I �$-����5k��{��A�UX���b����,'t��/�����I
2D6�h#sn���r�����;�R|���������=��E>Z,�-�=z�Y�O��\�R���J�Y��m���r��g;����}��c�=�_~��f��Z�j���s/��2��zi�Wu��	���2�N���J5>�b���f�i���^����:��3ui����������7�
;d��*��@�P�v�B�H��%AdX"@>�$t��OD���%�KA7H��%aM�p���#}����s������b�|i�����>9�������#��0y��>�H:v������;��c�q�u��\������m�}�\r�<��������1C��}��7��M��~��e~9�@�w���������qc��������Y���A[��U��)S��G^p�fy���{��j|6�����������}����I�&����z�jc��'��S�{����!P��U�	q@��`�(t�	�[L��@��'�G A���� Pa�I���H��%�����t��[o�U�������VXU��9_p�������:����G����{�������{�1�t�@-F�n�w�h!�nx��5�{���e�v�e�X�i{g��-g�/���w�	\.p�����kWw��^�ze�b�<o��qr����3n9��?-������L�o������w8���������[L�3P�LT�6]z����r/����������� $@aU�
�@�T�vKC����%���X$@>�(t���Ob@���E���AWH��%A���P&M�$���7=�_��t��-go�/_.�����M[l��9�
�������,={�tn�l�U���� ��}��'�^{�i]�^=S�T�F�����I��m�����yss�a���n��69����U~�z����K/���=t�P���������6o�����?����gf$���N;�����;�m�,�*���c�!v��E��-]�a��e����������?^Z�n�o�1Vepp� ���|��z�@\�-q��F�>��}1�G�U�|���o� ��z�@�-I�b���E@��~��-��"�l�c�=&}��u/���{��f��coa�.o�3�y������f�)�*�~�S!w����yJ�t6�l��x�[8�K�lE�6m�4i���sX���w�mfx�M�65>���������R:���'���7]>�[7k�,��_����[X��3��}����l���n��
�J9>�b��_|������O��m��C����uZd�l:W�
�C~"(@aU '@�S�v;�B����%����#@>�'����O�A���=�{bAOH��%I���X��]�vnt���>�=��h���o�mN~���39��e���C]"N��]w]s)laU��;��S�_,X`�k�X���s�������o����m��yR�vm����l����[�}����c��1:�	����SO=%���OF�c�=V��{o��������?�\��*�_�Xd�s��}�Xxn����}�����.�H4^�e�m���]��U�" � #>�c,��@��-1
]E�r����{�H�|�`�U, �X ��@L�-�	�������>��F��z����+��Un�B�3f���<��Q����Z��*������9��?�V��s����y�����o��5x�`9����M2�u�(��J�3�<S���:��������^j�uY�w�}��g�C��@��t�A]N��O?�����9-����4i��=���g�>|�v�a�fU�+UXU����*�9N��=;#N�� s����PX��_�� />��/z�@\�-q��D�~���1���E�|�H�O� ��#z�@�-���3o� ����</��G�S���Uc��5�L9�s
}�c��.�7h� s�D�;X�V-�r���F{��y�^S�t�Yg������K��t�Y����Z��]������?��:����oH���E��v������;�12D�w�����Oa�o�R�k�V�wB��KA�v�QGe,���x�M6��;��R��;nb������}��)�Z�h����7��F���� �M���l2�G@�B>�-
]B ���! `����@�
 @>I@��O,	�@ a���4��U+W�������:�������F�t���������m�u����b�����h���nPP{=��W/y����e-�6l�����[�"��v�I&M�d�g����>�:��_|�Ei�����9w�\�S���.h�;s��7�(��vZP��s��k��������9X�xq�kN�\?�`L�t+�����!v��k��/73�}��'�)������SOu��A ��U�t�� ��e|�[��@B�-		$�@���A�$D�|��@2, �X��@�-�	j�TR���%�t*�5k�~��������/�v�m�����,\�0W�*������8�j�*i���{���.]���A;]t�<��S��.��3%�v�w�-��b��@m���f?�����o���<e��a�Dg.��8�3[��[�m���.���%K�����^�8���f���IQV�j|6�.8�����7Eo�_�Dg-{����f��wp
��VU5� ��
��nmh�� ��:|t��'V��� k�I��G��J�|bU8�� ��'�i-��9s�t���E}��Wd�m�u����o�@�D���e������v�-�
{�l��1#gwti:-h�%�t6%g����;;��?�9�y��g��N8An��6��]"1La�G}�1;��������v��E8�m��{����J�q�1�5�8�Oa��+���/\
PG��n�������������R�������=���O��O��x��������{���@N
�r�p@��`�+����[�I��@��'��=@ )���D�q Py�I�c@H���<QMka��?-�����A���_�,VN�.}��"a���Q�����c��.Q�k�W�������I�
��C��(,s/xvt�=]�O��={�����v��{��3��={���W��P��C9�9-Z���V[��A;�1�)�g�SX�N��Z��na�!,�����!v�����������^������n���XW+@aU�D4@@�>���=A I��$E�� PY�Ie�y;I �$)����
�O*���H���<�Mka�jj��.'������[f����'g,17w�\�S��i����Q����|������Jg�}v�.���:u�n��3]P�	t����Zj���V���/��g����7o���][,X m��u�O�0A�����K�J�V���O>���k��=��S���R����Y�7N�;���K=z�0Ex�j��8�a(�
�D@,����@�
&@nIX@ �T�W#�0�I��p���������[��4V}���������Z��{�w	������!C�6av�Fe{V����y���K�=��o�������'�,/���9�EU��u���%���o���?�4�/��3b��X��#F�W\a.{g��/q�3a��F�6-��b/g{���d�m�q���TaU)�g[�����s��p�
����*��R�I�C���<�h� �@��`�tx?� �$3��
�J�O*��;H��$�qeTTB�|R	u��@��-��q��T����T���[Z�h�b���������Q�{�����}�w��k��a���S����<��s�������}���=7e��a����e�d�wt��=Z:t���wtv+��J��]��}�c��X��^�~��t���O��5n�����G��)�yH�
�������s|�����ov�����_=���s ���U���@�

��^A|^�@��-	.CC b�I�����O\��@�����y) ��'�i/�����%�t9����������3d�u������b����I�&�_��W���9sd��7w��;#G���.��=���y�s;����O>1�{��i�{s{v��Ycf[�d�9;`����v��W������niW��;�X��E�f�daU��gc����G��5M��N��(V���b�@��`��W!�"rK���P(�����<�	�ORl��@��'e���T��R�����j������;��+��8�}��53X�+_laT��g����������/��Jsm��~���E�����;N��������n��=��;��[l�;;���?3f�z����I�&�ey�����#�t��XJ�����N�=��$�2�a6��u��B
tF��c��W�x��f����_����`C����;i���K����?^�7o��c�b(�*F�{@�X����y) ��$���' �
R"@>II�&�O"@��P��R�����JU��
y��x�
i����T��b���?W'(�L��]u�U�3A9��?�(��~����97u��*�2�|���i��i"M�6�1c���[n���&��T��u��C���u���~���;���s���l�>�����X�{�8�^��WOf��)�����&���(�������.����s�M6��Zs����-v��w��7�5���2��t/�l�����z�\��'@a��Y�� ���|�[":�@,�-��F�J���a�S�R�|���i� �X:�@��-�	��sV���>�m�
e�Z5
������}S����m���P�{.�~��Q�������/�=�����K��Xu���K��������Yi�L�v��w����l:c�QG%�5���zK&O��\���.6k��=���gu��]�v��v�M>��cs�3��^���{��#���P[�
�B�,�Q��gS���M�
�F�-:t(�v�K��U)	4�DH����#�@�6r�m�?�W�|���sl ����@|�'��=G�fr�����:u��1k��w�)�sLA+�0��������~*=z��y���l�K�=��CR�V��v:�.�w�m�^����B�����?����������.�^�z�O�<�ta�v�T��%v�����HaU
��PXU�� ��+�����g�Y�����w� ��z�@��'q�}G�.��]��7$E����H�9�#F�W\�vN���h����|v�|�M����{�����0;�������w���U���Rz��O����L5`�Y�`A�g�2���?�,%X��'>��3�����O��y����p��K��Z�*c�,-rj��U����A��gC���m���=�����]�����tPX��83J@������@2, �X��@��'1]G�2��e�;�X�|���u, �X�[�uj���f����k�e��4i"���^�c���>��C�����A���qc�b�-�~�Bia������������Yg���e�
�������>�W�������#��P���!#��%d^�@J�')	4�D �I�����ORh��@�����y �������@�|�`�W�� F��F�6 F�|F�6 F�|F�6 F�|F�6 ���%_1�#� _
��;z� �B>�St��@���y) ��$���' �
R"@>II�&�["�u �TP���
��j@���=_1�#�@rK%� �@�I%� �@�I%� �@�I%� �@���|�h� �@|(��o��9 �@
�`Oa�2�["@��D�|��@3L" �D��+H��$%�f�D,@n���!� PA
�*���@�W��|�h�a�-a�h�a�'a�h�a�'a�h�a�'a�h��
�[��= ����*���� �)��=�Ag�D @n��W ��IJ�0�@�|2�@ %����a"��%bp^� �@(�� >�F@ _>���=� ��Q�
� ��Q�
� ��Q�
� ��Q�
�+@n�W�� ��W�������#��P���!#��%d^�@J�')	4�D �I�����ORh��@�����y �������@�|�`�W�� F��F�6 F�|F�6 F�|F�6 F�|F�6 ���%_1�#� _
��;z� �B>�St��@���y) ��$���' �
R"@>II�&�["�u �TP���
��j@���=_1�#�@rK%� �@�I%� �@�I%� �@�I%� �@���|�h� �@|(��o��9 �@
�`Oa�2�["@��D�|��@3L" �D��+H��$%�f�D,@n���!� PA
�*���@�W��|�h�a�-a�h�a�'a�h�a�'a�h�a�'a�h��
�[��= ����*���� �)��=�Ag�D @n��W ��IJ�0�@�|2�@ %����a"��%bp^� �@(�� >�F@ _>���=� ��Q�
� ��Q�
� ��Q�
� ��Q�
�+@n�W�� ��W�������#��P���!#��%d^�@J�')	4�D �I�����ORh��@�����y �������@�|�`�W�� F��F�6 F�|F�6 F�|F�6 F�|F�6 ���%_1�#� _
��;z� �B>�St��@���y) ��$���' �
R"@>II�&�["�u �TP���
��j@���=_1�#�@rK%� �@�I%� �@�I%� �@�I%� �@���|�h� �@|(��o��9 �@
�`Oa�2�["@��D�|��@3L" �D��+H��$%�f�D,@n���!� PA
�*���@�W��|�h�a�-a�h�a�'a�h�a�'a�h�a�'a�h��
�[��= ����*���� �)��=�Ag�D @n��W ��IJ�0�@�|2�@ %����a"��%bp^� �@(�� >�F@ _>���=� ��Q�
� ��Q�
� ��Q�
� ��Q�
�+@n�W�� ��W�������#��P���!#��%d^�@J�')	4�D �I�����ORh��@�����y �������@�|�`�W�� F��F�6 F�|F�6 F�|F�6 F�|F�6 ���%_1�#� _
��;z� �B>�St��@���y) ��$���' �
R"@>II�&�["�u �TP���
��j@���=_1�#�@rK%� �@�I%� �@�I%� �@�I%� �@���|�h� �@|(��o��9 �@
�`Oa�2�["@��D�|��@3L" �D��+H��$%�f�D,@n���!� PA
�*���@�W��|�h�a�-a�h�a�'a�h�a�'a�h�a�'a�h��
�[��= ����*���� �)��=�Ag�D @n��W ��IJ�0�@�|2�@ %����a"��%bp^� �@(�� >�F@ _>���=� ��Q�
� ��Q�
� ��Q�
� ��Q�
�+@n�W�� ��W�������#��P���!#��%d^�@J�')	4�D �I�����ORh��@�����y �������@�|�`�W�� F��F�6 F�|F�6 F�|F�6 F�|F�6 ���%_1�#� _
��;z� �B>�St��@���y) ��$���' �
R"@>II�&�["�u �TP���
��j@���=_1�#�@rK%� �@�I%� �@�I%� �@�I%� �@���|�h� �@|(��o��9 �@
�`Oa�2�["@��D�|��@3L" �D��+H��$%�f�D,@n���!� PA
�*���@�W��|�h�a�-a�h�a�'a�h�a�'a�h�a�'a�h��
�[��= ����*���� �)��=�Ag�D @n��W ��IJ�0�@�|2�@ %����a"��%bp^� �@(�� >�F@ _>���=� ��Q�
� ��Q�
� ��Q�
� ��Q�
�+@n�W�� ��W�������#��P���!#��%d^�@J�')	4�D �I�����ORh��@�����y �������@�|�`�W�� F��F�6 F�|F�6 F�|F�6 F�|F�6 ���%_1�#�[`�����aC�W�^��\E* @aU�y% ��
��^��!�@.rK.�!�@>��|�h���'�t����O���-� ������.]*�
�Q�F��1c�m���o�* P
�*��+@(T��B��r	�[r�p
� ���E[�%@>���5�G�|��m@ ��%���-������+L#
�r[q*'@aU��y3 �y���77 �@rK$� �@(�I(&!�@�I$� �@(�I(&!�@���<�h�@�
�W(�r)�A�(��, t@�\|����*@n)T��@�/@>��p��
�O
��>��O�"#�@)�-�P��PX�o�A���8D�>"� �?>��U@�r�[���3H��$�qg��C�|RU��@:�'��;�F����r���PX��H3N�-@aU��G�@R&�{��p�H��4�A ���!"��$"h^�@
�')2CD���
�'��k���x@~��W�`�
��3����Y�O�n�y���d�u�����O��{o�c�=�v��FC�y���M�W_}U�.]*�o������r��������S����3�~�����'���l���?�Iv�i'�k������Z�j�|��a��	2�|�g��-[�����NZ�nm��>`��U2b���_w�u����;N�7on�O:�$�[��{Mw���i�d��9�����j+�y��e�v��>X6�d��{��z������
7�PN?�ty��7e���2c�i�������r�	'd}��(tc�@IDAT�\?�����g���.�:u�����g�p��G�6�l�����{O4����YS�:�,Yg�u2��F�)+W�4���g�u�]�M��?4cS����<S���U+i���s���8Q�U!�����y���d����wJc���{�����;��?�(O<���u�-��c�9&�1�\�Y��T
PX���3h@��
�����o� ��z�@��'q�}E�n�����w�I�|�h�W�#@n�O�l���4n�������k�{�������hQ�b���or��������}}�����I�&�9gg���������wNe��;��v��h��J-n�%-L���v�i��S������{�m��r�"S�L1�RN����%�\"�'OvNU��EV��w�)>�_�b�m�����x�����9�39������/�r��:&�o����5��.�L�=�\�`M���?�x����zJ�X*���kZ�lZd��cG�P��Y#��!C����vn��V��V�F����X3����q��Q�l[��m�o��)�6ZT��/��X��8N��U��?�G���1�E &����n"�I�D���$&����@�|� �Eb(@n�a�,�����i��2o�������������������Q�FUi�E�>�l���N��WOf��if�r�h��L�Ra6�)i��I�i���_|�-����=�XY�bE�W��7�h��m�-��Z\����{.p�'����:#�QG�<[�x��Ar�)��C-����-Zd�O>�d������U~�~���0L/hl49��-_��i�,Xa�n�����C3��kU���/���)���TXU
�;�G��*~@���1
]E F����"`�����=b$@>�Q��*��O,�C ����n����4��m�?����d�u7��a-��U���<�L9���Lq�.���OY�d�s���K�i!�����;r�UW�:�H��t�7g�%�8�����LK:3����rZDu����w��;��3c���S���A��K/��� ��f��%	�x�
����t6-�rf�������~�����KZ`�[�
��xZt��z�z��!g�}�4l�P��F��>�B���z�<�y��X�9�E9Z���K/�%�tI�|�^�z��O?��6`�9���ML���~��������v���b�.g�?�aJg��M��t����u)C]�)��w{gw����e����{��kg~'t�1-��e����Om�����U)�������2f��s���q���w���5k�^r����R8�/`�?(���@�	���`�Ub$@n�Q��*��O,�C F����"`�����=b*@n)O��s��Z�Sy^�S;�"�UA���Rg���w�"�rv:{�d9��a��k����)�y������h�����e���"'�X��Ot������V��lM��!s��?��h��wwE�����:�Xw������#���w{������/vO����|��t��],X`N�gb
*��?�a�S���]+��a�:u�G���N{�������nr��sO�oG��n�6}�t�z������;����_=�P���S�������y�����O?������$�[n�E�K��Z�J�;�<{m�K(j��l`����T���h:S��yg-s����/���%��U�rp��OT��*~@���1
]E F����"`�����=b$@>�Q��*��O,�C ������*13G�7�]�����l�EQ�����Nv����mJg��B-g���f��muV���:��T��w�@-��"-g����<��c��M�6��SO��������H��3g���>�#���
�v�ew��.]��<�q��@������{Jg�����/�b]�0��}@�����+�0}���tf���[/�N��LZ,��p���;N^�us�m�Z�,����������.2q�c��L��}
�.\hf�r�y���*��u���-[:��/�P����{wt�3gf3=�/�*�����#@a� ��H����"#rK��EW�\�|by��1 ��(Xt��'���!SrKyGa��b-*	�tf$g	8]����ojf�|����5-2�e������x�b3;S�rs�v���r�%����c���;w��z�}�����u���X����7{vrV����5��9���J��m���M������Y��_,�X�d_�6}��x��[d}�.������]�����_�rg��s�~�M7u.��4��f�,b�=p6�.���.�8p�@����c�=�,���/����-�
�*v���8]
Q���m��>aU��������*�qg� �1��=����X.@n�<@t�	�Ob,������D����$F����H��R�`QX%2|�p�Y��6o��e�]&�z�
jff�r�J*���������^��W_��y��?s��5�ay����#F�pO}��w��TA[�v���Y���������Rt�{rV��Z^�5����g�;����_/g�q���/�^s���Z�4a����}]�/[Q�X��~���~�����k��Eq�5F;���s(?���l��v��.�w�I'����#]��n����o��&�5r�j������8n��%��:���na�L��?
�}��'�^{�y��}���O��SZd��y�J��oc��w@�X	���p�Yb#@n�M��(��O�D 6������"`�����Ab)@n)O�(�=z�t��!�[X5h� 9��S���~�V�2yZ�����>��_X���y�9��������.��mt�
6��Jo���1c�m��n]����s�������/��f�}�������S���e����KE���#jAU��_X��x���%�y��Q=z�p�u�1��.��l�|��h�B�������S��a���*v��\s�����/�wx���Y��[XUJ���G���@@ F|��(Xt�	�[b,������D����$F���X.@>�<@t��
�[�8
�Dt9����+��U�����2x�T�u���3�QPa�v��/�43iQ��D]P��yZ���a����
�t�����g����{��2d�s��XHg�u�]�<��������:��t&����TX5k�,9����G����f&*��.�l�?�����~��Y6����{!��.�������yt)���W�3fy��w�N�<�����������������z�(�JW�- �@��`�y�>�
�[,
�B ����.#`������-b(@>�a��21 ��'HV�����K/�G}4#������}�]��-e�M6��/�\y��6[a���5k������2e�y����K�Oo�s2Wa�wV"m�K��z�<���N�:���[��a��t���>���*�/�����/1K�q�EeZD������;�(-Z�0�ZP��Q��u<�b)}���k�~���n���?_F�)���nZ�������9�?��W�]w�)�rT���j���i�J��}��.3y�W���Y
�����*��� �?
��U@@ F|��(Xt�	�[b,������D����$F���X.@>�<@t��
�[�8
��[X�/:i���hA�SP������+���7�<�@5j��I�����^����[nqg���Z�I����j�����S'��Y�p��wv�����X(��8P���~�-\���WF��s���>��;:������n���;;��
]O7�h��#����~�������O�>f����9��i�t)�B�|�J5��^zIN=�T��{-���y�t����rp��OT��*~@���1
]E F����"`�����=b$@>�Q��*��O,�C ��������V�g���)�J����I:��c��3093]���O�`J�>��C�e���%h�i�P��]���
��=:���i��E]�V��EE����][7nl����0��)���'��3VW|��OdD�7N��c�*O�Y��qy���D�5t��_]�4i��?u	A-\�M�|��'�kA;Z����z��M?�:�,�,�R�_���g�}�n^u�Ur�9���������)"�V����N�����@b$�{��EW���%F���X.@>�<@t�	�Ob,������D�����<������U<��0�
�.���f�����[o�U�������Z�rgG�b'-z
������N;��^z���3���V��XN!�s�w�&=7}�tS�\��������otOi��~��g��)rb���!Jgp
����+SP��i���_��^{5�3�8C&O�l���xN�����6��El�{f��)��usO����K.���cU�����S�{�9�������m��Ar��w����U�rp_�PX�� �1��=F����H���`�U, �X ��@��'1
]E�r����{�T��R��QX����;;���r�)�����tv*��EO�����t�I�=����/��=vv�*�_�sh~jq��I��sZH��`�'G���������_�o��2f�=4�[o�%�b��m��_MaR��5��2g�����{��ys���{�E��9��e��3�2�:^�Y�e<����HZ���/V)���:�(Y�`A�����j��m��!�Wy�k���9�[Z�t�wd�i�O>�D�=�X����B����Jw��������n���=��Sj��%���L��c�=f����/�*���|~"�V�{� �@��`�Q��*1 ��(Xt��'���!#�I��EW�\�|by��1 ��'p�_��<.�����#���Q�w��M��t�:g�5�Q��U��-33$9��;uY���;�.����o��i��i;-����5j����;W:u�d��?t�@�Qi�M7-&��x��N>�d��������!�":s�w���|�]&�����lV�M�Z�liN����fv#�u]vo�}�uO���J�n���=��s�=�,�7o�<y��7D�����m�������+m����X���ty���;/�r����M�6R�Nc�Kz7���X�z�:���<����)�_�V��R8���q�(�Jw�= �@��`�Y��.1 ��$Pt��Ob$��@L�'1	�D ���."CrK�fi��,�R�	&�.YW���,\pA���������[���g�r/�h�����3y7]���k���2�����G�����*��N>\;���K�e�X��@q�U���n;�����K:��n����`�{������x��������@n���Y�f���|a>V�����miI�����jf,��u���g�y��;���y?P
��=@@ F|��(Xt�	�[b,������D����$F���X.@>�<@t��
�[b8���o�I�F���������Q:S�n��~���f�����������/�>}�d4y��7������u98].P���[�����.�LAA�z�������2K�y���kL��=�[�n��*?o��&���g���S2}�t�T��+��.���K�5k��r�Z�*����?/�Z�r����?�.��A���Ejm���'�|Rz���6����d�
6p��;�Y�r�f��O����+���'�/�c�YL��K��|��1~]r��)��;��.��~��gfD;�����{���n���?���d��f��G1�gq�n
��F� 3>�c0��@L�-1	�D ���."�ILE7���$A���P���������]���[S������__��n;SL��0���|��7�h�"����L���n[e��l�[�f�|���fI�?����������������7��[o=i���4l�0�y�g��x������_S]2Q=�_�Y����l��8/\�P>��S��)�J}K�E9~�����w�!C��N�9;���
PX���q@�4
�����3f�/@n)�1o@ -���D�q"P~�I��yi ��%���h�-�z�6H��>������[����cM�4	��?�h�.Y��\�e/������D�TV�J�� � �� �
R(@nIa�2e ��	��"�B�I
���(���L�<���[R���@������y��s�v�*��
|�e�]&#G�t��7N��c���!@aU9Ty& �e���L�<���[R���(�����<
���OR���(�����<
\r�K� P������v�u�UW�I'�$�l��9�t�RSPu��7�m�6m*S�N��r�ng�I��U�/�CH��I�(�A�r�q�$A�|��(2� ��z�@�'I�"c@�>r�}1�G o���,+V��H�z�d��UU�k��'��;�����!@aU9Ty& �e���L�<���[R���(�����<
���OR���(�����<
\r�K� P2������\�h����l���>\Z�j��(��U���9 �D �{���
�[Rt��@��'e����P�|���3d�$@>),�E �����0|(�����*�>��Y�Og��?�yW�F�D��;��#�}��������<��U~�@�X�v��C����%����X&@>�, t��Ob<���e��BwH��%!�d ����*M@�E�v["A?H��%Y�d4TR�|RI}��@��'��'�A����J��n�+@nInl �~
��"#� `����!crK��G��L�|bY@�1 ��8xt��'��� �rKB�0@!@aU$� � `���D�~ �,rK���h��������d	�O�OF�@%�'����$W�����22@�V�E8F@�b>�-]C �����#`������b,@>�q��:�	�O,�A !����a � B���H4A@�>�m��@ Y��d��� PI�I%�y7� �$+���J
�O*���H��%��ed ��(���p� ���|�[��@��-1]G�2��e�;�X�|���u, �X��@B�-		$�@@ ��U!�h� ��-|��	��@��-��'�A����J��n�%@>IV<
� �TR�w#�\rKrc��@�PX��@��`�88t
��[b<���e��Bw���$����X&@>�, t���[H�� �@
�B �@[�`�%��d	�[�OF�@%�'����$K�|��x2*)@>��>�F �������!� ����/�1 ���nqp�1 ��8xt��'��� c�I��G��L�|bY@�	 �$$�@�V�@�	 ����nK$�� �$+���J
�O*���H��$Y�d4TR�|RI}��@r�-��-#C@�/@a�_�c@,������5b,@n�q��:�	�O,�A �����#`������"@nIH  �!(�
�D@l����H��%@nIV<
� �TR�w#�,�I���h���������
�[�� ��_��*�� �X,�����k�X�����u, �X��@��'1]G�2��e�;$D����@2@BPX�& ��"��-��$K����x2*)@>��>�F Y��d��� PI�I%�y7� �$7��@��U~�@�X�v��C����%����X&@>�, t��Ob<���e��BwH��%!�d ����*M@�E�v["A?H��%Y�d4TR�|RI}��@��'��'�A����J��n�+@nInl �~
��"#� `����!crK��G��L�|bY@�1 ��8xt��'��� �rKB�0@!@aU$� � `���D�~ �,rK���h��������d	�O�OF�@%�'����$W�����22@�V�E8F@�b>�-]C �����#`������b,@>�q��:�	�O,�A !����a � B���H4A@�>�m��@ Y��d��� PI�I%�y7� �$+���J
�O*���H��%��ed ��(���p� ���|�[��@��-1]G�2��e�;�X�|���u, �X��@B�-		$�@@ ��U!�h� ��-|��	��@��-��'�A����J��n�%@>IV<
� �TR�w#�\rKrc��@�PX��@��`�88t
��[b<���e��Bw���$����X&@>�, t���[H�� �@
�B �@[�`�%��d	�[�OF�@%�'����$K�|��x2*)@>��>�F �������!� ����/�1 ���nqp�1 ��8xt��'��� c�I��G��L�|bY@�	 �$$�@�V�@�	 ����nK$�� �$+���J
�O*���H��$Y�d4TR�|RI}��@r�-��-#C@�/@a�_�c@,������5b,@n�q��:�	�O,�A �����#`������"@nIH  �!(�
�D@l����H��%@nIV<
� �TR�w#�,�I���h���������
�[�� ��_��*�� �X,�����k�X�����u, �X��@��'1]G�2��e�;$D����@2@BPX�& ��"��-��$K����x2*)@>��>�F Y��d��� PI�I%�y7� �$7��@��U~�@�X�v��C����%����X&@>�, t��Ob<���e��BwH��%!�d ����*M@�E�v["A?H��%Y�d4TR�|RI}��@��'��'�A����J��n�+@nInl �~
��"#� `����!crK��G��L�|bY@�1 ��8xt��'��� �rKB��a�Y�F�-[&�j��M7�4�Q{�/���d�
74���^o�_�U~��'�S���t��k������K��u�F�y���A��d�sz��7��5k��p��	PXeY@� ���`���5(T��R��!��_�|��
 �*�} � ��E8F�R�[J��3�����.c��1�[�pa��-���^��F�'O����_���#+V�0��o�^��sO�����h�������/�{��G^|�E�7o�9��qci���y��G�`k���2r�H;v����{�9o��t��A��i#�-�*d{��'�w������{Nv�u�B�= ��Ub�*@����XA�G� rK�
�@��I!j��A�� �!�@!��B��� �T'�u[�}�Y9��s���[XU������������G�6mZ����#�k�.g�^xA�<���m�HK�j�����_|!��w�E�em��iSy��'�~��Y�]�?�r�!n��UAJ�C�>
���	=B@ ��Yi��E�[���V� �dpp�E�O���V� �dpp�% �����U@gm:���2��OaU��g�8�@��;��se���Wu�����].��8b�9�������3g��n��e��W��4l�Pf���q^g�z���r��8�%��8�Y�`A����[��Y�2�m��Vf&�m��&�|�}�>�YP�QX�M���%@a�]��7 ����='@�@rK�p��U�'UH8�
�O
��6�"@>�B�	(����<�lk���{��W
T�a
�����K���e�.��B���&5d��h���������������K�������������hi���j���f�>��r�J���+Eg�r����g���?���+�=��{|�����j��e���������Z��_�m&L0��9�:�)�r$����V�z� �@�� �@��-%��1  �~	@�T��RI� ��;�� ��C�g�B`��9��O�;wn���+�*���������M���y������_y��&���GI���Sw�y�s�1�����+������;�����K.�������f��!�������o��6m�������(�r.h�V����Cy��7�q����w���������>z�;�V9�D�n
����K����k���o��5e�-�����:�?�	&C@���`��� �2rK��p(�����<��	�ORp��@�'e����X�����[:t����[o����+g�V{��\|�������r�hq�n���{wn�����{�)]&P����q�'����9u����Q����}]�o�]vq����w6-�rf�����y������~�v��.1��W��Y����7N.��Rw�-���'�U^
��W��*{cC�b.���������[n�2�-��B�?�|��u�]��uN ���`�&�y(F��R��"��W�|��`� ���� � �x5�G�R	�[J%���L�4I���o���/��u�	�|�r����Mgn��s��_4���w�.|����S�����������y�}����^k���W�)��Q#�v-p�B&g�:u�4o��jA�w���n�MN8��i����z����K��z:�m���v�,a���-������4=����O>q����N���s����rV�L_�g���?�����=�	@Z�n-:C�>����Cw�����%���^��^|�Ew��5��;�J�o��V^y����DgD��c��q�e�=��ZP��9s��������g���:6q�DY�j��j�JN:�$3&�����;��$u�������O2��k��L_�3�y����W�-��6m��w���~��w�]��c�e 7�|sy���M_������d���b���8z
��7��)�)9����s����7��
7���� ��#��#�O(�����<�t�O�F�@)�'���Y�[�|���3z�%@n)�l���E@��~�;h-��"�l�c�=&}��u/���{��f��coa�.sw��W��G)���jF�Q���B�w;rG������@Lg�������
�Z����:uro��f���������[n��Fs�i���Gt��v���]Jg�:������Z��-��5k���/q�����J�g������~�m���mW��*]z���o�]�n�����C���-Z�po��5��������X�HK�t�IE.����]��?���u��g�.���d��:��w�a�������wg
�6����n����������{9p_g?��c�6�k��3>�5����G}T��r����l������8����r9Ty '"��*rr^�t���ZQU��
M���V�>��3&�'���!�@�|�o�@�����	g@�0�Ian��U�'UM8��	�O
s�.�-@n����p_|���k��m���}����G���{t��5���-[&�z�\x����J��9a�����G��m�������h�l��������7��������k����l�u6!������c�����?��SUf�:��ce����=z��6?��s�
�t6������E����z���K��Y�t&0]b1�LbzM�at6���[�t���	F���~j����_��-��v��e�����9��#��d�M�����������7�43�9�aV��!��iW>
��g��S*�EU���(�Ny8|�p35�VT;kk���i�n��Y�=?@ �|��7���r
�[����H��$]�f��S�|RN]��@��'��7�E *rKy�O{�<.���yY������i!��3�+<�@5jT���I���M�i�����U��S����������C
<8�@'��=Jg����3���������A:�nZ$������l���j����2������~j��s�k�P�&M��*?��h��-������U^}��'�l���@�f���t�R�0a�\s�5���������E:C��J�y�t�'g2m��/�89���5f����}��{�h��i��<�s.[a�����;��`�K��,a����������+W�4ET�����t�4-Ft6��~���Q���q��N���*j������J����PX�9oL��V�z��<�����'��R����_���U��m��&�k�Mq�`.����^� �@���j�h�!�'!�h��
�O�%�� �����%@n��+t��;5��~Y�}�v��A����kf�r���8��O-�4h�9�"��b���b���?[�4h�^
S�t�Yg����=:K�c���v9�8������?t���:����{��]�����6�c�;�!C�����\�U��a����g-<���������;3���H����8�^�RxZ���tv�����=�����r�9^�z��{pgF�����Y�6�h#�������t�M���g��V�����S��W�X!�����wA��|�����������7�>�;:;�]���i��.��l��x��W;��w�;3�sA��6���R:8��g�(���=oN����[�����f�mG����)9�M+����8�����`��p�� ��B�g ��
�O�=@�R	�OJ%�s@�|���C��RU�4V�,:Zx�l:��������]k�t
Ut��~��y�d�/�0����:�/.�e�t9�\[�^�����6M��c��E7-�q��v�i'�4i�9����>�� 9��B�8uF�:u�8�zg�������Nl�=�������T���(��J���:�G����n�AN?�t����o��7-�/�7n�89����{�`�n���X'����{M�Z�j�{wt�/-t���t;�����ns���r���a�g�6�ja��e��Kz����9:[�.QT������-�*��>���VU���'H@���?*�;w��o���-��R�%u�]�^�
�%�{.�!�@���B������ P���P9�C���/�1�B��R
���Hca�*�Rv��bA�A�f�����^~�������A?�C.j��\��=x��U��Y3��< ]�tq��v.��"y����%-|���������@Mg3���t���w�L�2Ev�a�w���ww�{�����]v�E�,Yb�^��r�g�ZT=,Wa��&��j������;����%���)��!}��W�o�lA�o��z����K����t��w;��lON|���C������9s����o�������x�bS�3Ym:��%�\":[�n�w�=���W��v������n�g��V�k���S1
�*F���&�k�z+����[�4^�81b�{I��7�pC��@�/��_�c(����<T�|���J�|R*I���~@���r��s�*��9s�t���E}��Wd�m�u�����~�:���w�U�SlaT���`K����m��&fv"-�����M�Z��%���a�;��wv�0E<}�Q��X�R�����{�=w��l�����]N/[{=�Oa�}����g��k��a`�5k��_|!_~����VZT�K������������2��M�6���N}��w����6z���Y�t�.�	L7��Jg���i���o�m�h��?��m�-��_se��e
��R�t�)�Gg"s����3f9_�_R��4��6�<��C�����R:�/`�bVU��'M@�����:�����S�N�a�O������{M�'��f6@ ���d8���[���^�
�O��#�@1��b������ P*rK�$3�����K�]|����
����Y�m��K��;��3�r�-�������g�	z^�z�D'���A�n��C�f��<;�"��={���U�Q���b--��������W��P�d��m���r����!Lq�>$���=��C-Z�n����K��t�:-���0[Pa��?-H��8���S���j�r_��m[w6,�d;�;����[X���*�#�w@��K����U��������z��X���}oaU)����h(�����%X@�<��qg��`��n;�0���O�wZI=>����rP>��=@�r�[���3H��$�qg��C�|RU��@:�'��;�F��������J5��H���Mz�z�-�Y���=t��:u��va�[��Ya�������^Pa��?:���]7o��.��:��_-5j�p��|��DWr6���v���Ha�m��	3�y����K�U�V��<�����];�8�N9�t�#�<�������_t9Ig��~j!�S��-���B'�����(��[p�q!���(�,�-���������6�	M���+���6�`�Y��[X5i����T���m��e���;�]�V���};���b��8i���&wg����]����V�z�#���gT���s������C��RU��@:�'��;�F���r��L�)@>Ig�5� ��G8��U�~������.���3y�������	��0*������,�w���F�����pNq�.C��=�6o�����.��i�_F�;�Q��t&�+���\����_�Pg<���K�#�9-���\��k��6�l���s!��*-��%�rm�
2K��\������9�h���2�:!�;� ����xgS
*������J����M������)��qp�������������:ju���J����M�,�1]�O���eK����_~�<��#������?4�U:��:u��s��?����R:���q�VEo�*��c3|�pwt:��w�C��gG�`��O�=��#��w��� �@���!�@i�-�q�) ���� �@�����Y�$�.@>I�o�G�<�������JE�����;�l@-Z�p��������N��(�=��b��>���5���a�����x���}����}��)�@HO�g=z�t���m�����t�+��v���A��31]x����_?=�=���r�o��)8�5S���|
��{���8q��u�YnS-
<xp�I@�����JWd:��s�{���eu�C}�nm���g�y�i���z���y��-��/���iS�":g�+�+u����7�<�@5j�����3����t��l�F9oaU)�����	PX�5oJ���g�����������>����i"�?���{�@ ]|��+�����-QI��/@>I~�!Q	�O���=$_�|��3B*!@n)�z��t�9��I������[6����5|E~n3"��H.�dB44
_��r��r�T��N������ �\&���� �H�6������k}��g�s��Y���9���b���Y�z������g?O	/Y��|��w�|������������6�6~�����i�Hn9���m�<�L�s�b�@1�!���-�D��X6\���Y5jT��F��	\]�b�LOC�c�+�*z�:��3�CE2�\s��/g�����z�:th���Doi�[X�G������>_��1����Ig1���.X�R��^��g���l���Np@}x���jbUcbY$MEoU�J|��|��A�WV7�Fb��(=]�b�kQ��XU�C�Vf���������@d�g��qZ�$VEw��qW������B*N���|`�ZT<B����U	��T%)�'��J���*Iq(
��5����Uo��VZu�U���")%�U(:f��z[�71jz�����	F��	>�%�ErO���<Y�IY��N:)u�Q�b���{���.�/g*��@IDAT3����J�P�;6}���6����;��{Y�������"�(��k�4��UW]UO�ie������)�c����v�J��m��v��[n�7G�\�CW��Z�0�����,�@���f��~������S�X��k���~����y$Ce=I��V�b��bB�<�^x���w�q���!C���
.+��U6\d������C'f����7�����od��i1��J��A,��U3��AgE��G!n�Yy��������-6��?��l��N;�>Vr��V @�C�v�C����b��'��;k�p?i������������@��[�#<��B��kRQ���k�7���V��;���Vv��L��y�&3��,|����IcX�o�������#a(��e����a��u1\$�,�����	L���F��N9��|{��w�o�qz��G��1l�:���/?��ci�-��{;Zd�E�=�����s��Nw3�J�*������K�Zk�UjJ��=me	X�����H����K/��>��OW���%�+�b}t,�����z{����I^�[Vbx��1+�&V5&9u�,�����������J����g����h������������P�����U�_UK���f����B{��G:����3�2eJ����h2s�w��1=zt�z�������3�8#���w{�M� @� @� ����#�	k��FOUmoQ��_j�f�T��y�9?���9�����S,���n=Q������M�����kgcoEQ7�5z�z��W�=e=U��H�:��#b�S��h�<��|}������������������vq�����e3��V��H��������)��z�m��zj��W��-�v%V�~���z��m�����4iR���")������T��;[�Mw�i�C�Kc�Yq[��p�q-�%�b���/��������|���oK�W�&V�����D����u��R�2�5z���1,�+�V����f�-_}�u���T����������=�P�P��Q�C�q,������7w�YT �R������HK-�T�g{������3fL�t�M������ZQR� @� @� 0m1�����_�+��p�
K�&����L[l��4bz��w�������{��0aB�U7�`�t��g��n�;DoS1$���_\�t������)z��x���^�z�W�����8F��u�Yg�t�S��T���H
��E���g�y�����>0+q��d��Fn���b��f�LY�l#<]p�i����V���&VE�Hz�y��K�7[�^�������1�`q���o��q���b�U�x�=�����x���.V���6���f����������9��S�G62��^{�nO�W��U������[�nt�QbU0V @� @� @�*�a��C�URu����7�a�b�����V�{2��P���+��!���?�����G�Jl�$�V���$�H�i���p����t��O<�D�g�}�=5n���"�)z_�my��7K=eE��+���0M�����)�����f�@���'��������KC���\x����|C�L!m�z��j���>�|���Q��Se�#Ik�����7�sd���	'���;���r\�H������O~��RbbV?�	�;��cZp��j���;����i����������):J���{�C>FoU����k�m��&E"U����^_����7�q�f��#�b1�q����7�"�x�1fm�
������~���*�	 @� @� @� 0KD�SO=�T}����'����G?���k�^�w3����_|1
4(-���i�E�u�H����H����?\��>���:V_��P�8�+E2�2�,��]v�.{���vE�W$��t��K��_��-���	Q�>�l��/���i����'SU}��t��G�������J_9���{' ��w^j�R ��]x����1�od�wWb���k��^�o�[w�m#@� @� @� @�� ��N;���~:�����!8���,���^���������.jC���$V�WAf��6�(E�Y�4iRZh�����4��[g�u�u���o:��c�e3 @� @� @� @�@�x����s��,z����;���u�W��v�-o�A�������ff-�U���t63X��s�I�������3�H��>{��>}�����nX�7���n @� @� @� @�oF����g���[n�e}9�.����o�1c��H����2v���������% �j����fL�:5���
�qk�������vZ����K/�/��������*���v1%@� @� @� @��P ����W�������Q������/��ri},q�)r�YW@b��{m�����k�&�l���o�q=k5�U�e�EM��sOZj����� @� @� @� @�}(���/��|�;��R�:�)���F���f�g�U���t3��u�]W�d}��7�m�,�n�������v[�F @� @� @� @�o����t����g�y&=���)����R>�����6�(
><-���}�G���f(����&LH���k�������w������8-��M�[I� @� @� @� 0�$V�8{G ���Nz��G�����s���]v�������Zh�8M @� @� @� @�@��X���� @� @� @� @� �f�Um� @� @� @� @���' ���]3-&@� @� @� @� @����,< @� @� @� @��O@bU��fZL� @� @� @� @�@�$V�Xx @� @� @� @�������w��� @� @� @� @��6H�j3�� @� @� @� @��?�U���i1�c�[n�%���;i���N���z}&�Z-�������N��>{Z|���RK-�>���:V�Pu�ij��hY��������>��e�Y&�=��-��Xq��)i��	�_��WZd�E���}�C��Z^�:^�V��^d��0��s�%�\2
4���������+����|�����[,}�#I��;���KU�������^L�<9������-��������g�y&=��si�������K�&D�n��J�- 0�T�9��x3=���9�c�=�����i�e�M��3�4�U�9���i����o @�.���Z�;�����[�����/���w�|�,NL]t���Q�jo��v�1�����U$@�����jGqD���_�{@���OZ�x��r�k�������7�����������cE������* �+��D����n���?x���!�R�����r�����)��R?R|��������'��x-XE*x���k#G���3_��[���C�6�|�|��^�x�r����+*V�WW�����_[u�U{�_���Rw���)U����� 0�����+��i�=E��=��+�h� U?K�:^�'�" 0M�S�B��Y��7��,���Mb���cK�6>��G���C�8�����NxZ`��1]&+d��l	V�������1���V[���l�f�k����X���x=P�K���On��_<�t�M=��_����
=���S���T����N�@{�8���}�����N:��_��'����k��U�k��* 0M��sNK������I�����)U�k�h+	�L ~|���{�t_>|xm������g�U����6 @��H���Q ��@���������Gy�iRU�+&je��
V{��W�lL���<�
L���>X�od��x���������?���w�}��1��
���.�2Vl�:^������_cg���4~��UrT��Uy��7jk��f��qoj���X=�tU����q�'@���>�h��B+�U^xa���^��{�����=cuU����q�'@��V ��ab�����?�T�5Qh&�1�xm�����W����z���9m��R�����: @�z�U���H�r�����SRU<���{�s�L��1D���?_����_85~yy�AC����W
n���bH��VZ�� p��������c�~������_0������\}���x�OQ��}���j���_�:]
	Vu���Z&@�:�H�.�'b>��|�����D����X/�']�����T7����':<����H�(���!]���uu�	h�@���y#�=%VEou�{E�����=*��w�y��t��f���'&2���!C��x<��c�=z�/������Y�|Z������
5C�@[!#�*��f%���x���='{��f����g����#@������Y�;C����w�������z+�U1�WV?��o�y-��h,�<�L����S��)S����2^�XA�@e�ST�������J�$��/��S���;3��#�8�t�N8�Y�Z����J*8���K�����Y��L����X"��x����^x��Z}H��d�{���S���u:�����\�7d����"�*��c�=�i{?���Y�:^�cXG�@u���n�I�S���Ru��97� ��@�����"���z���;�=�Tw�v�T����g���� @�F@b����N��J {�*~���V��P��&L���)4��2~��X����2�	4����������zk�~1j��Rc������]v�������+"a"��(���c�'@�z��/{O	����U3fL^7�9���;U=���Ju�?��Nu��=�D�yc�:^c|��_ ���L������S���7��I�J&��h����3R���/�D/����9��3�(UN�:�4��	hI��YJ���f�C�����gU?K�:^�s��h�������J�T�1�!{8I�|L����v+_&�o������D�b2WV,U�+�6O�@���{���S������������f=��_f�7�Su���� P�@��Y|���V[u{�|����$��2|��R�f�������]�m*���c�'@��1d_���w�D�bBgw�Uw�qG�_�=�uW0~����W��m���KJ���qfZK��S��7��e?z��"�����YjD<��SjQo�m�������������V/k�) �7����Q @`��p�
��� _d�r�-���>���������������Qp���+�S����x=6F�Y�����������%c|)���J$5�1��P,�]}q{�aE������}���x���	h��K/�T����k=�P���7����M�X�U��"�U=��d��/����S[l'@�z�����?<�����W_=��t�X���9w�uW�
,&��]�Ru�bl��G�q�����kE��S���]�m#@`�������hI��R��7}Z�&@�z+ ���b� @��n����B!~��������_��Xu�Yg��`(~�l�9��J����T/�kJ���!��1��(����,������=+�P(���c�'@`�	�����������s�A�>�hi{c�e�������>�������� �>��.����=zt�`�&VE�{N��!]���>�[�Ru�,�)�(��cH�(/��B��o��z���a�������������?�T��P��i8���K�)�x��R���������L�RZ��B��R���U��'@��# ��=�� @��x��'k'�tRm�����_��Xu�a��<��c��5�����K������T/l���B��eD�k�����]��������p�1����eqM	���ee��������J�b�B�0z�*���/0z*��hq�����.U���!@���=�\�����:?f��U��
�����J�c�=�}�����3���xy`3�M�������#��k��v��oV�9��xm����^{���?��F�:uj=A3�6����<z
����*U?K�:^W���h�������J�:	?���X�����>�{����+��[����u���j������1cJ��������yC&M�T�~�������a{��V�����u��h��%�\R�/w�q���������	&tj��W^Y�{�5�t���"������8�i���m��������B�7�V��^����jzj��G�����:^Om��������������)����)U��>){ ���[l��O��a1z�P��{K��i�U?K�:^���	 @���H�j��# @���@��|O�U���K���R����������~��|������ 0C��Wz��}���/���g�)����~V������#���_{F���uu|�	h�@�����)�DW�q�����!����[Zjh1��[n��Su�<��*p��'���C���X5x��<�����R��}�����U/l��������8�A������?��sKm��sJ��J��@�@�����{�k�4.�5�S{�~�Zu�N
��h������
N��O�������F�X���t=�����9��c��U���!@`�	D����x�2dH����*�)~�Y�S�7�*6,l��V����U���� ��/��R�5^�O�|�O����N�:���K��q���4[Q�_
><�Ru�<��&0~���}�8�gv�b2D|��U����U�X�i���_�U��v�F���D�S��A~���x��Z��%����k����'^�'N�Q������
5C�@[����-q���/Y���������=Ze��i�����g�U�+��< �~�U�7v P�>������m��������~�sL�[����f�!�0�����E���?��=�=�X�~���U������~U����� �^���_���n����z����7��t����4�Hu��g���z��-5��d�������f��S�����/&��p�jbU��L�=V5&d�~����T/l���|�������|��7J��x��g���)U���iJ�@{�
����k7}N�]��f���g����!F�~�Zu��(�J�t% ��+�	 @�@����$Vm��v���/5�kR��`�K��T/�kJ�@�4.#���z����������#�<�i����$�H��J������x�	&�"��x�����o��7��s�)m;vl����b��/+U���� ������t�����hZ�����x��N:�����7+���*�eqM	h�@O���/�"����;��)�]v�|��?�T/o��"P|���'�u�Uy���:�`��g���W�,��xyC� @�}" ��O���J�z��j��w/��2eJ���K���ALG���Su�<��T�1!^��eBWIU���xo8��CZj��o��W����x-5F%�L`�����J���Je���.��
Q'�������x���k�K����f�\ ^����a���1�_nv��T�'� m�}���v����w�:^�3�@�p_��U��?�To������a�J���s���1Y;~������V/k�) �7����Q @�@��}O�UtP�~����(/����>c����V/l��>���Q�F�^���ftk�yuW�����������+v�_�f��xY\Sf�+���t�(�s�������:��O�C���_^��xy`3T.P�
*^�GqD����k�_q����X���^��VL�(&r������{��I��ZU���!@`��a�J������?�To������#J����;��3����K��|���>U?K�:^�P3 @�@�H��f!@����*z�(~Y�Q�T��q�;��#���xy`3�]�����5v����?��OK�/~=Q�R�������v�:^)�f�@�S�:4oS�S�=��T�����>�{l�K����f�\���������m���tx��w{lwq��hGq������s�����t�(>/��sJ����	 ��k�����^���?����}�������V/k�) �7����Q @�@��zO=V�;�T?>|�Tv�m��>��������	�F��7��m�����v<(���_"�t���~��@O����+3z�*���c�'@�Z��_~�_*���?���������	��/%V]u�|�w�y��-�z*\pAi�o�1���xy`3T.P�/L�|1�����*�"���=[e�/&~�~U���-� 0�o��v-z�����k�������R�-��2�����^��S����	�D��4	�v�i�{����c������}�~�Zu�ON @�R�U�r
F�����������X����v������Cq���\u���-�[l�E�^��SN9��������w�1	"��(���c�'@�Z��/��ti���������^��%�gd�SZI�lL�~��W��jU�+�@�@e1�^$Z��_v����}y���M�#��s�9'��l�1����D��:^�6XG�@5'N,��c��VJ��G;Z,UN�:^���	�V�1q)���TbX����/�0���g�U��j���U}��  @�wC����������U������w�NU����V P�@$?_�1�JW�������CmV-_W�ev�_��W�-f��W
n��J����$����n�q�A��9��3J��<����n�����������K��
q��Ru����	�{�b�d|��D/���!��=P5������+�,U�:^)�*(&I�=������_|q���8dy��S������H��t	�����w�g���)��
+�S�����P������k�h������
N��O���AO=V�^1�_q�w����{��_������k���x�n�!4����!V P���O?]zM�����.���q�(>`�x���x��U5�T;U�iC�$@�2�b�C��O:��.c�y����?��eb�x�Q|��R��#�k��w/�m�M���<9�3��}����hP)Z��4�OD��~���9x��Z|��X����2�	�0�����#�L���?��������)U�+��<�4�2�K#��YiL�\��;U��Yj��:5�
 @�m��F+0(��X5e��Z|YP�/��:uj��_��T��V[���3U�+�6O�@��o�y�����O>���.���N
���]����_`g% ����='�|���JiZu�RpT*��?���k;�)�����y������'?i��m���T7�������j���k�N|���o�I�����>�MbU��h|�q����~Tr��w�����i����|���� V P�@������vDU��v�m����z�Q�������<�
Do���r��2r���C�G����=���[�������< �^��"|��h��l����#�*��W��������k�&�l�is�0]i����#)�����t�=����Z��>[�:^����������ZkMW�����#U)F����z������1�FZm����;B��9��CR����u�B������G`�=�L'�xb)xGwZg�u��o��:z|H�����^;�r�-i�9�,�'NL+��bz��7J�b��Z(�{��r�����6��qu}��xMb%}&��k�q������cU�����=v���cX�R��/FSG��������]i[����\s�UZ�-T/�kJ�@�?�H;��C)p���]w������qL�0��}��VJ����>���sJ��J'b������:z��w�VH���'SG�vz���J�;z�M����eU?K�:^���4���?<��1���� @��ho��� @�@&��O~�k�Vz��������������EVWC{e�bZu�bl�L�������+��wo��sL���Q�z��[����F��pd�����5%@�z��)�qx���-Q7~��]y��'jq��.N���������W�m����M�U���5��c�i�~��W_}���:^�����5jTK��x_��[�^��n�Y�����u�x	�n����Z���Z�����.��m��R�����u��Ya[G�k��K/����aPm�%�����,W���:���k��6+��s @���X�P�3���4���]Q���?���=�����_zw�@ �:zzh9f��Z>���(�ne��:]s�5�<N|�������P�����%�\�cRUv���eqM	h���7��m2TG�$�V����fm��w�2	<��������z\��V���������n�r��������}Iq���?��Z��j�:^��U���<�����^f����^	�q�����?�T��sP��ix��Wj;��c��>��2z���P������|"��bG������d�,��qIV�]vY?;;�%@���$`(��Oe
�/���N}(�����9��#�^�/�|}��i9���MK�C����a�������������{�G?����eZZUu�ii�}hM���_���k�{�����x��w��t<IO=�T}��_���,��ri��A�.~Vi�ij���a1�y|��H�H/�p��I���~p��Tu�ij��hI�#y2u$��<u�LU�k��WN��;oK�7�T�����5k�uT'��w��_��#!'-��2��?�r����VoZ�if�'>Wn����^(5q�UV��'|���R��+�.� 
:���<�D@bU%�� @� @� @� @���
������+���l���i�����1D`:������Yd�ERG/��C�P���B@bU�b @� @� @� @��t	L�4)E�TY��7���9��l�4�����w���|�/����[��f @�@��P� @� @� @��K����K�CUV|����Be���_���C���]v�%r�!��XA��G@b����� @� @� @�*���~�N=��z���^:����6nq��a���������o�x�}���o���z���K+��Rz��'��n�����C��W_=
2$���Z)������)��;6�s�=i�%�H+��B��W��>��Oe���>�������J�?�xz��G�[o��>��O����k��|�3]�����������\r�t��k��&����i��WN���7�m/��j��[nI�����[�_�{�UWM���'�Fm��X��<�����|��; @� @� @�f����)�����9��#E�T��M7�4ErT�m��&}���U��-������9��3������e+����z��]w��6�|�lu���{����k�N�c��)S�i����?������1�O~����N�{l:���U�N�+s�����?�\p���0�w�}���__�R��$�h[wI]�, @`H��) @� @� @� @`Vx��'R�2��H6�^�zS��U��?�<yr��/��"���N�������$�b���?}�k_��'�l�Ht���K�G>��lU}ZL�*m(,l����s�������r��/���#�L�����ESh�U��;y @� @� @��?�H�������x�����x���L1�*������]v�%����i��g�M�l��Hz:��C������+��/Lg�}v&
><������c��s�I?����uq�#�8"���ji���N�<�H���/+��l]W�U#F�H���Z}���O?=}��_N���^���x��l���;��w�9
<�^?�\����e�+��A��}� @`�
H��W�y @� @� @� @�
�t�I�����[�B�vX���LcbU�Z�Z�pT,_���J�I�sU$?e��E�Z��v�m�zOU����K�z�z��'��?���T/C��'b�1�%�F���:��|u$lm����rcbU����nJ/�p�N$H�3�<��/���Cf%�y�-�������W�����3����92�r�)�v3����w� @� @� @��g��B�s��7����o�^�Icb�o�����v�	F�~x��������.m���y�HR�c�9��'�pB:����m�����+����)S��u�Y'���������z��+��8��z�T��|����i��VV/�W]uU���l]�d	b
�����|��; @� @� @�����~�������Z{�e��5�\��������	&���k���K.I{��G���;����Ul7n\���������~�����~�����/���}1T_w��3��5��y����l��V_lL�?~|���?�U���&MJ���J�CFrUW����J1<aV��_�B�hJ��) �j@^v'M� @� @� @���!�������>:�|������i���+���B1�*�n�����_s�5i��v��{��Wv�<����!���U����c���p��D�b�l>z��r�-��z��b�-V_.&V�P�����z��������U$t
4�X��|1�+z��n��:���I@b�@���� @� @� @��H zQ�{�����^Zju	8t�����.���+�*&Vu���Ub����[R�W��U�l�����4�[���n�>z�Zk�������O}�S�!������!+z������;�z���8�#@�@�X����� @� @� @� @`x����=EE�MYYd�E�����J+�����i1�j��!��/lkz��N��>�����O=�����|%_n6���/�H��J1���X���s�=7�V��}���'?�Ii]o�����_����E]�r�f�K�� @� @� @� ���}����o|#M�0!?�VX!��w��q8�|�f�*�*����<M�<���#�<2}�[���u���]��y2Y��U���8��W_���w�n�[��?��?i��/�2O��' �j�]r'L� @� @� @���W`�����^x�������������"������U#F�H����7�{��^:����=����*���.y�{��'-����V�y������1"�j�UW��� @�@��z6R� @� @� @��@ zu�h���3�<���_�z:����s����b�/���s�|��H���
��k�.Oc��vJ�e���O=�P~��&VM�2%-����1��o���� _n�	��}�ki���NK/�t�d���_���e(�U�r;Y @� @� @����~x:��S�����i��Qi��f��U5���U�\rI�c�=��w7`�0��n�m=�,��������f�����;�5�q�i������3'�|r�ve��.HC��M	 0 $V
����	 @� @� @� 0s	<���i�
6���"��{yj�����i����me�/����zP�4��N8!m��V�b}C�E2��/����a?��O���I�?~|>|x��
+��N=�����+��bf��1�;��N�n�e�M7�|s�}���uf 0$V
����	 @� @� @� 0�	����r�4�j��WOW^ye������h�����6�d�R�Zk���:��y����=�/���>��F�Xz�X�p�����+�H�o�yZi����������c�����H����J�, @` 
H��W�9 @� @� @� @`&x����2�,3�-��Uqr�]w]}H���'�x��P���05�������S����>:�y��=3*�q�i�M7m��J��$V��W�� @� @� @� @`&x��'�z��7��\s�5�e�]���O9��t�����6lX����t�?�������v}[O=O5+�C�9�;����N�4)���?M�;U���o��wN��U�Cw�q�Mo�q:����U����;�H�zhz��:m�1,������[n����$@��@�X5��s&@� @� @� @��*P������c�=��L���Xb����~4-���mm�;����z�����O����+
4(
<8�?��m=�������U�f @� @� @� @��* ����� @� @� @� @� �$V����� @� @� @� @��U@bU[y'@� @� @� @� @�?
H���WM�	 @� @� @� @�h������
N� @� @� @� @�@�X���6 @� @� @� @� �V�Um�� @� @� @� @���( ��?^5m&@� @� @� @� @�����+8 @� @� @� @��Q@bU�j�L� @� @� @� @�@[$V��Wp @� @� @� @�������x��� @� @� @� @���
H�j+�� @� @� @� @��G�U���i3 @� @� @� @�m�X�V^�	 @� @� @� @������U�f @� @� @� @��* ����� @� @� @� @� �$V����� @� @� @� @��U@bU[y'@� @� @� @� @�?
H���WM�	 @� @� @� @�h������
N� @� @� @� @�@�X���6 @� @� @� @� �V�Um�� @� @� @� @���( ��?^5m&@� @� @� @� @�����+8 @� @� @� @��Q@bU�j�L� @� @� @� @�@[$V��Wp @� @� @� @�������x��� ��B��IDAT@� @� @� @���
H�j+�� @� @� @� @��G�U���i3 @� @� @� @�m�X�V^�	 @� @� @� @������U�f @� @� @� @��* ����� @� @� @� @� �$V����� @� @� @� @��U@bU[y'@� @� @� @� @�?
H���WM�	 @� @� @� @�h������
N� @� @� @� @�@�X���6 @� @� @� @� �V�Um�� @� @� @� @���( ��?^5m&@� @�3H��g�Mo��F��.�`4h�j�� @� @� @�����+: @��W�Z-]|���3��LZf�e:�}�5�H�����_���
7���� @� @��$V�
W�9 @� @��
y�������o�1]s�5�K_�R���:�XA� @� @��,* �j��N� @��F`���i��V�w�X�S�!@� @� @`�
H���i @� @����_���4d��|���^�6�h�|9�����������������_�:�dJ� @� @��YJ@b�,u9� @��6�V��-�� @� @� ��$V��k�� @� @�r�U��
H� @� @�@?�X��/�� @� @���x��7��)S���c�W���<���������4�\s��M�<9���������;�7�|�>1S��?��?i�9��o�����w���}���
4(
:4}��.�'NL��u��g���
+�O~��i���T�����Jz����<��{����*���W^9-�����f @� @����! @� @��,p����>�[���?>���^�:���g�	R���/~1]w�u�}W[m�4~��������i���i���O�^zi�^�����,��G?�/����i�=�L���o�����Q��~��WO�*mhX����n���{���-��b$j�q�i���k��J @� @����* @� @`������c��V��c�M���O��k����W�_���
7�P���Xu�QG�/�0�_�XX�:C���`5a������;��C:���:o�X�o|��)��J���C=���V+��!@� @� @``	H�X��� @� @���@��t����^x!���]v���K����?H[n�e}�7�U�u,<�>�_	��o�6����{._�����|�y�X������3��LqU}~���J]tQi�J+�����(1�`c/V���k:��SK�X @� @� @�@H��w@� @��������\{��i��6����$VE�V'�tR�$�(1���[o���%��D�,���W^I#F�Hc����F/[�V��t�M)���X�����f��>3fL��7�QJ���>��O��Y @� @� @���* @� @�@���'�{��7-��"%�����i�W,��^��7��g�����_L�/�x�n�-�H_|q�������������z���s��\�\�y�����+���:th�����l����3C� @� @��U� @� @���%V�x���_�BS���Z�4�_wu�Yg�t�w�����������c^s�5i�M6�������_���r��=��3�x��������UVY%_6C� @� @��U� @� @���%V���[i���j*���>E�RY�<yr�o�����t��6K�_~y}���.��|��|{$Q���?��cX�a�����fn��������.����P @� @� �	H��$L	 @� @����_����\{��i��6����5�X#�7�������HP*��/z���J+�v���LEoSQX`�����wU5}�k_K^xa}{cb�{��N>��|�X^h����f3/��B:��3�M�{l�g�}�e3 @� @��X�o� @�hK�U��u�m�u�[L�j��q������.��nL�������q�^-���.���O��>* @� @� 0kH������#@� @�-	�����7�8��O���U%V-��ri��	]��
�n�i3fL+U�!@� @� @`�H� �i @� @�����X5|��t��Wwy���>�����c���9����Vg�Yf�4r��V��G� @� @���X5.�S$@� @�=	�����v�)�u�Y�)N�4)-��B�� @� @�L����iQ� @����sb������o����t�Mi��a�r���^{-]��i��NK-�T<xp�w�y�U�� @� @��* �j�^x�M� @����U1�_��X�Xc�4n������_?�p�
�*���Z?~|}]_
x�����6�,o����t�u����f�8�����(����8v�a�� @� @�H��7@� @��{��7�����������[o�/g33cb��o��>��O�	&d�L��w^�f�m������?��<�x��|�O<��[n�|� @� @�$V� @� @���������+����j:��S�,�
T2/6���U�����*}��_���x����CIs�=w����nK_����s�=��9rd�����e3 @� @��U� @� @��4e��4�|�5��}���I'�T�6�&VE������+����96,-��������)�*
<8�y��i�%��V� @� @� @�. �� @� P�m���i���I#�n������9�j�����?�i:���:�C��.�h;vl���>�l�u @� @�p�U��� @� @��L��w�M{��g����K/���N�����/��?������ba�����������g?��t��w���1"]q������6�,]~���Uk��f������K������y��W_��
+��.,U(,DT{��w�����l��A�v�y���~�q�e @� @��$V�C @� @�:	L�81=���i��KK,�D�s�9;���WD���O?�y���������Z*-�����s�1�7_� @� @����f�px @� @� @� @�f>�U3�5�" @� @� @� @�f����|� @� @� @� @���O@b��wM�� @� @� @� @��, �j_�'@� @� @� @� @`��X5�]-"@� @� @� @� @`H�����	 @� @� @� @���$V�|�D� @� @� @� @����f�px @� @� @� @�f>�U3�5�" @� @� @� @�f����|� @� @� @� @���O@b��wM�� @� @� @� @��, �j_�'@� @� @� @� @`��X5�]-"@� @� @� @� @`H�����	 @� @� @� @����?SW��0��IEND�B`�
hi-concurrency-11-12.pngimage/png; name=hi-concurrency-11-12.pngDownload
�PNG


IHDR	V���O�?iCCPICC ProfileH��WXS��[�����H	�	"�H	�E�*�I�PB;"*�T,`CWE] kE�,��/�������&t�W�7�7w������9w��;�������9�|ILh sBR2���@P�ryybVtt�e��{yw ����L�����h�y<�h�S�y���W���|�2�|z�X�a� �Kd8]��d8U��m�b���B�r%���C�Y�K�j};��B�L��rrr��@lm���=S�I��f��&��>�s�� a�8�;��L��.9��AV�R3$a1�9�����
�a*�����(�� � ���!F)��x�=j��c���N|nP8�����##�|j�0�1\!�a>'b=����c�6[%�1J_h}���R���_�����x�R�u������
3�!�@lQ L��X
b����p����v���D#����(4P���IBb���9y����f9�J|0?#.L���������D��AA������A���c���X��q~`�b,NgG+�q3Av��7��5� V9O��R�������q�������x�� �A`)�� da[oC/�S��.��t JfpD��G����	��
���
@�����H���Gd����p�
���Q�!o	�	d���������U����A�;��L���zd�Z��A�0b�7��p<^`u�=q��y|�'<%tn:	w�
�$��:�~�2�?����nx ���2��
��
��p��
�le���0�i�m?<
�����u�d��#�����Td��1?�XS�������C���
n�-�a����E����I�k������z"_]��b��dA�?�
>YY&��j�z��(��3d�h�����3��,�E09"��H�����������!�n �K�������}�"�^?�n���9��5���2�TR��p����p��c`l�|��;� �Q $�)0���%`:�
�PV��`#����`8�1p��A;�����
^�>�|F���:��� ��=��x"~H0�� IH
���)2Y��!��FdR���EN#����� ��O(�RQm��BG��(
G���h::
-D����z���������
�}��cS��)��ybl,
K��0	6+�*�j�k������bq"N���\�ax<����s�e�F|7^�����.��F�	�o�0��N�N(!Tv�����MxG$Dk���I�L�,�2�&�~�)b�1��D"���I��(��O*!m �%�$]%u�>�����8���$��T�T*T���P���L�3Y�lI�&G�������&�r7�3E�bM���Q2)(�)u�����7���f�^��U���U��P�������E������R�r�.�)���fE�%��i�i5�3���jt5G5�_m�Z�Z��U���duKu���B�
�C�W�{5�Vl
��\�J���4�5���5�4s4�i�����\��e����*���uF�1����t}!}�,�[��m�����.�������������3C�R��N'cX18�l�
�A�M�']#]��@w�n��U��z#��z�z��n�}�g��g���o�`���7�n����A��>#x#JGq�5�3�1�e��������(�Hl����Q�1�8�8�x��	������d��I�?�:L3������354
3��n3m3�lfmoVd����9���<�|�y�y����8���w-������,�[����J�Zl�`��Z��c]h]k}��f�o3�����-���6�v�m�j�f�aWiw��w��o��I�5R4�z�-�����������X����r����Q�F�����)�i����Z���.�4����3������%�e�K��+W{W��f��nt�qn������{�K���{<,<R<�<nyj{F{.���E�
���u�����w��A��||�|��<c=F0f����f�\�m��~L���~����\�j�G�����X��L�^��@�@I����lo��� ,(4�4�-X+8>xc���������P��Y���a�a��nq�8<N
�o���9c[������E�EH"������[=�~�e�(�!
Dq�VG=������x�����������s>�;5vO�����q��m����	�	�j�'%�'vN5a���II���dRrB�������N���6�d�����gL�8�`J���S��r�J!�$��I����Vs�S9�U�}<6o�?����#��������=O�M_�����Q��+d7
_e�en�|���+k ;1{�JNJ�Q��(K��k�;#�Cl/.wN���vZ�$\�3������
�[�6�E����������9C4�u����3���<����<�t���]sXs��E���m�g>�x^�����Pd-�����������M�F���/
]T[�V")���g��%�����.K7,�V�/�T�TVQ�eo���F������i��V������R���*�U��5�����~
sM���k���X�Z�ee�t]�����,6���ec���������V����tus���-F[��|�*�z{[���j���������H�q�g��kv�,��u�hW����-555{���Ek��={'�m������n�~����������r�`���C���[�:B?RZ�����k�h�lLj�8:�hs�O��_�u��X�q��+NPN�8Yx����T�������6�;3�����-mg��^8r��y���|/��}��%�K
��/��������#m�m�W<�4�{�7u��8q����kA��]�\�|#�F�����oM��y�����;����|o�}���*>�������������Z�>��������'_�����V<3yV���������?&���B��so���V��yy����Z�&�u���x�����]o]�6�G�?|�������v��x�S��g��!}Y���k���o�r�\	W�+������z�$��|F��8���8���OXqF�w�`#��g���V��v�_����������\)+Dx�$CwVG��aEq��!��-��������z�)���eXIfMM*>F(�iN����x�	V��ASCIIScreenshot�Y��	pHYs%%IR$��iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>1420</exif:PixelYDimension>
         <exif:PixelXDimension>2390</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
)��iDOT�(�������@IDATx���%E��u������4J	��a��d�E2T��	A`�D�C�8�Id�INJ�$"Q�������ujWWW�9�����:�O�����+�������}1*��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(L���,��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(J����(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(�����@tWPE@PE@PE@PE@PE@PE@PE@PE@P%ViPE@PE@PE@PE@PE@PE@PE@PE@PE�A@�U ��(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(����(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"� ��*�UE@PE@PE@PE@PE@PE@PE@PE@PE@�UZE@PE@PE@PE@PE@PE@PE@PE@PE@pPb���*��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"��*���"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�8(��DwE@PE@PE@PE@PE@PE@PE@PE@PE@Pb��E@PE@PE@PE@PE@PE@PE@PE@PE@P�X�����"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(�J��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(J�r�]E@PE@PE@PE@PE�
O<������5���s�m>���
��E@P�B����3�������n����Yf��|��73�8��f�i�z���(��"��%����y���m���7��7����QE@P@ �Xu��w���{���_�,������������>�����E3r���������os�UW�w�y���s�9�Yq�k��_��Ws���vdk�%�0,�@�q=�(��"�(�@!}�
7t$��"���Z���P�D��7���?/�����_�b���?��)��:���'?i]tQ�RHEPz��[o�e�<�L�����>d��zk3�L3��/��B�������?���~4kf�m6C_F��Mak�O���+��#Fd����K�O�BE�Wy�s�gz��c��1c�:�;��"��"�����{����|��Y�+��<`���f��Q�%z\HF`(�^�_Zo�@`����n�������p�n���:��3�X��0��4iR����+�Ll��������nl��W����+�4��r��c;�����!�;��"�(���c�=�<������
f�
6�8^��q��%r-���f�
7�G�|��v�g���~����m:�����\p�Y����}���PE@P�����4��vZGB_����f�m�q�� �����5�.�l�b���mk�.���������k'9�x��l��������^����jf�y���^/R�z�X�"/?���s��?T�?���)S����
F�"�g�y�J+�d���BM�8��'p����|${>$��*�@?!���C1o����ka\;�����N;pL�(��"����~��_d�b�H�s����������%I�#���?M�Wo�=C���{���������}���8��wXl���?�N8��]���/�m����x7��p����H��F����q{������O~2h>=��3g6d�%E@PE�X��z����fMPE�o�'b��>h.���L����;��}�s}[n�~1iQA���rCG�@����k�^Mc�`��&�SLZz�"P
�x��}����I��:u�au��"�����67n\e�Y�M���K���>�yJ�m���nj�Zj���zVB\t�E��y�d�M�2�,�?��E@HB�����5�K	~���5������I�	wz��''�[t�p##������P����e��{=Pb��m(�x<V1��:���[/H�+��"�c�X���WbU�G��(��"������K��z���rRb�I��g�A+����T�X�'��r�$YxO9����z�(DJ/P�x���1��m7�"V��PU��������s�9��!��GY���{^7�xc�)=�)�|�I3a��Ay��'>a��sO3�4�:�;��"�� p���;�����x��e�YJ�St1!	��
QbU7P�N���P�T�^���(���:;��U�����W��0_����"�(��"����%V��p4k��"�(}��P'V�q�Y(&���X�"�����w-Eb���ks�=��g<p��.h��v[5�0�S�@*/��RF�z��w�I�A������q��^{�U:\,��~����W_}��	q���(��z�"P|�c����Jp���7,���c��(�@
x�:���J����z��{�����J�%�b%V�"��u��P�|	�#��(���z8��U����:��A�l�������� XtGP�a���Z\���|�W4_���Z�s��"�(��"0t��*(\Qb��H��O�w��Xb�u�]gn��F1������?����v��f2/��B��=,���C��"�t ��@<U�������{��z����P�~�3�1#G�4��>��JX���x�����j�O<�<��3����}�cY�D����,�J��PE����"P7W\q�����%K��a��E@PRx��G�g�������E��;o�^7F�a���/{��r")c�n����jw������:�R��@�U��~ V�&���7���}�_��W�k�1���(��"�?��X���o6����U�m%V��t4o��"�(������d������67�tSG���'
��*a~�E
&��k���;L�F��y2���_/������Yg�U<�'E O;%OU6�*�����?������c�^h������-����>��C�R�6�|s��RK
\�#�U��.�|z0������O>�������/���KC�)M ��s����;���{����k��:��E@PR`l���������w��c����a�
cK�v���O?��f��q���u
#0�m/
C�W���@�UT�~!V=��S���N��F���;���"�(C��'VQ*��qW����fhu�I�j�X��b��)��"�q�X5���?��S���?���n��f���m����B�l��f�+�C+��Xb	���[���c��"�d�I�&����������{�y���On��2�,c6�x� )	�&��|�f�yf����g���D=x_�T���g	7��.�������\���W^in�����������.;��������k���AY]x�������A�tGP�*H�g���x��C�+���Edx�U���(����p�J��������9�������h�E@P�'��X5T�V�UC��4���"�(C%V
���N�%%^�|^a������w�������Fmd�[n9�9� ��Q��^�n�=_�)C��3�<�C�z�*���?����_���j��B�8��ObHM���{�����_��~����G��t�g4x`� �q�PD��g�5�|G�[U$z@P*"p�%���S�v������UVY��x��y�����/�H~���f�5��8�E@�g$��pk�O�*��O�0���V��w$�E@P�J�jq�)�����YSE@�[�X��E��b�����J��JC���J�pYx�������I�1c���c�v���" #��;����'�)S�txG����L�2d$���G?2���}���0�bu������u�]�����:�(��K/
:�����%��[t�����C���a�*��&��. @P7���s�i~��t�i��"�g$O����7���/�3h$�������,�� E@Pz���>���U�����������GUP�(��"�#�X�#�S�����E@PE�J���_��M@B���RK��7��=\��Ad���t�������3��{�{8#c@�PQ�b )�u�]�7���7�^q
����~��]Yr�%�7��
�pp�0~(�}�t��f�������IYri\t�E�nz��{��"�v�	q����^��5�=����"�TB@"V}���5����+�]������?����p�f�Yf�8�E@�g�X�A�����k��S�u���y������(��"0PbUb!����6(�^~�e��+��}�C�c�Xf����>UK����*<���o���!�����:��Y_�'�FLy�7�|���o���v�i��#/��bf ��o����n��2%���#�HW��K��-C���B���5�\su5�X��W_}5��������P��>{W�����������6�a�1�i��&)+u�����5+�
��#Fdu��d�9���7�{y��>T�X�1���[�}��������������l�%�#&���<�5w�XE_
|G��������~z3�<�dm~,�:�,C�&Wv�yg���}�=��O	�x�=����)��~���t�M�����x�
7��,�����<�R@���1~�����2���{��oj,B�}�������h����M�`C;���������|0�g|��k�f���{x��f���lP�<���g�O9������� ���G�����
��`�\I%V�������o�,�������_����g���n�
60��'��{�9���:NQ>�#eER��/��5]�|��=�\�MR����a`����3��=�&]��* @{���6�q�����r�*�k�~��WyL��m��9��?�m���_lj>\g{@�;�.�G���������n���l�}
m��!tO�����3m�)�6�oJ����g/��m!V���>s
�����eH��,��2��3(�'?����������:���������z��Y?���5�2�*����������M����@��*in��/|�l��6�pv\G�n���1
�GlVl��;�����C�t*����������/������d�UW5���N�q=�(��"���=����/��l��/N_�����
��)�B�����:q�|_�����+����U<'Nt� \$�0�I�
��a������K�c�i���6_��W��s�-]���n��Vs���wL���!���>��w�����1&�s�=�����~:�\��;���[��b�?�:����!?S�N�������!����|��V,~����z����:�c�[h���2�
3r�
7�?����*���.vv0l����|�;")��'�0�.���q��e�0�\x���,
��w�G�6+��Rf��X����$�h(#�	!������A���p������Z�A�����L��q���K)F���r;B?�&�e�Vp?}��[� �m��&�G�����y����\�����6����~�_]��r����3e�}�����;_b�%�S����/Ae�����x>B1X$`A��/1��<`n����d�[}�5n����+fm����?}(K�l�����(~���/f��bCY�>�l�����n�=^��C=d�<���$Q����������n�E���[��o���1���~�1.��5d�M�1/|�x�����l�1bH�}�-��Ye�U2��t��8��]ism��B����!���h�i�[�LHl�� Q��1��.����Yf����P�e����_JB}���O���bu��OR�������+��_��9-e�
ur�u�u��H���
���� "���V[m���|3��>����_��������0y���
�T��Als�l�^~+�;��3�(#�q%�S��Kbb��|g�)��dn���-�>�!�*���&�p�?���;�Z������1$��+�� XV��o�=+K7
�6�i��j>����zM��y:BF�m�?<�����9i���M
�s������N;�C����k�X ���\�������NuS�������[i�G]q�����\�|�����o���7���������>]z�P�X�}}J�Pw�W���������z0����z��9�}�2�"b�:t��uC�}�k�|��u���W�q��XE��-�$��_2'�:�U<����v�9�UE@P�}O�B�E(WPR�	y��R�k�v�u�1������q��+!e1*V"��bc����b�_~y�R�������M	
<��b���7�|).� ������*Th��^k��V6P�5 a$c���v�m��lJ
l���>�l�Y(lS�����3%�K��I��(�XY�N8����`N������ i���`4������������N
*,���� A�;�|���^L,��y{(zn����,����XO���Y�b�����.<��#���C�_��)J/7���^{������VI!z:.��&����:(w�������;�&��e%�g<��
�^�X���O�����{
)$�<}�3��H��H�h�JbJR���}&�E������bnZ�}H�!AAF��eS��z�����=�-���|��	����w���+��l:�F����v��V"R0>�(�<#��^�E��P��������M���qt�����_ �3 ����0Lc,�%����%/���������w�m�#�7e�7r
]����c��Xc��m������U��_.H��*���W�=��#	I�
o;>a�.��+v~����p�r�-H�1���OGuT�-���kFh:��c�F{c�[�	��>����-���c�������q�+x��������y����1c�����s��^��+x��|�\=U0��&�o/5���I}j�0��C�������E��^�|�3��!��|���}�c}eC8���l����.�=�O�t���.�p�b��s���e���._�}����~���'�\)���KYhs�9�t�8���$m��
���.���EX���g�E�u�yu�^��;���u�����6�Q�`"V1$�{�BK���� YU�^�U��I����Rl����z���^��*��y
�W��2ORQE@^(�*��Q��U)UPv���G�J!V�4��QE)��{��^PI�����0�a�B\U�^P�1�e�pU��
,��X>�a��O���?�#eXv���_��W��'�%_x��V
"�$m&V��rU���9M�J�*5=�)S�d��{��>�J�L�S�c=Ea��__�W!,H.�)H�u�L���J`�1���s��v��Ii`����4L�
e0�Wb�Uxs�P��U�@��P�#Lv�X���<��.���x?�+�c�i�5����w�������q!�e������w����7���/C�+8�'"H����BA/��c����m�I�j}&M��m�QT�.������;T�������C����L}(�g���"�;�.->�{��sx���W�I��g��U�P|�;$�Ph�V��u�]gn������?0���!i����Hm"�f�nL=���E��]3fLF,r���/�_A���?�9�a^��1��9/F����>������7����gvw��pL�#x���}���M���2�������y��M_��%�I��y��cD�-TJ
��1$u�9m�+x*C��"�&L��q+m
}Qh���|����	���s��?P�����Ht���������qYbU�����z�_l+�J22��Zd�E:��3�g����v���M�Ii{!��1��@.��f�����j�ymR��t=��0�������Q�b/���]|����3Wg��;/+J��}U>/u���b!�_t�E�le�SBr#�������^GBz@PE`H!���@q�(C��"�[R�KF���2r�H������\a:(1f��L�= �B�^�@���B��O�B�����9$a�<�[U �q;��g]X�|����I��U��������(�R�����0��������[�'��h��p��>OK�^<4�
F2��	�k��#v�]6����d�_����r�]v�^-O�v��'FC��G��	7^.���/o�x$��+�"VA����<���x)�M�����
�!��e���3/?�X�\�7N���?j
#CY���|z6U��O<@���#|���c�>xb��_�|������!1���������c�����(j!
��fAH	���o��c�	�U��2��e�]�'V1���
%��W�`����C~�k�+x�]m������R;���{���Ej?��!b�
��P��B�d��
���<3������r�����!
	���C=�K
���CZxK���Q�HO>O7=�h����!�lk�/���,�a�C��x0"d�+|��)"��h+����&���j��P�����+C��[����4��!V5Y�U�;���m%VI}�<�=^�l�x��E
�+�d��S����c�:�7=&�.�#��%�+�.WD^���K%���nR��t=���6��a�Z���������(�\���*��U�U�$C���J�"/�z�q�C�;?�WQE@(����I+p�[�Z0�,�d��2.=I�nbF1��o��f���"x����w�yQ$5BO�C.L��0����R�'#1���_`p��U1a�0��V4���+�����6�������=�!�������-���(RQ~P>��}�E=���n+���=v�
�#V��c���g������E���H^x�����>���be��Si�G��
���b&�>
�X(�����*�]i_ ��]r#J��A�L(Va�
	�}m"}C��n:E�*�^#���c�~��M�B�(/���*+���<�1�B�?��O�-���>��!��H�(�fR��X��}O��~ED{���\�0���t���7�/+M�E�#���b����&mIhj�/lxL
�D�
��9S�c��[��K�@���>�;��,0���6$��rJ�3
m	�x_�1���6��m�Yl�W�s�'��x^p����I���;2!��o�BK^h��$�WA��{�0�xosE����R�%�b��|�0�P����E��7;�����nKv���3���B�_}p�a_
EHc�y�B�kc�&S��s���M(�&�{�M��-�|aS�65���>�5�|K���>K����;�����{{���n��R =���!Iw���7}LQ�G��A�.)��{c�i<?O�q������,__�S�Q�{�_��D�_E���BUI��^��~�o�>	BX����?-��M_���1)m>��(���F��N����H��}�����TB
yjZ��d=��I?�O�m������]�����|1����P�M�U��H���P���X�+�
�'��Jl�o�����-�}����o>�^����"�(������D� �����x��0���

V\�!F� V1cp�G�ee���o������o ���UVO�lQ���aV�I���������m��A,��!�A��'��?�$�
y�H#(��^zi�
W[�0b�q���n�L�	AQ$E�,V�����3y������n�����]"5b
���d�1.���*&=p.�>PPm��f���|���A��w��V�|8�S�O_����2")��i��.��m�X�b�2��e���khW.�����s��������s�=��&��k��1�m6��<�J}�������B��B8��VZI��E[@^PtJB����r����X� md�P8EVcD��m���?��<��h�<�i�X������e�nO��6��(��D�����<0n���(��2������d.�(,%���!�N��E9L}�����4�<��h'�~Y����U�K0�C���+_�Jf���s<Vi
Y�P"�a�#+G)C����P�8����T�$��u���n�������Xu�Gx	%U<���A���J(�%��T���'3W�K��nH�"sFRQ��m�KF-�NC�������~rcz�3���~���d����:HJn��D����?1m��{���U���6����q�7m!�0_�O�D���jv��CT��H[RV�7=�<��#��Q�Fems)��+�����p7��.K��hS�g�[���B�@{��QZlG{��q�$�������C�����oW����.�~�����UM�����}i�e���~�>�r�� ��"�:z�����7vKHi�H;���/�����Rxg�.�,X���;31G
1X\��[����TBM�z����T>C�xj=hz�Z���*���G���o����g�-���3f�n�}�4/)"V�x��0���)m[~~����!��M3dC��H[�����0�*��"�(����U@�ST�Tb�WJ�IJ2���54�������BHFE{OUb�b�-��B�c,&4���F>P����yM�Rv<#������c;�bI`b���)����}���30
��%r��l���+��|F�FaC�`�,	�K�PZ9X4iFQ��I��c ��<���[D!��2?��YC�X��6���
R1b���{u)�-�e��n����K@�joxn�!'������o�ai1�Q�cE�������&6�2�
b�"d�6)dV�`0��������o'D��=��._��!bi�H�����=��##�����K!��>&,�T]����P;GY@,'!��'��o�N�,n���!�����q���q�Hms��\J��C|�R<S���?��X�U��.�$���[o�e0���x{���Ob�Uz�/B��c�=�}W�1=�Ji��$_EJk������8�B���	�b��>���)<�P����>�v���O��u��{��cu�������q^"�`l�#J^��
���_�a�G
���V���",���Y�
��2��������2,y������BE�1S�wN:���o��`�yZ�7����1^��|P����8P"��@GC�� X�$4G�]_�����E;V����1�4�Ks�NC�qE��0��=������%�x�����M�F�������j��c���zUFDZ�p!	��
��{��6�m^�&V1=��Smvj�2&�v�m���*nrL��;�`c����|���+}���>��F"�Qw��j{����z�&��������z �q,�����T���X���_�,z���	����I���*�X��P�1@���b�vx��wg<%l8^�X�x��+������}E@P�v �bU/_����j*�8����I��1*u�Q^����
�����3�J��m��6�x�
��������w�=��b��p����6�h�-�B��0���+V�U��R2KFQ�\<�a���O��wQ���j�2�S�u�I'���n��V��#/C�XU�]�}���s�lzx��x���F*VO`��bB��p���w�
yB�aLc����n�P V�ioC^�B��BF�2n�C��"V��	w�>I	� �c��T!Va����#��ne�7|�D�<J�����<b����w�F�u��8�������dhY{��wD ����&�"�.�g>���%r-���5j�e��<r�+�^�}���v7�
�C��t!�5
A���	xB>���Gh'|����+1�{O���m"��C�������R��8|u�j[*y��������3�����{\I!��iH�Rk��KmD���G>�v2�t��g�[��/_ys��D(� d�s������ER4���B>2�����(��X�<�-���<6���A���v��v����K�qm����1�<��+�o�t�0�q�
�����~�����ppq���
�M_{�����<�?�A�@i��!c'�$	��P�R��o�~���ibUh�m�Xe[�J���&������.l��6�8-�����������
z�&��-�~������9j]ePD��O������;m�IH'���*�X%y�����bCv��B��~I��2�'=E@P�����<�&)���AR�����A��)��7t/y@���E	�@�GJ*ct�r�;�D�0�_�:=���y�2��1F��3�Ii�y��"mp_YC������d����<�0 ����~!-�������oX�
��X������Vq�����J�OI�����:��@�����H.����P���JmT��r�DR^��������&B�z��&!��V��
�'!b!��4�Jj�C��(��6����
����������}���1� �>c+qI��R������
�(m6c<u�+2T�l�B*�N����B�y���Q�Sc��^�'�a���B��>Ki$�AhLj�����1B0����a�����Kd��l���i<Z�)�y��� �aHr�P�yB��&��$V��|��9P�����F|}�eO>i�����lE�K��|B{�
)2*��������#r-^#bH��to���,X����[�!y��@��;�[;����������$��+_�r�%�x��e���{�
]C������������e)��'%��x�����o��|���o�>/O�m���_�-�r�[t�E3��{��{����w�y�S�=�+E�yB��6�o�{J��E�h��4�J�k���E��1��8�����d��0?����-��e�������<���"WVX�A�����I�m�4����wh����������9j]��~��n�_f,��!�S��-}���
���8��]A��m$����'���*�J���,dq�����"�(C%Vy�N�(�1~�G����������w�5��b;{��|(�$�)X������{D��/)�H?�CW(��o.�
V�{�O���|��.�xo�����o���h
9��%a	}�>�N�
)}��1�������&J�� ���9;>E������p��!�t��JI�Z%��C����
QQY��b�+E!@$	���W�������I��	�D�e��W_C���U(�!���S�v��U"��������I�w+���@8��n����:</���s?Ty'���]��s�9GT�q�D��
:\I����!�R�Hn��~Sc��<��3�4������g;����{B���G���#)�SH��q�;�y ,
_W��E0�A:��9m��g/=�u������UR���G���������y� x�Ce��w���>��	�Vf!�7���QQj�=�d�0{����>�:C���f���?�i\;������k�����A���G���|!�%�H,�6�y�/�0�D[��v�,��M�h_"!�V�2���j���El!l�v���W�2��=�}��C�?�K"����W3���B0�tZ�*�w�R�>|���p��:v���t�M�$�S����_@#��YI��sH��6��s�.I>'�U��J�Jt���e%��=��{z�m^
��
z���A�2*������9j]�J�D��y�-z���_Zl���*�X%�����j�A5�|�^Ub���=ea��L��"�(���B@�UNqI&9�|'��]i%�+!#LYOG<KZA���%�"����3��{�s�)F�xa��q��!*�r�i����V�����%��>�6��+[o��Yd�E|��=����;X�����+3x���������w��q��� ��
{`��-?��}��UeB������w�m��+���&=�
y{�(�GRzJ�Z�{=�p���GF�x��
��BB8-����1B������X����Ee�y&�}a�|���'=W�L�����s�,2(r=D/HQ/��rf\��D��U�����~�CH���PSE�pB�	��R��g�yN"�<>�ILX'����%������g��%�T�4\����m	m��m���'�[�&f��'���x�e%)���KRZ�x�����S"VID�!b�)�*R'����#�Hx�bt��W��n���r_�������s��*l�~�}c��|#�W$!�b�pt�7I�����B�w�#*�}������X�&;h�#����6��'�9/	J�	��"����0����*����E����v�����3>�<%��37r�-��:�������ofs�a<�� E$������B�Z�7e�*�����X���-����m�/�|5I���H��
=�B�N�;�e	P|^X9/���*M�I%o'U��`!������6/�P��CS��j�m��)��wiz�Z��J��=W�Qr�B����J�cI��9����p�H$h=1�|��
�VW|Q\�kt_PE���X���K����/z��)|���I�
R�	���
\�"<�Xr�������������{b�%�� �@�D�[Z)��+�D��/�Chp����j$�B^�Zu(�6N���>�h���*�)^}$bUJz�$�j�8�[��

�zJ=���(�������o�N��sN���)u�d%#y��*<W��"E ��we��3���t�g������D�)�N7�K'FR�t�X%���� ����dJ�^������mc�u	4�zX�6���/,���ER8���(����*�[�MW�61	yIH�����o4)\�u�J��M���V�-������c� ��^Aj�����k�u_g`���v��1+�sj����U!Cf�<V���H^���c����V�����e�B����V����Y@���aH��|wE2pHu��H�{�<�.���	D�|b���V���.��F�%lc���!*��/�?K�N���!�A����2e�oi]����<��������������	&��"��R�n~���E�h��$��y�I'�d�_�@��[t�����>j I�Xx�������HF�C�]�r��gB����5u�yem/m�;4U�r�������w�sT���[I�U��^l��W�%VI�<��t�1�$��R�/�����}�nE@P��@�����10w�q������pZvP'yz��
WZ=�B�*��b&������*[I���"?6R�s?���S�����a�e������"���lJF�^(�L��`GX��"�R��&H|��OOB��]�'>�����S(��d@���]�JDq����&�m!VU!�H��?��O�]w�u�&%D�+�l����N�;`�0��{
j���wy6��S�r}L����JRh�\�+UH�������c��1c�������7���-�*���")wH���P��I�L~�|�Qu�$������>������c�GV���-}[��c<�Bv�h&�;R�+!�<1�1b������=1B[>�.�h���F��|T��.b����gn��&q/r���H1���g�3�d�s������1}��f���Q�,YM
_���(_�y��C�I�y�<�HsE)�0� �%�sE_�|����'�p/��H�;�<���1 ����}�U=&�S<�W�K�c�PH���8�Jx!uIz�[hl!�K����T)Op�����$cA�x>r%���U��\_����/��Um)_�=UB:�P��y^(m�~���$����-}7m}	u�v:E$/N���X�����Ge�������������������}<�����y������N�� �������,-��F��K�C��w�W)[,R_��9��G��D��2W�<���Z$�y�^�Ue�U��5Xl���I���	��R�@IDAT+U�U���j�n>u_PE��(��)�_����;b�p���b��Vv��R<%�>�J�n��P3U\��e��K���C�)���
e�i�\�&�F�Ye9�9�>������fb�1QV$bUJzR]*��2���H�zj��Wk���=z��l�VZ�2�l�y'q�n�a�gdm����,)��� D `�*w	��R��*�*�v)1�@ha�&[w���Lw?���J�����y�s?�E����%-��@��o��1���uIA�qa��D��s�=
��:����&N���*u(�Bd��>8#��,R����s��[�+���To�X"V�_)���.�>��8����n�a�����I����UC�J�r_Xw��+�M&|r����[)���G:u�I�����0���l���G�*"�$���GB�<�7���/}���Q
#�.��"���L���'�B��M��R��|cp���k�O��^�!����	�H�����{�}�o'M��}eTg{�_������9�������D����o~���[��;.L�2�\s�5g%bU[��#�%�I�h��b��O�-�]���K���>��{=&
-���}|iH�
�n�$R�4om������WNe��
Rc��:�����uK�z`�/�z9G�y����R��6,��,����M}UYb�e�]�y�w�q���2����{8z�����.H��V-����E@PZ����b L�OW�*E�0S)����[�l��Fn�� VI��nzK������@!p���2�l�"V��e�^������|m&VI���c>���24��W��2!+�K=�K��B8Hm��k�mF�e����g�I��Iu��*���j/�~����n>��:�Q��e�UM0@��(V�t�X��T��^�$wW�W����L<��x��H�1��������i�t��).z^Sc)L��r��=��%�%��v@���D�J��M�B�-y�����?�XE_�B�B_�
"C�,u�$9E�5�����Psa�j[��od����VU~����%�bYr�4~�YUW���%�\b�����Jj�|!�N9�����J:O����-�*��["[��������fs10��2���o����<�'.]	�H��!�X��q�]��o>\W{�'�i�>{��A!�B����RRXF�[��{^������T��{��o�~�����U���;,"gZLR������t/E�7����%��I���zPG�Ks���}z��{C���6-�X��9��K��O7)�c�#��n��6�U��K"�JC}v�X�����O=���[��-	����')��|��1E@P��#��*����\��F<Brk�B�J
���J
�����).������`���&��uE���a�B"V���)K���	ED�"b�K��+Glz�1T�$"��DTV�JO�p��O��}��zj1������AYQ�1�U���������VbUUEM�`�NV}�-���T�)�b�Ux����
����n�$�m���Oo��2���w������w�RR�_��`q��U��s�O�����
�T%���$w�m73�<�����D�J��M�J-�b������<y� �Rv0�o���f�9�L�����I�����Q����\�����T�>�����~��e;�Z�C_��iP���dT�������;f����^R�xP����@�"���]�q,s(�C��� �_~�a��
�g�}������X�����k.��B��z�!���cS7E">��?7=�7�4�`�np�W���8��>D���xV��7�������g�?���4iR��=_u_"VID�TB��'�0����a9���u�[f�M�E��~$VI��:�U��o��1i(L�/ou�������wi��T�u���FH���z ���q�����R�(��������!��z=G��I���U!Rz�s���sW��bm������rU'g�q�a�G^��HK�A����<�E@P������2�s;��s���^{��x���*������G����~��x��I�JB"V��IMV$������W�j�Xc��zRt@"V�MO�E��z��^�K�1K"|���N@���yLq������J+���_?iF�9��3c�U��m�]��n�M�R�$���������!���(�
��i���g�s>�H�J2:�tc�s�5�������h,�+����^7r�����O�O/��n��.�W
�DC�����_��Wf�]W���|�M��1��
�����o��K�Kc\��^�U~x1�PFx����w�����W����(�����u�QY�(�:��&�����;���Ai�i�N����-��j������Q�(|��c���:\�{�}�D�rW�����t�\X�3��R��
7��,���������	<{�����������'�����N��>�
cH�iL��@1������l%���@���������R��m�<K�C���}<���������W_��K��N]X��c���o�������mS}��+�_���#�J������*�C��^�I��@����%��n��j�>����1z�^��:�I�Ua��(Ut(�'~p�7�b��k-DDW������,�����3�=��������������>�@h�K7�U���g�E@P��A@�UNYy������s��m�����2U�!��4�J]�.)��Z���F�����N�cO>���0aB�-U�6A���3�H����f�����2u����p�u�%�U�+�}�(xf�@!)h������^��
�p�����n�&��(��4�d�C�����L3�4���UA��7����#�~�R�l�X%y�)�%�J���||�������_����J�.�� )G��L%VM�8���'#�!��[o�n$��4������j�Yg�A��)����8J� ��v��g��������g^�?c\�����=�������`�
|������hz50�Q�1�3_�T�����v�m
�g��Nb�O9����e0��Q�W��^{�v�a�Wm?�.��9W�#����u}�5�J����)����^�]v�������d������n�%���'uI}J*��?�y��|09���1c���c;0���d@&�T�r[���(�����2s�hN$�=H����:���D����-c}<_�y5�>�D�����������R�H_?������9�&���o?�����s/�U�n�I%]���\]�.��b_o`[w�'����*il�M,���Y
�����d�q���������9��_����!l=��T���I+���6�U�R
��,�;��%����������^�NEPE��Pb�S��N�K����]6+�]	��6�4A��V	|�{�3�@��H�]�U��a�C�;��)����4aE"'��T�o����K��/LNQZ��X�jfW�"��w��0����!�@�d���<�sYe��&���%�:
��>�|���'����:C��e��7������R�U�����)"1|����z�c��bq8E$k�XE�VZ��c,��{����>�����'��g�y��B1��J��������.f����N����2����N:�<��S	W!�K��ny�ij,r�-��+���;�{b�����������W��Wu����X�R�3�<����<�������.)$xq�N�I��B�W1��US>�������p�:��H�!b��N��DN�;^������j{���$B�!��Bt�#"���0a�U�y�a=���s������w�^E��|Z�\9���l��,�(#mC��-�r��K����p��I�����:�0�<L���?+��o��f�e��,���~�����o��\qC���������XEZm)���
�o�~����Ui/f�kq�{[���9s;WxG�P�>�����������-���:��lZu�����]�#������,J��9^�����XUU� 9jpT���*K��B�.��Rf��7�����7��J�B�������=����"�(�����2�,>%�skpW$��ua� V}���/�K6�m���@�
�H"<+�J7���Uw�����+�U(�!�������$bU*�N2ZUb��>x�`��+����Y2����H!/��n^��%e���_��4O%V�(��}��g��]!$���"�3��� �"R���J�Bd��1��1���Dt����M%V�v�m��+���^�oj�B<A�{��7���*���a�M61x ���u$o�_�_2����*f�u��I��5M�E�qtJ/i������T/��L�r+$SB�����E!����s�_u�Nb��?l��c�.)�1�3o�	}��/��q�
B�	O�x����iT�������UD�["2�,�������@+�i}D0����j�|������1�������g����4���Qs���6��>�t��x����J��Q�Fe�Y�V�6��7��t��e>\g{ ���C�#�&��i���n%���	C�^�|x���Kj��R��W(�W����mK'������>��}N�U,xd���%�Hb��}�����'��"����_uL�n�>�'{��gF������:�<�'�{R�3��U�A���G��*|��� C�,[lZ�8�i��6�[���j&9jp���������*i�)�qb����*��E_�{lG����B=�(��"�(��)F\�c�re�9�4��K�r���Ih�\��	b������/'�xb���%���	2�����r��I��'L�3�0�Vi`�+b���YUO�����R�����"�VZZ�<m������He$���b}RW�>�v��I��y�����p��.���+?!������*d"7��}�D����7�����WW����c_R�����e�]u�U���o���%�\�|�����D���I�.)���HI�Q
��s�1�[��7�X%�E�J"��E����1�*LB�������%/w�y���������UV�J��c��L�41y�����b.�z0��R��{L?��U���H�g0(�<�rm���|��/}o�9��������4�����I
IH�5�(��Y���%����vC�4*JF����$�����7���/.&#�F*����v��6JdsB�B��+U��nZ�}�_�r���O��p|���u�Q�:�J�P�mC��G�#��:��4��c�Az�|���m���H3y�9����������n2W_}u���dt���r���jF���V���>O���-��n�5m�/�<6E�bF��mp��Or�w�O;�4��?��=�ytC��6I�����"�����l�l�x~YBM��R�AJy
�{���^�L��S	b�+a��n��W�%VI:�*$(t�9J�4)�?���9�g?�Yo�U�QQE@�?�X��i��"o8��
)VBJ���0M�0�c w���S
��g�K
�B1aM)����ZRF��Xu�)��������
�S����!]+R�
w`�m����6�$B��:��X������1���z	��!�P��B��z����d,�H@��3���4�qL"V�cE����TbU�����y;��I���;(+��Y�X%;xn>�d�|H�E�"VI����ns��4�?����R��(�J�Z��c(]��MRz�)B�<��4�L])�&�"!B6.�q-�*��X���������#����C�X�G�����a��k��2����a�r���[o�nl�Nb��"^.���?H���}"�O��OI�����R������X����Yjx���g��w�B
����I�;��NZ��"���w�����?�����.��������@�&@.b�8K�w�;h�����U���)�ke�KmC:�f��B����E�{��e�2��=��x1G��eY�,��+�������	P"V��|c�/tM[��6�M�x>�j������hK?�BU_�������[�45&e��������gc���d�@��\.����oRg�G��j��wh���s��+[��H�!�~�������U�����s>�U�K%�J�~I����������vy��`Ej�8��{FY�PU�U�^�j������+��"�4������1���H���"C����>���U�
W�?�M>�I�����+�4�|��\&~�}���T+
oS(/|�ln��k>\���t	X6��V"}p���|:���u���'�����pr<��R>�g�����������%���G���(�]Yk���j���������������H��Tb��Sw�_�����6��+/���O6�xc�����N��P�6��8�X5q�D�'?W0���)�����	
R�����u��*�(��1$�
#!
R�E��B>V_}���S�����@A�]V�?I�g4������~B2�}�����75�|���*�K�����I�J@��*��L�:�-�,d+�[��4����������yKh�$�������
9"�������;-��f�-��g����?DT�2��
�m�Dj|����������1m�b�������KH���$�82��a2���x�����sN������7����#�$bC��n��}}i�@Hb���&Mro1e��m���~����W_��E"_w\�g��.�g�y���G����q���O>9�v��O"V��|}y.sLs�F/��6�R������������������
��y4m�O��v[3r�H���cM�I���O�;��_V�cH���1M�m�M!�4�wh��-��r}J=��72�p�_�U�5�}.+��~z����]s.W��W�%V���+u>(����$�U�������"�(�G@�U�2���� ���{>y�d!D��R�n#L�BJ���[�l��F4�������o���'�+�%&<��������^z�z����|��V[Hae��0��p��2UR,����P���a�I��3iUbU�0y�LY7��~c���E]4#l���{=u�`_r��J&�>M�1���2�$e�������+2���|)!�$B�����I3y�\PT�����%b�DdJ5\�H���M�����x���I��=e��}��p��������������[�|���x�
7�N�
6��2�'���������������"v`�J��<�f~,������C�X5e�s�5�XH�x��{*+R��q~���^_7�*����8D�$S&�����1(�n��6�����:���U��G�fL�B+�����I+��'6���'�h�����S�������%�|~�!�Pb�}��v�i����I�*�~�a�=!��b�����1����B
gN�.d�|���}>/
6=w���p��m��5j�Y{��]
�C^�$Os$�/��3��Esi�����y��5m�/�<Js�^�$b,yK�/B�`�������I�9����1��>hh�}��B�J�i^@:_���
�jW�l�H;�P�����z��G��������U�c����"�H����WI�r�c�+y��\Y�ah!\Ub���^w�u
�oE@P�����<��R@H���Z�HX9	���`���;������+��d����]v��`,�w'�p����ou��R�g����}�Z��$f�OY.zI��%# �fV�����$������d�*V�����1r�e�<I2T�U�$5�j>)k��!��/�#�Kab�{=�a�1i���z���7�Zh���R&,!��6��L>�B��}��@1R4��'��!����S�3!�J�*I	�b�C�L;�w)I��Q���� ��W��~�3��)O�+�B.V0�b��Ij�(_Z�8v�������w�����!�+��P&J�a$�7��Q=FB���������41	��>��1�K�r�opx����L�D"~�x_��?<K�I�-R7��>���7_l����q��^=Dl�)�P{������/F$25DvB?tS��5D��'d �L1�}RE�@f9�����/���E�����������g�.46p�a��h����cYb����!o>E�+:/yr�!&��n�2�7�?T��5v�Bh�|���@�\vq��<�r��d/y�`L��@��H��E�M��T{�D��|������
�E��&�Uq��1���z�X��Vr���c��1cb���.4/��*3&e�B_�G�eI��u�c���1�l���T/Bz����z�&������p���:�����
�
}U
�*n����9�'�T%VI��^�}���E@P�A@�U�!"|��(�}�D��x�*��@�*"%a�y{r���[���J+�4����E��7��
��������J?��>�f
��>ia%��	�^L {��zM��>�������O:3@J�d��������[�%4��
>"��������B���� �u�H�;�<��}����������X(��{Oa����}�ci�x�B��G����B�"�XBr(DH�>+�(�j���l�H��!LZ%�{�n��wH 7��H�/<�������h:��s�C���%�`�8���#�a����M	������c�e���{��>)$�|�-�wM�'�P{&�k���kj,���P���@n���l���A�����jS����e!�i��D�c��8�h,j�_
���������m��*��~3�enFY��6����Ca������	���~�4$B	���-�������mT���%�C�*��q�0��I�H�^/����b�d��|Z|�����u�y��b�-c�	�S������@��	$��7O�������!c���nS��6���l���`D><���3�<�����4�p@6��~8[,d�����	���v��I�Ni,o���P�6�U��X�4{�_��o�XE$� � ������m ��X��oL:���;��@���49&E�I�����o5�m8��c��GI;���6�g�j��;4Y���$�4=G������o���&�d<���(�`�*��X���P\�9m��Ah|
v�Y��#Ib�T����|�qE@P�������z��w2��o������?���e�������3��k���X��JF^��u�Y���a�?��C��A[E{��W���?��}Y�^�f"�			INY����H��^{�&���g�P�]��&%,C+�C�%P����g��L��P&V�nR�.���DeE)�(���\~����*�	(���P���G���2�;��a\������+%�0����"��������~�t��H�6���>�O���R��c�#�g�y&�{��
%���y����"��D@	��L��	)�GI�3t�/�#���	�?#Ld��f����Bru=P���Y� �3����
�r�U��u��X���d��W�n�d����N@��a����-�
�Q
����a%��}��Q���An����[���[�1x���45������
A��OP��O�NH"����K
�T��P%V�I��b���k�����4��+�� [.��v�XE��C����6�tSo8i��x����2���N����>�G��?�7E�*yl�O����g��T9&��1$#��!B������wmzQ�H��ue<�q�G!�9��x)���NoE!Bi������x�}Wh�i[��-�� ��.tK$�3^l�L#mCJy��G|���R�������p��s����o��!����627��"����A�{!������`��M�2x�B����}6}�!b��._�PUhs��/�w��'������#�<R[�?@�$���{�PZ���9���mrLJ����_t���$b�&c���>��6�w�Ed���M�������z �|������=�+��G���m��X��h�K��s�"���*a�BQt��W��(3�\��`KC7���/M�0!���w��-�%�s����SE@�(�*P~E�
�F�.�*L�Q�H�"e3
g(!���NT1�D�,)�b�i�����T��$V����GQH��V�k���k`V� �|&���$a���^��F��h!a�&J<���c����N�����:�X�9�eV���H��,~��g��$ZO%dLF���e�Y&#����9���!���$Cm�SO=U����� V��h/�F�A��[�����6]�-2`|�`������x%�6]���U��H9���gE�����
e	I2
r�+ED�;���\|���m�}�2
����i�����2���s^��H�K��b_R���XU�	,�WkKP�i�1HQ��p�sc��@��DI0�}�+_�x����Cx
�����"!� ���W���O|��G�V�r/m����k�$Qb����A��w(�'�(���]����b��6�B�J����n�x�~x���v� }.@�oh��"	��p��#712��KB;���Kg�M����#T��n�m�xIJ���u����?������>���>�~�����>[8��yi�iJ[	�X($EsZ���������EK-�T������:��>KB]�=/�H���g�y��b��N��1��P�1�����i��W������q.u4E����PG	�j�������G0�^3�#�d�^�"C1�	�����M��~����-�>��M�m��&V�)��#[���C��1f`n���h!r/�����`0~����N�����R0����{�}Q��6���j��I�C�����'I�����U����e����hQ�;�m��J%V�M��p�a~�N��s[lV�9.�X�B�b1�s���u��}E@P�����
�Pb#�}�����n#+Z0:���I+����"�����~(���Ozo{>u��M��3F�Q&�E�%P�����rP�g�h��x_����� ]VNn+�rX�)H��	C����fJ��5�<���O��LI//u�����G	���;z������	'�P���wo���JRN��[��P>H�(�F�y�U�E�7��������#���W�*����y��5����!V %zC������tk��{��X�wyrK}GHu�#����=�����~2N����v1T>�<�-by�#
��:�u,V���J��@�TWy�R1-������������!kC�����'�-������Ea�h� f��
�Y�%�k��1�
���eQ�@��}��K���y�)���_cE������.����}�A�^��M���2Hmb��8���<S�k�{���B{o�6F7�d���C�5M�m�@�"/��+�YoUE}������1i�s"�� ?����TB��c7�i�����~���I�������M���6�(��&��*�*�DL�}��T!V1����7WQE@>(�*��!W��:Ea��w��������C�y�6�H��^���$Fo�U�Dk��fT2���%hJ��#!P�I�+���M�p�Jt�(,��rqa�%^u���U��\p��U��2��s\�}V��H�B�����Z$�[��|�b�����+�4���"��z��7;�����x_H�n��V�7�2i@>!��K+�m
^��>���=(�
�+^�0NQ�\�<F���-��q�b��������Ut��/Y�")�zI�"�����^��$-��+�J�
�J�V
���6B���&����Y�7JZxc��sE����=���*p��+0!h[�v,_���Mb�g<Q�D�(�hN�H�Kn�Y6��^~���^_�Q1�>b�{��:��L�3B�I�����%�SR	(u{��{#!�}!V�pJ9�x���G����2mR]���:��py��O����|��a=�%V�f��E������tE1����e���Z�y�N������b�*_��T9��~���-�*�E��}�m^�l�P���������<��SO�e�	�� VI�m^*�&��&�M��<C�j=�t>�@�B�	��U�������4�WU!V��_u�U�(z����E_�����R�Ux%�K�+��K���}E@P�fPbU$�/��2�AJ�U�l�A����x������bX�%��T�9�>q������!4
�TAi�D?VQ�F�
����D)���\��2��SVo��VX!#i�3�
�!���7�1S�N-*�<�?�S+��b)E��ev"V
r'��6��)S�5�\S:+T	-Y�P1���K*��4�
e�(�F�2k��V)�T>�<��K.I��Ay
��k$."V�B��p���/����0*x�B���[]���$��"
g�-�0@�I�)Sm:�-1����H��&�?������F��q�Yf)��k�G����(���]e=��D
;M�E�6!���S��F���z�E~��ub�@H8�;iS�,����-C`H}^�}�$V��U�'O���c�
)
O#��:k�-��0��s�9�U��r�b$�i/�n���w��B!\�{�}�Z��TE�����i����y�I�t��18����m3��^�o�c��s%%�e[�����}I���
7��,�����J�&���hx�P��Rr��+�l�Xc
3b����I8]��zK`�����^�����{����?!��	5F�(��|���	���c[�U6?1�����-��",�lB���1��	�H<�2�F�#u�y��7�M���.Cq?�H:�~ V��^����������M�Uu�����������E#�[�{1v�K*��9��g��O*���x��1���"�(�@#�L�:���2������^�=\y���IF�j&������SW�1H�3����3�.����3��4-��R����0$Ja�����
���+(����Z0�]}���)f��d��2�,S)�xP!+Rb��@v����H*��2"��'d����4IA���n��M.[A9i��h#1�S6�t�$/d���P�P$�-����Y�l����z�Va��'�~�����������������>8��H���|#�	�z+ZO�HI�w��^8���e�<�)����������fu��m�)E��r1Y��\�����x�(�^E���A�K^-Br�
7�E���(hC���;g������Hh��~c���;$)'n���:+k�g���>��+���'TX��!$�)gV������#3�yYB�M_������w��^��-
������0V��2�����o�>�?}_��%{O/��w{9�������g��7�m���K���Y��<��<�����#�8�KP�o��v����g��P��
u�j���z��x!x���:^��U�L�D7���%6���{��k�,�D�p��^i�wy�6�)���!�fH���}Wh�!��%,``L����
��f���Rr�A�x���{�mf�}v���c�<�HF0�8��t.e����L��������c<���Tv��M��A�xD�Ee�l���g�q�>�z|����N��|����	��^��?�6�?/������.k/�����y��,c�^x!�Zl�3�#h�G~A#h\��>�xh����G�s��/��bh���������Q�G��*�A7i}B�#�t��u�������6=&�?�Dw3���	}�
&�PeA����tf)����������P����6�QS�?��C:"�`���0OB��� $�Y8�b���V���$�MJXs��C���y�S����#��f���^����Kv��E�Q��E��"�(C�db��{��3���Q&3x��R� �G�P1�D����?+���m�������1��\�?�T���R��7�5��?���o��	�������=�\�Lj� ]Q��J��������K��eR�A�eC��,L�?�,�J�J�,q�|��Gw���'�y�Q�~Q�����]����or'D�:�uE�*����dy������<�eXE�������0p����H�u��;��Px��A���a�O�������,�s�-X�����g���Ww��|����;��$��%��yo�>����q�m3��0�Y�R����>,�q���NA����� /�|W��lGQ>m���x��>Od�A�G��� �
�m�q��
�i�� ��?�u#/m���W���v+�3�����&p��L;@]���x��e	�p��~��m���>�e,�;��J���gP���P�)#��������l�l{�����������=�����G����k��gc�x�~[��1y��5�0�-d>`�#���������ql�*�w\6�p�������J�O����s���_�Cy2WdL_g+Q�i��I0?b<�FizLJ]b���MG1fb���o[/�m���<5�wh������NX��|������-�>.��;T���C����fe�Q�.�YA��5����J��=����"�(�@oPbU�f"�[SW�T��i����"�(�@s\~��^�C���+�2������c�U�����(��"�(��"�4���E0�Cr3o�OU��y����yq.~�BPE@P�b�2F$Wv�i�lA�{\�E@P�%Vy��W��U�g�+h��Z<Z��>/����[�R��nE@P�v"��<���0��q����bKD�U�H�u��"�(��"�(���/t1��������;
����,t:��Bt��5S���9��q_=����YTE@P��������M���������"�(��0C@�U�?~|�=�7W�=f�3v�X�1��(��"��u�Ygu�f��V2���~���x@�U�����E@PE@P,��w�9��s�����E��\y����[n�x�l`VXa���E&N�h����������PE@P�>@���7��rJ���(�*��"�(�%Vy�����HP�����`#����>��\&=�VPE�7������2/��r���{o�WCc�X��@PE@PE`8#���C=���o�RK-e6�|�A�tG��� W�2�|��w��=���W��Gi��2j�(���k��u_PE@P�!��g�ay��A����������"�(���B@�U��������7��q������k��:��<��c��SO���\o�Jr�i�������"�(�!����f��SO=���etG"}t@�U}T��*��"�(��"�(I����7\pA������!��"�K$/�a��76�.�lTv�x�
�W7��YY$t�(��"�(�������g���o�,������"�(���A@�U��~�������9c�G>��,|��G����U�7�|����[��9��F���[N<�'E@P��
�)S��O~��f�9�0o�������d���~����z3��;�����{n8Tb�p,u}gE@PE@P�<x�9��C������a��/}�l������"�m����X0����_>��/���y�3u�T3i�$���o��0�-��7n���TE@PE`�"p����G}tP����������"�(���C@�UB�����g��~@�9r��m������jP:`�'d���I>!��v�m����"�(�@�u�]���.�~2��c������J�����(��"�(��"P���O>i&L��q!C����k���L�<9�Ha(D��G��_=�m��J"e����Oo��o?3�t������"�(��"�%�	cv{@l$#�^�WE@��X%��K/�d�:�(�l�a������q���;E@PjA��'�0'�|rtZ?��3�V�7��X5
Y_QPE@PE 
��'�;��c���W�z������{�~���p~u�zq�QMOPE@P�����h��1c�dQ�����"�(���D@�U�r���������C>������<��u$�i(��"�TD���^3�vXT*k���=zt����"%V
���wUE@PE@!�������!��BM�u����o�����U,�f�m�ME@PE@P�	��z��y���^����a���>��A�uGPE`x"����r��W��I��=��Spe�4���c�f���WB�?�@IDAT�YE@P�^!qv�}�)|����j�Yg��������}�GU�}���'�N t�"�����(,�������^�]�����b]uW]�*6��+�6����J����y��anf&����d&�����9��{������Y�!�*g�wF@�K`��ez���C.��������sTh���
}��'���[��~�����u���+++k{M�� �$���������d��.�L��uK�wa� �� �������������_��+X�l��c�j��vc��:�hn����N�l�t��"�$T�=:�e�Y����f��Y���s�U�>}j�� � ��]��7��g�}��&)e���!�� �\�G�g��������=633Sc���{�!��� ��F�����;�8��e�p �  �* ��O�Te����q�����PEEEJMMU�����];�O^^�:u���^i� �R&�����r�J��,�kc���5d�Vl���� � �$�����+�����J�
�t7t�P�N��0+2l�����4�*��?�|��m��m����:tP����>���3@@�Y����y��9�4�d�ck�tH( �X$V�k� � � � � � � � ��	�XB@@@@@@@@ ���@@@@@@@@@ L���0� � � � � � � � � ��U� � � � � � � � � �a$V��PE@@@@@@@@H��w@@@@@@@@ �*�* � � � � � � � � @b� � � � � � � � � �@��Ua T@@@@@@@@@��@@@@@@@@@�H�
�� � � � � � � � ��X�� � � � � � � � � &@bUU@@@@@@@@@��*~@@@@@@@@@�0��@�"� � � � � � � � �$V�;� � � � � � � � ��	�XB@@@@@@@@ ���@@@@@@@@@ L���0� � � � � � � � � ��U� � � � � � � � � �a$V��PE@@@@@@@@H��w@@@@@@@@ �*�* � � � � � � � � @b� � � � � � � � � �@��Ua T@@@@@@@@@��@@@@@@@@@�H�
�� � � � � � � � ��X�� � � � � � � � � &@bUU@@@@@@@@@��*~@@@@@@@@@�0��@�"� � � � � � � � �$V�;� � � � � � � � ��	�XB@@@@@@@@ ���@@@@@@@@@ L���0� � � � � � � � � ��U� � � � � � � � � �a$V��PE@@@@@@@@H��w@@@@@@@@ �*�* � � � � � � � � @b� � � � � � � � � �@��Ua T@@@@@@@@@��@@@@@@@@@�H�
�� � � � � � � � ��X�� � � � � � � � � &@bUU@@@@@@@@@��*~@@@@@@@@@�0��@�"� � � � � � � � �$V�;� � � � � � � � ��	�XB@@@@@@@@ ���@@@@@@@@@ L���0� � � � � � � � � ��U� � � � � � � � � �a$V��$J���D���=��#G�S�N;<���b-_����}�����{�����*((���K�v���[7���K)))��'�8���7� � � � � � � �$����5p��dg��[X������>���.��>h����/���cS���3IL�'O��i��������A}n��AS�L��w�Y�}^^��?�|��/QZZZ���N$[�8� � � � � � � �@2
r��y�\�R.�+x�8 �*N&�1�x��wt���;�D#���'�����'���&V��=[�r��n����p�G��3;;;�e�\����8@@@@@@@��#TXXhK�X�/DK�X��3�����G�8qb�];�X��/�h��w��!�U?�����S+��g����ys�������x�
�k�.�Y�J��xo>@@@@@@@@�Z�G��U� �����X���G}T\pA�[w$����h�����_~�oC�LRU�}�v��qu��]UUU����go/�n�:�����Z��r�S.$[��N@@@@@@@$��-�'��i6��YQ��3���Y�"��������^7�tS�~��X�r������K/)---�����k��	Z�x�}>77Wk��UVVVH�d�/��� � � � � � � � �K�.�YXe��r�\{2���w�����C�6�N��~�{W�^�N�:������Fj���
�j�*egg�o�����MI�2�er���W�.Z��dYY�LnF~~��v�Z_S�%��Uq<�&��s�=����\�(��X5{�l{��H�o/�����;����j�L��tL�>]�z�s��g���'���M!��yy* � � � � � � �lG�$Oy��v��/�\�r�n��6}���*,,���i�F������*;���6u�}�i��i��(�a���5e��7��/���U����^{�5��;7��}����'��JII�u���HO?���3Wqqq��A���av�
N�:����d��]�M�;w������k��6������1�����er���J�����c*f��[o��>������hv�
�G������>}�N���$V�����G���kBFhV|:���u���;�_~�e� ��c��-:t��~��0��do��7������v9��	��+S|���1cFx3�n�W�u�fg���{�������\O����� � � � � � � �@L"�`�>��c��w_�lY���.�K`��z���m��7�xC&�(�0;S]r�%���/�OG,�?^����BV�2ING}�������N�9RO>���J�9�����+j�s�1���{�S>�O���u�
77�U6�QS�N�yN���O8�����vbZ�uS�����<�����O���8��o���f3�����H�6m
���$V�v�iz��g��7�Z?������7����[�����y��w���.�������3mJJJ�e�L9��3��� � � � � � � �@c����3�3��$���/�|�)�D��w��V�t�[���������~j�kV�:��3��.��+S�X��^�*8��$V���������:=��Sv��8u�9�h���v��G}�>��i{�y�9��~6o�����o�u������}��	�y���E]��1�`��������B�����_�m��N���*�dP�$[���80$V���A ��(�i�����T��H�M�z��WCV�2����v�M
I�2��3�p�L��8q�S�T0K^z���%�T��#�z��� P@@@@@@@h�@AQ�����Yn�������[�E�k��H�Uf���;mx�{�?��Ux��w���7��O�n'K�,^�Xv�$g��"s��*s�N;�d�?��Tf���V&����
\��$^EZ�$>v�2����C����������$V��Y�&�8ev�2�ro)h��d0�Pe���>[��_](<�j��Qz�����gO{,���!����R���8�v�_ii�~�����v;#����U�Vi��!��u���I�
d�64��d�����`�;�4P��i2F�R���M��9����� � � � � � � �Mx�����y�vs�:u�?7{b�I:���B�f���2�B���+���������S ����>S�~��Kf��;���.������:pK���i�dV�2���$K����B��������=�]�vN�*++��'�Te�{�Yg�}��N���|�A�~��v[�����zHRU������cU��_�t�b�����\��c���^����hjb��g��Cq��3����?_;v��Xe�=����e����;f��mg��<���:��S�j��0�@@@@@@@�i$VI�-Rfff������sn��>|�S��y����a�4�����r�E[�6~�IQ�6o�������o�w�a���L�Z�>}�����g�����������JTf�-s�s�=���XW7![����V��U�
����:��$V%��@S������L��-��Xe��{���9��1�i`�����a2g����_��O@@@@@@@��	${b�IX
$F�'&}����b+��N:�$�m��X�����N�2�.Y�D.��Y����L����O�?��s[p��s�*�����V������V�������I�2c1�Yuk��������{�����ev�2G��?�p=��c!�QA X���`�)7%���]w��y��.�H&�*�hhb����_tn���N����u��a�e���W\a���?� � � � � � � �@��=���0e�"��I&*==�V��������y��\����U&��l�7e��:o5�a��{�N<�D�'X�?8���������/����g�������M��{Z��U	8��M�2����)�w�9�Rv�~�����C����U'�|��}�Y���$V�g:����;���������@@@@@@@@�I��X5z�h�������X��zu����������Il2������O?m�	O�
�8w�\����v�V`���������eV�����R�������4`�����0--���W0�U	N�2�V&����H��K&��76�����_~��w�=Pu>�Xu�i���g�q�3���v;�H��5j�(����>����l�9M(�^�Z�l��\i�P�/Ke�v*��)�].����X�9� � � � � � �;,��{w����p?t*@bUl��JS��~��=~�xq���}f��6m����6�f�+s�6/���]���,����?k������������������+��41b����'�|R�V�N�a��@��+@bU�<�y�1�U}��&N�����7��k�����Xe�5z�!����Reee9�H��?�\c��u.����4��s�P0IU&�*��-}��d,�/UX�U3�_�������>Rs�!� � � � � � �@3��}�����MbUl�L~������:��3t��7����\|���u�UW����k/{e*S1���Z�JK�.U��5|�p�M��w��&Mr��sn��&�I}�U�w�>��S����Su��G:��L2WQQ������H�
��^��U������$Vu��U���s���[o���i`���[��yyyN4'�v}]�t��]s�52������W�^�j��i������r�����:����z��� 4�P_b����������z��9E��������D)._��- � � � � � � -��G�H��~bUII�
�L�;����#G:�@�$Os�1���/�S{�����o�w��k����.��.�d�9s�D��/8�����SO=e�c~'V-[�L����5��������!C�h��!�
���{�����u��w�����/?��b|�%@bU]2q|�1�U.�+*obV�2��f���O?���B��;~�a]p�N�d��A�A�j����.�{^Y>X_m���=�5�_�+��`(t�q&���_;#���CA�\�����@ ��+"'@ �Wq8)	�+@��.
@ �]�����X��z��wog����
]z��N�LR�%�\��_�9oV�2	N�X�f���.�����Ye*�0[�s�92��c��):���&��������^V�X��`���Y)))����0��s�9���Uf�8s�X��Ph��U
@��&-�X5{�l�����=��������w�y����t�������������\��K���Um�k�s��K�Y�������w�[����G[��F'�n��� ��|qkA|�M v5��@��]-���@�Q��Fq��D��'�0@�Q��Fq5�1�U�O�2p�	'��O>q���]����o����}�>}�����;w��c��z�>���@U�������m���W�>��>��c��W_}�U��	�`��z�>}4f�
6Lg�y�}�����w���o�1�6[�}���z��7��M��U�H�r�(4@��� �[��$V�SQQ��W�7o^H�]w������K�y�����M���PO9�=��3�j���v�I�/���5J���l�Ej�I��������d�������~�OegTg�z�$�������IZ^1B��dj���x
M@��	����J���'���K�������A Y�]�2��'�/@�J�9�
HFbW2�:��@��b7�$V�&���_������������l�g���2y�09�v��6~�m�����Su��4������c��.���_3g����������CV�
��<���t�m�)x�/�����'@bU}:qz�1�U�y���|��}��������:�����7�C��������\���+C�G��d���hB�g%T�����Mv���_�~�wyg���������4k�	�jUf��w�]�@ ����L���"�z�]�g.y�I���L���"������?F�@�
��u�yo[����{w�����	=2�x�])M����,\�P����}��q���+�D�y���*..��������]�7�*��{��+B�������k�Le�����&����&���_�o���t�Yg�Paa����C=��.��0�0`@�i���x����}�]�=���w���+����V�
2D�_~�>�`���Q���O��k�����s�=7�V���X���xH�2����Ow��8�;5< m��E'N���46Am�������l���|*���������_�����}�N;0G�r�n;��������������Y�*�
I$��$�l^�V$@�jE��� �D��$�l^� ^%�2|�T�����k#������$��u��|�r{���{������(��VAA������^����[�S���+V���u������]VV�%K�h��U����z���.]���R��!���gm�!���A�i��������GUff�}���?<$���c���V0�H�����������wVk������<8y�z�+��?l�G�����t������G�� �L|qK���]h=���3��	�$@�J���]Hl�Ub��G Y�]�:��7�-@�J��c� ��U	�;�U�m���:��Ck	�������f�
��������J�z�
9�$[�������6����h��
���,�%{m��Tu���d����>y��x$} �@�	��-�&��"��-@��Q�������HN�Ur�;o�@��}?�)@�J�y��@���X��s/�U�������G��[��+�����>�L���k�����z1y�ZQ��Q��V%��b���R�~���6���U]�&��Cw�md�4G�� ���0���'@�J�9��h
���0���!@�J�y�-hm���6���!@�J�y�-@��
�X��s���?j��a�����k���N����c����?�o?������o7������s��|��y���k��V������L����G��U~M��^y/kl�Uvw�J~�����C{�kh��}�#�@�	��-�&��"��-@��Q�������HN�Ur�;o�@��}?�)@�J�y��@���X�z�������h����7o�RSS��
8P:th�����&!�sS���V�����O�[�.��.m�R)��B'�M�rR���K ������f�wA y�]�3��)�I����f�wA�u�Z���v�VbWk�Y���-@�j����!�@� ����1o��>y~�I~_�-0{��ZW9�.O��Zm����:��}�(;#%i�xq�E�/n�2��'�K�������A Y�]�2��'�/@�J�9�
HFbW2�:��@��yHn��{�y�V.�]���E_�o���U�n<�.�*,�_���m�S��������TW+��H^��%����$��+�g��#������{��D ^%��1^0�.~@ �]�8k�� �����N�_�\��������|{�e��������V��8���]�N8���Qn�s��������5H2bW�M8��@+ v����5H�UL2��@+ v��I��HbWL2���Z���V=��\kX��#����������%S��������w['������k�|]yH=�d����j���C�SA����[b��G Y�]�:��7�-@�J��c�$��*�f�wE���Z�\�&$��+�f�wE��(@bUk�U���|���~�v9)��-C)��0�����>��{��zk��V�e��4it�f�X��>\���5�W��zd��C��k�6���	.���@��@�
��t�ym\������H"�UM6��@+ v����UH"bWM6���R���V9��Tk�[/����*����n
����4�*U��Wm�g����/�����v��4�>0[�U~�9g�^��z�z���0r@�1)_;�g�����%����/F���.~@ �]�8k��� ^%����$��+�g��#������w�Z��U�g.y�$(��\��f���i��\��i"U+��W���R���{��e���u��\eY�Y�(����O�i��BUzL
W�����5��N=(_�;m���}|"�@���-~��� �@��]
��%���+~��� �@����}���)@���yaT P���~�"��.@bU���C���������W��$?��KW������m����o:�gn:V*����=�5�_�jT�x���k��W��{�������:�|"�@���-A&�a"�@��+��
$��+A&�a"���W� �@"
�q�3��@[�����?F��e�>-\U!���_���>U���+dc@_�*�"����+�t�gO�oI��:b��JO
������BO�(�������t����+W9&H��%�,1F v��PG�D v%�,1F0�+~@ �]�8k��]� ��-@bUb��G@��N�*���t�e�&+E��M�T��Z�O�����x�i�R��������3�k����Kt��Wi��r���Y�������#�@��-�'��!�@���:i��q,@����ah "@�
���	"@�J��b� "@�
���$��U	7e��>k���������W�2-��Rz�+��4���{U���]6?V����o��jUf���D,�������������X���N;8?�u�S�����0,�W��U/@ N�]q:1j	�j�p@�����@����	'@�� �*����"P����l�8��VN����f���z�M~_��S~k��
�V�����7;ej���U}��9�z���v��s��g����r���k '|q���` �(bW��h�q"@����` �]��v�h�q(@���IaH �]b�v�h����Uq==���x���B~k+s�������>UUk_�o�����K��j��#�zf��j���v{�A��5O-����W������);�J��@����[\O�C�:�]u�p�Z������@ H�x�AF���0S�@@ H���AH@�p�2��r�r2����3��>����������6U���T��'L�>|~�f��J_��Sce�o�������K�t�}���4����t�	}"��$��_��g.	4\���p+Z"�@���g.	�/@����� �����F������* �$V��1>"TlY����F����{������P�_WU��J�
9�)��yX)U���k�n���@��&��Cw�u��U�z�]��R���G����::u
 |q��9aD �}b���h��'@���9aD Y�x��� �����F���]�]8�$��U�2S��m~�.y�K�)�a��}��=yXD���k[@�=`�HsW���Ieh�}��O�W���2���]���SZ�y��M[�w���##��G.�nj'x��@�Y�����<�$@��$� �@�
�����!���v�[@���]-F��@`�];��� �@�X��h�@��R'��&��S'����������P����[���nU���e��������K�x����[�f��VUV�u��������L=p� �]v� g|q��	a8 � bW��h�q&@���	a8 P���N. �@��xr�)@���� �@B�X��� �������
jNX�T�_����>yu�eV�Zl�^��V��>����P]��<��X���T��~�s����h�s��2]������4���t���"5���_�Zxx<4I���$6nB� v���xh����T4D�8 v��d0h����T4D�R������@�UUUVb��Z
��K��g�+�����������*�D(���~�V�zC�o�W����o��!U�����M��Wg��S��W�2�U�u���+;�
hy����0h����f��-/@�j�9` �0�U��h��%@����`4 �0bW��h����U�:3��:��*g��*�|��L]���:��>m���uu���w��Ofi�����a���V��Y�j�v9)��e.���zb�~\Zb���.M�^2H���w����&���Q�4����yDM��5J:B��bL� bWLX�b,@��10�#�1 �*��t�@��U:���*�fF��������F�8����/�E������-*/^�e���s=;�i����<�q�Gg��@%e^���F��U���MZ^�/n-?�/@�j�w �@��Z~4L�x�0'Z!�@|	��k>
4L���0'Z!��*@bU���B�������?=���[�ZN�zj7��K�x=p���[�Z�Z�4!pJ.Ui�&���o��I��Q����<�������eN_W�[{k��) �@�
���e�y:4M���47�B�� v��?OG���nEK�bW��#A���nEK@ H���YaL�#`��[��Iz������#���.Ew������m�"6�{�Y�7��i��w�[kV�M�^m,��_�4k{���Ze����+��WVf�ude��-���5 ��_�Z~4^���x3�@�� v��0h���aN�B�� v��|0h���aN�B�U���x���@=�>}^�����{�V����r������y�NV�yI�-sU�<-q�d�WU�DUb�Z�ns��[�V�3�����sX��+���zf��s�m���@���[���ph����p��-*@�jQ~�� ^5�� 7����
�� v5�� �@
�X��������v�w�y�R��[��N������yp������I_�U�|���q���1�PW�}e��^yjd�,���
��.�%S�������&v�	�����������[l\�b+@���/�#�@l�]�q�W���*����� v���' �@��]�7�G@�9H�jNm��@�J�}����N������zf��{NOu��S��W����emh��{K����vZ�=P[4�i��I�{f�]N�sn{���V��`����Vu���S�����w?�@ �|q��)="�@��]�7�	 }bW�M�b#@���+�"�@l�]���w���+6���4��U�%�s���77)�yJ���z~����nB�'t���;N�WFZ�������w�,�^Wf���Z��u�7��~�2�1�a�U~k���]�_V��}�uL��
Rf�;�O* �||qk>k��� vE���@���]�g��@`��W;��� �2���q�� �c����n@��H�j���4Q�����?�>�!�/ES�^�5e�"�����������+V�����k�T�\n�}�ZR�����c�kn�j%i��s���v��~�G�����*�%����Qt����g7��T�/n1��s���+F�t�1 v����@ ���(b�4�����yDQ��EL�BZ@���@��DK�������|���ue��m�uV�U�m����A�����h�����,�����W��Uv��[.P���J	Zh��Z�+/C�A�"vj����"���r���������;u
 �||qk>k��� vE���@���]�g��@`��W;��� �2���q�� �c����n@��H�j����������sQ/��v/s�������cz�K���U�"�8���������sg���l�U�kY�P}_r��v����#�*�������o
x������"������l�:�����I�/n��c@ ����r�4�����y���j�	�Z@����<vX�����t����U-���h���M���*W�.�h��uj��k��*���~9F�����I����|e��$I��~o�<�n5%��K�6��+��������T��T^�T�������e���(��Z[.P��5�9����g
�b��������[t��W�����<
�#@���#� �@��W�7�	 }bW�M�b/@���1O@b)@bU,u����>==�6�����Qg);��~��>u�~j?�������B���#>}���x�Z��V>nm��>��a������E%�����e�\�6�%����v�f����zUjJh�U������DW>�H�m��rP7�q���&�@ �|q�10�#�@L�]1a�S���+��t�Q ^E���@��]����@ j���Q� �"$V�;E��>+��+����t������Uk���Bk})�}�������/����z������qCrBN��|��5�����;���mm	��J�J��
��[�}��������J�s�I�2[�����:������:�����������g���� e��E��@�Y�]���C@ ���(���L�x3Z:F�
�b�K� 3bW�h�h����� ]���MU�����=�hL����;�WU���y����zi��l��bm	�����B���f�X��`J�I���n��s�8�\2��k��,Y�Q��~�m�;��{���\f���^������y���E������'�P�/n1��k���+f�t�1 v���@ ����r�4�����yDU��UN:C�]���f'�����������o���~��iJ[x�\�YI���'h���N��B��i���nJO������y���`7K�0N�����Y+_e�?E�����t�s�t����%k+��y��j��0-���+u�������.�]/�O
 ;������@ v�����3�N��;[zF��
���Io �<���q�) ]bWt=�
hn��[��!����R�?;F��t����vo��Y��n�h�W��c�W�����������.�����]st����S����Z�O�n�tw� ��w����I_����-5YTf���fi��J�V��O����wKW���[~��F���J��7��Wcvn��) �@l��WzE��
�b�K� bWl\��/@���)="�@��]�7�	 }bW�M�hN��S�g!��0H>�_+n<N��L���}5�����|��j�����ceIG�������N�|^|d'�����O�_o��Wn�S{�,o��V����t;V_��u��v9n�3,G�Ti�����Z[
���t�,�e�w���i���rNV��d�:��9}R@����-����� v���' �@��]�7�G���*6���� v����@ 6�����+ �\$V5�4�A J��*}<���[��NZp����G�{�	�Y���V~�����M�-=)�\��������y�@IDAT���o%A����
y������#�J��w�gv���Ui}.��++4oIu���`��ox��@��Z��k%}���v����`i�Wg��@��V'h
���;�P++�� ��|q�qCz@�� v5�9OD� v��!= �@������ �@t�]���7hbW�8�@ V$V�J�~�������rzO9���L>����n��w����n�k�����?����~c����s�n?�����/_.��G���R���y�������l����`�Gs���j���ni�!���.U�*U\�u���em
��v95[�[R��<�X�m�<}R7�O�s��_���Io �<���q�) ]bWt=�
b'@���-=#�@��]���g���+v��=��[������6n��x@���o�;��?��{��G����^x�������}�������_~���+����j��1�s�=5r���vQVV���{Ns����������c�j��w��	��m����f�=��S����q�����c��v������y���:���4s�L�z�����K�k��8 �*&�! �X���_�U/>U}���^�y�k����z��v�5jS�SH�eUi�������c��@���9��!���g��=Ev95���"��y��r���R:O���l����W�$q
���!�2��J�Zc�	$N����OU��5[>5�@�~���9).=p�����<�DO�/n���'h>bW�Y�$���+z���� ^����@ 6�����+�V��[_z�q����]v�^~�e��'�|R�&MjP�?���8����A������A�m�����5�\�g�}���7�x��<��:���;W��r�
#�1�}����k����Is���/���G�|Piiiu�	�`��Tg�u�n����&��L���8���@���}��#U���vs�������T���]��QC�?�����y���������"W���F�����P������v�g��!w���rw�[��}5��
m*��t���o^�v��2k��E��U�����,�5`~��}��������j��2����24��A!��<�
4Y�/nM��FhAbW��hh����t���,@�jfp�Q vE��N@���]���%`��n��&=����}
M�Z�h�~���9�K�L�2cz����1����+b}��*..v�_q�N��s�*,]�T|pH�q�����\�|����������W����{�=�~������ic��e�^�x�s~����13�am�x��we���U���$�*����!P���Z�p���*/�d�I�L��[N��V���_�Z�zV����U{����u���Lw��3��%�D��f;A�p����/R�ZU��&E�
S�����������;[+TUN�s��=4Gn�KK�ThsI���}�2�!7��R�R�����|5i������N?@ :|q��#� �@�
�����!�@t�]�q����*��<�/@���)="�@��]�7�	MX�z����?���������*��eV]��_������~��N�
����ov������^�}�����={������M�$D��(s��Le��>�h���9��O�����B�l5H��<y���azz�����|���-�����s"�`�3�%N�:5�
�U!q[!�*n���!P����H��J�������TUQ�����N+o>V��ur�j�~�N[|��/��x�����m��K���W��n��e�R:�����_Z�Y���]r�+���W���d;�s2�?,[�Y)ZWT�����k�R�v���]�5��zx�j��[N����u�-Q�m�V�-s�J�d��"�w�;���-1�����m�	�Z@����<vX�����t��$@�j&h�Q vE���@���]��c,������K��������/_n�������7Z�U��s��z�-����;��0�af��*[������j�I�������~�����7Ie�G�v�������cG���s�9>&���7�TJJ�s��W�>|�f��r=P�3g�����e���O���.�X�����,0�����Tj�K.��_��wg[uou�R���Zw����{���k�N��mt�w����f���F�j����EUk��O�2������&~��]�'�����U�L�U������$P������l��OUi����B������t�������?o������'.���gs&Y��y�|E��^�z,��w������N�r��W�3�D4W���
��:�!���P� mbW�E��C����<�!@���"} �@s��[��!�@4�]�P��h
����W�2[��#�:S]�Uf>��_�a��,X`��FbUEE�����<�l���kW�(�_��^Q���������������Qw�q����SN�����-�389���u��g;����?�+a�fK�����w�����	����w�1���/������H�"�*X&~�$V���02"
��^�piu�SJv��]x�
��XK��Jr��e���*9iuV���E�gU������jr�B�]1��F��8���^j%�f���[����[�Hs�v5m������S��:����v���������7�n
��]��xl���T'j��)G�����|��}������D���\/��O����Jk�s\V^U�m	WV���x�������a
/��Q�/n�8��3�/@�J�9�
HFbW2�:��@b
�s�5�.@�J����� v%�������}��O��v�e��$
�u�$��*N����Vw#F�Paa�}�Y�����< �J�9�J�2��]z��v����o�I,�c�=�s�H�2	R�vX��;��CdV�2������c��������z*d[A�����N:�$�6n�8���+v���*dk������0I[��W^y�.�������q3G����$�5k����e�l���AbU�OD L��K���/��
��H��P��'k���j���}`�����W��a���UnN���}����f�^��4�Lw���g�����K�8^)�'����+
�]��|�K�T���,+�����snP�t���%+�J�Ti��JY+M:�K^=������P}�o�^���9���v��f�R���S���_�<ku*k�����zq���n;���V��P�F�,���<���w"����Z���n��L�U���������[4��[�����<�!@���"} �@s��C�g �@��]��?hbWs('�3^{�5]tQ��Kb:����'��0w�u��;�8�$V�m�.��rM�4����l�����N;M��{�z���U�Vi��1v���3�z
�>��L�9�=�X�}��u���)St��'�m���5{���$�����nV����_���[	�d��������{�7�x�I�:��#����.��&��w������s��!�*�+n+$V���00�(^�X��>$���9����q\���������������.�dk��&�)���>����&��e��_3����t�>W��Z-�Z�)�_�?�������V���VRu�s�?]_���5�5v���q;g+��@�e�xcW�{s](]����2��9(���z��@�i��
y7a'T�����$B�������U�ISv�;���J�� �Z���5�e�F{E����])VrUg{E+gu+�p�f��L����[�M�b/@���1O@����oJ� �Ul\�b+@���/�#�@l�]�qM�^KKK5p�@��?��C
2��
k����Q�U��?_m��u�fU�]w�Unw���')��b�Yi���us�
NN�Fb����+�f�H+@9�
f�-�Pe�.�@��_TYY�~�������K�*-�z�%���B��T&�*77���lh��������=���#eV
>L��{�V��U� �* �8�$V%�\1RBJW�����_^���Hmc-x�Z-��[��/���RS���c�o�J�U��)wj��G<�+��^E%AKG�wW�8h�y:i�,����,��j������E3���k��2k�@���P�/Gm��+7u���V'^���J�j�V:U����KU����V���T�#����*R�9��LB�o�g�v_G\u��f�����7c�Vz�l�G����1��q��(+��_,"=�_��J����*�U����mIn�n�t��6����ze���r����Z1��h��-����-@�jnq��� vEC�>@�9�W���3@ ���h��4��+v�[.�]�M�9��SR�pg�o1�9�U��q��:�;���O��n�O}�������/G,7$�*���N��������������d������?�i'S����~�n��fm��Q���o	^���>�W����o������{����s�������u��V����9sf]M��$V9	S �*a���"P#P��k�&��}�i�}w������;l��zm�/W'Oi�V���J��P�������R�>Gj��X����t>�x��74�[��x4J�]��s���e��De%�Lr�I*�?��e��V�H'���V����Z�*p,^]��e_��=�g�r�Tj�����+��Z�j�|%�Z�C������n�
U{iEQ�VX�T�6T�w�����VrU����!ku�������*���x��N�~F��K��>r�f%Y������9�(��&�q����E�y84Q���D8nC�f ^5;9D�(���H �������E���5��"c7������@�����+y���C�6u�|����_�(��'��T�s/�����k������Xu�W��^��hV�:��c"���|���t�e����._�\c����mo?��l�XXX�(H`���-��U��w��_�K�,��{�m_j��LC�"I��9��{~���6�9D������wUa���'O�&+���������Do�Q���U������[���*k��N���<��f����"����V��'���9^����zU&;Ih[�Y��jk���:���jsUm��S��=����<��C��t-.�TIy��m.�hT���v��/��t�J]:������~������������``��B�nZ��o%TU���t��dj@~M�W�6
9��nu�����	Z�f��U{~j�����z��;\�6V�Ujn�%J4@�/n
@�	���+���!�@�]
@�	���*.��A �@#�]��9���+v����U~�_�������m�W_}�I$2'��&�����2[��4`�xL����;u�������y��/���H�Z�b���sO�\CV�
N��5k����������'�����x���e���M���:���U	?��@�	��{�{�C�Y��ST�_��G����g���)�������2�p5G���4��v9�G������$]����*rrO���a�4�]�O@
��$�2�}v������URV����W��&9j�n4l`��++�vS��Q=���Q�������5�5�w�����.}r4�g�����"k��O��l����f���i�heqw-[�Qye�w��)U���)5��o�[�^5�$����1�j��
~�-�=Vr�IR+[*���������dX�*�������|qK�_HHbWBN�F ��]I�+	#@�J��b� $@�
���	#@���T%cb��|��G�m�L��O��)SL�>n��V=���v���t���n�R�G����R�����60���Gk��w��6lux�]w����4�������������v�i��������������$VE�
p��i:����>~������������v�����]e+��J��$����)o��|ee��w�����?E����~c�����Uk�����J��S�Z��r�������G+3�UK(%��:�~\Eei���m-�I$
n<i�/u����O��]��r�w����+P�3{Z[f����S���h�������o;z�,�;wPJv_���R�~-��/h(��/k��B]��A������\�cF.���W�a����qZ��e���4���^��KU��4������#�������Z�����[{Y[fg��z�~��fe�|�?Y+\Y�*F<\re���
��]`j���8�_��@�D v%��1f v�;��"@�J��b� ,@�
����"@���L%kb���k5j�(�$}��w���TUU�v�m�Z[�5db�X��G�z�q�
7�������y����7���O?����x�	���aV�2IV�7o�.��b�3?V�Z��#��e����������SN��|��z���"�j��7o�&M�d������[u�
\`+��D�|�X�8s�H�|�8n�����6Y;�
���d%M��[Z�E�+o�bu>`�}n���j�����������;�>�#��Q��U'���e����a�I5����F��j�BeV�reX�T����<�Q��^y6���2��|g���i+5��<eu;H��N2IM����SU��T_�?t���T�I����owY�>��>�����S�U�����<��9n��K����#�	����r���"PU��|��.�2	Y�q��6U�bU��|e+�G��?����J����5�F^�,�=����[��5o�@k v����]HbW��5o�@��}?�)@�J�y��HtbW�f0Y�������>���}��'����3g��c����7N����]n��xI��:u�n��{�f��k������t�Mz������^{��=�\;��O�>�=?��������O��+���C��+W������o��FGq�}~����1c��&�`����9��V��O�����:`��4�Uq<9
���N���O=Uvj���.V�+��84����Z���������#Y4�z�O*Ye%C�]�y�H�wH��ujF[���!����������\�����MB�!�K�bm�RZ�
�8�k�C��h�h�B��^�B����z�e\�s���������L�������yw�|���s��{��n��Mo��a��p�%�J�����b�����>�v�����n,�x
�����:^���0YIE&�r"��>R=[�Q�Nb��UbY�B�Z��h�����7���V9i
���!�0�wh�tb��$��
=��r-�i����m
Y�"�����cE1��.p>	�2s{��n����u��^B�}�^r��L`�`�5�.�_�	$1�WI|yl:���wM���WgIL�}��]�dV�������~&�=���%��H�����J}"}�Hc7�2���|p�T��s��+T�$"A	��`ED������g�y�{�T{m��Y���9s�D�b���8������*)R�h�
�DD0��\=H�����n������p���J���aa�Pts��U�y/l���n��s+�j�
�m�
�E��t�����R��D�m�`�����3#��,�\:5l���R~:E��@j��\�7E�s[�E)��BQV�@���H����f�n�BZ����(�u��� �:
H=[j�`s|��`��P��dRr�8*��������+�|����f3��-h�����*��0������U��Q�g�����W,a�KrT8`�����4����=6JHQ�L�1S�2�+�"�X ]�*;��q��:�u�]��I�&�=����^z��G_Zd�2��S!�O�"���=�tc��6I/�_�	$9�]I~�l>���wM����fIH��U^����w���	0�d$��k�nm2�D4%����G��D�_�m���������z���j��C�v��mK��DMn�[J��e*//OZ*0���;q��J��b,D��/�XJC��3o��@J�O?�3g�0�����	��("z������jO�o��U�w'l���f�W����)9���q���<�L������R����wl���D���JU��
�.i����F��s�wO5�b��rN��������]�>���6����^�]>u��Bm�1~�J��������v���B�������
��p�#QB_���^;IL�f{�$.���E�I`�Z�v�5.
�|���AS�^������C]�o%	�<�����k�Bw]'���� O]@w=6��W��H0%R>�T_�pJ���#[�L�'�U�Ode�Ii
��������	��=3�L�	$�]�w'l`{&��k��x`�A��Ub�[������/���@b`�5~�0��U��������'���u�Yx�����y���{��G���DV	{�<�Ha�(�=��>�h���'�|��.�H����-[��%�f�=08�����'
A�(EQ�����OJcW]un��F��Okk+,X�����PPPhVaa�`d���U�{7l�J``�*1IF������5�	K
(|����hyc2�B�O*�����J��j��~��?�y���8u�O�u�:�E�2��A��Va~���(��7;�QM+��py�����_�%�QyJ�Q)MK��%���d��:��O���i��i�+p��t���Bh(�������
�6)%�S+eX\�G^z��k���h{���EV�)[�5��2M.�$��q�U6����S>�T�)�<7���T��E�m��L�M"�J[M��T��6��c�q����?���(	��%8^��@\	���+~>�	0�`5X<�	0��!��+a��
aL`�w���Nva��M���B�	��������z"	�}��@�(!Tz���!�S�R[[!$kn�"2!&��������y]}�����k�����{��HO(Jvv6�(J�
&�N9�i\���������
��"Z�_|!��~������������$���^�*&0(������Ee�w��J�:k��0U?'�{]2�z�����0�/�Ba���9H�{{ ����v�������w2K�+O��I*<��K��,a��2U�$�RA'������]Lb&��V���\yP��Fi�Z7
fgh����&Id�[m���*']�k�.��rc�R����o6[ D^�2�\����%��Zk|)�6�X��LE)"R�T(��`B�(���%����L��S$���L����(Tr}`������>;)����7���?m�TJ!����+��-��+L�	$�]ItYl*`��(���@�`����1&����X��	0�'��k�.h���N8��K�-HK�.���$��*�$���C=4 ��'�����
�7o�<H�'����>�V����^x���E��B)!lz��7�C����p�9������_�w�y���li
��K��+*]�����*?��y��*y��-e����f��X�=�<r�*e�1���.����<e�Q������Qxny��@=��,���
�z��H<4T�^��ug���	5��=�}_c��FG�,9��A������Kv����x�A�����jw[�hV�|��v����?��L�������BiE��^K0�VA��g��f�m���VG"�M������#���L���'�J�g	��� �*]RI)��#O�������DV����!�����V"o
�xZ�n��1��ovbg�L�����UIQ�&���+2&���?:%���L`�`�5I/�_�	$!�WIxil2``��_&�������5V�R��p�
�"e�H]7��H�*a�P]p�qU��1�x���PYY1�v�q��wBD��\r�%���uJww7���
|��WQ���"�I'��o�����="J�	,�J�+a���P����(Z=Mz6��;�C��9����pw`z����j%*o��6\$$&�
yH�ud�����,���_���B*Y�
\v�9*�{�����n��W��eX���=��Y����;�����U�,������
aiE����*�����Un�T}����6g��������q`R�+^g;<}k}"+�/\�d�LA�(�)���RB8%E�
M��q/^'<V�bEB+�y���td���o�Li �U%��F��{��&�S�6������
;����R����g��9=�`L �	�tJ��a�����A��`	F��U�]�������&���@�`�5~R�����(v.��� WL��vb[WW����Y�r%
��V� ��g��������q�7���w�����+��>���a��$�n�^{-�����"��M1�:�~�m�r�-�W�9"
�M7��3�<�!��EAODD+��d
��$�
��<�@���z�����������^z)n���a��I�#����������xIP�����dEu��e�����6b�{�up�l����
t|�E���#������#��t�ZuA���jx�v����J���0*�)��6a����]�I4�G�)�y\������8�=v,�R� 3��600��H����Mx{Y<��-�QXM�^���U��f����h��5�HW*�����.�y�|z�� �O@��������u[��V��(���{�-e�lYQ�@��'�c�n6��<�R���Tkk��i��������,��e'A|O�0&���G�D���	0�=`��'B<��@�`�(7�v0&0��FB��2&�(�w%�M��J@���o����Z���Ib�����N{{���tJ�� K�T{/E�����m�`0�=��M&��c.{=V��W�/��py������������'W�p�����/sS:�����@?�tu�KSak�!����*����H��;�u�a���9p�����y����G�����(�Q����?�����ZR�C[_0RUy��)�W�o�%�W���3��PD�Q�W����H�t�B��/�J5�S���?�������5S4+)u`
}7�H[)�C�-�DV2�h%����L��pc=	���4Q�������PU��B~���(H�QQ�����!?#�w�`L ��?:��?�������7^����`5���D&��N�}���L�	L<�]��OdL�	���bI��b@@�ny�'H]�����E�xl�������v���aX����7��?�0LoA���(�H�����.Q���W&�[Wmo
������E3���)YP+��g�����<=������Q�8�f��K���j�����J���A�Y����3q���WY�W��e�	����J,��st��]��Wy�
$��(m�ui	CTDv��U��E��F�)�T"��:�H����M{�He����2�)7`n�z�Y����!��kSi�`�@!����J��9b��a��0&�|�?:%����L�	���[��@�`�,7�v2&J�}W(
�3&�,�w%�M��L�	0��XX��2��%���p��I��y��u������#kq0M����������.MUhG�� ���@�&���WBn���Tw�^��w��5Ef�L�S���"-�B'	f\
OI��T�PN�"�|�"�U3��0h�'��z�z��]AaYv�
��]�y��U"��mJe���C�����\����5�6P�<��kk����)�O�:6��BH��V�����4,!U�AI����DTs��(��I����p��`_<�~�\�:�����HP!��2�n0&�F@ �w-\�p+y*`L ~�w��=�������/���@b`����V0&02��F��g3&����F�&���*U�	�>�
���J������rE�����
L;_����R��U@_�[�o$Cz��P�Oj��}�����/~�
!"�d����\���*�����N1�t���Jx�%�Ro����%'MUU�Z�����N/���U�~��P�"z�e'�G��n�cM5E�g�T�p�t-��c�c0��A�c���VR�@+�
���(���"��@{�*�;�����OD��1��T�FfO!!UD�)y�=�������$���_�(6�V��M��!�R]raL�	��@4�o��|&�������!gL Q��J��`;�	�]#��s�H���&�&������jt�x��Pa�0��?1s}[T{��{T����c^:W^��K��	�c!���
��'��S��Ry	��9������Zq����WW�t�W����3
!+G_u��w�7�����TnN���lpR�>QTt�LW�:��y�?(��}����3�*�)�=��+���:��Rj@�#�hf���1Y(tC�OY9�(V��3�'A�~H�=^��f+�\���;M�ZL�7�y""��J_j�9��o
E�i��[{����6�ET�=��F�H���L�	0���w����	0&c��b��cL`���7��1`�H�}�8����7���
-o���,���|�����^� �����-�g)t"7���P�q�+����������drd.|=����!l�hxI��!�V���`�����/�F[�/_�F�?\��%���YL����U����L�
U�
R]D��L���$�EC�D�*���
����^�<<��q�g�RJ�����}	���hBG_��r��8�J?��/�H�'���Y]0[�(u=-���L���<�/!�������z��py|��)�y�1����9-��+""�>�z��"RQ�������������W�"�3��%'Fn�=L�	0�	"�'�5Af�1L�	0�`�5"\<�	0�8`G�|4`�&��k��x!`q$��+���h&��@��*y&0�ny�'p���cS�k����h�Vr?��x:�K�w5�}�R]�Qc���ND�
FT������
y�BW����������)ZZ����Z\}z4���jr��	��W�XYr��)R�b�`k����/��r�(�B>���/0Hm�N�^��z�u�We����3��p�/��H������9z���6 �=�� �q7����kq��Eu���M�����*�/��|!�
-F�w��!��}�%=^���,���6�u�L�f�	1��9cR
4x8?�����{_��X��W��q����2&���D���h��<&�������!gL Q��J��`;�	�]#��s�H���&�&������jt�x�/	�z�:��n�a��� ����o���[��o?Sz:M;�������9����1�\��W<�G[r�*.��UC><�Yy��N|���_�Y���
g��XCu|8���w��Z*MU�/�"���eBD���!d%U���"��#e�v�_���������IG���+N	F����������KN���#A��Q��6���E*D(�K�(�X�/���D"�3	��)�bUR56�{��K�����?r0V7�����R|4*T$$�P�4���� K�S��Wa���w����;_��M�,�D*��\B���������]a���.�]�%����7�W��>�	0��`�5j��	0�x`�����`c#�������L`�	�=.��2	�U�	�>�
�G=`���PJ���,<dS��{`o�F���e#��t��&b��h��s�����Q�v~���'?�D����):9�=3��Ii}#�x�
p����D�0@Uy����er��9=+3E����.��1�/�5���B��h�����Ej�+�
���`I��"���F�5X�OM�"5�D�4�):�$����P�'Ko��3��Q�y�r|�~
���8JM�(5���B �����U����DT$��TO�2�n�}���?o
{��������`L`<	��w��-�7`L`��w
��cL ��_���|&�FC�}�h��&��M�}W�o��gL�	������W3�	'���q�KF=���
���=�X��7���+��<�vt�� ��(�����Z
G���y���4��v��^�L9��5[����6�m�9�"v(�.?)�Q*����{�u��C)�)]�~Z�6-].4����e(Q�=1�*��C�����������/����^%"\-�lA[����9iJT�s��0qj��GBD���������N��U���$�"��^�/�uLQ�%�pJ�4J��Bs�<���<����W�c�b�?��L	U����&.-`���g4?���6��W��c
~?��p��Rd�������m&�&�����G���	0�D#��+�n��aL`0��#��L�	$2�]�|;l`�`�5�gL�	$V%�=��L @�K�n|�|�-����EK2���Y
]�0Q
���V��&;;����w=K��R�L�C��������9�F�s5�4�����@�)�L[����q��Cw�������4'�o�Ge�8R����;��L��-�2�,���g]��"G�!%�n/7}�)����)��*�R����"�7=U�e�N+�6`�$��Y)����y��Mk��S�M�J�D4*z�t~�-B��
�$��I��$a	�R)��J�W�<����G�u����*(�.}���.�8o�?��LNI\���x�t�
�-)��:�����]�`
o��6�]�F���3�Wq�>�	0�Q`�5*l��	0�8`�����`c$���1��L �|���tE=:mE=���:�X�1�`���zl�\y9<�^�_Wt<��]pto	�'n�l�z5\e�8��K�J�Q�2u�N��SL���#�Y)r��o���[�Xh��2
�9#z
��f"�����2����B���;[���sv���P���-��U���	��^u����_��z���j�5���f�J��g���Xew�C�@���S��JD�
�j4��
���T�0�H|��(�%T�<���"W=���JRF�Ae��$($!a����p�P���>���>k�G4��)��9G��\��2����l&���X|W"������ ��kr�3�%����n���	L>��&���3�����������XX5�o��=i	|��]���%�~�B�;<���#��'�����2��/����#�m�\�(B��������9�F�S;����s���s���|O�r!����(0&�/~��wV���U�)U�MKr�K���[�����M��,�rCU�R
���Mv�Y|�*!�V����EL���5&��j}X:��L5~��bu��}���^7	�<�0��x���'N�����K�G"*:??��y��JQ��iQY�%�:L�Q��?���VW�?H\��$&S��,�2Ux��D�}�������;�U�n�b�/�*
�~I�\���-?�`{"���3x�	0&k��bM��cL`���/��/`�I�}�x����/����,����,���|
�)����_�Nw0u\���>��*�|�eB���/����)�T���k�/�25Js�Y��u����3l�h8{����5$6���r]|,��d�<�C�$qU��JNiIq��6���{�$�b\�.��"Wecv�6��z��������+O�e��3|MeM��`���K�H�cF�6!*��q����x��&�4�1�2UeF&4j��f�
�un�'
�vq��
�YS�ODU�h!!��Fe����5�*�SHD5�?
�TSM�#1R��{/������/��Li��U���*k�%	��n"���/�������)*�|n)f����0&���@�|Wr�=[��@�`���7�v3��G�����s~c&�7`��7�"��|�wM�;�7fL`�"�����>�m&�wV=�e[?��X�I��	�������#*�i��e?�$l���	����3�/�i���vhe��5�^��%�
��b����\�M�`$��5�.SeJ)��
p��N�P4���]tL:��7u�)�~�������L��t���a��;	A��zN��K���*�B�
�6�q�l����Ei	]pG�+���Zux*��Nl����J�)UC�l7�N�4&�6��i��_<�-������s��-���\�j�eF	��+�����M-��T���.M�y�6������L�J������2�_,�?���U+��AK�+���|�����>n0&��B ��k,��Z&���p	��.)���@�	����
��L�	�����P�5L�	����x����V���CL@IDAT�fq#�c���o�
^
3$��S�Zd6'�o94�H��B��!�[Uzz�J��'���H}
}drJ3hj��0o�C������2}>�*R*2��5Pj�&
��:=��eK�]�AC�:�`��}��Y��A���{��m��+�������m���Mu66���HKUk��Q��������^:(��/
,"���:�'��(R�����K���4���
a�(B�tC'�Z,���F%GyE��HTS�t~:������D��c�W�$����L�N���H�gLT�#��n��������/(�\8=��Q	�������L�	���x����`#$��k��x:`q#��*n��`&��@�}���R&��F�}W����L�	0��`aUL0�&L >^���X��txVj	wv����?�	��7�~p&�y�aSz��������<���`m�,lN���?�+����E�����+M��M$v��O#������=�.9���L�n��wE}V�hp���0h�G���]_�����^�2��������P:���P�ED��I��D�,�ks ?C%	��}�}�h�.�J%�Tf[��P���Rf�*�����;z��I����
\qJ)R�)���O5v��28�4��|c'���
q����JD����H����6���RP\������J������������6`����2+M���-����`��o&���x���}c��	0����������� ��jr�3�%������n���	L��&�=�[2&��`a��{��f��@m�6<���Io�T�H$���?�����=���v3��P���������	X>���UJ�g��.�
nYsQ�[�E?�����	^���#DV��6
�����Y[hG���+p��PS�$���MS"3%(�
MH9���z��=m�@_����Mv����2��^�AC�w��K�
u�2���`@E��mvK��zho����Dt��T}��������G�n�gk(�"��45���)M�o^����f;	��Q�D����>�f���	����U����3�I}Z���2I@�{��O]`La��	x��'q��4����i��"q���%��x�p{��6<�aK �H�)R�y������f0&����w%�k�YL�	$9�]I~�l>�D�_M���We{�]{�e��0�ID�}�$�l~U&��J,��+��_j2x�����U/�ri�T���{}Us}rd����AcI%����.xI�����)��U��d���cm���6d�����6�8�)�Oh�:;}�E�@G�������M��X*t~��H����D>�������y���3�!��P��mYX_���I$V��n����o�*)�Sat����FG	�(B�?V`!U����0�}$K��@:>�^�l���
�L&��^�EZ:��R4�����m����"5�����5p_n������v��L�-&q��I���2?��6X��w��'�������Rq.�0�)L�	$���]	��l`{�]{�%�+0�IB���$�h~M&��`���](��$�wM����dL`�%�����j��&��������^7E���J���PH���S�vFE2��;Qz��ac���a����O����T8:���T6o$
u�thr��&�pJ�6 ���E��kj����A�e����l�����D���'������������V	����Y=h�	���%9*�?M'��Qj�RuR�?!��V��J����J��F[z(
����/b�\z�o�X��Z�~�N��f��n�8����##�������u�P�l�Q��P��n"��������}���IW���K����N�0&��A`�|�0L�)L�	0�a`�5lT<�	0�8`�����]������3�]q�>�	0&0F,�#@^��M�K���z��$���L�]�?6��3Kfs����C������R���_��*%%8F�;W]��]���,D�������ao�������d
5�Y�R���N_@+�G=�2�Q�;�XiG
:UH�2)_&	���JA&��WEY*A) "a�Uq�
v��c�q�D
�lK���,��"��S�yb�X��^v�v�vN��`m����)�f�iQU��hW��\��O�n�4��\_e�%$�
�N&��2�?��Z�������!�����xVZHW�`C�h�5�5<���]������?�W����	0��`�5rf��	0��`��;`�`c!�������L A|��|��e����bIdeu����XZ�}?�
��7
N[�����oJOG����pW�/}��I|5�����{-	�>���D\�`����aT�4�bu��N�BW���o���M����j�42�$�Rbj��)J���������)��T���j;h��)���U�9j��va�Vl��-3E��3
�jO4�����.�]K�-7����j��� p�+���V�d�������O�W���?��1B�y:`��@<|�d�����@l���
G��	0��'��j��	L�	�����3������1���O,�O��7� v���~%�n�x����c��#N_p�2d�����da���>A��p�C������,MS������%�'��k_�4����@���E��RS���R�
��=��oz���=��B���n	�f�ip�t�$�
=���FeR���*�����W�Kq6�;�h["���V4�En"��
-*���Z�?#	�[���{E`@�2����=�?��N�����������mE�������2,��Q�b{���{	��w��D������&�2���@,���E��	0��&��k���yL�	����XP�=�`�#��������@L	���Y,����gU���o���7�MCyz
E�
��)3���`Z3�)R�u��5����K�q���F.������i�J�������*�DV�)2J��9:�*0�@�]
4u:�L��N[����EK���O5�F�F���$�RU�:J�'2+f�8x���YML�"qu;��,����j��Y��ju`�����,�0C�jbl��d��Z^��wm���i��;+�N�J<�=�I^��U�0{��^:5��
L�	$�x��$��&2&���w%���YL�	D`��;�H������D&�"���@�L�	0��"�����.6�	N�����{5�^/d�:i������#���;�"�E��?����6f��0E��B���S�����,2�����{��}w�4WU��}q!�e�A�`������)�$�:�"YCigf{�5p����"�4������nk6}JHtaY`q(�������44e��R�p�L=
H�4ED��Ro���	���kZ�)z�����`�f3�{}��&5�(�U��+F��q������0G���������������wl��_���_MCy�.�H�|&���@<}W�a�HP���b�,&�"���@�L�	$�]IpIl"`�wE �&��@R`aUR]�|<�>�m��2�G}y����U���3�����`u����-r�r����S�Sp���P���5g:W^��.�i�@WrN��b�����w���'�����G����'Ph_�"�9��H+
}.�?�:c?i��m���kx�>!��)SCD
r��`iz�})��]���d��ls��+������O��I��FY��K��3E7!	�\�J���N�xJN��fk��D���
vl����R,�WaA�"M �X����<<�-��YG@�u|��J��=�F=>Z�u:7
7,)�'>�	0�$!o��$��L&�����6�	0�A	��
0&���w%���iL�	J�}��hx�	0&�XX���F2�P^�/���R��u������O|�'�O�P���~��VP��%���X�����f�Y`��w��Y�
�����D�>}�y$�����j��
�Up���-<_l�,��1��/Q��A��t�F���V��+ W�H�z�[)�jJW����������+��9����H���������e:d),���G���*��hA�.=�S��5Vz�U����U��4�P��#�1B�������:[ 
���RU%�����n|��B�},M��a�D��D("m���	�3L�Fm��t5>��&��"�x(2���U����6.pE���w����uU�N�j��>��L Y��w%'��	0��"��+����aL`p��g�#L�	$.�]�{7l`�`�58aL�	$V%�-��L ������?�z��?���W�Oy���)^��<a�|����"(��H���/��ir���2
}���/a,���J��?��N�E�1�"X�
u���H���B����6�7���@W6+wl���w _�	��~�����ud>��#3�U*.�4��Hg8�}�\�;:�������*
5>qK�g1��lD����w�:x=x�[����8�dx;���l�[(��H��"GM���.������i�D�*�+���U�Z�B"R��d�vZ��1x�B�5��aK�\��;�x�L��D�0Q7Q1�5A���i�7--m�m���N����.p�2�4��v`��J"�p�����nk�������N*�
>�	0�$"��+�p��L�	$�]	rl`{$��j��x`	H�}W^
����	���#"���Hh,�J��a��@$������b*�Y=	���?���w-�+K�Z����[��;?���������
TRg��o�h�+nK-���'�����P�V	}�����vc��w���$-U��a�
7K)[�����W��o@��oAc�B��E����:"��?��2mZWb����G�e��M����d�Y���7~:��SH�u�q�=�Tdz����w�v�����v�%,�^`�A*2+�.���c2P��dVl�MV7���R$ ��V-�L�\%D^�ew�K�^ewY��8��l���{���uaG�Z4��l�HQ���J|���l����{�+��.b�D��:��^[C�52(���<���2&&���5&����Q������(}e��\<���L�	$.�D�]�K�-cL Q	��J��a��H���@"�fL ��J�[b�H�}�@"�fL�	$V%�}��L��L^���,��>q�L>�� ���q�[�&QK��w������EZzj`��R���(���7��Uw=�"J���V/�G�
�t�\UJ	�~LfN���n�����d�Y��+!mgq����/��g7R��2���'2
�d�4�����d��]����sC���h�Q�����a����y^�
�_^�����%��a����.@�q'!��S�����.m=.��m/�XgF�0)��A�H`u����_1~��.�5���ZF���4�22�(�>���V4�;���k)��&�o`�E�(���L�HS$�B*���^�������o?��H��m�-f�m������;�
������TW��q�DZ8+Q~�]��6�j�Iv���|�uhn�F�0&�H�5�.n3&��"��k(:<��@"`�H���0&0\���K��1&�H�w%�m�-L�	0��`a����
&WB�r��w�W���a��{�K�i����6>��i<?�n���Z���l��9�"W����������(S�M���"X�{�w����XL]�P������SNC���Im����6������[��7W�R`�r�A���������Y��_��T1�0����p���M��@�0]�����Q�����q����#�[(����O�y�a��O(�����8t�!"����dr+E��o��Q�
JK��ju`u�
NZ�Kn���Ei�����)q��R��TP��W<�Z9�:���@��:�
��|
�=7	��������)��*��J1��q��;:��NB�v��29�����P5.�
�i��p���.���/]iV�
��~&�=���������\�wM.���L�	�������L�	L�WE��aL ��w��&����D`�5Q��&����`a��p�]����;]�}�
���')�_�t���A�q/���Im����_�����D6���/|�W���D���E
�}Y�/:���U�c���N���:!�"��7\l�u����F#@���_���Ji���X+�?������hA���Be
�\�,����~{���&(
=�_�R:�������n2���3F����dr������DM�@�[������������O~{{�*8��� ���
��7��a�7�;�����Cb��R
����V�h\c-Jz
C�p*��B<%�f��T��~��?�(\6s��#%����J��4���7�b������Mp�?J��N�	2�EB��������m�����6r�t���n~��5?#�^�`L�	����6�`#!��k$�x.`�$��*���l&�FK�}�h��:&��I�}W<���L�	0��`a���L`B	8].T]�S2����DQ�|b#�i!
N�)`�[�=�o�},�g���������,���<�����F�=R\#����������CU�����jE����'�y���L��V(
��V[[�`����i�����������:�e
�X��_j���(5����.8��H"+�XK��J�3�PGn��<e,N�������>z��uj[���6`Z�|�g��:�g���[���^lm���X���Tq�Nq��Sg@D����"Ni���i)��(�H	(R�KQ�������6��v�/5��/�S��T�:���)*!���|��m@};�xu�=��'
�6��P�����}��3u�
���M�>���'�r�G_�)�*���x����H?�^��O�"�{Y���jbEf�bL`��w��ex&�&
�]����E�@�`��W�/�&%�]������@�`���W�/���$'���I���O>"����<FB������p�>;���8e�������vG_+��j���R�����{�/����C�[�/:Rg��o�ul�N!����[�7+�Igg9J���DNA�OCg5>��JM�������8���>:g�BF"�����U�@�M���M���NG�]�����sD���S���2w���EvJa�i�$hz��>��fA���Q��N����y7�GG���<8M�"!\���;�Q�7��g	����5�L����m�cvc�E9��`�"M��J<
Z��D[�bO��������?��o����6�PL��_^
[}=v����������G��!��(�T��%c���$q�#$��E����OY�k�T��:����bw��;6���	C��Y�UPT;.L�	0��w
0��L�	0�A	��
0&�`�_%���9L�	���aa�IL�	$�]	v!l`L`�XX5B`<�	$�g?|
w=��B�7.x)�@�����3�B���|�����a�T���<��c�=sm���xj5��G�}�c(8������
+	������*(��6��`�����Q���m�h��5��������P�j`1V�����J�8�I����r�����-�[m�HY���a�����$���R�L����\o��_81i����U�A�6qfP�%S�Cf��.Du5�z��22ni��J��D��&jj�����U���|����$��w�D!�������zZ���������(=�%�g�~(��=�C��Gi
��x��p�QZ@����)P_6!��h?��o-���}�)��E��~O0>�	0�� �h�+!��L�	$<�]	El `��_�W�	0�d$��+o�mfL�}�`�M��U�}l�$%���D��J|��|�2��x�R	����1����vM�f<��������9I7U�Q����r
��=���'��8��)�8d�j�5���a�}����5�	�_�N�H[�BWp�$��9��h�+h�k�����M�z ���l���Gy���B�};�d���g4�Tt��x�+]�`�:���1�T��!%���4e�'
�o��eGu�z��o��-�s�0-o�3+����v�Lmx��7R��������q��s��WI{���������E��6��Q���jF���P�?��6�x;���v���������^�����Z�����%0�W:i�����<z:����X���y\���T��y����xU��[{�?�{��M|7��t��D
�����@rH4����J&��M�}W�o��gL`��_
��cL ���J��`[�.�]�%���`�I��U�y/l�#���:�u��h�9���qL�6Ikm
���B��GH����-]�R}EXz��1�r�)�����1{�o�� ����.��o	�y�mkE�{�@�I�����*#	�N���xd*|�����I��o~F����Nf�|o
�e�(GQ'R���R��Yp���|������
N�)(��<�����`?���k��u���=z-�ac�a��Q�Q�irJ�������������#�����	�V=����=a!��AiI`e�
���N�s�a���lp��J9i�f���Q
�n�>�m7��6	����%�{�2�b�/�E��?�Vk��m��70�C���~�wu���0��f%O���4<����RJ�)W�����$��;^�����H�}�~��%���7gL �$��J>�l1`M�}�D���-�W�%����'�]���g3&0Z��FK��1&�����
&0*o-{�<nFqj*��^
���m�����@bu�����G��T]��n��
T	Q������VBk�)�
,�h)���&|p���q���7�Pa�X��z:�D�
�����XW�|����R���Ki$�JC���}+)��#8a��*e
Rf\
��^[=����0d�L�
y���)��;x�h�X������	�(���ZT��O�^�������<loa��u������A��Y�=q!2�'�XM%}��Q�,�p+����R�PU��J;q��O>����iJ��Rg@���A��W��V���GP���as�~x
������0��4�n\;����O��������<����mg�W=��)�����`���oc�7�&��������L�	�/�]���wgL v�_��%�����`�5q��$&�bG�}W�X�NL�	0�x`aU<���L �~������3q�a��Y����6zV���k)��R�;�s��>i,M��/W~���`+���������E�0c�AX��GI���5=��	CU/S�$
O(S�H\u,TUh����Pi���>��_���a�z�=0U�
��Ua�Qr%�%��P���K9I\��DV���R������ ��ym4�"U�)Uq���DB�^3:l>��L<U$F��(�����N�NB�`��Mv��E7E��\���zz�@�2�6�):V�!��w���<��
�����v����t&e���V-��-���|��o��������WM��B�B�E�E����_��M22�j��������m�Zg����$R�F�o`�8V<�����z�e�����h����?�~��l��s.9*��W���Hb����)����`�5��&�bB��UL0�&L�	L0�]��cL &�w�#o���V�
=�bC���
����u]����$j���i3�fRNB�9����o�����V��l|��g��N������_�A����c�{9Gul$�-}��w���(�n�]�mu�2�
���`,�,bl�G�7���(�����'��<�^���3��l���DY$�Q�������P���+2jV�1����2wh(���l������Q����W��=?3w��������K��N�#����?�dt*	�"��t���i
��:�i(E���8�k�*IP��iM��B�F����_�*���bil��s���%��tf�����BZQn,�����'�{�S:_&�@Y�����b`a��p[��~�'
5�w�_7��i4���-��#�D�]qD�G3&��w%�%��L�	H�_��	0�d$��+o�mfL�}�`�M��U�}l=�|��-���29%�����%�N��(>�WPM�����%�n���cw��v�m>v�Far��i�+��&=��*U��H;j�L[|��DT�����}��������IQ��L���K�z�GzI�P1��m�y���6I[��i
�,�!��XG�0�b���C�����	�:��d�L�d�I!��}ueP@���Q���Z�Gs�����P(Q�9]YeL�q��Xg��[-�&����&xxd-g��X��a�9����ds$
�\��������Bc{P��nP��P6g�F��
�N���|6M�T"��%������$61.��~�S���"��Gc��'���E��)p�8U���j�B)}w"7L�����rZ��pQ�.�Z;}�:�'-��)`�G Q}W��d���H��&�6����X��=^��@����y>�	0��`�5z��	0&,����L &n{�*���"<u�G���K�eiR������	��x+�*�����W�|�3�ZQs��F	Y��
3r?X������~���c#�t[,�z�������iKJ1��k�q����o��>&����G)4�$��#�}t��������R�*�V�k��)�]u�~��7�����Zi�x
j��*2}�`��l=����w���?c�\��pZ�\Ide��b�N+��������f	��/����)�|9���#���B�Ig�h��0N�*���9���e�*1%O�n`�o�6T����P-�,�\��N���n�6�`����7>����l��E�O��L9����5QzzV�����q��%����cUI�n�|��G���s3���53GI-V�x&��@"������0&�h�w%���=L�	F���`d��	0�D&��+�o�mcL`0��#��L�	0�� �����'��	��������x6d���3����e	���y�E���kH�%���7mAnM7f`�A�������c�����@��"��1��Qt����Q?-�jQ� E�q�RfQ�A��g/	�^��k-<����$S��!�
Q
������c���k�"�A����$j���(VkP��Ox�?E�*��U"U�Z^�U��������A��p�]����
�|�E+��,WG�]^��~��%��E]��_
�T(���Bf���������������#����n��qYj>�
;~s1�.[����~�����B�K����RWZ}�e
�SDJ@}L_!���(m���	f���r�eX\����B����p���&��@�`��4W��2�IO�����
0&���w%����L`�`�5���	0�$'���$�@6�	�X�������la!���(
��Q�����{�I���	[��-q(���5��K����(��[I��6-*� ���Qu�_Q��3��Q?�����y-������6kV���x�y�	n}�g3=[��o���?�SN�*!*s���"�2��R��R�16����m��J�{-�[iTZ�g��A5
mi��saK�;w;��cE��w�UE�����;����w�=
����<��(S��d���I��FT�	m���m!���EG���6�L���D6��b��gC���r$�6V����_�&+k"M��Y^g'\�"��)S�BYpNL��o��?�����~�*�;{��^�������L�	LN���&���[3&�'���D���H���&�&�FB�}�Hh�\&����D�	�c(}}}8��S�����~�~�P�����z������c�Q���������I'��y�b��e�F�&0XX5PyK&O���{|���5�*}����S��a�������OK�)�$��~-����e��xlt��o���fM�W"�R�����%��G�������a��6�S��2g	�IhEb+Ix�L�Z$���iX��]����":���F#+����<(�%�+S�4TDNeOKO�$��m��M+|�S��"�d`K���\�L�ZX
3��$����=���!(���o.ZJ5����iA[�����3v���	F�����i��	is��f�Kc��~~1���lQ�0����
���Y!����^�v@�	y��Le�,rw/�����u��!7T�c�$��n�����|�����i(�����y=`IN �}W��e��'���	,o��@�	���9R��	0�	 ��k �L�	�����#�
cL�KYk���j���������?p��'z�������/	��D]tn�����5���@�`aU�_�FF�l3�gw��Y�}q��i��%G�{9�h3��bZ�����m��V�W:�����*#���b������Z�?����Pt�i(��DAz����r���=�6��s�m�ma!�^{}LR�y�V���R�+���r��������0�W��,S@����PL�)$��B�r(4ya�F�p���i�@"��h�k,�����g�&��:�R���6�$������X���`d�����8>����(V2����
Ua���c����po^
o�&�8���So�?d�(��q�k�pb� ���v��*���}(:��@_�+^g;<�-�ZwF�"7L�<��r-�S��*�V��X4��d��v�k��tu��v��M�
K�F����	0���@2����7�������l��������$d��f(#��.�B��QF�����QZhK��eC��1�l�Bd;�{[����{-y��d��d��{��g��^��?=�(d�
����( 
��^
��2�( 
�_Y�����(
�C���]C���0p�����'�|��I`��?�|�_?..K�.�N��V2�����[�b�����%#
D�VE�U�9��(�=o������I0>A
{��`
���P�0_��)=h����v�g�h�����v�Y1����+���L�U%?:�%S��YI���29IS�<p�VQ��Wy�r����x���R%�pq����Fk�;�X^*�`_s`g+}l6�V��DW���MU\��j��XuS)��������o���:qam���B+���N���/���('N����o���Z��w��Vh������%&����hARz"��:�Y�0��+�Cf^�IO�F��z��s.��~�����&��C������3i�������g�#����������������_����p���+���k��=i	����j"�DQ ����+�U����p+ k�p+.����@��j��I;Q@Id�I�elQ@��v
T9i7�
�����{����~�e����m��)a�|
n�����?��"qr:�x���������'���g�����(m
XmWL�+
��#o��w��N��n��p*�[m���mh��)=*��
���T��8�s�,��y�]�v�9p4��Q�����I�)N�r��*'y
L�������v��(}�e���o@��y��pd����^�t���
0�����U��}�>�E1p�#g+}�D��JOWr'�-��}*UW��������zTm����]Y�,������NoF2&;yF9V���{�AT���Z��k��z��g �*���v�*�DvX�4��n?����J��f���_�!!�_6���I��<6r��:z�1f@Cg����������4u���O������Z-�����|l=`UNo�������POU����(R Z��Q$���( 
�AY�� �t!
�����W�"�"
�aV@��0*�����( k���,��������/�����;`��������=�����SN���?���/(��b�J�(�
X�WN�-
�����{nx�\�?!GOT!����������5����r��g�N���6���������\�������S����\�\��P
��������s���s
�}M��(�t&������f�[w��p�|�����}��J�Q������<�1��@�9� +'H�V]8��e@���w��=�V��cq���B@'�`�{����my����
�u��Q���GM/N�U��g�!��B��|�x�`Ztl�����p�Z�|>7�83W�5���_gw�;������s����4,X�*�g����?�%P�����U��^c��\�4�3��'��3\����^gGxF>�m-����G5�D&�I��������-����
�,��x�,���nM�( 
�I�e��GNZzU@��^����(a
�zaD�#
�A) kWP2I%Q@�0d���"���W_����C�q�Z�/��V�~����c�R���8����|����;�q�JqVV6o������Q���UQs�d��@�
�/���>�9y�Z����/����J���	�Zv`�A\�Q9Nq�������c0���{�{��*l���^�*�V��_������u�n��G_�������O�����`1�?�=<�'�+U@�����~v����%�q��8����R6��_����-��Bk�������fR���UW��-��S��sv��K���@+������w��wd1zq�l�R���v^�m�%h9z�z`m����p@���STH��Z%l`AV>��>�j��V�+q@��#H\C�;�����0����y�Y�~����Lu��������L0�tr��B��UX/�Cz��S�P��A}�Qmu���#�K?����G�/n?��>ra�+'��32q�������%�DQ R���+R4�y����+ k��_��( 
���W��$�DQ ���+����F�S@���t�Z�+�a�>����O~�\s�5�6z���p���*�O:�$��o���?>jjj��#�8Bq�z��G���K)�
���s�o����(**��5k���9F^^�?�x���F�(�
X�WN�-
����>g�\4S����z��k'`���(�T��564���^��>`w�\�(`��f��3^	[a6�w:����NW���*$-;�
�(��CI�Aszq�j-)6Mu�J���6����G����f�����"����-�Bg�#�0T�4�g]
m��.]�Z�����b�[J����\�����9��+����PhAr���L �,��4�>��;���l!���P�K�;�f/�>���(���
�>��������A�CV
h����������p�"�����L���_A���/��Or�r���#�k�57b��9�����c#w����}ib��C�S�����������)�`
����\_�y	]���5��<�~q[��[���LM0�����n����UV*���P*Mk�P� }��@t) kWt]/��(0���j,_}9wQ z��+z���\�
��5��~x���7������t:}�t|����p��W��/�P�?��C�����u�JII��w���J�t:%,``��� 2��z������^��T"S�"����D��)�t;q������F�XT��7vL�g�%G����{v��}��!���������R{�A�3��s����X�*�U�����@��c�?���N�o��*�Ui]>*�����{�:kb�)�����L��s�}�0gdt)u�]�_��?T�i�fA�}u�]����V@�D�W
G�h����~@�>��	f�k<�V9
l�������*>���o���)�y���H�iCr�]�����6	�I�H��!5^�^����6�[�Rh����'7�X
O�U�9��7��������"�=p
����i%-8�}��XYP��"��p���.�����FoSP]��u��^x�;���������h)�`�q*�fH	����h������������w]2'-H�����( 
�R�i���@NK���]M�����( ����.���� ��k�JsQ@d��G��6�
�u2����O0k���ZYY�E�:�4�������m��a��y��C��t��w��X�����A�'�p
�t��@IDATU�����`�-I�@�* `U�^9��(��e{������%*���jp�ka���Q����TWUc���pU�%�(����8��)����nT�5���o/9��U�N]��fULnV��f����;�e;no3&�����|���<��{�-��A/;^
����#%�%����
�����z�k�~���������y�xE�����+6d�����������'��OV�Q1d�G/�&�6��)�Q#AWz
k��P�k�}Cm�G�=r]�.��j�Ny��Sr�6�>�>�"�.��y����s���-�j�-�/��"�+o}��yR'4�zh���w�qtp��
(oL"���7�R(Dj�mh�}��?u�<zd(��a�5�!�\5F���e��-�����������_Ta��j8�I�f����=$�Q@�
D��5�����( 
���]��$uDQ ��*���ABU@��P����(	
��5tW����b���|��8z�8��C������/��T�
Xz�������V�s�E���{�����y��q�F����ve+
D�VE�%�	�S�_k����0#��t��2��=3�d(�"�y<8��;<���`���'�tA�r��?���2�&(�
\u�Yp�[�WS���j��/#�@��R��fE!�*�KU����MW�:��j�F��x22��BA�;���	Ok���>�BrZ��:���z������K;c�<X��S��\6r�������V�CnJ#���L�;���6�^�b��*FGa9, ;U�Ej	TO�d�����Vq��JCN]d%�����]�>�u���>��#V.�[�>&-v��R��� �~q��������p��~
�OQC��}�rTF���v�&��\DQ`�
��5p���( 
��^
��2�( 
�GY�����"
�����]C����%���h*C7��=���r�j���X�b�2pZZ�l���9-_��R��C�q(��R�����������j���W.[Q ��*����U�r���������v��5' ~�v�3T`���W����0����^�mi���q�q�c\�
�4����W��;\�7`�S/�W���Y)�UC>�lu�!S��6"�Vu�����kU��g#��c������
_�]���
�p������������������4Zb&�������(w[AVE�����e�$�+�������-������l^�����-��%`���d=�R��L�+�W��-���<�����,�����9$���
��FO��X��{��+����_���v)�]_�������5�ID�1�@4�]c�����@@d�
(���@* �U^��( 
����]�J$DQ ��k�.����*5|��
B��Vy)t�����|��b���8�����d���*NYYY��aC��_�S&`�c�=�������i���g�yF���/��(�
X�M�,
T���"|���8cJ��E}���=�������pi�77���j~���80/9�pz
ww��+p��S��Wm��\
��Wuto�l:�)�.��+oC������e��D���!q����{�w
��a�/)*`�Pq�v����k���W��rTgNE����8�Ky������j9D�U1���U��P7w����g�jc�,|Xr.��2�_�;`0+�����f�6��	��!��s������U�����	�������?���[(t��!5��zx�:���^
��5d��1����'��<�O[�M���V=����'�`����Y��/Z�d�������m�l��f`��z������z�h��1�}=~�t���K�( 
��q�+�F�SzW@�����#��(Y
�zY�Cf#
��) kWp:I-Q@�,d���1�X����a���*��O���`N����.�q��c}eV�\.������U��C�t�Ix���a@�!'�"D�"�B�4D��R�?_>�9�w�`T����DYB�&R*�+�o��B�M�O�$�k�o���/��G�?
����[����i�|u|���U�m
�|���i.W�#�)�Z�����Z:���er.r.��\��p�J�^�q�<	���rT�����z�Z��i'��?J�Tu���qG n�
�S�����Nc�nxl�{[�0s*��vr�*������e��iH��*�����QoOE�#5���]yj�S2�e��,&����������g�Y����U�6+2�x���J����i�����l5�$r�"'��)A�.���Q�+��| CXTX������z��5PH�/��(>�>�*x[�NV�)h-�^5����"�D�/n�W�������K�q����������@T+�kWT�.�D�A+ k��%�DQ`���j���aDQ �
��V9�3Q@&d�:���c�YYY�E�)����a���0��`�i�����Q���[��&M
����l�����f��8g�}6y�����H&��*����_Q��|���q�D0qy4�s�BL����mmm���7�T�
�|~���%K
��P��D\z����q8�6n��k/��Z��kHY�7�h,/AF����������!@%�@��]U��;�$(,q�bd�8����[<��q9������~��
=�2���o����.!�4:b']K�����pk�Zl-P�����8k�5��xuY����p�We������a"��`9G�i��FW:�q\i���v"�" ���jj�Q��t���v�7E��
�l����B����#�����z����k��������}M�l���AY���]v����P�1���T��g�t��15�L&���R�����.������_����D�/n�[p�y���u�|�,�Yz:ru9y�D�Q�@��]����������k@�I#Q@d��eHQ@��v
ZB�@F@Y��N��
V��+W���L�u�g`���������9�����A�?����
W_}5v����G?�~��_~��H2�@�+ `U�_ ��(0
T�����?��D���(��vh�*����.�~=�3��#>y`%��m�w*�f�I��l��.!����Vo���^\��Z+�����&\fq�1�0�m���l\HI��#e���<�,�������V8��k���a��)`|�j���8j`�{��o����������O���HvW+�o��~�l������G�����B��
i��;\�Q�z]�l��A��L��K?
���kh@M��5���fR^u�m5�����q���p�1k0%C�����M����r��j��6���e��(�A�	�}�
$M�������Ro�S������B>N�S�6]�)����L��z�&z��)�a��1�@��[v�no|���M����������q���h���U����i�ISQ@1d�1�e`Q@QY�BL���@D( kWD\��( 
����]!
B��V}��������!��'�P�����kJ;F]x��A�*XUXX��_^�������?zL�(
D�VE���y�aV����c��c�&R�}�'!&�J�ilh�MO�B�Vu�1��A���w7������S&��cov��^9dp������O���a�����S�����;�LSg�`�ig �{'@�S��W�U�,<-�]]:XI���u�h�
����V��_
�� 6���:�w��w��W���a��l�9]+��q5��R@�U�V���e#����	�;�c�a�>��S�1��a��n`O�#
��zGj�]�o����V7��)����q
�;�zq&'��5bBr+��E|��w�F��+]S3q����[�c�~K���\}:Xi�����u(����CcH��i�O�������VG,������DX�vg��r�r*��V�����$����W@��4�����(0��k4^U9'Q`t* �����rV��hW@���~���D�����]Cw]�2X�p80w�\X����F��/��������~���U���X�b:CU�V������G*�����U�x�d��@����K1?Iu���`�{���K�+���T
�����/����r���C�&����Qo�9K�An����w`�����M$-\�Ww}+�?����Z-�zq����#����h+)��s�������E
;�p�5J���pU�����	�O�I��?^'Z�_���m�C��������u
���V�?[�V����q����Dm��<.+\�}h����M!w���a����P�����`O����#���&.%���V9p����J�:�G��H2m���[���x)����/�&�3B��2���1���H�>	�S����
��[�]�	�V��-��9��-i�� g.��n�NjQ�O��/{QU��7���YGv�d��Z���@�+ t��$�D��
��P)D�T@���(2%Q@�WY���H*��@* k��]��V���������O*_t�EX�z�����+��?�Y��O�`����\�M����qqqx��W�p�{����FJ�FJyW������m���@��S�1���5�U���wHE5@J�p�i����������w��
|2s&.���f`��7�
W��&,|��A�UvW���.
j��'��j1�1�\��w������3��d_|)��LU�}y E
�h�r7�?I]��{��V������BvJ����;��0���T����9�����E�'`��c{�	G��Q���w��lNVS���y:���i��cJ����Qh:h{����U�q�� +~hUR����:-����T=fO2#7��I�F$��z��P�Xy���������2�INk�zN�\�<���c#G����+i�	��.����=�Dh�[�����*L��b�sw����:c��( 
�C��S8T�>DQ`���k���DQ`�
�z5P���( 
���v���2�( 
TY��\��\e/Q%�(���C_C�u%=��M��v���SN9��ho���8���}V1�u�m��=
d,_[������U�r�d���)�}���oTz?h���Z��g���G�c�K�I+oA��o���`�N���Ch�tu��Wh�$���l,E�=�����@)p�������g�����8�|�7}���>�0x�V\)��9�>��������n�i�%�����G�W��=����P��c�5��W*t���[���P�/)$ '�1�u�o�\����r=j�Y���w�m-�C]L,'�`&H����L��6n�f�������/���+i[
���5�����!z�����9�_�/���� ����4�Y01��\Q>�4���*������!
\H�F��fX&��B�������C�"5�����]������9y����jWA���'��Y=��"c�2Q@��G�p))����p* k�p�-c���`��j0�I[Q@)d�)�e\Q@��v
F����u���9����a}i��I��������=C�jll���K��yL/����_B��SU�����UwIdB��p+���O/A�Q6+��]�����p�gU�������.��9���DAKa���;Z"��k����'�*05�p���{�s�to�>���=o������@!��r
�&�D�G����S��0| w��3f!1�Xi�1gQh�[���<C!�Z��E���{(�{���QA����"7}�^i
C��VD���H�n�}�t�OB�3�<n)����+rL�%,��2^W3TQ�	�r�}��
�u����4���&�*	�UF����9�=�}8�R��O��Z1x5�`��LPG������QV�`����	K`hw�������[��S�����_�t)'P�����#r�����K�}���1x�G�"r�2)Q@��G��i)=����) k��i-#������jp�IkQ@d��eTQ@��v
N��ZX����������{���7���6X�f��\�2�.��+,,���"�M
XMWK�*
�M�������w�h��N�B�n}tb�]���y���[Z��M|�c5<���S���}ym�p��d����4\E1���t6|�����:
�f������w�F���T��L�M���0�B����!�Nr�I�M}X���b4x����������OF��P�7J��\��)�^�V���iw�O�P���S�O3A=_��BB���|�l��Fas	��%�W�VcH&(S�4�>��>�_�F0��6�����m��b�p�:r�2�����+#��
a	_�`�b�K�+�t�|����v��,'pM
��m�IGC��R������G}�>v�a����f$��@�)�[�xf�/��	��DQ@��X[�Jj�5�F$tv��HBP`��W!H#UEQ ���+�/�LMzU@��^��w����#��R������t�y��������b��M����\%�<Y�V�R�>��s8��S{���?������Gy0V����T���+#��Y��M?Cl�A��W�g�uKIY���{U� ��H��_����O��sX�����N�Q������F��*��VC�Uo��Eu���8�����N�Eky��|�}{�id�jF�t����C��k���
Z)�����q;\-��n� ���V�������`<^u^'hv �>g�5�����,�*ten��bs�l� �c�r��V7R��`�1��c���	�(@���S��s��eO8��D�Oh��2f40'��F����r ����J����7��n'gP�����t5!��t����*�(�����v\��r��.��-�
w�g�:�����������LcX�<�Z>��B}��%���M��e0Q@^��]V
��2�( 
X���v9����2;l������G�%p��*
EQ`�+���	(����( k���.���� ��k�JsQ@FX�F����@�(�q6������b]���T���������NSo@�W����!��]^}����>D@R�*Ja���~���U�[��w%�;9ei0;g	��r2tdU��w/������*L8;V���������}����>����#n[!V�X[���fe�	�,���L8���v��`+cR�� n2�zw*�U70*1��!�y6P8���f������l��AkH�dG*m�+Yp��_(�����E�N��8QZ�B~^5�]����p�5�SZN*9\���	JP�	�
����p�eTz��SzL��`���-�c����w��J�E��e2t���no`_���h����Nm�������xM�)�CE�
[�h�o��%�h�(�
qfuK�8z�k��l�o��2�(n��N�VT�D��P`,�]�f�_Zp�{~Y!1V����(�w��~�1D��(0����#mEQ 2��+2���J�V@��������( 
D�VE������@S�+���Vg�,3����t�����Yu�2����?��>g�m��������v`�j�{{�7��j���!~��>�
�`eS1���?��5��$����Y")��~($`��o��cj�����h� ��[�6����T5���m��t:=.=��A���Kq�b��rx��j�t�N-9� n����������_��7��Xw��p�T����j��0�.�1m�]=CN��+z�v�w�T��������_�)e*Jj�(�s�����
��
\��S��AW�p�IW���<�p�<K`�TjN�
=]���:h��t�����r7|
�-�?'���I��@lUP����f�y&���Nz+�M�
g��|��
Qy�j �g:z�k�*���-�+yry��9$;���Zm���|�HF��G��p�D����h_����%��Rj�����L+I"S���^E��2+Q@��v
VAi/
�#���]#���)
��@��*|ZJO�@�+���|�u�4��:=v�����P5nS/�:������<���"<���h�RC������?�~{~�Y��7�b�k��
jr�����+����`���'`N��J���Ux���5�P�����)��1�����Ad�.
qF/���yLy1��������<�:k�2���0��Ge'2w[�R���������U�����c&������z�w`_����va6jp��X�������k�%�\�BMZC,LiK�:�D���)����%/?�L7a�\,}�C%���Q^��VN��\S~$���=9\������G��D��-���4]���K�q	\6dg$�C=:0�����y�����]��p����
 �i_~��@ii1i��=�c
o��V����Tp��D�.T|/G2����tE�U����m���i��5���&7j�������X8�,�x|��6j�?:E�����cZ���vy����JrK%�N_��4�J����hq��>v�����Y�����>d+
�C��h]��F-�U"EY�"�J�<DQ d�
E-�+
��@�) `U�]��(0�
8�v�a��Q����r�:zV���7 �����I�S��_A���/�������m����%�U��,��`��*�jI]���6�6����'��+`r����sJ�������{��XL��.����mB�x��:	�r58Ez(�Fe�u�.�[C��
v���W�9��#��h��Y�P�=��Oy
�n�q=�NveL��`�Z�����+�J��L<��V�;�������~���v�=<��C.I�������� i�������������UV�����F��O?sf�0WZ����V�.lC5.��8�I�u#+�9	�NP����` ��:;\u�������hjaqlA��N=��!�j91}���GL���G��]�����E����8������a*���~�&�81F{�@���_o~���Q2Z�z���-�
��`���?���m����}����������)���Q�+0�.����rw|�����S�L]��3���wNZ�!3��z�gI��(
���*2��Y���P* k�P�+}���P) k�P)+����(0<
X5<:�(�@T)���p�n��������y����"�<a�i��h-1;��U_'���Ux���pd����U�<���\����7uZ�uB=`'�����AQ�AS���������W:R���7������!)���		�6���)$�FQ�Ae�D�;O5L�e�����M���[j�f��q�b&������wn5M.|���Y:�����e�Ze���\�����C�~;�V�!+S�"r�"'������g�j���v�5��������`�c��_e��K�������0`�ds���kr���V/�!;AD�q�Z���!M:�����S�)��%
��h���G��q��a�p��>�\�G�,Qf��`��?�I�[}?���U*�����_�tm�&���S�N%D� U1� j����+�O�R�+�O��F��r�
u�}��0?��
���}R�{��6rL�O��S
�qQ@�DF����9;U10�Ki�zLG���|����(�v����g���{i�B���(0
���j$�!DQ ��+.�LABV@���%���( 
D�VE���������QK!�nD� ��V]�<�Wt��-���#�C���}������];��Sw�biF��L�<�,x�
1��������B�,�O�a7���?�;�c��I�\�T����(^��t�Z�����h4����e�\�Fcr����I
5;�

xY���`���Ya�wP*�'�0gR��Y{n[V�A[�7�u����*h�fS�<�!+r�bW�0�������3��4:�}���I	�g��y�N��zp'�X���o!�������������^H��rr�I�z�&���+��R�U�%��C!��Pt�f�u`$��t��O{�H��8�u�������?��hp*������	6�[��I�!���P�S8��H<��f
���Bm9�_(s�9
�O�lJ�Qy��a
%�U@��4P��]o
0d�{9��3�`Y���$
�K���v�;mU��y���$��������U�Y������~��������$
�#��hZ�FNEY�[Y��[qO����]�PQ�DQ`��j����---X�~�������rn7Y������qqq�:u*�9�����,?���QPP@�������	�#0a i��7������e���s�F���kXVZ�%�jq���?��������W9���+�i1���3���e������hB�Ig"��k�r�����Z�����P�����]85%�S-97���`������Wk�W���
�����:���O�7�	z�g��g��xS,���������EyC��s^���J=��i�����V����[��7�JXr.��-c��kwZQG �/�fp������`m�Q��O�n��_!��Fg$�iAV���zL-W]����WN��L���W���E"���M�H�[G�����A�U���P%B�����T���P��i^�>�L��W)�z�Xv��I*l����4�y��Y%^�D� 'e��������	vc�*�d1R?:�$�8�����u5O�����A��c� ��OK���)�Az�}� ;]�\�F"e_�����d�;�$Q T��N�*&�}
���R��Nr(��\
-�>�P(���sM�(0F���_�+���_�aqZ�)��}����*����=��!'�3�?���:I[Q@F�z%�Q���v��k.g,
�d�
WQ�A��VE�����[����*���Wp���u&+�^�<��l���Mzz:�<�L�������{TP[[�?��Ox��{��n��f���?�!��q��X���h�R@N������
��N���Nv���[>u`�V�;�{w�M��7W��#���=��[����oB�����?>�������0��F��W`�����p�U�]�:l>��2���--8w���������1��p������>	�	:��B����(������-�5�y�6x���=��������g.�q��
J��*�����a����a������cQ�p?8Y�������2��8fV���n���U{�7a��LY��{�X�R�j1���:��{����e�vA���[�}
SN�TXUt���6f�}R)TCL,Y=f����WGp��6��R	���i4����	�a��Tr1��p��Av#�Cn�-�����D�W��X����z��r��>?0w����J5�99��8l����=i��xz���Y��F����������-M}���#���(��H>7N���J�T�'/�t+!3��"��=\T����'��'����a1�!a����pE��e�������.%�hq���j~h��}���j2V*�!�p�6��|�p��/o�����y��������4��!T@��4�����y����0��j%�t�IG�;C�����V�^T���.��.�����]���{�?���y>��� GQ�<�`y��p{v�!dh�{?�/
��)��Uhg+�EQ`�( k�h��r���R@���u��lEQ`�) `U^���{g�}����U������+�NW�z�0�u�-��rT-^�nN?�t477�Y��s��3&��kM��c�����yG�4�����a��O��Z]������q�z��4���x~s�T�����T������Qx�tx)D����>�)x#
9�%/9�W^��SN�v�.i<�Zk%�����J�kv�����!0�^:�b,mpY�p���@���&u�zX�fc	���3S�@y��`��^oD������{[g����DF�Tg`!�u� U���\��6������q���%����2[�Z��W������q�����U�7p������������!���p���{}�>�?_1k�R4��a����&�ls��@��&��]p����c��]������h�s�*&���i���V��(�`J�����{v���a��:�V�V��Q��C���J9�:jA9TA�u��2(�����-�CLF������S~oqv�����*�9=Gh��C
X�t(.Z���0���)T ����!����8\�o���{�e���c����hL(�����2�c"���mM�*���0* t
����+9Xm��w�2L��e���Dv���S�����Wb����o���96v����]������V���������,;�6X{��������~�6����@���^u���DQ`�) k�X��r����P@���q�,DQ`�* `U�]�O?���/�2�`�*�h�"���������y�PQQ������J~��U����{�s���{�t��P�����������N�[o����D�/��Y���7���.�o�x���w��z<���Dra�T�2��i����������MFzr�|o����[���3�����"@��{0k�����~v�	H?�bL�f%�r��S�����`W��&n�C:�	�T8'�3�}��e��@a�@��,�i1�@`��#`�h`p���[����4����m:���	��/���
	��Wj����,|���`�j�m*dENV.k���U!�9*d�r44������O�]3&k��b������mlq���B�d��&rv
�b��r�`@%�\����L�"���UIu3
�6��)e��hv�
��_����j�d���xKO�a1���\�8O�99��W��E�_����c]����a��P�[���TN��}PM��9����=��l$���[d�N[k�s���U7����� B�{b�s��bb��tOp8�6���
D��3lW��"a�5f`���X�|�U$�-Z� t��+�y3|�Jk{;Q�;R1`lb�*���1fm��I�@$�ZM�.�����������	��@rDQ �.�\UD�g7)�9��aR�B����n%5�.�}��'��Ea�����K���(����^�~6rD���v��+-�)
�.d�]�S�F��VE�5w�_����R��U�_=�y���r����z
g�ut��>������;������q&//S�L�R�;Um���_�}=���JA����7�����l�{��J�A�N���_�S������n���Frn����'v�����}����S�]��q����s������d��sr_��[gS���k��P{��.������[*����?u6�����]��o�&P�^B3\n'��*���l�u9P����8��obZ��9S)�=�k����`��L=�T��\�S^�Cmx��JGO;
����c�W��D��O�4O+�U�A����qFPSdW�u{Z�u<Xvx������Up(����\D�>�h)L]��j���c��	9�����t���/z�
�I��8�C��v���@�:
��J�I0�av�JQ��(���;x��5��0bc��(���9!�B5RX�7�����;��d�QX�\�91���4�-�8���>eI�@;��`�x�V��^�7P����>���hi��Yh' ���frdbw��$����*��H��@/v	:f�Hkc&��tT���_�;"m��0��S$\������x�!��p~�e��`���bv�S �A���h �����R��1v������$
������f���~���S��
��;���2��������L6P�i��?����_Q ����*������@x��+<:J/��(0�
��5�z�h��( 
�[������!����:|���{��*//W`'_���x��*33�W�e����O~����/]�tw�b���W_��`�R���'�x"��U��������2���"R��>��Co��J��pUeYR�������O4�n����S�l�V�y�D\x|�J����������U������u�cim��/��-�Hn����������)��30��k�B@�`���D��Ekq����?��[?c�`���w�C��m����P|N���\Z��
v���pP�Iy��%�y_�T�Rq�@�\��������v��UDw��
%v	b�*��Np��A�U������Q3-�8����6[�������*����A��YY���e���M�|��z3�>zK)K=�$,|��.��k�|j��k"���!U������e	�z$k��l,C��emK�h��]������FT�������nT6�P��s`���}���1���1� W��N�����������o�}*�}.���i��\����=�"@�{����N
gbW�����W�>�Q��v�����CR���5a�:�����g��a�=B���� X���N���PQ������Z���M�����XWv���?X���g���S�>]9��y$Ug��Ch�[CE��0�����8,;�H��������eOy��d%x�R��F0���G�P��d������Jv��-)?sc�!+r�d�V��U ���&���*�]@�d��'�S�p�����!���3����%�����{W���V�i���@�KBW@���5���(0�
��5��@f 
���`�j0�
q['���_q�=��9R`����q����`�*��zK���������[�l����.��>�l���{�2�rss���3|��<�L��/�����������_�������w����UP�"��=�Y����6\T�B=\��^�~�6;���NQ�&��7+s�dF�P���r�������y��f�`������_b�������%=�_��W\EnEi�Am���p�/�S�h�FL��'����!6���l/R����I8s��ks��@ AZ*�E V;��P�-���jC����d��9��s�P���"�J���������R��!�U����-�T����5c����W������@�U��p6P��$r��K�y�]�L��B�nXq�:zbz����3^���I��zz���U�j��t�0[(���
��fr�����	m��Vzul�N��lTZ���
k*mI��m8�f$�03�L�z�05
���9�H*�<��|���!
�A����k��W ~�=5K��)
]�T������_�9��BSTO��X����8�M�`+�2�� �`]���J�.�A�c(�A�V�@�n=�Z��������bp�!*�����i��w2�1�Q��q}��l���Y[%� d���w���{u�&���������0�����O�=3D����v'*.G"����|�U���y�S�����F���v�+-kWY��\L�/P��JN�Q�<���m%9���9�p�����B89�O;���E��V Z����I�D��R@����2Q@NY���Ij���(�
X�W��u������E�����7��x�_��k�u���3��z+}�Q1�HM��7�q��'���>����~������Lu�i���?��������UU�(Gu����������.C�K������������������`rU���������6���r��'`'/I��WM�o@�g�����_��n�?^}�'g�����a��2d���tFCO����+�F���A�3�������g��f��L��g0��	����@��:�x��G�GEi~���8Vk�����%�Jt��~&�g.T��:��z������#w��r8����u����Q?�g���;�u@@���X4-���Ow=+�U�Z������`����b2	�;��N����F���J��K�����l7�Z�YC!��`����$�#\��u��w�S�����L��3�x������G�Q�7�:�q(s����O4+�DN�^q'�Pq}%��_l)��o��kr���&���s����L��B0�vh����s�c������2�?h�����������������4	"b���BT:Q����olu�K��b	XG�p_@�0���}�$���O�D��r��~�����~���@IDATVj�f���P����8��^����}�P�����G�h�Z�\��gx�J������3v|&).nt�[�=��/\�t��j�)Z\h"�������$�H�]	��J��<��.���O��:���#�T�\�����x��T�S��nk����"f�����A���^
����( 
�nd���W�N�
��5Z����( 
����+�������o�3<��c���/���,���V=�����TII	jkkq��A�
��A�Lw�����z�v���]��0�.��t��������WiiiAA(��Z~�4�n�@��?���R���{�O%M�����X[�������g��������V�
�(����d���'����>��������7\��]�����h�8l%��5�a�X}W�x{����~{�b�~�E���Z��N��Z��6
m���������I��v��`HHX(?��U�U��A@��F���-�����)�8$��K�b������W1�U�:�m����C���!���6%����lh���p#g=Vk��YCV��j�����b�m���pCo���M��5
�e+�y�>;�2lE�V��ht������3?L�9����";�u{*�����p��	8anl�Z^G%�m��*%�����4���3Q�����'��9�[��Pc�m�T������,/��[�Z��'�U>w&v�QC
�U��+J�>���Y��)���3�$U:�Wop ���0�CUr ��f��K�����8<!CN�/����kY����h����[�\�+tw+���%�G�k�����;(2�����z�������r��3h���Y���H���S�I���2��\��� �������8
��@[I�S�H^��#����;�M�2E$��.�e�^U���fW8����(���^�~6�B���v��+-�)
�.d�]�S�F��VE�5��U�g�V�.�@q��"�V�z�vD�f��]_}����g��u�]��_�f
�/_���a���;����m���������"Du����7����Q���@h9�\��~hm-��5�r�F4%�}�}}��J�]���Xn�p<�>5+`�j�����J1�������pYz�X>)-j��M1&6A�O����������.;P��yq��G	�P�.9�M��O���>
�����l,�{�_T��������a����n���	r!�W��J��3�^����m#��'���t|��R�Vk-f�J�����_f[~+��2���01{`�COOf}y)�]�c���aq�����^z�S�Yj>�����?�><��^���%����D��r�����K����p������jx85�a�($�����
;�9�*���%�p���4���L����#N�;�����x�k�J�����I�T�xZ�m=DmK:W��kM���&f
4����1��_j�.��_v��3���R,/�������p�
�� �r�bX�{b'��	�R�)�K������P;������-��Re�����
�eS�"���)�a0���Co_8���+���J��f��3����)�����F���^��4��}G�TT����hq�HP1�������4c�Fv��h}�<V���v1l�?W;'�'�x�y�P��Y��������6��f������/
�V"u��z�y��@x��+<:J/��(0�
��5�z�h��( 
�[���h�����a��p���(���l������o]����N<��C�3������_�����~v�a��@�7�x]t���3(�i���ad\��x����P��_�a���w@���R�*���23F��A�u1j�.��C�����s�$���'�P��y�_
�I�4�=v.�.;����+m��!g��M����i�=��@m���F��x���,=������}��g�$^GPb��j�mvz��h4o|�=��Qz^2�$�t��T7�������z.�f���2�u�C@����U��e��F����0��!�U�l>���g82z4c�w=��mF
�)H�
�;�u���������}l��Q/�_��Vf������wN�p�3~q=���r#�n#�z�{L=�391�QT���;�iP���}��O0;p��"�:�������_��(�)mZ5nQ�>���O����uF�K���+~9�������F�����h�����>;��,l�pA�.8"��5���9�upFC�;�Ws�@;�7]������`K���d0��1�3����{_��aXH�us�����p��	�h"��=j��n�H!�z���q$� ��x}XC�o8���v�s�����8�_3�z�QH?���Sw��^����#��:~��^w,��:������s��k�q�II�G�H\�
�=\�&Sx�h���gb)��6uN����iP�����D��������QQ@Y��.D�hT@��h�j2gQ@:��C���
%XUZZ�Y�f�����GwG����gx���������
�v��[��|�K�=�V�\�����|�����?���(hn��R��=����o�:~Ep�]��0\jNF��Lx�~Cz��D�fe.fO��+�����?����]�rW=�ME_`K�Z
��:d�+t���H_[�I{j`qu���J����K1��gaLN��n�7�P�/��$�_H�F�Q��~���[>��r;�����Q�)��ch��P��C�`g���Ao��G�H0K���u�U�"<-���nEKSg�c�1A�a�jU7v�q���o�Q��Lu��^�=Y���W���l�G��&�~�W�K�����BN��?�_�X�|r�b����uNrm
��o�������.u����	�"��C��m���g����+�[_W��)�_�_&�����8s��I��o4�q�L���z���J����4-`�^�^�Axl����C�S4��,���������Z}{�
����081?���i�����T5T�����F
�d��Q��P� *�<:;O�b@Eu��+�J�x>��������D�����5Mn�Q��@���a����8����m��.v��y����������?.������}!���*������~~����.U�vW^������4kS��A��_�HZ��
�C�1(�K��:-��!�VdX�sHC>?q��]e���)I�Up3�Z��( 
X%��( 
D���+:���ZD�V�����P�U���8����{�n�'�t>��S�>gn��<�$9��'��	����[�l����}M��c����nR��Z~FY���~���<�Y�#��K�s�s���$<�([U]\O��Ge�
4�������������M�?�w<��w��Q����g-������@��
���������w��b����^_���-��P�!&�~��wB����{�}���r�2���2��Pg�^��wz������{8Y�2�����ar�s���#�KEa�bZ�_�uw�����]�]Q���.9�����9���9�t�����4�=���9�����S���:US�[�s��kQ�='��FZ�dV���������x{��T���@�UdC�\(`�#�I����pH��� ����"����#�,�
��R�0!hs�Hu|*���<ieWC�2Pu-�2�"�`��������v��1���Y�Z���v�zT��A��}QlTY�I
Q���Y���x�[�S�KcO28s�#>�6Y������[�;J��_��~{��W��9[�:MV�5Q-�b�K�V���%C\�6���������d����
��J}<7qa0�;VYqJV��(P�r�om+���FEKf�� +�d��Z���=�����)��<�V�`��,��Xil�������?�������~$�6��-��<��,i�������C��x�:�<���:A�"�I�OGK���Df���!3R��-D�Mbs"�G`��]��t�T'=!��T��*
td�=�A��q;Z��D+�sC�P�
������^���X*" " "�v��CL��L���kr'QK�X`U��L���V����_�m����U�<�����<�������50�;K�����X��������[y� a���


CXslV�R�2��A�*�����x��s�;�U3K�w}5N���*�r`�%�\~[I�&�Z������qN=��< ��������C�o�������=��9J6��@��e�Y;�*pw�m�/�#�FN���������e��r��N��'�^���K��=��<�W���*���C�����v�d��T�j�J�S�~7�4��������z�h>�*y�+�������p����s
Y����}�}�k��
-��hQ]�*�Z�:�C�2!�^��nw�����+��n�k����!���z�S�����
����Bug1,����F�B���:�:R
���-���d`�[*�6�R�07���Vd�u���*���.,���5D�%���^�)�T��rc��.���4t���p�BM��NW:]�t�A����fu/*����`;��1���
+
c%�Y]oY�vj7\d��!�EjYh�����Rx�nS
'�n�9�pka��G�I+��T�_��m�I���	�P��Pj�A�~����'�M��]!���������t�:��$���>���Y�����AA?i��j��x�UCKm�.�N��y�#�Z�(�~P~����������}nXU|�6(�a������CJ!5��n������7�g���bLD@D@D@D@D@D@D@D@D@D@D`t"*D1:[������tX5���F������W_�-[��������y��6�'n��f<�������U���`���:��w����K����@�0�P�U9�8�:��GU4u�p����p�9��XG~1��\���:,~�.y�>�|����4fk/ ���5kT8{>���L����g�69;���!���wz�g{�����0Nu}�.{|�!]M�����D�	J9(��a������8P���W�;oA�P���p03�%Y ���|v�~H��;�����4���������UQG�\��P+�Jbr�9�������',�
hV_5��*yx������������9�n'*P�����4� H�
�:�C���[�	��� Y�;��4B����\'���M�T
���
�5��������n	��k��f�p�����W������Qm������������������Xc����\H�/Z5�H�Y����$����
X�3l.�Y1h�&�e�%7�x�,�0��b��LP������tN+���'��Td{���u O�u�f�F������)�(1����v���� F��Z�z��+�[�u�'�����%��Q3M�����T��S���qi�L�P������Q����I������T))y<.�v���H����	�O��	^W���>!z��%7O�}��p��RD�S���G���F�Le���[�	VK^|����$" " " " " " " " " " "0" ���pDDDD���������=�`UUU.��R?~<l��|�MI�*lf��m����<���!E�~�������{�b�����=��d)�3�[y� ad2�U�[�j�EU�>�lf����w�q���"�<i|J:V/��}<ii�h�����Z��yt��E�F��������J��E�
����H��-g�j��~�����N{3V�Q�s�:��GhW�%\��	����6Rf��9�"%������"�����Pmz
��~p�����"�8���!��v�%h�YZ?K]�b]lL�P�Z�1�V8����4u�u���A�U��=��t1�b��C���IW��*}V�����Ak�$2	���F�/���(�+��e���k�J�"��re�r���)�l#�G��n+1��J��B��8?_TqG�p�V�D%�UZUl�8y=zF��
���R���4Z���C���FR��zU���,���:����Y^\�8��X1��C��)=1������N0�@�(F�Sf������Y�{��k�����H�W�4�R4v�O�Ct�(�`��������=���k2��olB�����:��1�L�C;�ehwU��#��h�CmVnRi���w�38E?�S�!Y}�Wb��7�m6����'MKC����	�K������y�4��a��_���?�����E�s�����hH}��_Y�Fe��Iq�����~Pu�GP���4���Q
��,VI@J��`=9����v���>=�X]�*�G7r��PD@D@D@D@D@D@D@D@D@D@D`4# �����([D@D@D`t" �������:R`��^~��hi	��������|0��l#���3U��c��[�N��_��\����t+/�)>������������Y����#�Mp�F	���6��~�+x��'���g�r��Q*R��~��	������V����_�,�����������7�������.rq�����/Fi]t+�����������n��y<tm�����h�_cJ�3������"Fe���^���T�Z���k�C@H8������k����J�E�CI����{����u��!��v5�8�.h��YQ��3}.���F���C��Y�@]]������+�Yu�Q�����.�J��&AZ�:���J�+��03��t7�����|�pe:V�Q��i@�^�B"��`���
w�Ct
��3��M���O�;���p���A�M�u:�pS�2�(7m���9��|�R=8
����Q�1���2(S*$��*��H�'s������nv�Im}d���,W��|-����|�=�s��9�A�=���GC���j@����CV=���_��iT^�[P���\3A]�:�swK@�y�d���a9����%1��i�!����H�9���vQ��Y��*�D_:Y^5}�9=�9x��3�������hUR���8��7����R�&<0�?��������|4���x�S�N�'�^[?tR��,5t�Z�py^�����DI��`w����Cvk���)�������&Js���=]�����]���N�~6;*��A�My�Nj��[�dZ���AC������z�����Q?�
�d
������x�W�"�b'EDF5������EDF)�����bEDD�(��@��fF�z���p��W�U+77�6m
S�
��?������/�jjjPRy���%�Ay�W_}W\q�49���c0�����Wv?P4S�\�����-fLjx�3]���������#K�^<��|�����hT�h��<Z��`�0|e��c��t ����!�[����cVqe�]�z�|kv�MV7�R��*,��*~3'Y5*�y
2W-G~z)�3�P�V���bx{zq�������oJ*�3��/�����;�E/�~�}~�e����x����~b�6�9�h
�v��	��G-�k=	w���N)�p��&f�5��*���'�@�?G�U�H[a55"��v�����
�bFp�8��g�1�D��� �4�U!�����('R�����

���I��*U�m��o����]����b��F���:%�=:gs�$zU`h�N6-78��i�����~������bm�������O�3���.hr-�ms������My/2LJ� ��4� ��+1�'�SD��XJ8H�� 
��X��
I-�;Va�����i^6xm�v�L�um����M�U�� 5��)��Jp������7<d@���~HQ�'�O�Nw1)YU����g�
��ndij�Iv�*
��jR�R���L?��!�V��x/��dh�&�T�D� /;I�)��0��)��J�����y�`������~�������W��s�uM��K����
������fAVX	�*4�#7��ju��>:3����5������i]R��k��m_��t������,-��Yo:'~^����-N����MWK��q�D�{�������/" "0rm���R�$" "0vm���ZlID@D@D`4" �����(�9\��m�������r���x��7PQQ6?��c�=��o�=����>������������7�X����Y#MO��A�&#�N|�gw<U�<���#>���R'������rBg�lT~��P�L8V{����*Rq�Jr��,��8Z[�=�z��;��}��E�	D�����	V��Z�[����;gqu*PvD��������~�Mt�HY�i�`����a�
`�:>z)dy>���C��7�%��eC���{�T�
��l���_�I�rNd]#��7�����K��:3���[d�[d�x�.�/�z�:��*^��p���c��s�����q�TU��������h�Js�n������K�0���+��v�u8�y��IJ����{�&6�L��������:(��HY�r�$��?�x������ ��M�����`^V$pSF���s9��|d��J��>��*V���)\�JP�����^����=h�G11�������~�
e�|0*[`@�6u���Q�F��X1d%�H����)�z�jrI���`8�5��8��#��s��EP���F��q��K")4i2�)��c�E���$�F1���F-�����e�VF�+g%�h0)��]���;�����#���@�2���/
��MS7 S]
�*D�Te�8�Q��!�VR|F�\�^:1�E���e3%���+;��
L&�H13E���4AT|}3T5�;c2[������T�k��Uh0�HG0]�qR)������0��j" �T(Y�����9��@(0�%1�@�`�nh[�����k-�<q�;Fz����9_�����*��g������V�g�t�x
����d@��z�D�s�����1�." "0�m���T�(" "0�m���XlAD@D@D`4# �����(�=����X!*4�w�yx������������a��@�>�(n����t��o|����X���)�p�n��0�F����?�o����%�UW=�3��p/6Cu{�%���Qv��%������Mx���������6��K��N�ll�����n!P�&���������<R���
YmXD���0�;�O5����H�nS�R	I
�U
_9�9�������������[1K�V ������Q�]�V�J/!k����!�Hz��u���/�w��u7.�J�f']��BCg�8��<�x�����`�5l��X����a&�j5��<f�A�1#c�oh8��Y�2�9��������Rg-���[���5�K����.����`��2���DWI8�\���������%�,����+�$\�xf��U�!V�a�*�f�*�0���x��^4�PF�����c�����z���V��F�n�������5-�!!�wB���|���*?LEV~!����LCS8� �4_em�2���m���\�d���h�$+fi��H��V�J`���+[uZ|h��`qEo�5
+���T(�#�ZA6���)�C��cJ��!������R��%��B@�*�=5�*`��	CT<�����c4C�Gj����%>���!��a��M&1��B�j|.�/�5�P�J&������zY������j��G��1�%����}�m8���������=i"[�&�w�s����>��%�?r>$��fT5���@�&����y��u��^"�L��E{5]c+�[D@D`�" �����(YD@D`�" �����(YD@D@D`," �����oc�`���k|���
�����
V���Z��e������n��<���!9�VVV���������#�b��70:�c����x���CM�y��$�s�c�0����yPm����k3��}��eI�.��{e�S��{@����$�O=����7_�R�J��+.&��JZ�;���U.�P���OA��/7b}?d�jnt���������'d��G��!I���v)Ls�I.���w�L�,/��k����<��� CVE��W�b`�$���zjwHkd���E7&YBx�-�_�������,9����Mc�*P���	[o��I`	��Z���?
�31G����v�JR���+�}�KV"H���l����]k�W@����[I���F!���+V���*F-��j'@��1�*^�;nw����H�sQ��3(a; ��b�R�rG�2F�Y]��������lO�5��N�
���3�#�;���R�*���N~����&+>�O\.CTl{7��51`��Z�u`���|Oc��A��A,-#w��O[��,xI�(�*�mBL�-+O��l��/�9!�8����xp��A�}�{���T��c�W-G*1,����Y��U�P�������FR
M�����l�l<����~��Q�%��s��l
�J2��ZYJ������R��y��� �L�e�q��<���t�u��.V`�����<[E�ebX����Nj����"e,7?�mE���t��seH;!V��v{5�UE���" ��@(������$��h�&��U�VE	�D�5������[�k?��p������M.]|��x���+utt #�,q���m����}���s�����h���~���p5@���O����������s�cS#m��H)X�N��Bp��xy�3p�����W�����G�x-�M��u���������u���oI�U��c�@��y�.iX�����vg8���@�j'�z<
��5�����kFK_7:Z�0���(n
�0�78����tT]�>��JJ7fa��k����!]���>g/Y1���E��[�U��������������~U�Y�Kp��+��%�)g�n�����^W/J���X��s�f�n���%�
��3�e��_�>����D��������R�r��K�CXU���a�	���a��H)���/A�6�5�����D�*9�������_��|1�pX���-�H������������s�#��3du�
k�����[�T?s���<>g�}���q�.�,K���Sl��6~��SM������"�����;��������d�k���v���8��B���j���B�u"+�$)P����B���0ls����HM*2����"-
3G�r���*VY�:e�"�i&�md'�4K��nZ�V;4e(�P�D���w�&���/=���Y/L&�?���h���s+�"0V1�C���:���Iy�H����'�����`�����ez,(M�����_2e������U�Z����Lmb���lP�����j����������h���A� "0
# ��ix��.��L��j�d�*��
V'���O{{�]w����L';��c����o�v�w��G!@" �������s��@����c��Y�i�n����4�h������
����_A���v�m�~w�%A�]��H��
��
��o�i����_���U��	v(S��z���|�%(HiJM/�5Y:^{>� ia��Nxg7�BY��^e��&�\t�����^���'����-�W����Q�:;����b\��:R�Z��zr�w?�3m������~�e��!
k;N����B��.�X�TOU����N�6T(�0��q_��
M���1�C������W�R�%b��_A�/+c�Mt���]_�\��B���[�A�R�e9I
V�����h��9o�K>�����������[2p��d��� ��N,6�|`%��@N�
el'H
Wd��"�fps^����&����p���e��X�)�����Tl����Hb;?Is5u��H��D!�&�
c���$-����DwS�>'������
�#�Y������k�q>�d�z3
W�M	���yH�������� [�6�������a��g)�H��iuJiO�2V��O
U�a���g�K2he���I��8[-)	�jh�t+��jQ���d�XB�v�yt��3���E���"�N�y�s����������^z�9�����-�qU�F4�&x����a4�IyC�k����:^h�#=�@�P��4�W����,dE���j:�M�������F@�]��u��E@�]C��XKD@D@D`�D@�U�H$Q�d��|�������PU���yv��wB�	vH�l6��=uuA��-�VP���������+������/�or��[y�~O�a[O3���oCC�����r�������P����0\������l���K��xr���[KP!)]���s�p^iZ\���U�4��Z
�{1���,������k���B�^�])����9�b���!^ei�Y
]�x����j������ �{��K�}�q���PZN!}P�-K����h��B��������:���r{���o�*��{�E��o��I� k�����
�����oD��#�VJo�:f��=1��u�J
V�����.15%�\�n ��c�������[�pUdl
��y������q�,�s��Scy�t�C#�($`x<�z"�a<�Y��+�d�#���VR�zq���&�d�M�F�p������3��wB����)jl�!������+�M"&[T5���E��U������(k,�I�����=!C�����zFd�][G��ind���.{���bL]G��z�~�eE��)�M �!+Y�*��r�b�*��v�I-&��EJ,��j0���:Vh�k}���VRK�e������ U�}��p���Mj�������FR�cp64��"�#�dXV)d�Fn�d�6^�l�� �����Yd${���t���e�T��	FfKb�D�zF������'" "01" ���qD-DD���h�����-" " "0�" ���vD�O2`����N	3K{{;2#�X6m���/�����x�%��b�`��m������]�v���$l�<1����{�{HU�g�~��/���s
�����"�"zgpd�������6Tw�JFH�3i��y�X]`
�K��>J�U�Rh3��e� P&N6���J�����r(�u���c�����hV}X9��BmB�KV4��1��
G��[����,G�.�S$����/Y�K�\�����^��0u��I�����Ek�e���CjT;����o��Q�>���%�[FjTs#J��U�'��A��qA]t+����o,�<Y�����#�G���R�4��y�,��D"�*[�&X�<��7��������c�N������p�����N�Z�x������:��3V+L�tU2S5�~�����j!-������L���J����d�^���N�b�RH�a8�A���T�i����(9�U��1��T
U#D��$����l�v��}��I3u�Wd���p�Y������!����p���D��<(�Pe�+�tIo+�8f'�z�r2�0�The�)h���`�-���>�c\�T��d�����]��L����H#�`�C���	a5+kZ6�!laXHP�r��yZ�I2�+�y�U���,$\HPH�0��J����HE�6�FIyf���A9���u�����^�����lVa+��/�U����f�N�}M����h�g���z��82l�K��r�c;�����H'���5�Fv~l���w����,CT� ���F6�B���`X=���p�qXu�>#��!�&R9e�-��U#eQ�D��H�Wu�D�DD�fD�55���+���vM�#,�OD@D`�G@�U��'V����%K�����*.�������^�����f�[�n������e��7�`����?s'�M�����gpUK�Ve#}eAO�N�x!������v��7\	(����N;Q�����=���+�#-��/������[��'��<����g��5bf�e@��=���i�,������0������^�W��Go��:�-/�I0J�IZQy.^�����k��m'6I�1���n
���YOg�n�������~��2y�.��
3*g\�����s5<���\Ai(����5��W��UO�{YA��Iz|.����?$�)���I#�|����<�yC���>�Q�A���J>L�y�B8-P���_��K7%V)���=[�k	+Xi�f�Ty'����m#$�T��m4�*Y�������M;;���\9��[.�Cea��2$�c2�#k5)���/��������DM���v�p�~u]fX���Fn$����g�v�-�
�����Z���w>�x���:aS�2�gz��W�^�10_a��s$�E�'����s/�I�*
��jA�Y������ �uu�P`��<$)��4/�3��v�\�!�g(��i?lE	=��20t�O���R�&�����T��Wd2�2���X�j�%�:�����;����O��0���t���(�5���fV�����B����r�'�5���d����<A�'���q^�N�C��4�����)\�q�	>/�b 4V;���d#IPT�Y�&Y=->+ �p>����4�];���+�Y���B]R0'��N����T�������j�5CT�*/�����-�WOm�������x���2	�k"��^9����g!�+#}���C����H�W�Y�m���vM��.�ZD`�G@�]������L��j�����5��q�5��CG^x�	|
�7����.���E]�����������~;��o|����{PP����t+/j���L���=�e��;]������M�C��N������eCe��W���uHmJR���y�dC���O��So�]���i����KO+q�3��<7RE),�4�%�KWUZ�y�#^ ��p��]�+����s�`�{��������49H+D�G/�>{���^j<8�������7���U�"Z��;�#�����o��Kp���B��
zx�n<����1��6.�"J�fI��H)��wJ�Z�7�g�	b��(��oT��C�I���o1>j�������>
�[�U&4r��]M����;n��Z��sI�{���Io����G�CH�
�����I��uu�z��5m&�+���t9�`,��,2���D[w���6�p�����g�k���;�T@x���������
Xq=��sh�F?�Jm���E����C
�V5=9���"�*��d�$��r��*�
�NSQ������L�K�C���5�am��S��A�/���&�'��`�@N�X�n�A���yb=�(�*Vl��@Ddbp���a�����L�v��v�g�C����9�q6)Q���%Ro���z�Q,Q�HI�ae?t��XJ��!+`�+V�9B@�;E��45)Ti��*��m��m���?>'��2�}eh�Y��Aa��x)U�BS(��K%0���
�C$��7l����t�t�����+LEm)����pS3���dD����5���lQ�H[�����u�?��Vb���
��`��}�j�k������M�>���K�p���H��h��]����2�	���Fm�h��zg�%L�U��KLZM/�~p���gh�U���S)�m��R,����L���k��������g����n���D�'����������TX5R����r���#`�,5Ya��1�f�BFF���3��R���J.�������	vh��6���.��*�E7����K���8\v<����������`fU;p���B���p���U]��jxkH!���
���f@^������wV>���?�����`�T�����cU�_��7���
��W����PP�E����|����"a���*%}7^���Dg�}_p'���F���3Y]J`S�N�O������H�YPj���d&��<V��8I�1�������o����n���;R�[1�+\�u3/�:t��ZS��A��U�qV��B���&]���e�":���w�c�"k�����3z�
���#����Y��
��*<��o"U���yi�T��m,�*lK�O�����u�N"���*)X���'�I>�>[���
�M��s)	�����'ul5���+����.��E����4+���(�/AQ^��ou�3<���I��)@IDAT������L���������C���ow��T�b-����UE�8XR���K��b������D�#�����%0�/�Y��`X]'2���b�0�*S�����a[�>�m�c[�D����D�f�~Y���-6�R���k�&�Z	�l���t�1X��CVi��������_�N��v�u�V�l���k��l9�`��a���/Md���k�L��p�;����0���4�6#�7�R�0h�GEK-J�)Y��`�������6�����bZ$�e����_�bp�\�|
T7;H=3��[����_����c������.�u����m���vV��+R��Y����w�.�U��B���x���`���r>?�<��%4�U8�n����c�%E]=o������<�H�����G�DF"Cm�Fb����F@�]C�\r��s�R�7���^�J�c�$" "�|D��|��""")��HGC�ED`G��~���p��_g�h��*�G��OIM)8?��Qt���Vg�1���8��d���yV��
xU���D�!�O�mE�����xlS#6d���r���b�W/<�\��l��n����6!�h�S�5���{��U8���!��*e�dd��z�;�c��0���JG�r�y&�k����4�`/�(��d��DbH�������*T:R��m�b��Ce(����j9�����G�����sQ�uB�;�T��TvH�I1u��SI�6A�M�B�I�LR/�"w��i������E�a�`�*cTY���~�*�f���������5�b��D���<W�XN>L�5	�W��0_C����0N�?�$���a:o�*G
RLS�e��zM(�	f�N���i�R����f-V7_�O���3	nr�����(R����Y���*$����q�������
`K"�}���^����q�P���9��yFa�D�b�-Vp��pQ���W���j��vy	�v}D
A����y�.�Mn��*P�I����h�0K�Yd��jHCI�0d������Ky:2��*�Ti���%k-]�y$���T����m }M�K0���[g*/c ��H�(�>3@eLQxCCj_#�s��>�67��X���B�����x�Md&���]��W����/�L���m
�@G��"��+|
'E�]���m�����6��lzl>R���/�u �+�:�$5��~5*V�m��&:O6>�����9�S��g������t����~*?���~8�k(%/���7���y��Y�D����W���XWD@D@D`$" ����b�2�XSG��n97?/�zU�B�p��b(" ";����DD@D@D`2D@�U��(�:�L�x������)��j�j������w?���1���
�^|--pWW�SC��:U_�����p�����G��v��@�u�v<�z�d�g������^���C�5hy���`I�����P������������>(��d����g��8;�������-�{�������c�i�Fd�stY*%��>�W�v��r�S2p��;���[�z��r�Ax�$��h�u�!S%���P�fI�$?����7���f���R��I
e-����Ru;.;����D��w�N���;�RG�f�U?
��u����J���e_ �Ki���N�?�|��k���}���'�n�G��	�����g�j��4��1o�V\�� +�����U9�J:^UR��!��AVgJa��,r���H9��?�]d�������L�Cl��_Q^��$�pH:I)��:>����"�2���B��M���H��.)���5�Wz��*4d�y������s�d���_�����Aj\T�Z�
(df0$$)\I�Wa�,�X�~���f�Y���5�����0��1��jV���=��/l�Qi�p��,�"��T�X�H��������u���@u8�������Wm�m�n���#����d�7��5�T�5��C1��=[������m��2
�0Z�Z�<.�Lq��KjS���@*Vp}�]k��2��JRL�+V9���P�'������2�������V�4P�j$�n|�2`�j���p�'���H����{"j(" "0�" ���;��:ZE�?+��K�p��%w�r�2���vM��-�UD@D`*F@�US���}��`�_=xZ���?��>\�_��w��U_
Tn�d��$k8���o$k�N�E��a�����$��-AE�����:���HA������_�,l�����d�f#����6\4s/>���Gw�e	�SX����!�>�m1�K�+��:���f�Y�s��t7��~��iW�UoB����������Sl!���y�"dn8iD,8iw��������
��%k��b���I��8Z���;��������ZA��Ix,�9��1�%+��3�V���5+pEQ5�9[�iy	^kUXq
m�y�hR6?rb��?�������_��~od���}�v��*�5��K1N$��0U�m&a�4��pk��#{���'�j��c������<�N0+��BVg�s���#�Y������,Y�f��`V8���z�����F������;����,W��l��U�e���Ohl��8C,|���\��F��2�
�Te��A��J1�.j�=;��;���J�a�)�`���d�w��!�G3����o�K�y:��"���4+�1h�J$�]m)���*dY���~��X�u�=`��A@V#�n�����@�����d5�D-<�zbe�P����V�I��t�=���y-r���H��D7�V�����`���kU�b���6V��CY���Pd�e!��^��{���D��kR�I�*��`n��� UV�J\�T���u���M*��#aek���?x���5A��3S�*|�5��UG�n��[���
*�~P����e�
���1`�����%��"���@d{5�j(j$" " "00�����������]�|-'3���Z������Tb������ID@D ~D�?>b�������D���&������/nBu!YOQG��4V'*>���C�(���jF^�L(
��,&���r������=�W�X��Wb������K����\r�:��[>�,�9d�g�����n��%l�y?�������6��aVz5���
��j�������7��Y���\�m)6�{��E�)R.:CVy��p�bk�'�I i@Qf��LX�[�T{
>�g
�Tr����6+�/�n1�Mf��9Yk�����x�~l=�j���[�nS�����c��0��2)2].M{]]������r�����4�Y�����k�T����&��5�I�Z���,U�U��]����7q�[�K��4Z������
l0�V����
��Mt^����x��_!�.���t��m<�*���:+'e�}'������}a����y(��X��y��� +e?dUN�����S�-�Z�P�x�:�����Gc���)����z��8wH�Q�ca)[d�@P1W�2p�����UU����@+������3����("�m8�`��]>{
<���D����'-�p�+3*�v�:�V2V�����=e5������l��dc1D�����k�JN�[%H^�cw�|��� c8���ZR�k�M�#��2h�X����D��h'%����N�p�*X:����}okm�����������T>����wb5��%�b��bk��~p�P)'����cVT����Z`� \yz�
Y)���T;����'�������p��gA�$X���8��<����S%	V�`��������Mn���1�<��'�E���%�C���v���h����Hq4 ���������\�L����:M�������E��vE���+" " "0Y" ���r�D=E�a���j|�P�~��E
�X�f��T�}�I����5gAUA�L�h**�)+���W^���g�5y�}E*���_��.���\�,�X.����C�����y�J���p�EQ���~��<�A+)�m+���������C~*����������N
��L%�4��<ys���f)�9%_X�
�w�����������	)B�.��J5YL�X��s����DZ?��M��N�ji6[~n�W��`xE��{�h%�>J
����@����U�<����Kj<�~������
u
���d��9��~���P<][�m'�)�3�&��*}
)�]�+/�7[�.�����Sy������KGd�uu�Z�8l��"�x�c��0V��}�9V�X�j#>W;�>����'
����p�w�`u'���g��9�T;gq:n��?������-Q�
� +eJ)]��m�>{-����9��\eD�w.�l%�V��
W�*Wm��@��X�(��0)�_��X�����q��)�-����h{��*pL	`c��LSr��D^:�<������\��rC7-�3H�_��B�Pm�*fL���7h�v���b�7p)����@`�JN>�� ���:a����d�,����Q_��5�	@q� P�IvnNz�f0��%������#�f�z����B�m�{�`����7��
Y�� '�`L���n����&���}51n��[l
X4N��O�:���F|�����2���(�����D�Q���@"�Z�W;�e��mW��e.�T5�QB}�"'�+�u����wV�j$�q~
b��l���K{9�b("��h���c"""�1���GM�YD`E���6����r^Y��z���4�%mZ�Sa����.w`�j�*��Y����[s���2���3_6{5�-��J��\����?t�����0S~t?�W^Yt�4���-�3�X�4��e:{'�|�?�HQ�7���:�eF���#}U6��������\R\��f��:��:�::/���!8)��A�����
-�%�3�6��������������e<�B�Z���"}�r	��3X��xa�C$�����������C2������l	����,�+?���7�m9N�)����RC��}��J���k���X�0w�{�^��{�
u(fo�2����=bUx����R�:����A������X��g���u�O�j>�5��0a*�U��~�*���}J��T�\I@PQ����]�{��;��d���C�����.���������VM?�fb��)�/���d��J�$�B�ei\����8W�h�0dF-��4�+"qG���/!�!���(�d�;V<b���
V����7���`���
[@6I��;.t�'P�����(�:|��=^�������f��9I�c 4c�XP������	e�o�����0�u�dH��5��"�`�tT�c�u�)N����8.�*����<o*
y�^�CX<�G�}VW";�lN:H�����e�b�m�����)�p��W�G��-r������$��g!�C[���������pVjk���N:/#�I�=�G�|���ID�PHD1ID ��V���"""c�v�L��c�Sd���rbk������(^��,�Y�*4��-?�`5������q���vM�#,�OD@D`�G@�US������k�c�������4����h��/f�!�e�`���f����Q�t��?��/�C���L��]��96��ZU���4:����m/F���D%���S���A�w�!�nj��O�6�kO=�����?^�@S�
�y�%���Rd���?���}���������
R������l�+^���3w���h��!z|J�Dx]�&���GYj���2�6�����qh�Yz;�Ly1�Od���0������7�>c�M��5��ZM��IXk�%����<��l����>���|����I��>0�GQ�}��Ji��j����q�;"��Q�]|I�:#9�����G	�M�X�����������P	�'S�-���d�������I�*m�wf��<�N��F(XQ���KI��,�3����^�al !%����UJ	���'Q��K��a����k p��2t�D�D<K�d�1����0���2�k�tRg�0��G��8����'�_����td`�B�/l���[���EPT��NlZ������F�z�YI��m��t�����8��)�r
m�L=��_5M�/�*c5���Y�����%0���M�g�N�p�Z��d�&c��v���'��.CAg�7NK�!�Amhw��a�b:'�]w�I���|��%�������F��F����%^~�:�l!WZ���t:X�p���^��6��p�RS��d�f&R���ck������<��5�J�H"r�=k���PD@D@D`�F@�]�?2���)�7���M��1�I��?�H&���XE�h��GA��o���L<E���vM�c+�LD@D`zD@�U��8����k�����%v���T3223����J�H*R3�[��*����e�������������Vc������MdI5��V����-V�#{1N�c�9+`���)]L/�������n�����+[��o=���J�]�V��LE�W��5���b�_q%t99dc����o��/��F�Q����Vip����~�����/gWW��nA�G����(���y�Bd�}.�s����O������q��;�����)�.���H��Z�Z K��{�1�	Li�����o`�\@K.Gm*&�[�M��y{����F��W�����4Y8|�����'�b����^��������"�x�	nC���������\h��
�%�����u���&�:~��K������XU��1�X���w�q�6\�JIo�X��&�r�'`�A*Y��&Y/HJ-��Y�B���vbu�z������4$X�������h�&~�*j��H7��,�b����i�Q�����[���XR�HU��G�T<�������^�U��*��(�����1�P\��jI����r��kV*Q\�B_:W.!u*���8�������]DvZ;��[��24V���?{��_�f�����~�����f��)���Y��X\����q���v�*B����0�0���,�nv��U8����,W;�
m�X)���SO59��QH���;���0]w����/�f��dh�V1�c�J�X�`�]�$����W�d�4�D"�+���v
�(�GP��_}��Tq��N��>��������E1+�3�H"�9����G_������T�����Q� "0�"p�j~���P�p�:s����22�a6�	��KWai�Y���;:~�������s��?�w�c�_q��S��=X�#*�����>,���x���.��<�K�1�d��,�����_��������6�{�Oo�������[�U��<�~�f ���$5+��E���k�z�u�c=��S^z1.]z=��6X���m�[u�����\7���}p*�0��������y��A`L��o���(���g"s��� �G�7
/�Z�2����ji�f�8�� �Ey=��o&!R�d��J_�c�o<��Q�?�����T1#P�������@�\�����a�P]l
/����T�p�'��J��"�Lm�M�9\��J7<��D�;yX����*���k��e��P���,�E �^\H���.�\��P%+�X�v����e��rUG�!^E��A����Ld1h���fV�
�g�4[�%bQ��V�r�G��d*��NvV�M�z��S��~ j0@�m����Y��P�����l�h������z�f8�-�
:f�MAE�6��������C��	U��I*j��bLD <l1���$H����0 �|yt�y���d��:p�:�*y~��F�Y%<��r�A�:�?��~������Dn�/����l�ds+��Hu\��M�a�6>o���RDi�#��Ys�_q����,�>3IQ���l�#���@��������GY�������h��vLY���`�Pe)��XA�H�T����N'���R�@+����*t��m�t8�bED�rX5����7�)A+����L�m]-�����(���
2��2�|�Li�L,)[�eY���"t�������L�^�Y,�
A;�<^7���x�AR�9�uQ�p_{��|A[��.��65P�<������~����Y\�h�U\>�����;���3�*�6r��C��Fd�9������>�h��p1��s��e��]�����C��]�:#��Q��X��Y&��u���;�&k�X{����H��`���z
��F����j���{dI��R
��i&���P�yl���,l��J�	�t��a,����J����]~X�7����0�S�����&�N��ek�w���li�����n	�Rj�d��9�]]���u��nb����?�� ;MMj%��l5R�R��[ls�����~�,_�����6��/%�ba�����y�O����:[�&��hE�Xe����LbbX`�j�!+jZ���C6wl��%���A��L)���$���J/��F*M	4�iTt���}���<���)E����H���[ ���|R�b������H���8��K&��Ne��9��Z��=����l��R�;{L���'�wbF�a@I�*���5�s��Jr4��&���k�*r;�Z%e9��L��g�l:�yb�[�r[�vk�IMqc%?�_za�������>;�F�Uh&�8��;���fh�|f0N}?�����M�3O�I{�4/����
�|>R����ep9��|5=��)�����7>�K�Z�B�t-d��jV���m��d�j�6����������F�LD@D vD�;6���+�R;I�WNFz;���v�yB^'�!o���?H+����1���L"�%�=�OD`2D@�]��(�:��[�g>�ttt�����p���&�?���x��0�|��/Ix�D2����<��;���:,^��W����k�t��A���lx�����G�����tX�nV�\���?�����F����G}���QZZ*��J���s���?6��7��-[���[o�w����M���p��K/6m�$�N�<����xp<9���H��;w���_��S�����:o�<��=7�p����FR�X�T�Df��Vc���'��{$kk�z:�V�����
�!�c ��B������U�1�������Y
��'����
L����N�<s��}�u�Eoj�x���E�4�����rK1�`���I�j�^i�����/��Et��	s�v#G�p-#�q)t�Jg�aV���(���Y���E�l�����<���nG�G���e3�m!�K��I����_{7�4;����!{�����%\A.S��*���"��a��gn��>���U��f�bi��^������O���(�4����R�?�x]�'=
[#m���6H�L��C�?�PV6mmp����J�%P'��j����B�4����~*6(c^���\���a������:�`�z���)W�k ��1Xa�%�jf@�Jm���#�U[�
��lV��O�[,�"����BW4���]�'X=�V���9���hen8?����,�s����ATO��Y��A<(Y�1D��)�/��=R��p�9���z��`(#CQ��IC�6��=A~�rG*�7������X_�����b�S��%�V@�I)A&l���F�����d[�jVlKMkF�FR�b�����N*�������S���\(��	#2�t��O��Y�Xc��9�
+YeO`��R}+Y�1�(����`!$����!5DR"���;�,�
����v-�Vq����v&p���k����z�)��q�D�+@�=m��n|����BjoIl��6�����zf:w��m*rH��Pt�M��,vRD`�E@�]��NR�������j���Rr[���r�[o�p�m�sg�bE�Ov���{.����h��D��X������.<���R����?���.K��G���^(�e�����Oh��2yH~��?�!�|���Y�����_�r������-���6��������_�B8��{�+]u�U��o~M�~��u9�2Lu��w��?�qd�Q���tvv���o��={b���_��5kb.�1i%�{�����j�m�����g������\������,`UH0��������@��O�� ���E�=���5>%�jK�����B%���A)���,w6V�|�ytoz%���������#�����;��Ej�����}~N4ES{�<{����9�,�'�^��3���������^Ga�f�Q���Z`�n�����:?}���E��xu������d���Z�������J6��C��\i8lM���T�����tA�&�*�)�>h\M�P-�"4���3mFx�Q���	�+�\�6
�����s�+�������e���rN*����x���=�G8;wQ-B�$��Z�I#�@�X�\5r6�@�~�n��
�ow@�?84�/*B��"su��(��;��WE��Cpu���o�%As�V��be��d!8	@�t��o�f��A���z�yT9W��]�P���z�%���"+c.]�������M�u�%��i��L�_-�_�q"1&���B���
H��������b��B�� ��/i����S.�\���$uV�b$�^�&�0��0Z�V�}�c������FAV��4e��R9Y�	�C���q��
�������MPe���;@���9_�����
���k rN�0TS��W�j����
�U>��$�L��#[��d�Qn�v��p�.����:.��dm���!JGQ�nek���~��;��?9fEu�+�������"�}8�iFX��p���C���"q6�m
�X��s[��{	��@���n�8��X�j:&~6t��)w>O/��7�r��"�?��J���b7�����^c����1��y��������92����LR���b�\,�E�LD�5e�����~�����G	�_�`�}�s��K#	Vq�~��@�


$E��?�KP�����@J��4R]]�K.�$,����a'��P0���������cMho��&n����,��$�3q��O������1c����,1L%�����/�����%'V���������Y����)�
��0l�jT��ml���L:/�����zn�����M7��;�V
'zb]�	�����������au3z���]N6|s���GZ>�����'�J���H{y'�-P�K����c�����{�H�+}�tRj��	�&����`2����1��a���^�]gX�5��a��6^cX�����a�i`r�$�F�,������RuW������H3u~*�[�n��:��S�	�������}I|[�
N��]*��=$.��v!��n�@�C�{�p��Sp��Ljr*:�K��XzZR���V
�E�zI�����h&�h�n#�������%���!w���������f/�5%�%�	���B������N���iklW[��z�?_��b=��N����@�v]�)��)R�\*5�eR�Q*-e����z�)���
���d���KG����lc4���,��������������%ci��L
u�p~�E����P&BZ�Z%��:Ir�� d^h-x1��-{�%��S�bz�n�.M[�H���P������g�+�n�BTb:8�������H��V����Ld�5)�U�B0}>R��:�D����U�@�j;���c	;���Nly�$�A8�F��!GVt��\���L�*~6�A��W�u��#
7*X�-~J ��?mx����6�GmHrk�;fXeC�/7�HO���T,���	����U� �������� �D�t�j��*V�Q���s��u�o���0�h-�m	Pa0���bA�����i��}lw
������$j����7!`�{�����
T�2-�������`�s��o��Sz��O�T"lND=��iP��}��F~�����<�����8���~���Z,g���C�j���:���h�m�M�B�kA��� >�P-��gx�o����g3���d}��F�.�)�������j�n�)����|�) ��2����g�������0=0y=`^���w_}J�|_���g!������.�=���i4��s���>1����k���OO�-:y��|���^x!l���cQu�{��^��(�j��=
��W��C:��e���?����g�dy�������X�0-R������^+���j�u�]��T#�����uP����V��5�F�Q�I����K���G�l����_�M	XE0$�����ma(��~��jI��$���4��%7�|�l��E�V#�n��'��{o����}�C���0�������'�P�������adL�j�2��0=0y<������?����V:��"�X��7~MN�ye���e��mP��R������HF}�l���e��?�V�H�7�.��O�-��U�Ng�9�k�?�S�VO��:������:��TuKy�G�5�7�DX/��{�y�/����M�rID�	h�����"��MGI��^^+�3��x�������
����^��E����8h�}����e�l���� KrO����;%�k��Q���p*9�H����.~����-6���/k������������c�l��n���k�*V)��am
w���m�����b�@�B<��/��x�;�f�#kIxU�V�Z���J�jaH-H�6���91$._x�X����I�w�`�a]��[��n
�p6�G�:�.ln�#'�C&A���5�6AA������2���W5u�.�6,H�:R�U��VY�x��M��P�+@X�������D4��$��Z�*�P^��N���FBcU�lb�:6r�~`�������k��'��}P�{E}��f�&�E���
tJBa6r�z�����V-\ !�Hc0��#8A����������6nA�6g9����6�e���W�v+�S���l�s9eX�5���t�:\>/n-��Y��F�Z�|@=� �B��wtIgxM+�:�����������z�k�����)�#T��xC_�s���L�3m�}!ym�e<vy��4t��u�O��`E��`�D6�bJh���+`��������D�9���5��/�L1>��m���Y+���2��L$���kpgR]�P���G%J*U����-��T���8!o����j��q(p�3��&��k�d�Kg�:������D�������*5_�JJX���~6�|�s�S!#W�au�����
�����l;�
���*[�z�>����[rss��<�@�?�������*PK�,�g�y&8�1��o�p���7��H�*�t=��Cj�W_}Uf��9�]c�h���v+_�!����`�G}9�C����h�.���n��'�^z��Ol��[o��|�3z����q�������U�w��+3c�U�t�Y���������;�!�=�s�o	�7��)�8�c�����a��V���59X�3��%�����dV�")�����d����?���N��?�F������>�O�W�Lq�'�F0��#��\2��+��	��{0G�p�-�&���I,��r�Ze	U����A[��;d�;C���J�/_��5���������$�,�R/��4(��Z i3����Mh�"U��O��V+����&-��b/��X������6i����������VJ_�P
Xe���g8��~�1d��� ����(���i~��2��Z%i)�+�-���y@X�PA,���Yvg����A��o��p����8r���/�5k�����.�\�����;��X���I����x���v���d�2�����P"������N��w$�����5���qH[O����Hk�S�:��H[��u��Sai.IwtJmW@QH��b�vZ��3�vS
*���7���dE5���Gcvy���6
!�� ���]��t�M����5}�X3WJ�/�������q��t������@Q(o���E��0O�-c�\S�����K��yS��6l����N��������f`��Z�����Y�����n^����^�L���ww��h
�	�B��
��6�������8a���H��*����~�J
��,=�*��Sd
��h�@=V���V�z�u��".��XF��:�HPm3��`�kJ�&"h���*�6NXT�R^�4/��y�:�t���,�/�+�N�@S���)�O�Q	D����DHE�l�a��gk��Yk|��\���g��kW������h9,5�a�b����u�R�t�8�����f���h=`^�F�As�D{�JKF�**�tu�X`U���h��***TQ"����>)//.�a���B�i����F�(�q�?���T|��z�O~�������?���G�3�YT����nTB���!	���J}RXz��������
��^���c4�k���H��/��J1�m���K2{�lc�����7�|S����.�
�:*nG��O}�S���/X��v��#������T(�X���Vx��w�i��F�9s>��&��>�<���������^|9�o����R.������x�*u��dW����u|�{���z���
��i��2�h��.^"��s��X�|���o���������b�y�o)��F<#��u�����i�JZk�1]+'���/6|�3�x���q�\��@�'�E��u,x[oC8E[�S���\e����>����P&*�#�����=�����'P���R�dI�1YV\��V��gJ����s|��z�
)�8]�?���gM�����P2`g6���H�[oJ �����N�rU�yH���Px��P)J���A���y��~(Z�:�u�����(�����s�p�elE�-�AB��-�����k�ZR�"���N�>���b���'�+*X]�6
V�&`� �Se�������~�5X�H}��WN���,��2/�BR��/=�f��./�&O�/5���9�r�E[���E�;3��+Sv�M�7N��8pO���s#Y�����WM�
�P����L�W��`<	��JV��e'i4���}6IZ����]��Nx�����s���{M�eB���,��}�p�H���yA^g���<BO|�5SAW��VAW����^)��9��V����N�-O�2L\M�[)�xp�S��j=>���D-;��%e)�`�	�E�%Q��~�J��'q;�y^����B�
��n���"���k������^��o(�Q5aai���:y��F����3��Fo���m�
������c�����Z:��-dl{�y>�h0V����&D�o���G
IPiN����W������Fx�0xO���c�
Zsa|8��mJ��@i)��V+����6$r>�z�Ho�m�0=0^0�]=�{Ve}��BS��6���!,5��A
��F�r�WL���3?Y=`^�&���x���}O?��Z��|�+Bh(��aX4�Pb�4��-[&��U����������F�X`�����G?��,Z�v�*JXE@��+���=�����>*���W��1�����K�UK��c��*��a�<��#*��z�BF�Y!�E����������%�d�/�����HBZuuuB�-�X�U�������}��T��ZT4����;&z�����E@���Z�t�?�x�UPeT������.S���?����YM��\�����=��k�R���������V>v���5i|q�;e��W���&����-���j�!R��f5�U�s�K�O���2r%����R4%�Nk�l���_Q���+
����}���������b��3M��������[^,�����s��y�+j��8�-������p�T�BQ$[\tTV���5/?+�=o�=�.����]���"�%�
7��\���?�������[����K�!�d��s$��M�WD�����������!-� ��:���d)���#��A��j�XC������-�:�Yx��5c�:^�����m'`�����x]��<Vi��vc�����"�@IDAT�������}��y��d�L�K����a�����v�Pl�,��F�[:zei�!�t�aYT����
Y�t�ly��,q��M�L��o_�E���j�J����@Nvd�/F�����eJ�T��5I��1�(u+@V*� 3�J�\��[&��
T�j�InV*�,*����i����bUi���.��k{bQ'B��f��HSq?E��E���)�S������3���#����h�Y�q\�:���Z��t�@���<�h��4T��@����P����`�`�J���0M�����@"���n�&n�Tx{yOwpf��M�������ir�r��
��s���v1 D�7��p�P0g%���[�����)���u��y���3x��F�\��B��
R�8��"���}I�0�Q7��z���B~��Y�F��B�R\�
�6�z5vG6�A?N<�xT�}YWMl�R��������������x_:r�/Jr��R�j�=��}
�~�a��T����dM�w�1�!����/���<����U���/�F���n����u��K�*��F��a�����*��f���w��U���'��[n��S�JMM��Y�F5=�:��,e9d�������,fu�2����?��|��Uu���T������q��zu��AU���0���;��������UW]%������D��?��+��c�g���Dl�14#<]�*lC�GV�Z%���j���m��D5�?�?����cD?g��=j5�����������u-5���-��x7l33������,��������:!_����H'���O���U3�gE)^��V�q&g�4o�?����uI���eH��GY����������>)�uU���Cr�N���2��A��}2^]j>��p�w��/�=x��CiV�u����=Z/`d��{���x�Yb���2�d�,��/��Q������t�;�=�!*]���4�eu�����Z������G$�{ ���2���yVpzo}�4l�,��-~P�F�`�3������OR�L5N
���7O�^�vR���V�������4bO��
�VY��.B�Z����U�@��]6���jt��+���6y���j8����yr�9��/Ag��PMG�� ���*;YP�(���%�C�	�w6I
�������;C�v�#�%�t���H

��N�i:��Yaz�\>�\4��8���a����d���a�T����L�<�y����_����U����B����������>W���F�J��4�*]�2�����B~E;%�.�Y6MY�n����D��b�$;���
D�JxE�*�w��Z��x��M�DZ�=B�Qv��,u�VT����s�T�j!�k���+�P���B��th�q��<��R�G��1�\aG�ic���z������s�;�B2�,v��98���*g��i����n��e�q8�1���M���x��{���3�B-R��
�1B":,Jq���8�����	��sTE�@�:
�B}���=��������8v�����2}�*%\�R�S^�8��i,C�q�G�n�G �J��p�$
����P��;~G�����+�<.y\�U�2��2����m��:��8fP���Q���x���2?������0=0���kW4�P��h]������,�h�m���J	�+�k���F%H*Xq���h\��7=�H���Dz��n��r��9s�N��y�,X� 8�g����r�J}T���/�����
�t�R��X�d��b)VQi�V��*���D�UT��C�ES�������*�����7�)n�[f������������g�Ts"�����B2|��d�	1�G\�|�P)�hl���T��B�7��"X6�ma�Gn'��f�N=�u��k���F	�]��D���������M����QUm�f�U���9�����{v�,?����d �����^X&�r��e��s�����k��S��sopa����~-G������Z>���p�!832��N���I��a������+���=�e{����Q�~�o2��
Y�^%��<\�^�����K0
/����������x���'�!�T������r��T|�H��ttxg��`B���lV�,��N^x�o��Hv����HJm�8OvJz]�d4����������H�u��q���L_/)�C.�-(	��e����N|��/�BK�j��i����?)s��|�������$[�1�,�L�f�����U�u�����������1
��9k����d�a8��������u��j?�
�tG8=t�OB�%g������I�k|�4Ul����0��-��q�JV�����I}B����^��u��x��!��
�AI�v)8
*;:�J(h�Z����,�EJ�M�V��tU8�Z<�P�
�)�RT�,��������d�?}�x���~YWZ)��=$K��D���#Ww-�v�b��H��L���aQv��D�:S�B�6��C�6����K�����M�����k/S/:T}<���vL#0n����YY����P�"��(����VYN���Z�B���w�1vRR"�-v^�]v^��4<��e��vEo,��`8�d�PAS�8� �1q�
������S]G��*	Z�!1��+F�U]��@�X�;a++^L�z,H�`,��������\�m���x=w����]�#�O��E�H�E��(������Kk4��KTM�����Xw2���PY�V��Q�S�&�7�r�*������Tu������.����`���S�����Ys=8X��)}G�r|.��+
��
A��"��K����!.�1��1�!�1���)�+��=>�<�g�H%���n,����Y1� �����X?�M��g��k(3�8��u�=nFa�0|��b�^���-"-02���	���Fs����y����p���C]�jNVh����Tw2���{���n�M]{��r�]w'G��VE�1�`������U����;�!�b�����`*N��'?)��~������%K�,F�Xm���o�.���������8��W^�������U^^.���J����x���666��3��/��F���>�r�F���2U��m!�T!�;�|������o�'�|RM�~dX�D��h��,����]���������b�H�h��F�As~��&��}}��/�)���K�n
���F-��J������J��O�����]�K��k���m/�O�^o�t{�1tH���po��p��?������%��L����N�5�����z=.�������i'~p"�qU��n5��S�M��&���������ipT �h,7�P.Yv�,-]l��<��������������?(���'�Xm����Hn~����s�`��I����f�d6tKrm���v���+'��s3����%�p����e��H�@H����o����v��]����'_�����+`�_�G�[C6,l��_P-
��.����+�s�6����������D��y��$o�y��~���q;�?�<]����@m�>��^�#���.�Be�A������y&�Y&��1��yb�6�����?��aq��D��G�����
�p���^��~��4�e�J��N2{ �|�l%
��E�
��hF�0���j���|�.��>��9���8 �����'M�������"L�j��<a�nt�$������������'��W����� B&�$t���J��<��-[�s��#���C���t���Y��:��b�S�U.X�G�
/h����<HL�c<���2����nS�U:��/T�|5R��+M)�	W����Sj$��B����P�
���B��"�R���F���|:h,�v�q��������y}C>
�=j)�+(\!���|E��R\7rF������N�s�q=&s���.�s�����RU��lA��U�RQ~���B�[���z~�Ym�WAV'C�6����iP�,E�@B����~`�U�9�4�elg�<C��=�����F�$T"���@JK���L����Z��,��mS������q��~&+%$]���m��6��|aj#���7O���U~j2�������
O��A*>�v� \c��x�z���H���T~ ��l�"��^ws�������+�8>
�O*X�F�v�����{��dM���j��"��^�
�o|�f�Y���9>�<p�_��r_<�j�z��e��k��R�g�����m�|�P�1L!��5����*U����/�q�F�����V}�k_��zH�#�����?������|EM��VUU���Z��Pa�8#�"65i}�z�@c�E�=�����
r��19�����x�����U���/�p�H����
(J����Q�J���������)U+N��&b�D[����c��t���������7���<dN7=`z���@��[���[^�UJ�e�4�	��v�?	���fd��<}r0�������tI�`�wV2d�:����S:�������BH��()������r|}�
H
�!)P�����VCK���C�ns�k�B�UH��*��wKm�@�'��������^'sK4%���z�����U�A6��Tf�/��������m�L�3UJ�A3=
/���W�3G�=qT����I
O����A�����Gk�eE���$P�#%9e�t���3sX����R��9x�/�����������q��v�R�����a��,(E�R��^%�u
N����G����c�NtF��5��T�\U��|�}�h����
�N������]���W��������������z��V�_��6G��1���\���2UlW���,�(
�"0����SAQ��4@���{������6cQj;���W���&�Z��!\��m6\c(A�� U+����(�u!�^Sw�4t�!M�FM.�4v9��;]���C]����������c���PP��	�Xda�~���G
�����)b�Z�
�.�8VF��{���=\A6�����`�����6�l~�U^����bC�����C���v(�9_�Ig�D��dP�J��e�"�.FcS8=��p������:���BIOV��+�
��]�	��Vt`8>�8r��6��r�
g^����H0�������Ol�]�f���*�x�xqW��<>w�S��J0c���c����Fc��%e)g|(�H���c����>f�p��"<�)S��7���q�[#h�WZ
�U/ &o�O��f�'�B�*�w�L������j���!����1��OH��}�FP��UN#vB3_Uy�Y�X�F9'}BH���W�T��{�r�
�h�B��Ho��J�����6�a(mm�>]��ez=��q�b�����R��}��\������x�AQ�L�	8��^���S��b����3*�3��0DS�JU�xm4���D���|��}q&�U<��{��r���'24�*�U����-���_&"X����T>�|8���yh:u��	Y�n�*�G��V���F������S,#��p���V�t[�`��/�,�f��������`>V���D����*UQ�����V�b������G�1���z���������T*~�?��k��e��%����o���u�i�O������2�1��4_��j�K��|�*�q�-35/��1d����*�]�3Or�O�w*�H][UpMK����>��v�l<(O�w��4W���Q0G.[q����#�Vn��U�g�_�R��j����5'����9�b�YJi���N�(6�`���s��(;[���&��]�i�Ho
�B.W�Qq:(�G��xe8��-�fJ�G��@V��������`�pZ�Cw�&�!�Js ���O���xl��[�/���_W^+��9.-�(���Y���d���&�[[������W!����)�EX���I��<b����,�����������������jY+���p$i�UR�t�6�K
��
�b�+�-��������cJM
���������^�]z=v���A���^��e;rf��������$uD �����p���]��1�I�!qNcXV?BLr��bKJSp[��G���I�.O�x�������IN�Q����y��ym_7������ZeF�v)K�-����'��SY�6$\�*�F
����`	��lS>�(is�e�����V��+���h�JVo��^�EeRZ��/�l���!��)�/#�4/����v�Zt�+*^����i�N`�����[��H�YMd��A�-/Q�������-TlC���<�9���q���w��� |�]m_i�CJr�����6!
�V�:�J�@�����@<�~+���X�C��=�����J�r4����O��4u����i*2�p�%j ��sJ�Q���;Pm���e�����������P�����
���N��Gz�5N�LyOX��T@4-��=���
d>�:�
�X�!	�0�@�j�
O��C�u�!K�J)_����}��H�Yx�f��M�J��2����]�X�x/'`���b�r�b7h�h�����U����g
�U��0���������0������~�1R� ����c�����`��q;����<���&��3���7=0\��pa��F�	��V����f�o\�XQ�*���A�����fz`"x�L�v����D��~������1���~T~��3���?���s�=*O�'�.��X�UT�r�c��[�z�
1gux��w���_s�|�A���w5������?���Z!D���
�o��|�s�Sm\s�5JyI�D�w��!9�����D�|���������-[�����K.�D]�J�q�4�Bp�m(��_��<��c��
0�D5���x�����2��>J�Q�L�*�[�B���Tx�U���������'\��K�����K~{����bi�]`�=����+�������R9;[���"����v@%��8�C?$LS3%��39K��:)���+Q���������)��S��%�$*�����+��z�I!*X9Ff���r�����#O��c 8�m�[r���������+>���������]x�=P����l���yQ��K�]*Y�nSy�#���w�t"<_�c�J��}�i�ex�h:g��|�y�/��e����`��p6����c��uK�h�3�m�d.�FI��Q5M^m�B^=�%������f�Q��U'eJ�@`��p�V��`���U�-�o�!�[_w�����X�Y�Br�d�>�|������V�i�&}'^������	�V��|^���Vjm�U�_/��X���'��P\���8z���Yv����)�U�
��M�X��a�,eeO�+�U�����.�.����V�����YV�"s���<�Vs������������:�JU����C�>(����>�*�h�>�?�!E#��wH�;_������'��}R��#9�=�r{�K�������	����	��;u*��P����
�eC��.[��b�=?ak���t(�j�A��x��Nw������U�8������������<����������A���u(��/h��8�T�Y�:�_�r	u0$��.�����Q��x[�T���:��_de�b�����i1B.L�p
��uI���x�[�j��R�8w�ie
�� l�i��`~=���'F����4�W:t�)���b�/`��y�#1Z�����X�G�����H��p[/^�>���q�����9����L���Sw�zL�"�����
�R���
��W'�s�Y/`�1��w�SB ���K�LS��)���BKT�"\����a)���W�)�@+\P"���x_s�JTH�)=��6����������2'R_���h����9QY2��mT�"�h�D�S�KK�i����,Z�f���S��3	N�{;�=�;�����fA�*��3�������`(������*��p!�;��x{�L�v��o�T����^V�Dt���;wJ
��j������/c
VM�:u����G������{�����n�f����F�*BV����p�BU�555�|��q�I1
��������~���G�U����K.��2��>y��'b��'�
P��U�_��=;�Jp<�b-����������Gfn��&y���U�������M��O"�����J�h�C_,��w�+���g�M��`UB�i6fz����������-�co:]��xI��mZ�(�^�V��Jb��?���%����!����s�������q6�F��g�3/�z�:�$�������E�
�|>-� �\F���d��se��s0>����+Qa��vU�,�J��K�� �$My��vT�.�w?����`��2��9S�;���!��aO������=���s�&���G7�A�����@���~[�9�������������%�>�����������#����'��#?���6����4^y�x/[!�!O�R��)�e��UA�,V3{��%�{�59k�L)�
��k�Y���?p�l�����m���p��*V���R.Y����Z3i*VisTy�����u�t����$C6w����v����=���$��=�m������\�@�)��bM_��RU/�$_g���m_{�82|�����	�������!U+�W�k��N���&��
�5)O����q[r�R�J�z5B����n9�J��\��%V����R��&����xJ�L���4�@�1�����>\����1��?��K��du+����Y��t��92fHR�2���K�dW��R���h*Z��<�q��ZH�j=�����8�S=P�;������lk���|$�k��D7#L�K;��1m�SR���r��������Xm�'��A�����N�1� ��K���M��/��I���V�K�L�ap��*�ZG!��t��wk�T�F�_�7+���S���8E%�Sm��������] �V���Bx���\�e��g�f��i���fn�j����P�jh��k�`�U{|�nT�}>����������x�kP
x
b��I��X%v21U��G�[5�Ddx
���;�Qy��e�j"}K5���{���6�����)2��&'l����z����(�G�8�6�g�����)�6�/�b[�9*W�Z�:���{�~��aT���+�6F������D;�uU*�y0#\��PSk���0M�[�"t���dX�D�,
�"���<$���e��Y��}OpK/�<��H�Nw8��>���6�����{fMI�o���N�����c*~ �����88��]����2�T���oX~���)���W^����=Tz��OJ��`�D�~��_����U�j����������_~��������w��[nQ}�3f���o�>���
�3mmm���^����Z��������R�K�,�g�yF�2 %D�}A����O����o<��Dl�
7� [�nU�t�����^s��!3�f���>�\ ��jf]]�w������GVM��	V%��f#�L���#�����TKQ�^��B���������T�)��w$ez�VW���,�=���fI��B�uL�-�Y�T}��V������K��r�s�]y{�Vy��+r���^e@j�3g�BY5�lY�`f����YPQ�C^����9S��r���%/�(��;m��8^4���X���f��y�Hi�\�R�������/������2�d^�N[w3��E�=�2^6���$k@�;oz��ej�F�GT��ON��G������;>��>g�4A���Q[;�����e���A�,r9]���Wl
���6q��%�n�R,6I+}�8�_/{*{��w�1��������#:��\��*V��Fl�B 
V���x��*�u���/����4�B�
X,c�J���Q��g�o"d������j7:�y�GQ�������8W.j����-�mO���A	"j�6I�C'TY�P��!t��=H�2|�p�l�C-*)�U.8!����y/��wd����Gk{��I���T��U#�F)H5#����}��a��H���/+��r���@�$Yz$����$��'�'!�!���1�R
p��C!����FC,/��Y���Y�sP��W��2�T�2O�:�q�"��o�}P�N�$�}�M`���8������@��M�^�Xo��,y��lY�`��Z~�{��-��wab���mGxK��
R��'z�Tv0��T��S���p[�V�<o�
��`S��U���C)>���!&�����H��
�;����*0/gk�v�z�_���2�1l��)DX���8;�#_����
���k������p l��	(���)5]K���0�,^����2�4���=E�zyh�6=�<4_h?f���D��~�Ve?�?J:�]����[�ug��J�x����7�3�\:�l��+�9Lu%���1<��Z�o�%��X��z�`�
���t���WP�����6<�t��T<�0� �-�;�	��T��2�, hI������i�^S���U����c�3�Yi��N��J�Ra*�a��Re�Tl���L�������^A��!������1`��BSyS�G��%�9>�/y�(�j5�!�{G,��c�����5~I�g2X���O��?�i��+��RFF%����[�.^k�������	��1�JT�"4�>��O
�h��w�\t�E*o�{SX�
��K/�T��`��T�#pEE���SbX�h�����[���o�Y����E�V6�`U"�����b��(
RZZ��w�^���� F�O��"��/��?��`����k���1��D{�l�����3���o]~��6k����TY���q�)��i�����5���IR?}����mG�>�b���O|Z��.
������^����,�#�'\�(X���lY9w=���lp&u`���`�-Gd��G�RN�� Lt������f{y���u����{��h�)��p�jY>c��,\������g}[�T�059Un���e��pH��1�;���[�`�{���845�LV��@��mD���
M��9�������P����C���!-�z�����b+���,�e�7"�@����o��ji��v�|�����[VKO�������I��/�#]�N4��3o5�s�ZeG�*f/l������+����(�82�L��d����0a-�Iz�	�=]�+��a7J����@�jlj��'��L����b.���'�zt��������d��t��l|i��������c�k'���?`��i�Y�h�K|}m
��0| ���j�<�R�i#��`"�j��8�j�PEM��������,��J���T����
�S����U^J�d$Ej�X�1�l�*�#�f���c��-�pa������;���E\�)V���A�1���5��{H���31��}�
	�AfOe�l�%��m����az����dUV�'����a������A��������Xs�x��[�0.����T,C�@yq�����N�"q�3L !��:L��!Nu�����g�:P>�96)=���:S!�R����l����EQ��"�]����a�4�JW��hg?��B|!����GH��2-����)�*Tj�L��xn��P��t�0�]��1�H%����
f���s�����A��>�VL������U��z(A����T����{��@z �,�T��q����������3�[	���2�o��LQ�D�r��@u����������_*�+�4�8$da��n��d��\�F��x�C��!�������>iPD%d��Sx�����Xa�7NP�0�1$�����b{�t�v���S7�L���������CH���UTT����G�L��r�+0���h�AM�x�O�~*ibF���;��p���X�"a!BC�-[�,R� �����Ia)�6Bn4�gr������v[}�Qj�m���Fu0n+//*����}����l�U�f����13�3��
�0=p�x�����}��Pw���2rd��/��D����,��@���v����B�o�]���s�|�oK��N
�9��V(��<����
�z���R�������.`u@�M2{��PCq��:O��{�U
,���s�^%����Cx���=!�x�@��(Y�\YZ�V��� �r�e��W���}Gx��;�{7��T������%��l����TIX�d�ZY���3`z�����
���Mb[y�t�t�Jr���Hi�,Y2m�eM.���Q��p�t��e�Z(K������W<�G�� Z$u��������C-�y~[�<%�7ww��'��=r���r��j)�Zzc�~`����a��u��:.���&�"4��"�ji�VH���%c����	�������%�[���F�p?����\�=����lD@U��,���������@�����l�������xR�����B
x���a��Fn�9>\X�vI"d�5+�����f�a���te��nC�+eT�`��9e���������vl�#��P��S�p
�c�6=,���k�=���gl������p�����������gI�
��l��Q������{m�.Q�7��Y�>V��
���SS�+�T5z��]!�W��M.0���b��'���$�vIP������C��uT��VF5B���D��98/��V1'�,��B�
�f-��Mv�3�%�C�����5^�"��S�e���^v�s:Sv���������%��T�b�5S�d,�<���z@�3)�*�+�zva��X����`2A+����\�����>��p�AW���h���/!��~�L����s�sSAQ�V��!,
�"�E,����q<�t���O��kjk�1��������\�N������k=U���`|4#�J%>�T|~I$PmygB�y�=��98r�	��y�*���+L�k�X�#����`����������V���k�04�n��O~�����(`������a�X��6o�,7�x��C����_Wy�3�y6���h<X���*|"�4Z$u�m�������}����o}�[*o���� +V �E�m��MJJ4!�,Z:�`�h�%r;w��!�P=��1����?�a�F"�I#�X�>�� LG���~X��C����	V%��fs�L��h���{�|%Tl��iS�d����=���!���Hme�y�
����!U}Dz�����w�Ly?@�A��� ������c;�cq d�����+g���B�5�lq.��������P���M������w�u��=�����:}����BY�t{�������U�e�o|��r��K�]����y��p����d�6�h��.Z$+����_�7^|���J��[��9g�q��h^>S\7�+��pP�5MV�y�E�g�7�.�O�%�HRz�,��I�R+���ND�%gI��������z������[��w[��Y�z��in�|*V��j�gz]���)�/�!5%M���m���#5�S����x���^�o����$gT������6.o�<�L�0����U{���q�#]��P*���������4����OH�������������f�K���J6�	�<M*���c7`���]�xq�����k�n��f�X +FU7�MS7�p�{�S����zOJ!��^��X���-�LVS�j�%e����J�z��uW�l����Z�����)C��j��%�x$!���
W'���Gj�p�<C������I�������y;������Zm���WN�x����_i))`5�V�l��B���:���p"E����>
�L-��Uz���{��
�v��#���RQ`0#�Sp�C^��:X&�sv����B'�cq�X��������[0=��xF����R}�i���qz���C�iT-j�E�O/c�$��B�aM��;f:Q<��F�V�m��������`�?�~F63V�+��T�rrg��+�QE���DU��Q��P�i����oO�7M=���Wj�*�&�@>/	������z=V�������?���[�5��U�C
B�J)]!� C��v�<��{;D�j���S&I�7>"0��TPE�qI���}�}���fei��x���*V]��"�!�	�S��<�#�c���c��5��:�?��*�B�q�Y�z��h��D����Q�����*e"}#*++� Ym���D��0�n=�P��H���W����W��OV�O�SaxB�BQB������*}T�"]p��q.�jU[��D�����������o�`�%���G-�����]d"��c��l��E-�~ ��j�|���_��s��+���z�}����C�$����`�(�g�jz���������S���~�e�_*����/�����A����$Py0l���y�U�Z�Y�e��o�*����{��zE�����v �� �p�2�J�+���~� 5�e* �gv���t5��-^&�^���
�b������w�H���ev!du���o�GT;������#���.Z�����������~�U��R�.F�zi�@\�*�lIK
Afm;w��o|E:����f��sJ������8���j������F�����b�c�Xl�w(���L:�%���H_fr!�Y��1����|I���vy��f(��"�[�|h����j�K>���+/:5��/��BI�>OR� ��>"Xa���{��*|��������W
������:��(�$�HrQ1��+$����|.�4���R���<w�����v���}NT�:�4o|W��R'����}���P��.�s)�������xm��X���*��B��!,e��R0�N�0U������#}M���*l��Cc�i�GJ���I)M8bW�M�����h
�JtE��>�����n��^����
��4@���3?JWz�#W&��ow�b(A�l���v���T��Ih��;Xs3������Q�ld������N����ZW��eG���4tn���%W�
���z�1���g�@_��d�W��(�4�:�������h�1])��h`�I=:M	R�n0!R*T�@��!�S�#u�v��0?V�'��d�	�T����P;�&��Ei�~�s�U������r�M/p@�6Eu�� �����N�[��r���k'��T-`�i�&��6W(��U{~La/�~�Z��K�q��W�\{uu+���V�d�)�������?L�D�7�:L.�9�����T�W�T��:>'�0�x~���d��g��F@�@7��"��mB1���:�S�'t���4^�������d(�X��TD�q�w~�e�����i�����R���aJ'�m��r�����uI���u��1�v��`}r�������q�7���k�����D���s�9Ap�
�*���_~�����q{	����E��x��6�FK�6=��c�$���;��������~����O��j��@�X�m�p�z=-X��3�t��r�������\����n�I����Z����5�\#w�}w����>!������p�e������
9���t�Y������{���'d��n	~.���<Y���j �pl-7���5�~�MOj��J����D�.��Op��:��D&�Y�Y��9`9��%�V*�j���$#-�8)��B�h���Ju��`���Yr��k�UO(
N���zf��������0rr\�.�h�mj����.�\����l�&M]�+{���+�������������LV�<GL=K�PE�3O���&�����(�C\��g����0���%���������������������.�F���w���u�wp\�$
i��n�����bev����iF�����@��*)�wIA�G2R����N\�;���_"<X:��z����!u-�as���lI����"����K��>�gy�r��*��r�!Pe�a��c:�O^������u`���2-6?����/��e���`u���TW�B��L,��zO��@IDAT��|��j��R �K}�oB��v����f��6��N��5	�')�Sj����P?R�`+��������������n������#�Li���! �*e����`��AP�
oH�1��fT�Q����4U�u������Yc����,��3e�V@8�qU�y�a��]�q����K���0�vRa.��_2P�Ta�l��>��:����w���m��<�3���N��V���:&)�����b�<������K&�Um`8-*.he��$�����e�&����:@���.;l�1�N�����JN�J��Z�Pm��tvjP����ju��eH��6�����)�Q�,������1	�**X.J�Q
��`��!@����&��\�y��%�W�S��J���N(5�?�q
��<��pC��I���Z���X.$��PZj%Qv:�0�u�`u/7@�^9\���\1+E6,p��y�C�N��y<m��%����Sc�C�u[��T��U
:�,3_�Zip*��T�3���D�;��,I�y0h�JlY6ZM�sDO����������w���|�$��N����p��<���1��=3oz ��C��Hp��.5������&T^*�p<�x&��o���*��T�t����Pi�o+=�^g4)��R1�_'������� l������-��"�!�l;��A8��fhi&l5��j�/�T=wMv����&X�����7�tC�1t�pm"�U\wTTI�U��mO:>���?�!�f�0����w�qG04��
���������~��mmmr�-���/�u�^H��+��B2=`U"��o��|�s��c��T
cHJ�����������{���N	�=��#q��U��by�,7=`z���=p��?��;��{�u7���*�����������Z�����/�Ud��������Zy����.y��+�6@�m^������r�������9K/E�BFX=�Q�U<%u!P+?�D.Yr�$Cqf0�k����?){��A'�@����5N�����y��W��������kzI:����J��oIR�*9pr���|M����������������7e����z������`�`��2��R�����f���8�V"�_�C\�*���g���E9)�}�7�[�zp3I�K$c�e(/�<��S/�#o�A�% �^��6�������������^�{�CQfR7R7������X]���o�U<�NiA(�����EB�~�@U��Uz���~�2��40����~/��P�C����pP��fKFon�fM�(�x��|~Y�2��A�^�uu$�B����dgl�Q���j'�/�������?X�
�WV*_��]����OM�?ec=O�����@)������1(N�������-H�r7�Q��*��WRK��P_#����������Yj��?���y+$)o=��
lBl�4��L�"_�f�5m	����Z�f��7�z��v�@���a�V��!�"�@�
�fF{eO����J�n���~���b�n���k=�6in����&q��k��I���!Drz�VIOr�C��5K��E��-�K�83���:�������;��U��)2^����
�j�P����RZ06��
���*A��h��Z�(N�)�����I��C�����0d��N���`�D��Tk�*�v�Y���������P�Du��-GR���g��T9wq����6�����o$
��l���4u�xXnK.`�|@V6px��,�N6��z���6�2L���L�_W�DT��t�rw��V�>n�z�,�P�������q
�T���9�=�?csw?�������	[u�Pg����@*���G�}��#���9���p��`��|��"h��Q��>h��p�3�����\C��(�1� �o9����7��e�N��3�.}�
��v@JQ��Q��������1#���U)��+>_p �������`*UT?�eT>�N�����l���?j�*jWol�1�������S��T���+c����3��/>������i��-��+?��3��|���?�������s.�j����-�L�	����s��d���u&������]�T��x�Skk�,^�8��w�yG�L��7C �������?�A.����f������(�y���������_��<����3��
�Z����]�����������o[�+��C?�y�^�hE����������u�����'�|Rn��fU�3����z��q�7�J��oT3������/}I������V�7�}B�o���7�_��~�Q�	V������L������~Wj�}p���|Gf�|Kp<���������x�~o���I���A2n���F��|�j����9yi�����uy,\9o�K�!�P���U�������e���%���L�C��}��pz]��Ek8���8�"T�"�h�Y)��q�'�������9g�7`�l5�����oc^�#u�k�/�S2bD8�9U����R}�����^�\����i���s�g��L�T��%��7����`�#-C������f�������{����n�%Kz��$���`Y�L�n|Ax��%'z���W
'�T����~S����)�o���mR��
�-�i~���~�����|�������tK5:������d��_��8��/@�jO���`p��`A��)��u��;�fk��������"�N;�*�I��b?���.T��X�R�����s�dJ����h�8���%��,i��%L���W�l�8:���|=�gG�T},@������B�"85^�g{��Cp+k������������9up�f����Z����Q)LY��x�OC�d�s�*D!�p�VU��z9��_���}:8�:�J�����/�����B���ub+���1{�8�@+BVPa��pu28m���,�d�Le��������6���������/����l��O�t�=
xZ�i��)�M�j��k8!��:nj1~R�-����S;��z7:���_rT����Vcm�#f�*/I�r*~MI��
�Z��9���P�r��`��PA�h�=;��k�i�-��?
��+n�6@�l�B�h!r��)�cq<��h�����J5�"�Kq(�s�h�e���A8V��;��~T�K�9v$���P��d�������O�eGZ��;�tEU��6�X����8�V�p\��"����s�Wr�����YL�P����!u�8���{��s�7Z����%m6����>4}����'�<�ynn�@�h��*?�.��:I���������V5!e��}�Oi�����3P��n<;�F�)��Q��#BW����JW���\���^<��Yi8��]��3�AT����#�PR>�����gl��~��A8�#:���b�H��{3+[A!��%�>�
����s6����T62m�y���x��p\v����Co����[W��c��Lo?$���u�����i�{�����I���������hu��*�?�'vww��qUO�v�����qy�@��C����R���L��������&����x������?�f�aUU�TTT�v�6�i�&��"�j"��B�����e������pl��d8�m]����M�0=�;�����s�T<D/���Rr�U1j^��c��<���6?�_H1f-��\+�Bed�*V�Z��+��zF^��YN6�C0�9�Y1w-��.���.��q�n�#�T<�w���dG����3��=��-l�w�	����N��|�����>���,'��#������i+Y����
(����%��~^�X���{�8��������#	s&�3������H#�le��,��dk������z�����>��v������e����k%k��Fy��aN�D���:���ou7�n�4@��{P�U�����������S��2����n6�'$��R���X0_
�<M8��&�;��?�K������ �A�cOc�-6o��M�_D��~�=������R����"�����Vxv�[�m*���4������^O`6:��a�/����i��f����\�����jM�����[�*������o>�t=����P��Ql�U���P4��V��m,w���:�'�i�WT�brf`v/��"3R���U��m�wQx���`=�������������F�������c��e��[:Q��1�=p�����)�])�fbR�+�B<:�Dt��	�f&�	6��$�J�Ns���xW#+�P[������q/M����+�^%du�m9���w�4*���j�f'���0�{ornV�m��I���Qj!���7��<i85������L���R���eN�jI�D;�t�L�&Z��t��_UK��T?9H�(�Q
���&�s�	��(e���)>�H�A���6Ql(M���
-��$����8�V���6:H��Z'��l-�Zq��Yu����)%�L�4(��}�J�
�"p� �����,���(��;��c-
S[�ds��\��&�9`D:����"�`��5�+���h��e�ri����[n./�����`+y�Z�n����(���"H���D������X��4��]N<�����
�X�N��!�!M����l�]�5�1�1D�%�<H�����e���|��\�Tw:0E�W*BT�2�v��p>�N����=��35A�^���
Hbw�K�M�����Rj�[��^����;S���[PKgy��J��YH��Z|_I2X�{�"�VltQjWb5(�T����*G@ y��w�A�A�R�P���a+e#���oJ�J�E[�J���Y��9����k��2�U�4�dy@�R��v����X��`�������;�A@@��*Mj�u���J`+�nE�-&0g���i����Vz\�r����j�:X��q�w�G@���*D@��D}z��(�4!�7>�~�\8�f s�����>Vj���Hm�_x�/~��a,U;c2�x�q�?�3p>�fi��l�e�����#d���=Tr)����zLAV���x����zf�
{2��l�?w���)6,f{���`�p��ng;=�}�
��|�-��<���=� d����y������l��E��fn���pv���J7�o���~�v8��{�~��m/5����O�3�6�������]�dG��'X���*<r���3h��Db�"W�����ZW����a�x���*�&�1<����>��`���W��e`���	����������N���|���u��ym�o��{�~<��i�h;8�GO��O ���3+dV1�������
~�������i���e����� &^y��_�@��k��j�u��kh��������4$Y|n����fr��i�`g�;��^��NL��?����OZ�J<E4!� qR��&x�&EA��8$�U��m�9��-�8�6����p��_x���Eq�@��A��*!2���c�\�L_~�����.,����JF����k���YB�Tt�cir4ph�u!�G����V=5*Y$G�����b�en�(�Z�e���n���@���F*P�Y�^�����������&����Rj�^�786���)i�*i��]��p-��,vp2�F=��A8��f.�F�|�h�(��e��r��r�2���;�-;�1�nI�T��Fd��1�8%��XwM���������R�������h�b[�
>g��[%q���X�����GU�j�(a�h����Tv<�t��hR�9�����4���/�\�98�9^�K���)-���^�����1e��C�J,�6b�����T�z��Xvn�4�>�n-MiQ���d)�N�\���x5"DE�0�f�,�}���!)���0��g�����3����1%��*+q��}+��� ���$y�E��E5+G�"K���;������������L�X���8Z��O�qS�!={z�i��ajx'���������=L����;�z7S�j������#}�X��Y-(}��" �+����%!�}V +���,�[�$QH�)������J`�J�����3u�0����J�w7�����2�\����B�����+��-�Q�"��T5��#����(�J��Z1��{�I����*�o����P)M�>!�jy��-��4������RSb+Tb*�����@�}7��/�{���O����������R\8��r��g�u����h��#�G����V����~�z�����Q����"|kP��b��/�V\{W}TaZ���������Jo�A�-����?��=��YF��� ~t��������9�!�	3+�:���u6�����4���i,���;jp��vD��s��4��h=Jcg�&69(���S]=����6xKn�?�0p�2��^���'X���!�H`e[��*27n��N�B����E���$n�F���5�4T�'���90%R�F�w��Bg�N�������I����U�N�d����J���������~��
���+�\����^��9��3����r'���>}
S�zGp�jU7���<L��R�J:�f�`k�y��q� A�`�6Z�m���O���7��/X�q�I*S��x�$#�O'[��=P����A)���kY�(��g-!K�g%e��A������(L�K�� ����]�0�d�f�����F�������7����&ow��].<���w7.�Qf�ID���@�g��ly��'Xk���5Bu���OP�j����\��taQ�2;[	Z��)\�3Q������NM>��������dj�����j�(�HY	��+6�XV{k�=���PMN�"d-i�
	����$��JLAi��{�
��z)k�,jV����?W��u[L`���b�>6�JT�Ey#I��>���l=R��HE+����\`�j4n)k������A�>��R)/�4�DXM�6e"$e�@*QU�RM�rp�SNV�K%�OI��PY*h<�+���v���i�|��]��Y&/����u*R�*��������q�k��v*��h�i���^���k��+l,��Um����Gv9��^�9����I������)�{T����}@{��LtP��|q��W�/xr�[4xF<cE<eE"c��������V��2O�9nc��@�n��z�.�<n�x�y�T�������g-�d%�(cX.����NQ��������Z����r0��/��xOo��PcC{�����a����(Y��H�Bh�p5y���������b5.���w��}���D�J��</���o��-0�c��wL]���������(����5��S��F~W��X�3��zI�D�V!�d.����J�+e�P�)���,Xi|&�� K�e�p���(��r����Zr��BWr��q���:���g-w�z�]�P��o�$l��s�3_�d��V�S������Z�(LR��_Mf'�q��)X�%���y����r����C���z�N�����#�G@��*#��U����=z��@�����yb���c�8�x��������K��m��������u8�G`��Q�ih��]���g~���%���7/���?��W~��Il��AU�����?��������j!����������
��8������l�=�.��G���H8��z������-<|a
��_P�-+��l��;a����In������|��]��p���}�&���A�fBC%W`���_��|:~�W����������|!�J�~�#����u�q��m5���:0J�=�Fg�2"T�J�F�w�?�#J=ldd���0���Why���!j\����w��a{P��������Rn�>�RTq�4�t����x1��
A���M-Wq`���T�(Jf�G�>�7�|'{*�R��a��:Qx�b��vlM��U=��6��'�������V\	x�
s`���L�����}���#��]�vw�pd���x	[�Xi��F���k����j
�^�=�A��c���(b���|����J\�Qf�;\��@49h5I%4M�j�RA3�R1������5!�G��� U�j��x/���<"�����c����N]�M��\j�i�
�w0�Q*@�PuZ�	(E(�4%�S�������j�b��^I��-���bV��j�IJ��FA��i5~R-�����q���'=PUy�<U������e�Vn�\m�$��0��BZ��hYk��"���A�d
8�x	�c�S���Zi8��A�n�/���z2��!�9IC�����"b���j'�1�)J�A��;�pz���;4p����
�&j�7�������h�C��y��B�l�7���'�fZ��h����?,���t���V�[��>��:�#T�Gu7��A��U7I�a[�;��&��Mv���/��:y5�W.�p�?����-�Xyg�ES��]�X&(�����@�,�I���P"�l��TF�s������
�w�q��J�<<Q��@UJ�r�2v(��R;�����$�(b�$
��3b�TZ�#�|.��6ZK���u��l��u~��P�*���M�\�E��@5+��[S�,��^X���
�����2��7v������z~��lh�wX�]F��FQ���V;�L������}-�]��65<Mhiwa���k���c��k
���U�zQc�1�����%�5��w&�-��&�'���u�w7UXD����C��s�'���Nq`>���"I ty�mk��S�bUjy��AV?5,�fL�$yn���)��*�E�B��~��L��O;]yN��n�$�E�'��TIZ�w�J�C_F�@�P�g	[l����-7����k�w���<He\�7�r��/_������T��=z�3:X������G@��}�0�k����H
 �doh����>m�V�(���g�FlTkD5F�h�S)��0�d��U��}���p���t?ZZ� ��#v�
$��A�<m��.��2�mVL6�0�����x��>I5*y,3%n6��@zb\�qeg{q���p�)��\I2������p��t�G�rR��<�����m��^���G5�]���!�+MlY�=|���qX����/}�O�
D������VL>�)ZN��H�L-^�������l�������
U[�V���Zm���g�`��W�����;�8��F���~����[
z����<6��b�G��"��(nh6������	OP�kpZ���28�3���&�=Y�Zs��{�9���i6�e`bE��������^������ A����7=u	I?&K$�Zy{5R�k���C!�vi'{f�{�OL�qs�����;=����y�{R�M&f/�z����To�W�7����+*K��z���I�n���+��]�d��C����W�%�Z�Q�O��
F/�S8�U*W�t�?����Ae�!�������ul��~2)���@���.�k�~Mr�k�������))�=�'�UG4PJ�r�S���)O��IWi�J�*��\T��w��JC�"T5��A���C3�������=t��)^O"Q��,
�'�����XC��1)���j'�DM*g�W�6%
i2� �n��"������HE�N=���@�F��k�� *�O�����M@�&V-���x�
f�y]�?�
?U����������Rf�J�o���n�����E����vm�`��Z��v'
�'z#x�R�ss��������G��8�v�4�E!j�&
�"E�B(��(/���
~�*��-�4����AVZv%��z������i��R`���C�--*V!�k��4��EV�w	M�j;��M�,��ZNN�]����J�j��]�������v���pm�[����x���>�\g'kC�+�s��vS��~4���h��<�w&L�o[�w�r�VI��R��_Bz�����M��0��o�y4,��(H��w�@�@�@%0�P�;N�I`Ny���=�����Y��W��4-�D�J@*��Vro-��Z����$���z�J��@+x
 CH��wF
�������I{��"T���*�����Z�����Z�����X���]X��x_��)�������
��Z���wu��W������@��=wwt��������#�G�.�����8�3�F*���-;��?=K���F����X��g����D�coB��C�|��������Z ?/?B����}>�Sp���Tq�*X�S����B��dz�ni�"����dmFj]8c	�U�$n79p��cho��(��O�w������6��(]�cA�d��4?���A��2>�i��r��	�Y�4��z��yQ[[����W({P�7�^���S�e7�M����m>�>��P��c`+R���a��QXK�&��xt�����#�Q��{.Vd���v���adX1���jK���F�-
k�\k5��T�i�{m\]�e��F��_�����y?���Q<��U>��������H��s�86��Mi�w'�@S3j['L����^����6��(�|��$a��qef�ay]|�	'~��,�I��{-j6�q]Ql��@o/�'�#p�4��Z�������>�0<���u~�����g�x�!�
47n�}g�H�����@+Q�zh��:� ������Pf���<53�������r�[y9����F�e���D���9	V g��{/my��rH+K�\��im�s�2.�K��1�\X���_�h��l��b�������
O�����rj�J'Q`���<��h=5����8���k=���Rk��
tE�*Y������Fa�z}Su��7�������V�W��gC��e$DZ�%d��G��
d-���|lsQbY)�R��X?g�t@�&��P^GON���|�v7'�7�/�X*XXb�L�J���z+��Ll��*k��^,v����q�JT�F�O��>*�e���A5����T��������<
��FaQ�z�r��g.�����A<��m��e������y�s�J�(�]� �*cy~�,+�"�[W�O���4P��T��J�D�K����^`��=�h9�`+
��D	��4*"�b�j5*'b�^BF +����L � vl���8pZO�E`6��wK������y���jq��
���xd��T�*w�
F�x�
�_���k���U����.�|��}��	4�:y-i�hb��Q�����W��>����uF�6�X=zG��*v�|'��ro�fs5�qQ	{�J��=>y�5+l���%��dDU�6��`u����(��`�����%4E�x�uE�J f���R�*[������H�9�+^��r�7\	�e���r�
:5EQ�*e}&��E�����g��r��r������#�"���6����=zV�Zy��5���#�����<�������y������I����_�%��7�=x���1V�y�eD��%�_��<[�����Q��YU�|�b#M�a����`=�������^8�m�t�;���d[�����Y?^|�G�������xa�S~���Y~�����?FV�8YI%����)���=|�2�8��M&$v6�����r+k�pS1�`,��0����O���R���8P�Er�W���i��.J����9�w�]�!�@�����H�L4���b����a����sp��Wg?v�z���_l[u��pP�H��9+$��i������}�a��u�&����S�V&Z�U#
�G	X��~t��8&�ni�������(���]������]������B���o���Y��%�����_xG+>�d�������	L�=���#�s�0������:�<���=[C�=�'gx�����������J���i��6y� A�����%_�2)���O���mo���W�F���ln���R2LkHZ���&22�i����+���0��[	d�����!X���2VsLKU:�����>��1��D��7?�O�_Pf5��Q����Ll��-���R4�|_�PQ��%���y�,�8����8�-��nK�s�g�e?�Hb�0L�gd*AE����Z7U�-��(����~��W�?�F�T#��p}�	���8���*��X�x����aNE�A����(
nIyuS��U?2�y�.7����)7<�{1�_���q�|k�����`b%�Jk�Q�b����Y�ik.u�*����f�7H`��-��Z������A�J�*���;�`-��K������=�1��FlyQ��M��#J2��0l�2��-f�2X��i��������QI��!^�D��� ��_4�)SJ/�pAy��u�2-�	���T��Q�v�~ta8���$��][l�&�u`R�w����G	� ��r�7�Y+e��������C��Jl�m������Ep�s�����d��=�.��1�>�FvZ8�����}���'
S%�+%���
��V�����}�x��m�D�������r���
����U:p��-
K�Z��������&�O�R���A)px_ G�1+U^*��r�rm�B���J)S�F8��#��i�$aQ0Z
T�m
�T�wZe��������Z����'Ul��@�-|�h$�- �\����	�"Y�[*�T������{���_m��pJ��l�I~c)�J��������g�ly��^S�0/e�-
Yb�W-h��{�J�W_o~�3F:pFS�v��?S��#�G`Y��]�
���=z6\t�j�}$���#p�G����������i6=�^�����^�k/�����4��rIl��>���\3�h��7�?_A��+���3l�H��Hzk��k@��i�I�D�F/!��WK�B=��T,���$i V�c�~��M������;�Q�D�JV���Y��:�QO
l�D��Ac�xV,/�1[`q�aq�`u:a���6n�'b_kC�0�d��T����~}�X����'$�l$J��`�=cn�b���o���g��)CL�-��d��g�$a$�aJ	�`N��� ���?I{�m���F�MHZ��2��m"���z���y�����P]:>���8��������^8�!�5&�cw������,����a+�m
t=Y��]9.��_�*�+?�� A��$���j��w��M�kg��x2�U��������5T��#X�\>�	/�V���^T�.��T���;�Z�uy�67!+���
�rd,L�8��.�R�9�>[�1xw�������m�l&t������D�h����'m�����M��A�w��\��+�t��b�'��C�s�����
?~�r�o����!# V
���PC���nPB��b@S����R��f�l5��U6����f���*>���(�x	Y�0�a.��]i�sy%�Y���4(`��4�����/��y��6z��lEG��9I�����X�	�&j_2(�m�	�1*w������:�J�j��T�Q�(�o���mT��5*���R��R��f��������^���k�[	6�Vs�����aPI
�"$��u���,���S��k)���f��\�Q,��x�{��h+��a'A��[��������~�������V��A|��s��.�B@+-��SU��lQ��W�#�;C=���f/��B�o���T�u�w�Y����y���'�D��8�T^|���g�&����0m��ZW.w�*��Lg���iZ=�o���@
��[��;S�L��|�D�1�h%�����M��6���l-0x��|��(I���p�`KZAL9���'�Gy~
�����S9������� D�o��p�l$�T��{��yub_�������=y���&s<�J5��-����z�[���������Fh�L��X&�������Z��r���h7Fe���
�Z��;WVQ�T�?������c�~�X��k������@& d���N�S�3�7���v>�^S/�#�G`���������#�G@�����Vm��H?B=z�����A������u���`���������~�[{���������~���._���3^8�h/��j���`��`?�a�d��"8-��5���;2BB�+O� I�����*��f�����g$uE��$`�B�����wn/]�E�
IV$J���������d~[[iiA��X2�7���������������{$c|>@�6��?�l2]��nA�OnQ��������!���a6��.�A��S�+�����MHpKv���-B.;�����B��$��Dw�!��
���h��b���:[i�xb�_�y
/���L��n���}�1�-8!���n{3��v��u�o�����>�/7����S�>��&��3��l]���`c+,���b����>���-2���������]��hk_��^�������to���U��7Z�����A[�v�����}��������{H��W��$��{���e$Mh2�p�U��79������F�&,;M�m����E�������TZ�����|a���Adx�g[�&���$#T+�����Wi��$t�D��@��Rq5M��f��v����h����]�%R&�5Ye�F�l�����������G������`1DQ�Lcpv3�1_��(�������4D
��V�.���Tkygr�����9Kr7���X���s����r�
D�
�����X����7k�r�~��`$p�Z�����T�x��p
��	D3?�!^��'nm�u��zZy�Z�A�n-ww���y%I`Z���R������J �nCX�pB&9����h&p��,���}�����(c.��+�����N��RA�*C�����v�R�z��<T|�4U��%�������f������WG�����<B�����C�V���iC�RV����"���(x�JE��;�4�@��������z��;k(*.�s�b
* �4��D%H@��<cs`�����jp�����}o��s�#e!Ha�����T�]7��$��(}���
����66�P�}K����/RUt�>N�e����U*	�$*����^I�8���Y�J���xA�SE�#*e
T�jQ�����^��{W�5���" �j��W������/����D�ZW�,"�\�@�����a����#p�D@����J?P=z��\�����/1Z�����>��^�H�����|	���e�H�lL/
���ca���n�mP��H�)#0��:VLVU�8������&��a�`�`���0�mS:�m���R����?o}��.��* ��R*o�%q���.6NN�1��k~�hhQ��+�vw�g��Al'p%�Uk�&D^
��	=�(k��	WM%�����m�\y��8��_��Fk�����8%�o����)������4�8j����	*-���#xnaV��g�[��hIa�����C�^�9�6����L-�uT�2"r����8��^���jo�����{d�Of~���vo~��x[�v/u:wt�7^�h�w��%��������
"T�vT�@R��jOzz�?y�����X����v��{/<��{��>re��g��W����	�
���
%*:����]�`��v6��������o��%��j�z-���� �V��"�T�]�!��,��=T��E���n*[yv*��h�U�[��G7�W.��@��p
��Ov��0�����z�(
jY�1]�M�8�	X��z9��w�=�o����0��u^-���a��A�����E���-6�[m���H����D�����d���x�6��������h�95'a���"���-+��"+Icr�,�~�i'JlM6L����-�����d�c4�����*�����x�B�^	���t�s���e�# ��
������PS�������
�mE�+�@�r�-�\�Pd���U�Q�r�=q��|/Yx�M�� �|1S'����<V�'R�=�b[0�X�q5d�e������
�:s�e;	��'X�Le�v����jQ��k�F��{*�$��u6�\�����}��]�!Z�����m���O/��%p[z��H�_^�=���Fu�\g
�;�;��/��D���������G�4��T|l���"q�#�!���Vi��Q��EG�A�2�mk�6����m��T:SgbB�@IDAT���RA*S�NO���$�9
�u5�Y�,!88m7�Tnc�-T)���� ����UN0S���r����X��T���+�`+M��_�
��y�RM�g���(��Z*	�S�E��HA������X���[���
���������y�Se�k���e�[F-����#�����d�S6��98�����U��h��FCu�!�Yn�i��ae0�����i����-���k=>�{j|gK��P
U�'���z����>�kL�oc]lG�j��=%"���JE/�#�G@��]���>,�P����"p������Ol���Z�yW~�����+��p���Bu�@K/���JV�/�hj�kf�v��/+�h�f �"�s�����.�����������s�nG�B��;>�<+gh��J���=k����w������@Q��#�Q�4��o~��h�p;��_x���O|�^�+=�f��[�y��xMi�&p��aF������
F�j�T�s<��!<�r{���`�U������JOJj�W�l5
8��_���g.��L�*-�n+kP��y�D�d�$�����(m���	RQ](�D���.���rR}�ZB]M��hCjW;2�sVw��z�p��&�O�o8�Y�8��
tv0�������x�h�m��P�c!i������o��-Za�����Q*�<u�nC��.>��t�v�3���O� ��K�M� ��^[�\l�E�]��iFY�����y�
�mat������}������d#��7��;��Z����u+��_���S�Z��6�|T��$h�#��T�����h����������G�����t�nY[�!�C}dCF@�W�R9(]�ARs�l��8L�i����J���k�/�^���B�>9y������n"h����T���N#�F	n�;���$����>Z�TVc�"j�.vs2N�*��q��S&t�'-�-��J�FSUn��n�S ��wQ��|/<i�W ������
Bk~{
����h���B�VP�oTAG���n��p�>ZVb!Z6Q7��� PM��W��B���&�k��,�:O�c���i:��{���gg���r���S���"�����%��VBU��S!U���b�X�n�Q-=�w+L[�(�u"T�������r[����w�{���a�*��
|�-Rb�7������-���������Y�0.��{�+������L%+�Z��V��QX���T���Z�3XJ�p�j�+KD��T�:��'H��=D��q���RO��)���+?�/:�P��g�g��we
^[>�T#!��J
��AW90K��b�7
�R��an0J�2x�jV[M�Bp���U(A���(R5�XT�V!�t�C�f�r�<+~G3�����O���8�wR�w���X��\2c%`�����z�B�J�� ���2����S�{W�B�������j�d�Kt�E��T�;�|��z��$R���������2�v(�@Cl�����z���������O[���{&:Xu�|�����#p7F �L��~�W�G)�Lf�__C��.8����i��p��y�z.!2z��J��l���A�#O�����"�_Yv-Z�J�S�����s�K�
��7i����]�������j�L'���}�#}�M������y�_�����x����1x�U�+	�+��2��N��J���m;NM����5������=�s�{������X��O�\��X����M�m������j�J���#T ��@�>���Np���:��SC�C����%2aG��n7�Oi!r���<��=�K�_�p^���m-�B0��
n���R��W��x2���K���4���[�v=����
V���4L������~4��b�w�j1�'����	Zw���c\Mh�y�B�=��**���s�v�w��u�N8����0M��q������B�����(�"?PA�&���A�N���#v�[\TMX^��@f"}��9�{�!S8]0�_f^�W����d��k���������A��h�"�`����}�2�	\��7-&��zxj����k3���������4��7���~0�l�N��?�h���q��\�mn�S)�U��l����.P	D%����7�A=6TeR�l.0r������Q�����_"
�k0�o�h���31'���'J_�Klr]f������@g}]5��Z��t�6�Za����~m����2q���|nb�3<��(�1X�j����7x�F5*Q�����2I�#Jc\�����|�j���
z�cx��JV�Vc}�����3����kmw����v�69�J���+a��U������}�$`�f��=�[_�T��1y��V'�)�R��TNPJ�cbs�������S���f
A�Z���' �W>;
�@W��I������;��(!*��$��zd���T<@�?Q��v*����y�
�?��m;�S����*(�|��X���[,���eF�n���w���k�h"pe�y�$W�(���\����f|
�v���SM�8y�7s[&�>�r:M�zH�,��w�\;��8��c���~Z��������	����������N��"n��]_����<�<%*T�He�[r��cV��=E%�ixM��n(��2r�LE��2q�^�os����������|
�K�+��qW�
b�r)��YV��5�)�V��tY(I�Eb&���D'*h�,���+���u}T���df�r[<C�������=�h*JU,"i/�)���6��Z��O"A��L����}��h��w����\x��%={����Do.8=e�[�mw&�V�`�(�T������=`�F��P/�#p�E����.;|�p���#p�G@���K@�=w:�P'�������������_�>�@��%*�U*T�PiU�R�/�k�V8��R��}s�/���e��PC��?���tJ��x��;�9]p(����v����W��T�h(��>�	\��_��Co�o���O�����W���/��s�����r���	%`E7X������4�w��_�~���pOn�yy+U~�\5����������a��+�AV�-���[�S��u+E�^�����^����^���/a��	*R��x�$������up�a��Tx�5z��u"�<7`��Y�
"L�*r#�ddTn7����T�j�D{;����m��`-H>�8�|u5�X�:WIl&�(���~M���<��h�d�>��[���9����p���������af�y���s�$��x^G��+d66�����Q�jA������b����$?O�[��s#���A������PV�������b��g`��	�����a�\�Qw$�A����Qs�0l

w�0�N��^E2�K��y��
W��������@��ZBVm6����C�b����'���= ��2�O~i+RJ|�������D�Tj�9-���y.Ju%wN����Q��tv(����\y�r����M������}��q�e�����S�"�I��s��
��}JT����������;~���BV5��z0�`:��t��������3��w���`C���������qt�N����i�Y.�)�#X�&�D�Kk����5W����(\�VP��4{A�L��5�y�v  �V�8
@%Vm;	Sm���L|��m��bc�b�~��_'�ne��
��@'
�1�91�f�[��{\ 4ZNx�`Z@Q#���j�}��6�KXS���V��N>o���;���LM�L��-��9�8����f=�q\��d��J�\�{:��Ee+��\�$���:������!�I(�Y����	L"��RV�������)�Dy���x�t�!_���Z���,/��9h^��Y�>7����C��"���u�5�y������h����c�[`�y�j�"��'zx��N��[�����K{��VT�j���;���Q �g�T��>��z�7�Z��n5��F(�cQ6�u������Vf��v]��h��\�D$����QE!��{n.X�D���P�LS�j��
^�|� �\"�$�e��M=��������z/&����s�Z�^W,���8;]��;1�W��Y���$�>vS�����4�*a;y�C�mm�$1��x����#���
��L=f;�nXW�h��S���=B!����@h������y��2��B}n��y�L��y��HP����xq�s��t��!9;#�wly��q����I�J9M��s<�g�+/y���3w3;�X7��4=�E �����+H�����s���QD}���fb#HM|�Po���A�����6.�����#�{��TZ??�K?w=z�l��`�F�D���#�G���@lr���V����>{C�_P����}���w���������O#1)
�Ll�o������U�j^��������H$���M
��u�O�ec�rS,�|��p����V�n=�?�����e�g$�����k��
H��K����T�Jb�#���M����Z2�\�	����D���:}x�&/\�K��5��H�K~V�n���w�����vJ'+�d;��{'��yz�[r���Y�?s���������7;�adE����#T@{��=N�����oAJS�#C�����ms��R-1{��%�O���9*���#z;�t����6�	Q�r4o�h}7~��k���K]������=/`���y�N����8��f�y]�����w����
fU�-�R)'���Y
��\��`d'{^����pt��E���@�@=�� {���V<s���h
��.�2A+��

�c����w��g'a+*ZU+�S-�������Wpu���1���l�x�nC[LTk1����G���ZKk�
����������Y�Zk��T�'W��U"�Ku�A*�D[�d���g� �qat����I�W�(?���0���Xh�X���,1Dq@�1�:��WY����.6D8��2"���H4��R�H�
��&q e�GcqBI�Tz�'�|����S�u4c/��:	�kI>����8z���x[��T
v����^cr�
L'�%IA5�������M����%x5I�-Q��S�Al�f8.vB�TnX*u��Jk�-��������a��Vs��g���Q��9f~����6�:e�� ���R0S��O�VI��B5�2H+��L3W�bYFxC�j��B�Q����&�~6t�Z���Zv��2C]�R�3���(:8��
�N���a�IE*���E���I���U#`��Q<������J7�}Tdu���������-�$�J���(U�b�bJ�d9�W�lK���L��P-�r�����$K��Vz}9�rp�I��B�DSc�iQl*.���N^�����ixl14�fQC;�w���a�}���V~<�����f6�\�����
%�L�=<��+:�o1;�4R���\��"1��Sdu���r�����zmT�0'pE����<��k�M����t\\p�bU9��������0	�(�g5TU�l�e��{��R��J)h�T4n���j%P������������Bv<��yE,i��[rYf#$y��J���&�xvZ���~#�j~����)������t����)�g;8lA*C��(��*6�7y��S4{]'sj���B��b�*�Rd^J���)P�@V�du?CV��yU�)���+u*�U�x��/�]�t&:D��;%�a�$`��;�U|&��z�>:X��1���G@������V�et�m��#�G`���{��d�t#��~��mT���/A��#G��_�����7��5���<�����x������9��b�����\7�Y�q��)|�k��������:�;�G������_	���g����ixkj(�|%#^s�=	t�as���^���*�c�Gt�{Tz��`S�o���{�����1��=�&��7�z�:���+�����l�Q1���!�"��!p�{~�AmsK����.�?��H�����?7�cl�NP�&9{����Z�@���W�����R�y{�-�s�@�o/�ZFm�<�=x������F\������ �^X9�_���T��h�a1�3�F�����Z��b��@���pa���xS#>�L�w�A|evq��"�d��U��E$E��L���r���"�@�_��m��4'\�������/��Q/����>�V}������������!��~
��c��@R�U5Ns�������y\E��[_�����d�U�����v�K+Z��]&��_,�e�������g�����X�MV��2���i������'&
>G�O)T��*��L�T��t���r*[���D�"[�]N�u���x������I^d�up�������6�0Z(���k���Hu��
[�
Y��"�S�{^��31�D�`�g��r`��z�=\�I.�b,#%Jc���+��Q��y�W9��r3i���x�D(��,�YN�E����8��j���Sv����A
�J��_�S�wI��XI�*S����{�6A*�^��bC`��L�k���%����'��J��$vo�z(a*��[+��R�^m������C&Q���4B=�`p�'L�c�����R�Q[�.)�*�����i}3�Y��T,"��w_�5���2�q�K�I,�]U,���<���6-yZM�����B)�q�$��N�G ��-��&�X'JVJ�j:�qe�OUO77qh�3����v��*E}L������t�E���������DC�8,���&����Y��F{;��6vZ����G�����a�H�T����a�z���
b~7���yI'Q�R��2-`�Ls��k VqYvz�����Zj��x��Xj\�XY��<��*�T��U���B��Ll8�kC:T��5�>�C�������	����T����e�J���qB��W����i��aIp���2�)�)HE�Yv����n�0�_�Wx��n���4J�9�M~o'�)[���	^wsu`��6::`�9�w�������H���*i1h�����U���=wkt��n�����#�G@�����=z�l�L�=�3?�A����B���{����!Xk���3M�����,��z�g^��#�����J�|�k�����+���w��������T�R������w>��W����E���������+x��Y\�|vq�p��E�V� ��JP�*��
�I��KeaQ�x:u?�3���~�m<����*��R����0c���w���|-�'��h�C�����VcG���!�T�T��XS�[
�JR�*r�"f��"xe�V��V�-}�1��b����]�GCw?��<�yn���^x7F��A����������[�XSYcv�1�����`V�O�\�=�UB�X/��6��s��9�2�30%G�O)�J �qZ��*eChm����B���������ptS��);R50�a����%<4[���e�����x�����1i^����AL�9CK��<���;1��p���,}T34������F�X���Q�J,{Z]cN�����gw?oS��-��,Nn��^�K�HBL|.)[@����-�i)cc���(�]&CX*-��@��{5e�x$�f{=]U������&�������u;u���~T#B����iNS1�y*1K(h�n6����ma�����l���5<~��@����b�U��H�	W���vP�Da��5�j�8����(�(uxE=�%��H?�,lE�x�D���������=����f��_�9��l��]e�����T��%~�����Y�V
���L�*���[V�7N.Q���
��T��K�m�D@?�����W9;�9kK���Sp�����!D9X�&;�D5NM3�J�k�������`fv�Q�1�\�N(P�lH��*���*Zfv����:yG�8�a��������%���I����Z�����>.�(D����d�y[�
�����F
�����UK�GcK(���r�VW�1�4��R@I���-�|%�P��h�Qt\I�\��S������2�%p���@�s
M��Tu	7c8���;��IYm"d�qBV���~]����t�0z�NU���	-�_��t��R�*em����I�����?u������"��U������=z*��S~��1{�t~
������_�W��wn��5`�������^���?����W~��i��Wm�>�������
�Tp/^�&N��@���z��6���������N���)��Gao}f�]^:��_�0\=r�Cp�/4$���9����(�^
a_��6�%W7bv����J�������C�l����������*9���0��Dm:���C1��T}�����]�l��-�����2%Q�J����zA�e��V}!�GK+��"Qs���/8�����J�0;�������������������	�x.T�JU�(l3���s8�7������gwu���������Z�:0v{t���64���!4�| �RE���ir����d�������r]����z�;9��R��`�{	Y���f��,mSRj�)����,f��A�������Z����#��)R�)����HEnP����W��R�*6�F�� ������F���?��VZ����vU��+��`IRQRV}
�"���
����G:>��8.�T���u��L���9�y�<��rl.:��O�=�W���|N[z�+K������yK��*F�!2�*m-�rn>+�Z��B'��T�X,�>M����V������M���%61��e^[��P
f7���4e������^���/���s�EA��19�i�����?��a*��,L�������$����������J 	���}&��YM���+I��Rf���)�,�s��DW��w��sQ��W�@Xb�(������>i
�������X
�������R��J��B�J:�i���6\����%����45���L����[0�>�&�U���h��@<-�1��K�i���X�a��������Q
t^�u�T�J����+��R��v�������s�tf�)�V�����O����i�k��U���n�J���T���v��*W��`��H��4��xUjkR�f�C*S	PU�.�@U<��!��=�&�_l���9�&�[�F�T��uoU0��>O�����{��v~����#�G�^��V����~~z��X$7��������K8�v��]?��^jD*��V�|X���j(*�T��L���+�
���Xh����wc���jEqSdha����JA�)gY*7.�X���SmD-�i�yA��������/�"Y+F#���O�!�z����!����������Xt�r3��!r���P���Y��r�y8���g>���������6 n��$�:t!������X�y���~F����1�J�YZ#dV�K��}:��������`��=p�|�����8A+1f/�BHT��	z]��|!p�lq �T+^��	��\��J���������i68�a�?Y��R)�+���JE���h��	���3!\��m&��_������P��/�G��@������L	��\Q��%W*Z@,������
��i(C��av�0}�wx/���wny?\)���������m������Y�����j���Z5-����M������ BU�r���SAV��hm+��/?{�%80Cjm��N��m7���7�?B�V����*|��J��eIT�L�V\�"�������[����G��c�M�~D0K�bJ� ���)	���U�NFZ��V�)��RY���P,3���P��1�>�k]�X(��6������i�|��������v����c����~k�[S	���e��X�Lml���"!��#5�����>��4��x>G��(���������>��S���Q�[�����oZ�s�����gB)Z�k�l8��������BIes�+�-���=�Uk�4�B�-��--%�)�#��E�#BI
D���E��tA9���{%y�F�xm�\�w��i�c�n�n>O����W~��g��i��*B,���w�,p�T����%���@ehJ������a���wh�vr���)������fM����(���)�Rm4J�g��~�M�����bQ��S���z�r�Z�w�p�:��n�	Y�Q������%�(z�]�(Y�y��X���&16MP�@U!���3�@���[���^Gj�v�sfs���SQY���������<8�����/���	X�E�������
�c��o#x�"�Ov�r:���
�����9��\�9p��b9�-T����"P������K��#�G@�����V������#�G@������QV�N
�"leP��+�^���X������������>���H���)�����
9��������^}�S,Z��~�����>���?��~���O�_���F�]UV�c��-V�yv�@�W�w���)����O�V��H�g��`?y�k[�%�j��<��3a��?m.d�|	��zs�Ba���H%j��Q���Q�j;,vV��F��
D2�����o�
\V�bS�^��?_G�JC������X�x�I��>����5	�t�1Ib$�X8��A��S�
�tl~��}����C�/�t�<\�����O�j���,��t���������e���"��C�JVb������ @G%
��^�

�*xJ�,�Z,�����O���#-O�����Ze�Q������W&0]����4��G���'�qx{u+���in*1=�iV��]-_�{�{���L���X���U:)+�� �<X��A'�a��H���'=w<��bZ)]i��Q�+Wf��D�u?Be�x�@�9*K�����C��*V�P��D�������}&�@W�D��B��w)���\��]7������~E�*-6�ke�7T�0z��T��;r��N7F��.��B5�+7��M o�?�Vur�F���	E%Q�L�������I�Sn�R�*��������0����!�A@{a��������]��o����a{;;P�:��JR�a��M�v�����p4Q�p�%����N�E
EO7b�&V���c0d�"��=}��'e���}~�\ ;?�w���O=8E�?�����45!e�C"�b�4�� �B"H�nD�w�+����=)�'d:cS�2]�$�'���V9�J��j(U�e;�p,�@4�T���T�Z^�=�YJ��I�JT����A V[�]������HO����M�)zB�p#z����t��6�]�~����u|k#!�65�G0�|��=>��`r�p I�a����`+m[�}��*<f�C��c0g�.��j�8������-����K�T��W�at��l����j�� '�w_X�q�Y!=s�
V��`U�(��b�,��^\�zzT}�kWW�i��W�a+�Y_e�+��40k�L��,�_�����50�y��#�G�.��V�%�~�z��X�L�:����2,]a�������Zlz�)V���m6�m/O�����H��.8~�m���\�o��G����S��^j��T?m����W�Zt]�{N�����<-='�/����_o�l���^�m��Y��\0B$��
�������Mh�mC[���mF[�&x����D2Py���Wgf/���?�L�t��}X3>��W��F�f��{�=����Q�bL*�l�����4�C�(X������������;�7y'��#<w��O��g��|��H&�x*M�5R���q)�i�#�g��6R����\���Y����x#��-�./�k�T�:�x��	����#>u��g�M�#�����������}�9���IQ�d��"��"����Wv\���8��8IU*����sl�Kl+�D��$k�H��>$�3��W�h�����������@1�{���{��n�{�9��}�O�ANS_1Z��6��]��V��� �b���������Ch��/�(�|�4�?����B�}@��:6v����{����;�rv}<���%`����Dl����w�����^�����L_I�S!3E�J`�+
��%FS�*K�=�9�Nr���:w%�f#
��rM)��E���=���n
��w-3b�R�du���g�J�J�1��_��b��Iv�hH���s��{{H�_��7�7R<��z5`D���rq%e�j��(k��J`��S={	�
4�JO�8�@1�2���R6���<���R�U@�b���@\D:�e�|9�i�y���������+����hW��,�}����@�*�6�B��\:d������l��x�m`���;�����~`���5���k���p�	���Q)ld:G(g�w�*��9Z�j�Y,�u9Eu���9D����s`M�h$��������e
�02?��l��dV�l�jL�6L�u^��y��rz�7��V7d���P�m[�8���>*�������vyg�#�����Q�6��[����]i�@XYn��dm��]�r I�o9A��|TS�U	��DT��*���Q-�T<]T�Z<�eBl	.�f�J�����X|%P�z
���T�y�U�j%R�n��M:g3�o�|�j�T�2�[Gs���`8�w��l��:_���>��B�>��S���{�Z�S�����uS#U���{0�cK����z�5���n���g��D��PH�E~�I��k2��-������6�����sP`��(�-V&V�������<��(�*5t�#�����Xl�rn�����`�����Sv��y����z�9p#��V��5����s@��5�����S��/_�%vy�FO�qt��fO���RO��*Sj[��UHS�����HU�F6o:S@W��5E�
�,�'�ZV���eV���VY����F_�
���u�l�����?�hF�\�R3��^;�SZ��Lu��R���zc�
W�g���w4o0��Th���)�
�l��Gc�d������f:������ �Q�L����,�x�h�n��T'�8��|�~��z�dGG{�-�^qr+�����>_�t�i)(K�#�u�C$�6��o#���Ge�3����/�l�k0\����ub��wX8Y9Q���*��l�sI��"��cf�����A6ri�6��;����UG�\b�3������ ��-TQ5��wy�������6Z�4����%��L,S�'N�zWAV�l�q�i���{�nxo��*��<��a5�
9Ze�/����<��p�*��N����D��D��x��X���
��m?�-b	B`��F�+5�k�:"�'�|�bc�d��A�����\V���t��L��|T@�}��1���8�'A�'���G�F�WeK ,Z5((���*AY���<s��p��u_�=�N�m����R����d}u�XF��,�S�0����]��TQp�����m����2�v:7BX��k9�+��T��	��6�,1��H,���[�Z�r��o{��@1;��`�Ux>nZ�w=<c��G����mU���{_�{
{��U����l�
<4:�U\^�Z���R�jt:��hA��	�a�p�c{�<E�����zK����p����m������X�j�\j�y��*%dE�-m����i*R@��U���zX���7`�d�`"N������jL �bj��!+5�b��� ����DM{)(�J�[�sX�������Q�Z�+Q�Z*���(}�
\(S��}�4����:����G�R����JW�eB3��Y�� P����m���A��g9�2xI��R�("�(��7�"�]���2Mc��U�;>\����j�������k��+�]��n��
�0�!�l�Lz��6�_����t�E��4-tO��n6w[����|84xX;����X�b����������-���X^�c�L�yf�r�;8���oI�u��o���R]��������6������N3���T����Wh��c�:�EB��H2`��$����k�����R�y�w�Z��zs%e���F�|z�9�����s@����F�=��s�r@}l	���,����e���XL+
�%e��L�D	%�JF\�4��X�b%(1�������oU]���}8��Q6j������b!1<�����+}����59W
to��������1��pug�����^;�,G�������:'��i��uu���cq�h1h�!�������
w�#pr��w��1X���X��	|H��"A���(��N���T��`,
��0M��\>�,��r|�%�r�2MT��9YG���ms�e7���X���b����q�G�������hq���F6T�tb��*nj��
Z0�-+�._?z|M�R�=��/L�G�O��`!����������:p�.�b]���a�X����m �>�O
u+�z�P����F�����x�\SV�h����rqZ������p:�wg��u���=���1NS�P�yqM�z���	�cV���qq������������v>$���mwc?��m�������z�V����K6N����C�����������7P!=� �|Z:�����^�|&
�F�F{���&�����`��U�$�9#���@��(��q5h��OQ��S>M��&
���=��1>����
�S��g�����2�Qol�G(�JVT�Zy��J�4
�������=�"He����A�
HT�qZ������{�v���jU�z�"��K�h�*��z�f��z����-0��F�\^:mv��{�����o
-�+(t.}y���]���������Azl���WU�������g���nZ���*�H5_�i� ����

�XG���e�9o�L�u�.�p�t�^���O�0.����y�g�j+s���b^�E�y,����:����z�o\\�y��=�����B�W-��GT���H�V�-U����0:�7X�%�_>������������p'P�k[*\Ky%��T��KT��KPVj��HK]��u�(Fu
d������>��\����sQP�V�n%��o�����U�8�) B�j��U$���,��J�Y��~��k!�"���(9V���Jl0�T���k	[YUJS��,�4���<)�@�Z����u\&���V|���\[��U����T�d�cT��y�g��)Hh�Jz�A�N��D�L�Q����rp����N#������Lg��d�:�D�J���5�@k�l�U.���,��B1�w-��I{����w�����������/��b�+jr^*�y8���>S��|��;�"����^Vw5�\T����r`��70��O�N.���]�x�SpnZ�n���r��Z%��W�*M�q*3��%���%M��	�����<;v4��
�M�e�
sC���9����������\�]=��s�f�����x��w���x{�<���lP`�2C��q���'������*^,^�Kkm	�����`�{�\�rfN�������A���*Nr>��A|9�]�m-��#����;��#���Ei�o~��E92<D��Y�]���*"M.Nn3l�|z<<�d$ c��y���aR[����^�^�<���H��32GU��\L�.��A%�b�@�+�I!�&����!�t6�83n���k��vp[�T
����H[�&;�J�"�4{
�';�J!J����iT��������s/�v�Un+����������x�$"���v�����������k_=H��Z�-GO�F����m��G+
f�G�Wf�W`�N��LS1A%',�K���������233
���*CS�G"s����q/��Y��u�v|�q�����]��7�GQ��8O��{+.�Zh�Y�%^��nr��67n���N����z�������0�2-��]o��������[�0���OM�@�qz�IA�RSH��``���l�!�7!�N�U��i���w���o���(L&M�K����<=���R
�O�S+�c����\;�(��K���VR�'9�@�bn�R{/������CP���#�F���Vr��	=�kx+�AV&��@IDATg���ZQ������{�-�� ��@s����`G��^G������?We/B-�������2�
O�~�Ox����n�aG�[�)2��S����� �TL^���0�D����S��a�f���J�"�7�ZQ���y
��6R�a�HA9�`W��tY'��$V�k�*������<T���O��]���X~���;��W� I[�4A�����"l���}���X���*ASm�����-y���P
��������
�_���~1���/����P�GR�m�)XK~�������
"+�
0��������P�
�Rcqn"l5�������+�`�}���e��P�P@�R�9 �Y����an&@�[��J�K��X�P�+��_�jxP}EU�=F*[YJ*W��Uo��aR���)�Z�K�t}[M���\�����u*������J�+�_� 0��a���|*F9	/i�|�UH��	~Q)�^I,�r���<��M�cF���b���
�����X�B����U��p��j��0U�N_M+��v�n�|;�lh�j����(�	4)jv������c8����k�T������+�������U;�$lU������J��&g����i���nY�>{���;��g�p=OS�`4�������*�gN���<t%��uX���^@�����x��e���cU���Y��1������[�e0��r ���������,T3l���|�
����3�TJV9BW���1��k@p��%��>��~�#w������u�'6*�>���O����z�9�d�`U��o����z�9��r �������Tt�2����-��6�����*�?�{��p�r)�f��������������[��QN���������!��UZ@�YD	[�]�	`E��r\�TY�����:���}y��|��%��u\��^��
���N���mG':�iX���\v|�q��W��=v����TL�I��;A�'I�(I� �N������%��(����(�N�J����H+���ID|��g0Vi��a��m$`��������w?f=��f��R����(��<���������n�el���B�y��3���8���.v8V�No�t�����E���x(C�jO�*px�>���jG�b�Kw��c���r���d}<���S����P�b��+9��#R�FWf����O���@��"G:�h�)�T��T��S�����c?�����C��i��h6v��T�n�Rk����,���r{���5%�\6�w���_�Y�N��������]��f�3�od���=�����q��)�R����/t���;@%������r������V��6.[�Ya-\>�r�B6�{��UrTWa�J���{���������/jV�kjV��P�=��X)���C��������!+`b���.9U~I'��A�-Qa�}��C����NA���`��#*���u�-WI�H�B������"�����A)��@#B����@W�#a	,�yB��@������g��k0�(������/��8"�!�2@5���CK�n���3��5���<�D�
s@X��q���r)*R�Fiu�w����v���	'-����
'���1V0�<{7px�t�@�$��*"���t`wcUSQ�S��c�jE���5���@�K(Z��c%jRl�n��1��D)�
��	��
���`m��[�\��z��+���m����e���+�d��L�����Dq��<�L|�D�J<y�r���jS�����cZ;K��r:oQ��T�pL���z.���\i
Wb_v�6'��T��XQ���z��%�k�������`��J6������RP��f�(=��SY�I,�4x��������W����T����H�->7�m�o�FP�����V�T�T�k�Y���Y���)��������S�aW&3��vQ��j�<'�7��S��v9����Y�@���V1��j�+�!�`+��V*[Y&�B;�fC�@��I��^*	������k�����y���D�j���R��m���YAc�)����B�gY�/r��*��p$����R�Z�<�e����z���q�p�%t�����@����L��9�$�yS7���b
b��\������Il�=��iv�|Ar���:��D�tJ���Vw��������`����uR�c�~�u��y�����:7mF�GX����}�v�uvkU����]U�/�9����z,�:X�d��9����z��(8z�8>$�Nle-�����g�g8�l�
NbQ8A���_<�~$�2L�o,���,x9��W��ly����l�
y�aE�3
���1��g���t�����:�����D 5�V���bB8��9/�E#�C3�\���r�!��YK�v]3e���C M���o����G��"�5�U����aA��L�i���v��M������`S�6K�w��:�	_	x�(�WIv�
�U��T>��l�������]�w�S�*�H����H<�F�Y��T�K�b��g�b�@���R%���3� Lr��Zi�b��9"��>	A4�-�E�K+�l�(� ���V\����S���8M�����M|���`#�<)�����~X-.87~��_Z�?w��L�Xe��p�i`���1�w��A��Q�;���P��=��L�jc`��u��<�S/�*��i6�/l���W/`����l@��>���}��|TF`'�j��^9�,^:�����C��h%P������D�?��,u�i����k�K'-2�TiIs��|�p�[$N�r��y�\��`~;��&��2/�q{���<�]�}��@G��.���-�[J=�jZfOi^��|&��x>�g��A�T�������80`�����wo��?�|b�8����V3F�Fv���N�=��t�	d�Ei�r����.��;���d5���l����V��>v��X������a6���g��U:a�L��?�e~;Y�rY�c�B��8��0fi� �_��KR���`�P$�6YE���=�i����,�N�l�+���x�R7^�<�������=�A�c
�pp;8
e�����u�[������&�$22]`�����R��p���`"v"��T4jF����k�, A6��v}M�
�{SA1Vg,G5���O�����qW��g��G�t�V~Wi�7�@��IN�	��6�[�����y1�w�c:��a�QU�S��"�N����w7-;��%Au,j�S{M��iJh;�x����,���$.�U�����Z��;��g��zr�bV�n�F���R������V6X*����������������Q[+D��;�%�+���F-}G���f��S��Xa�MU�2W�\�vhZ��N��WT�Ro�I2�H.Ir^K�T�|2��8c�?����u�c�EI���y�'�N�:,��n�@oK����kS��7VF�.�7K]V(��*e+�;R'*���c������W�G����"�D��Y�J�T�x���=�<�����jt��GYF,��s��285�w�� V����N�����(����	���r^��H��y^3a+�$|T����T����*���|"��p�
�����<Po��4��� @U���y\,SWY;��w|�f��C�PA�R8^��R�?��G��c�R���[7��T{�|�9����J6�w�����y�DE.\����o.K0u9A�Q���l)���V�r��=�v��A)'�KU�	P�L�[�b��z���~N;�a�^0]	|U�Xo�_�n� 
P��^T��2�6�n���|���~�'Ob��U��{�����f3Z�T��g�����������^�\�.=��s`5s@�V37�c�9����z|d9P��C[.�l%����������2o���aD�
�	*�7�|����?z�����k�O�@����=��mu��$U.��f>�i.�s��/%0����h�$����T3J;K]|�6&�'y�]DO��hK6b�B��I�L�����I5���n�b�?��[�{a��P�i�����*^X:�p��qc=EE����'>�u�����.����|z���9�CE�]
�N��iv�������<;`��e�RJW�e�J�J(��j�@�\��rj%l%�2<��T|�*rcl.��G�!�v��$rX
B�{s'
��p���#H��`����LO���������UuC���`gv�9���%����:���gq���kL�d�x5��6?t&�zR��Z��X����	�
p[9�N�_8J������sv�\�X �D*�gO�����x��;����������S�M8�������F��T�J2���� ��_m����R�@rQ�r�dc��f��v�1iv��e�3S dU(�1�:�!�OX��q�y��R�U�c��`)��L����4Q	@�y�2���K�I��~	��V�o�q`Ok
���}��H TK��w�����V��X���-&/*��;����#����4no�3�=�<m����"�����q*��(a�q�[�U�FiiRV������F�-�5�[^{.k
knKNK
NsKvS�p.KiN����h"�u��5����M��Xp;NN�B"���
�^����	��xbi^���������<L%����b���aZg��X�����M�BJ��`��G��s��F�Y�tQ=b����TRF����������nB�H���R��s)�,g���Y�	��]Y��������&��jQ��{�CT��}��L�O�@T�b��kXi�5�X���e"D����2/�R?��1���.���T�2$G.Q^Q������^n�~����<Q���=��zgG�H����'���#3���.�5kp!LdY������[b��wb&M����������\���8��wf�aM���V���������l?}'�oS�slz����}>|�
U�T�\��`+Q:�Ug1=A�������B���DA�e�����B�
��<�.�]0z��O�[��r�
�o�>���
TS��T�dP�bT���9R�Du�7��J6�`d:��`V�����"���>� �h�:],K8u�#�����`7���]�$8��}����H"vyb)z��m�VP��Z�C��	�R�9�{&[��o2�W���4���@>�������=V���$+�Q�G&
�"x#��Q	4�G!�Ve�J����d��3�#��:�6kq�A*Z2{-j��b�7Z'��EV�(�'M�O�~V������	mT����o��qK�,A6�����J����k�A����"�� ���Xtj��]��\��k����Ju+��D�J��*k#Y�����S
S%�T��dY�B�Le��b���e����[�()��������8w�����DM��`�@9(����� 1��,W�W�������ei~{�N�SY�� V���?���/R-�,7>��B�����@6>��A�o�
V3o�N����,�Zi������p�7K��|��K�s@�=V%t�jU�Q?��z�9���z�����Oa222w9��tx����M�`�!12����B��Y��������i?��1����PRs�+��e��x�gH��A�h��:������{�����:�Zo����i\�<�+�g1�Z�SZ�9�v���Sq�9�CI8�i�8�������,z/&*<��~|�'���m>����M��]<�S����<��"x%q2���M��*�����]��T����Tb�a)�a�P��@���B���N��p��_�vE�)i�=�[O������o�8[��-`������������s�QHOO����F��W���Z��8����F�@�k�94`�n��r&�B�j�o�svf��YlY�����Cx��a���q��n��k����[���P��������p��oS��)6Z�r�d>����{������%�r�l$��O-3��+���w���O,y��������������=�T���T�
����@!����,3Lm�,[�CAV%�J@��P�j��{���Nk/��^�X#p)+A,A,���e^�R��G�u����{97���[q|j'�D���k�
^���Fy^�a������p�
g��qv��#��m8��jV���:`UE�"o�l�;���H�<'�e��2U0��K�C��H\�kW���K_��\����_ �X$xQH���M3�`
h��2��*���m5�J%yRq_�4����N*��$��=��6�"��wM�ube�(i�aE���`4F%�8��r��9"�3GM���SF7�]�	Q�<���>�M�|��:�9�1�s#z�l����M��9��������S��elmx�@+�r'z�� ��y��	���ig|���R���
�R�KAQ��-�D%E�GT��?����/�d��R�jY�d�(�k�[^����.�+h��
�E*BT
�l�*4%�)���~(��N���(~�~���W�@ig�����$�����E�{�~7zov�Pi��w��Q���b,�U�rT��-T��P��d��.�<H9)0��Q�^�(9���`�`������MP'.
W�2�0��Q�s#���2P���-\��ZC����Z����T��D�*[_�u�f�V�m���y�]��T�?��	��T�.u2L��\2�5(��n�������Y	l%�j!~2��b�r��fY��f��[�u��P�K�9�1��'����I�J0��?`�C�n���&t�duB�t��-|E�<�M���&30������W��5����3/z�c�,H�3��Wi7�|�Y������Qsj����������G����B�WB���Y���
������*Vw�w������U�������w��L��A�=�XG9��U����_��z�9�������z?z�E|p�ul����m���Y���!y�A����y���S6|���?�vwl���_S%i�4&��O��_Gq����m.x�����_�K[o3Z^��P�V��gh�0�����r���O�<M�*�@K���H�p�0�A�qd��r��-�B��v�S�Y6p�
����|���kp�2�T�y!"h5A�j�#�'s�^�2���;�E��Fp�Fl<��`�jP�>x���}��ZGo�������=����{���V���v'�L�j3�2mm��:Lvv��B��E\�����~�JR�����^�{������O��0_��&�	��A��=��-��Y�h�
`b����-�|���q��3�6���^����+���f��{6��d���T�22l.��C/��4;�
�hq���c�K\N+�J��N���P:��=k/lttL���_)p��r��
����������o�Y��71��/8rr���am�2��m���nc�nTSM��Z��=���v��7�� ;����q���+o���F�N�Z�c��<��}�E~��'5���i��+:"*w-�IZof���f�S�8�'.KT��b�!Y��u�����f����+��:{���b�@i\N^�}4������\�����H����{W��r�,��u'������<G�8m"?�����x��3��85��3�\
��l0*5������em�oa�M`���k
l�V���:�H��`.�K�#
<(�R,<~��]F�4��Y��L����J};��c*8����6�>k���H�"�w�2��)��N��:i��^v�(�����b�J�u��������e���4)hJ�)
�
,��;t�����R��5�L�R�@�����#��H0������������d�j��]�6��[�!A���>���:U�}��O�����+�.S��V)Z	���(�5JNU�&Z�@E�,U�
�c�����B`���VN�9��d^�������$`����TS-'(�.Q����r�������cI����qqt��3��e�;6�1�Q�*�Q�^����d����J��fe7��X�o�A�N~W���6i��������i��,S9M��������.6��;�����|Tq��������M ���L��\/f�l,��U�9��\��-���'��f��V��%����w��{�����G���u�^�q��Zy��g
<���*�Wc���`��,�"�;R~�M���P��f\�vb4�C0l�[~�6�H�e� UnU�6^P�`���oY�F��fU	]��b�@{v~�+`�Ql�Uha�uey'2/j���:N��+�>\�nD"WN��X�v���\?53���Y���=m}mtSp�����R
k�|��X~�����j2��j�Z,���e*!+���(�����j��j����}3��c���U�����)y�r������Aou�F�:X�F�V�=��N9��U�)����9����z\����N?��T�
�n���5�r-�����wS����~�H��s����.�B������]��G�0������e�e�`����_����u�����V�hui���/}$W�JLT��LS��jW>�W��(la8R9��jid��jv��<�C��9��G~
���?'��[�C/8F�
H^^��U������f7X�uc�@���/&axkJ�����`�!����R��q:D�����Y��x���Go|��C5`����/��+G�CT�����g�y���d��a�o�z�|/������ZQ�8-C���u)����_���^A���G(���3�lF&I��W�Qxm���r��������KO���_�]���3���ob�GO!�������VL�����1�!cc���UM���F�9�cB:��^�:��y���[ �H�
0��<��dw���S��>����9�^;�<�:�2�������h������O��[>������F'W���O��v�&��Z>sw;��P'oVT�H�W�Ke�HijS���SS��4�0V{��-;���W���[l���#��K\!�u�}��p	��Gu�Z���#[w���������3��4E+�bza���-�1�jPP:	L�O�C��
���wI3�iK��p	�Uq�J�� .m�w�<�6|	�U������yI���iV���$��N`��z������3Lh���'`u���}0hm�� ;Kt�T��2y#A+A����;��H���mo�����,{X���=���M�jw�.����]�(��+���<���/�-����3|���9"~��	�r*��`[����^�j���:����.s&�se2
�-	�X��)�b�}�U-�{EaC�,h���T���%�;��JO�##�kT��^�57g	J�4�F�������p>��@����*�J�#0��S���Vv��3]�3�,-�2,�s���
�N]o�N�����A�N��v�\�Z�r]�
�O����1�:@5�*0��no����@�u��W����^��C���Le�)�	�5�FQ�c���O*`)�R-��[^^��X�1�*5-]���c��������:��"F0Qq���P��H�A��*�=����f�_��=��A;�������|��k%e�<<U��*��PV���O���������E8�E[f7'���U�8P��m\-(�i�A!�^'P0?�c��NT�9�������U���Y�h!(�VQ~76lSW`NF�p���}�c�?���
a����$T~'�������XK���%iI��X�	����!�Y*��o�|�E=������hKb�K�qu)���W����K�U`-e�KS:mx�uW�����4;A��/��4��@�o ����T�4Y��nX/��T1u�m��c�6�K����*�2!��a2�F�\�G��"��3�����OK���dF��1���S9�]U��b���2����c�N�Ne�z!�Am��.L�"VX�m������l�	q�ge0�����^y�2Y���N�f����Y�p����(f8�m��7��P�Y�ut�KK�����We�u������K�W=��s�����)���M�9����z���d6Fk��1�Wk�C�bW��z�4�&���=�o<��x��QU��.X�[=����|}u;��'XA,T������������4u�a���Z~�7Vp��f����>�,�z�yZj����N����c�����w���j��� �2;z��M��/���}GX�.b�#v�^i�W�H������68u������?���O�]�Q$�������?}�i�
�r-��Q��i����
������]�=>�*�����W�9�R�IF�c������S�;���n��������p�������c0�T����N���
�j��g��t���;L�������������\!��{�A���!���Q�vnWWQ�R*���J�SR���1*v������'^��@x�"�87|���W���}
��|o��-z����
�7����*�j��}���|�F'Q�x��L���8�
-�������=��/���N��;�+OX�f!�K��U$���J�Uv�{k��F�Qj���Yd$~���g��=�D��eB������/�"PE���`�������;x��	[��+����M:��o.�\>K����&��������������`+W�(2~����5�6o����m�{���v^*�������L�������i�Z�5p+�N������P��j`�F�	;q6����6\���?�Q�:��Kx�4"��&y��	d� �F�H7��O�Z4�J�+�D�D�9�������k�K-�;P�E-���l����F�RmZU���Khz���4�������S)��J ���2|%�P���!7mZ��)�"cpL���
7{N�?Q2�TwR
ORG�'NQ���E_��+jV}�����<�"�*���v���S�2�1M�3��V|�D�#a�y�.��D�LP�����(��bpJpX	mr*w���@O��*
��V��{���V����<A��t��U����s���T*U��� ��Kw���w�5����,hU���<*R�I:���i���4�,�5���;Cci��6R)�{Y&��K�*�E��i7k�7�yz\d�"���o}�o�]X�Nf���9�2\ �,&f���r-�j��^��vL��2�%��ei��b�=Y/f�*Y�VW=�������z�u����^R'T?]�TV��?��+���������pP��=)����v�::�`'x`
p��n�P�;1/��z��d����'���������w�L���4Q�;`g]�T��[�"^�4U�i�(`�bA�2�2��V�\i�gPl��-�zs���s�Tu�4ZL%�T� ��+&�6�Z<���2�!�����Z,�c&��{������S�-�F0�j����Z�i�{f�UN��b���^jd�+������T�Qy�f���l��U�����������H��s�����.'�B+��4{A7�v��z�
e�H���s����������/��`Qb��)��N���c�:�V���A?��z�9��9��U������s@�=�Sp\����]}�s�A��q���Q���:������w�����n�Z4�W2�q��O����Yv'����9����d���������I��E��1t	�1�ddwe(���y���������S��#�OML(����wq��;85}1��q���������t��q�I�1�t���`���8zNO�c'�5QNj�����g����k<Z��g.\@������HU7�7<���c_���h����	����T6Aprn[�=��[zt�Td���O^�6�������Tg�
��[�������O� ���lf�����;���vv�1�IM���p��a�o�����#�3��UvQ��r����y�-.DoA��0n����[:o�`��%-L���������c?�Dh��b�{!�	����Cw������O>�p�F)T9J�C��wh�T
K�-�>G4���r}��xNM��ll�n���0���vh
���+w�LC���7CJ��r��n�g�
�Wi������P����+�����������e^��S�����@T��v���3��y����l�d�hv�	|�at>���:��8B�@����]f|�+�������l�(�M�
�a(�����I?K���)s���J�k��st�8�������
|�	=0d��t)���_�u����Sy_�����g�"v�4��H\;��-�����D�[m�\^���vxdBor:���I�K�C�*����C����1�Z��g,��T4S��K(�5���
�>����wK'n�:���(�����,q�%Ws�?/����7d@�������h��H9`�k\l��Q�/iJ�������Qyj*IK�4&8
��H�D�P&5����s��,��I81�.v5M�sh�\��C�3o�c�)��t�����
{W�\'p�p�x(�)v8OPUK:�%��d19��:�t�T�a'�DU*@��v�~�K��)��[�!z�4�_}�c�Q���I�S�[M��xzxN��y�~w,J__ L��#�e���
o�3�����Q��y����m���yK`�9(K���S�W���Tn	�:�@���WQ���g���'?���W��g�l��$J4�39NT��eL�j�����e���'ur�_��K����e}�Y���K��S��U w�<�<������9���<mH6"���d�Fd[�I/1���q��wPeM,�48�@WXY���������_u��ip�kJn��H��|�
V/��J���`�xa��O��3��B(��IBUO$M�]������t�J��i~GU��ZL���_#Ke��T���e���`����fU�
\k�*[�d0��`^d5�V��j���Q� ���$� �Q*��\�F�C:�\;��T`�K��.BlP$2�K>_��<�.�3�V/T����9�AV����$� ���O~�zVw9�
n����Qd�N9�:�F���s�}�=��x
�S���M�j����M8]�~��PE�P�^T��TZ�*f�L��C�R�N�)K�v��N5�����_W��8?����9�����:Xu������s@�=�XV�5����A23��l����
`�QE�Z�/?������G�t9�-}�� :�$��ko�c�p[m�y�P�P5A��������\���2��w!�y;��`d��4�Y��9���M��q/U��k��J\����r�������.�"U U�~�i��u�S�l������D�*�G0�����4%���H���~��L�4|GG�y2�Nv`��7�w���V>_�������������f�|���<���������8q%�rqN�7����W��j1i6*���y����8����Q~&�S�^����+�i�2����i;�����MuNf���U��`������7�0�F�s�����pj�]q������I��iws1;�68�8�TFH�`���)8��ko#u��@��F0�5��V>]��d��^���F&F��E~�VO+|�<������;BU��
�f��2��	Y�EO��O���X��?����3�u���N�]�}���Cl���\���LK���C�_�����W,1���	W�Ep(\�e#��F#��x����<s�d9yAlg>��~�����wPAs�5:��
��~Nh��	�PQ�6��`��6'p����!� ���bX���e[����)`���sK���r^��,��J�K�;d�4�����@���� +Q�
�s�j����sJ�L��� *W����f����_>F%�����q����/�1=�1��x��L"����j@����~;�h�����[�h�zz:��3T�	WC�����Y���~xlV|��s��5h�����������-���Y'���TQ6�����Mdu'�J.�h��IE+����P��50�����>�������|��q��d�����I�V�?��l��=<����VD[g�|�N��dG U�Yw��*U��&v8eg	,,'���4�+Zb���
�����+�����.�'e�BSX�	�l]8��]X�,J=R-K\=?�N��j]y���
�p�B���B��2�c	�����J�v��6�Z6D
.�C�^��PI�gfN���������������S�Lh��l��hch�I���Sm�":��]�u��s�:�gYU��*�������J��6��c���X���m���2O�Ly.�ST���2���"��e��T�PVqT=����)C�_
3�7W��Gt ��^�va4bP6c��i-

��9�2�9]��J��K�������O�=�N4��:�t����s*�j�:�����Z���z���s�Al�s]TUL���~�����c�,�����G�
P]������
���P�(��+A�V
��,�f�������n�t����l�,US������'~�=�O��S;�w�N���=�"?�I��Y��TX�Y��4������%��>���]�6"��_�v�z�d���I�5IN��IrY���"Ki�7
����)$�U%����-�2\�j��9��{��dGS�*����?�Z�"X7��-�{�2m��Y��9��v�R�u���(AijV�
d���o���F{�2�JK�P ��,�v��`����b������m�:c_2�2�X?K�����_Z�m��*��zA,���]��0���^c�B��4�bY�x�b���5��~Z2�����w�j�
��0�-��A�7�>U�YQ��Q0z����Y�6���.6�#��6D��6XZ�h{�SHm?������x�}��$�UO���V~W-�%��n�X���b5����6���fu����}��z�9������V][��{�9����z�@9 ��/���Y����^J�oF�o-}���ZU������fM%��f7�������x��h��������`��ad�
Ufl�n��R4��?�`CE�.��eQ���ga'`�&`e�Vw����u N��P���<��Mk�6�H��<������UPA�>�����D����!\�z
g�A\0��
#n\��O��
����tn{�l:H��]y���9v���8�M@+�[��~f~YTo�����V!��a��qt�@�p!��!�,6��z�
����H��'D	<�d���m�j�����k���Jj-V��#�gb���l$��2&G�#o��L<K{1N�<�ll�����Z����g\6���h�N/�T�*t��(���L���De��V�.����	��V���3��T7W^��w�^Z����(yI�g��oa��� FP�^5��O�_��:��KN���yO�l"DVS�*o�N����+%�w��QN^�y��^���~��z�����)�����Bxk����:�����<w�G�y!�$����j�
�� $�_KU��y�bc��K/ =6�`7;�����V*Y�3_�3=�����96~��h��*���2�������=�q����O�N12��*���e�V������U��ZB��[,�������:K�����L[I�n{���K����C��>�DBS�:{� ��%i��%v���l���,���9�A��!_�Q(��%�-a���|M�����G�E��(�S�3aG�Z���Z��`��a��aq�"d��vQ��<��!�F����[�su����N��q�R��.*�%�@�J�q�Z�L�L��H�:��*�&.���4 K����FHKJB��V�Q*f=�������$�r\���t���������y?F�g�Nv��	��8��4�.C�[b��H:�����0���MkI��TD3*�jyPE��	XQ���cu��{�����Q����]%gX���4���i��)I�:�>I[_f	��r���XK�N����g�?��
�&)��U���U�z%�7��.��e����7N���>3�����������u�W5�����X��TL�j�*�z�����(��E��:rA����J�r�:�{�N�����[H*o_�`�4��32��S�S�����������q�;zQ�Z3�|�����y"=_�����XJ�cZ]@IDAT9�;D�
*n�;g����Hc7gghKK��J�s� *Z����V,�8q^li�l{prY�q�4k�f_Q6R*U���
��z�����W/�{G���T���1����������	�����g�l#NYNrJYTe<�$����`�5�%��������YB�N���G+�;;z�^���	L@�aN�T�gF��^s��u�.�8Z�r@W�����{I��D������US#�]l
��Y�O���wv�
2�6$���/�6;���F�2M��A�q�k;������B�I���ut:��WU�����*JV�h/)����r��*�#���+j[_I���2���3�Xv���Hg��3�p�
\���}��s@�=�>t�j��X?��z�9���:��|��+j*6P+�Y�yL����U��6_�
�SW�����U)���k�W�;����Z�u}��l�C%�4�x�>���%����Un'�Q���Q�R6z�;zz!r����(=5�����;0���2�j	 �y
g5LT���\|I�J��DMK �$���C��q��~HE�d	�����D��[w����o��Tv���"$31�nUV���k���W�x�
�k��V�:�g�h{��g���
����7�1Bm;�v�i��f(���P���K��w��{�}�0�'�<��To������b��'�����	����s_B��P��u7�HL����s���n���>���s[/���bx��J����W��NU��ns���}����6Z�I���N���������V����=�I|~S����J�����d���_D����e��T��]T
��c���A��e����zy�T������^}���������]��p���l��C��,-�M���-��L�'`�����������^[a���x�K�U��E����.���	����w+>y��>
��W��Z/����y�8r8N�*E��������
H�nU /23��%`��A���*2�w�����Zr�?�@�2>N���U�}����2
T[C��-�&�v|<��ZB"k�L��h�Ke%��G3�����pY�p��p�b��0"��o�����\������(LQY��*�N)h�����Z�+��0��,��,[����eI�:Nek��G��"6?FG�R�2867��e�����d%�/j�P�ok +aQ��U������y�5������W���Q�2�P���1��-�WW�^*!������o��]Vevx:� !�av����t�O�j���r���A�T����hYf���m���U���-QB�q�)�#��"Os�l�Hqb�s�R�0s��I�`C�
s)�&j��I���0�i�Xq�
T�2��/N���y���n�l����-�	�X�dT�2/���0X���2B�&�A2N������� Iu9��
n���g��I�"D%
N��� �b^Q���U-�D���m�w^��l�(�������@D��Dr�~��jpV�D��v���qi"��`�.�d���F�!�!�-`��#��l�J�Q�*��+ �<���T-��Fp4Yf��N����hZ/�g����p���3�{O�~����[� mB�_BV2	��(t��2�r������Y�g������dL%X�����An�36�-�hf}\�����O�U�l[�pJ�/�j���N�w5�=]�=��1r@�n���~�z�9��������+89�Fg��!bq�"��CAV��M��
,y%�����Oqn�����r^�Z~�4I� _+�a��T����A`I�)���w��*��Txo{�
,3JgC�v�����5&v��x-&�3�c�u����!|�������5����H�7^Y������X�T����.R����b8O5���\5E����Rag�-����<����4]/!��,�� ��gbST-�Q��k�
��zl��C���P	d%�����@D�+s!BWABW�}N8n����
�����@�������$�i�:Co���'�S�����H����{���U�g>K����R����g��.����R��������s��������cC~��*��b#�`��mEvhAuY�gy��i;~�����A��kOpt�W?��T1��]�8��;��z�Q�\1*Q�����S!k@6D�Y*�p��X	�z`��`��R3T>�M���h���
"4���Hv�����k�jo=]���a7�o�
��a#TE;Ckkk�����d#�Id"��o���h�Puk,-;i��G�V��%�������c?�;�_b�p��\|��3A&yq��rw���� Gmo��`��HSvDbIV�\S�D��1~����EHT:c.���T�p0��(Mn�pT�#���6f	�"�tT\��fN2o��>8�8�S����a�����u9>Y�<2�y� 
Y	l�����6�6P@+��V�}K�a����GVK�AVFXs����������:S��'����V~9s{�m�@E+6~�h3i�b�I�%u+�^%l;1uc,�a�����^*$�o�� �a]�,6�&����iG~G�@��G.G�\�erT_�����o7���!��l�@`[T����f
����U&'��5�A�yy�dtz��dy��d����������1�l1��:|�$-=�z�2���nS�A����FZM�]0;{PL�)��bV�
, ���w��:{
���`pn���2�	�������2�'�7���g�S�Q�+����	a���h��������Y�|k�����'.������tu������G�����A\�j�D�~K�A!v��i�������������=,��
sP����|-�{����N�$$S�����������'���)��g�:(�R���(��bIy�� �O/��zK��RoH��
QE^^�FI,JQIN	*
�#���A����R��0����X�3�������,3k�M]VrZ���"-���qt�N�1;+��r�rq~I�@��w�t`U���v�;,p�jQ��?��(-	Y%��-j�(p=p�}������j7���CV��oZ�Fi�P�J 7=�}�����c�z�9���Z��V�e����s@�=�X�9 �V��Z"]T�T�����+�������OK6��b'�����B��;he�Or�@�rR�X�
'0e#De���G���e�h�D,!05��)-�����*=	"_��I�������S*Vw2Js�K�Mf��������
-��}��QR�T��o����;~������8.N��{?�����S��w9��$������4���78��OO��s����N�{�����)d�+��=�A�VY^
��q��T�����'dz���#v��5c���B���:�.��
��J�*[�ZZ�*v�"�.a���
^���.�3#����h3���e�������m����Kc	������W��Z�����~��.*��"R!;C��3���!��d�*2�(A
�Q"4�+����M�7��i���������j"%��.����`��:Y�����!(�Q�Y�R����a��C�F>$t�!2�s�$_��o�],-���n#xp�r��7��j�9$��E��Y��^8��� +�~��U�V{��`��%j6yBT����`���{�������Q�lY�<;�;q���-��R�@[Z��~�(����G�����W��\n[��|ZJK(eJ���B	�!���v�%k�u��}�k�H�HG��-Yr������������k}���os�+�Z�A��
�+�o��b'���FN��L6�4+�I�I�L���PSVa&@&�g�F��u�k:��C���M�IM;:��S[:T����{�}����W�K�|	(d5\i����:���Z�l�m�r8\Xn��NM��a:KG��s/���/�.��P��K������r�r��W
` ���(�����X���:������e&��n�V��\�je�^;����������=���o���Y����ss��h)d�����d���DNg$�3WO��V��J�a�������qsD���I/��W")�D5�����_"�f����dU;�%`�����*V�RU5
X���Y��`6&�(��qq����I�hK�r�E�k���T��"��3:���j��s��B���$������������}���
(�s�}�t��u�CQ�g$#KA�!�S�4����K{���R���`Z�Q0S�����n���$��xW��eU�Zq���%`��]�l�j�G��%`��]v	\�Hf����V�e��T%��� ���-F��p?��?��>���Y������^i���t��S^,�|�S�%|M���_a�Q���'dtj��c��V:9��A�h��X�L�HR��JRn�2��h��-��3-_����f����^����Hu`��r�����l�Kp����'O������&:kejo��[*S���dF�G������������<��its�3P�}�1i���A��8r����y���F��X���SR����*��F�%��M�WtH����������{m�hE��i�X�&���o����*/<Yv� JY���u������V�%�X�|s��Q��U����S=s��T����*�P��k�(��rNH�;bT�
���N�����bqw�\��f��y
��{hN���a�����S����xe
���A��Z��|
(#����]�Jgg����4����P��6*5+�����/�l��kR���A��yb��I���s�����UFh9���v����5]��.�.�
Y]����(Z����+�x��f���W�X��j��\(��v��"2 5�]E�MU�&�u4��*g�5����
��T
��p��)�
�.�����tR 	a����%�
X�C]-�,�)bU����
jXt�Qb��X�FA.����(���e���*W��r���jW�Ws_��������/'����f�)��$��T��|]�� jp���XM�C�H�x����������r���V���5�;��.�Xmm������;'��|�4vicR��E�|Ow���3X5�������*~�����!�b������FG%14�u��$%�:hz��%]�� U�
��
�������4�� ��f������4Q�������kG{�oRd�� ��&�4��{upl���>�.�������D��T���0�9���&B}��z�5����7�������o�D�<^qP�%��=�l@Q�(�fTy��]�H���6q���v�&���d'��T��s#)����������-��VbMy�������*�T���@e�[}��B�Z��W�k-K���]v	�%�1K��6��b�]v	�%`��)���0��)[
N��r�������V�*Z�h� �����|��O��Q�����A�1ftJ����P�Q�
hj5Ccm�4��H"6���Zh���gV
M��?:)&����Hn?xU�tw�Pu�s�h�9I���U�j_�A�j���T���t/�����S��o�Ob���D�Xp%�|��;n��=/�T��TB�J��A�|jR����m��z�S�P"r����!��z�4G�B��%_xJ�4,%i�O���r�`���^1tl��,b>~^��(�|X�1�7��������&&�C8�	��%61*
��V<�h���O[=V)D���rl1��D�����J0"/N���i������mg��'%�������&t{�����m���sSV[�n�*�|
�7��CG��5�e��O�YZ����G��T�
�_i��
ItW�$�wHf��:��;�.�h�M7�vJ�-�Y�Bj|\���o2p��%�}b�*N�[n�l~�oJ���,X�3��-��-F�G�R�C;a�_�K�Ty�����_����-� n����_�v='/�zZ^8���z	�i��������V7���n�]�����D����2
<���Q��Q^v�:\'�ps��������@��UB7
9���hJl��dO�Nv`�������5��%��`V�r�%g@-�
le��
�f95�9U�����84�����M'�����&C�<�������NiV!�4v��~�:T�(����������������
��
��i7���>���3V�j-X�$���<U	��.;�iv���p���+��;L��������;�+�W�:������^�``)U3�P`�<��V!�F�����Wi���%;���)���(��r�nn�w�K@�3�uz��Q��e?h�brD�[��o��=�t���n�>�{�F0����u�����L�{�����UJ����}���n����d���k
�5a(�7�,3�������yXjUM���6Cz�	��6���E�����-�����%p�u����,�N����O%�t�C�Z�lW����yj��B���TA���T�m#�G���(X��BP��;��-WV�����{�[�4�b��D�cY�����4��GZ�����]�I.YA`���e`�
n�������g�T��|��<��Z�[&���H|k=bb�v��f�e��[���E�;����]2��5�����ok������sq�Pw����E��BI�]���U�������+\D�0h��/���n~9g�(�NQ	i��*�e0���hY�����&A�FP����u���� ����4U�J���^�4���
����d�1�*��i�=&��Q�Z2p?R�J�7��K�����O�V�R�����V��=��X)p46]�
NU�6a5�*V�uX�����;������F���Wv��r�������L�v���]�}�����K�.�K�l��R����K�.���h%�����[z��8#���!(��j�����v9y��|��?�asuZtB��4T+4�LJ�j$���|m���5����zqKwu����o�{�:�����o������������\J�����}@�����a�Z��}_�|{�<�����/�P�;�$�6����L��5.�G����(bT]����F���3/@e��\�t�\��PE:�6��S3��;���wz��T�oV�5|r^�TV�X���4�6.���i�S!5?Lp��&i�M9�<jR�YX�!.�E7�@^� �3�n9��J�4v��M��c?�ie���>�+C������T��������AU�����uCC��o��������sr��&]�������������h���NK�l���'����H?�k���dflK�$P����|6@���j1jVm5���J�=��c���g�A��6�I{����*V���FmB�I��c���N��r
��$�@P�8d��#��?SE{"#?��l��q@�<�~��(�o��x�E�GN?#/�|��V/�~~��tA(��n��^�<��^�t�oL�M�#.U��%zR��S%�v���v�*{F�����%�t������������-TI,��Q65�N��Qf�#����y�^��������4�X�s���$9��	��;���6��:s�����oO5�����k���4���Y�N�XX�2��d�LPX��4� U���X������<h��I`���V
^�0�k9��9���J�Cdn�[��p�N\�c9�
����g�(���x���OI�����j���Q����3y������j�Z��l���j��y���L���g�.�e��NO����V�U;����\�aQ�T�U�8�j9�q��#@A��L���y��B!�����2��d���N������|���z�r���!�������^�D��-�Y���OP��<�8S��2�����A9�i�������yE��>����Y09j���:��{��'�8�*S}D��#���6����Y�s���p��k�U+�
v44��O�{/�����>�������UcX
(@�qA�
q5U������;?$�3~��$��3XW�������P6mFI
��@��/",_[��~@������D95�m�1���\Ip��D\��VIr���fT�j��Y �JCh��>p���/���o,
�P�����e`�,���;�����B'~�4%��������`}�����B�t|H=�����$*c�l,�	��%�G���418��%I� 
��qE%��F���X�;�."���X�c?�}�&���t@Ja�`.*a��IX�)��r�I�XJ����i�TU3i��ic�3xn��6y�������MH���hL���$8�-$�
��|#&���J��0�����eT����X�t(	t��@D��R������F�mZ'f��K�A��C��p���*p��i�A��&c9Y�����o��m�d�*P���@J��RC��\������K��gXw:^�]���m�����c��[��
W�����u��K�.�fK��f����%`��]v	�%���a%�;v�xy�.TR�$QK1�����_��aiH��LXJ�)���)�7�����������Ve����d����V�"��g	���.���k�q���O�6:;G�}������j �S�W�����@�W�v����&Iu\���j�V
\e��)@W&�!]��,�ENc���W�^�c�<�F+���4�9Ue�wmF3Mtx�P��=������{%#�,H�����x������C�v��w�!~H|@���&�}���E�2��S�������$U{����sG��O��<���e8�D���z�t�B��1��)94Z%��������������JFT3]����}�$}_�gI�+o�/��J�Y�!��A�{�%�u`~����M��e�Zaka;����Q���/�_�O�O�f�U��P��o�>%������Jp����,��������>���w�2Iy��s���'���O������ta���U�d��*���Amm��wT<����M�A���)�'p��o&��M�����2��p�n��������}U���tZ��I�IR##2t�5y�����S991z��u�9.gD�������,���;��2u_���w�z���m�^�4�}�4�����ZKvRf�@X���BX�����0�ZCX�[J�N�@
*A�,�8��w�4��#+�@�47m�M��t��G�h 
QU��U��.����S�O������E;�t�x����&��Y��Z����� +��������BuJ;./�`:���������BQ4^Y'��t��y�y,I3q��1b�n�$�<�u[���#��<���e��B>L�Re�q�Q���5-��t$�I�BE�h�2�cV<����W�����rI,���W�y�+��N��	���|�p�,�tzRa+������^eUf�<����#�o��]�z�C�(�d`(+��VPj
�?*�~ +L�
��f������B���Y��DN�������]��lF�
;��+7v�.���3<�x�|��Q�$�w;�C������\�:����pU�����pj�U>!O]���z�s�����+_���'�X�\�
x�B�>�Hp�;x�
��(�t0����w"����#�4������r
_y��T�������5���{GS�:��L�U�U7��j������(;��
Ph^���I�|p�mn����p`e`�J��(����J��E%��y��Z�P{%`��~����*0�|(��yA�)
��U���.����
��H{H�4�2U��0Z��<�z���y����c�?�u
aG��i	�&��TUv
x* �RP���B(~�>-y[h�k�$�,4�Z������Q4�F��|L����(��]�p��#��Z�BD���0�1�s��c"�	I����3n�4�8��Rq��}8��rQ�
2�,b$[-S�Z�f��q����:8����p^����4���������2�5n�����V����`�=5�U����4$F]lq���=X-f���P����:mm�����&���x�[]X�
O����9��3����Z��Vi�4`�B�:O�_��a2T	�����J�6K��,'U'��Y�5��o��w�a��]���?v	�%`��]\6Xu�Eh��.���K�.���z��T���O��-�������sR���#C�a	�i���
�0����t�i�"jJ�������������e
=�|k�����a���K/c�fu0>|��������?�W�����l���Z�(�~D���^:�����|�}=��������A:�f`<��7�����O����'�����=L�R46
�
h�~�D^mK�</����HL|#Q���%�ZVp")���T��R���4�����m� �
��������O�?'��G���M�������`���N���\�\	d�@G��CRde�mq)
�>�	9��;w��,���F�6���sO���MV%��Z���I�
@�+;$w�NBKM��9���z�"k��Zy�<�����d����6��P'��9�}'�xt(p�>r@W��Vx��lH��+������M�1+�w����=M����$�L:-i�������4��q��OI�/�T+���a�2M�}v*)g&��tM&��iT��f�G#�?�C�@��%H#^�� �,a`�
w�%F���l�l��*c��@5f�g��@�D�
R��M~������}�XAa�s�����,��:Q�/�]����j,Y��� ,��s�(���������MJ�Y@��Z��Y^���k�5y������? ��;\n;�&��������������iDOM�������d.��<o����)����].s�hH�� �UV-#W,~6����|
C���Z^�P�1���u���d�
6�ef���(���7�@�2�)�� 
���C;���`�����l�O�V;M?�ic���)&�H}��/������GUAVxc?�[�mp2abQ���h��w#OGy���<��:O�/������[M�1=
pt��U&�z��Y���X#��V�b�|��5���{3V�j�j�����1T�.C���l��J��]B9��b��c<�b�+1�<�F�1�L�:LkH�\r��I^J��R��������Mw��l�l�/RYrK/�o�@�J�]����h���o0����\
T�}F8�,����T�vm�~@�s�����
E���i��L)��:
�P! )U�RU�K1<���[����������7�?�>�
���
�4=_����B�
�,.c�m���BS����=c�Ze0�p�R�<�M��_���'��
�+D���|%����_4F�!�N��4]EZ
��$1�W"��d�z����t�,�"����n�MJ�=I�jc�)Jd�	��k�M�����������\�;s��i`9�W�P�H
Xuc�W�U�HU�Xj����"W�����cS;���~z��\��yFF��&��v5I��z���3l�PV�}~=���l���K�r*����m�\��K�.�.Z	�����"���c'��P~��L�9�x
���V!��'j>��DTb��=!��� #r*o����2���!���AG�<�
p���	���EGbg����_}�����F���r���e�Fm��qy����Lyzv��i�H��ejG�tj�x���6Rr2p"�@m���$u�!��G�t}���~�vb�A���<PMD~��g���,��#�]g%B������3�r(���U��j����k��� ���#:_��?��o}�0��n@�~����oj�'?��'�����H����Vk"��U�*�>������\��Z���jICz���c`0]�
M�-;���!
7�J��n@2
�#n��2�����A���8F�:�y��i���u����&:���~
<e�R�i�h4'�%D�I���Srn &��q�MH��0�T���m�A�>�
�CG�D�'c��MZ�u������m'
�	��]�|�i��,
�1�����(�wE{��O��<��7�'(����
��w|@�q�o�[�!�e���T%�g%5��o����mP����[�z��(�U8���tNhE^�5�J2�N�f��|kY���m�y��!�J�i�V�<6d����LWS�IA(�3�hM[��y�Cu���t������BT
Sm�vQ��V�kZ�.��
�6:
�K@Ac$����L����e&����y��c��[
ia]����G����Sn�j����peAW�Q�xP�rBF��(��"�H�*Ge�oY�/9��T����{N�2�y+�mtR�
O���oc�U;�?�B^m]��V�
f�P�"�1�9.%��
Frp����������W�p��3=����:y5�E�D6K�U�b���!�!{2g��L����c�������B�:�����������39g���'����@�E�:���f�nn�E��PM��]����D�%�-&���j~���u(���w�{�BW��J��,Q�[PV�i)������<�x�oV�*9�����Q��]\��PP����T+qS;U����.���UA�lr���������QqS��c���]�$��&1���&���d*��)���bY�9�&U��B����F�^� ��V �$�����BX3���ZV�����s(1yk�#�V��	V�r�wW%(��zP��1���"SG�eX^;��`��~#�R�!"d�2�M�/���PU�U�����`�E/r���K�.�U+�Z���wd��]v	�%`���%0A�
5+l��;>Z|�u]�UY�f�+ay�3��� �Y��>M���I�}���y��j���x�~���s7����m��Q�/|�2���g�[]'���{�=0 �g����PN��d���;�h�W��}���r|����,��*E'X���fO��x�> �i��*�;���miD���������3�L`���D)�86:&��}t�X��BV�2ur��>U�
��I����du�lGx��K^��HF��������c��7�e��U���O��O,�O?)�'�������L��M�dL���?f�If��gf�z�&�����B�����jT�������:	j��t���].`m�v�����}R��kt�4Zc�����Z���qA�k�y�V���u�;R+���&Q����-�S-Hu��f6x&5ya[�[+>�hbZ�`����e� ��������\����6\^m��F�
���
,Q� .:0��Y�U����w����=��K`~g�Z(Aa��{	����������]^~}]n�%��r��t��CV������r�HM����G�-��3��2	��\�U��r��s�!b�,@E!EU�X�^
E���Kmb��v�����gR��Q��h�)��I�1
Q�'���T�L�E�R��@54Y#��c�������\a���[)�o�+L����U���y�2�.������3=��<Y^!r��c��-N�����S���tq��,�N
X�����H>��h.F�uO�J���H�U���Zd jY��<9�=$7���������*{1�k��H�Hr���87��%(��O���C����y�5u�Z������/�e9UB�1�@-j�l��<�p���u�K���J�]��=��4�u
`����>7���a�w3�;�����
��B��P���f���U�+�	��X����v�������S�F��U{�2��Q~V��"����Q@c����]�����f�Z��n��&�0��<�'
l���(������8:M{��V9Z��z�}���n�+_��%f��42�����@ D��J�c^c�����W��p{��@�������$�V��(R�A%���i`*�)Hu�����*���b���
��m��]�s	�`������n��]v	�%�n%���"�S�v�Y�d��e
�PM�u���3�����iQ�k]����>�>���F6a�NY,Q�
�\R��~$��}D�e���Q4c�p���������kw`���O��?���}���bx�
����KM��<<�Jn���"[��6�$&d���t�x���LL`���������K��������K@m7����+;��+7_'2�-�u���ao�!���t�I����=F���S=@V;��r9��$U[�K�BV�>�t��=������G"]��5j��c�Ju�B�����<)���L��� �st������]K��Z��6o�����j��PR�������,2��t���,����
,��/W0K-��@�������2�]�K�G���/I���$29�kL����]�������z����Az�e�����8��tt,<U���W5�M��b���W�r�qy��G�: N����suvl�e�J =�"�/If����k���d`Ap�/������Sf*>.��~���4V>�K(�<���-h�=�vF%��K�#&!R���9,�*C�0���H�P2�jA�kS�1g���g�.sa#��Nh���:
����r^��H���C5)j�s��c��C�A���s]���h3��	�
��z����A�>O@w�!{�c�<-�����H�4�w�����,��Z�Om�_Su��J��]i(t��g��V�"��B�U:9c������
N��.U�B9u><�P����:v:�26�o��s��q� d��;x�v����Yn��R��<���y������W�y���B�t��E����t�k����r����j��q���Ve��T?�T�0�>�j�72Y��#(w]]+w\U�a����*��Kc��j�)�U�)cK�U�
�E�\Zm�Q\AP_AR�\��
b����ta�Nk�J�3ia���t�o�Yl�~B�r��"D�y����DK=�t~a?������[a;��5�����#��x�4o��[�^��U����pP�^;�Za�|�yV�IUZ�����g����[�s����e��\��s��L��,�U�:�Z�eHsF�i�y#��f�rn�3�vO��4z�X������R�6��a� �~�)���4L����tp"-��&�)6Z�����wc�8W�z=��}Nv	�E	���k�k������O�*.�������K�.���tK�0�/����+v���x*j�i��0�b����UQ�r�3��������:�����)����o��]w�3H'��8��x\RO�L2O=.�SG�5[�1e��uet��r�������$�q)
��vi}�{�5����S����x?!������l��h{F�������lH��FR
(1!	�A;�T��m�F/�����(=M� !�~FM���^I7%�_[������S�&�����'�w��h��e��?z��9����6�U����Y���'u�� 5W���|Y�>y��c�%�U��R������,�T��:=�U��(�H�|j�;,KN����%���$�g�T_}��r��p#�R)�)�h%�Zb:\�����|2�
T���F��=P�,U���T����Y�3�Z������F��vn[��������GeC�7T=$1�����P�?��/T�B��R�����ig�����R'P�*��r�����������1��E��L�$���tt�?z��T����]�4L�`8���]CN
i�i��2��l��Y�F.����r�i���zU�ClY����9F�����
T����]���zY����NO�xQ2��TKXp>������_A=���Y�\:����G�P���3.���s�����wNH�=9P)�0���2��@K �_>)�M*�Tn�N�
��V��W(\Y���rU�1j1�Z~�
^�$x�`Z���<i!L'&��S����s �.�7�M;�"-��UM�u���^����^�zJ��?��������I���!U[��:P�r������v�����	������c��S{FK�j��'3�JbXcnUl��"���
AzjR@Z�@n,�
8�������G�F�j2�Ij����m{e����k�����L�-��������#�3Pl����-J�����2��M@a����A�q
IP�RS��UhJ�<m1
�P�].��PH�S�]\
�T]���K�V��L��+u2�S�N!)R��rD;�^	��o��@�-<{�y���[���-�!�4�V��R�RkT�����c]�*K����`�%�� oO(�+����]�Y	�����������@IDAT+_��q��5�}.�"�Ow��
Vm�/�>���K�.���
`�����$#�*���@X@Y�`V�����(\���>�#�OD���+�D��,e��@�s��[�&FR_�!�=[�*�jP��'$�s�� u�xH����/J��o�}_���J6Hcr���M������+���6J`�v���Ip�.	���:�:;Kv5<��<�(r�#2���:���K�4
�AT��
@iT ���Y8�{��WX�,���X�e�"_���5�=��L>��L��%��#��.9��i�}wl��+-S��L�d����%(���o����@���	����xx�'�"��l
n���?!'z��!���Q!��j�*�,W����;:��;��D{����
�;wK`�����M�j��V��~I�Ijjl�U��v	���'��������j	_�����%�`�R�H�a����^�kF�c1q�Q0q(Td��ft5�G.��Q�<���b���e��hf`$�q�,��N+\4�
e�����Pi��pO�y�BP�R
S�@A4����e���yrY��B
1�m�N�cz�8�vju���0U��_w|���P�K�p���}Z��a-g�[�����7b�P��~3���I?�<F�D����������
�h��i+��;���m`+����A��T�*=�
�A�i������)6D���+�"��������x��������JT��S#@T
T](DU�	�L�;h��J�W�+���?GU�T=H��r�3M�4�L=�xk�W�JA+��,XZ�R�i�+��[��-I����2�(�lG�~�a��<W��l�A)�Gbr�p���@�I`��\�19=�������y,3S�^����7�V�>	4U�~����*1�y*�k\>�������~�j�,n�U=���>)�����8|q��|���0kthn��]�����/����m��e�<I�6��^����R�3�0������6s����dK�W65������� @���#��C'>�Sn�_#w_]'�v�W\��R�M����u�)�O*�>n`������{=m����
d��TU�vc�^j��QNW��o,W��u�h��6�1��q��
<�����p��|7.M�m�K�=���v�<�������`��<��}�`w��q'�������nOpK�1�n57�7���})9=�u��V���h�I��H�q&X�g������(�Z�R���z.������9E�z=�����`���=�Gi��]v	�%`������U+�@��T�R�B�*�� ���8vK�0��-���3YI~�����#"�%��:�oy����s��������	I|�[�}�)������.��C���V��s�����>N��o���}���
�f�x����&Ckv�����V��[$�m��BW���6��v�����MRL?.�>#S�=#�����������������~�m��so�C���������J�����J��>�$�����x�����a �	@����Qo�]y�3!WN:����8MGYa�N_n�����-��O�<,?9���~��xAze�^���&t�J.���_����VX��5Uw��Ru�jq���2q��0��|��zjQI����Oe�8����~���`�n�IJ�E��mD�d�K�"��y�0`�L{��h��U���vF��k?�uJR�z$=6��M�$Z�i[�4y��������G�V`[P�W�I���R����X+���
n��jM�
c{1��C�;�������(���g�,Jtt��f�4@�5-�u����Yz�8Pt�R@!3������Eky-Y�'%�
U:�
�v�,a��Ev�~��_`����tl���Z~��Tz���������;��E��<?�2p�v~�z�
���w�*���[$����9��!\��c�!���e,2hl�FI3�=U<�
�b�x�:7+�v%��0r��'����`~��4�T�!���*l�����o3)D��z��lr�a;;7��X-����/�w�X�:��g�(�I�)GOK���O���3+m�j��V��P�I�����x�����T�� I}u�@��W>�!��RL��BD�J]�
����?@'7`�� ?3�
��������A:�@'8g)���4��s��R�<�3�g��I��3��"X6���]\��roS���u��6�w0�(���q���2����d
i��e��
g�,����-@T
Nu(L��r���*a=`����
�Un��j��y�F�9\�e
�QE�l��r�9�'Y�)�J;�F����=oa	��O�*Z[U�jU�����-\{m���gfc

a�
@�������|�:�������h�'�O.o�S�)*����w�86��e"��:{&�����g��� ����{������/v���ru���hF�b(��������?S��,��BeY���c��:�
e��++����T��q�>����V'�1�����g��E-Dg���(@����T�y�#��`���'�xO��?�������M$�H��9�c�
�r���>��N��\K��}n��
V]�W��9o��8��}$v	�%`��]v	�Y	�5X����6��<��E������]�p�;$�����W$���H��[ �@��������{��I��7�3��Q�e�����q���i�9sF���$������ �U���N��������v�x�m[�����[9���V2���+[~��J�&������/���Kp�	��B��S5��V�Pi��i��P�z�y�~�Y�v�v���/�
9Wn\#5�^/���N[���]�$���������s?Y�����������O�zR�-���[1����ODG%������s����;��ji�n������V�U��G�G/<` ��g^,��������������8wN������(��A�|�^������X��z�� ���0���s�?�&���?+I���;���'#�"���������F>�<'�Wh&5*]�y�����u��e��n`5w�Z<�
��ooC�xBt�E��5:,��>qc�e�Pj��0%�|�k�/�����h�[��})d�������,�[rX������K<2%q�IR�I
0M9��*Y�$�\����[�<k�9,����q]��M�9����,>�`1�tZ=n9�u�\������Eo�L^S�G[�Nm�A��,(c�7��������D�%��*@�ore�������GD�$F\�X�3a�[R��(
:��<zy9q���c��Ja�,U0Us*X����bY�����t�-v��0���/M��Z�e�J:��jn��W��f����2��elZ2j������T����*���j����&8�������%yF�X��I���@����y��K�F����56AYd�S�3����������57�=:8
l��h����f��TR�Bm@Q
R]�|�����M�Nc=_����#��Q��
l�.��
Ts*T24UZ'Xp�E3�j�ICU�4���Z�&X_��E��}(��A���jH�*D�6��'K�\��Tg�#Eif���K�b��q�� ��Z������S���V�6z���HN��)� ��X�c��JN����� �QQ�������>��l���vL>���R��K���<� ��P��`%s�;H+�;���g_�t��z�f"��Smrk�l���q+��J6�]*�����N��
d�����Ce�!0&����4���lBy�����.�P�I��=U{x��!��*�������
QQ������������9��f����T�Li�jS��[��x�|�����\�
�F�JS,��%D�Y`��DP��|�t�4�*�ng6*�C�U����Bm��=��m3i@�DZ���|��9�te�Q�q��
x2�jVp���������!uU(J*,��4�3c&o���pUtZ����2p���L�����:&�n~^nm������D������6�P�-
;�'�r�`UQ��Y��*�Z�t�e�l��b���yv	�%`��]v	�C	���[�C@�z\9�5	�f?^;qn����q���,��1 ��������x�_$8�]!�;����~Q<��������S��wa��Ec��.��tN�
�
Q�S��!���Q<7�&~�<[+;���~$�|�?I&9�����w����d��7�DrhH�P����o���%��QF�W�!o��{%|����e��%������s���J��o.�Q�r��?H�����[t�X�����T�9��;��NT�iY~��s]���y�������:��G!���� ���r��s�0u�u� ����HK�&9���3���c�%�����e����C-Y��1@�I�;":'�4U<U[h���e�6:�wa����������8��[���Cv���[��M
`i�`�L���FgD91C�P6>�uf�h
3��$�������(-�m��6��Q�Ue��4H+��+�{�[�tj{����y7��t�aq+Du�
ea�E��Y��D$��)~�[b�I�:V�s����t��
��/5���:��������?'����d�����~�
�A~�����pyE�|N���ZMm�T-K���<**L;�Q��Qj��HX�W���X�2!Q�Q�[��@8�
!�$��Bs�f��r@�7�eE�SF�f�Q�����}M���������M;*A�����^y��@�4������_-5���P��lg������T�C��)�#RU�o�V��/t��$�Z�o�>�=#t �fd�:�����PU-wp_�k������x��2aU�]y�
TM,���rz��fS�t��4@�S��A;����k��`
��e$|z�Q�E'�
�3�RXJ���&�����������X��l��k���t���Ijd������MJh���zo�)��������(l���
H\�m$J:rU��$59R-�F�����}�U@aW��U�������k�n��@�� _�5���Q.Xn?�,�R����G��T���H5��[v�:s�~���Q5Si����0[��]
yc�e`+�e:��1b��G;��������K_���JU���|�:���NK�4?[��2S����e�q�5n�>r~�\����*,��+t�0��6f��gVW�1���>���Y�j"j�����O)D���3�Q����k����4jv��U;{G���Tu��R�B����+�y���$����r�s�����-����@����%���k�O+\n,����s�[������SbG��[;���[���x����h?3+��[�J��[m���<[g�+O�3X��<��O*�Ce�It=���%���_<D�^^��Ry�UA���.��2� WL����b�1>W�+��EU>���9x������>�B�U��JIK
i
�T�����:���8_�����;�j����<���<����O/lz�r}�3rk�s��n��G�H:��G�w�H����thO">|��6�\�V����$����;wR/*�~?D{}�l���n������vS����Od�&�
�"��0::*���� �%:;y�.����Uz^�������588�4��qy��W���MZZZV������l��u����f��]v	�%`�@�V�����Hst=}�y��i������]-7�x��h�b���|�QA�e����:��o�S�o�2�������e��A�%}������T�SC}�VJ��������1J�J��n����%A��vS�C�����[���,��q��_����'ipx�i,��6JT�W��Y��q��h�E*�u�T��BT���y\��P����%���qM-���7�AB�=���r��V�W�=%�z���������x���5��7~H�n��d�c����;y���%�u�-7�C~��KJ'�������)YG��������d~�f�-&�����%�@Q%�o����f$�*�(��Tx������R���JVSE��w�������VMY/r	��WPum��k,���O�1x�`*GwB\L[�Va��ie#���S�;��3p�]���L�!�"�$bT���3�THb�:�b��S�������v��E�D������Q�@'#UA�$�6�a�*#Y�4����Z��+I�u������2����;e���i+&4$Y���h�dN{����{��_ct���������O�����!���W-5s)�VP��%�����3O�����?�%��gdh��V����\�]:�����_`S������G���@��U����X���~H�d�������C���VW�&���BLa������c`!UqRxHS ,)��*O���,\j��LA,W����,��Kv�����R�J*�N}'�}�:E���J���Z�[$h@�N���N��-r�r����<���nF�����Xn�t�����J:�������
�F��a@����^����M�Q���~���UbG3���c	u*��c�l�EqOv\�'~,A���!�%S5�J��������z���*L.���A������&��c���P���!f��u�t�{���*?��[S�!������rc��r4 �|Na�D���p}�E���R�Y��e7�WX���P��|K���#jW���*���H���^��<����Uk1M�9�����e��U�_�h�7��9��</�(*pfl
������P�J��'���J��I��%��iU�{Y��uS��4zy��G���V��4d"�Jj}J��gMk���e:�0]���v�eNy�$'Z�N�U����;}�k�{�2u������
�x�����(���R�3`�5��J����^/�*��2H�e���.(�b�
$eS��`�W���H��=��M�@�C�u�-���*�5��
�-4 ��v�!�u�m�(�i�T�+����C[dJ3y���{&U�
�T���3yM-(+*2���r������U���&�P�k���,M)U�RpK�:�.%��&���=D�TP65x$@����xF�6���N��o�9��20��r��3e���=�{�!��Q0���s/�����
V�->{�
J@������f���������-������#��m����s�=��������O|B���o���s����o�{��Wn��f���?Y~�������_���������~���}�{
�<�����	���>'��/��������y|�#)��~��~I��93{.�Mcc���]�z����Q�n����������SO�|��Qo{���������i|��_�����0����h��3��������:��'?)[i��]6Xe_v	�%`��]v	\%�Q:�
E�;~Z{��D������+~Y�BM���	���������/2��`�������mw��h,��idS��IFu��n��LU�8Z6��������BG#,<����vmF������c��'X%>���r�^a��Q�L�q_�_���(�	����c
w��:,UW�@�+��*��J����+���O��,������>,���X�.�������:�wi�XE�-�R����o�+;��-�4��O��g������rz���[o~��|q9��(#?�A�G��[d������[K�O�rCf
�$����P�m5���X^G���2�qKo<-���L����j�m��v�li����%�����O$���$?>�v�+��>�������f��DajbR���t��5�$���G�jE
,��t��u��vUA�V����Q��P�M�G[�c�L\^F���w�u	��W��
K�X�D����k'%5=^�'�_��=��c�6x���o�O|��5 �������%h3V=��g�E�uL�'�����$0x���N��V��2�H��`�8�l]KV~�M�9�$�� �A2\�x�E�����xX��*\B��������	]!U���+�,k�<{
$�F~*���$7ujv��L��	�fU+#�:I�x??�P��l�K9�V��W�\����	/j:���)_T�)���
�`@I�
���#tjMV~*�)���|�Q?w�RFZL��x����U�R���#G�����YFYV\�N����U�s�;:.H�0��'=�r���-��j���w�
�����iZYV�
��#��*V���_�3����u��j��aMLKh/��&FP �$Og�Nk>���g������+���>%
rR�%�GIeC������j�c���a���,Pe+:eU=�R���C(�F��[�uN�+59GX���JUh������8�U��M>�o~�K��Cm������>t�����c/�(%�}��=3�<��[EQ����~hW��#�D�frQ����
�\f�j}x1@U^��fde������<���!��
Nc�W�j��X���Zy/�Gj<�������ke�dTuMA������^���ZaWW��',�n�n����:R+9�V/��-���T�_���*�ya1{iy�|�BqdP�
����U���*�
��;���:n�E�x���T~�N�:wJ��,>~�^��w�u���9#�T7�qql���#z	c�h���{��,V���3��{O��S���u[���Mm��-����W�n� ��n?�OW��q
���E?|�{����X�$������y�{����nT������V������b�}�������g��~����'�-^O���~�|�K_��j��y
R�����#�U,:$���g�J��w���E�r����������1�r���'��?��r���S0����������������2`Z�r��o���u�l{�2,���t����K�.�.���/n����c�`��\����
����m�.�%e�%�����CX��.YvK����`���!��*�htM���{���n���t��O�O9�������/��������t+ZO;d#'>N�����Z��GR�	:Q*��B	�TR��Js�5R{��R�����%�~���?�w����V������_y�����#�>'�{���h���b��t�����]o��
;�j��|B���O�����S�v����w}H2/�W��$��U�����e���w�������4>��Y���;�=��T�4*"n�8����P�y��CX���[]'��{��Ma�r��w%������^��/|���)q�~��%�q���:
�v��{��`j���QU��Rn�+��jT�M(��$��C;GP���$��'P:9I����$���Xy'�'��o$�=���������P���Lp�9�	����K$5��x�{j\Rc#|��(�����K�����B�jx&��Z�E���e��.�p����C���Jh�\�]����'f��KB,#y,�F��!_i�b����QJ�<t$%@vd$�
��q�P=P`�\p�;��x�vn,>c������F��t��hn=}(�n�x��	��U��W���,�;�����FX��3Q�Q�Gc������y+U@sz���.@�?��R��5��@9~�a��Y��
����;�%��__�� ��Re+UI�]�����hD�S�F�{;�=<���*N�I����Y�M�9�
`�(��uV��U�r
E�l q��}U(P�H�*Q5U�a�bA��mk/_�<JGl�4�j�t�f"��A�4:g,�T����aill��T��w��u��DR��l��"����OKAG@��P��A�������g�g F��)��7uD�T������AKn,8h���6	���8�m@T���T�E;�S}1�J��QY�����c�P`�4/_�hY���A�^^��}F�&�&��f�&�+M��e�]3�������t�Ph%���_�i��i*�a����jA})CSK���z�������*�y���jm&6�h]^�$�
���no��� �Rc<��l�)@5����+��*����R��z�����9����O�Jv�Q����;r�Z�U�8�qzWy���<���=3&��,{o��N��m���/���9p^-�=5{��P)��(����3�Tz��x����u	�U���L
%��������E�y�����`����������������c��y����~P���g��zzz�U1��`�w�1��?��?���6��8������k�.M��?��~xv�������fZ�3�3��>�����L�-=�7��
f��h������:z�h���l������U���������B(�
��S�����/����q	�`�e����n��]v	�%p����}q���=?���C�c����~�����tD.Tr@q���CH��B,�4����6���]�t*����&��������O\�UF~�cy���L�|����O��yT���k�x*8�J������y�"����j
((S�^{ �aq��o$�y��l�d�O����{p�^�B{����?~H����$L����}����3�#~%��_�M�Y[}�Q����K&�&����G9u�D��
X��-��_���d��������\���][/�~���S���	Q)����;����]7 �{Z��w�R��(�
��N���:�S\���>&���H�G�ad�h���m�$��������G�"m=?�R4$b�7���{O���W$r��D^D�������S��f�{����X�T����KNR�i�i���DODR��H ��A!W5X)l5?D��Jgd
�@;�%PQ	�^F3���?3���*.�=��W��y�����<t�I��V�qD0���2a�.J�cBA�sR-g�I��,��W��{M�.,4�������%�p[�`�f�3���3-�������_'jT��P�*V&��\.d�������1����	_�O6��}�*ce��Oc���b(�s �E>vV�.q�a����YPg@d�U'#|o�����V%� S�[�I{Ml��1�vz�r�4��z�����I	���N�O��d���w��gf��
�eJ��T��RX�����u/�lB��T�J��>:b���)����������p��P�q����.��H(�����Qi�&��R�D9�x�+�\�Y�X�@*��Se*�y����5�m�T(�bKm�����sq��
[%z(.H��
&+`�*�9Tir�1j~9lVs���R��
:�6P�A`l��&z�7x�k�^�NTK�D��!����}�����v9��U"��>���R��x�|:�<��O�r�5�`���+�Q�3�j����
��R�`���*z������Bq�Z��TZ�T2����z�T����Hl��Jd�_j���m��J���QkK���Ze"gW�W�U
t�6a�����[�a*9/���*d�z�*��G*�scXQy���`
��{w���Fp�\5�\C�D��e�(�����W
]���pE���s��2.��a����B�gP���{|q0�A����a`������48�2qh"%���tZ�J�����kyFn���l>7;�[�[<���8�+f��������c@g@�������f������f+�w��,{�\	�t����
���y
u��/->�r`���)�����>e,���{�����������L��<�+���9����=Q��2,d`�`��Y0��x��f����oa0��6�k�d�@��$��4
3��y�{:��������NuuW�Tu����{fN�s�=7}u�9��~?���,�+��ZK8K�"	%��j:�G���TN�J@��~������`�*��%�S��m�<y��%`cc�����u�@������9p���R�2�m/n�J����>����ynXV���������&�/fN�����Z����V��?�v��4h�,p�Y������70��O��� q��@��P�nY��=xQ*$�NS�����5Yx�PQZ�y����q���!� n��}�?`�o�����I�S=T�:�T��=�Yxjt��G����B���.�Z`!�f_����T�w����\�UD-��_@����d�����}?�;��iW�4��]�q�b~�<�@��'�d��j��ez���""����
�l�;[�P���u��la����G�Cu�}ksvW� )�r
�&6J��,�)r�;c�������������Aj�!s���#�^N���B��2��8"����nF�'�=�y���.<��L9��t��c3A8�U\�1=�Z�y�U���4p�0���{F����`)wP1��6�V8:��k��t�%�x��E����I��U�#�clL���JC��T�jF�v���uR1E��!<Uo������A���9
^��F���,�!��o�Fx��������gS�A�]�`,�w(e�H��[�
^o��I��5)���MI
�50�����������$����p�Z����u05���T��}�G?%��� Z�=�R��F3�>)A��)*)i����|�I*���y�w���y�eLL�����
UG�I\��:;]����u���W�Y`��cv�����,Q *��^��r�:V2��C�����L�r�1eo�5X�~9�X��"E�d����T�!�-
7z*L���#��b.e�(�k�U�oy'^B�%�zS
����G�����
�|��Z\"dA*���Be8�ae�X�6�V��>�j��0i^H����d��@����j����#zq�m���VI���Ux����D�����y}�$�������&<����7�H�<R\
�2�Sfd��2���d��EE�JB0��8!�IW5x	:��w���/I�4�p9�uq��8$�����X�@��LgS�b�.�=����~�Z���^�s�.����&BT�G*��6Xj.��n�e��DF��|x�
� n���E����`��"���kU��2i���Z�T��&t%.yO����*���
�I�����*�$�����.=w�]��(��L*���i��NK^�ez���q_c4�D�����!�Nx��j4��o��w7����a7�[��B�j#���6s��M2)����)S�F��<E?��o�;��j�4�j9����<�����y�me����5�x��kV	�����`���� �P.|��Un�r��t���sn��y�a�������g>��-������/����}�6%�
ox������7H���Sp�M6?��q>	T%�}�{��isa1������������r��?�x��[��3���;s�8r��g���U����[P������[���Y@��f����w�J~�H�w�{�����ID	`[�]��v;>/����x�f����0�����.����� ���
���>�@j!4���Ky5lMm�����.�����M��[!�Z�+������N�}�YF!US����:Zu�%��v�7n����kr��9�SC�pz��rQTz#+�����E�R*�1UoZ[��������g�P^�x\h������/�tu���������������VWjKI�7���QEe)����	���!�
(Iq�����Z���������d�Q�D|�G}���!�F@����g�������a����w�/����r����Z�G�V��S����{����]L>���g���Vx�7AGpCG�@G�J����2���2O`�
��z����D���Q��tv�2�1:m��Q�e���.k9GyW���n[�g6S�4|�	�i�@d
3��9���?��'�������{�]i`�T 
c$+�c���J<�X����L�<�-\�6�Y`�-`�=�TYNw����1;"s�v�C&�{m�I\����C�,Q�bJR�I��Q�T.OS��f���[��z]���3^��:SI���=H�Sw�B�������s'����n!�����Z�]�z�c?A��?����� *��w��';���O5�S�3��8��e���[J�j����/^�1��_�����&BV���Z�������.�����mW�^��f�+��W����U6U.���4�	e���/�XLY	)d1XkR1Z�8]�����b��IRE+>��X�c�3��eD�������=�x�
U��;�/����X�. �U�u|����?�(%��@F�
4��Di�z
�R��+�V���W�~5J+Z��/������e�,Q��-�����S/��^8R���x�X�������		C��f$����l���-����)c��q*�-Oq@�����������Z�.�9���B�g�v�6�V�K��H��Y�SueZ��r�*$|G��:�3xYf]�
l�s[�-����<Q�U/�r�m�0����O��>Dw�I�����V������Q@��$���m��C��N�G�^�����x���9����j����h��=�w�>b���f�"�����N���F���o��X��h&�U�bz���:�����i:��j��mQ��D�]��>)�)Q�b[`2Ne|�,��_j�N~���n�j{����g-�������������Z�U����.�!B����v������-[��sq���~5)���^.D�:44q�������~���dZ��]�=���
d�y���J���{�)p�'�J���*Q��-	��������VS���������������g�)�m�f
�����4h�,pX�F�r?���#x��'��o��u7����)��\=-�Z��K_D�������'�a�n �B�@�Yx�`��P������{3.��c���/�}+;<+GC��i����v�6�D������5F��NQ��T���.r�/����
�J�c��u=~��
C��2����{�vl��?WWW~�e�c��!�]�������T�J�1��sq�����B������F��&&p�3�b�{�q�>:;a|��#�V��8"T�J-��a9���	�G}T�Y�������J�:j�X��Lg���/���@�N�J`������]{�;��U��z'�1������d�B��1E�*��k����cud"���S{�c��HS�Xp��~�=���SH�|��C�����������xB�����wR=G���!������zvFx�)��3�����d��u��.1�&���3R��He#��366�����.5�A?���>��j�c��n>�
������.;�6�P��������������2��*~n����`c�b��������h#���"Mu)Q�JY��@*Rvbt�$�Oq�R��i�n�
�x�`�7�D��Z����%�|������\��/��e#ba��������%q���KG	o���I��N�r8L]
7y��)�HTN1MVVQ�'�~��	?��1v��`��:r���.#�;��gq*2�By�N1���s��6���NT���>XjnM����E���@��i���3����:v^G��k�F�^�`/U�������p��&n���Z��mq�tn�7`&-��.nU���'��v9� �E��L��i"2�����w���g���?��(����1� )>�8HB�L�����BT6�33/ ��&�T�J*�^b��0�� z).��[A����U������O/�y�y�Lc0X��Cu�^�M����\R �J���{9PK�G�dZ������%����@sX�!-��r�{*��U�{��RgJv�SV�T��V�`tT���*�1��Q�@:�BlF\<^������j��
���� ��|\_�`������Q�I?�P�_���oNL�\���\
�bH�e	�mf�����Pn�q�Y�1
W�lT�%�%
XY���+�����y)jh�P��)��Ou�#�����X���-��[]�J��������?��"�<���wA�JXV��/��p�����^�?/����+>�{����k_���b���\!3�w�V�V��w����S i~�l>��@K�E��n�[�.�P��r\�P������7�7U>����7�K_��*��h(f
�*f�L��f��4�d���*1�Lx?�k@;�sA:����4W�q_�|q?����H(�{�uM��e�m
�*N9����ZWWl�lDh����G�b2#��/�Q��"�g9�����uY�A#�@IDAT�nMk���S3�Sg�����s�S��S�]����t�p@������;vs�����u��+R��9���#�����?N9��!�$���j�B\_��f��e]W���h�@%L�����F�P<@E�Y��������?}�����qH�[���;�ecG�N��Z�����q�� �����+�d�a������Z[O7c���y*�b0�t�����?G�%�J��Y��7t ��>U*]����.BV{Q�ZpL��?w���(������$A;���
�r;�n6T.�K�h�(mcpr��c�ZV<Sh3�Sh�a�p���*�;�A��j`������7�6�	`�e����e�(�EG5���f66��f9�/L��?G������8���u�}V�����d��ef*6�U��28��e\�4��G��v6��"|@�Jp��Q�*���sG���57�22��^R�+q�'��f�+`e]�I�R��M�`���U�����r%Jy~�l>����ly�2��d=� ������h�
���
&Q����V�F���R��8s�82|�����LT�cj������kN Kvp0.7�[�� ����4����=%H.�4����(�R2�F�4�� ��	L�^�1!4%����~fV�\X���f=����w����{Pu���������u��H��8�����Q���k��� C����0�����{�����k��w��ekn�:MSy"�}q�~�}g����K�^���������
}������D��+x��Qv���*��]���������������@�6.������f�t%� �f����1���X';o�m����,1l�A{����8-q�c�'�N���l%*�\�a�	[��c	�����m-R�$2V��~�1�OPNI���{0-��')_��$*c�X�g�l*6Hs���Q�e��:��R���+TuT�^�[��8�H�(�]����l9���|�d����������[����|��T�����s�ay<eD�JRc�.�c(ct����5���oq�Q�R�MyT2O��@Fv��i������2���/v�m$�/��G�q�)�U��FR��V�,/��a���eXoVmK���o�35g5�Kl��*���*Q�p�X���2s���X���GY���E��T���B�J�q���O���������;�����y�j����U�_����?��?��>�1�h>X�_~9�����-��U7�o��f��4h@�F���4��J��qz�`�nv������S�`^E���-:��?��.7��v�OQq�
IeTE2�]����H�� ����{���%t5H�*��h�[t����J66� S�@�9��'6$M�4�U
��0=S�tO�b(������C����n1z�b�	R�LE��	�r��pA�i�����F���:��4���a����Yah�Io�����IYw}_��0�;�3Cp��$l���a�e�Sfoj�m�fX�6������e�Va�PaQ��#��������U��N�sG&h�+������)�� �%g��/eV�R�s�]����u�p7�T�]�p���L��8H>)����d�|��XB�el8���)r�\�6T�bK�n��v7��T.���@?�����=���KA(?�N���`���ST���G�NL�ct|�c��Q5j�`�T��e�'� n�;8w������C���A���r}� �G
$��0���v2'Tc�2�����N�[��z3F�lHr�!��)Fe�X
�(�u�����@���m��nQ�bs�j��iQ��Fn�e��j�T"�����[�#�l��3/Q���5s}�i��m�-���Uja��VS���G'�K�V-�� ,uo���9��k���&���d8��Ai�2�,��UF�l�L�~���/�(u�H�t�9#�A���;�f�IV���M3��w+�,�x�jL������&C�������
}~p��
���*#��9�4O�=�`�\��ZLv'����g�]T����UP�|��*L*6�{U��-���o�����W�;X��c����i��<�������uL���u�*/}�������w�����.����F�+y|��Qi�y���L���@&F�Vi�1>�U������s�}��6*�*�����X�w-���R@�\���l�?$0V�p��2q�g"lo��
����8m�T�f�1W��;�us�dS�o���=2IQ"���h�K��\N<o0~�Tbj����0�9�|�0F����P�t�����U��Eg����h-'l��!�0P���`��H��X���4rK����������	v*d����z�S~�3�18��(����%
��v`�����r\�����J��7�"�*�\juSk���5�v� �<���py������RK��`������~��E��&��J�]���x�����I��t:��/Y����B�*���#G��o~SAZ9����\����M�IY�0����VE"���\W�&>?�D��#����V	l%p�4���V���V�Y@��f��n"�f��km���x��������Q��~n����?��Z���@r|l�b��@W9brh�����5FE8�l��o��dG%Rtq����������h��PG5������5*���?RpH60d������
��M0o�S#E�v��ap0���e��	�^�~
�mS$���y0���&0Ma"Pe���T��V\b���`�������@��H��n��N�>(����*���d�2�O#z�0"/��Lo��f�h��*;.�����K��TsY���M;O9e7�U�����
n�����y�c�������$�|�S�,��;�W��2h�Q�	5�F�VU
���JMN"�/����_/zn�5����0��s���Xp�x��1�Ji����������RBe�'��9������8����
Yz<��x���
C�z*��k4c���,y-�������(�h� 3,f+����_���`}���r�0�����w���J���
T}2��arK��uv�/y��A>Dqd�������3��+?�*PY�� �B����s�������}m��tV���Q�K������l,����K��#�y
�3D��R�!q1�UX�]S&EaI����N��&#o<F�CRv��(�xI��X�hu��m<w��J�t��!�+D/��	�������M0N�!�{�����1��t5���fw�����������l[������J��	<IP�.�s���T����]0����^B*:B��9�T��V�Y�ep�S��v�Y������Z����o�$7%�@j���G�>�u�����CGw;��[��S��;�_k�C!:����f�V��l�4 /H-�����%pTZ�s��q���q���)>�|J�,�a�U���S'8��I��s�����3��������^��
�r�"�W,�8�C�+�$M���1q�t?\��K�����g��-�������t��T��*�sZ��4X�����B��Z=�,�A[��YK���6}3���������0_�_#�t*��V�U>���p�a�gk=����������h`������v�w]?���&P{u�%g����>�z��*Q�z��G�~�{���<��r�'n��fs�AQ�� u���o�-�0#
V���=�~���)W��u����}����X%��m�6���������~���U�������V���V�Y@��f��n"�H�N��.j6��~c3s�F���zl��~��vN�hX�R~?��"I�J��T�@W�g�<����6��rg#F6�^u�CGE[�$�O{Q��CE0�Tt�������0P�:���(!����"Sa	F`���j�hf�[;�Z��j����u�N���UT����
f�	[8fn�/��������[e6��`����h�h]�#4C$I��
�3t���P��S3����|��
��T��h�����s~4N��a���Gn��+��������n;�c��;��c'�fDOC��	����edvvV�$�M80FP-���.�����qc�W�a�����E�������-t)&.
cI��]��h�K�P��K�c�Q�J�(���c�A@�t���N��,�TE��`��`�2e��T
vg�QF�l�eHx�Blr��I����}0��5���m'<��7�S�ZSKM
����k\^g���g�J��0G!4��pS�>m����B]�`jFT�S<O��Y�z�����k�N�S��b/��o_�]K�Y��O���T�T*���S1v(+xJ:���I�
�:6���K�����������%��b��f�VF���pq�����p���8pz&|cpSER@j�����y���U��SV�2B�L=e��}��_���a���{�����C�o#���MS|�����6�d�[O�e|�y�x��qMV�j��Z����R�<���OE�x���	��\����]�Y*��9bf��	`�������l��vS�jo�:a��7�R>H (�A��"���������"#�B���u�U\����w�x�����0i�^�,��Z��T�Z�q��T��sMAS��XJ����������B���I����1�]%!��s���BWU��a����U���e����d&��t��p2��T�Z*��t�ER�nJ�cQ@���L�HX��P�Lj+B	�������	1C�)�r���wQ���jq]�Z>�5�Z<>���	_9Xie���a�
����������6Ri���1�0�x�|��9�E�nzz�2��@W�z�[�s�����|��`�l��h��������#Y>���`���S����J������i�RW9��<��y�����@U3���(����R>�U0��E�,&�0o1Q�MR�6���3edyn:W�FE1K���y�#<��l����
-�o�S�.�SXK�Z�4����X�����O�V?�o��o������_-�}���������U�]w����dB��


����l#���-[.�a����Mo��d;������-V���o��}�T�/|�x�[�2�����\>��544���~N�J�ZJ�^�X��u�y�4h�,�Y�&���ntZ
3��G��WQ���]ik�z���J�S�B�n"�)i���@��"���"���d�j�h !�F�<5�(����qbO#��+^k��8N����$��f�ac��
z�	fO%,�lT�kS������ Y���/�/��1�9�T^
;��~��&T����`c��M0���ff���`2��|6e'&����D��8�W��Vc���:L�8l�jr*�t���q���0ZmGWm����3b�����(�����8L���p������������Gmf�zg��lEkc�C��?��_}M���B�*j}�x#������&;�f�|��6�T��X�jIt���4�.�t(���T
9;v��qLSI�����A0�p�f��5�D�-������'=����6�\��[y*���I��(VE��6�3{���f�������;c���������7�wyZ�,p�[@O����upn_��=[����bt3�9�� ����b�0�����N>��}N��o���&��=>�qBTG�N���r�=-.XU`�{-�v���2���g��M
��S?W0����T����?���AX\ye)8�@�����jO�eUE��r�SS�9���O@�y���'���<]�	JM
^NH��$�\	��W(�j��Zs�����.)u��jE��ra�]�/V{����BQt�7I5�P!$��2s�V�Qw�\��`Aq%P�$b�/ 6!��AJ���`�
����J�)�ww#9$jS�H1MSq*C���������A���kY�i��
t�I��b!9@�U��y��j��E�\�����*���
fLG�nx9���e�#s��r���[���*�y�<Q��NK=��j�J�r2�z1Y�pP4�����j�|��2\�,#����t]SK��j���D�D��7���5z��EA)�"��#��.c,|�����m\�9�����|'�og��{=Ie����Je��4[W���F��}2�\��h���4o������+�H��K&/}W��	��at�l(�6���
F�,��ld�c�����"H�W�t�\�z+9�J���S��4�o�����7���!*G��"#��Y�*D�*��� �#,�<����}���<�#pO�<�`��I=F�a6���!����-/����}Z�D��:�k+W�T�����|��F^���\���J�<2�\����s]�yz��j�T�
�P����T��em���.���N@�Uw�����<�d��� �������V]�__S�Z}�*�v������`O>�$n�����\F��_��_��/���vs��w��������~��*/0��/���;s���|����������f(V��������X�����I�����SO=U0?�q�g��9x�3�����w�����\�,���,��U�,��k�,�Y@��f���K6:�@�:��3gG(:������@��P�j���D�U��g�4?v�� ��v$����!�)�Lq?���j\�]u�bKN[�t�F���~'�����M���%M+����16bKd����������*B&��T�5K=�)SN��NIln�����d*�����q������8GK.�})lk��{~��g�������|�E�^~	��GaCz���1�����i����
���OU� ��T��%d#���WFvR
@��B��!8_9'#�0�gb�(g�zE����o_C�F��l�y#;r��1bT
z�/��o���
72;U��z���KH�_8|����aC{^��u��������J�~v|z��Qxg�0>9�)����F0����q:4EOp����C�fcv����X���Nv&��f��:��y5-���L�b�l�4��������^�NY��a�����V^�z^33}�����I����lvh	Pzv����A����@��W�M����8��GiA�@)�9J_Gq����JU��\�H������jZ\X��A��FW��.\�=(�xe�Y������1og�/�(�����u36���+g���X_�,������6T��QX�*��6v��%U��s����f�zn?A�}8t���]�U�&�����T��8+�����"�����CgK�g���Q�OG��I�����x.Bm��D���E��'D5E��G�J���
���s�al�@���xSO���g��![��u�_���z���l(�GU����ym�U��I8���ajn)��b3�3T��O����T�*�V��Y����+� ���8b�rJV��!+=� [��p;w��_EwH+�&H�{(��g�)�F���K�B@�a��&���*��!�T�@�����Q�33=�"�l�(q��[[�]-�<����8d�8=���{�>D�P�_g!�"���P�}��yV�[G���2R���(*�,��8yW��d~�����3��\~6U��y�{����!,UN`������yt{M�Fg*�4�ErZ���~�"�Y`b�p��6��5w�������
�m��V���ta�q*�R����j)�JlTR%�����`t4�>�E�[���72�,������*��`��:�s�*���#���1��JW�4���t!�%�U����"�U���vB`r�����ZBT|�)[�~�R����DP �st��4B�U��29���Q��m�N��=n%��E}��)��xq�|(����w�M�j%�\N]
�Z}�*�o�T���|�#��?����J����>��|�\T�p�0::Z�����~�2���������~��?��O���|�\�|w/������t�,�T.�����R���*�`��_�j��rE�tf�5�j�,Zf���eI��Y@��f��nt�L`��q�(|�������i���r�������
s���f�[�)6&�<�=����l�����CW6�r��D<���U��Z�����u��P��x'�lR��$����
Gp��Clo��@�_����E�jp�'/��S�(�j���!����f*K@�@m<l��V��U��������g�^�d���~�����o��z7]�$�,�\���}��U�i��G%��T�`�3�|G4_�6E0��������8����
>����{k�>���_����aSx-����?�L����x5���*�X3Lg�'�5�����dfgaK]Zk��\����z�J_��������}?G\�#Jw�m�|���{�W`ol�����|�	u������A/�j��������p{�h����7q�2hI�/Y�Vp�Z�@�IO�I
|�����+Q�1�^"�V��"���t�uST@�5X`�SSG�9�zd��i��N����UCl�sQ�����9N������;�U����`��:	xY��+�\��Nc������W����u�nj�|�����]e�[N�+�t[[K��ZBLnQ&!���c�il�DB����I�����gyo*����<����n��pv��vK��.<����������r�=�5xK�
���;�/�b8C���TT� U7�C��
�:e�&�������6���Lp�J>L���nx��S�t�;��j��[m�m����a��
�s=�>�p�9�G�����*�Up�va�b!��"�3>����������Mp���(��(�a�?���~5���T.)|�o+�P���uH��	����C�\G��*�/�v��;a�N�������f+X,�?A��E�'^"�_�y�3RU�j����9��`�+�u�m�~�dUJeCorPK�7�Sw^�&�.+�P���i�g$���G�gTJ��4��r���t�,Q��r@}R��'�$��3t<���,�Z�N����'�����=G'��g��i�\>��:s��3a*�PI	��j�p��+�YG).����E$�W ��$���MW�~Z���B��C����D5\=�������T�"d�������^|�E��T�!��XK��7%{���H4I5@��IO0����t������n�E�"!~t������q���~V��k^��� �����*�D��S�vJG�%q	m�[�,HE�������Y�m����|&����5�uTr2�	����*��������������?����`�3������C������od]Q��J7�����T��\"�q���+�����RR	rO3�����R����("CO����\y�� ���}!�$�����?Q��i)����SI�m���W�M��n{%*WYe7C�G`+V�A�$��LS�&�L��*un��&���s���:��Kz���u|7m�=��W
�a!�(���xQ�T*sT��L��lP��a�i5����u��\�l��2�:4��J�����JYoV5�.U9�������P�����Z *s92	u[����U�/��UPA��lh�W����~����_�b�w����=��u���n���?�������������Q��w�����O���>��{��p�\
���W����~zn������\�<�s��}@�|���;�y�f���������������\u�b�����;p�������3�JU�4�j�tZf���eI��Y@��f��nt��ngF����!���Q�n�]o��#���Y@�@�f�S8���~�j7��<R�J7k�������q�:�5�reS���XW�
�Y�������w��^���T�z'{^e'g����F���`��������L%�+����y}������Q;!�FD<D�V�<��V$��HV������
�tl�gG��,c/|�*)���r;8�
a��f)6JF�lt��$8mT�r���QV�,������s!<F�'^���4f���&;>�vvd����[��}��=�F6k|��p�����F�%{�	\�``�g6�B`��iv�]Fh�iAS
!+�j;����5 �e���"Qv��xcO��}�"M��E!�)�=-\h�c��nZV��Z1����Q�����Aw/��j�t�c1�O'���*y)����u��K�6�xaUU�D��y� N���Iv&��&y)W�U��R6;-�����(P;�
������>f$�$�D���)�:���q���*������Q��#�P�{��}gY2D��Ivj��Dhn;�����5{�E����_���Nvd�!~�(b?�����sr�{\<����O�G���$��������{�ak���T���#1���h�� "����sp$�D��M1�2��U��N*CmA��k���$�1Me�i��H��[��'�����r�^��X�F��e��ix\A�(c���Z��;�*d*��e_�8M7;~�	a�q����a��]�����ho�,�Yd��S��k?�.��d��
��k����2�����]*������Z���7`�������48C5A?�+8��!�>CK��`����IB���[������=��_�4$����O'�y����<o*�"ol��m�����
&�< ���L/����/���?|S������B�����5��Y�L��E�(;=��aTQ��z*�K�Dy%��^Y���t%xfQ�1W��N��	���)�
�b`�ml�%���Tn��lN /K����A���~����8�c�3��r��It���s���Y����lAI*����TW�6���t�W�@ST�205R���������S��?M%���w�� d�!p���(q����>�
��������t����Wb0G�� �T��P�5$P���{\����m�J����O�����LS�7�,���Y��B���Qm*���Y�8L��BER���k
�����
�0������Lg3m����,A��+�����!z~{�����0�@m7AP�����
���0B����'."~�(�q	���{�	r�����{�����pp��#�Cj����a�c�!��8�H�������Wr��'����SK��p�����
��P����
Y8Q�"����x%A�����5.�%����=+���*d���Z	l5\	x�`-S�qw:��SAV�YHh���"�97�`�����}���\�R����W	��*x��KLK�^*h��o������w[�V��4����U.\�}��������w�%�T��o:::�r���x���!n�e������|����>�)|�K_*(koo�s�=���l'��'>Q�HUP9o�]�z����*�>2[��Uy��KZ@��4�VA��f��4����?��Cx���1����Dy��
oAs���2-�Y@����(��'q���8T�jW�h��������*b������l�2�tP�jc�4����{We�����D��8�shY ��5�Q���M]h�ie�n��;6}D}*/�����R����9(��!�44�a�mc���42�l����aY9$v���G�1E�N:���+��Lh�(�w�����cE���Z��a�?b��D
����]������k
�3MPe%�������x�+�{>������n�����g�^8�S��;�v\f(�;���6u���Z���U;�l.���x���+5��*�4��0��2��3Aq�Q,T [����$����W"L��n��M�ez��1A�fi*-*��g�^E���F?����~�o�-u-�z��>�
]���Ct�u��"����
���HQS�;)E�E����Y�<G$�fS5M�;;b�9����~d��I�����!�9�V:1�T��f&k������Tn���>��@�|^G�bF����x Z��Cq4�P%$�_��A��H�F��Q.�jQ��7��W�
������T�
�qL�)�G^E�|B�tI��T�e~�����3�[`mu����V��F�e�tmj���J������tU��yZ[\�������0��>X�pQ�n��L�9J9��c��1�'��3��k�eW1����WU��f7�DY[;��%]K+�u��}��8����?�T��H�\�?����m�ZB�]U6t������RA�L.�6�Z}?��������#G0s�0&�� �'G]����� ��p�(��'je�����
�o]t�
HS�(5�$��^��4���8�0K��}B qYIu=aF���j�B���{�]����ex���F^TMP��Y|S�;� �I�;U�����i8/����0*&QX��K`�t�	�V�������t���8�8��6�e��~����13����@V������f�t�t����<��(��G�jZ_�[�&�*�, ���K�D���4�aAY��T��h��I�L��\iHE��)���K��,�
��� p���t�e,[�koi $1s��}�� e�)Xx�/�=Q)R�������V~������<�LtG�\�����:�1�h?3A��A��|������w�-]t
��0w��� �B5��Q������%t��Q�Qc�VBY���c�q��{���J5�.$�sR��`6/@������|��#��DUK��IP�����~e����������dK�K�P/
1�{�"a�T����RF�2�?�q��^�Y&*�U(�*�\N���ob��V!C.`���fS����U�bz����F����'KP���~^/��>���S��P!T�`���tM,���������;w���k�+��G���+_�*�����e��{�U����������w�^|�[�*��
6 ��	7������~������c���q�*����'/Q����]��DAJ�~���T���_������V�������~�,?#�!�X�vm~��'	����?���q��������B��S��_QWW>������;C������e|��W�%}��������,P`
�*0�6�Y@��f��nN��	7��[��E/w�Cx�����a�\�PA�6�Y@�@��9�������T!H��y�����[P�n�70�c�q��K��.
e��[i�b�^0 
�tsD�
��;�M�C�
���D�QV�I-TH����v6�#P��T���F�����$��dt�48%���S���qT�D��k�����G����8��!.����C"a��L%��k������[��w�bM��3�O�0�[x(�p��8����f	�n�����_�NQ��z:N}"��>BV1t�����L�iGbm]Nm�{�T5�e�J���)?{{p�~3���|��������b!<�����@Jg�`+e�� ����U��seiB��1�������_8�����T�8E��3�9Wc�`�)B.7Z���O�/�f_-����:l�AD��|�dU�D����I�cUoz��~�����U�*������OC��)D'�h,X'�t#h��<+�l��?ZT�ZZ]�`�C�\���	C�(�
�8A�1*W-6B/[��]*G#h;3��}c�g��9��x"�)�������h���Zez���Jd_e�*��q��w�
m|���i�3�.�D��(a��^~/�zvI7|���qo�.�h�C���_~�}qg���Rv��
�j*9�����������K+Qu(M�w)�����t��.�F���1����t�WB�`��o�iq;'�t����=(C�`"�S�hNd`���j��G ,U�p�;���.Lv�������zXN��*S��\�	\�������E��M��b;�|hp���mz������>9>���GT�Ju�G��Ad����uuU�t�)p��z|��['�*�d��|��=~DBQ��_r��u�����v�1��$�#�
vn)on�eR.��;���We�������(���U?�4����R���&����L���l���2������m��x�B�*S��5���pv�z�� 4������J������Z�y��$���"�;J��T�Wy�dq�D�(#���BVy�_��n��H�\��L�2�-cJk� �R���� 5x��w��5K.�_Ag�=�B51K��zk� /R���3'�jS�2��C�-���X�z����BfY�v�"���������W�L��Y8KY��Wd�=��5�.��M��U�'�&n�t#9DH����z�V��&�����?�N���R��Iwxn]Cp�<��:^� ��@�����IT�2���'�'�)g"^���A �����T5V��<��������u7(���{������B��T������U����wA��������u`�k�	��b���W��\~�y�s�F����[�7c�����&o2���q?D�����%��+	1�Q1L�VQ��u-����3��3�)u�c�w�"!�A&���Bee%��WW�{���q�UhE�JZ@�J�F��Y@��f��n��`U�������sOPy����Hu������rAE*|�����T���n�Q_?^��4�^��H I����.t�nR����Z��.�'lu�cgV�D2*)��v���*#a*�23�rBQu8�i,�2�[���@\���#�V�Y)�
z{��y#N<n����@a;�z�lm�B��?B�o��Ka���y������F��zn?�"d������DF�$L�\�^��B�Q�.�>I�n��0��L;���)���h:}���x�ev@N-�%kU=����s�^T�GW+E`��o|
��~Iq�4�T�X���5���\QA���.����,|/�����0w_D�t�yjJ+/2��>\��#��
mX4�_�4;���ep����z��v�_lt�g���Z�\����Q����|VD�*��2��cR:�� �g����e:��mI���+�Xn(�}	$���@U�*�����}�/�����t������.�w�(t!<y�����s�ZZ�V��D����
{�&87oQ�����
S�lF�\d�S�Td��`:���z��i�q2��8�'#IU��
�s�a��HaW�x�����!���4��4�[P�MZVp�]��iKjX��b��-Z	,�"����l'I�iB��`3mT�[������������t�e���N(�-$�}[�
���g�8u
��g���@����r����*����	$�1	���'<DP���z�?��	�8�l����ja'�*��[�����#�q���a4��A#���.���;����)��cT C8���2C�������f���v6.s�������}�9�����>Y��f��~��.�#n���J
(�k�e@�+XdB�K�V=�Q���Cb��`NG��?���%��+C�+�J@,������
3����W�d�>���H��Z�a3������V�O����SY�lVn�*��oc��*EHZ	lE5B�r-]�0��0_e����D��o)W�:3�iDI�J��jB�w�Z���\�"��('���}B�s�
e)*R%�H��c���=
�sy�f�Z�����^������g�4�&���� 6����hS�kKY�n����������������}�@���J`+���Sj`���S����n�����M^1�r%��7bP`V&d�B��W������%��\��J���7\���e]Y������[�0M($*���]vld7��&�&����l��� �����r=;��h3����4��V:o�c�,�Y����V�<��v$�4h�,�Y��V��Wr%7�q�����`�?��=�Qr�lD���k
���kT�1�N�nU�{������%M�$��a��mU��4�v���2�q�q������n����t���n�fU���2E�)i�pJ��n� .�����>*�y�Kz]Q���m�(a���UUG+��%f8�;6W�A�I�|��O�4�u^��w���O����%v�5�-.�~q�I����8���q��U���y:;���C�>������ T�R�!��S�QnE)X���S�FS&��#;-�0�f�	>��3�Sm����.�r�7���k�Nx���{�[vv�Yq��<�g������R��
���_�s���9E�@IDAT������r��F0:5�����>��n8{FE��6�r��|d#�a.P���"��x�[et?U�O�B�]�5GuhH�QG���*'�XT���O8�a��Z�f�f�-[��]Fntj����gF����;3J;v��'0!��q�BI��j�J�9@�X�"f��-��AS�����"����$[4��o"�n3�f�M�Q�����AG����(��\n�s���e�����68�6��>�\j�c�����L��������wz��T�T��2��6�;x~�u.��O�Q�/��tO8M��T���81�@�BV����c��N!-h��- �Vs�U./�]T7m��v�J�-�3^v*�S�*��a�����������u��5�o`t�a5>�jF(j3�����LF����� x�t�1�3�.`��	�����Z��U	D!L��G0�$��P��\l��R���U�W�:��M��Cty�4]=�s��A�`.���0���n*�,�}%�<�_�z^����a�$������L��9�{y���L��(��GW�r�T�7�:*Gd�����4%�����0�zcZE����4$U��^�>�*�g��rzQ��TM�L�	J����g�.��D�@�=��G��� }��b�R���V"����.O��^��JEF{=�!�e��lt�K��D��~P�hC��8a����w�y�0]�>K�T�L?T�}K�j����
T�2	����������_B�?37������0��ba�?���3�%P.q��@���u
����\T#-JmJ�)Q����#���L$[e���><A���V��PwD	�n�z�-2�)B�����[�;.�\�w���{7��g�p��P���&�"%������T�M�X���7|�*�:��x��=e+M���;e��,�Y@�4�J;	4h�,�Y@��-`���[��������{
�p�F�����>B�����w�p���1EhA���b�i-�z�%(u�=�ZO!�MJ����VIvB�9F���
S	�2e���5�)��)m���U��T�)q+P���O#�52����
NP��{��Aq�Q����N�j�_)Mqt�/4��Y���,x���^���*���Q�;����a4�����_��#��su;�J���}�9���]!�Qe��+,�K��������q�����U6�T���JR���|��{�hf��BE��R�����,��v�
��)�����Q�H�1�2R�����z����;�et���*e�����2��u�r]-���z^x��^�����+u���3Zpn���={Qq�=�
���|��cj�)�
�����&X��SAC^�D�t)�eY�-�$�fRh����o�b�,�7�N����c&����a�gP���������ee#���S�
��Y���
.� ��k���;`���;v��������k����HQ�%}�]���X�E �]���t��O����Kq������8��$�)�RG7��H�����H�TV��v�6nF����p��t�T���J��D���	N�P��L�j���J��bD5;_��-b�{��ZWTR� q�N��Z�6K\4��T"3���*��=�:�1��A��&����0,�S�q8��o���m����D���I!*�Y���m$8H�+�(=T����MK'#]o������}R�43'�"h��X��� �u�`��w��:�����'h�c���:��zS��)�$�X��&#��g��|��n*�V9j	Ye�D�j�\U�{^�p�(#J�_����D����I�����
�J�#6�4���H�K�1������	T���Qe+g��t
���4����5�8~��^����{P��i���N�J�y,	�������?�h1�.t}�������8��'�~;����_#!.�Uy!��W��7��������Mm��=�����C�z���0dB\����+�@Q�!�s�Q�QF�D ���'Hc ped���	`��z%�%�U^H�z��A�~�~��NU.b�?���i[�
&M����������5���r������S�ZT�S�ZyU�&�������|���?�������� �����?YR�J�J�+����S�������+�B�*Y��[{�&t����q�
x�������yM�D:�A5��rA��Z��A�yO���O.X��L�[TE~s�T}���W�7j���Rj]03�4%��R�TM��ln�������R!>9��T���T��U^�5�U|'�U������j�,�Y�ZX@�����mj�,�Y@��f����"X�3�4��3�6?G��p��~N�y��J����Y��T���
W.�WW�*#�Vj3���a�X2� �������?Z���T`i�j���������j�����[����f L��^0C�������z���`JT�d��V�CS=x��9�V/�TKh�h��c�=c,����u�97��������LO~3o^��HJ��A�)��a0M�lA���m�0d��$S���l��HeQ��'� �7of�������+��9g���u�������g���{�}�����w�z������7y���1#[#��u�j�"���X�8���K�s1��k���_�O1�v�P��}�2���])e�Y������v>Yv���O����Vn+��M ��AA�����c�$�q&! ����-��L[Tjh��#6CP*�M#��2��a�m�%�a�JG�.���'?�oO.��U/��9�wf�b�U�-�)���#~����r��I/!���O7C:q��2cc�>�@��=���P��=�F�d%��� �~RYl�F_���.*{9w����^��}o�@�
]X���x0�99��hs�f���,Z�X!C�t[�bN{������}�R��=RBW��^2�m���#�cSUC�������b%lG��D6d4}C[�-�*4.S��8��j��s/D[��*v�J���@'��6�Qj��z�����a0�J���!�~�8� S�	di�8�s�����9X�c9
G�*~k�8	^�^y����&$�����@�<l	P}�C���gY����B{7&�&�G��.���rN��(n�������-����}Y�(dkv��rK��65��~T�����k�NR6�SHjK�B�p�B�����8����4�4l����2���>&�KL6��.�;>�E�Z�v�x�6Qf����7�����R�h�}(%�����i��!��A��T����Z0	g��Q���}�}��f�����~���7`�;����%�hb�[����L5)P������h���IM��
4�����4��o�{e��w��v���S]�%��nMh��AT�Zmb��!�w�3���&v���G���\{�����}�Y5wQ�i��rw5�f���6Q��+�t����R���=H~���6.v]?��{���PM}�
!���f���Gu��(��jO�8L�+���*���
����$��$��*������?���?�c>K�����^�������Q#����FP��#�#�#�#�#p"�������&F����������R�
�*W<����#�|������Z����Z���M�Th[����>��4������6��}
��
��0r�<Z�IP����_�J������@�Q�V=�!L�<T�����=���u��W�m����U ���
�N:n���
�j���}�R��=\�z�Iv�����x���W0�6Ae�)��c�g���6�����Zf�������l@R5�#Lu���ql�g��_��Rh�����O���g���oL�[hj�Ev���$`�����"�}	�#/��#D%Q�d%,��?��%x._����|�:��&�W[���O#u����OO";?�l-d��f�g��A&�	����>b��a4���5��$��Bb�[/[�������IU&�U�U)��j��5Z-��X��[|��Pm��e�T\(��:iE�������*�|�nU���6�>z�1��i�c��r�X&Yfh5��������2"YkT��Q����;^ W���������w�2�(��T
����ux��R!�]�FX"�QbY\�j�&����*2W�i�v�v�v������'����Y![&��*�	U�k�2\����q�tkTi������V5�~�5��[�C�CU|��J�ayiEG�/�mnx�i{J �	*v��uX�Em���p�P6��V�E��9��9��y�a*��0G��j��=�����$,�,�l
�J+`���������`�������'��j���5{�p���c������d�����k_C�;	����R-FhU�e_%'JS,��,W��w�V��U�
��O;��Z8���#x��_�"��nK�2.����*?�5YaeYY�U�ix.^�
�����[f�@���~�o�P�\�z��������*W�(���Q�t\�B�����d�Sx�����v��i�h��g(
�A	%V�O�(�e8��r��I��xiQ�*���u����@������$Hi;����Bu����������D@�U'f���
V<�e~�g�{����(�b=F�t��'�r����%��:��^G�H��������X��������=�fu
�]����S�����V���+>��O�=���W��.E�N{��:=JEH����\�t:]������������)�����+����s?��C�B	�$��|t�)��_[�f��"�9�v�(��z��@���v���=*nK�A������'�&����N��d����T%���$c��h����T�1�	���Qe���R��$S?b�ued����&�*�0@T���n�F�����<%U+`���}n�������Ux/�\Wv~��q�>@n�	2��:;	��U�"6�.��QR��(<��I]����tP	�h������J]0�{�j!�N�����#Z9����0;��f��P�@��A�B�$����n�$_��^��0�
35��y���[y��5�\��� |Y���V��d<!�jea�Y�T�����:���m���@T�8U�����e��e�R1���)���4>Bj����)}5����f���kD��X�fec����*�L�	Ma�J0h�e����y��!"n��<l�1�,��z}Ou�GM's�5,m2��oS�[��=Uy�)3W�}T�zf�P��j��B���k���W��TiS�����=5�@_�@�LS5�F����2M�`_�d���8m��=&���*��:h*���" ���u�Z2�.��j��b["]FR����9L-.RU-�4o�������a�������J�c��3�r�JhYt���-,�b�+�0���n,�������b8�������l"������wRY����� ����QB)��	ZeP�0�U�JY���E��<��x��\E���aU6����
���J�"3�X�XN��YO�(�4��G ���TZru���{_:�T��{�S@����"�-��~Zp3[�!Xi�k	a
�U]J[���e(�}	;�+y�V�n%jWy��aBW|g���%/*��G�<o�A�}��������~A�����
$!�uP��&���^kJ�����!8�O7�e��y�V���t	��ND�,�~�1����E8�q���������)����K���B�������&�{��Py���
%�M��t\V�Uw`hS�����^zb��y��E��^�����E��iMZh�w�v�Lm����c��V����W
V����7VG@G@G`#�������������`���|)K�*J��(;���p��5�?���ibS3�������������/IO�#p����8-�6p1��wIm�.��m���+���
;�s��'�N��67^���:�E]n���3�rtv�������o�P;�C���M���x&�/i�����$��nxg��
��7�b�x�$�V[�Ec.��s-{H%��l�Y�W����.t����E����c���?�J�?���Ar2��~���j���^H�
c��m��:�:��a��� �oA/m@������D%��y���Y�a'��Vb�M�g�"<W��{�6~��!��+�����9�v>�i+�wh+�xYZ
Vn|��L��"k��^ �"
T9� 9��di���B�F�����)By�)��n��x��1�g��q84�Fg����g����f'j��qb�=���E����HU�g���8a�$�BK(W���v��u�T�J�e�+N9��)���q���b{�c�6�0��4����S��!���r�9x��������(�9Y��P���/��a��*��t	I��&�T���v��@��U��'GD��F�� <��ydCF2��A����j/Hr��~������0��w{���Q�'-G����?����"�X��`W����ab4�O��"�4V�����M)K�	sM����,������`�����9�����nL���+�[�y HI!Cv�U�V^���)SUQ/�IG��;c�����T��_������p�w{a��aKr�0���C�X��N8z{	�B�jq[	�������#OU����W�49M�@7/�bl�V�i*������{�t����b��Q�wp�$V�������i:�n�=�Jc�7q����(����p�{��{�%�X���33�N��$��������K��,�{1a�����K�N~��Vy=	(e����K�,���M��bK��]��E����|PZ�b����S�����h����A:::::�
VL[-1[L�GJdW��q�5J��^aY�p��:�]�K��������q�.�Te5m}��e�:��R�U�A������P��#p��3�D�J���-���@M8�6�(�"���*V��u�����T����@c�._��ts�C���H��5���������d�l9���Fp16��Z�6��>���5��\A\���K��hj�������a�+�c,"�"����J.��E�.C+��U"��y��2�5��������t�=��6B>m��{�p�6�w#@�g�)~���8s���(���.�9�����TLj{�=*4m(~�w�G�.��0����N�i�He�t�@�����j�
A'�^���K��.O������-�&�!���(Uu2�T�	~4��F��K�����x�|��&)S��3������x������d��n2y�]Ix�I�	f�g�h��M�!�SJ����?�M��aB�v���BG�-���o��[-��g?��B#K����d1��d�
v����m����}�4���R�0�o�����#)u7���V����d�F�������!o�J��h3������rvQ�"\e�|V�6f+�.�6U�";�r�
ynw�G�1��B@�%?m�B�i����8c�;�����8�y�W��U*���Q�����]����k/��k$W���"�7�eK�I%�V��*U��\p���Nu-������o���f=�0����/nm��::�D�J�G:�m��.7��l�vZ�����<d�hY,R�)����'�u��U��V��d��%�A%���O3��R����!u��L����|�����j�+V�W������W0��S%/�v�z����>,�h(Y	�X
*�����4�"w�De��I>p���:.��	!��J*�e�aGvf
yT
�pjq�*hTZ=�5�qm�Y_����]>��a����.V����(�V%���6����RM�`��`��,�����>����O�x��7��uEG@G@G@G�lD@�Ug�8�������8R4Xu�����������a.��%l%8]�~V"�N�x�h�.g&@zCOU�s��#h�x�6o��<�l��WTC��l����N_�<\�������'M�W�"������q�Hj��=��}r��B�5��S0:�m���KT*"��-x�W�.W�j9�g��#/S�l�.?�K>�����'Q�^����q��B��L�Y�WB�0����^%����DG�[���^���x�Il^>������Q[����}��?Dk�� h|���|s�$�O.f16���iQ��R*>	8�]����,�D��$wn�~�7�L�����7=oa|����
���Vjk��-��em�yXe�-�*'�m2�Ux~�E9�Zd���s���&6;Tx�Nl���jk�{���yQ���''�)Q������M56w����k�y%��]��?�}����O�}�<�m-R�#OH(��+� A������9i%i0S���BX.����>v^�(gh����Z&4ug%���,��EQ���~?;�}^BU���2A�T�d
��8^�4�wW	�n;x��������+}�8�.
����%\z>�6�t|���' ���U�U���:�����,������Z/�(f	�Q�����7F2�e�	�C�����������T�@Q%8\�~[��D��i�Y��8�XU����q���b������T��Uq���e�U��Ms�����@���mkl����Q9I *�@v�������|v+����6��te��<� �L���i�W��?x����^)PyQ>�����"<��K(R�3�0��b)��i���
�5T�t_�-��������Y�C)��u~5,�����*���"����������r�~�V���Hq95�QU*4�2U��dU�A*�UK%BH��ZG���5�S��X;�N���1&?�(�B(K����K��Z��x��	Cj��Tan��9�|v��g��x��LQ�����`6��(@�:��^Z6��� ')�m�M-f@m@Q6W}Q�6�>�����[X���
,�B,���^����V�,�������]],	P�r��\�i���o��#�#�#p6"����q��V�����)��#��L�,�VTV��<���m����"�d�`�JVT�j���N:�#S���*ZM�������a�Q���D�����:��9����v��cje�i@,x}�T���)5]X��������$�i{�/#\E(�B�*JK���,.�Cp�M�7mF��_t"�5�H;I��9���B���[�+���R�5�>������N~_�e6��E�'����u�a	,��	f
R�� �S��������K/!��g�}�	�����[(�f�����o����oQ��������Qe���(�J ��9�S9���;�������J�I�����ic����Fj��n��#������[r%�D�	H�8Nr����vX����DXv�5-Z1�s��S
f��D#�'�|�
���8�;D���Tm�n�c<Miju�+�d�fV'���VZ
n����%tG�Vk�_%vf���Y�Y��B��2��
��
��2��
��
����Z���Q�r�M�Ze.�@5��������a�����Ja�%NC2	.��Ut9�rV�a0�Yh�NxF�:>��&�x�>�o�3��
|�P��0��ja�L�%�!�
��:H�D:M��lV���[I|c�Bk���o�$�F
L]n����T����5\x����.�����!��)*��W�p0sEs��
p����s�N��#'�TV	��A$���s�W0����*��C���"���_�s�G�A����F	�Q=N������>�Aa�F�6�F~�
���5�� �t�n�$�3�|p�UV�r��}T�����:y�7l�A���D%��mmX�����D8�4$U���#J�Z�
�����:dew1�;��<���'�C��cd�A����V�?OC<�����Z�k`��W`�B�R2S�qR�lFHIJBP5K�(E�N&��f�Z�U���P�v/�Y%
{vQ���x���(�Q	������,�&��#*�>���q&�v�o�!T�A[�Q�U���9�2���=B�������!*y~�68Du�O���~=L��w�V�:L�<:::�7�z���k�����8��?�N$��x%5,'�`5E5+�*l�D-D:��.�;�G�u���O��g
��z�|��wTJ!d����������:����:�>����k���}��
���A��\�f'�1���
���b~e�4�[E���j�6aI�#0�A���&�Y��+1;V��^�aa�x$h������l�����Z����f~A+��^��	\���[�����(Q8e�d[=?�*C��9n#}��a��"Q�G��2�.��f�����sj>�w��R�V#�>`������M��'��XQ[���Q�F��w
OB/a-t46����U��<������K�4/�=�|n�Q����G��x��LI�Y/�f�:�S�SFA�r��(*���T2B ��+\O��:�/��	N	(%0|��}m�n�N��>;��E��/���*��{�������Kp�����T>�����E��z)�-y�J���L9����R�J)�m�e��,��,���6�K;;������:���9�R�<�"��5�&��7�h�S��]t|��a�u�Z�:������^��a=�,mTV�����{���
�=�=�ad�mp���X����-nU�vIb���A��	����."O��c\����/>�����S�����������
��y����p��
F�����u�R�J��Is������|�C<��Ee�
@�Ae!��D�������C"�L������,���Q�����*p��o��]���.�q]A�g��!D�6��������z^/F��N^���b[!�R�b���R/���]�#�F ��I��6{z�� ]�p������`K�+����DU�j!�z/;��I���e��@1~�J0_���Jv����4�p��s�^��wy�4Y�8�A�5�QS�j�e���Uf���Sn��e�����c��� ��`x#�����D�3���v�|��M�_;M�����L��
��JT4����]�,�o�~m�O�u����F�
��#PT�pT@����\&�e�`H��PX�����������j�PS�3�R�h%�\��b����,��u��	����H%���1d&��	�3��Lf��Z�>C*y�<%jT�_�C��b(���?�����j��:���E����p4Xu��������x�`�����]g,���d�k����l��%
�GX���cX>c�IG�#��]'�tU3k�>����Z*�I'�K�o���w0����E����"���R]jk�rG����>,n�[)��
��t��C���.'9,�����};����O��3����d1>��]`��L��*W�(B�8z:S�S��f��_=f�����RF�u<&���X��n����w`�>����w���~�c��Qe�
5R�l�V,�h�����T6y��[a'�d������U ��N'QX�
z:�rh@S]
��
n�Nf���������T� �h������w��
FhQ�<�Y)��i��_A>��"-���(�Jv*M�����nR�*���AK�n*�
,�0����B��]�T�%]]�^E�������#�1B{��s�����C+NS�3�����y4�yz��\��]�@�ws������}�6%�|��������������s�,<���<���g�����J�����h
v�(e��T��8�2��\&��a:(V�_������O�[�k���pe��R�
���F�����
k��}�XN�����|�b��y8��K��'��W� \���:��$�����U��;�#��"��anY������(a�E	�[N� �c���V�
b	!�n�aW
a
��.�3��*��R�&�DCQ"j��}���m6����&;�]�W���&�)/sfwXul;{�����
�*L8��x��8������U�3�>G1�%3�O<�Z%����nTv�F��:���3L�J�^Q�G��ba�������B4B�Krev�WbqT�	
)�Vj$�`���p�"-�^*���(��P��3Pe���k�o���T�z�*\��Gn�	��O�����'���&��/me=({M��g<V�X������$�I�����o3��Y�	T�o4�qHna������MP�gv���~��;]�G@���f7��{�����_Y�}�7:zr��Q�,u����z��z[=(����A������������E-=1� *����-�{���U��Ex��W�������J�q,��������������g�������}U�`�
��GG@G@G�LE@�Ug�p�������8\4�p��}���������`99��CT:zi[1H�@Q�2�[;E�
���x�����������7p�����OZ���H]#dum�k������!����<������Ia��t��g @%�!�Su�j���Y��y&s���*�����f�Xb��$�������;�4�YUw�2��Sj�4�
���L]���G��
Ri�L�i�' �*�m�e�=��)Rjr��'T�������������s��;.C���B��i[�����������'T���m�*:r�_*b(J���n�U}o�m&<���>���T^�8��m����(&*�L��9�f�`�|�����-�>�:�XI���j�����Z��.�{x�?���.No��J���W�C\���p�����v������;|&�e�.��yZ���x�X���@g����.����[�u>����]�����:�*^y���xk�a>��,�����Lf[+7�1��,���=X�9�H�����2
��\�p�^"x5�����s8�������\��0�Z�r�0c��� ����|�o]����~��R��pPAs�>�1�����u���VI�U�l�z	�\&�}5��-1���,�T94��T:9Z����XBW~BW>BWR2�E�J����b�W��ZW���-�J�\G�
��7i�����s��2�G	U�1����zI@�x���^��PJ�PN�P��;��gY#�Xt����p�
 <rm�_�{p�����+�c�\���q���Gea���ytQUFY�dP\���^�������]���W�e:�.%����z��y��6�V	z�$���������8�T���kk���C�2\�e�UA���qk�������*��[AT�N�5��c��>�y����'��������\-�,�,�,���Y�uv��1K���L���',���V1���`v�(u?����^BSCU	����9|���U��e�P��`��v��]VO���D)Bv���]B�S��Zm5S���m�<lK�#��u��F�#y���9!�T)��V��cX���W��8������q�v���2~6^s�����~��U���-Jz�����������N�q�[�#�#�#�#�#p��p�����]X��)3�q�G��M���Ol+:}��h�He�+�����1�;�|#��]�7�/���^w�6�wg?�������t������YES%�^�{�[��>��P�������	Nu�"D%�S&-��eJ��*���4m���M3'sqe���d�9w:S�e��u��������V}�jX��DY�EJr�|B�J�������
 ���6B*������*+�%&w'�����->��=D�[���T���V0Td�L�I��%/��Y|���CE���7�K/�N���]{rb
s�	�����I$��?�����
S]��+�o~�����q�F�KE�GT�[W�Z�oU���2Gz/��+�����������NK�)�J�Pg\-DEyc�4z'������V���\�T!����Ux�����(�Fa���]��	|� ��%pro����F�������mcK���_�<����o���]<������W/����m9+R3~��CF� U��[����?��r����"%����5U��$U\Y"(A9A`*Au�,�����n�`���,����
��k�*j,�[0�<	�����wb�p���G��J\�hv�V�5	��	���v�!�Y�hO��m2�\�RU�*Ve�k��=K�)M�j���Q�)v���'�MM�73�s�'�b!��h�����-���������D�6�g��.$]����Z�������f�}9��(5�J5L�A���M��[Y
<d��-������s���d���������7�%�u��\>�����#��c��]�Jkp���iK��Bu�
!�*?�,�����"8�F���v�[���R^=&f����O����\�ee��*W�G���#�C;�z,|�5�M~8`���`�0K�Y��eT#����e+�]T��X���^k9nt�����6F�utt�P4Xu���T��F�4��t�}���l����/��	Y�D���_���sE��F��x��N6�zm{E@�������h�s������0�p�����6�&^�����W[N�������IO
t�h�g"���o�e�w|���|t��)�����T*� <��Ct���>]�"H.�r.v�l�A���5���N'����iw������R����������:�N����;8;�8N�k��ie���y8�����lT�����w�
;Fm�	�?{�Y��`!�A�GX�0K��x��3~�-k%1������o16���j�p�%*R]Q ��
���</����On�9>���$Q�h[
.�1@E���Vt'h�
D�69U��/�s��h��w����hWk5�O��R��������?y�V��s,�4�~�]t����e��;};��(
b��������������
��Z�(Z]zo^����->�����@�����)e�����*�`��s���,B������N�$������OZ���0���*|�_�?�r� ���u�+Q��+����)�1�|����WZ���"����fN�\���yO.Gp��2��pxltu�m�I�Z{V;�/��%Z���VJ�L����n*&{my}���w��S��uU�X�h�WX��RL5@)Q�pJ@�x��T�\��E[�����M���~>OB�����dP�����HF8���I��r��(,�!�^����G�.�1G2|�o���Xr\�]TV��Q0�������Zm�q�����	;UU.R�)�/!S(�**u6�]��\�d�2,V�������������"<�'<%�T�����R���o��=�<��
T��,���n�=�](�V��{��R2��P��	��d��%�2E���%��@��,�X��|,R����8��^�<Nxx|n�h��y�c{0�A�V�!Z��}M�v���R�2�y�|���&e������4�mT����H�s����1��m<ol�v���	��%����������5�#	8%0%�T�{�~csR��]��SH�=8
_1?�Y?��>Z(*��G
d���~I�(7�b�P���~�_���p�k��w���+X�r����L�x��U���5Z�VyF�a2{v�6��I8�`������b�ss6��������7�Z������Y�9�,T
���R
YZ�j#���#�#�#pV"����r��v�����!����6A�z�# �����
d5��-��m�0�� ���0����V���_��{�W��?������O���3����-��t�X������mtP���G$2Q,�'1y�9��sT���G�������;�����������x��v�5���
�L����8[N�hW���4�����L��g�'�����^9�����'�V�g���ba$�����dv����" �
N�'�+�:LB�b7,68�&Pc}�n�>9x�d'��:�$
%���s�����;���[���Z�X
�b]X�z������'����_�����;-�*�����n'$���.����4B,�>����n�Vc+Mw�G���r'.��so~�e�?b���
��6o���{���������4���VEY�!U�������'4�a�)�n�C�m����~� �<���G�r��T�j�6)�cR�"hg���A�=,yd��p���M�s�g[}S��-�F���&W���+9>����*�8�����Q�e�o�����a��%h�g�)�@IDATy<���8��S�-LQ	jo��?����	�Cz���D����Xv�Bs��n����6�I;>���Y�pro�y�N�0kH�V�S��i}|��hE�����-������v+s�pF:��2��Ivn/�n�|b�W��^�J)'�l���g���-!)�1�}\����\�28�:�)���L6M����$f}���7����}%{,#���p����@����` ���p',���v��JK.[g7�����:66�7��|>�-�@��L���@Rb�W(n��V���,G����|nf/��@!� �� ��>��e�H�A ����K.q|�^��i����q�^��|��-�x�6�w�X��:�(T��u�!Q)R�B!'*E�(T�mLkr����8���B���7iWz��f�_��o�#��xoy��%���-|��g�������XBIL��"\�PG���G��K�G�������	y�i�^(��<^*s�X����#��!H%� ?H�R`�0a���Y�m��#������.����<��|�L�/N8K���X�K3X�})Wp(0�T��B��J��*�~�e`�x����O�*)9�+,<��\�U�R	�R����
1x	����<��lG�9�+�t��d>�[���G���Z_�=��w�Ta�c7�l�[������=D[-�8������b�qT/KG@G@G�#����^����������������W�_�������td�_����p�����9�2p |Au����{��"��]�*�z�{E�H���_P��3<������*!����ICVb?���t����|t���-�d�
�C�:���KK�G`J�GX��r#d�h&��3Y<aG�������q1
*[9��+7�'|
f������r�k��C��zJw`��~������'�IL/g1����Z�
���B��Z!0�NZ+;k�������^Wo���-�)����nZ:����e�/�e����zI��R���2�\����2�a�fg���"h-=����5���BE';uv�zi?���Q��w:<j�mxy���P����;�6��d��]d	4H��>�5��1�����[=U�ZW�&Wo�^�8����N����b%>�c9n��.BTT�������U$��g�ab�~]���0�2�r�����j/U��(�����N���3�y��^~���w�C����o���D�jz�jJ+�'f�y�[�{�T��@)�T)B/�T�ZX��;�+��7�J��2y*T�����#����w�������F,d9�+O���X	N���3h�����#!�W�����|_��BW�������[x�|�����c�	}��;�h���oa�������$�ti��2N��O���������<��Z$Mt�1��D�gl;�
���^�[h��%9�}h��$��jTH�(f�h�h�3SQJ��E)����b�{�(�D�E<�9�dyS��
��-'`YM�������!��"PL TK�M���L9�]��n����Y�hG�#f�!N����
W9��S@�Kk�d���%�jA�$A�=-���'h�
�B�+�%�6f��
��/	�du�x�u����N*�u�����7���H�����P���lle�9�~��l��`�J6���J>W/syT	:���f��Dza�xa�o��;�P�����/�p��=���RU������ ��b��*������Ej~�H��%���(�=��2�1�*��J��j������Y'Q�[]����h� �2c����E1NU>�-��������n@��w�X������a�D��D�Q������c�+��#���E��>�/�~�-�~�bq�w����|�$��dy*;%@�C�����]�����:��i�.�7�X��������Th�?:::g*�:S�Ko������������"�����M��w�bj*����XN�+�]R;��.p������eR=JG@E@����p" ���r{F��n�in�#������2����y��M�`!F%*Z�)�*Bu����{��7<Q����0E���;Qvz^��t�s�[�\e01�#x��j�l���+�+/�����g�g�%~�]}	vR�����\,9O��.��x�
�T;b����4��u:1�����&���U=��������\�9���Ub��@W%v$��j��H}���2!���H���[����X�����%�x��S��m�Q6xRn��y�Ox*�X��'	�D%QdYN�.%��z������2�(J�,����U���t���q�Zv�Rg����I�)P����R�e|��_�����POj�O�z���	Y�[|t���Z|�tSEm�B�%�h%�_Ax&���Rv������H���hGa�v�+���|a#��,�la#Y�W�%��wU��P���x����,�&��LU��J�NT�\��3��"�)��t2/�� C[��T��������$ll�`�0���-���F�m4[�d��3}-�~�.f�0��8���v��**�����w�[t�_�1�YCvf��Z��Pcgt#K�������c[�ex���xI�Y��1����r��p��`�!ne��t����,G:����W���A��*�����@�MVmb������Vd�]���R��E���3���
&�#B�Z[��!B=��,��RC���\KRRq�Hu���Je������c;a �R����!����(m�5�&��JCT���L��!���{eOFeQ�If+���er�MTsR��f�t���g�V��!Du���*���v�_��%�������yDA����w:�y�%�0�Ye�f�]�U�r����(��2P%�o��gi
V>]���	_�}�(B����
��v���o����������o{�oC�w������gT��,�S6�r&K[N���V$����Wd�|�Us9TA�%U.p���k���L#%3��tk|_��>X���a��5=������d�V�W�2�(m���f#�e_���P������Yw�T+[K-a.6�������E~��u<�'��4���2y8X����aR����U���:��L�R�����w��� ��
c��}j5���`J}�P������V�#��&;�k���h�����p�N(�N�W�������DO�#�#�#�#p��`���S/MG@G@G@G@G�TF@�	����pU�����	�Fi9{��[wl=���hU����."z��}�:j���"�.p�S�������k�D��j��|���o7��u���.��Blj����Q�������(2����'4�>�T}gLQF�Z�����J��t��;o�����p���EG8F+�E�}+�bp:[?�6��i5�����>����6��}] H5���#�1��w5"����+�J��+*� K�+U +�������G��v�������+bW;z���	���T�c�@O�(<�#p�~kJ4����uy�TJu���/����0���b�Wa����E|��/�O�H����=_A���-Q�'VC_eo�d�Q�d�s=&�����
�U�Q�� |W�tR�"P��S��v�Z��j����F�T�H=N*�X
�Vi>kV-���|Q��+cU��BZ.\}o_������hov�I��Kw0�t��Dji������`�iS��Y|�VH��`���p��e8'{=F�%|� �O��p������r��43|�fX�2�L��h��X/�����>O�m��N0O�Q,�i��W�Y,�0��6��A�c]�F5�P9���":-I�7��Z�����,[3����D��D��R�*A+��!��� ���QF� �f�:6y��~���
��nO���?�.�U�:��fg���^�N
���UZ��0��V[���2�&5n��R�>�.��k��^�/�����RX��M�������3�h�%�#������9�n-
�U�=�(��
|+����x��r�c�S�����l����O4�<5�������
�g��Ob���o�LSu��g���pR�EPJ�U����8��>�^[�G+�3��#-��X���s��X�R���|����m��#����Y/��Z.h�X��b�g��F����2����
����h�����+����2���4�U����!�l��Ar����f�k�������y�
O_�W�IP��8�*�i�Z/��F�@��V�p����<�R�U'e��g
V=�������������Su8�2��&`5��Y%��(w.�]Vv�[��#����w5"����G7�BV��D����7i�5����E!j5��������$�Q5����@���Uo�UhDYBl��E�Q�zD+����>�z&�������*�_&d��`�j������I�����kJ,8��o����2��wm	�8`�#R)^QK�X\�*s��/���t�R��i'�(��S�`��iE�Y/KNv�q���a�]6$�9D�qd��g�%�J/*<�mc6m �39�&������"l5�rxc�3Z�-.x#���?�_(eBR���l���I5�2�bA_Z�q�F�W��:�h�/�U��Av`����5L-��6���B����t�A?;QB�*WO�k<�>~5���!���l�r��$����;��|
[��H�����6���Wp����T4���S��ht��Z@��'�#���O����S�d�|�y=W�c���h�u��i�2s�
��L�|�\�
H1���L��sR��W��Jd4��H����0[��r� �1Fx�U����s��e?j�.*{���4�YNNml`��9$�R��[�3{�-�r��2���s�-8��G���B}��Ui'��x�"i$���=���
W�J�K;��J5*�.<��kYK�R.��KJD��P�9�l�+=m&������X�R�!@-��=K�~4i	)�q�`���Z7�g��FTX���z�P/+R���L�_X@ae��n+(������U�3PA�`��[������2l���R��&�WA)�~e���3�ty�����,������LP].V�7��}�7��$����M���F��������^�[7Q��ST����Zc��%�0�7/�xw�a��m+�LiW��xsU�7Wuc���2,�dX�F;���T+*�k|? 8Y����ay�f��W
�,�V�Z�.ttt�P4Xu���T��F@w�6rz���@*'`5F�����U�$D}�w\Q�����u��F@������,��8;>E����g����$������T��ZIt�����YM���SC�#T�!�3��@������KQZ5�NP�
�f1N;�qEvz7��	��&h�7B���f9��B{�P�`K�9,�g���,;�����U
l���EOp�H	aW�S�`�������B�0Tz�bJY��JiU��Y*���������p����T%q�.-H�A��$����
�3/�����k�jV##���50�:������@e���*�����*�^����`�g��4)B�Ie��U6,i�%p�������)������lOfa�.�I o��" ����r/��E\��2k��)�S�?�w��5?�T�i������W
�Z���0��I�+Q���~\y\������%$v��.>���NZ��b�^����-T���p�v^�3�~L�����w��]�Z]�}
a���V��Q@���&���S���CT&0���x�������}�
�CpXaC;�kX��E$u�6��	x=`[<t�*�H���2����,��}(������F�,vv������#H��N��t��I���m?�=��`�{�w�|@5���m6�by(�i�����Y�Y�SE��U8���[icf��<�Rz,M�u�*���)��b	�J&���@�M�]�w��{��Jt�$��u[����t�����O�+Z�9����Xvt��Y&���. ����u.,���T~q���:�E���b�VBCXG����Kv�L&!&*?	�.�c��'�B��
�,��!�|w2�@���)�Q�"(U2����j��J��T�	$Qaq9��'�mG��|)pp�R
7�`i_�����~R��e0��s|��U����]�V�b!]t�F��~��v�)������������y<�P��9j�c?2�3��E��(�������|�k��Z8���8A,��hf��2�OK�/!_���Q>Z�ZK����Ui�j?��������h����=:::::� NxA��<tJ�";�'i8�����VZ��N�/)��������3���{��<nz����u�j�3��p���"R/-�z	P
��#�3B����,BO�L-��u��>D�q��-�1�%#��\��Z��h)~�
�_�sl�����;��z��vD�s99����S���#�0�J��x:���2��������/� �`x�����a��wdxML���bv%B
��+RD`��a+O�>�����JV�2p��b�(��({����e�X>�$�j�Nvt�\nXh�h���v{8����a����t>��
�>�	����>@z��TP�ou��_��1���K��a~a^�-?�r~�1!j4T�7J*:�0m�*5igiag�t�R%��J����)�����D���~7�+3��p��@+�VR���"�K=�`�����%�*�z�=�8{��h��?w������m�(L�+���>`���6H���`YW�j({Tx�X�Mazub����(l��U�h����%���������>7��tK��w����n��<��$+�[��z%�vX,�R��C
&K����^�I�i�����Vl#a#a�O�~�mx^My�]>���p���������T���x�_8���$�`��<7�p�C-c�3�u��9������h1L��3�����*c����W� 	l����@.�E���"��k;]e���]]�H��������G5�!,��bT�u,Q�
��.\��+���o@X[����%��"��U�?�|'�Ctm�d��=��n���Q���oFo�M�J�Q����%�'����+A>x�([kx�D����<W����������T��-[	N����AJ=��!Q
��8����g�R�q��Q�c7��WW�x�*�S�
�����/8Y�9���w�t�B���X��R=���A�1�o2
�J�X>B�!�?m|_�P
��g��$�,�-�sR5n��p��y�[����W�j���'U��Q��C)�>Un��Yf���*�+u,�n%He�"��dU:�T�"FH�����f�2�f���=JEb*w����W_����`����Wx�Yz���Z@��|�MD�����<�n���d�uvB��u�c�����8-�`�i9z;ttttt�a�n�0�z�G���+��lt�?V��\��f��E*Y��;0�r:=�����w�8����'S�c�?WW��/\7'�|�Jl��D5�����F`>:�eBV[-��x9>�ou+Q.�����K�|6M�7Rz����,�9B|3�����A�!�;�|#���*��y��M�X����^���WJ:;&��a)1M��q���)��V�;2e�dE���UacZ���n!88��^&�eR���Q�xjY)P	<��G<�r�� L*�(Hj��J)T�����Vx��0K��Ns�~�1"~���"y�&�������]��+�������j�m/T�/-!G�J�RI�������X������,kA����FE�l!�,���uu6��D���v����i�X��"tC�q��eQ����bf'��S~����
+����Y�����	�1�P�K�S��l���z�XD�J�N}�<X�2��C>���ZT���/����
����Y�@���:���PO�y77"�r��R�M��e��q�Mk���
j��Yl\��F(�>\���V����yR�k��^�����y9�����p����T���&�(��5G)/a���y����
|��_��/��j7�;���;Q��=/aB'E��R>��@	�Tb[)�,�|��:F�#�V*�Y�X	�X�y
@���E��2�kU`��|������i��4��x�.���P^�}>��N��!AD�_$w�3Fj�Z�����o�A�/r]>�B[����N9��mi�H�Z�r��wy�� ��L����4�yd�;�[�G,���[O���X\�-��,�~�Tf|*��;������#0i�>��f��T����W�j�E>�s��^H�z��C���
�����L��C<���h� )������QK���v�����_���X��U]�j��T��'k9��9��"<��6��TQ5'<�{W���#tttt
V*lz&������:^_��{��X����v��W�����a	X]��N�j��$�����w�Q����F+5+���?|^Z�t�#�E�*6���*���c������!�0�+��kN=�Y����	����!*��'I�P�0CCY�%�RJ]��0%����m|���[��c�]�>�w������w�����)H^iZ%+m��T�
.��e�����n���QX�������M�>Q�*���0�F0JY0ut� D�;��v����UI�7p�~�{wP��N��?�����ph�M��'�&�U���@WE����\s_���s�"�}����/��z��aJ'�X�
��#xU���Pk�0��2-,{w]�Wd�A(�E�R *�X�]�K�M;)=&�
�&��!v&5�1�Y�j���kO`|�=�/�o!
+e��<!��KT���w0����T�J��gn���
���A>��/��j�2�E[)v�8����}�/�����[��Gw~�d��=����o]�+x���)������wbvz
y>��fV�_yv	�Z�����u+�"��v��j-M[�l�I�5\q*B&�p�JpQ��4$X���1	����`�
"Pd�:�������r����H��h�E�?�$���*��|>�B��|.������������N3������,YED@�
"O�Y�(
�3L�	�(���(����@@Eyd��y'��i�����������������Uu���{���LW�����6�����v�wG�[�-DG�L��D�DV��Lq��Y�������"���I��`1�$�`�p�,eI�����P��X�7����i�S*��h���W�S���"M^�fqz�B����o�����r��bI>��b����~����T�LD*���h`��]|��yc@@� a^	   ���i`dNQ�����"�-�gd+�c�yfYC����qqfYB��EG�|K�bk�]�6���HGi0���M)�9����mE��nY��Y-�XK+9n{cwQ��Qu��~���O��XH%i�
�w6,Vi�;���u�_�K_���7z�U���lXr�p������B���qI��wx��B��?������:�@�Z8�U���"�>P�Ed#Q4���\�����q���N�uws�.����eI��=����eD��TS�V0v`�J�U����f!����������N)��z�� ���,�� �kDx	�����J�?�u���?E�!
}%O�V
~_� K	�,AV��l�n�Qg�w�]���_������H��=��������;ErW�bN!���V�p��E-�
^W�Ol��{�Nz���id<����6�H'}����+�V+'�'���H�n����o�r�����'�(VS8m�+�"��\�$GJ�;� o(A�`�jy��g"n���{�����]����n���w5,
r�FK�����F����(N���R��L��&�_�H���Z�~��N��
D�:���RMC�&y[��Ij=Y�9�_���q7G""�V4���|i�N���S��?��N:�Vn���4�v&XTVm��)W�j�
Q��qZr�#PES�u�}t����\4����V�|s�^��Q��o\G'�W�*j����d���%b����x��DB��9u�D�p�W�������},����K��7��@���hd�b
m\J��������$�-�sL� Q����H~"��Mqs�.m��~����I������E�����������TnW����	E������.�����@X�8�bB   p(���5�#0�S�$e������n^J�MK� ��KT���'�AU���*s`0 E���D`������{`�JgU��?�^���UT����xM�Sp�
�r:?CD���XH�H�
��9���)P�P�����P�C���n��������9�^H'o8�:9J�B�>��t�,��)�J]h����u���g�A�U����j-)�d�������������_Ubi~����[�Px�V��������j���9��?�J	���0�}O���*�Wc��J�X"�b�V8>��d��J�%BC����z~��b�1
��+%w,E�d�B�8�Xj?�yT�a�J�$>�wxG���<s��u���v{��8����fN�*k����P�.�:���X�0��{$��Df�W��B���qiilOd����}L� E�TO�F���o�9v��\3���������.���:��c���"�3y9]��>�����]c�aYFXlD�����.���$
�D��R0��~����f������)x�5 �)I'�;��S����`�}<g+��9v���(B��(��qj�e��`��X�����H��&ko��K~�4�-c�Y$��!^�i,4�w>�m=t��S������8����4��'x������>����?s�������K�hx�"���b�����	]%Xt���I��:��+_��]��jy�Z�s,��>�zZK�9���k�������V �����,����p�����;o�2bh3�������"?���ae?�4#@x�>�Br����`DL4$P����o"��=��9������D,��c�J(��w�C������ ����RP9"��|_�z���D��b�����Y��s�%~���������z�!M%U����N\��j<��BU�l��&~�o�}#�����+Z�\T�}�ZYl%5�x[���}==��T��O��XP�2w����_avg�9mVx+G����",�JGsG=3{u�|X���9�U�D�Z��<T������%���Q%�<0��v�o���}��nn�����Y���*o�AxX0��(�"LJ����G�,QH�o���ls)Y�/i1�Z�MiN[5��DM�Q�c����2�B��������f�����ZRu����j[����A��v�G��U$��*_=������&���f5���;�'O�^E���f��E%9�u.��1�Y����a��W���BEX��AY�$�(��T
PI��BY�"iB��J#*B)u<�uQ�L7{�X���zuu��p
<��y}����.N����1'4q>�:_����z^c��v���X�����zV� �����{ix���NQ;-���_����|1q�Wjl���.���!����K5��%�xn���y�r�:��W���F�zx�m���v5���6�9����~�,�	�6���"e��C4*>��ai�q��l���XU�f[���_�EV��!�D����-��H�Y���������pZ��z�����K������@u����������@Y���,X�i�/T�A�@p��y��/":Dk}'G������y�����$��!�U5��@@fA`��+��wrD+[�b��D�*�,���J��?j�����6�  )���l���=E����;X����H���8�H�EI�!0G�1����I��=z���:x�ag���^|��j���g�Gv���M4S�@���Z��9���z�z}�_ms��x���*5�(G�m�B�m,����`ZHKh�v��]K
����\�LG"��)F����O��Sy>D[Xlec��JD>.^���A��;i���:\���r�g!O�&E)~v�tOR�3���F�\<�%�!������bn^\�wQk�C{'��1�=��qW��k"�Z�n�������.j��i�r]/_���Q��DX!)?�"�bQ����	
�$(�����(Sa��DGh42F#��gq�X���]�����E$���Hy�����U�BP�XM��T�7t� �aj�Q�@���Q��Qk$E����`��$����v���f���z���x	ydY���h/�/xM�7���G~�����o����������h5�Dl�l�����s����AI���������	���������/��BXd���V��������h�<=�����V=T_�T�4/��2�E� e%PJ�%"+%��U���MN�.y�����rt?��������Xd����T���s=����Q��%��K8�O�-6�3�W��g	O������������c,��HI���Q5DKr$
��%��-�4$�X�S�*�>�NZ&�]td��U{\���MDV�����\���Vw�B�
Y��4���W����Z'�9����9�������z�+�X�"Z��0/�U*VB��D�X��4��x�&X ������rZ�x����	���q�;�>F�R�'���H���'\���3�`de���L���,li�A�c�J�W	7�Y|�N���Xx�������"kh��K�����d
�&\�zNS�#<���i��:e�+T�c2��~:2�N�N��\��4NqK��&��	Ru,�����",�
����B3�K�HJ�R"�R�)R��4�H�)�R��(��9�g���D8�]���r����$�=�Dz��^G/8�T��J�P����vSlU@h%�B+�6(����#
�m�����7 &aU���r   �p���q�j$0�i��{�C��P/��
�H!(�zx��=]��������������"�#�r�.�X$����EW����U�@a��D��TM������K�%e����AZm��S�����9W��O��a��+����t �����`���SxeRF�9�H2���YDw����6�B���y�J�M�h�Gl|������[��2�����Ydu���r�����\c��WR�8u`h��*��g*"���^�"�u,v�b(BM�J"HM&�S�QYj!
K��I�'Yd��3B������I���n:���z��b�����}�������@��-�	�N�Y��(a��EE����b�gqV��E�:#]^��P�Kl%���IN����x[�&&���Z�P��	>nn�����j���B%0���IN����EQa��Q*���C��,���i�[C�����N ��,�M&���}9���t���U�v���27�j[����������!�Z�i�7�j�&����g�����A@@GV�hu�@@@;�q����p��S���U��I!�P����������$�no@*�"����(Lh Pe*��$}�.X����ZMR����d*���W�����b8Y�AX����!?I����G'�;M1���HV;��=�[���{ZV�*~����V:DP�zy�{���j��-��	~�����[9������=o��"�+[7���4Ln�y���j-�u����Q.>&����L��=F����
-���t.���|G+ym\ql�f%��`x���l����ht`��R���)!G!�l���T�4Q���P@�(��L��d�Y$��k�ky�w$������"1����b����G�L�g�G����E�-�|ER��s���2�����g���9r�Y��e�Z��d/�c��	"�3���m$B�D<���4u���_WO��z��k���8^��n�7Z�n���q��f���Q

�xx�FB�4�1�c4�z�����=2>d�W���S>��e-������:�xf�"��[�P[}�b��������E_�]�Q�����V�vg����Oe��c��]�U��U,��-?�0���onb
  `V��P&�������0���c��B�WE���GC�^�Em�h	��j����@;��w���W��U��5WS� �U�,�F�(�e�$�U��e�9
KH��^R������������RY�z���������wI:y 'B��l����>fls��DZ���qC��T��6������x��j��CE��Gj����zITzEYu�F��r[��H� [y��od;�d|�v��D^��Jw�2�p��<����eF���f��9�UX�Z��*�}G������O5,z�����I-\�b!�����E4%������jg�����Oxf����S���O�C���:omjg���t����s7�(�����51�9
��GM�����G���BU�*M��K�d���9	I���A��O�\A�8��J����OP4�P8DN#*��DDUL���������u
�:�~����M���R{s�������40�G��hp��"�E|Wwk��Vw��q%�W")K�Pj,4Z�K��'��s���U*�r1P$R���<��Y����"�z��.u���K�)�����A���G �x�"�����}���v������tu>�����_\/?,���s`3���V�%mx����5�?�ZFAXU�V��@@ 7�rsA-��8��_�;�`�L�P��8��,c,P�M�_�)�U��Z��x��X�e����f��}4�")S %"�/L�Z������_����l��l-,�j�oW�_����5d7�6�@����KW�����Q�mOd�LH��������LU��S�U=}�q	W���$Gm��W�S��~�����S��~��������R��%B�!�����6c,��������C%���Q�}YJ�P~�� ��@	�|vq��]C���*wY����DV����:����}*}���P*#�rT#���x*#��G%���w`=�����w��=����*��i�}5��jm��e]��uZE�K>��Xh5��C��wd
���Hp���Q�&?��&������^�_^K�^��{���E���E]-�����z�����%\�HERHZX�T��
�

����P?I�!���P�@�_>"�J$cq����%��e*�L���e�:��Ub(S�"�� ��@)��D���Vd?P����1^�\�H���`�oh�z����V}���z��W}����DI��y}�h���b�-j��Q���[���u
�q���"���U��G�������.�`��n�J�Wz},H�hX��\��c���Y�NDT����{%��C�=�"C�N�����*�+�6�"�2"���j_���n`A�
��_���oD���%m�vZ��v��J~��].�p��@X�
�  `V��P&������_�����B���|�?��hd����/�����7��:���f���8�U[}���S����%{��E�.�L�d�B1C J����>?P��qIQ�b�~%����"�: ��!p��#�Uu&Q�)"����&�?��p�>������u*]���5���]����,,���i0������tI�Ak������T��2�v�_da����G���|�nzt��EM����z��RG�"-�N�����ED=��{MQ}T��l���C{�z?��G���^
E�V��x��~Z���1�%+��r�^��m,@sZQ�C,x����>
���x/�k�},�I@R���#�")z�b)s[+�`����y�O�$�,�"���6��QJ��|8����T�O
����J�jx���%|��\?��t�J$e03�R��2�ER��p�m%�j���E���Pc]��y���#x�Z�W#�!>v`���$����eaom�����ND�Yi������?E���E#����aV���K��K{)u��"���������7�XL���������A:e�E���XU������U%���@@@�:	����F�<���Y��j��V��~%��_L����H%�`[&�U+��:K�%�l��Pmu�]����M>�7���6%)��Y�rCi�@IDAT7�/�g�UC]3���/6yi�k�5����U��7���0�nG3������RaJ?^O-�~
�U�)���\t ����v{�O�1���7����y����%�Z��>o��=��X@��vm�#�"�jb��Vw���
������2����WE����TT���!�E�a��U��N`�����	�;�s����$��S"��^�?��������F�id��bO�xl	������}��Ks}�\�8�����W,	�Q�8Gu���!]�8%��!�`��[Q�D�1],�"�p��Ic��""q
=�H)�O&"R�OI�=Mq���b?0���^,q�(��Q�$%a#3k�p���a_����xI�����l8�j`����H�+Y�rt+St%k��<%7K��bH��%�q�������_�HQ���w
�]	G�*g*n|��m#����]@XeKMg8������c�����i-
���]�v���{����/^L===�O��B�%8p�v������-�e��q�����S���`E5���n�J���������#�G���lE3M�6�j\BKZW����$���\������E��^^��������u�z����20��/�/��A��Ot�qw��j�����AN��J'g5fI�)�����T�-~C|��o�U?h�N��������D��S�5�~c����C^���V��F�TW����;(H`��v�=K���+��l\L+:�5]GR���`�Nk�4�����6�/=��a:��92����B���G��E������V����J�M�f�D����b{v*���aM
�S���8Z��'�)��S��8�G��j]��d��[�)W�Tg��[�s%��D��4o��ZDW,����@�YJ�	=�I.y!N�[3��et�h�]5�WE�T�r���I�I�(u5�o3��q��X���������`JE�����D��	
� G�f�U�(��WK
E��%~{�SF������i�Y`eD�:�JDW�*Ni;V�>��������G����*#���[���XrL��F���]���������|�����^J���7T�?������������O?M�����[o=����;����
��"#�!
rT

���E����9���E�\r	]y��E����C��@�@7ne��.A�D$�����)H"�h��"Ed%Kw��bN�U���x*�T}�����T����z!�$�2�A�������gU3��c���*�J^�"����VY�z��)��`���	�_��X<X���/+ky-���R�S�5A�(N�]EM�J�'RJD�}�I�V�9������HE����
�u��������"��f�<�WL�����9��Q����Z�����oW�SDp%��z��s�D�a���xq�#3]O�--j[Lc�����13zVW+�0�E\��X@�i���;@��1���J��{P���La���1C�$�Q����&�\=I_��I�R����Q����v���J�(b+I�8����1_q$��� �����Y	������X�%��8� ��	4r�N�v%B���#���HC�e������n'����$R��;z�J�����Kp�?���t�9�X=�FXu��7����~��|�\s�_�;n�?���t��gR08s.�s�=�d��@�<5�Z��rB@%����t*Tt	e& �+#��D���l"�
����_[�������e-������.�]����"�:P�PNF�M�8�S?�m�|!��DFv�e(6v0�E4(��d*Q�i�k^DV~o=���S�j�,��E�����K��B�����!`W��g:U]�{h3mxJ����:���Qi�VvF>w��VU5nF�c�h��&���#�P��n�G	{����]�h�N�+�$
��W���^{����i~TfH:�~h�Ss��P��$�U��G�J�����D��t}���Z�
.�TK>����I��$�5J@D�������A%��9����$��Dns�����/i���4?r��:q�K���Z��Q|��������A�L>1�)��>���mu,-�R|���$R�C�A�k�P	G!�����"���@Xe3��s�=t�i�Mu���_��Wt��N9WvV�^M��o?����/����^}�:� Wl�������"�Z�t)���R�����~���Qss�_���_.���r��N�"�~A�����A������-�_,�+m
]*����h�*_�������hT}c{Y@���8��`�@Q"���lXL]����q)u6-v�I#2��Z�P�E���vI������`\�_urZ���H�������/�9=��n{����"��:��/���������Ns�D����m��T��=�+iM���c�z���Z8����vs+N������
QH4I%�2X��KDW�w&P�"�*M3U��8>�r%QS��(*���\s
��a������,�ZbE���>�-i;i�
�G�+��@qFCC*b��z0���Vjm����vji�T�U��m��&&'H�'��)��l�2��xP����E�)������q9�UzR�llD@@[V����t����������CF\�������������O~�D<���D�H�~�������)m���N:������;"�z����]:������n���S*����_t�y��\�,W]u}�s�3w��u�o��� e&�/��������{G�����*�\�aH�������k�%���iU�W��q�����o�ET3E��)��L�zd� �L'TZ��f�Z<���R1U/�q�N�M�I�UZ�����D�����Dl%�^������Y�+ag)Q���F�))b��_�}��m"��m}O�������\���6��4�:7BL��
���;Yd��y�W�bD��D�����WV,�fV�X�W��2��&��U�����D��Vg�6����}Wj"i�%�����CM�I"p�f��]<5/��d�	���\��u(>f�b,�b��xd��x=��D)=��:f��p�Jk
aU���� �*�h�<���t���<�s0��>��O��?�i���������
k���KR��v�m�ak=���~��_p�O��F6v��M��r������������Y���@��T����t�B\���R���jd+��)AJ�A7�[ii���H� ����.�y��_h�%L����/}A�J�?ot�l6"j�b�TW��D��x��S��J�����AVL���J�%���@��XJ����A�nE�g���$J���j	tP3�+�����Z��v��B�.;��>���;9:���������~g�bZ�u��N���9'��! �^�`M�(�����D8zB���H������ ���E�s������No8O8@���Y+�����ES�w�ETFT�A������]�u��8��9�l� �+\
�����gh��v����FB�,�J*$�5�����F� ��O��
���@XU~������U�&Z����$}�+_��~��3�ZHX������J��~�zz���T��\�����/Z�$M��US���s�9��?�q�6��;����:�,s�n��z��`���n�M�<v@@����SP� ���n���F�� �����iY�~����V�
S���xb�V�w�pZ�pb���a~Hj�W�3���B}E����C	��������:�*O@^��	+BI��_�J"�w��id[��z������'2�U-�Cc�����8$��D�Ip��$?���D��)�g9�5�5["+�f���PQ� R�;�J����������������C+���]G������B�& QE�%�[C��%�b��D�e�H�u>?������mm�Q�z  P4�}�����9��85��P?���
��S�yu����N=�tp������$5�D�
�F3�$E��&4"e��Y��P>��'����u��U���DV-��qa�3�����'~�������z��$��%�\B�^{�U��_��^���Z��7�����'�hU�h�#���?}c����n�:��c�]s�5������Lu�g����g���
y(�h�"+%����������5ql��@	��K�
���@@�GV{������`aI�R����u������ii�����wI�q~0����aP)Q@e?���C��^���JE�j^���/(���D�#HD�x�X"��%�B�8�AV�N�4�	��z���HK��7����[9�U��ME��HWM��.�D�EP
����_�kK
6�N%Qs������XZ��P@����p��~��X��NDW����(��P[�\z���������`  0�@�~�_.Q�F"4��R�Ef}�)����a�%���T�
���4��o�����P-?���D���pz�)F�hB@"��2�%:�������)�}#u���&���W�E���J��	 �(VU�9%u���3�_�B��OJ###t�����THX��o~���>C-'��_��N8�:?�Fww�%��������=��cS���/�.��_i5�������n��f�6S P���gA��T�@�~�TA��@���=���HX(*Sw�RZ����9�*�����S,���xl����/�2�"��D'�O�hT�
,�b������C�V���:^Y�e��0���b���EG����IR��Vf�+I+����4h��������C�g�����=�3Z[����uM�=�9�
�@i	��*9�!�6��c]@|�K;����Z�����L�%B���M3��X&
��������+#���{�n�CR*{G�s��'i��]�����(Z�qIZp��%���kag����@0�W���4<<L7�p��%/)z�?���T&��?�~���}^1
EK �g�}����KG}4=�y�S�e�5���F�����D~��e����^�z�s�K��r
555�;��������*+��c�����,���8o�0���������-oy]v�e9Z���@XUM��6SX%HV��>��n�.D*$�z��������g�����kq���~�U=��*j$�0q_|�u������N;�������}m�Cx��G��c�QMu�/���@�	������?��������A��hV;�~);�%���#x�>��������������n��o0y��?����p9���s�z���8{�S�Ei��eJb��c!Gx���}k�1g���
u-�P���[�����-���_@g���#	�E�)��%y�UFx%�����^E��_���f�r����nP���]3[[����-��olo��+���E� YN:��������wzd��N��	����#�O9�X�}W�� ����n�e�=�{PC@���Y4�`1�|N����(�Y\��EV���P:������5��EV��������P	 PV��]e�:w$�@%�TDw ����>���(j��6m����e������o�[Q�j�N�Uv�[n�%oS�S���o�{\4	o~��ipp0g���s��3�����>��0�{����o|cJ����3��)�z�;��� �����%a��������_(�(e������VX%J�{��W����E}}}V_�6.��R�����4�g?�Y���?n���7OIh����o~C\p�U#�"��[l��@	�����q)�9���]���[i$<`���Q�Zjy���N����������#&�&��H�d�G��HW�!#�o��N4�8D|������P���e��9���r�r`|m�{�EUO�LU�h��T�r���9�M}�NP PR����W���V��XO�J�^���G/5��5�d������w[Rr��A���i�$*r1��?jVi�;��
$�q���ETm��>�6�|7�`j�������O~����U�.pY���mP	 P��]�5z�����>����M7�dM�Xa��m��3S�TJa�������5�����4���?)
Y�W\q�%R�*yc���t�gLi{�I'Q,�Gy�j*��z���l���W�y�������j�����eI���o��O=�T%F�hX�����'1�Y �2IT�����O���VX%���q����T�����^KW^y��L���]k|���G>B�]w�ul||���\>� IJA����?Ta�d_��LX��@%	�����q-pI��G"Y�l�H<DeD-ic�L%�b��,���D���S�*��)��+RNU�p<�X2�DV�,�RQ�8�D��=wY-b�Uw�r^�:�����u�eO�8�������4�C�+�Vw����k@�����D:Nn���z���[G'�;�SJm��� A ����XD�����TD���?�����#N�hJ"P�r�����$�1�9�IE	��"�\E�����iM��3y�6�(�R����=�N`������~�����)(
	�D�%Q�>��OL.�JX���O*Q�9�k���8����������e�0�a����l� J�QR�G�a��9p��:~���>�N�I!(�M�y�����|>�B�I�0�|��_�h��7���W������eV�5�USpT��UUk�����J���oT��%�;�\W�7�?�A��\S��Jy���5E��L&�
�gv��o~������W������T�n�*��HTCp�kZ��%�>��$����Eu����	^'x-)
����In'�$�!��Ke�[�U�&oMu4w�p��R�fi���P��*��Y���)0U�
���q�J�V�*�]����iI�Aw5-�.X-j��V�����C�[�s�(�{��#&<��~�M�iG�Z�y�J��*A�N������8�c��S��Id���y9��e�. ��@!�����z%�b�����7�'�P�m����������e�C��'TQ��(b���,v*of�������;��������hZ
��@)|��&�W5���	��OJ��������IX�{�nu�}��w���V������o�]�/�������kI@3��%�\BW]u��&;=�T����If��"�2	Jc�'�x���F���O~b���m��Fn��l�����:�(����<�����C�t��v�2��5�U���������{p�V555Q0T�I.T	/W�HX=qXf��?�A�����E]�r���DZ�<��St��GZ�$������[l��@	�����q)����*JtJ`rr���U$y��7����gS�����j1?���fh_]�t�]�r�l�������)s�|~��p��8N��^]F�h@@S���������4��(5�[���������:l��@�����E"���A�ID���/��w��j%��!��mD����������vpj�l��=���j�b��EV
��&�����*����& �����H�;)ft�|�*I�w���O�T�T�7oVu�V��qZ�z�u
	���}��w``@E���2�G}��~��zD�K_�����o~3}��������gI�-	0c�����*���v��s�1MY�r�)�����?Zc2��K��]$��)���*�L�nCXU���;��
�����)��X%o�l�!*�O<Q�I�-��b��a��O?MGq�u�8���Z�gA����#�,
�������@$=J��
��)<1L����s����J�n�T�j#��>B�'�����
$wP0=�s6�nN��Y���
P	 `����z�`��Q�wMv�A@�*$&����'�g�GK���\u����w5���SS;SsG�ODh4}�FR(>�9�zw�������������&r��m>f��z)f[�7���s2}�v�c.�
Du�@�A�3�8hZ�J�H��;��C]���/'
�+"�1�8�F@�����c���A�>^�6I��n��$J��|�*I�w�e������^K",2��BX%���>[]�Pg�y&I�))�����/x������?��VP5����������7���N:�~��_��T*5%���hV�}�hK�I�CvV0�^�MJGG�i����D��a��P��@XU�&:t��V���/����/�v:���o�����V��15�Qo}�[���o����ir�\�~�
	�w�q�Y�����X�-��� �aCDUf��9��S@@@@@@�*	D�c,��_��KW����vy��W�z���k??�A��4�(���t��r�JN�y��E����8��)�$�t����[i��h,
�,��dB	�E����Dx����%XD����ZW����~0:1N��^Z�2�H�LW���Z����[���N��d_�o��u��LB��1R����Fy��7��K/�T-$:z��_O��{�j{����,Rf�"���w���H2^I�;IX��J����=��%K���}��y�{^Qc2�?�Z���L��^�:������y�����/����v��
V��|p�H*����K��g�}V�N%(b(�g�+����,�����K���."���b����u����*�V�nCXU���;��
��q���^��������}�$�TvNU���l�2uXW"�2K$����u���J�T������g���n����Z ��+9�     `'QZ��j���#��H�8|W�;����-*���'����&���*5��T�Nn�,b1�2�!_���������d_`D����8��R��������AlC`��,����CJHM��8v����H�j�(ZYv�#Y���*[H;�)~H��+^��^�,OF��f�
T���
��<�_�n�5�����6n�h��}}}S��<��3���dVi��>��)�S�EJ�"VI�%)�L�-N*$��0��D�!��\��O�(["����������JJ$�j�*����;���Z���#S�����Q��T�R�#Ye�kng�G<��cI"�e�s����j�,�����6�:8��
�D!����$��m�v�gKBf����V��������4[t��;���O�~�������~��gA��T�r�W6. P2�]%C��@�����;����v�^�X�9��<����T_�H��Nj��"��W���6p��
�Fi��3�gh3s��Kw�RZ����vE�D��
@�
	��_=��azh������������|n����BsbH��%�I�)��2����������J���u�#�N�5og��x�S?K�g��!k�.�u.��Tz���)9��J2����i)-nYA=-�xY��!��%�;�K}�NO�M������U�������I��F���:�/�9�<�X�kb��K�g�^�w�x=>���S����k��k�mY��A��zq�J���|�����:%�eKU������8�S9�Ds��NR$���)�������S���������_�z������r�Xja��?�i���������/����W~��+1����F�\s
������R�dG���Gvt+�����Ew�y��O�9��sT��|�gG�-�������Ua���6V��T:[a�8��J/���p~3���?�n��V�I�9?��-G"
z�!:�����6$���D�"��\���g2�@*I7n���k���|W�H�p��P���aO1B+��P��"�jkXD-�na�U{CwI��w��m��������@^.�������x�1U^J8�O`��j�����n��,!~�����D�� 07J,S,a�T��"�JE)�X"B�dH�I=�A������ET�+������W�V9D!~����8�y;�}~_��0��E���z]�yJ���>��?��EZu>?�!�*���|?w9GI���e��$�v�����.�����M�z����%M�#�<r����N;�$J��_���$Y�
�jV]q�*���W�\x��y���_��$`�3m��13iJ�'�IZ���A�T��V�XA�)%r����5u<�?;v����E�P1���V�"Y�uVU�}r�n��*	��T����!s]d��5�}�vu���O�����j&yH���~��<�3�������o�j��pw��gA��T�n�*�(����DG �x��~�h��#+�Q������)m
]*�U+���2���Zf����n�k��NSmV��P,w���V��jY�:Z���<��!�-���R�����I�����9���t���N���L@���"�b�HFg���B ���+����']YL��#S�T������N@��a\b�q�dDWQ`�0KZ�>��j�����?(�G�RB,�!��hYu,�BD�RQ�W?���e�YWf�:
�&9���_�b�Y���kKH$�EP%�*)===$��
]���(����������ex9�����:f
����c�)&bU������+WNV�w�yt��7���T���K��m���3�U6��l�Uw�q�u�Y�L%B�[��k����[�������^{��V���jkk�����7��7�l����jw�q��B��r�A���@��E�r�F� �"�U*���#0���p�Fi��[�Ff�0���r�@N!�B�^�������T���T.�F���A�L5�9oZE�:��}�Z�a%
�����_��B�o����L������W�Gs�:�8f�DI*S�����M�cF4#M_H	��5w?K�2��SSSS�������M��]������Z���/��2���lg����r����n�������_��:�M�?�q5&|�5�ipp�X���I�+7��x-��L,:���%Pk�o��*#��i^A>~O.5Y�7��2�;~��{������0�J�(���J�������Jl���|G����7��
$�V�����$����t�e���f\�[X%���D�1�p�	t�a���1f6�����.���������}�#Q�%�g?�Y:p�=���Uu��r����O8F�k^�����v��p:������R�"��:�lh��
�"����[3���:��������f�����r����>���������$Wikk����!i��p{R�����E�����m���U�2� Pj�]�&��@@o�t�������$���=��V>o��w����V�NP�y�L7S��K���A����A�t2��A"wI�������%��8�@���<���go�#;-p^�����tZ�}�U�
��*��Q(n,��(G���q
�#���|:"��s�Li�x�"��JA�����k�����_���w�a�ce	$�1DFI��"��uT�y�#��:�
1NQX�T�����-��!T4E�����%��-��oU���uG)����|W�^�
����H��H������(�J�����+��V-Y�d�a|�S��w��Jef����k�mo{[��������'E"W��jll�?�pU'�HP��J��D$����&	.#��3� ����<�����W�B����PA*�B���8�U�g��#���J:|���D��S��E�������)4�RK�*���x�4����N���/��n�I���j����*���?lU�JE�[l��@����B�q����*)Nt ����������J�[��*���+�\]I�'Z��>��Q���_�iZ��+//�$6<n_�Ef����gh��:�������**������1_3��8�@�>k=�����{�[����?���P�N5��D�����d��(������@�9�K)���B,��[��r��\�BC ��s�Fb��J	�Dt�d�B�D*�"�I}�9s�J�i���t���vj�4���_�������|���{���*�#��@(��������������u
�I'�D�����EY�T���\�2�U�����s���j"Q�����\�U�g>���w���?����{��%.[�b�u��O?M���}���(q�V��{��(��<��{��������?���V��b3[����:E�1���a�I�>k��c+k�sV=��St��GZ}��(=���wZb����$ovST%m$�����.��R��(���\�"�Mi/jX)���*�U����/$	�7������c@�M7n�&��A�A��T�'�@������$��D�R���bO/����HW������ZN�c��K�K��|���m���XB�����:5�]�j��f�9�SR��d!���u��q��1*AM�������o�n�H?��@m#�d��H�( P)QN��-�
��S�d�T����B���Q^$�eCm�X0e��X4Bi�]N�U���7�O@�5��W��e��9��IJO�ibb�&&����ZO��4MN�:��mY��������m�GO$�n��Z��X">��W�HjC����rs)E����;�������+���s�I��_����N��I�bK�#V}�k_�1�i����pe�$����	s��w��7�|3���/W�����"���$����'��3�<S�n��QE���l��D��$�q�"���'?������D�fS� ����;V��LS9a��p�UW����)�566*1�8�$�]Dd%���eW[�r�������
	�
���0������D��l��)���n����@*A7n���k���|W���?�R	�Xt��C}��*2����Rt]�>j�~Z�����m�emk�vt `/���%)X��g����0G-����)u�q1E�!	�92KPEgq@�Kr"N{���T">�Oq�=T�)�$M������e����8�s;���kn��Y P�D�%,C|��,a�-c�1���[�W�i���|�3�|�\f$?�(��Jt���Xl%���������s���gI��U�D�$��<��""!�7�<���/^�Xna�9�B�]�v�D��2��)�N����%�Tww�:/[`&�������������U�!4�s�1VJ�{���;�0������D� E�g���P�����;aU������*��������^�-t���>������a��������\0%��y,{-�����$��Tt�o&8 �$��R�D_ �"�U)���@)Ht�a~ �e�3��"I����[�H��t���Z��~�$2f��r|%��������35�1M	T���������wp$��E��q������k�U���%�DR"���*���L��qQE(��:>n�"��Y �(��d��W�V�\���}�87���R����0/(�@��gF9j�xl�[E�8U����=/�/�M��A�����t5.�E��D���2_	�_�,���������nR`�����k���������/��b��a����SN������?����e�L����&��%ER�=���V:���Dl&�555�q���D�A����(IM���}O���KT����d�z�s�c�H����k?��U��To=�U�k��#�������-�w�yy�O? N��I>��EP�$$�����~8��������~���uz#�}*9M�q"r�n�M��}(����*�(7��rF� � 0�%�WB+N�����",^�>?�0��]*�~Mn���l/�������%��}�S��w�cz�@�Af���;mIy����|���N\{:��/�VN)$�NQ*K �Q��q#��)��pJ�h&������J|5/��5S��s��F�:%�)Y���U%^��*��*0\lG �"��G��
s��a��\X"�*E���9�y�8��|6���>N{.��%��D��Ijt����N��f�V��	��R�:r����J������	�p��N��*�]M��o��V�(���7�Q�)s;w�T�_8��DD&b2�D�Q:��c�h^�_~9}�C2��u�]G��PJGG�����z���#��=�\k��[nQ���
�������^U%z�o��<<����T�A���,����{���i��M���Fk��QK ������/*}z<Z�z5�[��Z[���3���t� E��[���@���wU�90�"	�w	
�@��B��Gv�K��~ ���k������y���@'/�9��rf!�*�-���XJDR�b�bi��Ev8�S�m�������8:��O�5����e��u\�r��s���/��N�H{�x�9>~(��o���s����l�_�,��*���8����t��.]��9���F+:q��]�,?��!Vjy�8zV���)�]+Q���GYwa��=��3��K�/��x��I��-�$����'�L�pJ�O��o���J����~�J�'���_�JuuuS������dNf��^�PJ�M��z�yHe������}sC���~������)�qIA_�e�t�fs
a�I�>k��c+�@@�L7nsF�A�|����A�L�k��p"�@�	,����E�n�=��5�NN$����Nj������JX�&e�����LE�!�%�Eq�M#y@�S�FN�g�^P���?��0�����[��9X(�5���$��HX�V#4e�G���x*J	��+�x������-�,�jc�U�JW��m���u�*�]�"yh?VI��+����s�UW����m�&a����g��7�����*�|�O��
3�x:��/|�$��f*_|1}�3���dttTe�����r7+%��g�m�\CXUQ�5����L����@�	����L�#�@�	�w��1� Pz�]�g�A�C`!��<H}b�C4��B�,�]����&j��V�Ft��@���[IT+_���1��Q�DLU���^���)N�P�RU*�Gy^�����w9�'��D�L���V,��K�s%���K��=��d���D���T������(�Ede���u]+�p�u�q���fk�M�}���<���W��Rr�������GFF��#��j~�aZ�x��_���~����?�����O/����>:���T[�(u��wu^1�dn�����;�8�����c�j�r�m���?�q+���V�`]}��������3�,�J��V�D2�eI7(}�x��������?����.����|'}���,x,,��?�  !���`�E@JL���@��@E�wU3. P���Dh5����F�4`���Y�����[8�?����m
��n%sH����qJO����#���D4%)�e��!)�La�?U*0M0�P�|��Pv PM���0F��@,f���Xl%��D���W"���`tD�*����w�<�
���Vum�h����(��<i���LrX�����i��-�s�N���Vb�����
TQ����:_YO�W'''i����y�f���W}��M�R�8��U��1f  �7�@�H���V��A����;���� �2����pG�����Mi��V����EV�
=����DTdD�`!�D��%�Ne��)���\�T2R#S��Hf�J]�#I�>�^���4|*�����D����|�&#E�J����t���#��w94&������!
�Gh\W��s�B]��x:�F��n%)k[H"k����|.�jz���O?�  UN��*7�  � �/�JA}�T�|W���z � �U
��@����D�4���F"����V}4��+Id��r���+�(Ke������~nSS���1f()����B@g ! �'����Vc,��]�c�4����]��V�����@u���:��Q���@Y	�K���E� e"�U&��@�������������U06�"Z
�%� ��Xl5*!����zj���M[��q�������:%��K�)J��`�U( �p��*~�h	 PmF�sFP���X�5���a�JX��1�g�j�r�A�T7���>�����t*	Ft Pa�]�����|WI0��
��_
�����#[
p��~N)�K�d�j�uJe�|,�Q��A����T�:�4<@IDAT���K)��T{���%@��.���7�te���(���C�k�Q��������A�$a��v��A@4#�/�438�!��Cb ��.������	�_��x:hL�Kc�c� `c�]66� L�*�@@@@�q����"8�|���)����402�!�Cb ��.�����C�w9������ �����8���Np����1Wp�.��3��w�dm��M������A@W�]�Z�{�����0z��
���n�402�$��@�bJ ��.
��)��C�_9���hF�K3�c� ��]1$� �-��5=&  ����dm��C��9��L@@'�]:Ys{�����0z��|�����A�����m?�@ ��k@@4 �7
��)��	�w9���h@�K#c� ��W1$��������.8�|�C�i�hK�*mM�����D7n:Ys���r�-1��|�N��\A�����m?�t%����1o�7�.{����
��M#c� �@�]4*�������"8���C�i��f��438�!��Cb ���J[�c�  :���N��\A�9���cK�t"����1W�7�+{��]	�w�jy��M������A@�*�@@@@�q����"8�|���)����402�!�Cb ��.�����C�w9������ �����8���Np����1Wp�.��3��w�dm��M������A@W�]�Z�{�����0z��
���n�402�$��@�bJ ��.
��)��C�_9���hF�K3�c� ��]1$� �-��5=&  ����dm��C��9��L@@'�]:Ys{�����0z��|�����A�����m?�@ ��k@@4 �7
��)��	�w9���h@�K#c� ��W1$��������.8�|�C�i�hK�*mM�����D7n:Ys���r�-1��|�N��\A�����m?�t%����1o�7�.{����
��M#c� �@�]4*�������"8���C�i��f��438�!��Cb ���J[�c�  :���N��\A�9���cK�t"����1W�7�+{��]	�w�jy��M������A@�*�@@@@�q����"8�|���)����402�!�Cb ��.�����C�w9������ �����8���Np����1Wp�.��3��w�dm��M������A@W�]�Z�{�����0z��
���n�402�$��@�bJ ��.
��)��C�_9���hF�K3�c� ��]1$� �-��5=&  ����dm��C��9��L@@'�]:Ys{�����0z��|�����A�����m?�@ ��k@@4 �7
��)��	�w9���h@�K#c� ��W1$��������.8�|�C�i�hK�*mM�����D7n:Ys���r�-1��|�N��\A�����m?�t%����1o�7�.{����
��M#c� �@�]4*�������"8���C�i��f��438�!��Cb ���J[�c�  :���N��\A�9���cK�t"����1W�7�+{��]	�w�jy��M������A@�*�@@@@�q����"8�|���)����402�!�Cb ��.�����C�w9������ �����8���Np����1Wp�.��3��w�dm��M������A@W�]�Z�{�����0z��
���n�402�$��@�bJ ��.
��)��C�_9���hF�K3�c� ��]1$� �-��5=&  ����dm��C��9��L@@'�]:Ys{�����0z��|�����A�����m?�@ ��k@@4 �7
��)��	�w9���h@�K#c� ��W1$��������.8�|�C�i�hK�*mM�����D7n:Ys���r�-1��|�N��\A�����m?�t%����1o�7�.{����
��M#c� �@�]4*�������"8���C�i��f��438�!��Cb ���J[�c�  :���N��\A�9���cK�t"����1W�7�+{��]	�w�jy��M������A@�*�@@@@�q����"8�|���)����402�!�Cb ��.�����C�w9������ �����8���Np����1Wp�.��3��w�dm��M������A@W�]�Z�{�����0z��
���n�402�$��@�bJ ��.
��)��C�_9���hF�K3�c� ��]1$� �-��5=&  ����dm��C��9��L@@'�]:Ys{�����0z��|�����A�����m?�@ ��k@@4 �7
��)��	�w9���h@�K#c� ��W1$��������.8�|�C�i�hK�*mM�����D7n:Ys���r�-1��|�N��\A�����m?�t%����1o�7�.{����
��M#c� �@�]4*�������"8���C�i��f��438�!��C:|�`�^��W���0�p�
����������C?���i����y�f����~�z��}��t�1��
@� ����0F�'��� NX�]��'��y�� #U1���@		�w�&���������?{w���>~�j���G�m�dj��R2I��h�!DFYf$J���(ZP
�2���)���b�"���%*��]��w��y��y���gy���^�s����}��w�����z�'K�={�H��}e��i��GyD��kWlo;w��x�`����\r��r�-R�r���q
��PX�1A@r��-wCz@���]��3"�.@����@ �U0����
�����7F���3�d'�EU�
�q����VX5|�p�������*U�SN9E��+'����l������cGy����cv���Uq�sF@ C^�2�9DB���00	�P���!�@ 4�Uh��9��r��VM��=�"��W_�?��y����Z�TX�d����9[��=���n�}������c��3F���^���;V:t����@�(��[��/ �Y���� �@����C�@ rWh�����BagP�Q���# �#�@(��P�����w�SO=%����lURa����e�������:K&N�Xd�	�I�&�kZT��Ul�U����F�y#� ��/n`�"#@��L(�d @���� ��*T~G�,�]Y�q�*@�
���������V��O���e��[Ra��g�-~��i7c�i����/��| ���3��U�&���^�&#
�b*&� �@���eo�� ��+<{FF���]��q'+@�
���@�r�?����
���������}�g�6���o_���K�}�Y�fI�~�����[��a���
4�M�6������F�)O<��9W\a��={�����u����5kd��9R�jU�����?�\Z�h���{����Uq��F@ ^�2��)DF���P0�@���M@ T�U���Y
�����6U��*^
��3��u�]g��n����o�|^x���;�\:t�t���m��Ut��p�
fU�r�����VX�v�a'u���7�i��y��&DS���h��Y!� ��/n�r�$@�
�a@�Wr���t��Wq��	�����1X wY�MX���m�:u��O����J�z��cgg��
��aC�P�-[&U�Tq��,Y"'�t��-[�=�����������l��]�8�Y�z�iy��������@\(��k��7 ����M@ 2������ �@���h��
��B�gp�R���%�!�@��.{�;6/��y=W�r�H��Y���-P�<y������������M�N�:��#J���*[��l����y���!��N������	#� ��/n��q�/@�
?�2 wen� ��*wFE���]��q7�#@�����������|�i�}��ra�{��';v43;��Cd������K���icV��s�	>�_i�_�U�F��{�����g�� #
�b,�� �@���e+�} ��+L}�F�l�]��q-@�
Z��@�r����A����'��j��=��EY�r���1c�4m��E���ia�n��U���~�P���8e������G�����^��m+�>���)S�=�q��*�Qc� �d(��[�`4G�H��"&�
��2�9�&@�
���@ rWx���	����'��J5��#w�y������2�E��&-p���o�>}���J����j���r������?���uky��Gd���v���@\(��k��7 ����M@ 2������ �@���h��
��B�gp�R���%�!�@��.{�I-���a�4l���V�TI�.]*����h�S�F�d��M�����F���ma��m��W�^2g�w�:���#)�rE����Uq� �G@��/n�h�� wE.$L<��< �"!@��D�d(@���� 	r��0$��JE�w��3��P�������K�.]x�f�d������)���q�\|�������\y����O�tob��PX�1=@����E�@���]A�3�!@��C�>@ �U���~����?B��eO9��U�g��=z\]!j�������M3�t����?�3~��U�W�6��_��C?Ox�e���� �/V�K$y@J���.!�@d�]�

C��]%�p	"%@��T8�x wy��DJ��e/I.���}���__�l�b�u�(=v�����~������Ia��u��c���ZT����K�6mJ��Q���8F�9#� ��/n��"!@��D�d(@���� ��*4zF��]9�q+�&@��G���*U���;d��q�S�N2c�����}��g������j�������E�}�]�u�J�d���������P�C vV�.dL@��xq���;@ |rW�1` ���+s3�@�p�W��3*�&@�����@ r�=��V}���r�Yg~����q�����t�ka�o��os��f,�fv���U1	�D@ ^�r��^K���<�"�@.��\��� _��X ����/I�A� �]���^X��g�}��g��F��`�)S��s��������7�)���~~P;���l�������{iJ"'@aU�B��@�_�7�M�����3�/@����@�����+�"��]r�]_zG;�.;��+�U"�&M�[n��E��������=�����j��9��{w�]��[�z5�Ui"�I���8E��"� ��/nY�q�*@�
���@ KrW�p�����'g@�A���"] �@��.{�?|p�����������9��)��L����x���c����r�G��^w� ���7�'L� �������]w�U���VyQ�MT(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:G�PXe��@_���c�@ srW�f�������3@o�+oN�B�h	���f���]��h�DU����F�y!� ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U��@��xq?�2 wen� ��+�0�&@���D+���+Z�`6 �M�����V �@T(��jd� �>
���#&]!�@`����| w��IW `U�|e���@����,�"��Ur�U^:�I���~�?��O��w����#�e���{~����������2e���yi�t�Ry�����O?��k��I'�$��r�4i�DN>��R�������'��E���+d�����M����i���T�R��>���ky������>2��^����Q�F��E)_�|�}lp�5������{����O������,�w����g��|��g���?�x��Z�Mi�1y��w���^��?�\t�z��I��u�k��r�a��6���SX��@��/n���F ��������S����1k�(@�Jb�yf�/@��y�(@�Jb����{����}���i���y�i��������O��3�4m����7��t_i�v��%��z�L�<���w�q�������K�,�K.�D6m�Td����SK,���7�pC����s�=W|�A�P�B�m
^Pg����+���lb�8�g�������/���;���_r���{=��|��7���9sf�c��;��S.��R)S�L���^�����@��/n1SG ����GG �����#�0�U���"�'��<	$��@��]	x�W��
$���sg���JW��_��.�YX�s;v�;�j�����~�m��e�{��ot�������Z�J��m���Y�f��/��i��>��}������W^yE.��2�|�J���L����+���[�5�U�J�t�%-�r��
�r}u�����JQ��+Dz��2o�<������Z�,��h���F�`�w�5j����[�����m2D�u����e���\��@�����@1MH w�qp�1 w�$PL�|��Q����1g w�7U����J����k���6��
��KW]�����
��*����k���I��CN���=l�0y�����p�B���M�k1�nW���N�:��������;�>��������O
:�:��w����^{�eZ�����l#F�0}:��?�\�C=�v)��*5�O��V�\����:��Y�S���v��^�t%1�$�n��m��={����n��XM�
�-���?>mu/�;��_���J�����������f�OQ��v(���� ��U���F�y#�lrW����#WrW\#��H��*y1���rW>D�g@ y����<�O�E9�������"�ZRa��5k�}W)���*��������^�z�O��~�Ye�w�����i��yB=����K��U���W��7n��������r��x�	�G�^x��B�B��@��__^~�e����E���	�^�:������JW��2e����7��c�9�P��'r}����+����&Mr?����m��L?���^�J^��GL�>�l�8�6`����+���_��9��#��-3������8�a�;VeFs@�(��[���@�����Q����1g�)@�Jf�yj�.@��{�?� w%3�Q~j]i)u�*]�H7gu��
�t"��_���T��/7��(����_�f����/��;�=vv����������g�}�5�u�������_r�%2x�`�_����,]}KW]r6]	IW;�M?I��C�R�o�V����5k�;'���8�����YeSX��O�b������Gj����}��\��������?�������2e�G�.��rs��3�-�r�\c�y�f��?�?�cq�^L]�J?8t�P���)����@��/n��3E�� w��{ rW|b�LH��*�<?� w�3n�����������g�f��m:����h�Pq���g�t�����i���AqV�U�F�-#G�]�H��
���Z��l��{�ha����jN�QX�R�����_�
F3f���M���R��vm��u������������f����������;�>-Xp5��N�hK�t��������O�l��M�C9�i}�����l�f����g���A����*Q�ZTQ[���/��B�O'��K���]k
��{����`��j^���n���3�� �(���[@��/nq��D�TrW�� rW\"�<@�|���Q����1g w�7���3�<#�]w����"�/�P���k���=�r��ia�~���n0�'���3���ZXu�����W_-Gy��[�NN9��uisr�/�W?!�d�u��Ex��b����92D�u�f�{����[����U��:w]���O?5�R?[��PK�.-�vsN|�"�s�=W����V�^z�%S`���qR��]X����~�Q���������?�������i,t�5&��������SMk�q�;���"�QXU$'@�/^��+�<
I w%%�<'�%@���x�4���*����!������-O�@>���9��>��m��N�:��������W�=vv6l� 
6te��eR�J�XW�:����l�����"��V����t;�����R���(�����O���;�o;Z��U�]s�5r�-�������c�1���U�VI�
������9iR����'��y���d�z����y��O>Yt���M��^��T�X�=da����,��G}N�RWs(e�s���`�sF��t�4?b�2D���}���l��m��w��Z��U�
r? �1��-Ab� PH��U�� rW��@����C@�8
���5���.{o}����������K�re����-�����v�����;��0~�x8p�9��S'1bD��"��Vu���U���q��������O��M�4�S���.�L���N�����~�����U���#u%���_�V�*�����O������|_q���U�fM�?~qM��^�~��G���o���5z�������E�M�t����w�����I��/7����w\�pi�={���3g�sG���1I�����Y��k�������\��/_��OSX���� ��V������#�hrW����#[rWlC��H��*q!���rW^���@ q�.{!?��"��k��2�y���V���{��cG33�L��h!M���M�J���6m�4o�<�r��Q)����e��)f��z���=�����o_s��l��5k�i���\i���F�Y�M�6���gS?���=
>�\/��/��BN;�4s��x��ka��Q�D����V�^m
��x�����jTN�VQ�����fV��k�g��IQc��������)8�k����_�>�U�	q@�<��-��# �@rW��##���<"��@B�W		4��@�	���,�<	 w�t����#-Z���+W���f���ia�n��U3�p+Xxe.�'��U���\p�f����Z���S���_J�&M�9/+V�V9EC��H��w�h�Sq�0��u�zaU���ZX5o�<�U�Vq��OS��
��8?bR���]���t����g��t��+���=�u���\�@���� 1E($@�*D�	���+Ab� `�W�! �@�]q�sFr����$V���1c�g�t�[�n2d��5����e���f_W�B/���*]]j����N�q���s��::t�t����{�|�I������K/�T���.Y�~�h!�n^
������?/�z�2}���f�%sP�?+V��3�8�\��S����d��Y�F}����s���m�����Fe���;�_?�E���L��
����y��gM[�S�~��tX�?���K.�����6�����.�<EaU�,�D@ �xq��x�4$E����H�����+���� ����|�.��@�
���7�<�,@����Vm��A6lh`�xh�����>��~�Q�F�>m�%���<�����0��Q?��i{��w���w����E��MW��"���7���o��?���s���I��IU�XQ^}�US����p���+�Vs��>�v���}���/�Xl[���O:����
��W�k�.��=��YR?-��+���'���_p�{��2g�s������-[�������U���fN������������]_7
�|��3@�)��[4���@�drW�>\E�h
���f���W�M8�� wE?F�
��
��u&��U��Z���#�������K�.]��24}�t��Q)�z�������6��U�n���b�a��A2v�Xs���r��W���5j��|����������;?����p�	���k�J�2e��G��{�9_�~}y����6w��Hc�[���e���f���,�Z�x���,^x���;�<��I���3�,��R����L����/��P�KW3��e�{I����?��~�PX��&}!� Q^�"��%
��J��"DT����0-($@�*D�	���+Ab� PH��U���I.��={�����Xv�����d4r�H���y�lV
>��OjA���*�JPZ4V�v�e������������2���=%�������g�m��W��Y�JR�tE�e����������
0�������~��Z>����gI-`�����Em�v�������>��#9���q�1q;�m���^��/��=�1���SO=�=���U~�� ���-�AaJ P���T" �@�]
SB�"�WE�p".@��x��)@�*����I.���}��jJ��=Z$����|�r�o����RmV�:��m��u���t+��I�x�����
F�v��/����{�I+�1
��-�rV��b!-r�
��T�B���;������mZ������En�mAV�\r}�3f�O-j_N���tu0���f���+�9�1��RWe�c]	KW	�U��Z�(��FK� �DG������ ��wr�w+Z"�@t�]��3A���W%�p�)@��f\��,@�*�'��I.�R�;��C��g;u�$Z��~�����3�^��Ja���U�V��a����W_}U.���F�k.\h��������L�����={��� M��EQ�����k�{��~�����6n�(�����S����T�V�=.n'���\���s.Y�D=��B���i�9>�46�v���o��FN;�4��NW�:u�r�!�8�v(��%K� �DH���� ��gr�g*"�@��]
SA��W%�p"*@��h`��(@�*�'��I/�J]!(Rw7n�z���(Viq��z�*=��3fe"�!V�Z%ZH�~�zsJ������~��g9������}��
7��\6������	u��-��P��9�t�s�=�=�U�Z�n���Z���s����;OF��^/i'��*�\���_3�~q���/i8_����.��_���Z��������<�o�!u��u����U�4f:��>����U6u�@�����@0
�H����@ "����i �@���R�h� wE0(L	J w�J�u��V)��g�-��Kz��7-X���
Mz��-J�UZ�s�����SZD�E5�B��e�d��a�g��y��f�}�I{�'�xB���M��B)-lz��g�K2t�P����{��\u�U���/:�f��B-���j������@����ka��O&��>�'�|"g�y�;d��
�{��r�������"5mp������#���N.1����;:]�_�}i��1��f�^���T" � ^��C��$
���u������C������i��� w�W<y�"@��i
�����n��Y?Y����t�Ra��]�t�$gU����R�J��K/I�Z�
]��k��s�=���
5���_~�4���?���\}��2o��"�;'u�����;����QX���<�����W��OW
�OR��f���KL����G�v�����p��O�����V'��������_������v�p
Vrf���!���K��-[�T'}��R�\�L�q�&�?���A,��f�.@����:1 ��r�T�D+�++�t���]���������N�����94{#d���O�
��dvS�����{9���^�}�]9��#�c�;Z�������&L�?����n��a���E���R�������4�g����d���������Zi����r�m��+\9�*X��z�Y]��z��;w���d��-���W����&M���/�`�����gO���+���v�/��x-x���RWIs&w������U�re�T����D��-��y��2m��Lo+����B$�B����S�-��w.���Z�YRI���o��!C��~���V�jUS�U���$-�.�8i��>;� ��-^�l��/� w���o�%@��%K� ����oQ�C� �]A(3�-@��[���&�A+V�0�v�a�������a��Mf�;�n�5nIDATv��� �|�����Ea��Y#��/�������le�[H�y�%4��Y�n�j<��C�QOu�d�5&���k[
�r�����o7K�=�����Z�5��SOI���Kl�p�B����~���v����S�J��Kl���J��" ��/n>b�&@�
���@�Gr���t�V�WVy�,	��,��-X wY��s@���U���3�.���-���|k����7�]:���E�����~��'r�)�H�����:J6o�\��g�!������?m� i�9��/ �/nA(3�-@��[��@ rW���~���P�Z���8�!���.?�O�����Y?�w�i��������\:K���;W.��"Sd�4����w�}�a��U�7Z��}��2n�8��V]���w���ij��w�}���-i�I�/��9@,��f��@����
+�"��er�e`�G��W�Q�(@�
��@�7r�o�t��"@aU(����O>|�;��Q��w�������g�I�:u�C�\�����R�lY������k��M��P=���R�B����wF[�j%+W�4���
6������.i��=< �@���� ����wR:D��] 3�"@����N@ `rW������|a�@ 4
�B�v`]�JW���j�����_K�2e��D��}e��a��+VH����c�������5�=��S�s�{��3{�l9��s�S�'O�n����������@ ^�@f�]���;)"�@���| _��H' ��+`p�C_�]�0�	 ��U��;p�*U���~2�6l�PR���L}�Q����{z������s6��_��Tm����_~��\�w��=r�����l���,Z��m����gP 5�7j�(��
�^����w"�@x����2 _e�Ek���+q` ���+3/Z#�Q��*j�4�c�=V�/_nz���s|�m�
���u��f����K�.��O>�=~��DW�*i���Ke���n��[�J���q��s�A��-@l�B��]�Q�(@�
��@ '�UN|��!	��B�gX�I���7#��PXz����^(O=��;��)S�K�.��������q���.�����9��C�&��c����_���3G��i��3|�p����{i��%��As���\v@�xq��@�7r�o�t�
���f(�I�|�7#�@H����r w���� �@�V��`&���o�~���*W�,&L���?�9%�V�]Yj�����+��R�����]w�%��v�{NW��S��{\��3�<#�:ur/��_��s���\v@�xq��@�7r�o�t�
���f(�I�|�7#�@H����r w���� �@�V���&Pp�(�n��f�(]�*��J�5n�X�������v��7�����������Z%m.�����M���{���8i��� �
�� 6C!��o�.�(� w��P ���*'>nF���]!�3,�$@�����@��(�
=�N@���m[����r����O*U�T�m��=e��q��;vH������v/^,�5r/�=Zz��e������ �/nb3�&@�����@ @rW���9	��r��fI��<�"�@N�����]����C��y�����,X���A�V�*��{��4`��]�v��S�����������G��'��^��n��Fs���\v@�xq��@�7r�o�t�
���f(�I�|�7#�@H����r w���� �@�V��`&P�JUZ<��cG�9�����O��R����e�������/���'���V}���r�	'���w�}r�M7�����"��(��[����	��|��#P�� 6C!�@N�����B w��� ���+'>nFB��*����?� ��W��~����+���C�J�*U�sZ 5q�D�����s����K�;�<����^j�9'v��%e��u��}����a����1c��~P����"d���W_���!� � � � � � �@�5j�	3[@��*��[o��}R]�����s��L�>]:w���>���D����k��VF��^��m������qQ;o���4m���4e�����9NZ.B;ZT��Ul � � � � � � /
��/f���U	�;h������������#�8�9,��C�2k�,���+�v���X���X����Y#G}�sX����?/����k3g����������"d�CaUh�� � � � � � �@(��@� ���U����a�&7n4S�[��|����>��>(�]w��n��9��Ms<a����.Z�H�4i��-jg���r�5���t�SO=5���� �
�
��
| w�FIG ��+@l�B���W9�q3�$@�
	�a@ 'rWN|���.@aU�!�?�2e����g��.]����
<��������[�p�4o�����c����^����W/y����K[�n��+�����"��(��[����	��|��#P�� 6C!�@N�����B w��� ���+'>nFB��*����.)�x�bw�_�U��k/����a��I��}�K����4n�����r�A��.���8q�{\�N�Z�d����R��
%���HZE�p�-��wYj��6�#��_�.�$�� w��X ���*=�E���]a�3.�"@��E�{@��(�
?�gp��W��1c�q���'��~�{\pg��=��uk�;w�{)u�)=��?�Q������w�������g��6m����������s�u'i��=< �@���� ����wR:D��] 3�"@����N@ `rW������|a�@ 4
�B�n`]M*�S}Gu�,X�@�W�^�$}�Q����{��
Sza��	r�e��m.��r7n��-[�=�;?����i�F�}�]������N�:���$�����@���| w�NJ� ��+d�@_�W�0�	,@�
��@�r�/�t��&@aUh��
�s�N�B���l5k�������'��C�'���^8p����.Z�H�4i�v�����u����k���I@]k�}�1�6n�(:tH+�����<����=�N��s��_@ (^���f�S����&}!�@P����r _�*�� ��+u�D�\�]�
r? ��U��6��+L!T�+W�lV���m�,\�P~����&(Th�4�={��s�9�����m[��e�Y�=��N��U�������>:�������g@���| w�NJ� ��+d�@_�W�0�	,@�
��@�r�/�t��&@aUh��<�|�����\�����rU�~��B�
������-�:u*T�U�-�z��7���N*x)�8i��=< ��E^�,��5X wY��c�(@���K� ����WN:C���]A3�*@�����@��(�
�<���{���:��b���:KF�!����4Y-�����d��9E��������_�U�V���'��_����!���
U�D��.����6�]6T�l��l��'� w���!@���J� �@pVg�����+�O~���r���O��UK��k����c�Y�l�|��R�|y�Y����SG<�@��J��@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�#��(��-L� �D@���) �@������" @��@�x _yb�DL����0�$@���D#@ �VE64L@�xq����@ 8rWp����	�����'�+@���K� `G��e��^@�����/�����+�N�:���<]�(��|��  ������!= �@�����r w�nH ��*gFA�]�z�#@�
��Q�K��o��!C���O>)k���2e����4���*V�b� �d'��[vn���
����gt�N����w!�@�����r w�nH ��+xsF��@�
d��M�A(��<��V�=��@��y@�	DN����0!� @���D���*a` ���+C0�#�@$�]������G����*����(�
	�a@R�� �� w�%I? ��+Hm�B�\�W��q/�%@�
K�q@ rW.z��T
���h>7�U���B@�W^�|��3H��4� ����._9�,
��,��5X wY��c�(@���K�i�V��;vH����L�2i����7�����z��r��:�K���g���_}��|��r�GH���K��i������u��b��������{�)�����a�s�1����;C{�������O?�j���a���>���U�c�@���?���+�Qc� @��o�"@��K��'�
��R5�G������x�S��:v�h&{�
7��g�-��s������i�&s�R�Jr�Yg��7�l
�v��)�����^V�\�>h��5e��!��Y3�\���]�����g�yF�,Y�z����W^y�\p�R�\�B����0a��3F�l��v�n���9�����"�?�����_���7r�!����������~>��������w�IC��:t� 7�t����~i����O?-�6��|�I�����s�5n�XF�!5j�p���\
��{�@ A��%(�<*y$@���`�($H����`���\�|�2}*@�Jh�ylb.@��y#6}-$:��3���t�"�-���W9������i�L���/�Xd=��s���nk������^�~����E��h�B�z���U����S�N���y�s���O�Gy�������?�������;w�a���S�w��G}T�����F=��C���n���w�m���)LK�������?��i�(@aU��##�$O�����'F �]�E���	���s���
���9��@��]��?O�@\�]q�\4��ZX�:C]�I���SvS�LI���k!�q�W����5�m�;]�v�y���s�V�=����7+S}���f%���.-�j�����m��&�=��9�����*�S��)�z���d��9n�^�z����j�����7�]w��^�k�iC�{�V��y]E����s��3��VU�V5�7q�Dw�+�����+U�Tq��V�'Sv��j���)g�M��UI�>�� �^�j�� w�U8y#@�JL�yPb/@��}y)@�Jd�yhb/@����?�R��K�������e
���2�ZTa�~��c�u;9r����{����^zI4h���={�)�rN�'��{os��YZX��%���j�2��?�yA]A�Y�J���\6�t
��ZK��b*���>J�$��G���v��B�a5o��-�����Y��|���=�YD-��*�z��)��~�{�`aU��
e���r�QG�����^i����$R���D���FH�/nI�8��@~���#�<I w%-�</� _�7v��$���}���
����n��������
�a��O�G��UZ��?�9m�6l-r��n��|��9v~�5k�~F��7��c�9�\>|����f_���������������6��Yg�%Z,�����*5k�4����,����{�;��o7�OZT��^q�r��mJ*�z����{�5m�9�}����,���a��M�CY�d�z����`a���U�x�����PX��?@� ��[��3"�����)O�@�]I�2��@~���#�<I w%-�</�!@��G
�D>��s�g�}��w��-G}�{���_��������~:o����P?���s�_~�E��['���EQN��3g����������oo
��Z�5��T��~z����Zq[I�U������?��O�������I����3�B�����u��o�Ql\@��*�@H�/n	2��@
���0�<	 w% �<"y"@���@�$L�����������^ �^X�KNaTA����?�P:���M���.���n�Ro���p�����Y�b�,X�����=��3��'�toK-\rO��s������Z�l)���K��_j�����h�\t�U�����zk��>�~P�x@�t�b�S���C;v�9�?%@aUQ*�C@ �xq����8$D����@�����+��� ����<.��@���8�<y,@����V�
SZ8T��Z���P{��W�f%V���������f��,���g��'��R��Zv��WK�n�
X��?��J���e�]{��������ZX�z>�~�'�(����� �/n� �@�]q�sFr �U\"�<@ U�����>�E��e/RI/�j���<��sE�&eZX�k�.��������E���M:v���e��	�M��*��%K���i�L���r�s��=����jR{���sJR��ZX���?K����v���
*��%��jU7�x�i�ZX��VZ\��@qV'�y@�H��<
&��@��]	
6��@	���(�<
y.@����x���+O�c!���.{���Na��4u�����k����{����}���J�*�k�A]�J7m3e��_�?���'�|"����W_}�|J0���I���3�tOWX�
4h�~�o���%~
�����U@8,Q���y�� �@~���q�)H��+i�y�rW~���@ 	��$D�gD ��]�S��$���E��*;�Um���e����]~��r�w�T�^|��'���o6��7onV���\��u�d��Ur�AI���M�����+i���[ ��4�mRRaU��]e��y��C=$;vt�+���\?���q�R�Z5wu+
�
Jq\��U%�p
@�<��-O�c �0rW���"�'��<	$��@�W	2��@
���0�<	 w�2�U�Vm��U����m��Yr��'����Ou��Y�~�ms��SO���_f��g�������k1��E���&�~�M-nj���<��c�������WK����kZ�5n�8s\�^=y�����;
���M�4q�����~���������#�oqV'�y@�H��<
&��@��]	
6��@	���(�<
y.@����x���+O�c!���.{������]�vI������x����O�Xw�������g�}�=��Ri��n_��4j���6t�P�U�R7�4�UW]%3g�4��"��us��~��������>�����_��)��5�\cV�*W��sJ�-�z��'�s�zU����1�U.;(���D@�.��[�#��H��+�q�����+�d�$G�|��X�����+���� �r��XSX�a�F��/��s��������n�Z*V�(��<{�lY�p�{]w9�Y�t�{�{��2g���w����E�R��)��<y���������{�|��9��U+Y�|�9�Q���r�)r��'J�=��#F�}���4]1K����{��w��^p?g��
�JEa�K��
�< �@�����2�)@�Jf�yj�.@��{�?� _%'�<)�$@���h�,$G��e/�V�)������e�����+�t?������'�j�2�}�����}{�����U�TIz�!9��3��
4H���v�f��2�|s��_~���H��8����.�{��G��)������`���U�h� �@�xq�{�?� w%3�<5q w�=�������k��| w�S4y�#@�����N�Z�=��'�_�w�IH�2�|��pW+V��3�8�\h���L�>�p���{���e�sM����/_�]��R����Y�i����W����B+S�uW��t)�L��i��m�+����B6m�$Z�4j�(�\��>��Q�v���f����~/����z�����?��Y�*��z���
7� m����e��^�	&H����9�������s�@��U��#� �����i`y,�\�������SrW���B �WyT	���d�< w�aP�H7n�5k���@U�zu�U�*T�������*���7���m�Y�J�*X�TT��w��/���\:���e���.��������_��u�������:J=���U�����x���M@��/nq� �G ���d���F ����G��#��Urb��"�O��|�&��@r�]��5O��)@aU~���B@ M��4@ &����i"�@��+�����*��aj P���X. �@��]SC<PX��& ��]���G��#�LrW2��S#wrW�#��H��*9��I�'rW>E�gA 9�����'E����*?��S!� �&��[ rWL�4@ M�����DX�|��05(V��U,
@ �����!�(���D@�.��[�#��H��+�q�����+�d�$G�|��X�����+���� �rWrb��"�@~
PX��q��@H��-�����+&�b� �&@�J��",@��pp�+@�*�� arW����@Vy@�	 �q��-�d�$S��������]���2�#@�JN�yR�I���O��YH��+9��I@ ?(�����T ��	������D���@1MH w�qp� _E88L
� wK����+��aj ��
�< �@�����2�)@�Jf�yj�.@��{�?� _%'�<)�$@���h�,$G����X�� ��V�g\y*@�xqK��b"@��I��&�	���88@���"���
�����DX����05@���U�h� �@�xq�{�?� w%3�<5q w�=�������k��| w�S4y�#@�JN�yR�O
��3�< �i���qp�1 w�$PL��]i �@��WSC�b�]��p",@��pp� �A ���_�U��k/)S�����@���-[9�C�0�]a�36d+@��V��@ h�U����~���P�Z���8�!��
�VX�{�nY�f�l��UN8��bg��o��#d��E�q�F��a��r�H�=d���/�^. � �@v��e��] ��+\FG���]��q/@�
��@ wrW��������7gD@�O���V�\)��
�Q�F�y�u�Y�����w��)�z���������\��������eK�� � ��/n> �.@�
��@�r��t����af�Y���3(�!�@ ��@��&�Sa��3���k��N:�$Y�ti�9=�����7����N��9S��o_�%�!� �@��e��- ��+�0�B���� �@(��P�r w��� ��+vE|������*�U��Ue��
i�7o^��Pu�Q����k����U�W��<0�< � ��/n��q�+@�
���@ ;rWvn������7gD�]����!= �@������S �����7K��ue���isi�����O�[n�%�|�F�d������5k��O?-z^���_�v�*��/w����G������ � �@���eo�� ��+<{FF���]��q'+@�
���@�r�?����
����f4@�o��
����n����;]���^�SO=�=��|��'R�^=���~�����i��Sh��t�����N��/�v/ � ��/n��q�/@�
?�2 wen� ��*wFE���]��q7�#@�
��Q@��*�j���|���V�Z%5j�p�Sw
au��M&O�����4h�0�=~��7��3�p��A@��xq����@ \rW�����	���s�.^�|�9#"�@����
�� wo�� ���V}��Wr��G�s���ke����q��-Z������/����k��=N�Y�`��v�i��Q�FI����cv@@ ;^��s�.W���?�#�@v������ _o�� ���+wCz@���]��3" ��@��U.�����s�7o��~���q���m�d���K=%[�n��+��s���[9��C�C���;���=f@���-;7�B�p�]��3:d'@�����@ x�U�������r7�^���9#"�~
d\X��/H���9�\�R�9��8uG?���uk������k�qQ;U�T��~��\���+d��qE5� �d ��[X4E����"
&���2��)�*@�
���@ KrW�p���
��B�gp@ g���&N�(�^z�;����E����n��vI]q�����~�������s�T�P��~�����a��cv@@ ;^��s�.W���?�#�@v������ _o�� ���+wCz@���]��3" ��@��U�<��t���������z���q�N�F�d�����H�f����;}���x���i-�����{� �d'��[vn���
����gt�N����w!�@�����r w�nH ��+xsFD����j��y��eKw�-�&M������
���w������V�J������S�k�����~X���*��@�N������ w���� ���+;7�B���W��3"�.@����@ xrW�����)�qa��_~��B�m��&�
*4�	&�e�]��?���e���qQ;�]w�<�����7�xC�8���@�N������ w���� ���+;7�B���W��3"�.@����@ xrW�����)�qa�~�	'��l�Q�re��x����v��!�w��\��=7i�$�������;�V��c�9&��/��"{��w�9@@ s^�27�_��~�d.@����;@ �U8����	��r��nG���;�"�~	dUX�+T
0�����oV��W��l��U�������>�^�������~����K�������s����z�=��sgy����cv@@ {^����NO���=##�@������� _��h ����GzA�`�]�z3 ��@V�U�7o���>Z~�����hU�s����w���a@�W���
������`����� Z��K7��-.#7��x�I&�Ig��<��!Y�Va�\��������g���[�k��=�z���A�$
xpK4��FdW#�� �( �
'@ ����F�
��
1ME�@6���Z!�"PjcU\��|���������v��v�]�7~p������b6����L�$
xpK4��FdW#�� �( �
'@ ����F�
��
1ME�@6���Z!�"PzcU\��r	����o����A8�N����f����;����N�a���V���5 @�@9n���"@�Y�������]���"@ ����o�"��+����]��U$@�@�I��B^�W��v�z������w�v�a2���p��
R�������g�g��u��f�.g @�"nA�����++�bT$ �*�4
����� @��U�)	�]@v�N�j����t��@IDAT���Vc����� b�C���RJ1N�j
5����Q9�C��N�)�!�v�0����(R
R���L���������}��}��>������gz��^�}����������W���7�`�6m����8�i������R�v�f�� ��������ys�@ ���8G��!�@.rW.�#�@��Wq��A� �� J�A��	������'P-�����Ik@(D��B��� wE%�� P���=�E�0�Waj3� w���S���6c!��(��oJ� ��N�����	!�@rW$� �@��]�	B���0�F�X��b&�9�]9`8�$D�ja�'�|"��-�=��C;�0�7!L@���������!P����
-�@Q���:�<E%@�*�p�0�F����P��������� �@

.�z���e��1��������EX�n]���k��+��Z�je]�@���-<kFB{�.{����	����f$(L�|U�w#�@4��h�
 w��� �@�V=��#��K�J������3g��G]i[ � ��}^����#� w�7f�/@��oJ� �F�|���^@�����/�#��r�WzE��ra����+}��	<�:u�����+���_�{h� �vxq��H/ ��+\oFC;�.;�����W��������#� w�7f@��@�
��m�&����l��!kn-Z������_~)o��f��]t�L�>=�@@��/n��������#� w�7f�#@���H/ ��+\oFC;�.;���D%P������K��m�����/��'�����?�)7�|��3�?�;�����u�f��@�
������@�����+�"��[r�[_zG{�+{����	����f$�'@��gIO �@U*�����<���|������<���e���~���zJ:u���� ��xqso� `_��e��@�����1# ����GzA�p�]�z3� w�q�@ *�*V5o�\-Zd�|����k��&��U+��.]*M�4���r�-r�M7��� � ��{^��3� w�7�Gp/@�ro� `G�|e��^@ \rW����v�]v������/g�y�|��W2a�9���������G9������|_��K�,��zH>��C���O������-[J�V��i���v�y�f�9s�����r�J�a��u��r�1��)��"���k�}|��2m�4y����<��o?�����x��R�f�J�(�`�����G�2p����9��@�
����'6l0�r�5�����+|����>}���p�� ��	���5#!��=r�=KzB���]�Y3&@�*���@ rW4����	��
��n�%%%2h� �Kd��w�t��!��|���z����!�"/��r��*k�m�6:t���1#gS]���K.�y}�����{w��qc�mt��f����������l��v�]wI�Z�r�)}A���S]z��2l���M8��@�
��jO+u���[����:��Ce����y��'�<�HE��� ��xq�Jw ��+fA��.��t���W�h�
����58 w9��cZT5|�p�2e��[����?�X�9��p�fa����{���T�~}�"��o�)�6m��_u�U~�������WK�v���w�q�����:���~�qi��A��f��^�^�z��w�e�Z���j�*�|�6mD�t5�����{N����(��$���J�U�+P�;V��Z���}{��ng�q�<��35� �X���2(�!�@(��P�,��,��8 _9��cp(@�r�K� �L������������������g�TYa�c��K7�tSV�����w�}�Ey�1b�_��c�~��2~�x��,X�@���Xw� ��Q)�2�Fu��Y��[g�������M?!������>�l���_�����u������;�4}�'J�h������;�
�UY�=(��J��,\E�~�����6M(��H�k ������+�"��[r�[_zG7�.7�����W�M�����3� w�7����o�.=��\{���vTQa���k�}���j�{mV�����/���_�_P��z�l���_���'���z��w���u���uG��Z�h��[�l���������3}-�z����F��u��\��q������g]��x�
�9�5k�x���V�����*��ar ������#� �@���p�
����8�� _�7f�/@��oJ� �^���������2W��O��������J?��������j���������_��aC�E�I�z��co��/�4+J��������N;���z��1c�~���e���f��?��Y��V����&���o�JXzB?I��cG�Z��)���?���>���k��_:N���kyEVVe��w�������!� `M�7k�t�!
��B�f(�&@��FIG �X�|���@����	+�"��cr�c�u����;w�yb���
�����[��M�6Y��k���l������6M�4I&L� �J�n�
���4m��?����E�{�9g��J��+h�U�_���EW��m��9��uk��Y86m����
������^��.��w�q�������[�f}Z��jV�}h����v��W��W^�y�x��n{���)����/DW����*��(��}��  ����V�!= �@�����
 wnH ��*gFA��.��������qN�(�=��\q��Q++:�����W^1m��']�v����J?{7x�`�������~0haU��=�o�������g�}&-[�4'���1C��L�.]�����s���������/4m=�P��dIev�9w]���?4�3?%��PK�,��-k��'����:u�$�'O����h�=��)����8��PX���
�b&� ��=^��Y��'@�
���@�����%=!��[��[_zG7�.7���n�]n}����?�(|�������F���������Y�f��,_�\v�uW�XW�:����z�����"�\+V�JK������}��I�{�7U�s������V�
P���*[ZP��������-[����7[�z���U�?��)�2�T��S�|P?�[�JV��z���Gl����Ja�����~�I�����V���)����n0?���X+	�j��O>Yf��UQs�Z��u�Z�j�1; � P5^����] ��+ZFG��	�����] ��*|sFD���]���/@�rg���u�yz���qR=GO�+�]�IWu����/�Ww�l<u�T6l�9��sg���;3/������mV�r�-2e�3��Q�D?��k�>}�)����z��#F�W_}%�76�d�B�������y���^x����t���|�/����[5l�P^{��\M��V���)�������jZ)�� ��	��V�w#�@4��h�
 w��� ��*<kFB{�.{����	���Y�o�@J�ow7@�=�yw������~[�:�,33�L��E����2���m[�J���={��������Ka�UW]%?�����^u�y��;_=��#���A��u���k�����[�s�}�O�g7n�h�{�
�����\u�w������'����ks)�x�����$�}.��U�����@@�0^�
��n�F���;�"�@a������ _�g�H `O��e���@ <r�;�4V�����'�(�V�2�s������~�O�t�_�����j��a�+�'��Uc������w9��������\�
����H�V��� +VeV����r�Hfa��g�-'N�9�5k���j
�r2%��U�!� �@���UnD���+~1aF P���r#Z �@<�W���@���]�y��!@�r�4V������g�t��/���G���F�)�&M2�������}��?��tu�-[���D�-���3�6�>u8n�8���k�{���?�5�\c����Sn��VY�n�s�1�\����>���OJ�~�L��{�L�0!�V�\)'�|����s2%�B�
����y�f��]wI�
��� ��/n�a��� wg\y*�]��U���(�U���'A M��4E�gE�x�]�b�������K�f��-Y�Dv�qG��u�4o������D�ua����[�4�
&�^z�)����{L�#FH�^�r�7u�T��t�������o���?���>��3����yi�T���e��y��{w��]�v2m���n5��.]*:t0����~:g[���$���J�U�y<f� �*���H��+�Qc� @��7�I _%%R�2�]��#�@R�]�"���*������������3�=����t����;�����G5�A��Ka��w�-��v����5t����>|��{����
7� }��5�e��������/��������7��G�����O�Z�j�h�"����9��qcy����6�w4���i#�j[�D�(����V�88L
@[�����S���6c!��-r�-I�A��+����.�].T�\���	���j���r�%���;�#�������9�|�~�.������;���S�m��5�pe*�JPZ4�k���^x�s����N;��k_��/7�z��#�,��e��I�����F����� ��JW���W�^n:��o��\�����t�M���<IaU�F2��TX��G�?z]-W�_2�% ��/��[���'D��]�U�	�� w�yB�E�|U,��9H��+]��i(r��H���j��-��)m���k��{��+d��w�+������	����5kDW������m���O�y���L��W���Y`6j�(����9_�-��V���������I�&�'���/�v�w)���i��n�z��U�QXU�P��W��J�?�������A��C�"� �@xq�aP�T*@���� CrW���@�\�U�,�D����b ���
���e�r2��U
x�-���)S�e���e��9f��.�1c��������J�{�)����6}�t9��S�~�?��������S�����3W��b3=��q��%%%���Z��[���a�����S�������!C�~�?6l���>�?���oK�����\;V����y
��f� ��5^��Q��(@�
��@����%!��c��c`�G'�.'�t���]���^X��������T���-Zd��t?N�U��s��z�*=��c��S��z�j�B�u���SZD��d��y�fi������.4x�`���;v�X������{�E��U��?�V�N���3fH�6m�cCW�z��W����>[&N��_�h����t�y���x��Y!� `U�7��t�!	��B�f�*@���Ig �P�|���@����-#��Cr�;��V�l����[uI�����_/�B�^�h�Sa�-�p�	~��>���5j$��/��o���L�>�K/�$;��c����9S���M��B)-lz����K2n�8���������G�~�i���A?S�]�A-����>����RX�I$�/�U��3E@����U��@ BrW���U wU��@ d�U���V�]V�B w����?�w�������:�t]�[�
�t�Z@u�E��U�=�.��"�=��t�Ae.o��MF�%��UE��_,��/��7�|#}���W_}����I��g��V����J�b�������	!� `_�7������]��������#� _�q�Wp+@�r�K� �F����U{}�S{w�W��c��i���9�*t��-_��y���}.�}���?��Y>��i~������������K�f�L[]Qj��y���H�������s��i����k��,���O=���x���
W^]k���r���J�5��e�n����h�&�6m������[�j�u���g�yFz��m�]v�er��7Wv�#��*�0< �a���2c ��mr�mQ�C�0�]a(3� _�P�[���8�!��
r�
E�H��7�\�RV�^-���3�T{��G^$7n4�`���O�~-��Y�f�>JJJd����b�
�y��MZ�V�Z��}�0�V%7v�@������!�H���`0,@�
LEC�X�|q�$@��7!�@������ �@�V�� �$A��$D�9"�@irWi�@ 	��$D�9"��
��� �@�]I�sFr�@ �V~����E'
#G����?�L�N@H�/n	SG ����GG �����#�2�U���"P$��"	$��@��])8��E'Ppa�K���K�&M\A� ��B��T���D���]ER�T��Rf�� _EyR'@�J]�y`�B��Ua�!@ �V�8�<: �@zxqKO�yR�I��UL��YH��+=��IH��*�d��S�������$]����2H��Ui��� ����-a�!(:rW���B ��T���D�(�WEF��	��Rr�� wEyH�@��U�
�>}�8!l�����Q�I�t� �@�xqKS�yV�G��U<��IH��+M��YH��*��c��U�������$[�����1{@��������W�!� �@|xq�ol�� w���
�W����03� _e{p�� w%#N���]�!�I��*ic� �TA��*�qD.@��<L� @��� �@$��H�
 w�� ��+vE�	PXe���@��/n��
3C�����6\A��
���f����l�@ ��d��Y"�@��+��#@ iV%-b�@�*��V4nA���]���	 �@�]U@��D�|	;�"�@����" wE��� ��5
��Q� ����-��af �[�����+ _rW|c��@ [�|���$C����81K� we{p�$M����E��"� P^����- ��+�0����
h�����"agP(P��U  �#�@$��H��&@a�5J:B@ ����76�r��r�p�+@��ol�d���=8B�d���'f����l�@��	T��������?�g����m��I{n�� �@�xqKU�yX�F��U4��AH��+U��aH��*��c��V�������$Z�����1y@@�TX� �$K��d���"���
���% �@�]I�sF ���t���F ����G��#�NrW:��S#�@�PXU<��I@�)��[N. �@��]1SC�����4\@��	��b����]��h�1 w�, L�S���<�h� �@xqKb��3���
 �@�]I�sF ���t���F ����G��#�NrW:��S#�@�PXU<��I@�)��[N. �@��]1SC�����4\@��	��b����]��h�1 w�, L�S���<�h� �@xqKb��3���
 �@�]I�sF ���t���F ����G��#�NrW:��S#�@�PXU<��I@�)��[N. �@��]1SC�����4\@��	��b����]��h�1 w�, L�S���<�h� �@xqKb��3���
 �@�]I�sF ���t���F ����G��#�NrW:��S#�@�PXU<��I@�)��[N. �@��]1SC�����4\@��	��b����]��h�1 w�, L�S���<�h� �@xqKb��3���
 �@�]I�sF ���t���F ����G��#�NrW:��S#�@�PXU<��I@�)��[N. �@��]1SC�����4\@��	��b����]��h�1 w�, L�S���<�h� �@xqKb��3���
 �@�]I�sF ���t���F ����G��#�NrW:��S#�@�PXU<��I@�)��[N. �@��]1SC�����4\@��	��b����]��h�1 w�, L�S���<�������e��U��g��~��'
4��5kV�1KJJd��u�z�j�^��������5j�_��	�'���=KzB���]�Y3� w���'p+@�r�K� �F�����^@�����/�#��(�r-���n�*w�q���/���������g��C�2z�hi��q��\��?�c��;�L��u�J��������Z�j��^����W��@�����?C���2c ��mr�mQ�CW�+W���.�].u�\	��\��/ ��U�8�f�
6H��]���^�tN��r��t�M�[�`��o��LqV��:u�$�f����k���u�����@��/nq��	�����18 w9��k�*@���Ig ��+$h�A��.��t��.@aU���
�t�R9���D��2�C9�|������<m������/s^O|����e�2EU����?���o��?�����'���v�����$ �N�7w�����]�l��	�����3� _���7G���3� ��]r�]OzC���*l��������i���Y<��M������C5��b���������Y~��R�^��sz�EU.���q�2e��g�}D?7��[o��g��U�5d������{2w��_���������0�#��r�U�D��.������W�$�� w���X `K��eK�~@�h(���=�Q'N�(�_~�?n�v������v��?�����W&O���������.��ug�����m[��P=��#R�V-����]�VN9�Y�j�9_�NY�~}�q��_ �@����� `]��e��@ rW��V�WV�B w��p `E��e��N@��(���>��uU�+V�A�����?������I�[���:�]<���L��w�;v�(�>��J�<�@�8sg��������?5c�����c�I[Y� �/n! 3X wY'�CA��2C ����F:A���]!�3X wYa�@ 2
�"�o�w�yG�5k�8j�(�������v.���	?-��{����7���e�L��_=������;%%%���{��l������~����?8; �@������P `M��e���@ DrW���	��
��f�H��<�"�@A������\����C�~��������h�����_��?�wg��%��iS�������A����vz��)<����~���k�����#���(��[�����]�(�B w���P P��� >nF���]�3,$@�*���@��(��<�'��[7����V�n]Y�~}���7o������*U�F��k�L�6M.��b���/�(m���������;d�������K�&M�q����AB��-Dl�Bk�.k�t�!
��B�f((H�|U7#�@D����
 w��� �@�VE����K����;�<y��Gd��u2e�������O?�'q�	'��'�,W]u���������[o�Un��F���+�������y����s���%=>��s�q����AB��-Dl�Bk�.k�t�!
��B�f((H�|U7#�@D����
 w��� �@�VE��V��?����R]t�|������;
6�?�����U�����k���c������;�S��\��������/�����Gs���|v@�xq��@����%!�@����

 _��� ��+"x�E���]�q3 ��U�����o�.���;�������<��y���SO�j��wo���w���~��5kz���]�h�4o���6i�$����9N[>; �@������P `M��e���@ DrW���	��
��f�H��<�"�@A������\����C�v�6m����Y
2D7n,�7o���zK������\�l�2�]��?��]���Y�����?��{��'Gy�YW���
����|�*�|����3�U��[@@@@@@@ B���("�C#��!@aUXIl�a��W�^��_v�er��w��;��u����t��Q�.]������e��a�q�n�d���q��*]%��#���3f�\}���8m��U�Y�n�hq � � � � � �$K���d���"�*@aU�����k�}������C1�S;��C�y�`�����eK�Pt���?��?����<�����m��z���qy;����4k���4y�d�O����|�*�PXU4nA@@@@@@ V� L�S���<������~�_��Y�~��'�����:W���s����?��?������e������Qv�i'����������uk���?,]�t1�i��G`Q�o����P `M��e���@ DrW���	��
��f�H��<�"�@A�����9$����^�<�L����d��	r�I'U:�~
k��Y��G��+�_����"/��3�8C�4iRi4@ 	V%!J��Z�jY=|��'r�d�+}p�����7���^�x����*#G����]�V4h������O������y��L�D����AB��-Dl�Bk�.k�t�!
��B�f((H�|U7#�@D����
 w���!�����A�d���f����O:t��s��[�����MV�F?_����\��R�N���q
��PX�>��:HV�Z�w��������3�[�n����{�O�����������oH�V����v&M�$�/�
V�{�9N[>; �@������P `M��e���@ DrW���	��
��f�H��<�"�@A��������U
>\�L���TYa�w�!c�������.��eK�Q�����;�q�F��~I�������A �V%1jy�������K����zKZ�hQa/��e���~��{,X ��m��i��gO����~���=���_�,�J[>; �@������P `M��e���@ DrW���	��
��f�H��<�"�@A����������.�]w���??k��
��KW��?o����\}����N;�S?���L�<Y���?xM��{���;��� �4
���*�W��.��m'N����{�������Ix���>�L��gs���_�����]2K�=���qy;��f5k�L2����W��@��y�y�����@����
#� �@������,@��27"�@�����,@��27:��}�<��Cr����;BE�U#G��Z�n��v����������vZT��Ul$U����F.�y����r�G�w�p�	��K/I��5�s�;_}��p�������
6��>�H�U��7;�����_����_����q��~��u���)�X3f��;i�/��9@B��-d�@��.��t�!��B@f�"@���H' ��+dp�C+�.+�tbQ�[�nY�T���t��i��[QaU���e��e���9s������t�R����9�_���������G QV%*\U���N�h�"���]w��g�\q�Y�n��62dHf�����W�^���/��|w�z���9������m���p�B���+�����u'm�e=< �@����� `]��e��@ rW��V�WV�B w��p `E��e��N~�����;�X4�|Y*���>��7�6m������7m���l����h���@5a��9s�9������D��W����k���X������������'����{�H��UI�\����_�*'�|r�]��
�~���^{�e�o��Y���JS �5�S���\�R�������r�!�������w�n>���;�s6l0�J�,�:�����G���vt�4��=7@��xqK�q@�����&}!�@X����
 _*�� ��+
u�D�B�]�
r�'��c��.�������_~��T��\ ����9?n�8�����F�v�}w<x�YU�F�����V�������/�g�pM���U����Y
:T����7Md������o�?���������;��������o���A�v��2����z�5�V�%�4h�u�;H[�s�C��0�l��l���!@�
C�1@�����"} �@�����l��l(��
����Y_��7o�4j�������Y�f������z������������Q]{����X��_��-[��E_��Yc�^~��f�����:q��*��q4�Y�feU�V4���S��K.�����/���;�)�*}��|��[��+���_E\Cl
��fS��@ ,rWX���6�]65�\
��\��7� w���_p)@�r����K�u^��k�z�H��U�3�-�9�3f�r,����W���-��;�4��c��J��9x�[o�%����w�_'@aU�BV��?���o�z�_-��Yg�e����e����=^�j�����|C�����n�A���_��2���_N �xqs�J� �\�����@����*]"����V:E��.��t�N�]NXM�_���//�ls7@�=����?w���J���=_�=��S-Z$�)���m����T��_��/XU��*��8q��5���g�� � 
�,�S��}�|����K�m���|���C�}���JC���O&A/]�Tj��)
64K������*	p `O�7{����	����f$�'@��gIO �V�|����@�����+�"��[r�;�4V�����'�(�X�ns�����[��ZP��U���'o��f��+�q�����I�&���#�^��k'����Z�j�9vH��UI�sF@ O^���9�B���00	�S���'�@ 2�Ud����
��V�L����>��U�9y�d1b�����e���>�6i��nW]u�8��V�N!�U[�n��n�I|�A�6m��}��';�����*@aUR#��@�C��<�h�� w�&L� w��ES�T�|)?�#�@�]U��6�T����?��U����f���]v�E�,Y";���h�S���e������d�����V������_?y���q:v�(&L���a'�V%=��@���@�	�N����0! @�
�D���*a` ���+O0�#�@,�]�����*����_��+Cu��A^{�5����?�����G
�_���
6H�n�d��e�8�]v��p�
�>?���1��*�bz ������"} �@�����l��l(��!@�
C�1@�����(�!�@�.w�i.��;w�\r�%WW����{�g�f��m���Q��{n`�|���Yc�_�n�?�~��W�^�1;��U�I�@�
xq��K [rWlC��@�rW8\B�X	��b&��]�h�� w�G���l�"�7�M�6`]5J��m�����;{���������>���:K2��|�Ai��m����$
PX���1g@���-O0�#�@,�]��@�<�]y��" _EF�� P���<nE���]���\X����r�L�2�w��Y���c�/��3f���O�������9��#.4]���.2k�,9����E;'@aU�B��@�_������ wEf�����7��F�|�;�"�@a������ w�sO{a����/��vZ�'�xBZ�hQ�|E'�Vi����{�������	��*!�b� �"��[!z��Q	����g\(D��U��"�@���0�l	��lI��)@�r����*�m����g�m�����_]�U���
�7Ha���~+-[��??��xA�W_}Uj���)m���U�	B@��/n�M�����3� w�7�Gp#@�r�J� �V������@�������Ja������������"�������)�z���G�A��j�f�
��D8H��UI�sE@����U��@ RrW���U wU��@ t�U����]�B w�#�v���:�B��5�M�Z��2}���r��G��]�p����>�q�-�z��M����_N?��2��s�=r����9��UA�hW
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�d��@IDAT�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny�p.@a�sb@@ z^���3@���]��qD/@��>��	���9�
�%@��W<�
 ws� W
���� ��E^�,b��&@�
���@����"&]!��S��S^:GG�.G�t�N�]Ny������/g�y�|��W2a�9����������G9������|_��K�,��zH>��C���O������-[J�V��i���v�y�f�9s�����r�J�a��u��r�1��)��"���k�}|��2m�4y����<��o?�G�����O��5kV�G���^{Mz��!,}��q���}�v�;w���G}$�}����z���T������������?�Xt�F��!�"]�v�z��U6���SX��@H�/n���F �����x~�)@�Jf��5i _�1�<3� w%?�<i w�1��z���4h���=�L�����:z�>�@N=�T�V�Z^~��@�U�h��m2t�P�1cF����r�\r�%9�/^�X�w�.7n,���w��Y������{�������u�]R�V��mJ_Pg����K/�a���n����g�����[�n�h��������/9��cs^/4&_~���p�
��3��C/�1Bz��)��U��]��V�� �	��-��c��X�������$X�����1uR&@�JY�y\�D��U$��1H��+eO��jQ����e��)���V�jA��s�_�d��J�t����s�_��Y��7��M�6�����*�H�?�������]�vYm�;�8��?��U��>�����A�����/� �z������.fu&�{��U��6m�����I�m���Sy[X�U�>��u��Et�(o����k/y��W�S���0V��g��D��t5��_�o���7��~���5��1z�h�������PXU��"� �^�(��Y��,@ !����i"����� �@�]I�sFr���
|���r�u�������XYa�c��K7�tSV�����w�}�Ey�����'���o����{�e���6����b"�J�L�>�;w�u������w������\�~j�+�9�������_�j��7y��w�i���K����s�w�}w���V��~�O�5jd�W���g�O!�x���{-0�������������woy������i\����S�f�����������T��!C���O?m�������/��CaUX4E@ ���%5r��t������
���9��@��W��9O�@1���!�<� w�/�qb-��U�����r�ZQa���k�}�W)��lV����/������$`���g�U����o
j�6��'�s������[��l�jQY�-�s��-��w��?�9s���VO=�T�B��U�7n,�?����o�a>'�f����f�*�U�J��?l�����&x`�~3O�,[�l1V�'�O����G�h��~�O7-������FL��o/'�n��f��������:����7�|�rsn��QYp~�<w(���� �$Q��$F�9#����$Q�����1g�)@�Jg�yj�.@�Jz�?� w�3�q~j]i)s�*]�H7ou�\�U�
�~�/s�b�+V�S6
����I��
�!-Z$�������/����(��:-��i���e]=j��1f�{��2r�H�_����,]}KW]�6]	IW;�M?I��cG�R��SN9��g�}����H��t��MW�����RX5p�@�b������U~��_ev_f��g����.��{��Wc�Eu��U+3��]|�������*Z��m����o�5�����O1���b��V���q��y�U�/�UU��F@�#��[rb�L@���]�g�$G����X1S�.@�J�/��G ���d��Y#�vrW���_?�7w�\���A�D��rmZ���E�MW���y[�&M�[}HWm�4i�L�0Ate#�rV����������?�{������*-�:��3������9s�u������1��]�v��)g��O�]t�E��q�'�>�����uk��K�f���m��nW_}�\y�����������{�"�/��Bt�-�\V�x-,>|������E���.~���O��tb�1���@��O?5�tO<�DyS0�t5/]�K�:���9(�
�
��V@�"��[R"�<@ S�����>$E����H1O _�@�$
���5���.~�{�1���+Lw�1]p���+����b����mZX���<x�)<�Q����]����={J��}e�}���>�LZ�li��lN����O�i�n]�t�����l��2��<z�h���M�C=�_}KW�����2���^}����Y�g��j��%��n�i��W$��S'�<yrV[-D{���L���O����ua��g��4��y�We=���9�Y�n�9��5��n���t��]��5������3o/��U��p@��������� �rWZ"�s"P\����'O�@1���9�<�+@�*���d�����������r������7O5j�{;����f��y��|�r�u�]�c]����������2��r�X�+-����{��e'�(�����O����?��;Z��U�
0@���z��e�x������z�j�U����Sz5'-B�S����~>O����2���3?���iS���27�s������k���,����B�E?����[��`�e��w�y�����3Z$�����I��~��Gr�I'�m��NWU+t���PA�G@ ��% HL�����p @�J@��"�?H��+�Qc� @�r�X�j��������,5kT����o����`E��/��_�)���S���a�����;��w��y��� �U��h��J?�6e�3��Q�D?!�k�>}�)����z��#F�W_}%�76�d�B�������y��[������?��c����}���\�a����k��j��ZX��w���_~�����������< :n��+�p����g���+V��t��;,s�����{�3�<c�i���6b�5H����7�v-Z��������f��9�~����V�D@ ���%6tL�T��R~��
��:&�@��W�9�@Q���"�<� w�y����m%�����F4v^X���o�Yg�ef����"-�����mkV��s�g����?>�r��q)��������6s����P&���#���A��e���k�����[�s�}�O�g7n�h�{�
������t�w������'����ks)�x�0ha���E�����Y���x�����jT^�Vy����oV��k�gm����2���cZ\�������2��l������� �@��VA�H��+�A��(rW�G@ %�����D���]EP�����:��U%%%r��'��U�l�O��g���J�����O��.�2K�����c���~��R3��C}v-���+���?�!�Z�2���X�YX�
e#�}���N�6-`�������>Kfa����*tP.8p�)��^a�������R���6w�\����v�������PXU� �#� �^�$��e�]eH8�	 w% HL���$Q�����1g w��
���J5'O�l>{��^x��=Zw�6r�H�4i�������%����JW���eK���h��|b.�S������]�������\s�5�z��=��[o�u��������O>�����_?�����kV^2���r�J9��������_�*�>�l�Q_z�%��z�]�v��+�Q���E����h����VYa�����7m�O�������3���w�?��M�����e��(�*��� ��/n�O������i��� wW<y�Y�|U����(^rW���'C���]���������K�f��-Y�Dv�qG���5o������D�ua����[�4���8��{�1mG�a>�����S������\�EV�~��~�������g�����d�K��j��-���3�:�^��M�V������K�C�f_c���O�l�]�)@�}����Bi���~���M�c���i�^xA�<�H���;=z��_|��~������N�����������f^�������O�>�ku���*'�!� O^��f���*��*�S����0+(+@�*k����+�1b� PV��U�����V�_f�}��g�{^{�5������U�}����q)��������n3��U�����.��{��~�
7H��}Mq�����������n���g�|��7r�G��>��S�V��Y��S�N�|������������""��nm���3f����	��j��ER��\p���+��G�>}��z��9/�K����L�
�I���t5�M�6��� ��3���m�PXeS��@��/n1
�B�
�]�pb*@��i`�� _�!�$@���� 1E(#@�*Cb�D�����+�\r������)0�\�h��	�����.����;*���hNf����Ec��^�z�����< ��v���,��h��e��I����=�52+U�Af����|�r�Y=���?:��o��������t�M�Z�=�����d���b�����m���~���_z����?��?�q�1�;�yg�����[7���H��=�X���
�l�� �1��-�AaJ P���R" �@�]1
SB�r�W��pb.@��y���+@�*����4Vm��Et5%o�-�co[�b������a�]VU:�7����j[�UT��E<��?��u�z����2�F��U�c��-��V��b!-��&M���T�B��;����W����M7]=K��*��,����,s��1�Z���">�/���`^q[��
EWP�61��2We�c]	KW	;������Fa�3Z:F@ >���'�����[��#@��O,�	T,@����� OrW<���@�brW�>�\Msa���r�-2e�C��sg����mc��1�A��Ka����SN-�-������'��w7m��f��f_��\�K���X?��������'jA�n����
&S�N5����/C�1���l��A�>�h���o�-�����s��]XU���~����^{�U���0M?����f���~1���/�����_L�����5K��sOW;V���_@b$��[���T@ ��+0
@ F���� �@���
y��1 w�40L* wU�S���Ve��	��;-Z��<U�~�
��8�[=J�{�1�2���W�-$[�n�9�EdZL�m�7o��M��8�
���{����c��~�P7-����Z�j�c�GW�������"�i��?�1t��W^y��;���e������v
-���%����f��n��V�pV����.��^z���Z���N;����<��/�,�r��FL2W����|��c�;V���o@b"��[L�4@ /rW^\4F����b���
��*%��P����0%�T��U)Q����J���o/��Kz��7����eVh�kmq*��"�N8�/��"-����/_.��~���>}^-��q��o������mZ��Jia���?�]�q��I��]�co�O�>���O{�f��B-���j���U��@������*��|��,|���z������5�=z��{�mV��������+&L��z;��D��:�,�+�Wc_���w�yge�*�NaU�D4@@ ���%?�<i w�1�<3� w%?�<i _�%�<'�%@�*�x�4�E���.�V�������zY?Y����w�Sa��]�t�$oU���g�]v���{N:��2��m�&�F��?MW���O\|��2|��r/��7��o_y��W��������8�����QV�x�'�|R���W���Ja�I�����
��~Vp��I^W��j!���>�}��V���< �E$��[�GA E���GE���]EL�" _y�y<�T��U����(rr��_3�cw�W����J���pg�o������#��;X�p����>�q�-�z��M����_N?��@��_�^t�"�tE�y���/H#}����Z���[��~zO�U�j�SO=%7�x��������5t�P��R�5��e�n����h�&�6m���ED�w�V���Wv��3�H���M��.�Ln����n�r���h�����J�7�+��Rte�:u�x���[���������2{��|o+����2$�@@��xq+���D�A����(������b�!P���b�,��@q���;�<�*@�*���\a	hA���+e���R�^=SL��{�5����*X?����_�j������Y�v��X�Bv�yg���U�n!]�	W������������A��C]��
�I>c����B�@����� 1E(#@�*C�	H��+Ab� `�W�@ ���$F�9#���� �l
��?f� �@ ^�1�b&@��Y@� wb��@�|� 0�[���77 �@�]1S@
���<nE@ )��%%R�2�]��#�@R�]I��D��H��+�Qc� @��7�$[���d���#� H��@L4B��	��b����]��h�1 _� L� w�M�
 rW��@�(�*�[@H�/nI��D�LrW�� �rWR"�<@�|�o�(@�Jb��3���
 ����*��c� ���-�@ f����� �@ rW &!�@�W1S@���]y�q�@��� 0@�
�
��V@�"��[R"�<@ S�����>$E����H1O _�@�$
���5���.~ �@�(�Jv��= ��xq�D#���+fa: H����F �U��@ orW�d��1 w� L(@�����@������H1O� wej��I w%%R��W�@ ���$F�9#���� �l
��?f� �@ ^�1�b&@��Y@� wb��@�|� 0�[���77 �@�]1S@
���<nE@ )��%%R�2�]��#�@R�]I��D��H��+�Qc� @��7�$[���d���#� H��@L4B��	��b����]��h�1 _� L� w�M�
 rW��@�(�*�[@H�/nI��D�LrW�� �rWR"�<@�|�o�(@�Jb��3���
 ����*��c� ���-�@ f����� �@ rW &!�@�W1S@���]y�q�@��� 0@�
�
��V@�"��[R"�<@ S�����>$E����H1O _�@�$
���5���.~ �@�(�Jv��= ��xq�D#���+fa: H����F �U��@ orW�d����g�N����}q�� ������L� �+c�pE.2�,GFeP��� c@fd
W�Q���
����nP�I ��������|I������~z-�UW������������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�����O>�\r�d�W��!��j�XG��LS���4y|H�@CdWCFYLS@vM���4H@^5h1�B�@a�U��@$ ��JIF��W_
�{l���K�/��
�L�
��4V�xk� @��)\�MAb	��I�L! �� ����
���.�������&�	h���j��(��+��B�0aBV���F/U_���/���$@��~p������@��+�uS5�~�]����	�# ��Y+� �?��,l ����Jg�T���Z(/FcUNa�G�z�� @�Nnuj;e	���$�C�@���Nm�"@�y���c	�������� �����F���*���_W���[cU3�EU @�Tn�r����dWM�NC�@���TN� P������T& �*�51
��
qM=@��g�	���^��'?�
6����W^y%�?>,��"�#�Hk�t�N�4)�c_z�����~4,���a���=�5��W_
/��b�}���'>���;�����^~����b������u���~�������X �7�|��3p��X5���oH��7?R�])���	�]~�" �RY)u �. ��5l ����Je���36Om���Y����_�p�
��Gn���0a��l���#����<����j������O?�����O?���_<{��a��W���o������/W_}ux���?�������K�����>����������:����o�|������^{�5����_�r������x�<������}-z������~������������8����x�1��W\�:��l���^�}��c���VYe�p�)��E]4�g�4V����� �G.��h�}U3������W!�G����W%����J|�O�OdW�.��M q���6���H��z�eUm�����{�	�>���U.��r��+�������A����\sM��D����{.|��������w����k��������6�|���#�zLk��+��=���.Qq��>����Z����n�����N�v}���'?�I8�����L���8�����:��s�c�]w��1�����ow����|��}(����W&@���p��k��d��������]����1�T�U�+�n�- ��{�}{�
��TW��u�7V�W�������.������������KO1&6]�������V[�;��#������;�O���������NT�
]��j����������;���}���n���\r��i��[o
7�|s>v�=��rH�>���k����������h�X�:�����w��{���1�;�;Z�;���������^������0��s������m�����/n�c��4V����� �7.��f�}Q3��������!�7��o��%����J~	}}) ��r�}i���������7���>������a��S~P�����c?��O�g9��S�G��;��q�
7�VX!�u��7f�R�����2K�66g�����MI��%�X"{��'>^0�A�uG���u�	'�>�/�j���X����L���?�a�#Zh�|�^xa��a���y���{����k������E��`��*�v�u����?�s����VZ)�~�����xV��>�����6�R@cU_.�/M��&����V��%0c��c}�& ��m�}_�
��t�N��Y@v�������]���&��l�����N�����@��U���_���J_~���Z�8 {�_�}������?F�7��MXl����N>��p���g��i���n2������6_���~��R���;���_<���<���a�������w�}7k|�MU�����7���_�+3��������c���������l@SVk��8�Q�F���|0|�c��O�X��5y�X~����X��? �.��a�}G3�������7"���V�w$0c��c}�& ��m�}_3����n5V���SO�Yg�u�|^x�|�M7��[n��}k#>:�������G����^���?��/��c�&o�j������;A���?:o��7���g�.�hvw�/|��?��kZ�U�NT��[���������3�i<�p��qy�U{c�RK-~��_Ou�X�7@��@��[,��H`�]3���J�@@v��"��fy5�,��A��dW�-��K`�]�-�&�]�_w�z��t8s�w��
K����KmoLz��G��s�=����o|#������U���|����+>.���sx��'�]w��?�/�]{�����^����������?����Vk��VXf�e<��}\{��?
06h�Z�+�uk�%�l?t�v�^����u��'�-��2�n�o��1���������`�S��}o��F�����x��\�#�I�&�����g�y&�4�La����:a���<���6_�{�K��*\�U�jN��]U���*dW��$@�
yU��9	�Z@vU-l~��]U���s�����b��`�������}h�a�j��8qb6��g�bc��^�7V����w���N��������m��f������b]�������o��~������U���2�cf|�U3���1�6�l���_������
����f��z�j�A��;o��]=�����3����T��m��B��%
�p+�T�& �j�v"J�]%b���J�U��&'@�"�U�i	�T@vU����U���J���knoL������,�7�k��v��ccS<�s��?��l���U�|��p��WfMZ�;G�>k��}
�nR��2KkWh�����������'�q�Q�E�������������l���LM@c��d�l�]v�%��E���7�p����������&���/�<�>���}������/n��p���T" �*a5)����MO�@i��4J P������(M@v�F9�D��i��w�:��cr�5�\3�����7r������x����c.���l{���^���?�;��3�r�-����]t�Ea����wM��*Xa�����~���|`>�d�&�v�����>���a����e�4V��[u�U�h����?^{��)��.��1;�\s
8W�M������ @�nu(;e���E�G�@��e� @�yU��9�[@v�-�|�! ��P|�U�4V�=:<��c�N;�?��)�?���K����[c�5�;S�7�q}/��bx��g��s��[n�lL�?/��R�h����x�#�8"2������*�q���3�8#l����q�o������a�,�@~w+�U�Ky?-�U������{��C��{��m�4V�����6�x�0v��,�bX�����/��+��s|���G?�Q��}���k���	 P������O�@��
Us P����Z���% ���4u
��:�����dWY�S�������7�|3,��R9���_V\q��}k#�l���w��]�����|�����f�W_}u�{������t�=��
M�������
6� �w�y����U�>�l1bD�Yl��}	���u�M7
��50>6p��V����?�����=������wj��&�'�����l}��5V�z��!v��^���W\q����s��u�Y'<���������_~9�6�l�C���6��/�
jp�V�S P���*����  �j@v
J�W�0����dW��NG�@)���A'���+����?�g��y�1��������Z��[e�������"�,�������}��'7bS���������,��J���/�KXy����N8���2�����m���u�]��>��c�6�l�i��o�������=���Y�Tk�^{���9k����]!��.���|_���
���*g�Q@@cU�u��w����j��7���1c�����z����[��v��o�1|�K_��]|��B1~�o��6 P��������RdW��&#@�&�U�� ��������@@v��)	�Z@vuM8�	4V��X���z�p�����{��GXw�u������9����k���g�y�C=���~����7����s�=��k���s���*��v�m����w_�����x��'�x"{��������e�]6������SN9%w�q��!�1+������_�"�a4�]�4V�t6
h�*U�R=@IDAT�4#��?�>����^x!�z��*�I�������W������g�9�,����}��l������?h=0�n/�������Z��_�)���Nm�"@�,�U��y�S@v���\t# ���s,��]��w^��]��M�X�U�4V��O
k��������.���?�/���;�K,�����-l���!>�oZ��#G�3�8#�Wk�G�>��������/����l����g�O�j�#���mo���o���>:6,���*��Q@@cU�q�;�.��������=���a�M7
���oZw������Q=������;M����������5��m��K��5�p���(E@v��hj�]5�;C�WC�s =�]=�wj�, ��L7�8��S���w9��G>���a�������������A���>����od����#�|Da�]�~��_fw�jM�_��_������T��x���� x��Wf�v�a����fk�0a����{��vZ��}#~�x�O~��������{/{��
7��������?��?C<o��V�-��2a����F13�4S�G�����zh�/��}��|�
�v�U�}�=n�����}-���]vY�r�-���i�:����N;��o�7z����`'�|��g�>���!>5��m��|�#@�@�.��6?U��*T�I�@���ja� P���*K�<�) ���v.��]eI����T�=�\�w�Zd�EB�kT�������;�����g�{�����Z��&ovl�>� <����G�)Y��2�`���o����?�_|1|��
�����>��w��@;	�XUiF�$vf�������
U��*�V^y�Bw�������e��b���K.��l�����o�y�Q|���|%{�o��6 P��������dWi�&"@�F�U#�S ���������H@v��i	�J@vu��`�\@cU����b7��n���k�y�
�=�X�{����E�<��p���g�������8�i�������k�C������������ P��������RdW)�&!@�f�U3�� 0dy5d: �C��C|�&@`��k�t$@�@#4V5b�)��SN	������M����U���k;vl>O|��`�d��k#>b0��z�~��a�=�����|-	 P���:�����dWY��!@�N�U��s �����F���J@v�J�y	�F@vu��X�^@cU����
y���������{��Cl�jm��j�����_�:i��|{j�����.��x����g��m��jp�V#�S P���*��D�( �j�v*��W]�9��	���;-]	����L���h���T_�?����nQ�>�hv���Z*<��a��gp���U�n�m�����c�4V�s�3���9���������r�!l���Ka���C8�! @� @� @��R��	?����	 @������V���w�:�����������}.��(�X��;�.��uXx����L3���l#6r���J�Gg�uV����~�/G�Fl���U^ @� @� @��%��*��R-�����wp������G����#��zh��}�hc�����p�i������[a��f�������6�5*����.[n�e���������jh!@� @� @� ��U
X% @�C�U��6|������J^�QG>�����7?������g���w�p������}�c��r�!!��z=��sa��n��������/9�����o�q�����l @�F�p���(M@v�Fi"j�]5b;]	����L�@�dW������dWW|&@�@�4V�|	�-`��a�� �q����|6����v�q�|�{��'���j���6N?����^{���|9�
�(���Fl�"@�4�U���Q@v���Tt% ���s0=�]=�wZ��]]�9�=�X��%���*�������k���w�ya�v�����{�3�<3���7���>{�����l @�Fn5b;�	���(MD�@���Fl�"@�+y���	������� ��������������/A�������w�)t��~x����_>�W���^:{����-�=���g�m�]������m,�������>Zi��B���o�
�c�h�]�p�Z���% ���4u
��:����n�U7z�%@�W��W��K�@7��=� @���z��� ������?�g��������Z����p��7�����
��G������F��wp���������~�o����5�p��)(]@v�NjBj�]5 ;���RMB�@���fp�#@��U
�I �3�U=�o��;i�:�����;����v�)�;6�4�L������#�=:�{����'�x",�������o�
��� @�n5 ;����IMH�@
��d� @�yU
�I�Y@v��t�" �Ja4	z&���g��;q'�Uo��vXj���/����H���:+�:����W^y%�3f@S�[l�c'��|��	 P������O�@��
Us P����Z���% ���4u
��:�����dWY��!@�@o4V����g���*~�o�1|�K_���l����7�w�u�����w�p�}���^x����~�����%@�@.��Pv��]e����:dW��A�@��Es P����[��(C@v��h�N@cU��w�N�����~6�|�����O���1��7��MX~���9����&�	 P���1ME�@m��6j'"@�D�U"���T@^U�kr*�]����JdW��&'@�@��*'N��F�
���o��7�x�p�u�*�������[������{�C=4,���~>��~�o���=�p�V��9	�Z@vU-l~��]U����*�U��$@�j�U���	�B@vU�jN�'���>��L���^x�����?F�_|����K��|�#C���6���D���.�
BF�@�dW��C1�]�#@�����K��  ����z. �z�
 @�@W���s0HC��[��J
���� ����Jc�TI�@�����dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�@��.4Vu��P ����TVJ����v
��" �RY)u  ��HQ@v��jj&@@v�
 @ m�Ui���	 @�@!n��"@�a��a�
	��BL �y��EP����@�@dWA	�B@cUx%@���pKe��I�@���j��M�@*�+��R'��o��dW���fd����X�����p�V�� & �� �!@����*�d
�W
X% �������4@@v5`�0]��_=����[��_�N=����ZkM����/�0���G���?.�����R�>��C��?�ix����/��_~�������V[-�����=��o�.���p�=��'�|2�2�,a��Q�s��\Xg�u��s�9�9�������;/����Xd�E�9V^y����k�#FLw�����^��;��o�}�g�}&����	h�j��(�T!���
Us P����Z��T! ��P5'U��*T�I�@���ja� P����B��e
L�4)������+���=��s�FmT����z����]j������B�Mo����9��p��Ou���v�y��~�������.L�0a�1���/�<�7�|�~w����o��~��&�����a��g����?���f�o~������|��
�X��Q�B��[��$@�j�U���	�B@vU�jN��WU�����dW���'@�
�U��9��MUGqD;vl>e�����z*|�+_���l��5�}��yM,�@vG����w��7�������y�R��_�<�L�`�
�]}���?���p����C��?�����/��km����;��c�m9rdv��8��O?��_w�uC4�w�����n�����X��h�_�U�^� @��R\���hj�]5�;���RMB�@
��d� @�t�U:�		�A@v���Cx����w���p���8~z�U�+�u��������������+k�ju��G�
N��'�tR8��[����;,�������bcT|M~g����������g�o��������'>B0>j�����f�e�;���>���f�n�m~�)�������l#��x�g�Dc�����X���Q(O��[y�f"@�>�U��3 P���*��LT+ ���5;���j\�J�@���Z_�w.��������;����O�����������;�8�����v�-\{����{��G�H��O�����{�>��|H��	��x �;����q#6����*��Gy$�=����K.�$��
V���/�������F���[n�p�M7
�����{��'�����v�5V����X���Q(G��[9�f!@�^�U��� P���*��,T/ ��7v��]������dW�����@��R�]��#���uw��5V����G���b3�O<��*����w�	�/�x~�������/������ew���c�>�`�m��������;��l{���GuT�=�?��Y��[���k>�k_�Zv'��#>�p��1�g����N����������������w�j5Yi�j�i�������� @�@i.�J�45
�������dWi�&"@�byU1��	�D@vU�jR*�]�����}7�xc����w������M>��8����u��
+�	&d���6�~����SO
�.M�5������}��'�9��cBl,���?��+��*6Hm������p�
C��T|�7.�5*�no;���<V0����v�m���F�n��WW]uU�=q�����nV�s����_p@������q���k�y���������x����X�14��U�_" @���\�uoh��]��;#����
�@�@=��gg!@�\�U����G@v���g������{��}��51m������o���p�	a�����bcU|��~��6�h��w���E�v�a�������Z(����a�UW-TS^�46.�����k�-�'�x�TG��|����m��&��O}*����w�=�I�}����]������G	�f��z�����\sM�$��&����:k�����n��b}�<��h����7��4
#@��	�p+��L�' ���v&��]�Y���j�U��f'@��U��Y	�V@vU��O����[a�%����-���Yf��}k���_+��R�mx�����s����w�Z~���L3���koR�������k�����koN�^�W~�46N:����k�;@�����k���
tPx��w�b�-�{��g��3���o����T��j�9��_�w�j?����x�W\1�;������,�H�}�����r�d64V%�T
%@�Cp�6t;G �;��;{g&@`��k�v�$@�^yU��� P���*��,�+ ���~����n�!�<������4�a�A�ws�wu��o}�[�����s�9����vm�����SNi�x��"�U�Xvc�������������~S{]t�EY3U�|�wGyd��_��[n�����PMm���[=��a�y�
���/���1c����7����n�����;��sjC���r�d64V%�T
%@�Cp�6t;G �;��;{g&@`��k�v�$@�^yU��� P���*��,�+ ������R!|�Au'�p���������������f�����������K=ztv�����+�k��F���n7��j����]vYVc�{�[l1h�q�W\��w����c�{��0j��l�����"N�0!�zl`�#���N>����������������GE�j�L���4V5{}TG�Jp�V
�I�Y@v��t�" �Ja4	5�������dW��&$@��Ur?6VM�4)���������`���7�����*�X`�U7|������ibc�������O��������=���������V[-�W��U��Uw�uW��'>��6�l�p�i�M��g�}6{\`��j�L���*�%� @���\�M���' ���&*"@`��k�FF �y��uP�	�����&@����u�����y�Yge�����l�M8��c�f�:��������m��?���>�����T�X�.����N��UVY%,�����
[�:<���V[m5�c.���p��f������?�a?~|���>��+�X5������=��#���_�j8��S�Z��O>�^{��s��*S�h�J~	} 0}n�72���	�������������4C@^5cTA�@g��3/�	h����n������_+��R��z��0�����'��W^y�G�Y���Zh�i�q�a��o~��Ys��g���=��#��;�8���9�����x���d��k��O�������/��o��^Wl��}���-����n�l�l�;�����=���a��6����\{��S����[���X��Z��Y�����H�@dW����!��!�9����U��NG�@)��F� P�����_�����on�����s���{�������[f�V_}�p�UWe�E�iJc�g�~��e%��Fr�!S-��#�g�}v����v�}���l�E��y��G�\s���o�����>�����^x��0l��p����M6�$���r���n�)3�F\������������S�Gc�T`�[cU�Gi @�,neI���:dW���E�@Y��,I� P����Z��T! ��P5'U���������o;��s�;f����(>���+���������}U�Xu��'O�Q��G�������������w���/�}|����_?��s=��c�v�|�e�t�Gy$l����g�,�Lv������*�,�5�L3
:G��?�A���������:�}���v�4�5V��N�$@�]	�p�����H@v��i	�J@vu��`j�W5b;�	���(MD�@���:�~n�z��wC���o���&����z��'��?���������j����g�}6��m�������������25�|�e��7�}��a�m���O�Ol�j�k�v�C���
+��T���[��K/��h�������+�=+6�M���jzB��\cU��DE @�tn�����dW
�NA�@���tR P������T* �*�59	���`�5m?7VE��?<�;6�|����q������:w�q�v���X�]g�uBl���.�(���z�v�?��rK�n���]��w�}w�q���b�Y|����4iR�����_�7Ev�a��s��>�s�=���m����+���~�������/,�����mh���Ls�k�j�����&���4J P������(M@v�Fi"*�W���JdW%�&%@�b�Up�7V=��������c��*����k��Mj�:��3��G�F����:������g�	��l������D��Z���~;���������w���~��>����!>�0���g���f�y��}�'�k�M6��_|��a�u����s��U�~�����6�,�v�i�����X5-�f~������* P���R9MF�@M��&h�!@�T�U*���P@^U�kj*�]�����
dWu���Xe7�p����R|�����)��?���I�U�i�_�B�8�����Yf���c���N:)L_����v[�u�Y|�K.�$���z�F�V�Tll���~��(�p�	a������6v�m�p�����f5��������|�zM�q��1���Z���X��Z��Y�����H�@dW����!��!�9����U��NG�@)��F� P����\c������:(G������������X{l���7��7W
�}F�n�����KL������>���~5��N;��8��A�������{���;���3>�q��7n���_�U�%j��U�[ @���\��ojF��]�;����M�H�@5��W� P�������T# ��q�����/U7�f�����am�������-,����q��{oXp���E7bC��^�
?�������B�����a��V���;J�r�-��+2(~�8 �x��S������?"p�A����_�"|�{���p���u�!���~��a�����S��8qbvG�h��o�<>n0���j�
�?�7�]w]�u�]�a���K��~0�C|�c�U=^�'@�u�p�C�9([@v�-j>��]u(;e��2�A�@���nq�#@��U��9�Y 67=�����g�	��7_�L���~�#�	&dw�z�����cC��#
�1i����s��'�x"|�����
l��
+<���
h�Jw�TN�
�p+Le 
�]
Z� PX@v�2����/�� 0$�5$6 �c���pzt)���K@� @��\���Jj$@`r�5����  �RX%5 ���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L���� @�@���^?� @��B.�
1D�@�dW�D9�]��"@�����:�]�9����,� �����.�J�Rp���J���v���a��TdW*+�N���)
��WM��.��-��*��S=($����A4L@v5lA�C�@!�U��   ��J @�c��1�h���j�"(�]h���� @ n���:	h�]��	HE@v��R�$@@^�
 ����Jq��L����HA���_��o������SO=5���Z�-�����_~y�����x����;����Z*���oVXa���a�4V��Jj$@�]
�p����D@v���I	�R@vu	�pj�W�Q;%
��1ME�@m��6j'���I���������l�s�=7l��FS�m�����O���:�_l��v���
s�1�����@�4V5~�H��p�����_@v�o��t/ ��74���z����rdW��f#@��U���M 6Uq�a�����k�:��������9rdXu�U�����<&L�������3�8#o�@��R\55 @��\�uf8��]�XE ������pz& �zF��t! ���s(=�]=�w�����K����n���[��Vc��>�c�Z�]w�5p�a��f�v���{����
�sLkH8�����1c��6�&��*�S/���!�9������/�����C�����	�� ��������D@v���I�!��������;�������Xu�QG��O?=;n���\p��s�G^t�E�g��*6WyHU@cU�+�n �����%@�1��1K�:�]`J�@O�UO����!
��!�9���
����;� �n����T�G���o����Vc��ny��l��q���Q�����y����Fm��^`��}��7��	$#��*��R(�����9���	����;3C�]C�s$�
��z����rdW9�f!@�^�U���|����o�1�����o�n����u����p��g��������N�����
a��	��UVY%�����.���l���&M�v�}����/���{.�|��a�y���m�x�����k�����xHU@cU�+�n �����%@�1��1K�:�]`J�@O�UO����!
��!�9���
�����P'������{��}���Z*��������z�������}~�	'����*���{���~�ew�>|x�X��5V��h�u�5�W^ye��!�L�U�\U @��R\���i2j�]5A;
�
��R9MF�@���B\S P�������T( �*�����z�����K����[n	�,�L������/��VZ��6<��ca�9���?���a���3�4S��;���t�X��������^{�����f#���o�x�-/�
h�Ju��M�:p����4F@v5f)B�@��,C	�����)�� 0D�5D8� �S�U�o=U��C�y��>���C8��!�A���/��Z��9��;��l���oN9��������x�XC�����>,��B���HN@cUrK�` ������A�@�dW��@t. �:7s��W�qwV��]��9��������}��&�_�	:��CK��������/l���Ye��3O����C|�_�k����]������(����j�:�����G��n���� ������K� @`�.��*�8z) �z���U@v
U�q�- ��w>��]e(����dWu���X5i�����k���~:�7n\5jT����k������h���m��Xu������:*�u�
6?��O��a��}6�(��*�US3�P��[�`� ����eP
���'@�g��g�NL�@��<� �3�U}?6VE���:+y���6�l�=��966�������>���6��n�&N������/�0?�����=��0�,���lHU@cU�+�n �����%@�1��1K�:�]`J�@O�UO����!
��!�9���
����������_+��R;r����C�Yg�5���W^9L�0!������.�h�jc�[o���c�p��7��3fL8��S5U�"6R�X��
��p�V�' ��$
"@����*�d��W�XE ������p! ��[�~m����o�}�����F�;��3l�������������Ci�z��W���ny���<���K8��C=~0?���h�j�)��!���Es P����[��(C@v��h��Wu(;e���E�G�@��:�~n������;����;D�}���c�����l_�c�W������6V=����������O���;��m�Q4V�(+�{ @��i�p���h���j��(��i��i����F	��F-�b(( �
BF�@�dWu����U���nXn���o����F����O<>����N�o'�U/��b�t�MC{S��^F�=��@ E�U)���	 @�@�.�:3��F��F,�"�P@vuf8=�W=�wb��]]�9���	�������*�~��a������o���mo�����������S����>_��W�����M=r��p�����~��EOe��4V%�d
&@���p����^@v�~
T@�@���s3G �y�wg%@�;�����	���������}������O|�5��UVYe����Q��*6o����{>�P��l�@"�Y(e @��n\�u��Xz% �z%��t# ���s,u
��:�����dWY��!@�N�U�v�7VE�
7�0���^�.�h������a�Z�
�-�X��k��UW]5�`�8�����;�#F�(2���X��%Q(_��[��f$@�z�U��3 P���*���T# ���c�@IDATq5+�
��j}�N�@5���8���.���p�A��|p�s�=��E7�4V�|��a���/:��q�>����"��$��*��R+���!�9���
����;9C�]C�s��������dW	�� @�v�U�����~�xc�I�����8����_�/0��!������.�Ox����\0_t#6d]x������??|��_���3�<3���?�b���(�T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]u @��\���i*j�]�Q;%
��1ME�@���R^� P������T* �*�59*�XU9� @����p������dW�f� @�����k��	��bNF �,����P
�dW1'� �T�UM]��z�����/��}��0r����K�9��s�g�4iR?~|x��g�L3�����������i�~�oHH"@�@An�#@�Q��Q��

���P� �sy��%PC�]C@s=�]=_ @�+�U]��wplV7n\8��c����?��w�y��������(,���S|>��W_}5{���������8��{�:��0��3O��`;�m���#@�@�.��5u��:�����dW���#@�*yU��y	�R@vU�kn��]U����h����gy������o~������?�q�k���9����n�ax����9n�M6	�_~y�}���9����&�	 P���1ME�@m��6j'"@�D�U"���T@^U�kr*�]����JdW��&'@�@��*'n�	�|����J+�'�xb���_~�����%���+S|v���m��v��q��������N�T���<���kS�_{���5�\��k.�
*`'�p�V���	�N@vUgkf��]�����r�U��f#@��U��� P���*��l�[@cU��=:��;�~����g���;��s��o�������~������|\�x������/>`_|������|�k����#'N�~�����6�l@����=f0?�m���k��6	 P��������
dW��$@�r�U9� P���*	�4�* �j�v2J�]%A��=�X�#�:O;~�����u�9��#�s������5���MX���o8������[�����}����+�3�<s�/n<��sa�u�	O?�t�?����_��6��q�6��/�
jp�V�S P���*����  �j@v
J�W�0����dW��NG�@)��F� @�g�zF_���������'�w���SS{����a������/|!�q���3&\�����8��b����7n�����/})�u���m��&7�m�_�� ���d� @�t�U:�		�A@v����" �Ja4	5�������RdW)�&!@�@�4V����������?�q~�x��^8?��z��n������h��#�v���6�`�p�M7�c'��4iR�w�z��W��V[m�p�=����m���� @�@�.�j�v*J�]�Q���dW��NE�@W��+> �#��#x�%@�+����	 �s�U=_��8����;N�����W_
�����a��y����{��0b�����z(�������1��q��z�����.������a��g����|9�
�(���Fl�"@�4�U���Q@v���Tt% ���s0=�]=�wZ��]]�9�=�X��%h^���N�u�Y���Xc�����&�y���v�)��7���G�����]���O���>VXa��}���#� @�@�.�j�v*J�]�Q���dW��NE�@W��+> �#��#x�%@�+����{��jJ?~ur�4N%����t2�P�qjz��:���9$��Hy�D���hJ��&���$%%�*��Z{������g��}Zk���|�g��{��u����?��Z�����(��U�}����f�4h��;���m��&7�x��j�*�W���lg�����S'������8n���A�(��[�ydM���5J�y w��W!�@F�����
$@�*<�E���]�q3 Pp
�
�:�a�i���|��w~���Hu�����1c���~��T�R�?N��t�R����m��)��{ws��y�E�)��[>�ydK���-I��� w�S�w!�@&��L��
%@�*�<�E�L�]��q/ Px
�
kz��W_�I'�$������6m����c�����L�8�?�c��X���lg���r�������/���3�q{��� �G>�����@ k���Q� ���+���
2 _e��� P rW��y-d$@�����@��PXU�������^�8�Y�d��!����w��Z�j��t�k��2}�t�������T;����{���e��j����8n���A�(��[�ydM���5J�y w��W!�@F�����
$@�*<�E���]�q3 Pp
�
��w��/��s�=W/^����_~YN=���szp������S��a
�t�c�9��g���2d�s���� �y��-���
�&@��%B�<
������@ #�UF|�� w��"�@F�����(��UAa;��GI���e��U	�;w���*��/=z���z���k�.)_���l��7��&M���&L�`��q{��P��O?�T6n�X�;�@@@@@@
)p������@�V�-*�hu�Yg�%�7oNRIEU������{����G��{����d;�����h���4m�4����9���|�2�hQ�W�!� � � � � � ��[V�/z���U1������C���W�VM����0�TB�_�*#F��/�[�Nj���'�y��g�r�����^�>�ls��ye�KaUY��@@@@@@��PXU��@ ]
���@{]��o��	#�_������r���'�Ov0e�����i��e��ys�8���������%���Y�f�8n���A�(��y��U �5rW�(y�Q���Gl^�	��2��f(���@��2 we��� �@�(�*x���iJg�
n��z���9S8������K�.�V�Z��'O�,=z��������O���~���m��r���8n���A�(��[�ydM���5J�y w��W!�@F�����
$@�*<�E���]�q3 Pp
�
��u�����$��{���3X����	�K:�������u�&=�PI�H��ue��5�M�&M$������J��" �#�`�e��!�X���+��<� @��2�@�������C@ ���<��:���++�<(��U����u��-Z$��O���9R��+�p>��g�!�����~�������������2d��=:�D�����s��A��< �
���+��<� @��2�@�������C@ ���<��:���++�<(��U����w��):;��o���t���r��w����L�2Ez������W/�8q��/_�?�;�~���v�i������W�Z%�����u'n�K< �@�p�2�@�����N�@ ��< �
���*+�<�,@��38�C�������C@��	PXU0�����{�����*��ZTv�?�����/�J�*����}���__��_���%uY��������y�t��!���s����O��x;q{�7n�"����-_���)@���&�B�|	���%�{@ S�U����� wB�w"�@���L�(��U�������G��)��}��r�$<b��9r�Yg%���v�����[e��%	��U�&o�����Y3��w��y��/ �>����;@ ���l��<���+���!@���"�@�|���-��@ ��l(��\|��w����^���K7n��r�)�_����_��9���e��i���������\>��C3��q�''�x�4o�\7n\�#t��G}T�-[&�W�6���h�BN8�i������~�>���>���'�{��g�Q�V-�g��a'�|�T�X��gm��Y�x�t��]P�r��3��?�,Z�������eV0�x��Z�Mi[6b�+���=[����~��B
40�u��U�W�^Z7��NaUZ\�5���5j�q��V�C����K�N�DmI[�*U��W^Mt%mq{^I\C�)��[65y�K���/i��� weS�g!�@.�W���� �+rW�dy.�R���K]��
���w���e���q>���y�����H��mM[]����_u_i�v��%C���S��lz�-��e�]����+DW���eK�6������X���
��~=��cG��_����W���\Pg��JW6lXi�d�z�c������K/����������7i��Y�������?�n�A��������z����Ctu�llVeC��g��9�>e�����Z�V���1k���>}���y��^�����q��Q#���'��������n�P�� �krW��y>�B���U��� _�B�g"�@��]��� �rW.Tyf���j���2q�D��a�t����?�/\�fa��������:#�k��fV��.<�/R�����k��+my�[�l)?��CBa�>����N�����s�g�������������Z��mm��5�Y�J�t�%-���|Ve:u�����LQ��3D|���h�"����3�%��,��h���F\9�v���w�m�6W]Y��F�%_|�w��_
�2������;d�����d�twu���z������lz?n�
CC@�|���[@������� �@�]e@�(��� ��2 we�� PrWA�yi�O?�T���?��Z�VX��X:��M7��P�����w�}�Ey�����'}�]w�%w�y�wY�.]*Z`����Vtf*-��U�6n�h�w���<����.W�K
z�:��w�Y�p�=�0-�Lgo��{����	o�y�\�}����b����J
tI>�*T�`���O6��K!�x���5Z`�3����}�����woy������i\��e�I�&%�����?����T�����_/�f�2����6��i�PX�M@pU�7W#G����+��g��*@�r5r���	���sF�@�]Q�"c@ ~������kQ��*��?�)iWK*�Z�n����,E��lV�jY^q����K�t@o��+����xm����7�|S�U��]6���i����w�yG8����G�}������+V(��a�����/��w�-[f��������~Y
�t��i����_y�9����=7x"�����O��[R��G�����m��L���M�t&/o�FL��o/'�n��f���+����g�u��HO�92��o���Ui��@�ps1j��]�@�Er��Q���S�|��3j\ w�A��@<�]����������T�D�y�3�*��Y�t�����T�V�2��QX���?����w,_�\�W���?��s3�����kA��{�m���Q�G�6���u�#F������t�-�u��t&$��H7]��C������[�����/�}�i���'���Z^�UY
�`f�g����#�8"��b�����W_�.��<WW-���r��{�������o���h��e�o���,��=O�bL��bpf+]:p����me�KaU���@w�ps'V��+@���{ �����X�S�.@���/��#�������k�.@���/ {��e����c8p�@���T����h���A�l��5j�H���t�������q�Dg6�-Ua�.��E=�v�w�5k����Fa�H�}�����������-Z����c��]�v��.'����.��s�e�����O���;w&,-Xt6��C�hK�t2d�\s�5���K�t;���L��g�}&:��n�.���X��l�����:K���l+Z���G��tb�1�gi�����M!�3�<��������z�v��g���9��
�2��V@\����H�O
����#��+�.W"E?@�|�o\ w�5���.~��9s�\}���q�1]t�E�p�B�Vg���{�M�t��A����
*�e��V���C���+�v�l��AN<�D����������������K���;S6���>�5J.��b���#��g��Y�t��d[��:���~h����b���z+�����xER;v�	&$��B���g�+���'xO���1����Z���^�0�_N8���q�9��5��n���<$�?���>}�i�������=i3
���p@�h	���x2�"@��K�'� wE+���(���]��@t�]��-#C ���(G7�c�����^�z�K���/
4����M�6I�&M�CY�r����~���
u�q�I����s�"�T3V�LK�r�!�}���lV��Z��m�f��_��-���*����/�]w����Or����s����k�R�J�qp��lNZ�T�J��.��[p&����~py���������j����+���YX��e��E��q���P`�s���d�sF��t��l�$��w����)������;�U-����L�@�ps Ht�	����p w9$��F�|�\ w�5������>�fg�^�'�_E)_�7�q����+�]u�U��N�GL�4I�
fNu��I��������a
������*]�m����U#G�]B.���#��b*���gO���[��/���
�[��P�zFp&�7�|S�U�&s��5��{:t�`��KupF�:u�����S5���-����o���?���v�h������}op��~����S��&�Z��<O�{�QG_����woy����9��.����$�$�����E��/_nZ��@�R�b�w�?MaUx+Z"� ��n����#krW����pV���l��8� _�.��H��"F�@��]��S�|#?�����}r��������7��s�9�tM���"-�	n��v���J���1CZ�j��t��������i�Lu�*-�I�=��2p�@s�[6p��u��Es��e���.��e���[60�����t��w�����������N2���O�-����{E����}�����(c	.���QyE[����?���j���e��d�
�������+8�k���/m������� �@�p�@1 w�0����"D��@L�W1	4�D b����� rW������w��'�,k��1�E�f�e���J�5j�%��^��E����j��1r����u�Z���W��'�H�����03V����`1�y��'Z��j�&].P7���:�`a��E��n���8d����Ox�q��I�����T�����3�o�3�]~���q�;Ve*�� �8 ���A�� PL��U�� ����� �E0�+~ �������g w��7��*��0a�Y�N�/��b5j���m��2~�x���?i�K�-��U:��O?���+M�65K��:;v�t��5�=�=��\{���z�=���n��7����*�R��>������<��.03/��$��^�ZN=�Ts%�K����^x��[_z�%3N���];S�lT�|y������X�pL�t+��������O���R����y`�t��n�����i�t~�I���UIY8� �@��p�V<
q w�%���h	���OF�@��WQ�.cC �������!erW�����M�6I�&M����[��^{�.�v���[�.Lr]Xu�a���
o�!-�����M�[o��,����I�&�����\�EV�|��}������a�?�N�_Z$U�re�?�)���Z�4y��d��so����y��f_c2k���m�a�����J���8���M��l�%�����s��c���_t�{��2o�<s����SN9%+1)�=^�v����+��s7�x����Gw��QX�UN� ���|��z�%��J��*�)@��3.�
�����p� w�#z���]�M�u&��U�,`y��Mq�����K�.�Wgz��'CS�RXu�}�����n���F
:4��.<���~�
7H��}MqY����{��}�Z���������c��O�_�^��+gf?����9��aCy���6Ew��Hc�[�6md���f���YX�|�r�t,]t�,\����G��m��^�K����L�2�I���t6��[���� �������
�����@�T�7KC�@�DrW�<\DK�]��n!�@1�U1N ���.�D@����I�N���j��9r�e��:���LF���]�.������������ G�p��J:����z��):��n=���~��f?X�S�K�����o�����A3S��tF��+W�e�L�"�h�n��fs�w��r�M7iQ�0��U�K��Mg�e�m�v��Z�j���{�=���~e�3������,X�@.��R���H��5k�����U��y �X(����A�K P���T" ����.�B�@ ��*)'@�rr���{ �T����%+'�\X��O?�������EBz�m�V��}���;,�o��J��/
tY7�mK������G�����3U�^��,09rdB�i��?Z������BZ4�m�5��T�B���:����W����M7�=K��J��YX�}�t,O=��YjQ����~�Mg������#:���e#&����lz�3a�,au�����mV���#� `�n���� �@xrWx+Z"��=�.{bAO@�d�U�>\E;�]v��^!�@����}2���*u���[d�����S�N�0���m�G�6�a����J���uk��0�R-=7�|����i��5K�.5��Op6/-6�c]�/�����,��i�-�6l�L�4�\���+����7��6o�,���o�So�����Q�?N�����L�Rt�+V���>����0M���Mc3b��M6b�����I'����,c��O��:�O�v(���,�E@�">�,
]A�����T4D��]�� �@���y���
��,
�B��]%�dt1��U����Z���i���R�m*���o�(-T�9s�������kE�6n�hNi��y�����q��~���e��A�e�w��1�����9ZU�R%s���X;v��uV�6m������j�����y��'��{����L�t��w�}��B�C�Z�jI���X.��y����{�A���{o��E��{����~����l�$8���L�s�������U���� �X"���%�� ���+-.#��%�.KA7@�T�U�D4@�]�.!�@���R��� ��U
��}{�f]�c��i��%�fh�k%m6Vi��~�;�pJ�h��Fg(Z�r��u�]�2}:^-��k�������������+������~��$c����]����N�>}d��Y����.S�]���_y[I�zm���Vy�I�o�c����m���+�4i"��w�C9����i�.�@�����v2����s�9���_�}i��s�=�5+�:�U��@��ps?���8
���u�����.�c����*.�f�DK���x2�"@��]�)���K�]w�u>�.Y�K����TX�}�*�%���*�x��w_�={���[���]�v���#����5��D�^�d���I/�����o_Y�hQ���I�������K�[���l���g��~���8>�)L���f���ILtY����{�
�W��|����S5��*��@��n
&CA F����"!rW���P���*�fxDT����2,".@��]���-w/��On���/W�3������c�=�����.�z�vG�~�a�|��)r�g��u��M����3J��??�}a���"s��)�\���k��Z��s���7���p�=Hg�:t��]�B�
��bw��if�R��[�&\�""}v�����v����K���M�+��Bn����n���l�E�t���,i^��������T���J��,1Q/uKwk�����1#�������	'@��n��)#B ��8D�1"=rW�b�����*��e\D[����2:�*@��jdW�� h����v�Z�^��)�:���z��-[�,X;v�0�kAV��C?c����n�:Y�j����>�Z�V�\�+�B�8u�l�e��m���/���5kuIg�4&��+��Ve*�� �8 ���A�� PL��U�� ����� �E0�+~ �������g w�@�������{@B	����F `������%@�
�D#�@�|eA��-@�J��@�r�A� �@Ve��� ��"���+���  w5�GW�]�D�~"�����(@�r1j��]�@�(�r;~�@�P|��b�X&@��, tB	��B1�, _Y��i���&��@��eA� ���U�q+ �����J��'�]A
�@�r�+��� @��7�.
��\�}Fr�@�m
����G@ �n��h��	��,�A�P��PL4B�W�. �@������, wY��d @aUx�� ��+|��)��ArWP�}pE���J��'���
 ����.�F�@���op[��*��G�@%��[(&!��e�.�Bw@ ��+�@���A� ���+m2n@�]�. �PX��"� ��n�D�~"�@P���`\ w�)���+~ �������g w�@�������{@B	����F `������%@�
�D#�@�|eA��-@�J��@�r�A� �@Ve��� ��"���+���  w5�GW�]�D�~"�����(@�r1j��]�@�(�r;~�@�P|��b�X&@��, tB	��B1�, _Y��i���&��@��eA� ���U�q+ �����J��'�]A
�@�r�+��� @��7�.
��\�}Fr�@�m
����G@ �n��h��	��,�A�P��PL4B�W�. �@������, wY��d @aUx�� ��+|��)��ArWP�}pE���J��'���
 ����.�F�@���op[��*��G�@%��[(&!��e�.�Bw@ ��+�@���A� ���+m2n@�]�. �PX��"� ��n�D�~"�@P���`\ w�)���+~ �������g w�@�������{@B	����F `������%@�
�D#�@�|eA��-@�J��@�r�A� �@Ve��� ��"���+���  w5�GW�]�D�~"�����(@�r1j��]�@�(�r;~�@�P|��b�X&@��, tB	��B1�, _Y��i���&��@��eA� ���U�q+ �����J��'�]A
�@�r�+��� @��7�.
��\�}Fr�@�m
����G@ �n��h��	��,�A�P��PL4B�W�. �@������, wY��d @aUx�� ��+|��)��ArWP�}pE���J��'���
 ����.�F�@���op[��*��G�@%��[(&!��e�.�Bw@ ��+�@���A� ���+m2n@�]�. �PX��"� ��n�D�~"�@P���`\ w�)���+~ �������g w�@�������{@B	����F `������%@�
�D#�@�|eA��-@�J��@�r�A� �@Ve��� ��"���+���  w5�GW�]�D�~"�����(@�r1j��]�@�(�r;~�@�P|��b�X&@��, tB	��B1�, _Y��i���&��@��eA� ���U�q+ �����J��'�]A
�@�r�+��� @��7�.
��\�}Fr�@�m
����G@ �n��h��	��,�A�P��PL4B�W�. �@������, wY��d @aUx�� ��+|��)��ArWP�}pE���J��'���
 ����.�F�@���op[��*��G�@%��[(&!��e�.�Bw@ ��+�@���A� ���+m2n@�]�. �PX��"� ��n�D�~"�@P���`\ w�)���+~ �������g w�@�������{@B	����F `������%@�
�D#�@�|eA��-@�J��@�r�A� �@Ve��� ��"���+���  w5�GW�]�D�~"�����(@�r1j��]�@�(�r;~�@�P|��b�X&@��, tB	��B1�, _Y��i���&��@��eA� ���U�q+ �����J��'�]A
�@�r�+��� @��7�.
��\�}Fr�@�m
����G@ �n��h��	��,�A�P��PL4B�W�. �@������, wY��d @aUx�� ��+|��)��ArWP�}pE���J��'���
 ����.�F�@���op[��*��G�@%��[(&!��e�.�Bw@ ��+�@���A� ���+m2n@�]�. �PX��"� ��n�D�~"�@P���`\ w�)���+~ �������g w�@�������{@B	����F `������%@�
�D#�@�|eA��-@�J��@�r�A� �@Ve��� ��"���+���  w5�GW�]�D�~"�����(@�r1j��]�@�(�r;~�@�P|��b�X&@��, tB	��B1�, _Y��i���&��@��eA����W��z��9�:

��GF� �@�|����E�T��ei`��(@�*��� `����`�-@�
MEC�H��eQ0��3_|���5J{�1Y�~��+W������	PX��2"@�	��V�� ����� �E(&@�*F�	�T�|ei`��(@�*��� `������-�5j$[�l1}����P��sV�"�@ �|�����pS���f��5q w����pG�|�N��)�W���_�@�r�;����v�a~g(��)�)��U��� ��S��|j�.���+[�<�)@���6�B�L�W��q/J��U(y�����2����
PX���9n
����B@ �|�e���!�@��]y��5 �UrWV9y�P�|�C\�9 w���#�@�]9���	k���;v�G!���K��l��Y6n�(�j������;]����w��������(�z�T�X����_|��l��A*W�,���oJ��,�U:�M�6���.U�V�^�������?�5jH���C�G��PX�3B@�7~ �������g w�@W�W�D�~"�@P���`\ w�)7���S��s����A��}��2r�Hy���d��-�����+��~�\{����j���r��w���>+k���Z�N5j��l��?���k�<���2s�LY�bE��������
����B�
�����2e��0a�l��5�z����8����Pdu����G}��Eo:���������nHx�| ��~�����Lx�Gu��A�"���O�=z��O��#���{��q���~��M��=��#�k����_
��{F� #>�bl��@��]
&CA F����"������}b*@��i�6����e��B��m��^u��E�-[&�q�^6l�Pf��a
�f������|��gD����u���k���^{-x:���'�,�?�x��`��@IDAT,YZH��S'y��w����l���<���f�(=w�	'�������;w�������������e��a�&���0����}Op�4i�o�6mLaZ������=��C���8�V�0�@ ~|��/���(���E��@��]��9#F�U�������[����3z\ w�9;�,�
�Pgg��$]�n��i�K��bu�Q��h��/������]���E��9����.���>��L��'�����]ZXu�)������e����Xg�������W�M-X�@���������:��s���������zM�6���n����Y����j���Ag��V���C=��z�����e���������-��:uj��q��*��g� ����-6�f�DJ���p2b#@��M�(����!@ ���X��A#���+w!\�ye�^�'�>��T(_|I�2<*�-�
�t�#�<��g��qf�?��vf��-�5�O��3�Ky't��=���jq���EIzo��u����./�3Hy3Zi!���c��fyA��*��XZ��S�;�{���%;�0�Y���/6V�V����+�����U�bE�]Q����J���{�M7��_/ZX��I?~�����6}�c�=L�����U�;�F��nq�8�E ��h��Q 7rW�"�xpW�|�n��9q w�9��w�]���
�/�]?����|�m]�{a��{��	=��i�h���
2�,��{[�l�/#��+����n.�}��2f���EK�_�wK��g�}Vt�)�N?�t�b)�~��G�S������}�Z���;?���)|��*}���_.�����6%V����;�����q>���	EY�Ct9�-Zx��b�
9����q��*���h��#;���*�?@� ��[�����+z1eD�A���(3F�!@��Fq w�-���h��rG
�D����^{������?K��5�s/���4l��?�vt���K��C]
P����~�A6l� ��_��(����?of����K��}����I���]��N����.a9>��j+��Jg���t��_�"��?���1	K>��S~�U���~�����/�|���� �1��-Af�DP����2$b @��A�" _E$���	��bp��@D�]�d���`�+�*�,Lz��w��(�D.���eu+ZXl�m�6S���~��G�z�jY�d����=��S����o.�'����Y33��)��"
4HX�/�.���Kj���E7�u�^�z�[�u\�,�nw�y�t�������Cy���y�A ��U�T8� �@��p�X@1 w�$���	��"P��@��W.CC �����!arW����*�aJ��m��$-��c�=�5+��j��������haVi[�����w�.�7j����jaX��}���/.V`���J����e���������5XX<_��rO�(��~�! ���?pQ���b��3���
 ��+�+W"E?@ (@�
j�����r��V5m�T�y�������t�v��%W^y���5+����I�]�J�2e�iS����q��2c�S����]���w�yf6�=���;%����o�.Gq��N�*�T��\���V5x�`�$XX��VZ\��@*
�R�p@�	���`2b$@��Q�* wE(�����"`��@D�]
,�B ��������V�LSw�q���O>Y:v�h���e���w_sM��Y�t�6��M3�����>��Y�x���?�,%l��#�H��m�S�
��A�F����.\X�R����PXU��(�*��� �DC��h��Q 7rW�"�x���+qd�A�|�(3F�'@��^Lq w�.�V������N��+W�����Kn���bK����{L���Z��U�Vff*=���6l� k���8@6lh�����O��3����=�����TX��kWY�h�i{�}��9����WtG�����k9��C�F���VV���$
�J�� ���-"�d�L����3\""@��H 1 _� ��
��"T��@�]�2�U�/���m���_��/� �7���-��������k�T�f��o����9s�\}��f_���-[�4y���`qS�v�d�����`a��,+V��i�����q�
��_L��5�e�7o�o�3F.��Bs9�n�����J���T2�G@ B|�E(��	��bl��@��]
&CA ������!QrWD�����+w��*��U�v��Z�j�A<x�0�?�-����k��������TZ���g�}&��m�����L7]�O�>�������F���/��o\���W_��5k��>��S0�������9�B�
�)��k����>������T�b�)��Y�	!@aU$� � ��n�G��#OrW<���p]���z�?� _�'���(	���M��@|�]��5�U�/��h]t�E�p�B?p����6m�H���E�s����K���u������z�?��{w�7o�|��W��'�,����)��:u����K��7�x�,���h����Z����][N<�D9��c���.3����=z��\t�,��.������s�=�/g����JEa�O�N
�B �@��ps=���x
���wF����.�#H����*>�f�DI���h2�#@��]�)��Ma����/9��SJ
�W\�/���-Z$u��5�}��Wr��g�.�W������}��'m��Mh6|�py�����SG/^l����r��7'�H��8pp�%����#�\�r�Y
�|
vBPX�& ��.�������S����3j\ w�A��@|�W��5#E J��(E�� rW�b=q���{x�����R�|�2�����W����jnh���<���Io>��#e�����7U�X�X���Rs��53By��}�]���[��L����Z��3H�2�3f�0�
6L.��r��e���{���?��q�;�8���i��c��������q���c��?�!�^ov���4h �
�v��I�����d��)r�
7�s��o��	�9@ (@aUP�}@"*��[D�����+�fxDT����2,"(@��`P1 w� ��
��"�
i����n�:��j��%:kT�J�����e���������J�U��)�C��g���O��C9D��s�d�d�����G��
���_���r��'�R��FN"B���H4A@�u>�\� �G ���x��Q#�������#@��O�)Q wE)�������kF����*�qeT �$�����8"@�r$Pt�]	 ����+��C�@ ��+%
@�br����k �@
�B �@��ps=���x
���wF����.�#H����*>�f�DI���h2�#@��O�)DS���h��Q!� � ��[ �����@�MH w%pp���,]C�����4\@��]��!�!(�
�D@\������)@��g�5���\� �G >������"%rW���X���+>�f� M
��WF� �@�n	 ��#�.GE7@ A�����X,@��88t
R
��R�p, wY�����*M@p]�7�#H����+�qg��.@�r=�������kF�@��]Q�&cA >������"�@4(��f\ �	|�%pp����	�D�rW `������5H)@�JI��X��eqp� B���H4A@�u>�\� �G ���x��Q#�������#@��O�)Q wE)�������kF����*�qeT �$�����8"@�r$Pt�]	 ����+��C�@ ��+%
@�br����k �@
�B �@��ps=���x
���wF����.�#H����*>�f�DI���h2�#@��O�)DS���h��Q!� � ��[ �����@�MH w%pp���,]C�����4\@��]��!�!(�
�D@\������)@��g�5���\� �G >������"%rW���X���+>�f� M
��WF� �@�n	 ��#�.GE7@ A�����X,@��88t
R
��R�p, wY�����*M@p]�7�#H����+�qg��.@�r=�������kF�@��]Q�&cA >������"�@4(��f\ �	|�%pp����	�D�rW `������5H)@�JI��X��eqp� B���H4A@�u>�\� �G ���x��Q#�������#@��O�)Q wE)�������kF����*�qeT �$�����8"@�r$Pt�]	 ����+��C�@ ��+%
@�br����k �@
�B �@��ps=���x
���wF����.�#H����*>�f�DI���h2�#@��O�)DS���h��Q!� � ��[ �����@�MH w%pp���,]C�����4\@��]��!�!(�
�D@\������)@��g�5���\� �G >������"%rW���X���+>�f� M
��WF� �@�n	 ��#�.GE7@ A�����X,@��88t
R
��R�p, wY�����*M@p]�7�#H����+�qg��.@�r=�������kF�@��]Q�&cA >������"�@4(��f\ �	|�%pp����	�D�rW `������5H)@�JI��X��eqp� B���H4A@�u>�\� �G ���x��Q#�������#@��O�)Q wE)�������kF����*�qeT �$�����8"@�r$Pt�]	 ����+��C�@ ��+%
@�br����k �@
�B �@��ps=���x
���wF����.�#H����*>�f�DI���h2�#@��O�)DS���h��Q!� � ��[ �����@�MH w%pp���,]C�����4\@��]��!�!(�
�D@\������)@��g�5���\� �G >������"%rW���X���+>�f� M
��WF� �@�n	 ��#�.GE7@ A�����X,@��88t
R
��R�p, wY�����*M@p]�7�#H����+�qg��.@�r=�������kF�@��]Q�&cA >������"�@4(��f\ �	|�%pp����	�D�rW `������5H)@�JI��X��eqp� B���H4A@�u>�\� �G ���x��Q#�������#@��O�)Q wE)�������kF����*�qeT �$�����8"@�r$Pt�]	 ����+��C�@ ��+%
@�br����k �@
�B �@��ps=���x
���wF����.�#H����*>�f�DI���h2�#@��O�)DS���h��Q!� � ��[ �����@�MH w%pp���,]C�����4\@��]��!�!(�
�D@\������)@��g�5���\� �G >������"%rW���X���+>�f� M
��WF� �@�n	 ��#�.GE7@ A�����X,@��88t
R
��R�p, wY�����*M@p]�7�#H����+�qg��.@�r=�������kF�@��]Q�&cA >������"�@4(��f\ �	|�%pp����	�D�rW `������5H)@�JI��X��eqp� B���H4A@�u>�\� �G ���x��Q#�������#@��O�)Q wE)�������kF����*�qeT �$�����8"@�r$Pt�]	 ����+��C�@ ��+%
@�br����k �@
�B �@��ps=���x
���wF����.�#H����*>�f�DI���h2�#@��O�)DS���h��Q!� � ��[ �����@�MH w%pp���,]C�����4\@��]����}�������/��R��'��r�����~X������G-��M+�yZ��z�-y�����?�����q�''�x�4o�\7n\���o�.�>��,[�LV�^-{����h�BN8�i������~�>���>���'�{��g�Q�V-����?^N>�d�X�b��(�����x�b����0��e�-������@r!��[.Ty&�Z���ka��� w�B�g"�@.�W�P�� �krW��y>�B���U��M���w���e����>���y���^��H��mM������/�������K�*S�NM���[n��.�,��+VH�n�d��-I�h�O�.��WOz]O��A�����cG��_�*�*UJ���u���.��r6lX�&[&@a�e�; ��B��\��L���+��<r!@���*�D�\��r��3@ ���\�|���+�<3[ZT5|�p�8q�����U�����������YX�}z���>��Q�����k����[����������Y�v��k�.�m��-��~�����M��O?����Y�?����;Wz�������kf��g�Y��?��MQ3�
��m�����T�Fa�'a�_
����C@ +|�e��� �@��]y�u �rWVy�A�|�d^�Y we��"�@�]y@�e���O����,X� ���
��Kg]����
��UX������(�S��z�_���������;��.���K�v�����hA�F�Vtf*-�����l���\����y�9��]BP�����;�<���{�aZ����^��r�=��g�'����t�����/�
�U	�PXemh� ����-{�<	�'@���5oB��	���g��@ ������t���+7�<r+@���/OO_�����\���?%�����u����-ZT��lV���Gf��e���_?�$`���2��,[W^y�\��~����z��7��j����uG���6m��{��w����}�Q�G��{�9�P��]w�3Z5l�P^|�������e��r���w��Ka�Oa��UV����,���Z�������C9�LX4��<�����->�f�DI���h2�#@��O�)���\� �G ���x��Q#�����F��:�Rp�*]�N7ov�T�U��.����j��U�T6
�~��G�S���
]��z������������X��b�
�{���e�=j���f�[�n2b��_��`q�����wo����3���%	;t��_��n���/����k��_�����kyEVVe��������3K���5j��3�X��U+b���:�T�R���@
%��[��y/d"@��D�{@�P��B��^HW�|���@�r�
Q� ���+]1���e����c.8P�h(��E>�,Nm��IX��Q�F�e�s���4~�x7n��,M��*����`��?w�q�haQ�f���lVi���g��y����iJ���zJZ�ha���c�'ONXV�4����^zI.��s��eKy��'����;�,:�U�Z��~�
2D�����e��n�t�A�H���>35z��*U������C�t}VM��}�]������L�>]*W�\b;."����-_���)@���&�B�|	���%�{@ S�U����� wB�w"�@���L���9s�\}�����"��.�H.\h��;V�v��=F��J��4h��y��f�;]0laU�=�o��r�a���
��O�'�%�L�:U��L�.]���w���u��:1��_l�y����[���u��d[��:���~h���b���z+����3�<�Ii���	�j!����M���O�����.k(��64t�6M���U�����o�����SO=�$��U��6��1��-�Ag�D@��� 2b(@��a�2�
��
�F �����>�
��
��������^�z~����/
4����M�6I�&M�CY�r����~���
u�q�I����s�"�T3V�LK�r�!�}��������J�����D�tK6T�V�eK�t����YU���~��?�o�v���+M��J��T�b���u�d�?4�\�q���3�7}f�Z�&d��*(��>�Un��^Z �EU�������P�D=��CE��?��O9���d���~�^���o���A
%��[��y/d"@��D�{@�P��B��^HW�|���@�r�
Q� ���+]���?_��������-�|�J9}�����:�v�UW��;_:i�$6l�9��S'���{�����)�Jvc��n������]#G�]�/���#��b*���gO���[��/���
�[��P�zFpv�7�|S�U�&s��5��{:t�`��Kupv�:u�����S5��SX�S8�Ca�3����X�`��v�i~����'�(V��n�:����5kL[�h���������@�|�B�w"�@���L�
!@�*�:�D�������= PhrW�#��@�,������gA�������5�C�6���ya�o�!��s��.S�|�r��_px���u�*�f��!�Z�
^N�oKa����e��i��:{U�����WO��8p���-����E��\i��i#]q��-���l`p�E������6�����G�I'�d.�y�6��*����(��;>���D
N���S�)���3g��u�Y�)���s�O���Y��<��:���++�<�,@��38�C�2���L�� P@rW�y5�Y��Uf�Ro�ca�������Oo����z�/$R0-��&�Q���Ru*T(�����1c���^���:�?�����W��'�H�����03V��,Y"���o$XX���{��)��������U)���@a��!d��e�*�ll�������)_���L�������l�������C��|(����+��<�!@���2�@�l�����3@ ���|��>���+�����*��0a�Y�N�u��Q�F���F�!���7�:���~�R��\V��R?��S�N4m�T�:�(��������c�k��)�y�����k�5�{��!��v�l��QN8�s.LaU���}�Y����y�\ ���K����W����j��`J&�/PX�|@��z�-i�����;����R�?YdG�C=����m�T�\�?f��n��} �
rW6y�[���oq��e _�U��@����B��n(����r�����M�6I�&M����k��D'9����-mW��H��;���1l�0����Mq����o��z����g���M�4I�>�t�*-����o����6���
6���v���")�o�����n����:�������j�����r��g�}���Y�R��.��'��_
���=-��&�^�z�o�7o�?}��������]�b�Y��H3@��	���7j^�Y we�G!�@��]y��E ���*C@nG����
��K@ CrW��%���*%���������4�=�/�.]��s-[��'�|�����������On��v�e�5j���)�?|�py����n�A���k��j��������K��U�����_-�s�j���R�\9Y�|�t����o��a��Yi4��i�F������PX����VY�f��Nx��7��Y�j���W�?N����v���������� �o>��-��@ ��l(����+����*@�*��!�@!�]���� PVrWY�J�/��Us����.�� u�����3f�0�t�:]�.����*�����O;�43W�PIg����T��f5w�\sYW�:�����>k���f_�{��I��;�H�����
���� Xp�3�����/�����o��\�����t�MI�ORX�pc��*7�D/(�S�3�����~+U�T����,]�TZ�j�_�2e�_���d��ny��U �5rW�(y�Q���Gl^�	��2��f(���@��2 we�W��q.��"%�Mi����H�����t��}���;,�o��J��/
>��c���t+��i��]f�?o�:�T����}���#G���^j��G����z��a�!��4j��_Rq��r�QGy��jq�����gi�[i�U�	�w��*�bB�,����'����c�T�X�?N���[��������NU��J��B��^�D�����"�@��]���� ���*]1�#��
�.�@@ ]rW�b�����J�n����c�jJO=�������d����!�����*�t���E�t{��G�m��f?������[�n��.���x[p6/-6�c]�/�����,��i�-�6l�L�4�\���+����7��6o�,���o�So�����Q�?N�CaU*{�SXeol��%]�v�������$[���{�%L)�3^
<������L�����`���+��<r&@��-F�,�����@ /���0����+�����������������4m�4x��}�
����~�(-T�9s�h����]�V��l������i1��m��]7n���5p�@4h�w����~���v�A�EU�T��?:�J�����S�J�6m�c}��V�p�Bs�����{����^��U%��y��*;�B�,��5Qz[��*�?b�s�w��2d�� �o>��-��@ ��l(����+����*@�*��!�@!�]���� PVrWY�J�/��U*��}{�f]�c-@Z�dI���ZI�M�UZ������/���']��A��r�J�����e�t�/������^	�{��G�,\�I-��
��������.���cE'[)����Gf�����>�2�Z���j�����\����Ka�'��_
���=-��������t�����{�I�������I���	D�dC
%��[��y/d"@��D�{@�P��B��^HW�|���@�r�
Q� ���+]���)���K�]w�u>�.Y�K����TX�}��K.��/�J6�}��Wf��-u��-vY�����#Eg�*i����><i����Z���+�-Jz�;9q�D9�����R�RXU*�u
(��.$t�6����*a�����^��{������J�-�6��M�.]���e�����cC@@@@@@7t��:����F���?;����'�m�������������J�=�X�U����z���q�-�z���M�)S��g���M�6����R���u_�F:6]j��9����{z-�D`�F�9��s���7���p���Y��*\p�T�P�;]����;��Vj�u�������>�y��	�K;x����IY���
����K����������hB1b���u��I��5��d;�>���{���%M��T��7����� � � � � � �X.p�����j��ayO��	hq����e���R�zuSLu�����-[��Y�v��a�����+�~����E�V�Z%����y���+W.�3h���U�����I@�O{����m��e�V��?^������3X5k��?.��Ue��>@@@@@@
#������@��������<,]�TZ�j��u�����G�8�N�~��k��m�T�\9YS�!� � � � � � � �X(@a��A�Kv	���p���n���C=�'��[���Y��\j�������_�f�C@@@@@@@�T��*KC��8��3d��y~����K�������.���E���!Cd����1; � � � � � � � ��PXe���S�L��={�=����L�8Q��/����o��VN;�4y������V��z����� � � � � � � � ��/@a��1��l��]���/����{�KN�0A��k/sn�����C������;�O<��� � � � � � � � ��V�'zi���9s����*��v�����[e��%	��U�&o�����Y3�< � � � � � � � ��PXe���E����S�N��w����*U��+��"�w\���� � � � � � � � `��Uv��^Y,�f�������7/i/���'7�p���Q#�uN"� � � � � � � ��/@a��1���
���CV�\)o���T�XQ���#����������-@@@@@@@@��V��� � � � � � � � ��F�������"� � � ���k�^�/����/������B$�DM�\K41�L(�;QBxB�/��r��~�Kx�y1�����32�����?������{��{f���9��{�^����k����j�5�� @� @��* ��U)� @� @� @� @�0���v� @� @� @� @��* ��U)� @� @� @� @�0���v� @� @� @� @��* ��U)� @� @� @� @�0���v� @� @� @� @��* ��U)� @�@	�3&����i���i�����ZT*������'�|2�?�����DZz���,0�e�e�7G�pm'�����'�x"���Ki�e�I���'������r&M��f���>����O}�Si�����.��9��	h�h�����+{>z���?����j�������gZl����[�.�h��7�q m+��s��^x�Z�%�\2�n�Sv�5k��4e����3��A����K,��~*F�@�	����]^���1��?}����c�XZn���B-�,k����K/��+o'��]
�D����UW]U������v�m�j����W��o���Z9�����W?���[o��r�e����e$@�m�������;W��|S[2dH���/�����-]CWpC��3�hZ��~����i�Z*+2�]^�'�����
�v�a�EY��3�.��Ry���f��7�xc%��Z����p�
+w�uW��7['����x���LGyd�u/��z��+�n�i�v0���.�����H�@g���;��C�VV^y���s�w�x�e�3e��c��$@�cF�U}�����{],G�������k)�/���Z�	 @�*�NH @�@
t�xP�G��	���f�`�)�x��+���z�W_vy��P�^��������o_�����n�kT���k���
+��k�]_	V�}�-�]^o���������o���O=��^/�kD��[l�k�e�t�M���^O(-���[��V��n�0���6���G���*O�@k�=�XKmB};q���7=A��L��5��t�@||���{��~
>���o�xme���]^����
�j�b#�[���z��5�V�e�����~�aPU��(�j�u������M/������:F��/,�O�N���/�����#h�Y g� _5���r�Y���m��q�Tvy��c;�#�5Ui����l�nE[�S�c�=��[�vE���Y�_y��=W)��Of'-#@��3�V����9�[=zj��g��G2�������~����B}�U��,���v�����v���@�����^�[�}��F&����������77�� @`����NG�z=zt����p���-_f}pBLA3u��j��B9�p�T8����E��.�P�:N :t�;�w�q��?����Zf��U���K�1����Y���P(3����������a���D��,�]^���N�@g��4�����~e��I�D���Xhg���>}z�'�p�
7t�S8���������[�^x!_L�\vyY��wO>�d�g�h�z�*����A��	=����3����^r�%���2�_��i.���)��mCt�{`o�=�>����]^}}� �����P�����'�|r�m�v.�������.�Q�m#@���V�n$�'/��be��w���V��j%����o.����Vb(��4e���h
1*���3��U�.��	l @���;�����M���G)�I������,�� �Z;�T������J������}�����]^��@�@�	�y����#��jP������c�=�>Ku}�5�,����F)���t�I��U�.��Il$@��"x���
���XUv;AT������k�[�N�s�W �����Tv;Svy���K�@{�G}���������/���w��v�����G�|7" ���:���8�'�k����(R���Xn%�*F��7y���L�_,����������N�@�	D�x����FA������~����n��������_�S�4K�_G0j}*����� �y���o��iW���6.~7�|�n|�]w����.���6������N#x4#�����e[&@�	s�1��'�^�XUv;��i���0Fsh��G��=�Y� ���w�a�9�t��L�����9�����x0?RU������Y���������ktM� @�@k�Zs���5��c�6�?����w�}���������������Zm��
��.�P�:R F���3���k��Q�����2|��B�o��f�eF�|��Oe��/�2�)�D�v�Q�w�U��bt����������t����O�Uvy=��>:W�~D��������XUv;3n����#����:���C9���� �����z��s|%e�3e�7��@�F F1������?��3*�o�����<�����K/����Wt�����q�M��G��[n)t2G���1c���|�-���{�-�s�	'�����;�y����c�./+�+�(���a�*���9�����D{�o���j���;�N����T�������z���t��k��V�0aB������?�|��j�.�t�v�������
~����wW�.�P���@���GH��bbz�|[�S`U���i��V8����{u���J�?��)��#�9Me�3e�7���8�G�>�2���K*�/������9�*�U� @��>�V�2�%�+����(�Q�}2=�IDAT�[`����_���d�-��1�s�[-�]^�\�,������y��BTlP��������Dy-�]^�\����?z���.~v�b��|���Oe��/�2�C�~���'V^z��B��S`U��L���o���4�x���D�( ��N<�����g��Q����=/���J|x���W�z��Jom@��L����;�jL�.���f=����1j�����3g�7[)�/������vhM@`UkNr @���&0i��J�#)��|guo�UGqD�e0:�{KW]uU��Q�Fe��]^V��@���!/��^x!���o���E�Vo�~:����+;�����- ��b
�x�?{�rt��S�t��t���H3�\Ke�W+�/�G��n(�Mg�}v��Z
����:����)��ZI{��gvL�����?Z9L:H �~���������������^]��L��5��t��>����Q�fEz��7*g�yfe�����h�V^y�����Z���������.�Y�m'@���V��$��|�So�U���_��/?�U���q��c�C�]^�:�N�@�8��
mLL[�O���o�n�������1�_�������.�V�_��@�������o� ��X���Wx��m�AT���oL�Zk��Ae��c%�$@���{��B����Fyi5�jn�3����6-����t�QGe���=��d+��C�@�	��kmDo��>�����v����O_��]��7�<{6�����������f�W��<�����./_W� 0��f�� @`�	�_�z��e�]
/~�ero���k���O?=;�����- 0 �;��B�����c�~�e���3����J�m�����e+���`�K�#F��|�#�6JS�L)��_��Q�n����}
��.���m @�c"�����6mZv=�V��v����d�����Y�zZ8����c������z�n&�������#3������N;���j�ng�.�[�m @����D�T?�z����-F��Oe���]^}}� @���	��=/�	 @��<����oo�U[n�e�����>���c�;�������
�@�@����k
mK�a1zU}��l����q���4\�w�><�SvyY���=}���r�UF�����+�|��v��9�a�-�(W�Uvy�r� ����{n���O�W�j`��hg�=���~�Yg�����������?~|����A1R��o��Ut������?O��M7����������+T�
)P?�_�]����SN���J�_z���F#��3V>���^vy��Z&@���X5�f� @��L��B��Vm��v���V*Y��~���f��]^V���@��Q�~��5�F����
�V��V���u��]^���N�@��y��+{��G�W��U%�{}�|�I'.6�10�|����u��]^+u�����o�S�j�j`U}Y��������VG�����X%�����__��)��x������sX��*F��Mu����]^�����h���j��V�:uj��x���+�n�m��Z{���V�}�e����l @���X5[\2 @��y+��d�-�*:�������t�=�����k���j��%@��
}���6%��Qj���
/��/,����[I��.F�����������!����V��s�B��M�K��{������j	g�M7�����Z*��Z�~	�\���z��A!�
^~��n�j`��hg�
1"M+��SO���h[c�d���'0c����S�k�W���/��]x����,e�3e��U�+0d����I�C���,E��oK"��O?�e/�/�����Z @��9X5Gl"@��F ^�jz��jy��Y C����p���/�<�]vyY��w�i��n���h[6�x���+���p��7���M|��o�v�u������
�@����z���L|)\K��M+�;��Ck�z�]����b��Z*��Z�~	�\��;,k/�����nkx1�V��v&?��k���~��9���u�(��Z'@``t�A�v!?`��L��
�;�*	�o�u�Y�������^p}������c��K/���� @`�V��� @�����Xu��^[�����k
�����Tvy�r� ��b����/�^�rZ���rt����w6S��?�Y8f������]^V�������L�SK�����|pg-O���4�et-�]^�\�t��#�<Rhc��9�����������������G�������7��2�~�h5[���/.�'�xbRv;SvyYE- ���1`����K.��Zn����1��vZvL�}�e��U������9bs�7�����.�����]�F�[����9���RvyY��71B���[�k����6(F2�-�{���c�;�������
�@����B���o�������ZI����"5��./_�e:K �E���e9�e�31�_�n�f�����r~J�8��cd#�F��n(�%���������77����������~����I�
�p��1e���]^VQ 0G����A @`��_�z��������R��]���zvH��e[ @�_<�����%�N�r+�N�bD������jy������1��zk������- ���.�?��q������������������^��O��
��g�y�P���^8���
�[!@�������I����������>���Ep{o)F��]C���K�������>8r���..��j�B����ng�.������8���
m�	'��k}�������8}��r�@���X�Q�Ke	 @`�	�;�z�����w�a�^�����ii������22 �1�>�l%�~D���"�T�ivS~��V�B_z���)�.�P�:N�~��VF�z��w�mZ����m���k��������> 4������e[&@��"0a��Wn��
+�Ph��Y�v�j��V������Qf.������W�L��;���N�@g
��I3f���B���x����������*j������|��{�����I��K/��^/N�Q@`U�<v @�������X56lX��.^����*0_~��P��.��|�t�@Lc�o?"���G����i�e�r�-M�y��W
�����������N�@�	�O���s��x7�tS�]�z����;�;�������H1��E�W>�]^�l��_�.�?Cy��M/��v&F:�����bz�|�����i]� @�3v�u��������/��'�,�������e�3e�����I�@G�����U{F�vh���=�}�u����qO=�T!�}�e�W���-�U��%3�����m%��~���w����;�t�t|98t����`���.�[El @��F�Uh;��i��Is|������j#�������FG(��9�0 �6�#�l���M��O�s=����?��?�����w�}�<�����v�q���������- ��f'�jn�31�s���sY���z�SI�?dJ�/������&��R~*���F0b��B�c�=6���\v;Svy�*l'P������(��s���n�le���]^�
�@�-�j�JF 0����V��9����bJ��W1JC}P�[l����.��Il$@�c^}��n���t�i���'F��O�n�m������W�����*�_@GG��o�Y_Tu�����F:F���/��~<'E�R?����c�Ms��4
8���
�V���0���d�&���7���[vy��- �?f'�*�ng�=�o��<����=&L����u�Y����*\ ����iI��}�~��J<_���x�k�Pv;Svy���|�B`�����U"����x���[��h������.�_�4A��>X�G�NK�Z����Xe�p�
�^�����f�5���/:���-������e[&@���?��nmH��jey�}��v�DA	��GG|����<1UW�Tvy��c;�#p��Wwkc���6f�-��������f�H�f�j�\��r�UbD�x���W��C=�)X��5=����
����A�����3�A�>�"�����y���)�����[��������e��!��G�q���6)��)��������)�k�l��x��w����#O���,���^vy��m;�,0_���?�hC����/�UW`U:���������7}�{�K]_��-uu`�?����kt���]^�'�����j��R��V��~]�U�+@�[]�	��6�,uu�w�W��k��5�V���z��
�B�@G
�|��i���n��]�{���]z|Fz�����~������v��Z^����"e�W_�u����/��>��gu��G����l��B��Lt+�s������t�m��9f����}���
�K����}�
���?*�z�WL�^{mZ~���"����]^���A�@G	��o���O�<��z���.��SOM�{����-�/����V��/����&��_|1�r�)���F�&]�QV�E�FO]����)RW`b���n�VYe�^���@Gt=HJ @�@�
��{]�??��Og��]A�a��e������X��Mk����k��2 �61�T�
����B�Y����JW�B����|���s�=���������:N����:�J�6,��bz�F��5������Ol8BU�#F����"_+���Z9�<t��+��Rx.��E[Is��=zt�+@�P�Z;��	'�P��l$�@�?�V��g��mB��(F{�v��Tv;Svy�^�|��@����;7}��Q�.����/������k�Bd0������KV��hi=��79���������/xv�?��s�G�/�X��$/ @���,����~���(0.�`������|��u��\������%@``t� �'�x"�w�}i���v����tZj��������"@��^������>�h�\�k��}�s�k
�9�����������k���^��v-��2)���$�]����1�o����hOc��Gy$}�#I��>���oHWG�@C��)H��O>�{����a_���K_���G�I�ng�.�!��t�@�Y�'�]A"i�e���/������^vysrM���w��_�"�s�9���(������bT���;.�<h�������X �(p�?�|��k��t�gd�t����N�k�L� @� @� @��C� <���-��R(������,�������i���K/�puS�u�Y�kD�Z�t��g��6�([�@��Vu�S_ @� @� @� @��tM��.���t�4<����#�<2�~�����
�~���4,�k�t��W�EPUWI:U@`U��9�&@� @� @� @������o_�*�����F�)�j�
6H��5�UW]�V_}��r�b���t�K,�D������X'�1�:�V�( @� @� @� 0b��o��z����O�a��2��H|pu�����N:��,�*����������C�#P�r�)��K/�nkXU�T�n����N���z��4z������g��&M������g���@�
���;�� @� @� @� @���5jT�k������
+�?��OM�{�m�I��v[u������j�,oV}�#I���ouT�X�:-`o�UY-,�����k��#G�p�,�S@`U{��"@� @� @� @�Tf���>���d7�|s���?����{��4d���jz������f���{oZy�������m;��z�*����[o���Yg�4e��j�=��3�h[�NX��wN�	 @� @� @� @��xw������^&����u��K.��z�fK��{n:����y�����_���������8w�������Zj���_' ���n�
 @� @� @� @���-��c��Ty�m���_�������;�1�z��-�X���{RL��O������T����/���-�Xu�i����:*;]�4��:H@`U�,U%@� @� @� @�R��U�J%}��_O�'O������������u�i�"�*�K,�����n�WY��B�U��~z:��#�R�_�t�������/�f�@'
������ @� @� @� @`�����g�uV:��#�w~�m�M�sL�� �"�)��~�����{g�zZx/�U�f�J?����E]��b�u�M��w^z����m�@�SVu��So @� @� @� 0@j`�s�=��R���
J��w_Zh��R8}�+_I�?�|u�_���4x����v�i`���3�����F���g��6J��r���L�B����;�� @� @� @� @`�	�����;��c�#C
><�;6m�����k��F���+[�1'�U��OO�o�}���������.��Cii��� �\@`U�� �#@� @� @� @��9���oL?��� 1B��g�]��o����m1b���o^�amv��L�R-��g��J��	w�i�l���" ����I�A� @� @� @���@�z���������k�U�v���4q����~������VM�:5�1"���.�����o}����@�Vu�]Sg @� @� @� 0�r`U���?<�s�9�������UW]U]�f�m���[]n�?�V����i��6K&L�=h��t�W�/����J>' ���n�
 @� @� @� @���-0��z��4l��n	����4t��n�{��j`Uo���wV���+;��X�!7J5	 @� @� @� @�����U������������4�|��6���J`��3�����M?��ZIc��I.�`+Y�!�v����� @� @� @� ������.���t�AeL|p��O~�����J`������;��j��|S�LXU��I�:�n�+ @� @� @� �f=}�{W���*]z�m�L~�G]�,�B������Ki��V�
�0aBZr�%��V" ���.�f��������n��y������e���lX���<�* ��]��z @� @� @� @� �g�����	 @� @� @� @�hW�U�zg�� @� @� @� @��>X�g�NL� @� @� @� @�@�
�j�;�^ @� @� @� @������>�wb @� @� @� @��U@`U���"@� @� @� @� @��V�� @� @� @� @� ������� @� @� @� @�}& ������ @� @� @� @��vX��wF� @� @� @� @��3�U}F�� @� @� @� @������v�3�E� @� @� @� @�@�	��3z'&@� @� @� @� @�]V���Q/ @� @� @� @��L@`U��;1 @� @� @� @��* ��]��z @� @� @� @� �g�����	 @� @� @� @�hW�U�zg�� @� @� @� @��>X�g�NL� @� @� @� @�@�
�j�;�^ @� @� @� @������>�wb @� @� @� @��U@`U���"@� @� @� @� @��V�� @� @� @� @� ������� @� @� @� @�}& ������ @� @� @� @��vX��wF� @� @� @� @��3�U}F�� @� @� @� @������v�3�E� @� @� @� @�@�	��3z'&@� @� @� @� @�]V���Q/ @� @� @� @��L@`U��;1 @� @� @� @��* ��]��z @� @� @� @� �g�����	 @� @� @� @�hW�U�zg�� @� @� @� @��>X�g�NL� @� @� @� @�@�
�j�;�^ @� @� @� @������>�wb @� @� @� @��U@`U���"@� @� @� @� @��V�� @� @� @� @� ������� @� @� @� @�}& ������ @� @� @� @��vX��wF� @� @� @� @��3�U}F�� @� @�@'
����i���Y��_~�����/[�@� @� @�@�X�?��� @� @�J�6mZ���[�v�m���o�1}�;����;6���Z�� @� @`�
�w�}��[om��+��rZo��Z�+V�;@� @�����Y���g����k�4t��4~��n6����@� @��T�W��U:��3Z��V[m��?�����D��U� @� @��-��W\qEuM`�� @� @�3��b�t�w�TY�U-1�D���V��@� @��������4z���Z������/�)������*�0$@� @��@�R���}�s���^����s�M.�`��,�������|��v @ / �*�a� @���V
h O� @��L��g�I_�����Za������6��� ���:���; @� P����R9F� @�����7��v�a��y��4O>�dz������/���o���:}�������O}�S���p�<�6��5+E���3���.���?��Q�������GMK,�D���?�4o�k��)�_��WZn���B-�4������v�]/ @� �M���^J1u�&�l��������W^9��u���O�.�hu�;��S����c-��������h3fL�<yrz����'>�����|��Um}�k�SN�81����i�e��v�~��_�q:�Zj��1:i�����V�;x��eD�oO�"���K� @��]��SNI�sL��G}t�n��J�rO�1�Z�����6�`�t�QG�[o�5=������
J��
K���5�*��O>��t���V��k�����k�Q���w��q)�c��	�}��s������'y���M���o��Q��9���e:th�����o��n���t��g�{������#E����o_��(d�B`�� 7�e @� @�����Z�T���5�"���L�����]��@�|����_�6�x����_<=��s����w�=�W��i�WLqL|}����K�7�J�OC�I��{n����k��V�h���fi�=��v�~��l��v @� �����K���P�g�S�{����_
h��/|�)��?������<��#i�������[�;���:�S���c��#GV���.��5�\�"�)��#�}��']u�U����[l�t�g�5�\��/�;����u�]��U����������W�z����+���RX_g�u�I'���C"0PV
�;��	 @� @���@�V���|�W�Z`��7������d�����Zk�l=:Nc��H��_����N��F(��?�9�v�i���Fy��b$���Q������[o]�"�Q��_��W�_��W�e�� @���@���T{�"��6u}�?����� -����z\�V�3n��F����j���/����#�s��\u:�|�/}�KY0X-s>0*�}�k_��?|�cK=�P��o~�" ��������dm��!V-�*��[�`�K.����g?�Y����X����������HW\}��* �j��y�M� @�Tf��YJ��w����Z��3:o���j��	�jDe�������{aw9E�T-EP�J+��x��n#]E�����Z������K�9[�b��O������N1����.0�#� @� @�@'	������Z�sE���W5
��i?���f��OGX������*���	?������'W�bC�|�����E��^{�U���)S��;���������.�������N?��j���>�����U��Sn�av�y��W�;vD�EL�X��0�b�C��@X5��k&@� @�
|���N�G����!����-��V]t�Ei�M7M�,�H����V������>;m��V��1RVL��[���i+?�a���7��b�Z1bDuz�%�\��)�������~��l[�������- @� @��N7n\�|����4(���?����SG����_���#��ud��������V��w�����{���L���~���������w�5�������]v���8 ]z�����������*?�vL�X���>�j��1����������'?�I:�����T���������W��c�?��O
��H�����w�� @� @�-����N8!���>������g���vF�UL'P�����c��6Gg��+���_y������r5����o�,Om!F���\kS���o�9���z�,~	 @� @�@���[l�4j����������oV�n���l�����#E����b���Z�ph�g/�����?�����_�b�^[����_I:��AQ12�=��S�v�W���^�vH��x��}v�I'e}���f�P�QV~��|pW���~����2�d��x����W�����r�]& @� ���������o��a��o������f����F���^�������y��&�d�V]u�4a��l����*t�f;��0u��Bgjt��9�>�u @� ��,S��Tw�����~D����.X5x��,0��DK-�T�����O1bV}���b�H����`������h�����'���;���z~��|`U|��a������/������������/�����l��~�������zg] @� 0�s#�����N1�T���������C9$���R|����|%�u����-��������������Zk�t�wT7���������L� @����N;��j�Vt�Ai�=�h����U1�^D5J���f�;5
��vz��g~�U;g����^{UW���;���r>�j�=�Lx`�������N#F���gg!�*��7�9;��K�_����E @� @�e�������:m���
�7n������g��3t��w������J+e���U��MK����`�]w��6[8���Rt����Y��,P[�K� @�����G�N?����l��6��c�m����UC�M�\sM������%�*F��)��6�p�t�9�T���"�*������c���b�K,Q����1���[o���� �_V��;�� @� @�����U1�_������������C�/|���|`U�:�O��4e����O}���x @� 0O��3f��^z�����/���lt�%�T�����i�}�i�7�cnV���;�w���j�E�W����_�:
�a�R�Ej%�*���Xc�j�A��G}���?4X��� @� @`�	����;��3���j
%�
����+�V[m����q���)��� @� @�@'��t'N�V��SNI�o�y�j���M&L��?��3Z�onVE���#b��n��.�d����~��?�i��Z	��@���W���c�%�����Oc�������>�����,�	�{�U���@ @� @�U�N
����[������2�
�����d��.l������D���#@� @�}*p�A��/��Z���_?]p�
�s�]w��6�,���?�9-����zO�"�j��wO1�u���vM��� ����8��_�ju��������y���/~��Zq��x �i-�~��i������%0`V
�[�B	 @� @���:5���'�,t������c���r�'@� @�-��?�1EpP-�z�����>u��M�<��-�O8���!�������z(�GR�t����m����Z����Z#H,�K,�b���(R�V]����?�q����o~����c�������������?V��k��F�Y]�M@`�@���� @�h*���U1����d����k�1c�d���3v��ii�����Y|���|���,�� @� @���}�����;������n���FU������j�k��V�=h��t�m�U��j�{���UQ�C9$]x��YuF��6�p���b���~8�v�i��g���G�S<�R��U�J%���W���;j������:��/\��������?��5jTZm���u�����t�]+ @� ���l�n���j�!C���������x���i�����Zk�,�u�]�6�d�l��;�l��8n������gyc��������z�_�B����/�~q[��"O-������;c��j0U|�ZK�����.Z[�K� @��^ �e�]�6"U�
/��r���>��O7��p��
�z��W��~����?��a=�O<��jpT~[��UqL������$M�0!_D���O?=}���m��FA@`�@���� @�hI :
#�)Rt�N�4��q�X_����NY}W\q�j�>��l[~a���J1EB-����~m�/ @�����z�:�S�F��U>F|�i�=����"��6����c��u�Y���5�HW^ye�c?���f��2eJZp������F�]�v���J��D��1������X��������|������W��w��v��'���w�I\pAu$���T�<a���{�UVY���/�) �j@�vM� @�4��.���l�	'��b����i���U�!�_��6]a��e�]�����d�#U���H���O��sO������d� @�t�@��tyO<�Dz������K,�DG]C��1����?^�����x<xp���>T�]�o�D��/���\r���RK��s�Zq�����S @� @��!G�k�4m�����Xu���UW]�[�c����9sf3fL�O���:��t��v;� @� @�Y@`�@���� @�(<����k_�Z����t�m��o|�mX�?~|���&N�������*� @� @��������5 @� @`���/I?���&]p���7�|s6lX�4n��j0VmC��Vw�}wa*�Z���������p�
i����,�r�S����Q��f�mV[-������#�H��~�>}za_me����?�y2dHm�_ @� @�r�r	 @� @�5���~:=�����@Zj����?������}������>�"0k�EI�N�,�L�^OG��, @� @�@G������ @� @� @� @��
�UsCU� @� @� @� @�t������}*O� @� @� @� @���X57T�I� @� @� @� @�@G������ @� @� @� @��
�UsCU� @� @� @� @�t������}*O� @� @� @� @���X57T�I� @� @� @� @�@G������ @� @� @� @��
�UsCU� @� @� @� @�t������}*O� @� @� @� @���X57T�I� @� @� @� @�@G������ @� @� @� @��
���K�7cG�~IEND�B`�
hi-concurrency-11-12.csvtext/csv; charset=US-ASCII; name=hi-concurrency-11-12.csvDownload
lo-concurrency-11-12.csvtext/csv; charset=US-ASCII; name=lo-concurrency-11-12.csvDownload
#30Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#29)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Thu, Mar 2, 2023 at 9:17 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

On Thu, 2 Mar 2023 at 18:53, Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Thu, Mar 2, 2023 at 1:29 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Let's see the performance results for the patchset. I'll properly
revise the comments if results will be good.

Pavel, could you please re-run your tests over revised patchset?

Since last time I've improved the test to avoid significant series
differences due to AWS storage access variation that is seen in [1].
I.e. each series of tests is run on a tmpfs with newly inited pgbench
tables and vacuum. Also, I've added a test for low-concurrency updates
where the locking optimization isn't expected to improve performance,
just to make sure the patches don't make things worse.

The tests are as follows:
1. Heap updates with high tuple concurrency:
Prepare without pkeys (pgbench -d postgres -i -I dtGv -s 10 --unlogged-tables)
Update tellers 100 rows, 50 conns ( pgbench postgres -f
./update-only-tellers.sql -s 10 -P10 -M prepared -T 600 -j 5 -c 50 )

Result: Average of 5 series with patches (0001+0002) is around 5%
faster than both master and patch 0001. Still, there are some
fluctuations between different series of the measurements of the same
patch, but much less than in [1]

Thank you for running this that fast!

So, it appears that 0001 patch has no effect. So, we probably should
consider to drop 0001 patch and consider just 0002 patch.

The attached patch v12 contains v11 0002 patch extracted separately.
Please, add it to the performance comparison. Thanks.

I've done a benchmarking on a full series of four variants: master vs
v11-0001 vs v11-0001+0002 vs v12 in the same configuration as in the
previous measurement. The results are as follows:

1. Heap updates with high tuple concurrency:
Average of 5 series v11-0001+0002 is around 7% faster than the master.
I need to note that while v11-0001+0002 shows consistent performance
improvement over the master, its value can not be determined more
precisely than a couple of percents even with averaging. So I'd
suppose we may not conclude from the results if a more subtle
difference between v11-0001+0002 vs v12 (and master vs v11-0001)
really exists.

2. Heap updates with high tuple concurrency:
All patches and master are still the same within a tolerance of
less than 0.7%.

Overall patch v11-0001+0002 doesn't show performance degradation so I
don't see why to apply only patch 0002 skipping 0001.

Thank you, Pavel. So, it seems that we have substantial benefit only
with two patches. So, I'll continue working on both of them.

------
Regards,
Alexander Korotkov

#31Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#30)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Thu, Mar 2, 2023 at 11:16 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Thu, Mar 2, 2023 at 9:17 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

On Thu, 2 Mar 2023 at 18:53, Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Thu, Mar 2, 2023 at 1:29 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Let's see the performance results for the patchset. I'll properly
revise the comments if results will be good.

Pavel, could you please re-run your tests over revised patchset?

Since last time I've improved the test to avoid significant series
differences due to AWS storage access variation that is seen in [1].
I.e. each series of tests is run on a tmpfs with newly inited pgbench
tables and vacuum. Also, I've added a test for low-concurrency updates
where the locking optimization isn't expected to improve performance,
just to make sure the patches don't make things worse.

The tests are as follows:
1. Heap updates with high tuple concurrency:
Prepare without pkeys (pgbench -d postgres -i -I dtGv -s 10 --unlogged-tables)
Update tellers 100 rows, 50 conns ( pgbench postgres -f
./update-only-tellers.sql -s 10 -P10 -M prepared -T 600 -j 5 -c 50 )

Result: Average of 5 series with patches (0001+0002) is around 5%
faster than both master and patch 0001. Still, there are some
fluctuations between different series of the measurements of the same
patch, but much less than in [1]

Thank you for running this that fast!

So, it appears that 0001 patch has no effect. So, we probably should
consider to drop 0001 patch and consider just 0002 patch.

The attached patch v12 contains v11 0002 patch extracted separately.
Please, add it to the performance comparison. Thanks.

I've done a benchmarking on a full series of four variants: master vs
v11-0001 vs v11-0001+0002 vs v12 in the same configuration as in the
previous measurement. The results are as follows:

1. Heap updates with high tuple concurrency:
Average of 5 series v11-0001+0002 is around 7% faster than the master.
I need to note that while v11-0001+0002 shows consistent performance
improvement over the master, its value can not be determined more
precisely than a couple of percents even with averaging. So I'd
suppose we may not conclude from the results if a more subtle
difference between v11-0001+0002 vs v12 (and master vs v11-0001)
really exists.

2. Heap updates with high tuple concurrency:
All patches and master are still the same within a tolerance of
less than 0.7%.

Overall patch v11-0001+0002 doesn't show performance degradation so I
don't see why to apply only patch 0002 skipping 0001.

Thank you, Pavel. So, it seems that we have substantial benefit only
with two patches. So, I'll continue working on both of them.

The revised patchset is attached. The patch removing extra
table_tuple_fetch_row_version() is back. The second patch now
implements a concept of LazyTupleTableSlot, a slot which gets
allocated only when needed. Also, there is more minor refactoring and
more comments.

------
Regards,
Alexander Korotkov

Attachments:

0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v13.patchapplication/octet-stream; name=0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v13.patchDownload
From 390514d5fa1dee2c5830f9630d9757ecf5d47653 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Wed, 11 Jan 2023 15:00:49 +0300
Subject: [PATCH 1/2] Evade extra table_tuple_fetch_row_version() in
 ExecUpdate()/ExecDelete()

When we lock tuple using table_tuple_lock() then we at the same time fetch
the locked tuple to the slot.  In this case we can skip extra
table_tuple_fetch_row_version() thank to we've already fetched the 'old' tuple
and nobody can change it concurrently since it's locked.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/executor/nodeModifyTable.c | 46 ++++++++++++++++++--------
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 6f44d71f16b..839e8fe0d04 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1589,6 +1589,21 @@ ldelete:
 					{
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
+
+							/*
+							 * Save locked tuple for further processing of
+							 * RETURNING clause.
+							 */
+							if (processReturning &&
+								resultRelInfo->ri_projectReturning &&
+								!resultRelInfo->ri_FdwRoutine)
+							{
+								TupleTableSlot *returningSlot;
+								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+								ExecCopySlot(returningSlot, inputslot);
+								ExecMaterializeSlot(returningSlot);
+							}
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -1703,12 +1718,16 @@ ldelete:
 		}
 		else
 		{
+			/*
+			 * Tuple can be already fetched to the returning slot in case we've
+			 * previously locked it.  Fetch the tuple only if the slot is empty.
+			 */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -2409,6 +2428,19 @@ redo_act:
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
 
+							/* Make sure ri_oldTupleSlot is initialized. */
+							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+								ExecInitUpdateProjection(context->mtstate,
+														 resultRelInfo);
+
+							/*
+							 * Save the locked tuple for further calculation of
+							 * the new tuple.
+							 */
+							oldSlot = resultRelInfo->ri_oldTupleSlot;
+							ExecCopySlot(oldSlot, inputslot);
+							ExecMaterializeSlot(oldSlot);
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -2417,18 +2449,6 @@ redo_act:
 								/* Tuple not passing quals anymore, exiting... */
 								return NULL;
 
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
 							slot = ExecGetUpdateNewTuple(resultRelInfo,
 														 epqslot, oldSlot);
 							goto redo_act;
-- 
2.37.1 (Apple Git-137.1)

0002-Allow-locking-updated-tuples-in-tuple_update-and-v13.patchapplication/octet-stream; name=0002-Allow-locking-updated-tuples-in-tuple_update-and-v13.patchDownload
From e54bfc8a633fbd7c1547de74444a3456f32486cf Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH 2/2] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the latest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam.c         | 129 +++++++++---
 src/backend/access/heap/heapam_handler.c |  49 ++++-
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 249 ++++++++---------------
 src/include/access/heapam.h              |  45 +++-
 src/include/access/tableam.h             |  27 ++-
 src/include/executor/tuptable.h          |  38 ++++
 7 files changed, 329 insertions(+), 214 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 4f50e0dd347..08290435d0e 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2462,7 +2462,8 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			TM_FailureData *tmfd, bool changingPart, Snapshot snapshot,
+			LazyTupleTableSlot *lockedSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2661,6 +2662,28 @@ l1:
 			result = TM_Updated;
 	}
 
+	/*
+	 * If tuple was concurrently updates and 'lockedSlot' is given, then we
+	 * lock tuple saving our efforts on its finding.
+	 */
+	if (result == TM_Updated && lockedSlot)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+
+		result = heapam_tuple_lock_context(relation, tid, snapshot,
+										   LAZY_TTS_EVAL(lockedSlot),
+										   cid, LockTupleExclusive,
+										   wait ? LockWaitBlock : LockWaitError,
+										   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+										   tmfd, &context);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -2884,7 +2907,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 &tmfd, false /* changingPart */ ,
+						 SnapshotAny, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2924,7 +2948,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, LockTupleMode *lockmode)
+			TM_FailureData *tmfd, LockTupleMode *lockmode, Snapshot snapshot,
+			LazyTupleTableSlot *lockedSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3291,6 +3316,33 @@ l2:
 		}
 	}
 
+	/*
+	 * If tuple was concurrently updates and 'lockedSlot' is given, then we
+	 * lock tuple saving our efforts on its finding.
+	 */
+	if (result == TM_Updated && lockedSlot)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+
+		result = heapam_tuple_lock_context(relation, otid, snapshot,
+										   LAZY_TTS_EVAL(lockedSlot),
+										   cid, *lockmode,
+										   wait ? LockWaitBlock : LockWaitError,
+										   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+										   tmfd, &context);
+		bms_free(hot_attrs);
+		bms_free(key_attrs);
+		bms_free(id_attrs);
+		bms_free(modified_attrs);
+		bms_free(interesting_attrs);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -3960,7 +4012,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, &lockmode);
+						 &tmfd, &lockmode, SnapshotAny, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4021,10 +4073,12 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  *	wait_policy: what to do if tuple lock is not available
  *	follow_updates: if true, follow the update chain to also lock descendant
  *		tuples.
+ *	*context: a context containing the previous efforts on finding the
+ *		target tuple.
  *
  * Output parameters:
  *	*tuple: all fields filled in
- *	*buffer: set to buffer holding tuple (pinned but not locked at exit)
+ *	context->buffer: set to buffer holding tuple (pinned but not locked at exit)
  *	*tmfd: filled in failure cases (see below)
  *
  * Function results are the same as the ones for table_tuple_lock().
@@ -4042,13 +4096,14 @@ TM_Result
 heap_lock_tuple(Relation relation, HeapTuple tuple,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				HeapLockContext *context, TM_FailureData *tmfd)
 {
 	TM_Result	result;
 	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
-	Buffer		vmbuffer = InvalidBuffer;
+	Buffer		buffer = context->buffer,
+				vmbuffer = context->vmbuffer;
 	BlockNumber block;
 	TransactionId xid,
 				xmax;
@@ -4057,10 +4112,11 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 				new_infomask2;
 	bool		first_time = true;
 	bool		skip_tuple_lock = false;
-	bool		have_tuple_lock = false;
+	bool		have_tuple_lock = context->have_tuple_lock;
 	bool		cleared_all_frozen = false;
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	if (BufferIsInvalid(buffer))
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4069,12 +4125,17 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (BufferIsInvalid(vmbuffer) && PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	/*
+	 * If the valid buffer is given in the 'context' then it should be already
+	 * locked.  Lock it otherwise.
+	 */
+	if (BufferIsInvalid(context->buffer))
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
@@ -4083,7 +4144,7 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4112,7 +4173,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4264,12 +4325,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4304,7 +4365,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4332,7 +4393,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4344,7 +4405,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4372,7 +4433,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4394,7 +4455,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4419,7 +4480,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4445,7 +4506,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4485,7 +4546,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4511,12 +4572,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4538,7 +4599,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4597,9 +4658,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4662,7 +4723,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4682,7 +4743,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4703,7 +4764,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4721,6 +4782,10 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	context->buffer = buffer;
+	context->vmbuffer = InvalidBuffer;
+	context->have_tuple_lock = false;
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..bbb8af473bd 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -299,14 +299,20 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					LazyTupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart,
+						 snapshot, lockedSlot);
+
+	return result;
 }
 
 
@@ -314,7 +320,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					LazyTupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -325,7 +332,7 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	tuple->t_tableOid = slot->tts_tableOid;
 
 	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode);
+						 tmfd, lockmode, snapshot, lockedSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -349,12 +356,28 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_context(relation, tid, snapshot, slot, cid, mode,
+									 wait_policy, flags, tmfd, NULL);
+}
+
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `context` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+TM_Result
+heapam_tuple_lock_context(Relation relation, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *slot, CommandId cid,
+						  LockTupleMode mode, LockWaitPolicy wait_policy,
+						  uint8 flags, TM_FailureData *tmfd,
+						  HeapLockContext *context)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
+	Buffer		buffer = InvalidBuffer;
 
 	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
 	tmfd->traversed = false;
@@ -363,8 +386,20 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!context)
+	{
+		HeapLockContext cxt = {InvalidBuffer, InvalidBuffer, false};
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &cxt, tmfd);
+		buffer = cxt.buffer;
+	}
+	else
+	{
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, context, tmfd);
+		buffer = context->buffer;
+		context = NULL;
+	}
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..4cfdb4066f6 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 839e8fe0d04..70aeeeed6fc 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1354,6 +1354,23 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	return true;
 }
 
+typedef struct
+{
+	EPQState *epqstate;
+	ResultRelInfo *resultRelInfo;
+} GetEPQSlotArg;
+
+
+static TupleTableSlot *
+GetEPQSlot(void *arg)
+{
+	GetEPQSlotArg *slotArg = (GetEPQSlotArg *) arg;
+
+	return EvalPlanQualSlot(slotArg->epqstate,
+							slotArg->resultRelInfo->ri_RelationDesc,
+							slotArg->resultRelInfo->ri_RangeTableIndex);
+}
+
 /*
  * ExecDeleteAct -- subroutine for ExecDelete
  *
@@ -1366,14 +1383,18 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, bool changingPart)
 {
 	EState	   *estate = context->estate;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
+	LazyTupleTableSlot lazyEPQSlot;
 
+	MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  &lazyEPQSlot);
 }
 
 /*
@@ -1571,102 +1592,46 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
+					/*
+					 * Save locked table for further processing of
+					 * RETURNING clause.
+					 */
+					if (processReturning &&
+						resultRelInfo->ri_projectReturning &&
+						!resultRelInfo->ri_FdwRoutine)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							/*
-							 * Save locked tuple for further processing of
-							 * RETURNING clause.
-							 */
-							if (processReturning &&
-								resultRelInfo->ri_projectReturning &&
-								!resultRelInfo->ri_FdwRoutine)
-							{
-								TupleTableSlot *returningSlot;
-								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
-								ExecCopySlot(returningSlot, inputslot);
-								ExecMaterializeSlot(returningSlot);
-							}
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
+						TupleTableSlot *returningSlot;
+						returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+						ExecCopySlot(returningSlot, inputslot);
+						ExecMaterializeSlot(returningSlot);
+					}
 
-						default:
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
+					{
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -2006,6 +1971,8 @@ ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
+	LazyTupleTableSlot lazyEPQSlot;
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2129,13 +2096,15 @@ lreplace:
 	 * for referential integrity updates in transaction-snapshot mode
 	 * transactions.
 	 */
+	MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
 	result = table_tuple_update(resultRelationDesc, tupleid, slot,
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								&lazyEPQSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2286,7 +2255,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2408,81 +2377,39 @@ redo_act:
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/*
-							 * Save the locked tuple for further calculation of
-							 * the new tuple.
-							 */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							ExecCopySlot(oldSlot, inputslot);
-							ExecMaterializeSlot(oldSlot);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
+					/* Make sure ri_oldTupleSlot is initialized. */
+					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+						ExecInitUpdateProjection(context->mtstate,
+												resultRelInfo);
 
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					/*
+					 * Save the locked tuple for further calculation of
+					 * the new tuple.
+					 */
+					oldSlot = resultRelInfo->ri_oldTupleSlot;
+					ExecCopySlot(oldSlot, inputslot);
+					ExecMaterializeSlot(oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2726,7 +2653,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -3897,7 +3824,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 8d74d1b7e30..c18372c7032 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -191,6 +191,32 @@ typedef struct HeapPageFreeze
 
 } HeapPageFreeze;
 
+/*
+ * The data structure allowing to pass to heapam_tuple_lock_context() and
+ * heap_lock_tuple() previous efforts on finding the target tuple.
+ */
+typedef struct
+{
+	/*
+	 * If valid buffer is given then it must be an exclusively locked buffer
+	 * containing the target tuple.
+	 */
+	Buffer		buffer;
+
+	/*
+	 * If valid buffer is given then it must be visibility map buffer
+	 * corresponding to the page containing the target tuple.
+	 */
+	Buffer		vmbuffer;
+
+	/*
+	 * A flag inficating that we've previously obtained a tuple lock in
+	 * the target mode.
+	 */
+	bool		have_tuple_lock;
+} HeapLockContext;
+
+
 /* ----------------
  *		function prototypes for heap access method
  *
@@ -243,17 +269,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 Snapshot snapshot,
+							 LazyTupleTableSlot *lockedSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, LockTupleMode *lockmode);
+							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
+							 Snapshot snapshot,
+							 LazyTupleTableSlot *lockedSlot);
 extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
 								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+								 HeapLockContext *context,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
@@ -328,4 +359,12 @@ extern bool ResolveCminCmaxDuringDecoding(struct HTAB *tuplecid_data,
 extern void HeapCheckForSerializableConflictOut(bool visible, Relation relation, HeapTuple tuple,
 												Buffer buffer, Snapshot snapshot);
 
+extern TM_Result heapam_tuple_lock_context(Relation relation, ItemPointer tid,
+										   Snapshot snapshot,
+										   TupleTableSlot *slot,
+										   CommandId cid, LockTupleMode mode,
+										   LockWaitPolicy wait_policy,
+										   uint8 flags, TM_FailureData *tmfd,
+										   HeapLockContext *context);
+
 #endif							/* HEAPAM_H */
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 652e96f1b0b..6f1eed71307 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,8 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 LazyTupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +527,8 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 LazyTupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1441,7 +1443,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple.
+ * Delete a tuple (or lock last tuple version if lockedSlot is given).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1457,6 +1459,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - lazy slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1469,15 +1473,17 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   LazyTupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlot);
 }
 
 /*
- * Update a tuple.
+ * Update a tuple (or lock last tuple version if lockedSlot is given).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1495,7 +1501,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - lazy slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1514,12 +1522,13 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, LazyTupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlot);
 }
 
 /*
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index 882be39f029..61b7b16ef75 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -300,6 +300,44 @@ typedef struct MinimalTupleTableSlot
 #define TupIsNull(slot) \
 	((slot) == NULL || TTS_EMPTY(slot))
 
+/*----------
+ * LazyTupleTableSlot -- a lazy version of TupleTableSlot.
+ *
+ * Sometimes caller might need to pass to the function a slot, which most
+ * likely will reain undemanded.
+ * Preallocating such slot would be a waste of resources in the  majority of cases.
+ * Lazy slot is aimed to resolve this problem.  It is basically a
+ * promise to allocate the slot once it's needed.  Once callee needs the slot,
+ * it could get it using LAZY_TTS_EVAL(lazySlot) macro.
+ */
+typedef struct
+{
+	TupleTableSlot *slot;		/* cached slot or NULL if not yet allocated */
+	TupleTableSlot *(*getSlot) (void *arg); /* callback for slot allocation */
+	void	   *getSlotArg;		/* argument for the callback above */
+} LazyTupleTableSlot;
+
+/*
+ * A constructor for the lazy slot.
+ */
+#define MAKE_LAZY_TTS(lazySlot, callback, arg) \
+	do { \
+		(lazySlot)->slot = NULL; \
+		(lazySlot)->getSlot = callback; \
+		(lazySlot)->getSlotArg = arg; \
+	} while (false)
+
+/*
+ * Macro for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
+ * Cached version is used if present.  Use the callback otherwise.
+ */
+#define LAZY_TTS_EVAL(lazySlot) \
+	((lazySlot) ? \
+		((lazySlot)->slot ? \
+			(lazySlot)->slot : \
+			((lazySlot)->slot = (lazySlot)->getSlot((lazySlot)->getSlotArg))) : \
+		NULL)
+
 /* in executor/execTuples.c */
 extern TupleTableSlot *MakeTupleTableSlot(TupleDesc tupleDesc,
 										  const TupleTableSlotOps *tts_ops);
-- 
2.37.1 (Apple Git-137.1)

#32Andres Freund
andres@anarazel.de
In reply to: Pavel Borisov (#27)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

On 2023-03-02 14:28:56 +0400, Pavel Borisov wrote:

2. Heap updates with low tuple concurrency:
Prepare with pkeys (pgbench -d postgres -i -I dtGvp -s 300 --unlogged-tables)
Update 3*10^7 rows, 50 conns (pgbench postgres -f
./update-only-account.sql -s 300 -P10 -M prepared -T 600 -j 5 -c 50)

Result: Both patches and master are the same within a tolerance of
less than 0.7%.

What exactly does that mean? I would definitely not want to accept a 0.7%
regression of the uncontended case to benefit the contended case here...

Greetings,

Andres Freund

#33Alexander Korotkov
aekorotkov@gmail.com
In reply to: Andres Freund (#32)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Tue, Mar 7, 2023 at 4:50 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-02 14:28:56 +0400, Pavel Borisov wrote:

2. Heap updates with low tuple concurrency:
Prepare with pkeys (pgbench -d postgres -i -I dtGvp -s 300 --unlogged-tables)
Update 3*10^7 rows, 50 conns (pgbench postgres -f
./update-only-account.sql -s 300 -P10 -M prepared -T 600 -j 5 -c 50)

Result: Both patches and master are the same within a tolerance of
less than 0.7%.

What exactly does that mean? I would definitely not want to accept a 0.7%
regression of the uncontended case to benefit the contended case here...

I don't know what exactly Pavel meant, but average overall numbers for
low concurrency are.
master: 420401 (stddev of average 233)
patchset v11: 420111 (stddev of average 199)
The difference is less than 0.1% and that is very safely within the error.

------
Regards,
Alexander Korotkov

#34Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Alexander Korotkov (#33)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Andres and Alexander!

On Tue, 7 Mar 2023, 10:10 Alexander Korotkov, <aekorotkov@gmail.com> wrote:

On Tue, Mar 7, 2023 at 4:50 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-02 14:28:56 +0400, Pavel Borisov wrote:

2. Heap updates with low tuple concurrency:
Prepare with pkeys (pgbench -d postgres -i -I dtGvp -s 300

--unlogged-tables)

Update 3*10^7 rows, 50 conns (pgbench postgres -f
./update-only-account.sql -s 300 -P10 -M prepared -T 600 -j 5 -c 50)

Result: Both patches and master are the same within a tolerance of
less than 0.7%.

What exactly does that mean? I would definitely not want to accept a 0.7%
regression of the uncontended case to benefit the contended case here...

I don't know what exactly Pavel meant, but average overall numbers for
low concurrency are.
master: 420401 (stddev of average 233)
patchset v11: 420111 (stddev of average 199)
The difference is less than 0.1% and that is very safely within the error.

Yes, the only thing that I meant is that for low-concurrency case the
results between patch and master are within the difference between repeated
series of measurements. So I concluded that the test can not prove any
difference between patch and master.

I haven't meant or written there is some performance degradation.

Alexander, I suppose did an extra step and calculated overall average and
stddev, from raw data provided. Thanks!

Regards,
Pavel.

Show quoted text
#35Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#34)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Tue, Mar 7, 2023 at 7:26 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

On Tue, 7 Mar 2023, 10:10 Alexander Korotkov, <aekorotkov@gmail.com> wrote:

I don't know what exactly Pavel meant, but average overall numbers for
low concurrency are.
master: 420401 (stddev of average 233)
patchset v11: 420111 (stddev of average 199)
The difference is less than 0.1% and that is very safely within the error.

Yes, the only thing that I meant is that for low-concurrency case the results between patch and master are within the difference between repeated series of measurements. So I concluded that the test can not prove any difference between patch and master.

I haven't meant or written there is some performance degradation.

Alexander, I suppose did an extra step and calculated overall average and stddev, from raw data provided. Thanks!

Pavel, thank you for verifying this.

Could you, please, rerun performance benchmarks for the v13? It
introduces LazyTupleTableSlot, which shouldn't do any measurable
impact on performance. But still.

------
Regards,
Alexander Korotkov

#36Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#31)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

On 2023-03-07 04:45:32 +0300, Alexander Korotkov wrote:

The second patch now implements a concept of LazyTupleTableSlot, a slot
which gets allocated only when needed. Also, there is more minor
refactoring and more comments.

This patch already is pretty big for what it actually improves. Introducing
even infrastructure to get a not that big win, in a not particularly
interesting, extreme, workload...

What is motivating this?

Greetings,

Andres Freund

#37Alexander Korotkov
aekorotkov@gmail.com
In reply to: Andres Freund (#36)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Wed, Mar 8, 2023 at 4:22 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-07 04:45:32 +0300, Alexander Korotkov wrote:

The second patch now implements a concept of LazyTupleTableSlot, a slot
which gets allocated only when needed. Also, there is more minor
refactoring and more comments.

This patch already is pretty big for what it actually improves. Introducing
even infrastructure to get a not that big win, in a not particularly
interesting, extreme, workload...

It's true that the win isn't dramatic. But can't agree that workload
isn't interesting. In my experience, high-contention over limited set
of row is something that frequently happen is production. I
personally took part in multiple investigations over such workloads.

What is motivating this?

Right, the improvement this patch gives to heap is not the full
motivation. Another motivation is improvement it gives to TableAM
API. Our current API implies that the effort on locating the tuple by
tid is small. This is more or less true for heap, where we just need
to pin and lock the buffer. But imagine other TableAM
implementations, where locating a tuple is more expensive. Current
API insist that we do that twice in update attempt and lock. Doing
that in single call could give such TableAM's singification economy
(but even for heap it's something). I'm working on such TableAM: it's
OrioleDB which implements index-organized tables. And I know there
are other examples (for instance, zedstore), where TID lookup includes
some indirection.

------
Regards,
Alexander Korotkov

#38Chris Travers
chris.travers@gmail.com
In reply to: Alexander Korotkov (#37)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

"Right, the improvement this patch gives to the heap is not the full motivation. Another motivation is the improvement it gives to TableAM API. Our current API implies that the effort on locating the tuple by tid is small. This is more or less true for the heap, where we just need to pin and lock the buffer. But imagine other TableAM implementations, where locating a tuple is more expensive."

Yeah. Our TableAM API is a very nice start to getting pluggable storage, but we still have a long ways to go to have an ability to really provide a wide variety of pluggable storage engines.

In particular, the following approaches are likely to have much more expensive tid lookups:
- columnar storage (may require a lot of random IO to reconstruct a tuple)
- index oriented storage (tid no longer physically locatable in the file via seek)
- compressed cold storage like pg_ctyogen (again seek may be problematic).

To my mind I think the performance benefits are a nice side benefit, but the main interest I have on this is regarding improvements in the TableAM capabilities. I cannot see how to do this without a lot more infrastructure.

#39Alexander Korotkov
aekorotkov@gmail.com
In reply to: Chris Travers (#38)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Fri, Mar 10, 2023 at 8:17 PM Chris Travers <chris.travers@gmail.com> wrote:

"Right, the improvement this patch gives to the heap is not the full motivation. Another motivation is the improvement it gives to TableAM API. Our current API implies that the effort on locating the tuple by tid is small. This is more or less true for the heap, where we just need to pin and lock the buffer. But imagine other TableAM implementations, where locating a tuple is more expensive."

Yeah. Our TableAM API is a very nice start to getting pluggable storage, but we still have a long ways to go to have an ability to really provide a wide variety of pluggable storage engines.

In particular, the following approaches are likely to have much more expensive tid lookups:
- columnar storage (may require a lot of random IO to reconstruct a tuple)
- index oriented storage (tid no longer physically locatable in the file via seek)
- compressed cold storage like pg_ctyogen (again seek may be problematic).

To my mind I think the performance benefits are a nice side benefit, but the main interest I have on this is regarding improvements in the TableAM capabilities. I cannot see how to do this without a lot more infrastructure.

Chris, thank you for your feedback.

The revised patch set is attached. Some comments are improved. Also,
we implicitly skip the new facility for the MERGE case. As I get Dean
Rasheed is going to revise the locking for MERGE soon [1].

Pavel, could you please re-run your test case on the revised patch?

1. /messages/by-id/CAEZATCU9e9Ccbi70yNbCcF7xvZ+zrjiD0_6eEq2zEZA1p+707A@mail.gmail.com

------
Regards,
Alexander Korotkov

Attachments:

0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v14.patchapplication/x-patch; name=0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v14.patchDownload
From a06e0864fd45b3fcac961a45e8c66f4dad6aac47 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Wed, 11 Jan 2023 15:00:49 +0300
Subject: [PATCH 1/2] Evade extra table_tuple_fetch_row_version() in
 ExecUpdate()/ExecDelete()

When we lock tuple using table_tuple_lock() then we at the same time fetch
the locked tuple to the slot.  In this case we can skip extra
table_tuple_fetch_row_version() thank to we've already fetched the 'old' tuple
and nobody can change it concurrently since it's locked.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/executor/nodeModifyTable.c | 46 ++++++++++++++++++--------
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 6f44d71f16b..839e8fe0d04 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1589,6 +1589,21 @@ ldelete:
 					{
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
+
+							/*
+							 * Save locked tuple for further processing of
+							 * RETURNING clause.
+							 */
+							if (processReturning &&
+								resultRelInfo->ri_projectReturning &&
+								!resultRelInfo->ri_FdwRoutine)
+							{
+								TupleTableSlot *returningSlot;
+								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+								ExecCopySlot(returningSlot, inputslot);
+								ExecMaterializeSlot(returningSlot);
+							}
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -1703,12 +1718,16 @@ ldelete:
 		}
 		else
 		{
+			/*
+			 * Tuple can be already fetched to the returning slot in case we've
+			 * previously locked it.  Fetch the tuple only if the slot is empty.
+			 */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -2409,6 +2428,19 @@ redo_act:
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
 
+							/* Make sure ri_oldTupleSlot is initialized. */
+							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+								ExecInitUpdateProjection(context->mtstate,
+														 resultRelInfo);
+
+							/*
+							 * Save the locked tuple for further calculation of
+							 * the new tuple.
+							 */
+							oldSlot = resultRelInfo->ri_oldTupleSlot;
+							ExecCopySlot(oldSlot, inputslot);
+							ExecMaterializeSlot(oldSlot);
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -2417,18 +2449,6 @@ redo_act:
 								/* Tuple not passing quals anymore, exiting... */
 								return NULL;
 
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
 							slot = ExecGetUpdateNewTuple(resultRelInfo,
 														 epqslot, oldSlot);
 							goto redo_act;
-- 
2.37.1 (Apple Git-137.1)

0002-Allow-locking-updated-tuples-in-tuple_update-and-v14.patchapplication/x-patch; name=0002-Allow-locking-updated-tuples-in-tuple_update-and-v14.patchDownload
From ca5a9e8121b3e9e86625eecf3d005cec7e85dbc2 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 30 Jun 2022 22:07:12 +0300
Subject: [PATCH 2/2] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access methods could save
efforts by traversing chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the latest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
---
 src/backend/access/heap/heapam.c         | 129 +++++++---
 src/backend/access/heap/heapam_handler.c |  49 +++-
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 288 ++++++++++-------------
 src/include/access/heapam.h              |  45 +++-
 src/include/access/tableam.h             |  27 ++-
 src/include/executor/tuptable.h          |  38 +++
 7 files changed, 362 insertions(+), 220 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 4f50e0dd347..08290435d0e 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2462,7 +2462,8 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			TM_FailureData *tmfd, bool changingPart, Snapshot snapshot,
+			LazyTupleTableSlot *lockedSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2661,6 +2662,28 @@ l1:
 			result = TM_Updated;
 	}
 
+	/*
+	 * If tuple was concurrently updates and 'lockedSlot' is given, then we
+	 * lock tuple saving our efforts on its finding.
+	 */
+	if (result == TM_Updated && lockedSlot)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+
+		result = heapam_tuple_lock_context(relation, tid, snapshot,
+										   LAZY_TTS_EVAL(lockedSlot),
+										   cid, LockTupleExclusive,
+										   wait ? LockWaitBlock : LockWaitError,
+										   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+										   tmfd, &context);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -2884,7 +2907,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 &tmfd, false /* changingPart */ ,
+						 SnapshotAny, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2924,7 +2948,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
 			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, LockTupleMode *lockmode)
+			TM_FailureData *tmfd, LockTupleMode *lockmode, Snapshot snapshot,
+			LazyTupleTableSlot *lockedSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3291,6 +3316,33 @@ l2:
 		}
 	}
 
+	/*
+	 * If tuple was concurrently updates and 'lockedSlot' is given, then we
+	 * lock tuple saving our efforts on its finding.
+	 */
+	if (result == TM_Updated && lockedSlot)
+	{
+		HeapLockContext context = {buffer, vmbuffer, have_tuple_lock};
+
+		result = heapam_tuple_lock_context(relation, otid, snapshot,
+										   LAZY_TTS_EVAL(lockedSlot),
+										   cid, *lockmode,
+										   wait ? LockWaitBlock : LockWaitError,
+										   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+										   tmfd, &context);
+		bms_free(hot_attrs);
+		bms_free(key_attrs);
+		bms_free(id_attrs);
+		bms_free(modified_attrs);
+		bms_free(interesting_attrs);
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+		return result;
+	}
+
 	if (result != TM_Ok)
 	{
 		Assert(result == TM_SelfModified ||
@@ -3960,7 +4012,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, &lockmode);
+						 &tmfd, &lockmode, SnapshotAny, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4021,10 +4073,12 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  *	wait_policy: what to do if tuple lock is not available
  *	follow_updates: if true, follow the update chain to also lock descendant
  *		tuples.
+ *	*context: a context containing the previous efforts on finding the
+ *		target tuple.
  *
  * Output parameters:
  *	*tuple: all fields filled in
- *	*buffer: set to buffer holding tuple (pinned but not locked at exit)
+ *	context->buffer: set to buffer holding tuple (pinned but not locked at exit)
  *	*tmfd: filled in failure cases (see below)
  *
  * Function results are the same as the ones for table_tuple_lock().
@@ -4042,13 +4096,14 @@ TM_Result
 heap_lock_tuple(Relation relation, HeapTuple tuple,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				HeapLockContext *context, TM_FailureData *tmfd)
 {
 	TM_Result	result;
 	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
-	Buffer		vmbuffer = InvalidBuffer;
+	Buffer		buffer = context->buffer,
+				vmbuffer = context->vmbuffer;
 	BlockNumber block;
 	TransactionId xid,
 				xmax;
@@ -4057,10 +4112,11 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 				new_infomask2;
 	bool		first_time = true;
 	bool		skip_tuple_lock = false;
-	bool		have_tuple_lock = false;
+	bool		have_tuple_lock = context->have_tuple_lock;
 	bool		cleared_all_frozen = false;
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	if (BufferIsInvalid(buffer))
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4069,12 +4125,17 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (BufferIsInvalid(vmbuffer) && PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	/*
+	 * If the valid buffer is given in the 'context' then it should be already
+	 * locked.  Lock it otherwise.
+	 */
+	if (BufferIsInvalid(context->buffer))
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
@@ -4083,7 +4144,7 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4112,7 +4173,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4264,12 +4325,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4304,7 +4365,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4332,7 +4393,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4344,7 +4405,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4372,7 +4433,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4394,7 +4455,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4419,7 +4480,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4445,7 +4506,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4485,7 +4546,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4511,12 +4572,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4538,7 +4599,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4597,9 +4658,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4662,7 +4723,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4682,7 +4743,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4703,7 +4764,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4721,6 +4782,10 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	context->buffer = buffer;
+	context->vmbuffer = InvalidBuffer;
+	context->have_tuple_lock = false;
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index c4b1916d36e..bbb8af473bd 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -299,14 +299,20 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					LazyTupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart,
+						 snapshot, lockedSlot);
+
+	return result;
 }
 
 
@@ -314,7 +320,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, bool *update_indexes)
+					LockTupleMode *lockmode, bool *update_indexes,
+					LazyTupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -325,7 +332,7 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	tuple->t_tableOid = slot->tts_tableOid;
 
 	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode);
+						 tmfd, lockmode, snapshot, lockedSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -349,12 +356,28 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_context(relation, tid, snapshot, slot, cid, mode,
+									 wait_policy, flags, tmfd, NULL);
+}
+
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `context` to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on fetching tuple and checking its visibility.
+ */
+TM_Result
+heapam_tuple_lock_context(Relation relation, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *slot, CommandId cid,
+						  LockTupleMode mode, LockWaitPolicy wait_policy,
+						  uint8 flags, TM_FailureData *tmfd,
+						  HeapLockContext *context)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
+	Buffer		buffer = InvalidBuffer;
 
 	follow_updates = (flags & TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS) != 0;
 	tmfd->traversed = false;
@@ -363,8 +386,20 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!context)
+	{
+		HeapLockContext cxt = {InvalidBuffer, InvalidBuffer, false};
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &cxt, tmfd);
+		buffer = cxt.buffer;
+	}
+	else
+	{
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, context, tmfd);
+		buffer = context->buffer;
+		context = NULL;
+	}
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index ef0d34fceee..4cfdb4066f6 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 839e8fe0d04..8cf81b251dc 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1354,26 +1354,59 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	return true;
 }
 
+typedef struct
+{
+	EPQState *epqstate;
+	ResultRelInfo *resultRelInfo;
+} GetEPQSlotArg;
+
+
+static TupleTableSlot *
+GetEPQSlot(void *arg)
+{
+	GetEPQSlotArg *slotArg = (GetEPQSlotArg *) arg;
+
+	return EvalPlanQualSlot(slotArg->epqstate,
+							slotArg->resultRelInfo->ri_RelationDesc,
+							slotArg->resultRelInfo->ri_RangeTableIndex);
+}
+
 /*
  * ExecDeleteAct -- subroutine for ExecDelete
  *
  * Actually delete the tuple from a plain table.
  *
+ * If the 'lockUpdated' flag is set and the target tuple is updated, then
+ * the latest version gets locked and fetched into the EPQ slot.
+ *
  * Caller is in charge of doing EvalPlanQual as necessary
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart, bool lockUpdated)
 {
 	EState	   *estate = context->estate;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
+	LazyTupleTableSlot lazyEPQSlot,
+			   *lazyEPQSlotPtr;
 
+	if (lockUpdated)
+	{
+		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		lazyEPQSlotPtr = &lazyEPQSlot;
+	}
+	else
+	{
+		lazyEPQSlotPtr = NULL;
+	}
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lazyEPQSlotPtr);
 }
 
 /*
@@ -1518,7 +1551,8 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot());
 
 		switch (result)
 		{
@@ -1571,102 +1605,46 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
+					/*
+					 * Save locked table for further processing of
+					 * RETURNING clause.
+					 */
+					if (processReturning &&
+						resultRelInfo->ri_projectReturning &&
+						!resultRelInfo->ri_FdwRoutine)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							/*
-							 * Save locked tuple for further processing of
-							 * RETURNING clause.
-							 */
-							if (processReturning &&
-								resultRelInfo->ri_projectReturning &&
-								!resultRelInfo->ri_FdwRoutine)
-							{
-								TupleTableSlot *returningSlot;
-								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
-								ExecCopySlot(returningSlot, inputslot);
-								ExecMaterializeSlot(returningSlot);
-							}
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
+						TupleTableSlot *returningSlot;
+						returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+						ExecCopySlot(returningSlot, inputslot);
+						ExecMaterializeSlot(returningSlot);
+					}
 
-						default:
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
+					{
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1992,6 +1970,9 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
  * partitioned table, this routine migrates the resulting tuple to another
  * partition.
  *
+ * If the 'lockUpdated' flag is set and the target tuple is updated, then
+ * the latest version gets locked and fetched into the EPQ slot.
+ *
  * The caller is in charge of keeping indexes current as necessary.  The
  * caller is also in charge of doing EvalPlanQual if the tuple is found to
  * be concurrently updated.  However, in case of a cross-partition update,
@@ -2000,12 +1981,15 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, bool lockUpdated, UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
+	GetEPQSlotArg slotArg = {.epqstate = context->epqstate, .resultRelInfo = resultRelInfo};
+	LazyTupleTableSlot lazyEPQSlot,
+			   *lazyEPQSlotPtr;
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2129,13 +2113,23 @@ lreplace:
 	 * for referential integrity updates in transaction-snapshot mode
 	 * transactions.
 	 */
+	if (lockUpdated)
+	{
+		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		lazyEPQSlotPtr = &lazyEPQSlot;
+	}
+	else
+	{
+		lazyEPQSlotPtr = NULL;
+	}
 	result = table_tuple_update(resultRelationDesc, tupleid, slot,
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lazyEPQSlotPtr);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2286,7 +2280,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2349,7 +2343,8 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, !IsolationUsesXactSnapshot(),
+							   &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2408,81 +2403,39 @@ redo_act:
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
+					/* Make sure ri_oldTupleSlot is initialized. */
+					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+						ExecInitUpdateProjection(context->mtstate,
+												resultRelInfo);
 
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/*
-							 * Save the locked tuple for further calculation of
-							 * the new tuple.
-							 */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							ExecCopySlot(oldSlot, inputslot);
-							ExecMaterializeSlot(oldSlot);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					/*
+					 * Save the locked tuple for further calculation of
+					 * the new tuple.
+					 */
+					oldSlot = resultRelInfo->ri_oldTupleSlot;
+					ExecCopySlot(oldSlot, inputslot);
+					ExecMaterializeSlot(oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2726,7 +2679,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2932,7 +2885,7 @@ lmerge_matched:
 					break;
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, &updateCxt);
+									   newslot, false, false, &updateCxt);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2950,7 +2903,8 @@ lmerge_matched:
 					result = TM_Ok;
 					break;
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid,
+									   false, false);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3897,7 +3851,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 8d74d1b7e30..c18372c7032 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -191,6 +191,32 @@ typedef struct HeapPageFreeze
 
 } HeapPageFreeze;
 
+/*
+ * The data structure allowing to pass to heapam_tuple_lock_context() and
+ * heap_lock_tuple() previous efforts on finding the target tuple.
+ */
+typedef struct
+{
+	/*
+	 * If valid buffer is given then it must be an exclusively locked buffer
+	 * containing the target tuple.
+	 */
+	Buffer		buffer;
+
+	/*
+	 * If valid buffer is given then it must be visibility map buffer
+	 * corresponding to the page containing the target tuple.
+	 */
+	Buffer		vmbuffer;
+
+	/*
+	 * A flag inficating that we've previously obtained a tuple lock in
+	 * the target mode.
+	 */
+	bool		have_tuple_lock;
+} HeapLockContext;
+
+
 /* ----------------
  *		function prototypes for heap access method
  *
@@ -243,17 +269,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 Snapshot snapshot,
+							 LazyTupleTableSlot *lockedSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
 							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, LockTupleMode *lockmode);
+							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
+							 Snapshot snapshot,
+							 LazyTupleTableSlot *lockedSlot);
 extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
 								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
 								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+								 HeapLockContext *context,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
@@ -328,4 +359,12 @@ extern bool ResolveCminCmaxDuringDecoding(struct HTAB *tuplecid_data,
 extern void HeapCheckForSerializableConflictOut(bool visible, Relation relation, HeapTuple tuple,
 												Buffer buffer, Snapshot snapshot);
 
+extern TM_Result heapam_tuple_lock_context(Relation relation, ItemPointer tid,
+										   Snapshot snapshot,
+										   TupleTableSlot *slot,
+										   CommandId cid, LockTupleMode mode,
+										   LockWaitPolicy wait_policy,
+										   uint8 flags, TM_FailureData *tmfd,
+										   HeapLockContext *context);
+
 #endif							/* HEAPAM_H */
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 652e96f1b0b..6f1eed71307 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -514,7 +514,8 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 LazyTupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -526,7 +527,8 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 bool *update_indexes);
+								 bool *update_indexes,
+								 LazyTupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1441,7 +1443,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple.
+ * Delete a tuple (or lock last tuple version if lockedSlot is given).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1457,6 +1459,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - lazy slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1469,15 +1473,17 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   LazyTupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlot);
 }
 
 /*
- * Update a tuple.
+ * Update a tuple (or lock last tuple version if lockedSlot is given).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1495,7 +1501,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - lazy slot to save the locked tuple if should lock the last row
+ *		version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1514,12 +1522,13 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   bool *update_indexes)
+				   bool *update_indexes, LazyTupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlot);
 }
 
 /*
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index 882be39f029..61b7b16ef75 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -300,6 +300,44 @@ typedef struct MinimalTupleTableSlot
 #define TupIsNull(slot) \
 	((slot) == NULL || TTS_EMPTY(slot))
 
+/*----------
+ * LazyTupleTableSlot -- a lazy version of TupleTableSlot.
+ *
+ * Sometimes caller might need to pass to the function a slot, which most
+ * likely will reain undemanded.
+ * Preallocating such slot would be a waste of resources in the  majority of cases.
+ * Lazy slot is aimed to resolve this problem.  It is basically a
+ * promise to allocate the slot once it's needed.  Once callee needs the slot,
+ * it could get it using LAZY_TTS_EVAL(lazySlot) macro.
+ */
+typedef struct
+{
+	TupleTableSlot *slot;		/* cached slot or NULL if not yet allocated */
+	TupleTableSlot *(*getSlot) (void *arg); /* callback for slot allocation */
+	void	   *getSlotArg;		/* argument for the callback above */
+} LazyTupleTableSlot;
+
+/*
+ * A constructor for the lazy slot.
+ */
+#define MAKE_LAZY_TTS(lazySlot, callback, arg) \
+	do { \
+		(lazySlot)->slot = NULL; \
+		(lazySlot)->getSlot = callback; \
+		(lazySlot)->getSlotArg = arg; \
+	} while (false)
+
+/*
+ * Macro for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
+ * Cached version is used if present.  Use the callback otherwise.
+ */
+#define LAZY_TTS_EVAL(lazySlot) \
+	((lazySlot) ? \
+		((lazySlot)->slot ? \
+			(lazySlot)->slot : \
+			((lazySlot)->slot = (lazySlot)->getSlot((lazySlot)->getSlotArg))) : \
+		NULL)
+
 /* in executor/execTuples.c */
 extern TupleTableSlot *MakeTupleTableSlot(TupleDesc tupleDesc,
 										  const TupleTableSlotOps *tts_ops);
-- 
2.37.1 (Apple Git-137.1)

#40Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#39)
4 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi!

On Sun, Mar 12, 2023 at 7:05 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

The revised patch set is attached. Some comments are improved. Also,
we implicitly skip the new facility for the MERGE case. As I get Dean
Rasheed is going to revise the locking for MERGE soon [1].

Pavel, could you please re-run your test case on the revised patch?

I found the experiments made by Pavel [1] hard to reproduce due to the
high variation of the TPS. Instead, I constructed a different
benchmark, which includes multiple updates (40 rows) in one query, and
run it on c5d.18xlarge. That produces stable performance results as
well as measurable performance benefits of the patch.

I found that patchsets v11 and v14 not showing any performance
improvements over v10. v10 is also much less invasive for
heap-related code. This is why I made v15 using the v10 approach and
porting LazyTupleTableSlot and improved comments there. I think this
should address some of Andres's complaints regarding introducing too
much infrastructure [2].

The average results for high concurrency case (errors are given for a
95% confidence level) are given below. We can see that v15 gives a
measurable performance improvement.

master = 40084 +- 447 tps
patchset v10 = 41761 +- 1117 tps
patchset v11 = 41473 +- 773 tps
patchset v14 = 40966 +- 1008 tps
patchset v15 = 42855 +- 977 tps

The average results for low concurrency case (errors are given for a
95% confidence level) are given below. It verifies that the patch
introduces no overhead in the low concurrency case.

master = 50626 +- 784 tps
patchset v15 = 51297 +- 876 tps

See attachments for raw experiment data and scripts.

So, as we can see patch gives a small performance improvement for the
heap in edge high concurrency case. But also it improves table AM API
for future use cases [3][4].

I'm going to push patchset v15 if no objections.

Links
1. /messages/by-id/CALT9ZEHKdCF_jCoK2ErUuUtCuYPf82+Zr1XE5URzneSFxz3zqA@mail.gmail.com
2. /messages/by-id/20230308012157.wo73y22ll2cojpvk@awork3.anarazel.de
3. /messages/by-id/CAPpHfdu1dqqcTz9V9iG-ZRewYAFL2VhizwfiN5SW=Z+1rj99-g@mail.gmail.com
4. /messages/by-id/167846860062.628976.2440696515718158538.pgcf@coridan.postgresql.org

------
Regards,
Alexander Korotkov

Attachments:

0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v15.patchapplication/octet-stream; name=0001-Evade-extra-table_tuple_fetch_row_version-in-Exe-v15.patchDownload
From a8b4e8a7b27815e013ea07b8cc9ac68541a9ac07 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Tue, 21 Mar 2023 00:34:15 +0300
Subject: [PATCH 1/2] Evade extra table_tuple_fetch_row_version() in
 ExecUpdate()/ExecDelete()

When we lock tuple using table_tuple_lock() then we at the same time fetch
the locked tuple to the slot.  In this case we can skip extra
table_tuple_fetch_row_version() thank to we've already fetched the 'old' tuple
and nobody can change it concurrently since it's locked.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
---
 src/backend/executor/nodeModifyTable.c | 48 +++++++++++++++++++-------
 1 file changed, 35 insertions(+), 13 deletions(-)

diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 3a673895082..93ebfdbb0d8 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1559,6 +1559,22 @@ ldelete:
 					{
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
+
+							/*
+							 * Save locked tuple for further processing of
+							 * RETURNING clause.
+							 */
+							if (processReturning &&
+								resultRelInfo->ri_projectReturning &&
+								!resultRelInfo->ri_FdwRoutine)
+							{
+								TupleTableSlot *returningSlot;
+
+								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+								ExecCopySlot(returningSlot, inputslot);
+								ExecMaterializeSlot(returningSlot);
+							}
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -1673,12 +1689,17 @@ ldelete:
 		}
 		else
 		{
+			/*
+			 * Tuple can be already fetched to the returning slot in case
+			 * we've previously locked it.  Fetch the tuple only if the slot
+			 * is empty.
+			 */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else
+			else if (TupIsNull(slot))
 			{
 				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
 												   SnapshotAny, slot))
@@ -2393,6 +2414,19 @@ redo_act:
 						case TM_Ok:
 							Assert(context->tmfd.traversed);
 
+							/* Make sure ri_oldTupleSlot is initialized. */
+							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+								ExecInitUpdateProjection(context->mtstate,
+														 resultRelInfo);
+
+							/*
+							 * Save the locked tuple for further calculation
+							 * of the new tuple.
+							 */
+							oldSlot = resultRelInfo->ri_oldTupleSlot;
+							ExecCopySlot(oldSlot, inputslot);
+							ExecMaterializeSlot(oldSlot);
+
 							epqslot = EvalPlanQual(context->epqstate,
 												   resultRelationDesc,
 												   resultRelInfo->ri_RangeTableIndex,
@@ -2401,18 +2435,6 @@ redo_act:
 								/* Tuple not passing quals anymore, exiting... */
 								return NULL;
 
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
 							slot = ExecGetUpdateNewTuple(resultRelInfo,
 														 epqslot, oldSlot);
 							goto redo_act;
-- 
2.37.1 (Apple Git-137.1)

0002-Allow-locking-updated-tuples-in-tuple_update-and-v15.patchapplication/octet-stream; name=0002-Allow-locking-updated-tuples-in-tuple_update-and-v15.patchDownload
From 5c101503b636a868f51c81d10ecfc0adcfdb07c2 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Tue, 21 Mar 2023 00:38:18 +0300
Subject: [PATCH 2/2] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access method saves some
efforts by checking the chain of updated tuples once instead of twice.  Future
undo-based table access methods, which will start from the latest row version.
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
---
 src/backend/access/heap/heapam_handler.c | 109 ++++++++-
 src/backend/access/table/tableam.c       |   6 +-
 src/backend/executor/nodeModifyTable.c   | 288 ++++++++++-------------
 src/include/access/tableam.h             |  28 ++-
 src/include/executor/tuptable.h          |  38 +++
 src/tools/pgindent/typedefs.list         |   2 +
 6 files changed, 285 insertions(+), 186 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 1ce7c6b9713..9e690074e94 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,6 +45,12 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
+static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+											Snapshot snapshot, TupleTableSlot *slot,
+											CommandId cid, LockTupleMode mode,
+											LockWaitPolicy wait_policy, uint8 flags,
+											TM_FailureData *tmfd, bool updated);
+
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -299,14 +305,46 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					LazyTupleTableSlot *lockedSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait,
+						 tmfd, changingPart);
+
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
+	 * lock held retry of delete should succeed even if there are more
+	 * concurrent update attempts.
+	 */
+	if (result == TM_Updated && lockedSlot)
+	{
+		TupleTableSlot *evalSlot;
+
+		Assert(wait);
+
+		evalSlot = LAZY_TTS_EVAL(lockedSlot);
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											evalSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
+	return result;
 }
 
 
@@ -314,7 +352,8 @@ static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes)
+					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
+					LazyTupleTableSlot *lockedSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -352,6 +391,32 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
+	 * lock held retry of update should succeed even if there are more
+	 * concurrent update attempts.
+	 */
+	if (result == TM_Updated && lockedSlot)
+	{
+		TupleTableSlot *evalSlot;
+
+		Assert(wait);
+
+		evalSlot = LAZY_TTS_EVAL(lockedSlot);
+		result = heapam_tuple_lock_internal(relation, otid, snapshot,
+											evalSlot, cid, *lockmode,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);
+
+		if (result == TM_Ok)
+		{
+			tmfd->traversed = true;
+			return TM_Updated;
+		}
+	}
+
 	return result;
 }
 
@@ -360,10 +425,26 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
+{
+	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid,
+									  mode, wait_policy, flags, tmfd, false);
+}
+
+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` argument to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+						   Snapshot snapshot, TupleTableSlot *slot,
+						   CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
+	Buffer		buffer = InvalidBuffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
 
@@ -374,16 +455,26 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 
 tuple_lock_retry:
 	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
-		ReleaseBuffer(buffer);
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index a5e6c92f35e..2a1a6ced3c7 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -306,7 +306,8 @@ simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								&tmfd, false /* changingPart */ ,
+								NULL);
 
 	switch (result)
 	{
@@ -355,7 +356,8 @@ simple_table_tuple_update(Relation rel, ItemPointer otid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
 								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								&tmfd, &lockmode, update_indexes,
+								NULL);
 
 	switch (result)
 	{
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 93ebfdbb0d8..e3503756818 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1324,26 +1324,62 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	return true;
 }
 
+/*
+ * The implementation for LazyTupleTableSlot wrapper for EPQ slot to be passed
+ * to table_tuple_update()/table_tuple_delete().
+ */
+typedef struct
+{
+	EPQState   *epqstate;
+	ResultRelInfo *resultRelInfo;
+} GetEPQSlotArg;
+
+static TupleTableSlot *
+GetEPQSlot(void *arg)
+{
+	GetEPQSlotArg *slotArg = (GetEPQSlotArg *) arg;
+
+	return EvalPlanQualSlot(slotArg->epqstate,
+							slotArg->resultRelInfo->ri_RelationDesc,
+							slotArg->resultRelInfo->ri_RangeTableIndex);
+}
+
 /*
  * ExecDeleteAct -- subroutine for ExecDelete
  *
  * Actually delete the tuple from a plain table.
  *
+ * If the 'lockUpdated' flag is set and the target tuple is updated, then
+ * the latest version gets locked and fetched into the EPQ slot.
+ *
  * Caller is in charge of doing EvalPlanQual as necessary
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart, bool lockUpdated)
 {
 	EState	   *estate = context->estate;
+	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
+	LazyTupleTableSlot lazyEPQSlot,
+			   *lazyEPQSlotPtr;
 
+	if (lockUpdated)
+	{
+		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		lazyEPQSlotPtr = &lazyEPQSlot;
+	}
+	else
+	{
+		lazyEPQSlotPtr = NULL;
+	}
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
 							  true /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  lazyEPQSlotPtr);
 }
 
 /*
@@ -1488,7 +1524,8 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   !IsolationUsesXactSnapshot());
 
 		switch (result)
 		{
@@ -1541,103 +1578,49 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecDeleteAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					EvalPlanQualBegin(context->epqstate);
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
+					/*
+					 * Save locked table for further processing for RETURNING
+					 * clause.
+					 */
+					if (processReturning &&
+						resultRelInfo->ri_projectReturning &&
+						!resultRelInfo->ri_FdwRoutine)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
+						TupleTableSlot *returningSlot;
 
-							/*
-							 * Save locked tuple for further processing of
-							 * RETURNING clause.
-							 */
-							if (processReturning &&
-								resultRelInfo->ri_projectReturning &&
-								!resultRelInfo->ri_FdwRoutine)
-							{
-								TupleTableSlot *returningSlot;
-
-								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
-								ExecCopySlot(returningSlot, inputslot);
-								ExecMaterializeSlot(returningSlot);
-							}
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
+						returningSlot = ExecGetReturningSlot(estate,
+															 resultRelInfo);
+						ExecCopySlot(returningSlot, inputslot);
+						ExecMaterializeSlot(returningSlot);
+					}
 
-						default:
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
+					{
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1982,12 +1965,15 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, bool lockUpdated, UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
+	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
+	LazyTupleTableSlot lazyEPQSlot,
+			   *lazyEPQSlotPtr;
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2113,13 +2099,23 @@ lreplace:
 	 * for referential integrity updates in transaction-snapshot mode
 	 * transactions.
 	 */
+	if (lockUpdated)
+	{
+		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		lazyEPQSlotPtr = &lazyEPQSlot;
+	}
+	else
+	{
+		lazyEPQSlotPtr = NULL;
+	}
 	result = table_tuple_update(resultRelationDesc, tupleid, slot,
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
 								true /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								lazyEPQSlotPtr);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2273,7 +2269,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2335,7 +2331,8 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, !IsolationUsesXactSnapshot(),
+							   &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2394,81 +2391,39 @@ redo_act:
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * ExecUpdateAct() has already locked the old tuple for
+					 * us. Now we need to copy it to the right slot.
 					 */
 					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
 												 resultRelInfo->ri_RangeTableIndex);
 
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/*
-							 * Save the locked tuple for further calculation
-							 * of the new tuple.
-							 */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							ExecCopySlot(oldSlot, inputslot);
-							ExecMaterializeSlot(oldSlot);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
+					/* Make sure ri_oldTupleSlot is initialized. */
+					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+						ExecInitUpdateProjection(context->mtstate,
+												 resultRelInfo);
 
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					/*
+					 * Save the locked tuple for further calculation of the
+					 * new tuple.
+					 */
+					oldSlot = resultRelInfo->ri_oldTupleSlot;
+					ExecCopySlot(oldSlot, inputslot);
+					ExecMaterializeSlot(oldSlot);
+					Assert(context->tmfd.traversed);
+
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   inputslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot, oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2710,7 +2665,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2913,7 +2868,7 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, &updateCxt);
+									   newslot, false, false, &updateCxt);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
@@ -2931,7 +2886,8 @@ lmerge_matched:
 						return true;	/* "do nothing" */
 					break;		/* concurrent update/delete */
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid,
+									   false, false);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
@@ -3837,7 +3793,7 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 50ae053f461..7159365e652 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -530,7 +530,8 @@ typedef struct TableAmRoutine
 								 Snapshot crosscheck,
 								 bool wait,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 LazyTupleTableSlot *lockedSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -542,7 +543,8 @@ typedef struct TableAmRoutine
 								 bool wait,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 TU_UpdateIndexes *update_indexes);
+								 TU_UpdateIndexes *update_indexes,
+								 LazyTupleTableSlot *lockedSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1457,7 +1459,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple.
+ * Delete a tuple (or lock last tuple version if lockedSlot is given).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1473,6 +1475,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	lockedSlot - lazy slot to save the locked tuple if should lock the last
+ *		row version during the concurrent update. NULL if not needed.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1485,15 +1489,17 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   TM_FailureData *tmfd, bool changingPart,
+				   LazyTupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 wait, tmfd, changingPart,
+										 lockedSlot);
 }
 
 /*
- * Update a tuple.
+ * Update a tuple (or lock last tuple version if lockedSlot is given).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1511,7 +1517,9 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ * 	lockedSlot - lazy slot to save the locked tuple if should lock the last
+ *		row version during the concurrent update. NULL if not needed.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1530,12 +1538,14 @@ static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
 				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   TU_UpdateIndexes *update_indexes)
+				   TU_UpdateIndexes *update_indexes,
+				   LazyTupleTableSlot *lockedSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
 										 wait, tmfd,
-										 lockmode, update_indexes);
+										 lockmode, update_indexes,
+										 lockedSlot);
 }
 
 /*
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index 882be39f029..c61734a15d4 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -300,6 +300,44 @@ typedef struct MinimalTupleTableSlot
 #define TupIsNull(slot) \
 	((slot) == NULL || TTS_EMPTY(slot))
 
+/*----------
+ * LazyTupleTableSlot -- a lazy version of TupleTableSlot.
+ *
+ * Sometimes caller might need to pass to the function a slot, which most
+ * likely will reain undemanded.  Preallocating such slot would be a waste of
+ * resources in the  majority of cases.  Lazy slot is aimed to resolve this
+ * problem.  It is basically a promise to allocate the slot once it's needed.
+ * Once callee needs the slot, it could get it using LAZY_TTS_EVAL(lazySlot)
+ * macro.
+ */
+typedef struct
+{
+	TupleTableSlot *slot;		/* cached slot or NULL if not yet allocated */
+	TupleTableSlot *(*getSlot) (void *arg); /* callback for slot allocation */
+	void	   *getSlotArg;		/* argument for the callback above */
+} LazyTupleTableSlot;
+
+/*
+ * A constructor for the lazy slot.
+ */
+#define MAKE_LAZY_TTS(lazySlot, callback, arg) \
+	do { \
+		(lazySlot)->slot = NULL; \
+		(lazySlot)->getSlot = callback; \
+		(lazySlot)->getSlotArg = arg; \
+	} while (false)
+
+/*
+ * Macro for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
+ * Cached version is used if present.  Use the callback otherwise.
+ */
+#define LAZY_TTS_EVAL(lazySlot) \
+	((lazySlot) ? \
+		((lazySlot)->slot ? \
+			(lazySlot)->slot : \
+			((lazySlot)->slot = (lazySlot)->getSlot((lazySlot)->getSlotArg))) : \
+		NULL)
+
 /* in executor/execTuples.c */
 extern TupleTableSlot *MakeTupleTableSlot(TupleDesc tupleDesc,
 										  const TupleTableSlotOps *tts_ops);
diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list
index 097f42e1b34..0b7bc457671 100644
--- a/src/tools/pgindent/typedefs.list
+++ b/src/tools/pgindent/typedefs.list
@@ -955,6 +955,7 @@ GenerationPointer
 GenericCosts
 GenericXLogState
 GeqoPrivateData
+GetEPQSlotArg
 GetForeignJoinPaths_function
 GetForeignModifyBatchSize_function
 GetForeignPaths_function
@@ -1399,6 +1400,7 @@ LagTracker
 LargeObjectDesc
 LastAttnumInfo
 Latch
+LazyTupleTableSlot
 LerpFunc
 LexDescr
 LexemeEntry
-- 
2.37.1 (Apple Git-137.1)

low_concurrency.tar.gzapplication/x-gzip; name=low_concurrency.tar.gzDownload
���d��[oI�&���������@0I�]�]@�=]�i`�d�Sn�I��2�L��O_w�
������bs����Si����r{��OW�����~��������O��CJ�����k�����O�b������]���K�36#?���~������v��o��w�V�y>������V������q��p9����;���1��w�b���ip~&�����}/��w�������������?t/]�����}u����f���es��xwyy��=o��~�����������oo7���]���w��v���l���������m�y8\���67�o��7�w����>�<<��mv��L��o\�e�������������n��_?/u���}�vw}y�q�~�}xx����{�/]�9��;|��0����.���C�p��_r��i��K�w��������
1�i�tew9LC��8��+�����?�+��^!ewr������p9U+8<E9���
�i����WH�
��8�\!W�b����)�pr��y�R��=�X�aJ���/+�y��-Rr�=L��
�������=��
�?.���J�!)��,�s��%�X/1�~
��K��L�S�D<}�.��]�$�*��K���Y��x��.w��y�D�3�nu��4i�#m��_�� �^"�%����I�Vj�]�3OI����|�E|��5�.�G��������3�^�3�N_�?R��O�Qs���G��`$���s��E/B�G.�Qi��if�G��(�En�_����������sN������=.�~��(�B�1
-"_�Pg�e�u�y$��	u\����
u���N���B��Yt�U���-������9-�B���]��3�������"�����e/uF���A����:� �B��4��B��N_,�9�6�.A�3�s���"���lu�A����l�:��"��H��$�5�O^�P���:�=u��RX��|��P������S����"/R��I�Ny����
ufi��]�%
u���8H� QB6['�t�:S.<���wq��P�h��i� ���$M�� ;�%;O/�{�#a� �95����.
u:E��SO�V�����Q�����:�f�N�iy�u��u]	����3���./�.|�8M��P�,:�Y/v��q2�B�*p�����*�i����:��� �s�����j����+��K����P�g7��8�LJ��!��#u���g(��|��L�j(>��!K�=��A��2�W�<�6gb<R�8b	9��c����B�6���ucZ�1��Tv��]��I��P���X��c��`��P�8�%�������";'%��AN����.��]��k��Q��b���N�:Gu"�H�����S4lp��@���Ch;H���t]'-b�L��*�+9H���LW�f$=�����J�������<rZ���������H��wx���-��cd}�4��(TF����5
�z�L$ql�/�}v�-qz�H�$�M�������n#A(z �`�~��X��Q������]�L�~��7?GRW� ���N��������AIR��������o�>�� :�
����IJ���D\A�F{l�[��
��}8�/�t�h���W���P�
�4����1��!��n�'wZ0�1Y��� �����i~[#�F���<U��1B��#Yr����q�uO#�;-t�T@U�-�QJ{ER1����zp&�J�J�O�����������o�u�p�'
�!��~@)X�+Q\��N�t:�l�*,�.��#�S�u���]
�4�Q�!mB�UG�BK����J�m�te���[����"O�h����PG�'�"�S�i��[�,������t��,��Qf�y ��@�Z�N W���7Q.�s0EE���A�u��D���+W�-��c������T���Q�mA�*$e2�G��Q���`&8�h�X�U:U>Pc���AA�mh��i���g�i�t�S����}��(h�����bn��'�"sT��R���J��8��T�Z�����K��� dW ��t�{�� O�!O������4F����N��tC[��
:U�A��
w�Q"�M	��4��u��: O��	]�\/���!i����r}]�x��Z�4)Y(�F���blb
�,�~�Iv}L��?��>�M������8�[@�����+�8���k���*Y���>U���>e�(�tR��R�U`���Z��0���P��|Kh�����68�M O��.�����t�IiR�y
XT���L����k��?��m��c���d����)�Q&�����G���N�o}z?1%��}���~�$+��?Uz�
��Ge�w��R�tTv�k�����()��}��l)��$�P_VA)�OJ#
5j�MyW��Y���^�K��ecIDy���_ y���}��wawZ�4),����Z�����(�tv�������������?����5Z16b�x����=$��-x��1���i��=�(�=�S�{H;���y�r�?����;��\��l��o[�t��L5)�-^��J*n��G��G���K��B����-i�]���*"�4F�����A�,l%~:*<�Q~<j�q����K�����N��T~�z���~����Sr��f��.I
�<�)k�q�
*�������V�����M
���(�4+�Q���w�+4����GY�>���c%O��Yv�J���/�N��]��S����c�^��E�:��G�|)3f��R�SC��}�trJG�������d�>Y9s�����}����P��iv!�c(��+x��4���>ywr���}��&]�&����~����g!<x����>�v�����l�o�JV���K���O�����*L��<"�����K�����)�C��Gy�������,����q~��+1Bc�G�����>
�j\]����J�
2�����[���G����o�>�v�g�G��V^����UE�-�u����m[<������to 2��A����b?B���
2����Q�_���(g�
t
��*�������z[��C�r{���,*��R���.*+%i��-�QN���o	�-�gq���;Y�
�v<*(����<�Y�j�.<j<3��5��^i�:-x��
��w<*�^ m�z������(����]�v7�G��������Q
[k���(����	�G��c�z?����.��}�<�M���U��-%�*.e�}�����������Q�����\�j��1��,�%r,�+�����~D&��r�n`=4��5m�o�Uu'Fn1�T�A��J#�A�����$g)x��Ti<J��m~C�UI���@��������K�?
�o��>�Q��
�5*y��?<���M'� oxT�����(��t5�N=���S�T�-
5��3`
� �����<
U��!��5(�T��	��}*��������(����
��M������E��{"g)x�4�����$'/ �tT�Y@�Z������U��h�(�^'�\������a�!B�_���]�> �T��������Q��E�w<*)�_�)���QQ���^g�_�Q2F��Q��x�S��+Zo]���������K������d6]���������r��rH�G������Po:Y5�>
���:�EjVC��I>�o�������F�����
���-t:(9�VC��
�o�3P���`�)�Qn���G��k��D����l=K�O��C���l�Nu}v[�G�:�����Q����r��G
�'l��Q�?k�\ �T�����x�7qur�����%|S��C}�n�����|����1����z����({e<xTP-��m��P��� �[T��eB�����x�Y��������l�S&����m���G�V<���������-���G�*?Y�����G5�n�;��>����J�����1��Tl���p�������0��Q���Y�������CB�o#�QN�i[�B<J��j�<�

oh�KE��������tI�x�Nu?)?�Y�<�\|G�x�`�Y��Et�e��<J��rl(����%��xTV��qf�H�+����P,���/�(3o��r"�G)��-�1<j�9y2��)�Q��-�<B}T�V^��P��Z�3�__T��6�3"e�&�0e�l�������B��R��Z�tDB��Q�I���#�Q���'6L<*(��
��P�uT��<�[�AL�C}�~��D1Ttj�K�5 .��<ey[��7){��/\U^��i���_���>�~_�&4�Ru}�����Qj�d##���\82=	��A�E�;K��&����{�_�d�����Sk��
"�Q���E����m>a�U��z^��0j2�-�[��g��&y1U�S�����GY�	�
�GE+`k$|[c����r������h�R�����9���U��)�Q�\�x���n0;(Wy}F]4��rUw����w�������x���_�<<�W�����_����5Y���M	,t�G#���0"�l�|d���Efe��'�~��(��H�Xe���3B}��=d������V�2w<B}��b9m��#�Q������Q��&���QA�a��q�N%}����l����^��(;��Q��4����,����X���oJb����AAi&}Y�X����5e��r���*ekdz��Q���`�R��3�����O��d�
������I��<J��F�����&}��T�O�\Z"O�>J��F����}�N���Qf�dr�����i[�S���`�@�KX��a����Wy�g��%��&&�0	�(Sj�I}��9l�2����N�Z'����[��L�G�V;�Q^����1�$��(]$�12��(g���8L<J��h�IL�G�������x�e��e<J�Bj���GY}%	���__����<<j&�u���>��Q�k�4a�>�F�
�<������Ts��YG�m�__�tC[��T��3j����)��LPe�?;�,?���R��k��%��7�`�<<�YoKr�R�G���H^N<j��'�2��(e����KP���Wb�P����BG���d�>���^H��b�������Q��9c�xTo�.u�>�2G	�%A}T���L���9���>�Q��[�l:��7ZX��8?���&��Q���	���R�G[
oJ�}zV���&3���}�-��d!��2�����~D�����������������T��Q'N����T���1r��o��	���{!���N0?J��l�E���V�s�K��#�=y��T��k@���@dP����3��>��7������d�Nf>!�GY�Mdf<jPk��{$���x�����
�k������wfK��(�����%���M3#?��-���M��9��Gf��Ge3h��N8?J�Sik��<j2k���@}�9���I����Z�f��}���Y����b(m���Q����b}P�UMQf��>���cgyj�Ah�(+O���H0?J�3h�������f����/uV
M���I�m�	��T��-.��(s�7;K�S=w���5M��q�Y&�Sc^#��a��=l�7�������M���������������|�����js{�{?����~��s??n�������>��7�y���������]��lw�ycc{���n����n�����]����>,k_?�7�~�t�����>t����������_�������m6+�	~���������rf�����������O����~�~��p$��?=_��cQ
7�������������ws����5�0,�3?�����.x7��_o���W/�������o�z���M�����/.}�/���?�U��F�L-��������O�{����Z�h���8x�����t/��w�������f?o��n~�������[Y��a����o�������?t/]��q{��b������l��.//���M���>���?���7]���~����������W��u����nw����<.�K\o3���^������_s�p���r��]/�;����_6�O�n>��h������v�W���R� ��������d���a�'����1�e6�X��b?�9�S��	����cp�r6�a�pYV��
i	�TzeH���e$����:��%�uF�H���e�I���G���{�+���Z�Do�ut��?���S>}Y!���9�+6����D���r�E�d��;������H��/0��Di����,w�KH�+�H�H�����(��K���B�3/8y�����~!�1TK�d|�p\b\.�`�47������`�B���/2
[���>Rg��{rc��D�J���V�b�l�8�P�(�������G����%s|$0�/���]x�c��w�����"�:''�qV��:���b	!r����9�NYFi&�9�,�$��%X3���.N.1�d�#u>Y� -9���F�+xz�B�i�t!���aq�����N�I�p�E�&)�$��ZF��$��U����_'��I}�N�/[����9*������%&� ��{�EjEy����i%��J�K�E�sc��e������jv^�u\B�S���uy�.�������9dS��dP'��-��Kf��E@X���:��*���
�����w��3��'���_xd�wA������#�m	�Ne���T�S&�h�b���� -b��uj��S�.r��S�K��8���P�l�=��/�C����VN.�3JWY��i���:����$wQ4�L��K��HZ� tQ���uO ��K�$�l(�����J2���!r����������������t%Q��l����xEQ^����M���N�v�U�
Ev�	e�G� �q2�B�~����������oF�X4{��.�{w�:G�/����N2���E����NY��j������GH����,�6�u<R�������H��I���%��G�\���E�������H��ru���%
uN�"dJp��H���Q�I��AD�q�A
u�$	\6�%I�Ed F��Hj��\"�"I$~1��U��.�OG�T
��u�)�S�1h?}��/��$�+
gk�r�;Su�$t�u�:u������}�y�Zv��3����xz_hT�����������8M��,��t��k����)�8�i2u=�������p����"54����>���+��B�<�j@�=���m�����A%����U����Q����"v�+���6���������b9���4F�� 
rJ����<M�����uB����1dM=y��!�(����@���4�g�;@�f�v9a�s���:����~���sA����$����m	�$I�)P6lJR.}[��,)K��������p�+�����A��z?�i,���Q�~Y�x.�<U�R�[��P�4(�X��T �e���c6`JY�E��%|[@��.-m�.UZ���}0;��Jj&��s�>\)�
�+X
��Y�T���~s]�29�����6K�E�O����v.eo�u�F��N��J���xi���#����W��Bc0�Ez��0��&�s��Hq�����8��d-Y��^@�Ac�R��O�����3���V8��	��j
�c4����.$w���j���G��n�3��`MC�;�g�x��t���m�2���n
�vP� �q�����hM�����,��!
O�eJ"���8y%����(j� O^�6��
�G)��m���i
�@j�\�����U��!�p�1t��G���fyMW��(��(m��Eu�Q�m[�R�}��&g)���r���Z/�����c��]��?_�D�{ek�#=9P�Cao;&���4�w�H�������hq��_@��.���-���By�b���z�A��>���jTq��� ���8e[:E$����9Y�(�cg,Jfb��%�>���y������������R#�A��t*��F`��q�6_�%�t*YH����H�����<U���AlE��A���Q�N!�o�����J?��,�G���6�����7�v�B�����Ia�X����5����S�F�G��Z�W����Vi���<*�����Y��3�Q�t��)�{q����"qm��N��m�����������<�S���;%�3�Gy���5XE��5�qd&O��*��~�x�/x���H
:m;x_����v��Gye[�� ���%y��o�P�4�"/u����q~�
��G4�i����w!��y�]�?��-����Q�i�:
	�v]�0]	NA�J;��X�����u���6��Gi}�����G�
���pd���z��U�e���]
���uyJ2�=�Q�`���<jRY��]���>]���<j���m1G�����)y��&��(m:�.�NUD#�S�<�Vu��}��P�}��H?������/u]~��>x��U��������Q1z"��RU:JG�H�R:���O#�a�t�>*��	�}<j������<6_�(��^�?�<J����;K@��.��\/x�����`~T��R��A�}��>Ui��N�}:,_���\���>v��/-�������%�k��G�r�h���*:]����}K~�z�x��s�Az����-D�����`v2�Q�[��9���$����������<*�\�:��:�Qf���Q���o��<*y�T&��X��������p��x��[��<�G�_Xl��,k$Z�B������r����V���U{��X�}��L@�J�K:ek�A.F�����w`v�t��\[����(��`���Q�q
Zgt
x����e!���GY����Cu'2�=�I[>���(��&xv<�[wJ|�x����y���}���y�G)_�-fz�K���g9�+C_���s7H�4@}�d��x�W~��[r�����?������&�z<���I<9�
7]�oY�*W����~�����UD��x���������I��ze;�a���T���Sr�Ge�l����E}�ln�z�#���R���,�_j<��S����MWu��P5*���f5�*���a4z_��t
�Q�Y�N�x��3�d2�GM���1G %g�����F��F�/De�1 ��x���E�}B������7����&��cB�b���>�J���S�.P�Z�*[����>��X��1�����X�Q���$>D�C���������d�3�1����+�b�!B\J�t�>ew:�����?���E��X�N��d�����x�`�@d~j<*��m�0!E�AF>?���S+7��B���fk�*_j}$���JW6�/�G���V�x���L<�,���-�Q��G1�����]�w<*+_L����(t
��� ��Tcn%��}�tR�pmXR��e�9��MU~��cd����_��d�Q<��b��m0�Q��Y�BcC�����bg���(v�S��H����Q�L�a�����e�l�C�7��0����xT����>���2G��o���d���6��d]�z[r�u}�z�5���\�fh�����[��F�������&@����^����3�~�LA}��XAc?�x��{���Q.F��xTo�}������
%i���T���f�N���#��P�T}C[�g��<����GY��d�D���^�*��m<���`=��*�V^N�~}��U�k���o�}�FB~9+.B�>g���4B}��H��X��3�[����1X��Xe��C<J�2Q2���������m�2�q���>J�~5��Q����u}�����itU���SbwZ�i2�0�0b�>���-���l�����QC���39xT�}�q�x��r%��B��A������ _����:��#�Q������zS��>��'����?L��(US���'�~}����L(y*c��N�>*�uk�_BU�g��Y .e�k3L<�J��gK�*���%yl��M*F�V��>*�|������Q�_�D���d�Xc�/B}T����l<J����Ah��I����'[����K+k������Q&�Z<�Y���������A�G��+�;�X�������Gy��e�����]��S�g���'2��e�"�N����$y�l�B�Q���:�����)��>.�[���7Z6�	c������s�G���b}���5�K��2bJl�������G�5�D����:}0���
J���F�����d�z_���}�}�<�b($�9b}���F}x�3s��U���C���P�S�V��:�Q:_�
[���/�<6%��}:���R����V����u�{�����
��*.e���@<��='��Qv����QQ��7��X����`�s�G�!�my�q���F�;�����?<j���F(�U�����>�������zl�z��������'d~�G���\��<A���O�f
����"�,qZ��o��J*>&����������~(��`Cu��=F�r2���5����J�Gy5�I��N���{�1#���J}?]��l�����'���I}�/�.?H�1�_��G��-~!�G����U;��?�G�n���$�L0?*Y�[}��(�'�����j�M[�G��Q*��(��QY
Sm�q�Q��}��Q�1w���K�G�5#��LP����>	�(5���NN�����"Yk��������|E������Q^����@LP��-6s}�o�K�+��lL8�Q*�_�1v�O�}��@	��Q�.�|�x��	��c���<��&�xT�z"��<�Y������������8r�~<j��(�{$����W���j4��uv���r��b���A��k�QP��k7��	�GE�N�}@��,��Z����Dc��s����=��|��x�/d|x�3{��������<�x�9�����x!;�G�^��r=U}&YH��GY=�I�!��(5����SE���fg����i���Ju}�Y9�	�(��&5x	����Rm�)Wu'��U��OU����C��Q�%�H�G��(g�`�Y ���Mr��Gy�n��K�G�}%	���.��}��S�`�X��MW}16�0�������GEY���>��0?J�@l��Xe�4@���
d��z~��[����*���G A�>=��1>6��#W����XX��J��5S8A}T�f�2=���1k������}�<Vq~#���cm~T��Q������L�#uf^N<J�mv��2pu*O���9w��^HS�G�����T�S#?�������8W4M+�icnO<J�Wo������2Ch��%k�)]����in���>�7�!�������ps���>n�t�?��m_?�}�_����o/�6�7����\��o:w���v��������~�q����=������w����vw�76���������o�6���=�u����������~���M���P�@��C7}���~����|���=)C�i��y:g��o����������b�����S��e����v?���O�W��Q/�r��9�ln����n�|y7w��^��?�������8����_o���W/�������o�z���M�����/.}�.���?�U��Fr���u�����?��������1��l"����wyH�E��N����p����<������7��w+�|>L����|>�;������31no_],�qX���������������������������������}��?�����������~�����������q���a��7��������kn�V�6���v������f�����W���������j�~^jd�~�_��]_�L~��aX���/�C��/=�4�,�c����h�V�Y��/Z��R['�,�2�j���Q���j������[����KIV���������gY�j����G�/+,�,*M�r_��������N��9�)=O���/{X"H��U<���/@|�K�h}>7
_p�y	�[)���.�?/���x6*;�HA�B,N��~^"fyb	����|��C�.Hl�?�B�YW�plL�q�I-!�%���8�|����j�K����_�������D���N:�����W�`<
u�X�P�?Rg�y&��G��:�8$�"D����q�:��:e!y��uN�:u�>��S�7T/�Y[�"/�$-�f��DE��]���P��+N����[��3��k�Z^����uG,������AX�����y�k�H�K��:iy�f���%�Xw�B�Q4��K�f-�:�����z��B�.��`���\����}Y�7�$��B�~4���Y��.����r��+x�,Q�S&q%/�2�����Ndg,�9��:�,
���G�,��x~�l&9������GH\��NY>��K�)��S���)�9H��l�@���A,�Z4{����i(Q�)�E�q��G%�Y�P���a�\4�ik���\�3�:���>H�<��Ev����>tA_>Rg��f��)["�3�����&K��g�C$��8}v��(��QgmI��2hv��9��C��h��#J`(�=�.����G��Q��R	�%@v:�\#��!"���� wvg�l&�8MC��)K	����P���5�hv9��D���98�EN�b,�]�F��9���u�j�����K6u�,w!���3�f����Xd��+Y�s���:G��]�]��'IZ�:O�X4{VRK,A����i���$kf�LR�I�{����:���IB ��:s�aB'�O��t��,��g��$/�#uf�XP���Tv��]��8rG��A�_��ZS��1K\8��B���N?�i����=J���A�������m�/�9�`��
L�����`V���/�3������w}�
�QB����"As0��Mu}��3��h$�*��F�]��2������t�:��4������}��G�i�%�+�Q�3Z5�+�Q�
��/�+�Q�35��}:����<W��'C��#W�������)��e�KX�A�J]����o�� B��(��X�x��HKZ���.�N�������wBJ���~����y�V��
����>}��������-����HI��h5]������e!��H��
75�?��\��L�����Y��S}k�;���ZC�9Bc��
�K�`��I������AY�mQjW�e�� ��a�����0"���lf;Li)=Zw�����H^ 2P���[a�^`�l�)�k�z��-�>
�Fe��5��
���a�r�d39����a����eh�fpi���h�cbP��k~xIeg����5�'[����lKFc�0y��^��1�z��;M+�C�"SF�`������X�=��fR6���D~�������yr�i�NfJ����2��l�0��
��eUm[�/`S�
�h=W1��NUL����>Vi=3��MI�4��v.������`����>��9-�GZ�S�p��Se6�@t����QQO�(
����I���w)�S�s��K���N9(=����W� I�>��/���5���e����CE��quf��=�����������)�
?��`�q:����q� <���0���Y�>U��<�������H�'tZ0��}d��l�GYw�����e[�����D�d��F�m���JZ&�6�H�s�>�o:�<5��e9��?��T}LU�����4*J����U�J�������h�%g��w9}�x��#������z�$�����.���x��F�@��(x�`��$����J�W�����}J�G�$�6\�5*�����G%�Y����A\�������G���1����N���kT�'��@Dg��G-�C7�s�W����z�'����^��?�S�Gy����o���*��2�[r_�������Ge/u���H���,<��W��G�����W�t�>� O
{��0z�kRyA2����T��mqm�7U�"�Ad
����������G��Ji�����l+d�;�%�����<�QV�?�����J�l��P��U���<J���gawZRM�
�Vo��r*_J������=��(��}�<*+H�n�\�(;g��X���3d!�[��Z�Q�����GM
o��}�>�JO�qDe� v O��/�)9K�����uDb>A��e;0�#��Wq)�.�<���	}������G�y�z�N�/�V*�B�(_�(�U���4"�����B4�x�w�g<**?���,x�b�k����2���<j�c�_�r��$��;M����	v(U�P�Az�{��F�����\�������U��k!���3���}`
��d�c���z���@�������������t�l\������r�����G�\k��}����^b�
U��(yakT�P�����X������=���*.c�xT��
X|��QY��m������~%��G9%?��NhJ�t�\cLi��S#���i��$1�V������9xTR���+�Y��N
����:�7�S��z+�:�Q3�����49L� e��3{����d���G��,�����y�9�G):m�����Z��	���Se[��K<�+�.�u�&�(3�Al�x�h�J�F�S�d����;��*>R�:��G��JR��}�Uw�6�2@}�S����w�:���Q*�N����>Uy�m��xT�����>�6�u�<�7��y�/���<��Jp����a��U��z�����Q�����c��P5�Xp[�3�0����J��x!�	C����rL������,�=��>��R���c��_�>��!!��P��,�T(#9$!��7�Y�<(��
)��5�Ne�Cc�g(xTV�������=�T�����_)��j��Qf��9�q~+��i��f1%�C���5��s)[m������C}�Wx��)�}�}���m�|���A�m�B�(�'M[�/�K[��-�����	�Q�}���B�pS#����G���R�����(��1��A����Rmy[���6�s���6��	�5Y:����R9��)t�����(��T�$����)�Q
�>��
��*��V��>J��5���:W�*�t��29W���6�AP�<6z�@�V�(�O��f<��G��IuA������I�N���MI=P<*[��L�5YX�
�GY
�YI�����������3[���d.���	�������.?U�~c<��Q
�^dP�cm�E�<��h}���i'�QIuXm�[�c[m�	��,��v���������TI[�Q�o������X�����,�/|E�x���l�}B�>mk���	Xe��a~�T�A3�������4�/�G����t:U}���e��00�F�_�OYw{��,�A�#���!y��u�*�B�E����G�<X���==�Q*,���4����M������}F�[���Z��x�U'N���~�}�ek��Ge���<;<��]��x������P�-��G �*���@���$uT�>����5.���o�s���H��g�sL~e�����
|������}���;%t
xT�r�%���%��[yD�F���?�����G����
;�P5Y����G)���^,B�����1�C<��%�M�W����'�xT����X_������r�b��S�N����'��\w�IZ���I
�h�U��G�V����G����W�����2��=3��T��g�8�X�����U�����S��t/y���)Y���Fe������Q�j�N�0��T���>�(�7��7v��(�b�m�o1~E�)�u����)�_Xe�Q�o�>*H�1�S@�3���#�Y��������.�N��*N'�Bv�*~zV���������QJ������Ge��`�K��(o��D�h�I�����x��j�m\���^����C�rc��9f�Rc�����g2����>���_�Y��"�Q��S�F
��v���B����N��@��8[.~�~}JG�����L�~(���������q<*(,Z����2��X�����Er�"�Q��f<*�G5���(g��3��~}��u[�K��D�s�xe<*�}�5�Y O��y��A�G9�Q�)[������Z�8�o��2�n?���J����>�}F�������;�)��uk�N�>J��m�	�����Y �o�}f[N?U�c��a:�6]k��(3N�F�"e�*!s`������@��OHF�5�9�mq�������ydkT���`�R��5�.��a��&�N��K<jP1i��}�<����Q�L�K��oP�pmsW�GeEcmu8�U���|�tC�~}I�`�l��Q�5G����G
g��KP5���6�2e�Rl$6�Q��w �i�~}VO{b�%���Ml�������3��Q����e�|�z����>��Sbg����sEy�(3���J��7�Z��������c��H�G���J5�����6��.���l
�s&c���Q�Q�����cB<��1Cb(	��Y�����(�K���q~�����L$����]L��*O��,��j�q&6<*��
m=��G�9xm���QY�ad�#�cXea'L~��$����	��I�P��C}T6b�T&��
�>RU�o�0��`~�`����Q��1;���%?�B}�S�V����$�/�x���G����1�����$W!A�>/�mIZO�N�2�[���������|:����/K��1~�`~�W��m�����w*��#;���������<`U[M|�<�}���	q~���6|?A}T�1��l�<i�V���8?J�po������z~�<*H�B�y����>���~}j���9��C��g�r�}x��`g����k�}LHc��%���Qj�y[�h�|~#&Md�QQ�
�N�Y`��a�R�<��KKm����7����Q������#�}������9��
PT\J���)�G���I�C�~}�����|���^�����)�����KP5Z��X���d�5gqK����La��P5u84�x����1���Q'�������f���:��������7���w���ow�����������������3W�����]������������~����v�wo����]wu{�����=����~��~����o7w�w���f���}���,�y��g�p����n������4�����������)�~���������rf�����������O����~�~��pt����|u?<1��/7�������������ws����):}���	�?����?N!v/�9|�<t��_]�����_����q�_6���������}������W}��1v��!��_{����w�b^�h��i�r
]��������~��������[y���i��o��w�V��|��;~��||�v~��K�gb����X�����/����������y�m���O������M�����9����;~z;������w���������o7�������9o��7�w����>�<<��mv�����q�������O�.��a{{����~���,�>���~���������CWH��tU�*w9�
�g}�2���C�������dUSNu�H`�+LO�'����Y�Y39�2�s[U�=�z����&{2�������Tm�����|:�q����l�T��F������	c�������~�p9��8��nTvu�}9�,�/f���2��p��w��d�@2�5�P
X�.���
���yA��c���K����`����^FJ�]��G~�N����8M�G�}�N������!�Q���]d���������<�RV��^57V�J�����D"��cYB�V[�A��(Qu6E���j�+�`a�#]�#E�����Q�:u�]L�f�N-��M�)��:��7�X���.EZ�I����{���E������$F�`v�S�x�j���N"/
���:�u�hD��@ ����d�\�H��S������#�N���xTZ�r�N�]�0�d�B���D8�=�B�	+6ce}��$r �`V
u����:��T	M��@�����&U�:���%);R�2�'��0�f��PN��EvzVV��������<�?�#	�S��:)�_D�2]%i1���LD�Gb��82X����+���E�N&��dKL�Ed^�z��"'uJ�D��D�N/���?r�E
�~B���<��S���A�K����� ]e������8U2�i�Yu�@W��N�N��G��:�,�����R��f_����������tA�������j��A
���LkV<r�Q���)\�E�.
uj�N^'���|]��S`t����%NsjA��$Qu�b�������fC�U�c�GN/1u��]e�����������N_g�_7�Hbe���3��S|�T�4yRjW���P:�h�:��Hf?��;w����%H��@��d�($u� ��sAU���4��K��ee���E��]����������r2�]�%���0!�<(���JI6#K$<�!~OK��;�.E,�J9
b>OI��.H�M����$8�E�;�ru��I���~sQ$���E������UX��e�@	����
��&��zP���DQ9[hT��*~e���rdH�4�����#g!��+��nPjM��}:M��O���)J^�A���-�XN���\�����i�K���W�Q��G\y����Q�v��F��AT�+�N��#5cB���R��'�;���r����]>bT� -�2�'��Ar��IQ&9�y�"#���L�@��gk���H*�M���wErQ���,�NFR�R�(�'�<D����� {�i�0J��(H��*��tC��\�}o�#��$Y��/r��&���@|h���8):��B�Or�����S�t�K�{[������Lx �({���`J��Xi��qM�7��R����a�����Sv�B�*�F���]X����b�� KK��y��@K��m��X�G��>�S�
��G3E�\��\ti��}x�d]�����H Oe����	}�����P�K_��}����m����PJ�%���o.��u�ctZP���]�=����q�,���ioa��ms�|K����d����E��z%��}d�O��h�+l��������R�&�UdL�#T�&dmL����e���}*� �}��tT�_Y'7���Fy@����w�)+�C���i����#���o������|;B�;)�V�
�]w���XA�N�}�z���`��tje���0�~1� �?��B_�>9U;%����v�>
�_��ub�����L�!��l~�_}�d���x! PN�l����
�
��6.;K������5 5O���5������X�j�d2�]�����D��yyDG����x!BQ���S��O����]��J�3lBc�r:��QW����c�N'��U^C[v�<J��7��=�Q��m�a��(3-��d_��Eg�
���(���s��QNgI� ���G%��I���L�=��������P_��"i�d{����0V�q�S�df�5)x�r5��$'���>���R��Gy/�$I���:�Qf��-������1���B�%N��tj�
���<���I��5(<�-�����mVJM�z[�{��<**;���|�����D�z����h��<T5�>|������Zr��0��Q��~����PT���u"��r��o�<�6MrB��x��=��S�M�J�2��-�QWo�u��G)�,���B���
�"� ~��5��D!������<��<�F[
��h��[���N
���K��������/x��a��Jx����F���Q'��D2���c?��2��y(u����>2�c��O����O��[z���u�/�����>�Z�T[��<j	Q��
�����n�>�>�>�pS&?
�u�����>@�[������E��c��T�/mX�<J��5�)>i�R�:�AjK�,�Q�+pSRZ��W���*xT�-;�V�'���16�Z�����=���Al���j��V��3�KY�A��<T@�V
[c�
������G�����~��{��a��8o�-���G%+?��L��+jH�
��r&���r*?Y��A�GiZo���J
�n+	��G��L��`�*��-��C9���-)���G�X�|[��O����=�Q:��-��<j	����6��R�S[�u������XD���=����(/g(~!|�x��.�N��]�����K@��n��}�?��������[���Gi,��,�2�}���Ge�g�V���>J��d�u��<i�����(�Kk�S�QF�)i�xTR~v����To��6�(5��QG���|��w��d��
H�������}z�oC]��7$�.�G�n������Q:����QV�mQ�R��o���Qj���M t
xTPym�����O(���t@�b����G=��������}��5���{:�%�[��!��7 #z.@��A�Rr
��P�[���|UozV�w��(3^H����>U�a�����x��#���o�uv�M�&l�G
�-E��(�a��(������Q���Z��z�ZFtJh��`�9@}��B ���@���d��NV �>{���sZ�%�}�te�o�>����3�
�7x�������n�H�>��[2~��(�.�m	�b�=+w��)��U�D����������T<H�Ax���������S6���%|x������R�7�W�FD~1�;K��A��J[��i�G9WD���N�:qb����7���f�+�*����v��N�>jP���>a��R�=H���Q����'@}TR>r[�g�n|�/f���x�S����!Wy��1%��@}���$������%�d5e�I�;<jRyJ�f���>5s�	�cW>��;�S�^��[����{�GA}��puO&t
xTo���w��N��S��7��R��w9�Qn�\l��������If����1�w��r��<��(�g��#��V- �u��4}��8��B�f�����
r��z[v��o�a��w��>F~!�1��t/$�#<x��9�*O���!���@}Tou�dx�T��9�N��S�{�y��\�0A�_�Kc����,l[#<�Ofo���t��=W�Lfk@�������2zU�}@���C�����G��������v�.$~C<*[1R��_�W�e[�w<�W��m�v<JcZR�Z<���&�x�h�Q$�q����Q��L���?]���L��>j�N&�G��(3w�����QV������}#O��-�GekD�G_�����F_�������GMJ7���D��J*���)B��I�I���������=��U_��|�xT��l 
�G9+>F��#�Qf��GE��F��?�m��Zf����%�v�~}:�Vc��
�m��E������/������}���Q������Q������2����Gyk	��X���Db���d�������2���E<j�b(L��*��-fwZ��0���z����?��,(��mXc�����xTo�)�����l�s��S�>��/��7kE���[v�S���5���@�+�P��<j��������Q�F���[D<���H�1�Y��d
����a<x�h�(&�r���}�����g����](i��:�Q��K�x���HN^<�[}&H|,��:����XO�:�N+U,���D,xT/g�+�������$�3�_�%O������T�E�<��s��>FL�U���lF�5�9s%b�>���f	�Q����Pe���X��0z�~<jRg�}H�
x��z��;E<J�'��YD��R1�F}#����Bx��`�p'�q�����D�k���qe�0t
����M���U�G[�G<jR�I[��8Uu'F�$�����/���&��#���G){��]@�Z}��B�k�.y��W���`�ya��E�+HP��tD7$��2�m����Wu|ga�	�(3���x�WXA�����=T�r�Qf����������tT<J�Y��\%W�������__o�� ��Q�Lnz�G��X�Y�>=�V#�*Oz�NI,'����,<*��.��S6���^��d�P<*(��-���>j2����G�V<�?�Gz��:��2����u�K�V-1{���/L������9V	��`�g����S�#N��QY�|����G9�{4������D���.����������_��C��)�Q���h���:��,5Z���N���1k��i����� �xT6���Q��X�;Jz�%����-LG��������8��g�<���	^��_��G��}����"y9	�(��6�1���	?M�G9�'$��L��K�U:e���8�aK��<�Y:��S���Uo�������Dh��`�I�x��l���Gy����K�������_p~��{��n��y(�>E<�����J�u8�N�2��0[
��la�����X�3H��K�6{��>j]�2�p�W��Q~`�>�>%�2�Z���/V�(�{�5�C�'}V}<j�f_����y��,@�&f�����}i	����j��X�}�����Q��Jt�Q���B�>�Q���j�S���9��N�f&���|S��D�"e�����8��]���'��������	�(�����T�O�zBB�P�T~a[Mb<�Wvr[�V<J��n�+�������*�U��m�[��Q*��G�	�}�.d���M�����2k4+;�7������~�>}���^����~|��;<�v�?�^<\mnov����:���t������Sww=������f?��{�{��w��������0ol��o�������m~��{���_�7��e����f���.���p����n������4��������{���>3���9�}3��|�}��W�%mwW���/������������|u?<9�����n7����~��>_�����K�������~j�=��\�^�zs�p�x�����xA?����4���~�l�����������__�����o��l�7~��1v�������?���'x��������b���&��o��s�������[y���i��o��w�V�y:Jw��7�	}w���.S�y���,�}��.�W��������������n�?���f�����������O?����������������|�x���?ov3�������_����������O�������V��?����Y!�o�������:�������������@?����������C�����/�x�[������w����>�>�>�>�>�>�>�{������_w�>�>�>�~��=������������?���_���z���O_���}����������|��=������,����|���7���C�������������>�>�a>����?.���/��������������_��_����!��0�����������`��?�=����������������_��������q��x9����;V�?��!���_\��-����7����������^�|��e{��b����������������{�t��~�����?���7]���~����{�����7����w���������o7���������M�����~������������z�]����/���_7�^]������v�����y�����������K��z��y
UWR�<f��K?�)�O+�����>L8W�]�lN��
��������[���W}Ya�����=D���9S/N���C��Z��������D�5���%K�
Av'�2���[��T���V��%C�������:�t������~�I��+����u�}S����M���\��������#��P���
jKlk�|��w��AW�8M�|7Y��Z1+�����Dy��.�BZ2�]�),:���)����k�����^������X}?��UN�p�T�L�u�)_�sTl&���W?R�4��W1&` �(��{��N��2�uN� @\�H��|��${m��$u�����ETi����K��Tu����&g#�
�����f?�?�c3Z����LQ'Z�LUW�]���� �hN�
�+�&�Nuhz�c���t�R�:v
yd�E�4����
D.�]�"AZ�u�N5�A-��F�Zv�z�u}/��,�h����U�I��wt�5�K�"����U�&vA;{6S����^��U]�|�/�r	��������*]�J�:�,�R�i��
uF��X��Ei��[�H�E���4��*�.��P�j�.��������%X}\F�X����
�NU���16��T���TV�TxD��K	~�Er��I]�9��������SKQ}�T�X�4W��:�|*���I+��T�$)rN��RQ����m^
�{����BT�������n)����m��{5�mC��(�+��]Ev�9��QO���"9�X��b�i����S���.����JyA^$�B4vA^�P��6x�uV^��.�*&��/B�(%��S\^���*��.~OSg)��us)/�A��������N3;�����z[90L���A��X���b����*��}V}��6#�
�F�V���H�����L+��0XtP��AN��qvj	y��9����Y��mI>U�����d��Q�@�u�6Q&�N��W��$1����>��=j�������D���jLG4;����d���~a�h�\���&W�7���
Bx��<Q=�P��wu0O�W3l����QH4�%m����������t����uuBEW�7����,g������J������o�}���A>0W��UNz����y�K��K��w0Ot6��y�A6��*8��U\���;�U�-y���yA�<svp����f-���y����$W��iP}q�}�;���)��@��m�eo�������_�s���z�<�}:��]�����zv]#��<Qk~7���<����'�����P�|Kx��Q�����1�S5k�
�p%M
�i��M�>�~!�!�<U=���}9@�gi���N���8��l�&� d�foK}�
���wJ�G��� t��B�W�7/�����TR'J&��TI{.���MW�7�Q�)d����T��n]B��>�<��4�2����{3��� ��ty�co���m!k'��u�#s\���+��l)��e��w!3�Lz���[r�0MmS���Q��Wv����m�����Y�@�:����4���l�NU�F�m�&\c�>��]�7/}`��l2���,����5Ee�J�����$ ��f�+���K��"3Y����1_=��Ff�f���f>��mp8�*EM}LH��B����Y�{�2�������f�9�'��+���O��-u6K���b*v������Ky�o�Dd��q
C�~�����{K@
W�7/1�u��gg������OQ��m�O�F�K)�����)�Ym��S������h[���g�`���?J�K�?To�>19�3�Ry"|;������jR>a�|f0�F�$��}��%����k�R��:$jT~e�}@\J�Yk���*�����L�"r�(SG���Iz�m�bJ�G���z[���w ���G�$~)�X�G~Y��I�<*Y3X>�QA�i�z���8����`�C�}���m�S�C��_'z��T�F�}��OUW�B������b���P�4*='���,�1G���G�j�@N����$��[����G}���r����
��j��O
{��S,h��`�D��*��5z(i���?<�Q�hO�e$Y��(e�I�c���K�x���Hc��#�x���W$&����i�
���*K�<� MJ����Y�x��]�fKy������|B*���c����\BX��|��<x���o��0��6�`g?J��%V@���`�/$����T����#�}�NIL��U��-F��2sY���a�h�|�ZeV0��0-�.���i0b�yd����?%��x�J.�16��W�v�<sx���J"�H�Rqm&�x�h�>���������S5�n�`�j�F���� 4�D�>��#z�'j��%X��y�N�/r�/���y���`k�<Q%��Y�}�!�����f�y���e���U�u�<Z��"�����>W���g���{��jFk�}�����<�Q���f��Q����o�>�����]�?U��-��U�j��a8~y�p9����z��I3��D{���8.k��Q����������<�5�B=#�It6�Q������X�I�����U�|[�su9��cDx������v�
75l:v�K)��1�x��bJ���(KG1YEQY��my��A�i#��L����(�z�H<��B(��*G�u
����+=�Q�aD�}��Q�>���h�-Y�������?G�)�GyUB�����
��tJz�5���BbK��,���\���������(�>X���+��T���FEcm�o����m[�B<J�;H{��z����w
t���������QN������*�t�N	��>�W�ic[&Wu�2l��MU���>�
�~��>���������+�M	\�������x�������K�tP���$o�Q��?�k@���m���Q��N�,<j�lm�.�r����?%�Q���4(�����Q�.l���Q�������l:i[�� �f���-C������.�J�����o(x��R��#5��QKy���P�Un��1�/��U#�ag)t:*��-o<���%�^�Xh�������v2�Aq
7m����F�`�x��t�|v�0�zdsP���[�9������H��Q��S���\����Q��gao;���?�\<J�{�a��(�f��K�Z���
�G���m�P�Q�����,�G�����>���t%��B��R��&|�Q��O�}�v�@��7m�Ih�7�:��"�(��A��l�����N�Y _��]!w
x��ek$�c�=��(t�����R�G�95t�}�.��
x�d�����V[)�+��,�����G9���-?@}TPu|2W����>*Zx%m����
�4�Q��c$���-��V�	����b��}@�������Q���g�-����G�:d���K[�r0�.�O�
�7���N����z\���(5*A�-���F.-��
�G�g�$��T�J�����F��7���
75�"�2�+	���)�,����LGM_!O{v���������,�b8��������7|�h�(�� ��#�Q�Es��o�������x���n�a�=���0����zS�dR��xT����>F��2����?�Q.}V��Fjk/{���������QN�(�)�4�E��gv�%k��~�N�K<��r��G��������NU9���r���R�6_�(��b��������"�Q�,m=""�Q��?Z��P�,�B�����C�b���2��.B�>���
��RxT�-����{u�������Q��b���^�sm���(�kO���N�}U=��N�<jy#_��[��t/5)���B}�����]��G-���'w
�Q�Iy[��Q���)�=�\��(�������UI#�e�����Q�I����tl\�:�[���"�N��G�=UH���x��%_=b�>"|x��z12]��Q�.l��b�����w)u'f�����G�s���<*(��-��2F������Q'���:�2�;P{,n���m1���>F�[���<�����x���q�x�h�������z�F���5_���D��R�_R���~}���cr�(�W8{[����Rl�3�Q�Lf:;Wu�F�������_b��O
���~��k��Q�QF�)Y�(�����D��Ru|�q����3x��<����e�)���r�"�Q���a:���<��y���Q���s�]������Q��8��|�aQj�R[|=���Q�K[?�X��)+�t���Q�4[����<j�?�z�F�7d!��F�O-��8��G9]#!�S�F�����e�"�
c�7|u"?��e�N�O8Uz]7�1N��+{�Q�O���/d��Q�Wx[?��x��3h����G�9#r
�+�>jR�E[�R�7U:�1xTR9�R�����GE�"�aM}����{�������'������](y����I;+����R~�����PMP�s��0���������Q���|�x�h��"5	�(+o��
	�(=����H��?5p�������#������a�QIa|m����>h�bgyj���}@��Q��I�f<Jcm������|:�o�GY�-���G�q���m��(�'5=K����q�Y��W6][O���F��i�C�T�i��L��O�Y���'��g���>����2�4�Lc,���>j8+H8?J���b(	�������wG
�}�z�S6���t�����)T}{�8[��+i�J��@�^�'O���Q�����\I�o�~}��>��F|��/)V}&�� ��x������w�FD5����>��Mb}	�(��������t�e[�"�T?�F�.U~�1o���GY9��7MP�s��L���Rl���K��7����Wq�F�xT0k��>F�9ch5���2y����#Wq~��	�5���j�R�Guk�>��
�n�	�QN����M��QV�f��(��S���G�Ou�0Q�����+���<*Y�Ob[i�T�X[�x��~��������	.��__V9Wm��	���<�<��T�O�\I������c�%�QF�&�c�������t�x�n<�����c�>j���r{R���t���i������S�W����S6[�{�~}*G������`��goz���fxC�~}&}:�����[cX�Q����"zn���g��J�GY}i������F{�(g���#��O��v6e�1z�3�l����Qf�R����f���:��������7���w���ow�����������������3W�����]������������~����v�wo����]wu{�����=����~��~����o7w�w���f���}���,�y��~>.P6���_7�����5����s�������9�}3����}��W�%mwW���/�������HB�z��>�a\��n7����~��>_������]����=��~�;���s��������CG~��������������eS�o����K�������}�g��c�|r����O�{��Oy����Y��7�.�^�����~��������[y���i��o��w�V��|��;~��||�v~��K�gb����X�����/����������y�m���O������M�����9����;~z;������w���������o7�������9o��7�w����>�<<��mv�����q�������O�.��a{{����~���,�>���~�������C^BT�_����Q/�Y_�0�����������$Y������(��d���.�e��>6��=�	���l\X�����t=*���2�;�^L�PL2"�UEE�v���s�.z�?k�4���Udl���'U������v�t��Su��b|�+����:�eEv��m�q6y4CW�U%�}���ZiRk��^�Yx�tt7~=�~�$p�o�[���Q���Z������D��h
TG1x���Q��`8B���a�n-�f2Nb���*���s����P}.
]���W:��$��g�_k!���\�������!�%�h��.�#��8�9A�n�bp�|>�����������v���Y��=[�Ks��R��KU����v	5����hC��j|G�����v	��;	�R�9��}O��/T�������d)jg��_�R��%T���"� �1r����1K�����bs	%rb�N�\��E��3w�s���3�L5�)�����(;�p{��#��KU-�������U'��Hp�0�z#����YK��(K�4��j����^B�T�s�	T�RGY[DI-+rT��y�h�r� ���<v|�I�&��6�EK������w�h�";]sM�*���I�NM��Ev�t��E0���Tge��	W�=nDA[���P�A������gFJ�<3��\d'����Dh��;7u�$#��%�q���JR,�Iu�$;/���]��m% h1������K@v�N��L������(��3��8�d@OM�l(�9�L����b(�9�K����R�%��.F���;'�fm�}(���\�4;�fV!�%@v��R����`w�����72��iQ�FA����b������"bAE����]\f��hv��9�F@��X)����c���V�J`���E���Nu���������8t�bE���]�X�"�;�W$<�3z������p�/����^��� �;���n�xE�n�����Td�H�@lz�����$w���Rk��R�MZ��~g����������;9�h��������"2�����)�m�
�� g�N�8�7"���p'%tZ��}.�m^�SE�{f�J����7�@='�?/S��
���t��Z���!������/�D�����;�(���D��]C��0�lk�Hl�px�%��G48I�'z��ci*�}�������?�Yz�S�����7�g2c�>D�N�>�:Azs��=HR��,j�O���a��;
�?[����`���[_�����f8BE4�����gfy�W��&N���$~�f�A�K�QAm���B
����w����!�����?�)�������Ej���G���u��O�G��>�\/@��nN�G�X�����7s}��z�kK���)bI6�h*�m���\#?D��4i�9��������I+���n�~)x��z�c��c��/�
�;�N��o��DF�5O��>���6�0�
=9Abq/UZ{�l��Q���iG`xc��JTO�|��](�����U/�1��{[���f��-Q�C�����'���1�����Q"t�#������d��S�������������:�o)��>�mSvr��V����>�>u����~����e�S'#s�2���cm�}��x��qiri�|����^�n���oh�����#�e�~E����q��0�0a6��b�Z_��0�M��*�(�~ �`��g>
4/��!dP��BG<f��R0��	o�
��/����M�����N_��\C�m����&=�]8B���mh{/<-rl�r�'e�"�~��z��E��>��e�[q�	���Ja�V�Q�>
T���5���9K=�O3�({/��*�����B@����HC��o���9d�*zT�y��������,VG�����=�6�P2�����]��|u@����8L�����mN��S������(����F[!����(|�����Q�G%��w+��;H������/���U���L/�m@<���=D����}JXe���*~�	b��s������Y��G%J��k\~s�����!\L��}���7�����k,)<j��A(n)�#�"���[Q]xT�$JKU���O;�;����aPg��)�6�M��2��Y�:�S�Pk���&J��X��A�G��
z/��f���k�0�*���o�Y����=�e���iv����d>�O��FBs�p�<jt��I�y
�Gu��X�C�q����Q�����<�z-������O�'q/��Cq��>��rY��xT${��!hZ��@������7%/�@�:�Q�i��*#>%^��B�^������h
E����������d{N6����'�L�/��|�R�K���{�����{/OI�K�R��i������d���.=�^K��l�!�����S/�M�s!A����������"e�0�n3�O��Q�n�����C�m��R�� ����Km�E�
�(����
�����*������>= s��a�[���������G��`c�2<*P����R��0�5�A�Z�e���{"���oU���G�kH�xT�:K���N,G��|J�������Oi>w�<������1(����k���JN�B���G���r����(,E��W�5�>%zX�"���Q�qd�W
9��PN���c�
����o��=�I~��L��)�e�!���H�my}a���[���Y���������<�
�6�3<*���V;h���N���i����^�N��	��P���}��A���F�m��
s�NS�XEX�=�x����������f�M�.�iZ�)�Am�|<��=M�:*P��F^<jr�����Z��y�^Ds��k�i<���6zD��F�sm�b�(7�S�m���S'����)���m<jt�N��T�^���R�����)���qK���F��X�P����S�N��dE���Jj���Yo�<%��Xt�����m�S������U[%�����}sj���������n��G�|��:�xTtj4U<9��i[^p<��6�[F����R��)f`�S�K-!�m���}F������G��h�wc�Q���@�J���D��f�>U�\��w|1���ZCe�������)6��_���v�G���4�{����QL��<�!~J��l�O�z��V�}��8a<��h�)�V��S���Q�4R>��aK<*���VKU��6,�P~l�'�|��Q3a8m�����'>��C�G�|~�cm1���O�W�k�x��i�M#�Q�9;�M���H�t��O�s�������t�}����O�rk��x�[7�d!�Gq��F�����/*w4�v��ZzG��J�<�-��xT7���1��M/����@o��v����:�6�����sb�n�>j����-#�Q4��������^����\�R��]��w��Q^n��1�#�"m��"�G%�]4��X�Cqx]5/.�i"��T�u�$��n<6Vq~���\<��o�?xT$�n�Su����I�*���g�0�X�Q�
#x������T������{Lu�����P�����~p�}�zD���F���N;N�����Cqb�jU]���D����zd���S.��[q��"��h���s������}@�	��l�T�)�G�d����Dh��=D���sbJ�<*�1%ES�O��B[]R<��]����:�\k��x�	���z���)%��8w�������>��I������\&j�*���Q�� _�����O��i<��� r�RW���-!�����������JN���_O�Gq-`[��x�D�h����IG��g'�����*'�P���
"6���n�-���G�h!�����S�O��@\����a!U�t��X<j����F�P�I;6�����3�A��Q��gS�4T|��J*z@����6�2�*�t�G^h/��	���i��iZ����D��xT$��
�HP�8��k'�������/�x���%h���mz��c����6�-�)�Gy��*g"A}��;�l��G��6>���}Q�X�U4�^Ws� ����w�x�������n�Q�B}T��Xmq���f��k������
��QP����I�G�n�/E��z���G��<�������>F��`}�m1�x�KkyR����
�0�<���6L<���Sr�����������<Xu�U�����Y����m}���IFmXR*?���a�>�wh����b���;��__G����<j�<���T�(o`��k'��{m=K��I~���M�GEw����8"�z07����pv���u�������$����O��R��;�������(���N_U����<z�_���;��JzT�x��)b�����Qk���E�$�y��1X��:�M[�(|�;#BN������(��(7�Z���=�>�*�W�����j$R�������-�Q��5�|d��z�w���I3��3�T�����v�~�77Wq��<���G�9��U���O�F���(������Q����R��:>���{��GMn�_1��(?7P��<���m}j2�GMNN�z���9X�����������o�p 1���(������/��������t�Qo?�5#m>r<�{B����Gy5��^��G�oN���b���e�����Q��m�����Z�?��<�����vnqV����c��(��V�G���L�	��09T~����5������_*�(����R4�|~���z����E�-3�Q�3�\�1��<LKak���r��
#���yuI"W2C}T�|K{���Ge����C���������
n���G�O���QkTu|�����f��z��,\��3�G�������_�;�E�G���L~T���xT�<��������xL��P��b[���z ���O�����So��?�(���MA�;=!���������2�(�Qm����Q�D�V[�X<*�����oh���>*;��A�Gq|������uC���cS�(q���+���<ag ���QnmS|Z��uv�6f�l�������\������Yi�(W��5J�s���w��G���]xT��[e�<j�
�|*��\����t�����Q����\<�'Yh�"�X��:��b���{)x���\����W8a|jPo����v<jt�6������z)\=5ys����Q����G5y9�J���jv��>������d����P�x/�G����>5��u����<V�(?f�����O���>*x��F�nq~�;C�0�G�\��~���Ql����|��a�8?���Q���}��&�(�eb��:��",�m6G<j�8L��+?�����Rd�n������������~w����v�������O�>���~��<�����z{s�a��������������yw��n��O����qY������q��~w}{s�?-�:�����a���������{���w�7��u�wO�������[���>��?��������^�px����b�w#���sV��v9���Qv��^_-D:�_��;����$;��t?}}��wn�oN7���������x7w�/����6L�Z�`��j��Ef����������������/�����_��~:�M�x��������b^-���{��)��?����]����[�4�c���$�1�]��]��u��o==���e+�w�5���[~����u������O���������������Vz��g���������7�?�vw8�w��?��o?������//j��������9\<<�u������8��<���K�;����v������q�������+����V�]>�i�����������?�t��=�i�,�������������8�������z2XV��������c
�
I�2x^a��?��h�b/g:<��E����w�
I���4�l�\2���~���$�5���e]�MK���5}0ZZX-�y�d1�P����?������,ZALw�fH�E��M�u�� ��3�����������32�e���q����`Q�PwF1�4�]X���PC������KN�=C�av\�]B���_n�VB�S�.��9PQ��T9T�p�hc��/D��~�4��j!.�M�g�}9�
�4������a{jRy��;�/���B�F����q�
���Us��9��-�������yfrg�i"��e�AvZ@�.!X+w�X3���cq��qpnd.g,�I�t������qg��(N�gs#�O[�=v�Z��RY�f��]��S2x~k��m} ���!�o�B��3�&~f�I�����
��%T�F��ds(� "��p'��Ke)\�=v��
�p'5������w���$�T����lx�XK���	/y����DN�������8s�4�33F����;]�+��9�
\G����mE�Zh���Q�'�;���E�WE�k��.��T�������7ryp�-�"	~yC���F��.D'���NJ�#�w���;���X���@vzK�t(���KMm�N��}f���8��B�p�lSXH�\~�C���f4���pg��2I��wfO��,�,4HK\��X�s���K�,~���4p�.!@�4����9�h����������;�HL������������iq����nK\I]~�S�;���1jY��3���{�
�.@�3~f�@K\��g�<L�����D����@&�YB8�S���t�����y�f2�iq������Ie�g�|�T�G�.D��\�3��e�ZB��q�/�/a�����M �H���M�����"�A�St���t�;�";��=H�|�s��@!�d^������f��3��	w�o����=�����<�T�/��
ND8g}W�g"l�q�?��0(�A"�s�A��phGz�Z�j������6��wE�R����w�I���}m"�wE�S=�������iC��&m�w�OC�5.���l{����O�%o�v�/�����}��R�����B��hI�[�B���6��1���hb��-z��h���Zi
���5�=
�RnY��,��EH����-�*�������BZ#f���z�C�h�q�\i"O���n���&��{)�yp�h�24�m=I��-���hZ|&���w+x,��dsSm`Ad�����L|��0�B��^��4i��l|s����$��I|��|
��h{��
#�mA�V���(	��H��&*}������������>
������z�V��+�>�>%�����S{:gQ��rFT^���h>7���{I.�>��!(�u���ti���$�\/��0��Q"Uk���9b$���f��6�1��g�������JKJ(���T�=z�������JL��R��lES�����Pg)|Js�I��}��'_�����h��5�o2_��v^(�����i���
m��`MS&�����YJ��z��5D�~������d�A)��V�a���[�R�(�>����o��,NtL���(�����5
��D����i�6�����������G.����7�l��;M��
�"v��iJ��,��{)|���M���7W���f����qF���E�9�2�S��������>T�,�OH�Q�m��M�
�w2��>��R�D�R����Eo_�)`P��E ��BM4��d�����}�����}j���W������2���r�}Sy��lq� E�v��Oiuc�bhT�b�����~��P�� O)c�-f��wk�P9�=��m�A�qC��F�7Lq�3xT��
KS���%���:[��x��n���Q=��=����F|��,T����+�.��xT�b9����p�L�}����-������a�>n���xa<�sc��(���LS�O�N�.B?"8:J�����B�I��5��-x���6����
5RO�Fl-��>�~/"��
�����x�Li��^/x�8��������*.����*1��(��
�P�r��^��'����@i�I"}+�xT��c��������C�0��2�~s��
�G����)��gK	�6��8��E��Q��yM�Pg)������rB>�l����GM��9fAS�r��pk���5���<xT"^o����GM3a867Q�	��^���K��GM�����5F\����H��`��^�O�\8����&����}	�h�=���wc9�^r�w�u!?r%O����+�����=�<��OM�mRE�#�1oPk@��[���uO^��������!�t���6�tP��q��5 C�l��.�c�p������'l�=�?M�{o������?���~[W�5��r}S���Gun.���X��NLZ��(����F��<�R�u��"�[?[�����byL�v�C�{*��|:����XN�o
�P����|�	��)w�Q�MPI��|+?j�_���2����=WDm���/�:S��-�>�<F�cDz8���G�S����R���}Gg��5�d��P�G^����]a�m_������<j�������^��i���}/��"��u/U��#O�> ����F;h��T�o��Y:��^q���R�����f���i<��\m�:������c���G
d������U}w����w;��z9���E��J�o��N�������<���R,�-F�>�kh;*<j�9��1�xT���)^�ZTA}�����(��l����^&��-����Qm�/��F��ZD����G[}C����bu��S���	K����P5S���m	�E���mD<�x��v��Zm:'�P��Q9�,�^����E[�@<j��Y�Rg<�l��}@�/m���Q����|�xT��=D�W���vvPc�������_����sT��Q���r%cp/��c���m�P6L��&�l�Q�����0����MxT��}*=xTp|�Q�O��GE��X^Wg���+E|=��n��c<��oP�4Uq)'?Y��}��m~v��(���#G���u^#�A������8LD<���V6�Q�bJV��E<���T>a>��e�g��n���h����.����s��n�U�����������E�����TO�u������>�#���E����~�M��Q��Z[[��Q��1��u+k�A�G�+���#�Q�C���V��|~�D�o��=� 0�xT�t��M�F���z_F���OVk�v���G��Y��@�>��F?����t[7�xTtqu�e���WF����|K�cS�/��4W`����\	{l���_�+��j�DmB������F^/x��]�P����~�����G�-g_� b}��s%��f}�]C��Ge�����\�S'�U���������'M}��0�xT��W
���LxTc��(����sP�>����B}��6[;A}���6���]%O�L�����<��(���d���������l���Q�/&�G<*�{��V.��(n�m�V��)��Zz\�A	��h�f��OXEuZ�,"G1a}����{I����m������r�Ul+�U���c$�A���S.m[�2A}�Du�o����E=R_���&���<�T����Q�@4�11�$T��N�N��Qn,G��&��7Q�	�#��	���A��Lx�������o�m�����RSz?��Gn����M��'��U_�m�������7'��	���3B����
�5S�����Q�O���������"��������|��"	��f����b���7<j���6�4=,Z��Q6��A}T�| �O�Gy�d���>����>*|�E�m�YP�i���	���}y�x
k����>������H�G�����C<*�t�Y��N�My���T���^M���zu����\��/��I�G����|�x�Hym9y	�(����A�G%�ck���rc�^��(���9&�
5����E������8�}��PE1��^7	�C����)������������1�����+����������5���<A�>7o\�5�{i���>�G���^ES�MiN����X���P~%�Q^}��[�Kyu�*�xT����������p�^�J^^��]L���<�i���81!��_��g���;��)�<*z�<����������^T_�������<*�1q������|�x�L4m����>��0m�	����
������YA���>��o�����a��������P5.���rW��96��hxT�����X<��|�n3�Gq���]�d5��'_����&�_��������m�3�G��S<V��p�P��b�����m��s_���o����(�Tvr��(����J�)�G�6����}%O�|:�cP5S�����P5P�����W��E�^��u��[�A�����#��c�GQ��m�D����&����\����
�o��93�<������2��"����/�*���-��@�)�G�p���Sg������b��G.x�:����������mvP�U>�s�x��j��3���jyD|,C����))z���jEE%C}���"P4���9�!?`~���+�x�K��f��:���6�,#EXc�_�a~T"l��j
�7u��na~�@�����*?���Y�O��#^/x���-=LO7��P���m}ryJ�BKSA��5�mxv��Qn����	�i|��G���+s��_4/���ikg���G�����G%��myJ�(zsm�r����h�����f����R���D}��b���&���kYX������-x��y=D������~�K�CU��
y:T|�m��<�xT�<����Q<����%�U\�E3�2�Gq�Q���>�cm�G�����CQ|
x��zB�_�>j�<�����(/�N�����GD��(��l�_��G/6����G�����e��G9=C�\�������SU���-��e��&z�6�Z��(�������Gy��"�6OU��7�5f����^[���or�}�n�>��=�,�~}�W7�x�(�aZ����4C<���P�e��P��!��>����G���l������q}�y���>:�����������O����7����z�����X~���p|�����t8~��=�[~����i\�����p�=��]���O�������x�����w�?n���v�����q]���q����n��C�e�������������*�}��������z��W�.��<�������H������o����a����9��t?}a�/����9��ow����g����������^-W��}�0�i�w�~�9}|x:���������}���������uS?�>|���>�0�Y�K��w}-R���C��g������-&�:F�[��n�]�/�?�e��I�����x���<�-�t�n����7��r�nw��?����.��q��f<���Z�qZ��o�����7o�<�����x\���������v�;n����_���_��p��������������;�q�x�:/��pZ^��������cNo������[yw����;�����?��j������p��}���"�>����d�����:4�����S_�����u��8����Q��7s���+���6��Z!�";�y��kkIXa��j��t��
�l��!���,����t��|������e�����V���&c�
K�����.|4�����i�n�0�-���AT����n"04�A�3��=$��j��73��G��0�K�Q����d-�a2����A�e	[�J�K�����cgv�f~�� 7�v�FK����;������]�D"�DP�T�_�	j�d����j|`�T�Ya�U�g���(�nYK��3��w��6�����et>�l�,v�E{���F��F.3x(�9��IzfjxG9����b�E����ih����F�+����U�3��K�7�m�]BH�Xdg����T������z��FTW�BN��eo$�����bn�����y���3�I����AQ����� �S4&*�s�y�v��	RB
ql|�p'e����"s:��B5|(��0���

%��%���E��d�A�.��R��DOM�� �������.T^~Y�����2}^b��v��2����6�=�W)���� 6g��B����m�H*-���"�DV-���������;-�C�P�)*��-�l1����Fc.�s�z�h�I�w�\@���72�6�t���e�3���
�R�
wf�O�S��pg�^j�,�������Q��~aO{��/���p'
n����Pdgg�>� �/���v���B!3J�i��h�l�������pg$�c��L��������tK��2�F��	�e��h�	\����od�R��w��S���vri�;����&%5Z���
�1QDT�p��-!R+��b�XDp���A��p�M�#��8��>�N��e����/����Z�'��Td'��&�'������n;P���8c�_h�m./��3t���M
B���
wN����|�3hv[�@�lk�q��H�����g6<���+T�\�3�*�������]�^tQ�1�9�<7{#"�a.�I��-9Ee.�I���Bxs����T��.��g�|���#NF��]�]a�L���U�����m�1�e�;0=�,i��E�O������S�E���!�YE�"A�&�^������4�}��+>QX����,E�Sm�����(|�Q$��!0��(���c���"Gi+�q/g�h�[[/@�V��/|J=��;�,����)��hT+}_�4�)k�Z���4��(�4g�u�E�vV��>�|J�\k<�5B�4���"��S[�Ao_��!�C���~�C���~�A�eG$?l�GE��zn�"��#}�G��I�������q��@�`�>D�b_��>�z4�����)��"�R����,��sr�O�_���G�(�����/1!���5=�s";��S������5�>�:���$O�>�<
$���>�}Jv����^
��O�+
� q�z����"�}���w+|���J=��{������4z�= K��K�5�hi1�]=�Om��9E�S��,M�>f���](dP.iM4���Z��)��������>��e�GA����[�^DBP��VU���B~������h�5*?�ys��O9s#���<������Q�t�},H�\���1��f
����������@M+y�u��/kZ�m�����M=�
�5�<��f��$�X��z�'j�En��7�3���5�[�@�����x���!�����q)�m
����9��sh�d�X�~ �a��l���)�Do��#�)���5��U\j[~�7W�����m�
��Om��C�Q��hk����5
����4���C}�-�����<�T����~�������f���B�zs��(~s��@P#��
��kj;)C��B�wh���B�j�9����>%�9&L����:�q��ZM�m}+���D�����$�c���-����n�m)�0��
��4*S�t#����:
��H6�}/"������o|/�����Em��C���p��Y�>"���=D�:�Q#�}s�%��"��ms)CW���gQ��B��BGx�}/�����=�+��>e��-N
���r��De�QT�����Q�b9�O����,l�x�k��#5�>�>�Q�q����>�I]��o��>}���\�F[* E�k[�?5P���E��P���r]��P��5F�-��~	`�RQ���Z#�����(yZ��5ma;~*b(�(7� +�@����x��.� h!����4�
��b<j��S�y���<&jc����`U��S���� �K����qmP�4=���Q$�y�(�����c��;4U5��r���������>�<��5��k|���Q4E<�|�6( ����,�R��V �L��(���$�S��&���0��Q���Rr��&��Z}+�Q��Ul�q�x��������:y��<j�r&�<<*����9<*P/?��= ~J������R���D��w�d2�Q3���O��Gu�������dP[^N@<���U�)�Q��m��(�p��n�>��y��!�I����jU^��r����RJ�
�Gy~�����Bo�_�=���;z���^V�������X<*�~�d�	;��@���O���}.Z������4�O2��B�E�'����kL O���
z<�����<j��[y�(�OE�V�y�^���S����E���\/��i��z�co����S��O]�P5C���_���(��n���hJc�R<�'l���Z��Q��U�=z�{���������Cq�!��Q��G���Z��$����~[�D<jt��j�������\�x�	o�]����
o�>��z�>.�Q��:O��7������E���z��v�eP�*>�������@9ymuk����3�xT���=�������D����sb��������O�1�j���U������~A���N<�sH��qc��:����,b�GEo�i�{����ZG����
WgI�n�����(W���:���p����*x��c�5#��+�Q���5D74��"���n�X�Io�*(�x�����#B�>��j���}����Gy��JW<*p���oU�����S���v��k�{�|)+��yJ-uv>%[����,P�����<��R6���T�}�w� _���<�����8m�A1A�)���@j���l���m��&�?l,X�cP5y�@J�e�Sz/v�������2Y�m���m�P�[���<z+?�Y��m�S`I�(�g`gn]�+y��Vs�"�Q�w�V�3��(����d�;������]��F�9��!��GE��m����Gy}T{����;���,U���	>���������E������(�<�0�8@^��E�{�n��^lQq����w����:�m�C�>#�Ql�5��X�K9���?�
7���^�}���Sb��<���R�t���o������c���)�����{���o�|)��cS��R���^���-�����Q����aU��Qn���
�����T,xT�o���= ��r��Pw���[���f�S�M�z�D��"�mY�-�xT�a|*���:�!i�
�3����/�~��/G�:��Gu#�K�{Qwq)���j��S���zG����i�Iu}���\�@�:�<
K�G��H�G@�%"8��9|��1SJ]?��}��GB<��eN��>NN�������mr,<j����	�7��x��{.l��Wu|�x�x�	����9&5��P�k�?M}��n�E����Qk����v��xs}U����4�|)��h��LP�)���n!�p��}@}��h��K���_&?BUw��du���{�bR^����AK�GM^���[���6L[L)A}T�<���G<��8n[�.�7m���__��J�G%��z��cc}���G�T{��G%����~�X_�U\��5W�?��+)|�xO��� �c�G�/��H�S�Ql�K���w����
n
���Q���������-.��Jn�nE�S��5�9������B��((/�T����p���}
�Q��G[�/��\��MS��V�p�nM����"���&���f��bh
j
���n�j$�G�wh�cK�GM�g���:KUw���B&�	�������=��{������3H�G%�/������c�,�G��OM O�0����x�m3R�Q�W�%��P��r��������A��H&���'����T�d��\�N�}������B�/��@�n���SE�S/'O�Rc����[�n���O��8���3��!O�>�b}�.I�cF����t��Sg�����?}Q�D<���#�1U�S������^�W!������h]�}�
Z���i�a��^���a����Ge�6A� ��z/������(�T2y�������	H�Gq�D[��x�L�����4W���fQ$��Jn����	���8�}n��b����G��(.�#C}�;�D���������\�O�{w=���	'����x�;B��<��I��Q�Q/����>�{C�5��b��"�-�����$�\��(������G��e� q�}���m��Q��O'�������Q�PA'���R�}��|��Q^���I�P5PO&���f{��(�{����G������G7�{�N��G�n~q��������������Vz�}��E���HG��n��GE/~��-�Q��a�T<��96�)�Q������G����B�>7N�F�����k<jv�i�5@�{2Y�-���6&�h:�,��uR�����j����P���"��S�kl�b"�:��<z���G%��X��G���w����/�K��)�e�3x3��"����x�����{2�(�����S/'O`�9W����.�%��Oq:KSA����"����n]���\��8:J��Q�GIS�?%]i�>�>��}(y������O�J/���G�r]�����d'��:��P��E[J��(���k(zTq~�^]���Q��Giz��^�d���+O�<��<�r��0����e��:�������Gu�����<*x���)x�:�w;^��QT�m��h�QG9�����;�}y���z=���������c����+6�k<�E�	3�Q��w�z�g��|�!hZ�Q/����GE�G��u�����i�e��*���D}��Y��Q^K%?��^E�-�Q<w�-�2��/��������_N�Ox���da�G9�=�U�����s��N�xs�Gu���������`��O���*�t��?��O7����O���?>�~|������c����W��������\��ow��?������w�/|:>���Z�Ow�����������i������>�w_��n�������{�9<�k�{:�����
�r(\�l�q��������|���B���/����F�����~��r�W�������Z�t������v8�?v?����[����K���wn�oN7���������x7w_~y���J���
���v����n��������������/�����_��~:�M�x��������p�a~��E�f��B�u�����y��]����[+E������*����E���]�g|����x���<�-�t�n����7��r�nw��?����.��q��f<���Z�qZ��o�����7o�<�����x\���������v�;n����_���_��p��������������;�q�x�:/��pZ^��������cNo������[yw����;�����?��j������p��}���"�>����d����+\�{�KD-���"����S\��J�Lq���TO����
�`�1�
���{^a�lL|/
ozQ7����<�&">t�����MOwk������>�����i�n�U[`s����u�MGw�lm������]|���DS�y���r��i���Yb��������]|3#���v	a��Q�n�6K�,1
���w35�;s5X�lSG�uj�z����4Ph`67��BZ��#s�u��w3�����9m����$����[r�Q���G��L�cR(�9S!��5�����6�����������g�}Y�"S�K=��<�ii��f�i������;��r
����]G7biqY��A�n�,�bE��z����r������e	�F��j�Y���Vs#�[�	��&�j^U������U����������g����H��>�D��3�!�.D��N*e�&�jO���������TTc��*�-�J�����Q</19��I����|��Z�z���Y��
Y�oD�[��PL�A��\���]��K%|JB���{roj��K$�=U$4{A��LY C�����_j���D9uV!�j���bhR.��V��.�t{�� ���5��rw&�N{#�/���������oW����A�n������|�D)�z��p���H�}fJ^��-.u��������H��Wgb|	wU���FD�aF����29�bwrSmC��������P^��.R����H7$��*����9S��U��V��;�_�x#�fw<�����������K�|v�����rN��9���G��T�0����sY�OE�t�6�s����+N��c/�y�� ��Di��H^��I,1�.�����1����)Z@j�S��$x]������4�����2wn>{�L���2N���D�|���:�Ag��^@�5io�t�5G��h����d���*������&U
E#
S�7rY�^�sL�A���w����lC����O��8�s1�����������o��k3_O���J�e��/��]O�[��=��f\_����:
Z�H��i����4������������~�K�i
aA���H�[�����K��j5��w+\��7��k����o�i�O��������(S����:���iS�+������>�����U�8��n@JnDB��Ds��W�&@HT�ae��S���7'��R��e�[KS�nK�f�s��n}yJ���j
�wO��Q&�4�\��Pw���06�}��������K�f79q/)���h x��u�_"���}�H�R����o�y��~���j��T+d�!t%�or��w�DY�6^#��o�dh�7'�i*��D���K��]%x��o�z��-���:�J�(?��B�x������e���������Gu/U���Y&QW������M^��L'������^���,���\��{��6G�����-@L���F���?J�<�d" ������2q��Yc2�{`&ek�������p�]C��79�je���of��8�xs�5��S��(E������P���7�}d��n�>Z�GV���M�EMmo'��P���O�#�H��d��1���D	��~���X��6�$����:�^�E�1�����������;+4��h����/����O���cn�m�����7��c*~
��H���}q��~��:AkK�}@���i��Se�:rL��S���Q�O�?j��o��1�M'��M/l��M�rz�H}0���8��}��~���[�����}��^���GE#��Y��w�!m:�����r*7���8�#��|��p�F_}.P>��4v���f�S�%m����
]�w�A������$��;�������������SP�#@")��m���U��vO0�G��F��mz?�S�;kK)z@�uk[�}������s��������Wz{Ug<*���6?<��h����x�p���������������X�D�x���RE@�w��`��0O,`A�r���J\���Q���(��6UL��Q=���qq�P�4Q��I�3H��}X{L�S����+e}�Q<c�
��Geo������i��B��x��o�Gy2Y�x�t�o��e���R����Aj�����0�?���K�1�'Jy�6E�9��xnz[�F���J�M����"���cV��xTG��]C��Q�zk����Q�k�+z��w�E�rT:q���C�~�m�R�4��a���,���D���eI�'�{���Q5�m�+�N���Ge��'�{����h&}k���,	e�6��d!�<��Y��|;���j<������Q�G���.r��Q3�>�xTrr��\���:g�����������'<j���m�X������R~ ���= I�fK�e8���t�q�����*�Fj-��F��)>���c
��yJ���Hg���Q����\�2(�b���`?Q����Tk|GfI������Q�n�|�m�P���O�we��	'������7<*��j��A?Q7o\�B����W���f�ou�Q<����5Sw��P��4U���������xT$y�hkc?Q�?�xT&��
P��j=t3�g���fa����?��|J~T[�h<ja��j��2��6�1������D<��	L<b}U���}F��&�
�gQ��<��[�(F��f�/l����G�y���QF����T��v�Am9F�(��l���vr�&��N�_��S/_J������9��"�Q���{Q�� .E���Eg���!�T��5*y�`Zj���p�fE[%�����3%#�Q<�����*~���+|�xTG5#mq�x�Wc���>������H��:�V�k�P���^I�^�XE|j����^<���l<*��m�V� ���0-Q�a��;�H���4��G�V<���6�#b}�����b���;Y���c�n�����|���?�x����o�����v������G��m�x,n����"�b���mY�A�G�yJ"�����uk����e����(����?��	[��E��R��e�y�1�}J9�+P����o�l���<i��	�_�Q��u���y;������E�:�Q������������x��a|���G
^����G%g~��	��c���xT��V[���x�7�D�'G���0q%�>*Q������Q����^����|�x�Hq��5�>�j����v|/�������eQg���:��<��(�Am��q�����W��(��T��Q��?�>�X��o�E�Z�zuZY�pS��Q��G%O��}�:�1���am=U�X��^��,N��������U��6M����A*<*59}&T�H<j�����x��{W�9��������
�P=�T�O�K�������9�P-�a�2�P�)�Q��<����Gy��!E�
����X&���Z��n]����G
���B����5�"�`k*n��
���VC��_a�m9�����c��oH]Uw����|���6(�m�5��>�G[\;uU���ct��SW��N���2(!���Q�z���@uZmyJ	��H1��\�x��w�da<jv�-&��rgI�}@�������	�����*���*�t[�
��z�����;�7����$��a��,���r�q/�G������M�>j����9
;(<�k[�Mz���(g���N�Z��m�N��` _��3���G�$��0�x���P��<���e2�Q���(>��(�;����X��9}��yqmIS��	n�;�X�Q��U�R����W�H���n���''��7x����<j&�Q������*|��?�>�8�v��<�}'�^����opj#UnO��(��l|�������o��(��hA������z�x���8+�����H"������vM�z��GM^w5x
���l~�CD�4��sz��w������d�Q��sL�Gyw����Q����c��Pd�5�>��(�g��6�Q\���#%_j&l�m\L�~}����H�t	�(�)�9W�?�*_j;��B�������Q�G9=f��@��'=�x�����~s">����rj���B�3A>r[]R��(��X�/�G�y����>rc��������(�S���!���%��2�����I�Ge�E��[��_�S;+���<[[�K%��/N'�����!O�������xT��le��S���CQk@���Y��c�>�w�����Gq��E�����l�'c�>������}{���J&�}��j��Q<�����)�����J���(z�m��i��O�T������b�)�Q��c���]�����-|�xT�bJj6o���{������d��:�Mgw�Jyl66~�?2�Q3����X� ~������U����2E���wk`}�v�8?�jh�����"��>;������(������~}����1�P5��o��M��n��s_���������Q=��m,G�-�Q_���>������#M��qriUo��Q����*?j#���	b�]��������p��b��-���>j����V�����@���YG�������z[~P<������Q�������F:��������<%�E����j�n�>�{�5�S���������(/���+z������O��V�G��>�ec���8]<���%x,U��ck+zT��N�P�G���N<H������]�z~��=&���(��V{��rg�
l><j%����9Wy���<jp1q��Sw�����������=�S!��w��".��x�"�	{51i�#��(z�v��)�K��o�r�>�*~��Dr�(&�������d�P�<%�?�P�K9������O�^7j
�sF���o=�>N�c��7����������)�Q���-�Q#�6�B��bl��v<*P/���������"yl��P^������N�N��F�����R�,?���$E���� A���=��<���Vv�Q��gS�����j�
r�����1X%�������Ug���n�{(;�(�����f���~R�B}T Y��*�U?��B����7�h
xT yj����G��� ��8?����������n�)���*��~(��V����N}��G5/����}����������~w����v�������O�>���~��<�����z{s�a��������������yw��n��O����qY������q��~w}{s�?-�:�����a���������{���w�7��u�wO�������[���>��?��������^�px��?����3���sV��v9���Qv��^_-D:�_��;��������g���5@�~����t���]?����ws��rX<��>���
��U��<��|��7��O�����W�_����������n����?��O�����/�7���)��?��{�?����]��nL�:F{q�c������h��������O�����������-?����:_����'�������?�^�������W+=N���m��t������y�;��;��������v��������O�����?��{�px��?�v�?nOW�%�N��y�{u�����~�������w��w+�.���~g������W��:������_�Z��?������L~��qj�e��#j��M���:
�MX�Qc��z���y���Za�������QG69�Sv�7��H��������}��a�5��������t��?���S|��!R=v��
/���y��`�o�����l&�8obp������-�y����0�%D��3
��WK��3�:����pd��������8����E�%D����l=a�YQM�=���eZZ1$���k��i��D��3��*��P#*�����eE�f	5Q���@o��,>�%l�ZB�O��,\mi!Z�����&�roMd���	��q����P=�9� �I��Gy�o.��aw�!F�Res�"r��I|!�(���9U��r���]���m3����$��S�;/1��	��h�w����/Dv,�I������;�)v	H�;�|��/R�N�fK�P��e	�`g�J����5=��N#�E�=�,�H�%vQ��2I!����Z�����?�N�yqd��z�r#k%Q�4�Bt�Se��M���.�8"�@����@l�~��C�����TZ]���f
�%d&�y�l43S8�����M�MW�pJ�q[^�0��;W���>�����6i"�KUI�3������9��aE���]=rF������8�Pd'�� >����tD�)'\b[�*Z�f'=b���E��d�V��OkK��%|(��B��b��Pdg���$;/�������Ez�����$���29�";�m����w����)�0�;;2�,w^��c��`sh�D���g�����Nq##������c��lh��(�3�Vj]~#S�;g�&���Pg=�vZ&�%"cS�N
�YU$�T�s��E��F����~cw!�����)����:H���6- �,�(�=[[��B��LE�O�����(�9�S��e�3��\�~ys����r����;Gb-���_��;3yE� "�c.����%-��9�����:���t��Q�4w�Z�7r����;G�h���s���oC����v����9\E��,%bq	��1"�����O��4���+,�(&d�q���]����n����qf����WQ���)���7��B�@�>����a`��u�"E��={A���n��\�}��2�{�5.[<}��`C*��x�����T��5�q��
i��hMc��i����5�B
w�4-|-.ii*"�}��V���N���h������ 
�d����iA�����=��OGk��5�\ OmORRQj�T��^��^�|_�R�|J��7J�i��V�r��,�O��`�`��VW
+y�mS�w{���"�+��1���`�V�8i�^��j
�������cP����w+�#����1E�	e���S��`JCog���T:���5�TiHv>�T�YXi���v
-�W
F����H\� tog�}��N�O=�.�R��d{	�>�li�I~�����K�,��A�?f<���.�E���S�i� ��G����4F��0������?�����\=�(����:d���oi*x��LkK��W��i�j�*��j�z���OH�kA�4�-
�^�Q�i�}��,T0Q_��!��3�Q��k���F[��M�h�����U���G�����`�Z?�U��i��}+d�~��\�� N+�2l�!��@N��&���-��+����5��O��4Ug)�i�s��n�i�V�6�q)��c[x����+���-.j�"��@Oc��n������N`�RT��Cdc��>e���
��'����^�}B���=����Lh������%O5$kk��(��&�R�z��-E|����)�qm}�CQo!��Z�����E�.��PGm�Cdf��D���A���c��52��[�+`����w��-@�f�;4����W�~����-=���$��C]��..���(����W��}�lB1��|��O��E���Q3!���cj�"Oi[�}
���n�[�^�Q�����=�j����>P��O)����C���#F�z_��m<J�y���\�k\����0��8<j��u?
=�����M����/r�m�J�6��c�GMTg�����M�o�C��nL\�1��:W�	��>�t��}�R��&��57�aT]T���7��<� E��~[�r��{|*���(�KY>r,�E��4<*��O�8P���z���?
���"�3D��HW����z�����>��wc9���G�B���O���/�R��N�M��y(T�ksTM$��T�����G��#��tj�7����������9��Q����h���G�8����3P���N�����{\=<j��@�g�`�Z��j�f�O)u�-v
5��� ��(x�@������A���`�(��b���O#�C��q~���M������w+���!����4�X�S��j��	P�����k@���Rm9������F�$<j]c�7��P�����-�#+��(*&�5���m����Q^���?
5P�vc,8<j�l�yKek�������<*Z^o���GE+�������?DT<�fl��S���^^�+����D���r�$��{���.<��u�����T������/��������+1�!L O]|N������Q�W������?3�!��Q���Ro�(O&��#�Q�b�$��-U��5���+��F<���V�*~���:K�S�i]#!�;�R���J��A�G
���{�O�O{����	����D��P��L������Q3h�����g���9�GE6]�*y���T"�?%����= ~J�<l�S�e�����[*v��[���T�����������;�(����sl���G
v�uc�p<j��q�]�r�!���W|����5����Qk>�^Wa��G�5��Y��n�I��h��������>�b}�o���U~��-5�y*���YU#��O)6��)B}T���
��>j��������'�[L>�x��G������0!=��Z�������a}�Ws/�O#�Ge�Gn|s�G���p�x�[6�D���:O�����r�mN!?���V�����E�7%���^�qB=��L�7�Q��Fo_�)�Q����"�G�2H���:���#���y�{������$�?�r����8��|�x���q����zy�"���N�r��"�Q���S�!W���^�Y��liJ�O���z�����GE�^�������z<�����-b�.|^���[Fh�7��I��(����b�Ge�-n�k����m&�>�qm��j
�S7F/�:�G���-N�����F�K���
t�c������c���<��|�F�(�/��G��"��m����Q�LVr���������Gq�}����������&/>�lh�����1���G�����D<��%��z�
n���L]��9=w�=���ri���������'���{����}�r�l}�Z��ig1q�K���=�H���l������i�6�K5o�IE���-f(F����_�OxT�7gm����st��@�Sh�(c�!t%�G
�-��6�#_�1�������?�b9
K<��p�zT���/����7}�?�\��gI�Ge�GO��h��x����4uU��E5�	��/�F���Uu|���E�������Uy���Y&��7m�cKP��D1���QT��f[���Km��,������<��z���z�	�#A}��@����vr��Y �O��m�s���Jn�[�^�>�k5�l�xT��5�5�?����{<*z��J�c}��+&�������S��zS����xT��q=���/�'LP5PO����>hN^�x/�C��-�M����n��I��/S���oH�G��?'�����h8����[�����o�S�����h�M�Q����x���iCg��&����{Q�G��O�:O!���^_��R�5����^�
4���WO��7uj�����(�=o��I��ots��Y�<�Vg��/���_���8]<*[?��99���{�����x�������D(�'�A�d	5z��j���r�hIS��^���_��r�5M'|/N�����(���V4�����/d2N�r��{<*���5�Y"���
T������@<��_���%���+O= ��h$�����x���0!�����/K#����B���4�(���{A�>�m
Z�<�vPg�Q'�-���Q�/T��Q�l�F�(x�r��@6+x�:t��*$�-�Q���z��fQ�?�	�?����[�-����7ub[BM����Z����
�4	��(7�U����M�mm��3M��|d�Y$�����*+|�S��zB&��7�>��=�\��qz
�����h��Z���ri�Q���N�
X���+���r�[�e��������$������������(�;��Ge��(6��ie����������o��z������������('���1l���}Ty}N���i���oza~�6�����8?��(�����>�#`t��=2�Gu�c�'C}T"Y���8?��QB�����wj5�>���7'���Q���T����7����M�u�%
��������GM���V_��_�?�I��Q��68#����������S����b�Oa~�;[P��P�K��'���O�i*����_���$��(�����2�Q�,��x���}������v<j�s�^������|1I�����(Y�Q��������\k�[.#E�(�~����V��������9��(7F/��O2�-?9�x��Y�Q���Xs��Gq�P���Q�4PN��c�O�
4��m�q��Q�33E�u���+-M���{s���=����(���x�Z�(��l�_`~T�fP	�/��<iKS!��J^<Y���!�u%�Q�s�������,����%��S��:�}o�������>J�����i��|�\��s���Y����A�>2�Gy��">��>����<�x�������QJ��U���9��}/_��d����J���J�o� ���G%�1+��,<�1�F{�(�kM�����GMn�O���;�K)y���w��f������T��;u��,��f��4�G
n��:�)�����<U}�Y�cj��"�3c}����C��x��5�����w�G�}�}��.�\������~���~}<��-�7C}���Q�u���j�E�����e���}��9u/�Gy�C�^N������t�p�;}�tx���������_��OO?�o�q{�x������������v�_���p���{x����������u�t����{x����9����M��������_����=�������������~�����-���fw��O������?\/T8���w�Oc�;_�Y�������G�u{}��p�y���p�8�~:���o=����A��;7�7����������L�������������+X�����8��{�������i'~���_������,?~�t<�������i����Y�������Z(2��[�����.|�����|�O�[���
������]��|����x���<�-�t�n���[��z�����$_��7���O���+g����?�g������p���3X��/���{��\���������{��_iq�:=���~z������t���`~y<�����7���1C������p������������o����?�-��n[~���y�������<���������~��]����������#�������/���?=���o>}�3?c}�9����.|{�����?�.����?����~|z<���������v�>/��>^��}z8�V5�i�a���OW��w�������������G��o�u�?}��Z���������~�<���������������7����j�������~9>�X�������{�������f�����_]�;��}8�~Y�����~Qmo��e�~��O�����|��������\��/�����8,���_�����q��v����7��e������o����W�
�6������|����|�����l���w����o�����=NO���bZ��?��o����j��3e��|#����g������mYu���T�O��r������~�����=.�{����w��z������������]<o���������Z�����7�x��T�������������]>�l�,�����;���?}��7�77�S���]���)��r���w?���}��i��W���7K��/��������?������.>��^��o�Q���/?,��$y�������e��_Kw���������������������i�"����1|�����/��?����_�{��{��V����J����}5���y��3ow_�����������v�H��/����?����D��xx�����b>�?�v�?nOW�%�N���v������q�������+����V�e����;�����?��j���a�J����_�Z����/��
����8Lc����!�G��)�_WH��e�F���yq��hMZ^�A��q�V�*��y�y-C��=��A6�Z��m��as���F�f�.�0��`�T�~�))�e�Ei����Cu�IT�~����hs��hV�|�o�~L]G��`VS�����8�A�I$���0�����]���9
��h�P��L�=ga��`�5G��$��Bl��]b�����}�������M��K���h'v���#E�s��N���/�9[`�^�$vq���-r��ds�"F}N���v|��0�L�r9sg�	y4�PS���y�� j0��;�1����~�j���;��v��KU����k3�i�jz[���@���Z�pg��~��"VN���N��ZB���p'u��KU�F���\Z��g��:�g�������l���j�~�Eo;��.TW�BNb-��-
wv�>�Qj�������X�����.�:��l�����qn?��������{#��E�|1n���>T��B���6��h!jD�����F�s�����m��.D��P�i���hj�@v&G�^=g�\;u�/����N�FJ|����D��S���l������fOV-���pg���F���P�Evfg	e���/5ls���(����Yr�*�����v`���"���$Z(�����en|C���Mg4�T�:�l�%|��9��l����H�
w�6���S��C��@�bj����b�v!2�c��E����:us�q������4���,����)���kJj�EvN������e��v���,�~�W@l��7w��8��4�RQRb�R����u�%xh�f�-lc�+`������F��cf�QZ��Tn����bi�}�F�F�?��Ig��;������R
SDvQ���/�(��I�"��Rw���1��)�E�����5[�t��������]��T*G��]�M:���#��z����[3g0�&�#��J2|Mw���;����Ig�48y#k�;U!�����p'��nV��"48���tfu�%��s����R��IgT%y#���6�^�\�.�|�M���r-������Jv�r��.@:U����^8�_>dy�Y4���LJ~q]+DE�������U��T$T�������eQ���sQ��tI�x�S9��W&P�V��aj���x���ao�?V��6
������ajB�H��Rv/������wY����u=���2^��ga��2��P	
7��H��R�F���>!����|j�QV���}\�> JR�I��uB��Y��P�����1���DC���������&�A��r��5i�0���� ��$�| ����)�
C�G��c�p�.}	{^�@����<��4iw=�v��G1�A�K��B� IE�}�r/	�R3�z�	

K��������W�I�J[��-�����)���q=C�B��p���>��_T4+�f�7��*k�Tr����)�~�PN��* ��Z"r����{/�����x�J����v?C�^�Se��|d�Oe���?�3����s�K�����Z��������]�e]�b)�xi��]��i(G�{q�hJ���d��aR}��y�i��"'�
 �
��%|CT&J�g��4+���w�)ZyN�k��o��:�4��rI�L���m�����O����z�&��G�S��S��J9%z��Y��R:��q��}t��w ~P���"���)��e}h�<���+p�3n�����J�z������5�))_J��������3��Z��$k����5@N�����Se����l
��>�A=)��[.�5�����D��?�B�/{)*D��'ur
�?�:�������^[����P��[�RJN�C��
��'v��W��D�|~@�Tw��0��]����m���c���?*�S���{!�H�������(��������U�@��Gv@ ���Io
������xil�NN��� �H>����7�R}�Ro_���o?Nj��!�~�~����#�m6��#�Q��)I_�����F^j!sB�v_a>�$N��R4NI��.���*{)_����I�Np��#�Qj6��b��T|�����b|�talx��;q[�����[��������3�����"��V:�s���h�(�3X�`��@ASP���L"���oES�3}��������c�������OcW7b`��<Fr*��������<.;�����7��'�g%&^�~�6Y~2�D�������u"��Ge���k���<��69����X�d�(�O�Z����Sv��W#����x����}��:���|�
?��:�QA�c���9�-^#
��\C�/�<Z��r����}K��(����aVJ�*
���6[��S5���5<*O�$�,d�Gy�"z��b���kx�>\���f��~s�X�"
N����I��Tk9�����e:��U��}� b��rP>�w�&�Aq�����2��5.r�����B���hp�����0�|a��x��_����'9G�5<*�V�����
�D�����QY��2�����.4���Q��3`12�Qf[f����+)����tE�)���G-}��:�Q���l3��Q@d�(��:m��T������>���U\;��x�d�G%��q��
<ia��(K>h�x����t!ysP���;��"�Q
+�q�����2���P5)��gW�OU�W#+�2�8��h/���:��(�[�*�#�Q��	}u8�(57���
���3�9������S���rn����z%�:�*���Q��#5x�/	�(+��0�x����|\������O��H�GUC�+OS���Q����G�~�Q�H���x�����.�O����7�u#'��t��'L�Gi���nS�
M
9�n+�Q����t	�(�����)�@��M�<?�[�O�+���S��:"�Pe���.�?����/)B����2�4�.j�� w=����2���-�QV�+�N
���
sJ�n����T�a�=�����S��rV��DN��JL
���A��H���u�N�Q�>���

�Q�G-J���2u��c+���G�E��l�������/,���>J��S���OU����!%�7U�q�w z��Q�6�s���6�,�<�u]c���v_��k������#���(/��|�������N	y�W�@��QY�����S^�^9%o��Uo���JWoj�9<J��u�.4���O��%��t��/G��21&z�X�Ax�	��Y���}ak�y(����>*+N���B}�b`�,g�������I'�����:�cs�(����3<J�����4w<�W��H}}��f��QV�G����&�_����9��2���iEY��Y��@�	��S��.����Ge����t�QU���ak	�(��7G�c��L�5�e7�%o��I�A���	��t�r�S"o�������xTQ���c[;���3`k@e����Ro��-�]^��q��v|����9���F�������/3y/P��I��G�����d�G��D��**?&����G��o)� z�B^������GM_���P��:������CcS��������
�����9e�6���=e�}�����I$���GE������>jQ��W����G�������trnxTT����'�����:��d���5#���3�Q��������b��IL�C���]Y���U��}������T.G��l
�K�\��Svu��i�}t���_'6*7<�������J������?�gJ�<��@��!��z��<�u�?7<*��H��A}��8W>n`<j����{!}%3N}28,���J����Ld���),��cG�)[x(��]d���w��-�G���^�����F�#7<j���k�Ho��Q��i^gr/��(f�R�O��0�n������j�r����q1z��?U� _��x�l�bT>�>J���F�d��Z��l�G��n��������X4���2�$f���$���s��V��}���o3�Q���!��3�Q��9�r(��Y�-	/8��Zb�r�����	��a�>s0�[����[������ASw+m%y��G�>W>[<j~e��x�jp7X?��x����}D��W�r�<�M��%����O_U�������|`}���b�y)kJ�s�GU����@�(�c�l��#q9S������8�����i_��@�������y����C|:�e�>�k@�	��9;�e >(c�>sx[f����y�f8z���Md
n�S��W����%���h��ekt�S��L�����1x��<:�o��D>��5x���x�l�B�w[Q�9S����=�����2�Jb_�*���� r/��V��1��V�����fGE�st�t�G��>�h<���1l>��(����������L]���/$m�Z��&ce�x����Q������J����B�w �d����8v���tO7_��5�
���tE{U�_�_��	��%��x��\N��(�n�qY
�QQ����r��Vc��a
�Q��'�p��������^��t���7���(���j#�Q���M��������x���#��;��x^$�����m�1{�}������)����cc���:�W�`K���zuCN��tu'�J�W�������B�������A������6���(k2�;�q��m�����,�x��g��0�G%U����*Pe���w����~92OG�i��RF��������+������"g����c_�^�_����f����70^_��(]�(������������U����Q��m��f����1���d��g��0.K<jy%�S�J*/��-�������G���`��t�S�����/Y��	�^�����[��AO�gq6�GY���y��7f�1I��G:�|�������Q��u�	�����p�}��t�W�^������xT1���\p<*��3� �wt%=��y~;a6{��RJ�;m6�Gw��;���57��J���V�<���~~�cq�Q��<��x��Sbq6�Q��������2���3�x�c�����Y9���ZUg\�>��IM�v��(�.����
��9X��T~��� �j5|��xTR�s?�e�d�;`}��9:cB���}��F�I�8[��$z���82~!r
��,�'��7<j�	|m���>�����2����u�����4�UW�m ��xT4�����t��|s{�{z<�?�~|��������__�/?�w����|{s��q�������!����������a���O��oN�Z�/�O�����w�����u�����t����}���������tw|����r�����0O�G�m�������������t�������tK��
?��;�}�}���QN���f;���������������/O��G����_��O���w7����������{�x?�e7>o�+���[���$���w�OO/������������_�}9��M��/�_��������a�}��_~������+N�>F{�7-���a
��9L�&������i����vM���m����|������%�n��s>^��>~�����������&M�����/���k�{�����u�������O��&����.��������x�	����J8==���������m�m�?���O����������_��ob����������n��?�����%}�[x7�����2������7~������?��y3F������q����nn_^��{����?O��N��/���/������E=��������9��t|��������~8����������y���o�>>>�������������������On?�q���7��|��?��c������|�s�����w��}���2�]U6/|E�ss�����+�e}���+$����
��*P�y^��Q���O����b�;����2*����a.����O��U�,��[a"�`7=s��t}���^t���HZ��1K�D���2��|	$�Y�Y=l��%����yf��.d�0r��D�D�����pU�EI����3/�q�\�4m�9J�:�!s[BBr	6�"��$���CH��F�Y&%���
d�]����4��2�������M:�B��Dlr!�q����9M:U�����s��E����.�uYb��F�����o�a�h��x�����M:L,wA_c�,���-��uIl��drT��5��H�R�37���_�s���B�Y�Ig�y�r#�p��B�1��o��?������(�#�U�]\�s�$cG}�n�>Dr	��Ig�}����Z�&�Q����YlL�e�����dM:��,%�����F��f�������D��r�LvQ�r�\�������,VP*���t*�'v�j/��+c	Z����o�1��\H�2E$A�\(�#o��j�.$-N��@�M:'���� ��fUM*��J�RP���M:��^*��&���P)>�|6�,	��i��*�]���jV�w���.��U���:����H5�,A���0�Y�U���K��Qj�{?�I�bHSD5�P����t���4�jYv��4:�R���hl�EM�P�u�,/ �@V�z�,7.�����'������H'Y�I�����N���%�eWuw��#���S���� ��E�&�H��H��Q������R�f)GW�y}�F�Y�,�Qrq�F�fI�	�\W�D�N5pJr��?�Y]���n���e{�,�Z$���3�,Y�N���g6�5����wf�e��{�M:g�,��6�1g�K��x|�8��!
����f6�3h�c�F����d�D����;���/��f�b�E�~#�Si-��w*�}�����u�D.�t�"N���x������Z���87��,���U�:�+�������!� u���o�jF��l��&mu�r�:�>~)��'������b
�-)������Q��T��Q���{S�7k������8WG�RB���W�����5ZwKj�BC��U�hJ����/CCOR;!@o9ND����3������u��,��G���{	��4�u"�
@��0���� �o�0�D>b'��3e� `H���35��]���ck���A�)�Q
F�5#kF��p${(�+��8d"�_��>�����TO
g��Su�2v#��$��R�)���Z6��)�IV������'���X�����w��u@�L���K�SH�2��aJ�����������t�'���:�15�?U����[����&�,�9��<����{*�_�u�;4hiQ�\��%2����O3;�� �*e=;�2�V2��G�0_a�R�3*O�B���N�2�.I:�A3��v_%N�}TR�����*)��������l?��2=(S�}9��e���m��� 5X��D��SrJ�M�����d�4e���s5-�1&�>�3�S���z�}K��4�&bdm��6�,��� ��@�!�W�V�v�}W`k\��&��L�w��U�,W��c
r�Q��>����*�����tJ
v2^�T5����]��i�}�T��H�MN�"��5�{Y �R��L�[ /�l����04�i�m��|�}�v�V~��b>�8J�q�>V��*�[�Ar���U���5HMk��*"���-W����"s(�L[�I2�g+��*C/�-c$C�_��P�����K�������B����-�F����&�!����E�B�
�������I�O'���79��{����X����l6y/F�^�JN�����N��d����G)��<S���8�b%0�:�Qj6���7�QY��2n |������m`k49Us�w�R�`��`g
y)�$6*N��7���K�S7�{a����(���B�ox�vd����\|��KL�T��+,����]^����w /�r�>���b�.HN)��)�`k������_���x��/W�
��m��?�{A<��\�<*YLtv��G��S��=��(�/d��������b��vL���O���\I'�?�N�82;S���[��;D��TC'����Cag
xT����v.E�
���)�Q:w�|/	����}����
�q���d(pZ�"@����G%�3��#�Q�l6�8����[��U�}q��Q��H�>�PHbU��{��ol��L�x�������G�����;��N�:-�z�;�=����c�3 ~!T;�h�1�������2_���E�d~a����{a>n��R�X>��?��Q��������8hN�x�������GeK|.B������S����O#�Q���/���/5��X���������p?(�-�������kK_���q�z/>�ElxT-�^�yT��<6<j����-{s3��,N/�����^�js^���K���s$��J�?|y��OZ�A2wA�e���
�(��&���%-�[�R�"�����Rq�3��P�zs����P�U����x�7�;�d�y��oY;�QF��Q�z/,�<��xg��(�Q���F,�Rq��V��O�|�?��G����G�� �'CY�.���)���r�t!F��
�
�X��=����[�����2�Bea|K��GU�[���x��T��_X�ha���N<Jwb���	�(��JN
�x��n��gO�GYg���`}����|r�2��q��u�<j�}���#�Q����<���5|��	�(]�(������4��d
���5x��ZC�u��	�G�O���s	��b�@�S�Q���'v.�����e<*�<��R4���o��DNCWm`8�[�'m�Y���x��C!������d��$�}*]x�V����/>�"A}T6������y/
�����e����	������n�4��r��3G�z<��� �%u�>#6%�xT����}������oS���q�OZ�&���W��	�(�N+��:|��mY<jQ\'_~=e����OPeb�N<���bt� r
xTU�}dlJt!�GE���,)C������I
�Zf�k��Q�<�?U96��F��3��1�����a����m`w���Q�}��&���(�s�b���n��c��O_�N�G�����G�|����p��Q�l]GtP�����&��G�f~���Ge�D���VM3�s�L�X��9������''����+e����Q���*����y�?��q���C1:��{���zD$�����(f�����}\�4w�S�?F�[�)���I�Gi���+��5Y���<����|��Q���|��x��O��i��j���J�G�*/����X|\z�������w��(�_����3�������,���F<J��s�)�Q&���G��O�V�:>�?�������?U1�3�x����1!���Vkg��'��t_'_s�T�~_���q�Q�n���hx�^�-����=5<jQs��M�kG����(%c�,�Q�����RV@����F��4�<��a�97<jo�l��%=�����cM��*��NlT<J�R���u]��>���H�1U,�����QE�a|��<u����&���,�$�{���b�[2���Q;/8�����>j�� �4�gc�|!������ �8���v<�lKlvF<J�r|=!3�Q�����$k@�	��r������������y�MNM�3����__T���bM���Y��2�Qj���LAN-|%o��E�70��8J�}6��(�S�6�������������_>>L<jU}�|��xT�������h�~�����R��q3�Q��c��Q�(�3A�R�(U�(����W��������$����G�1g�.��K���:�>�J�����<�����[����s\*[���f+�*VC}:���fp��5YwKr���/i�!�I�����V�����R�����<*+��C��G�f^}
�QfK{�3�}����@�[���QF���QV�rWe�}�^�./�*l<*[�wH�W��79��[���W�O3�Q��K1��C���H���K�zd�4#��N��$2��tO�>FfuZ���.Y��i>���l�`@Y�����'\�x�����(���R$������#{�P5�>F>�A<*�7��A�����K��iE�r�Dd���8y�:�x�i+	O:�nj`'D5<�fU[-�>��uTo��-�qb�+����(��/�	��_�:���/�G��W����_J���[��
��H�)���R�^gO���t�ug�v��8����P5)���}�}@������g�2��~�S��f��K|����0z!�5:��X�T�2����c���E�z�5�\]���gS���6�e�H�P�__��(����z�^
�G��;�e��J���(+�%�������"��-��MIN�5)~���^<J��9%2���Y=3�N.�G-J'���u]X��}6�������x�lq��>-Xe�v/ ����oU<J�fp��<�����>�G��c���Y�?��<�X5$6-�G������x���"xv�]���	 2����X���J�Cq�m��R��@��(�y���T�q���)Xe��%�T<*���a���Y���z��`�~bz,�O�B_o�xTP�^����,��p&J��h��c�6�O��1��2���o��R�y���>5�T]�;}��9g%w��W��
�Qf�B�~������R�_������:�Q��k&c0?J�Son"�x��f���`~a�pS#�Dd�(���a��(s$;���GY=�H.�����+{s������l
��j�}9�2wu|��#P`~��x!����V���f����Sc�
;�K�����#����r���_��Q�l�1��`I�(UK���*P���������j
�?%2�Q�:Sg�x��)�o!o��J�kg	\��V�_���t�>��'�e��}g���QF,F�t��R���\�����9]���9��)�G�=��>�2���=�r�,��Q��3B����O�9�������N�����<;��g��$}&����9%�F7/�uqT���="�yU�{�a�����7����Q{]��<���3�@<����r����wKtr�pSc&����0�s<�X����O7��7�������������?==~������sx����7��7�w����=?�����O�O���t�����������tx��p{w|<o['�_��N��_�����=�<�OOw��}�/��}?���}.�6�|�~�������O��)?|�����"�����~����o�G9M����������7�:�n>����};��Mb�r�xw���?�>=>������{����g��������K��������������Oo�B�?��������N��~������������n����_�������/s������4�8-y��hO������>�:��0�������|s�����]�#�{�_����:_>f:\~�_�����n����6��0�z���y����}yyx�������p<��w�����?��?N��//���o��n��������O������p������e����r���}||:���������7�v������On?�q���7��|��?��c������>�������;���,v�;�	�2�K+j�����k�o�:O;����uY�&2�����i/������
�]`��o+����l�RdlLl���}�|M.	�!����t^����y����o�|_a	��Z�E0��m��B
"5���+|��y�B�+H��uy��o����5��A9!G}�����})�5w�1�y���r
��7�>��;
��(�:�EN�&�;�e� �Z��B���]�z
��!s[B��j	R~����XEva.B.2�����R��.����.5�J8�����FD����,.K��p� ���{�.��dC�.g!�����od�xexl�@��Y0v���N�M:�F�q���M:�"|qIgl��Vyk�R�����"�%�.X'��t�}c�r���5��|=����"�{��<���t��$����"����t.J��!\��g��\�g�zy�%��CX��&��zK�n��o6�/!P��*'� �7���r	iY[��F���^*�o����-V��|��i���t����r�>��.��.�����,�EY\���t�hhpV���S�H��a���D�E%6�4�L���8���s-�8eoY��&�E��E��:�`���;e�p��(���c�Gr�M:k��H��]����z#b��rY��(������t����%�_���S�j�� e��E:��nB�I���g6G����$�b�T���o����%$�Nv��3��!r17�&����>/�/��J���}�*G�r`�����kK��y2\�!K��I}�4��?d�x�]}�4�����rq��\�tN����c_�e_�q#��4�\�Y��]]�����&��u�oi�S��}��V|fc
N���IgM���t
#�3�k'����x9kB�0���5��*��+)_��Tr�{���7R��y]:�&�EY3������<�N��E:�����orh�H��;I�B&����z����M.AR 5�)r	_Em�s]�3������^�3�aj	RpXK;�Y���,.��w_�Q�t��wJ�{���&�E�������c��%�7L-�TU4���S��1E@@���^Z�R[#k���0�
�a%Qw����&����X�*L��K����f��I��g��� gaZ��V�^8059]���dOr��Q�\�q�Chr:����["����L���$�0���[�*���������Z���j�C9U�.__��������8njh�Q�7�^��6�h7O��[��F�S��%g�a��OU���7;�T�.�����!%�;��n���l��6�?2�����`�,�7��'�G�����"c���u��>{Q��������LI�J���y��4,io�>�A��	
L����Z��8��Y����D>�S���zP��doe��=���rF����!J�X��>[%$H��q\N�	�)-J���Pr
T�[������*�onl�H V�}�o��JI���[��S��u������I�74hioo<>S���`��"�:�?���MC���\�����f����}����Q������W'`�U���
�0%%c�� r� �}��2������c��pXB�����/d�iC�v4�1z�W#Vg>�L����v�x���I:*�T�}q��5e9�G�9�[�l`M$�f��*w��/�6���o�x��?��>�c
o��}��B��8������hrZ��8�R
rJ�����9���n;��D�����S�����
v�r����F�����ZT�����(���<�#M�}K����1�������Z��v��0����mh��~���`���OY�P�~9��?�>���������>f����e�n�Ci�����G����+���B�o��t���cC��t~�P�L��1�6���|�f]D�A�)c
�J����o��[~��*���������j�)��Gi���_�kxTV�k��q��orZ�_8��mlx�>�����7�QU��S�B��xT��>|�3���n�������G�V����8�>U6J�!��iA;7�}Y��Gi�����v_�o��ur/�Ge��������S�-�w�����$'��b��������gw���}�������(��C�@l
�K�����D���|![��iT���/��GM�.$��;�t��!5�1F�#�����tL�	�n��r�����)�?"�QA�}_�#�Q���0�x�����4�[*�(#6%k�	����|K�<��}:��(�;��O�	��"��f}��Se��"}�b*�-��d�2���0�F*�Z96�'&�����Q�"�Q��H�A�%C�_�d_��*�m*	hl��:�����x��O&EJ�(��%G������������X����;95�
D4<*����V2�(9[��YD�����$����Q����p�x��JJ|=#�Qu1�-���Ge�C���cf���e.��
F��7�&B�������"�QA�Cr6�y�����>.�Q�w��"c3�Q��D���&�Q�q�y�S�!j����U����Q3���[��l
���12����G�c��pL���2�2Ue�y/�F-@�O���R����~���Q����3���[�g�l�QF��#�Q��[J<��9(�*�}a1!�QfA�o�*�-�'G��Z,�����G����9�^�>5�u���)<J�.�>:���C!:��Q��Q��At�Q�����(]�)e�����1����(3g���
u'il���5bY�*A����5�y�or��G��R2���QY�J���)�FM��l6�F��>�m�v��!O����GM*�����<��I�f|G��&�;J�H�G��Z���uPU,�A��i^��^elJZ�L�O�W~���x�������4��"��� <J��|2��.jp���@^���=���M�d����(S��JXe���X,����t3B<J� i���49Mfn��}��&�����i�<��&1a
��*�Pb��[���<a�����*J'��\�]���"�6�Nfg��QJ'K=F��(�g;ur������i�S�#����#�Q$��b��6�>y�
��9����_O�G������GUKN��<*�Fy>\,5<jW��Fb����(���7� A}��j�|sL�QQ�S-A}��	�}~���[y��'h�W�A6�ak�����	���r���0a}���g���n�2�I3�Djx���}J��(������G����~.%����t�[����x��cl��Ou/2�Kd��Q{�o��c���������	���rY��@�_���Nd�@�o�� 2V
��1g��	N�R�;�����������1�-��U\c,��f���S� �#�O�������(���3���49��{a~�QU��8��[
��4���'����5�/xT�}����3���5������QO�T"c�GM
��aI��QY����<�G���B�%��d�E���&�e�����@��a���.���G�
�p���G���Z���n*�By�dF^Z�8j\S�b��to�nY�n��g�va~a_e�y������a�0�=�p�����*{+u!�����f�G���4o��G���Y�Gt2�G��{��G)%e�� ��*��t��QA��.{	��h�i�s<J�!��;S��Un�)�GU��s�����8
��ak@�����.�_����H�$�+x���I�|�q����>�?5������������y�����d�Q�F��)�+���������_��b1>��**O���3�Q��k���9Ea�>������3<*��_&7<*k���<�?U���]�����"'��yu�x���������f���yK_;7<j�
�3H?���o�1b:9�@�>��Q��+�d�]��v50��D�������dz�(��K��� ���U����@�>��K��}���?��@��I�������6�m�" �x�������������������QV�b���S)�R�2��Q���H������s��P�����^��e���Z�+��|K_e� r�yd�}y��x�j����6<�����fI��Z��������A�R���g��x(*�%cdv��CQ}j�>?�Q�������h�A�s%�����G�w�}<j{:'��G��b����/]�#n`���e_�xTU����#�
�#���>��'3���e��@�&�{<J�y��A�(���8��Ea�2J����Z9<j�0>�/��G�gy��Gi���Al��7r���������PU.��;��G���2}
x���cq6�Qf
�~����7x��L��V�uR�^��`�>3�`������ 5V�(�7%���2�yR��>j�9��x���(g\�v����G�77�OY,�v�S#�����Gymv])����������N&6j���
>.��Q���e��(�KI������5zd��<j6s[�[�?U=����Q������W\I����>5��G����yf��g���W��g��~[d�-�G�^72G����_a�2�w]�
�Q�������_����rZz<j�?%��L]�����������Bp��#��H��`�>�{N�m	���f?1<�(<J�q���eM�c����`����V�����@������|�i	]���^��t�S�o��x����/,�G��VC�Ad��Tm��*�GMG���x����|\"��GY��HMs��(U�.���c����XM@<jRy~_��@}��l�+(���2^��s,�G������z�x�j���<jV\��!g
x��b��?R����c�G�3�����E��J;G�>�Qz>�//U�J�����
�QU��*������JzS��L���9��V�����x��r�R����{�H�`�y)��{!wxTQ� _�^rG�*?V�*FO&�
,��O�9%f_��v��n����X_�������g@���l�R+(�G-�����o50z��G����^�e��%<�R:�������R*w!}"���o6{��Q����|~����|=������|���s�|=�����L5��eb����e�"6{^��_g���l���N����_3[#�|���t2��S����=���}�]���g�9�,���(�s����.�7�A��<��)�F<*��	;S��T3��<��m����I��R�5���c���l������>%z���������������O�^�����o��K�����9��G�Y������Y'N��(������&����7���,�����z��{��Q��3��Q&��%������a�n!/�r����3��=��6���~����?v>�<>���������~���p������������?��<����=~�~���tzo��r<}><<}�~�������������������������ml��=:o>|�_n�}���p�?=����?��n���?���Q�@���a���������?�n�p���7��)��|���G�o��v{���_?����x��p���������/G��@\�����������{�;���n�����a���;������`��� zyW���zx��������@~��7���������o_N�}S?�?}������x�[��m����k;�9����2�/�O��OS���}}���]r���:�e	�_���o��^��7�m+��5=������~���c�����%�~���v��o��	����7�y��g�������w��}�;���i����/������t������7����n?��z��t|><>���=��\��p<o/������������?�=]�p��a���_������7�z���������?��oKm������?����b�9�n�b|��Etz�7���*r�kB�c[�������?&���a��M#U�[�u|\gW��me�o+�=��[�)t�0��b�7k�)��f���f���7A������v�na��+(�g��E�p=�Q��0K�g��\��w ~[b���M,�+�������9`[,$|
2�6^v���O~�BB��(���$��-�sE]�A�2-�a�29�;������]�y�m�x��.�9���������]DA��~	���E:9g�,r�	��yYbY�t�'���5Q�p:��-1���Iy7��a��D'��X.��H�H����p6ycn�U���:^�s�)��O.�tN�Z����E�� Hz��35���x�dpX�H�*��ig�U/�H���5j;�u|L�Rn|�r!����I�R����q����Q����CHk�&��y��� L�"�kP7"���O������T�������h�b��h��C�Y�J��!�g�<�:^�x�?d
8�+_�s���o��EK'+����I-L�NI�U� i��]D)Z$���S����H�Mw*�B~����,��4�	5����H��18�eWr!;)(.�;��9JeF;2��������3�����Xw��r��r$��s�w��,� �E.���<����t�.�7'�Ey�.r{#u|�L��M:�jhp���&�����D��I���!g��N9�Z�4����t�D���\��t�"/�7q	��_���,��F�I4���������;��,�����C�t�9�J.�3[�������@Td���-+j���E���$�N_���;�����
�S)>�r����F�����i�k���6���B�r_�����k�r!�k��z����TY�MR�����Sf9���b�%�Y�F����S����.���B���r�Q�M:ge}�>�I���.u!��&��"��p]IF�6��J��D�6��|���-*ZU:��N�.x�%X��6�S6���z]_��;e������E����X�h:~j��Cnq'��*LM@ujKJI�OMB�*�\��u��&��'�Z��VS�5�oa��ThR9_��05)-V�I����)Q9V?Y��i����EC��V9�S���
7Ze�������>$G���	
9ZW�X����#�{1�-E\v���{!r���:�5|5���G����{�
>Z�2v9�\��������K'4i��������X�#4�N����1��5�-���r�|�`h(��f����#�g:��j8����n������{���/����~^�AIkQ�T�}r�%�J��������zC��{�lv�
N�%H}*�:�	|�E�[34@i]�{�g����iT2�|s
R���s��`h�R��SZ����?U����r'���]�`��^�y
�|���*�����49M��H9e�hr*k��>���$�Q��`g
����2oNd,C����,)r����Bf+���{�:����/m[��^|�&�XH��P:�sF��Z(��W����O�������<��&�K[���2��w���@�*���qg�s�{!�@����oa|1�S���0[#��7�T�-	u��?��:�MI���6�M��N�����c�}0_��MU�����Nu�y�w%��0C�TAd<G�e�x_%���e��V9��W6�i���^�>4�i]Tl�����$F��K�B��\�?���&��L���&�S5d�`��aO5(}*�7�y4�i�����t2�O��������Y��'���z?��?�9�����9��SE�v�����2^���OVn��������`�e�P���p(9oX��cDe���� g
H��`$_��PT������E�F�7`�����[����'�`wp��t��x��7�m�u9��G��gJ���GEE���%�Z�:}:<V�����2=�Qy�����%�KNY]D����w��GEY1��������q%�
q������1@e�/D�E��4��G��
��������&�:���/1n:o��e��L>�����f����Z��6�P��*�U��H��x�u�,'�J*w�<����P�2Ng�=j��"�T<jU��/O#�������xTP�'>x�]e���n�>������E����	�n�|��WzL�)��G������**�v� ��V�60rP<���"u2;��zl\XD��xT.��'%����e���t��c���Gi����c����3%=}"�QA�R2�`u�u��{]��B���co���?&s��V6<j�}��p+��@�D��I���G<j2���)��
�k���������~�7xTU��/U��KmC�p�q|�b��G��#�L���U��b
2;(%��z�t�(��oag
q��+�>�|�>U���w��������G�Q���.$g
�O��|�~<�*���9����9�O����Nm�\�FTl
��*�����wk`|D'��>����;95xDNU��)���E�����]0����q.���GU�+m%�[��t���[v���
�<Z^J��R�'����U�Lf���G���Ky����5���L�.�?��0Yox�^�7��}�����3��v����e9����^�'e�0�<�7�RT������F���7�>��(3w����������f��9��� �g<J�j8sJ
��:n���#�Qf,Fj�"�Q��u����<j5��=*����s���{9U�>�_�����
�G�Q;��BZ�5G�.	��l��}�QA��O��Q6����������)�si�<����e��>U����&����-�
$�x��rJ������x}Cn`%|�x��rl��!U�8���x��j5���3��_�EB<��!���}%����3<����d��QA�/y���n`B<���������M��>�	H�GY�+�e�Q��o��{���*c���.K<�������[:������mv?�Z
_�Z��(UW���I	�}�G��Q��_H����2�;��'dVNjxTU�S$���R)u��1��|��GU����	������l��7G�x�Q~������������QaR:y�2�s
�������(�*Y�i�w���=�6^����������.��Q{�}���R��j����N��OZ�}���^<����Z��.�]��X�"���Ty/��=��C�S9<j5k4�>�������(9����N�G�	_md*]^��8�5�>�T��A}TU��l������N���Y�������M��V�>� ��>5���w���+
Y��\���Z�qR3���m�}��������N�����S�}���=��]U�~NKX�pBy/�<�>��k��X��D6����Q�68���GUe���%�������]$���m��.�Q�/��1���>J�V;}��g����4<�f%���	������9����%����GY�>�n��(����Q�������]�o�F�{�x��UA�=	��,~2{�k����,�<J���0����:Y�)�s
���FB�[r��G�|������d��	�5%g��m%6�3�1��L�G-�����S��N����U��Le��t\_N<��\�����Z��(�6;O��������G����A����K���w��R��k�
���A��V��hrjr�I.8�u��e?���%e��J*�#k���@����C�r��<j1ze1����V�;�����O�\'�Q���/<z��������.�����8�NN�� \�'<��%���G�X�u��g�
D�NN
�����r��<
�l�;�����a��:�Q�������G%K'������e�i��(��L�����{a3~R��6^���^�3#��@�b��x��[_>(7<j���:xT5�d��0�(\����GY��?(c�>�~���s�x}F�B�i95�(����OOr�i��}#�D�4w|��oI�Q�h_���������}�O
.>�AP�V�8����}��M���n}8a<*�/j��>jV���/���A������6���U����(��������~}U�9=5Y}I=a�~}����m��`�������Q��1����T�@Y;K�c�?��-3�Gi~�|/D��>���X��Q��0�x����o�(=������G�s����U/Fy�D���������
�Z4�Nr�����
���wxU_��x��������Z�z�e�e9e��
�4t�����f`d
���Y�B���lq&�><*)\]�9��4�[_��x�l�2Yox�{+e�������>]��I���s<J�r����-�P�>F,o	x��K�`��v}&����>;C}TP����#e�/t,��(��7c3��/� �xT�l6�G��g�1����9<j5����`}���g�i<jVo������/$|��Q&���<jV5Vr
2�w������0����n����&[ck@^��������Qc���@��E��>nO<jV8�/']�R\_�]���dC������QV�&=�nR������xTT��d���Q����/�G-�N�L>*�dcD�!e�a�hn��WTo�oY��(#�Dd��QU�|=U
�G��B85�(U#���Q"���RN�>F}z��K����u�N;�����(��,��P5Y�%��GE������j����d�[����9��W��T�TF��u�����y��������Y�_����<S��L_��S��g�@�>�G�������C1�L��<*+�o6i<*Y��y@����1Y<J����)�O��`$�-
���-y�b�K"����Q�fC}T��^�y`�>�_���
�/%�b_�>**=���.�G����
��k����H�]�>�����w(]4�[�|t��������(s�������|r�s�e�?%}����Cy�L�����9�$�U��*���W�2k����>��l29<��[&�s�����{Y������x���I^�Q��/[<�_/�GY5���]��������s��T`k@���{eg
y)�3��/�Gi��o~T��Q
�5g,
xT5{U�3]����_h<x�l�:��W��V��WXV��f������Q��mK8$e���F
�c+��M9e�X�����-����mbo�v}{�9�D��Z�[�Z����?E<��=
�Q�U�r��G��[/��k��9�
r����������N�<J�H�8������������p�������OO��_~}y<���=������������gn�O������/��������~?�9mk=�<�z<�~;�������	��������������w/�����y_����f����<m���>��_n��?o����v
�_z�m�0'�����������n�r����7�!o?n�u<�|<�~y��?�vt����?�{�;���n�������o�s����l������%�rx��������@~��7���������o_N�}S?�?}������x���n����_���9���c������4�8m��>F{�D*MS>La ���?��~�<�oN�V��kz�o�k��6X���L����K~������?��y���Oo��8���_7�//�����w�����N���_�������x��E���o����9�~:>������|x|:���{>��,��x�^�������O���9�{�������.����������?n>������������������?��?>~x:���Ne�����.&�>�-l���r�]������o�:�����,��V!������f��������WaW��������t{�������t�A�a��,l�ur������C_A����
;���Ns�����S���"3{�$"����oK�"H��E8,d��}�9
�g�_!�]�e	9�}2� �?S[���K$�!�r�$�S���]2��S�%����.��y��l1��1_v��YL�qO�s����}��s��*���wl�)������&������C�t��r�����5�OM.'B���s��=�?�v�M:����vA2��"�{�c��'9=6���L���b����!����Y�t���i�	��$
hB;�E��onGj����,�\�]4��'�/|����S6�����]���H���
�����tS�NY���3�.:�,�����5k�,�&K:Y��!��FX�&Hg�Z�����t��Eq#�f/�"�U{9����J6���t�r��v��Y�L��K��aD�&�2��� ���t����FX�&��JR+>�]��-SD�mM:�<~����\�S����I�uMw�$w!Mc_�M�_b�J��I	���;7W�����Ig+>����"�7�k(]j;�$��n���I�,�w]�g��Jk�%�������� ���sY���8Js��U����h�);(��XB8�~���X�����n���;e+j��:7�)30�H`�\_���0��^
K����)�����3���#����,�k^���N9�L,3>���!����������t�\�������F���.Z���5�#�J�6�)�����,��B]]W|+DE��K��~�+Hg1^*��I��_�"��Y��v�"v>��V���/�v6�.GV(#@tgC��IV��]���M:�2��Fg5�?����Mwj�*� ����"�x�%�������Y$r��W�CH���sM��H����b>e9����)q�+��E>3�� ����B��SO�s��z����gQil_����7�$y��DI�Ph�����S����#
SQY��������19'\�����`�-�8�����t���D��U|�-L->��E��u�lTe/P���X�R�	�P�5���BC��-�2������T��^��Q*B����49�},����T����`���T�=�5H�-���5�G���1>S�#�S����
B��,�2�0�]��rJb��@����u2�s���$��v�>@NU���M
���u�8�$�.�8Xa���X��{/	�Ru�y/�%U��x�!A���/�w��$���)<b��Te�5����mx�>gol�I�ah��S�}������i��{ID�5HiO���x�/l�R�JI��MN��s|nr��O�^�k�3X)����r�������tP��n����r���6�}4}�M����r��~�jQ����y���e|�v_�������/�9k0��I�,�wKtP}����3����/�c������d����WJ�i�|3�-�V�4+F�-���UH�}r�
h��v�������h���O����M�w;w��x��ng��R���m��������L	�f�S������1���Oe�L�-�v*���I�g�� ����*tX24���$�T�5�Nn���$�h���R�Q*�,�A�z�V�9%��X���n�N��}���Tu�b
2;(,+��:~/l �����a|��R��D����)��+#����*{>i���]���[#�5dm�\��?Ug���o�������>X�����hr�=��{a~�Z�n��������7��J�����cL>j��s�,n(jVk8q���b�9�n�R~��u���������W�����iR�������q�1�Jb�x��E������?�'�S��H�@�	�J����
q�0�1�A�R�(�s�o��?�
�������#��&�r����������J<jZ�|2ys��Q;�LG"o?��w2&fr��G��wZ�H�	�2UU� 	^�L�?U]��c�����Pv/M�N���!��G%+�M��xT1�8��U-�;S��d�8u/�_S<J�G��b���4���(v���Dr��(���k�#�Q��H�����z�>|?F��j�)9��4c��������t�(9�B�����dm+��%���5H�D���Y�>%N���T�P|��"T8U�������_^*�x���`6����>�<J�I�w���T�B�������x��"��x��85�5:R������x?�X��X<jVX��cl
�K)~�<�?
�O��!o�xTV���=XpG��}rv����|~����j�D�,{O�|2-f^���&����b�����2YoxT]������G�6g��iV�{_������a�A�-�Qs6���Y4��Z�X��)�QE��>(��W�A��?Y�����'��}xTz�>m�D� ��zsJK�����9����2�a��/�2�F���*\���T.��-����K�x���S�o�t<i#~ak��Z�O*c�����L��Z��+�[���TZ�[#�{y�.l�P{f��e���RV�1��"�Qr����PU�I����O�����&���i��5� f��2�d�[%{��uP�J��9X22V��Z��,�x�i�.<��W�� ���������(�����AyTU�<�{<*Z�d�^R_5���1Me���K�Y�8�U3�_��/����$gS���<��&����x�����/	�(�f���&����u�ea�}j$����>����3<J�V��%��Q��3��������q��Q'$��Q���������]��ji�tP������>�<}o����Q�{���%��R������ZL����j�����c���6�nR37dN���J�G����LIW��z�?���yJ�<:95��-�GU+�Cta���cck5[x�AKm�����M�QE�`�����7[u��nS'�F3"cXe�	���>j�b ����FB���R���`v/��8'Mrl���������[�P��:{��G����Z�����sEr�)�j��`o����p�>?�Q�j�#{v�o�(O����]5>��O�GU�n	�������_�>m��&]�.�A���,���}0]����m+D>Y�\&o��$�������(�-������/�|�D��u��c��(9�G�9v/���?������3�������z�-�-��|�iV���0C�����
]H�������}�6����?�Q2�� r:��Z<X�;��vSP1��l��>����n��K1�<*+L�-���>�����Z,_������3�k�sF����������(����O��O�>J��}<��x����o!6
��Uu���i����}09��(��R�9�'e�LN�RX��FA}���������PX/yl���Wy�^��n>�8O���BU��5"��S�� �G��/cL'C}TV���kL�G������]���
���R��R�G�y���p�v�P^��H�G�|:��?#ea���MF<J��}>�~}r���}�o�o�g���}��W����G���:x���
>�/O��Z�Nd,�X]:���'�����1#|_�����}#���x��&9� ����e<���4ZgJd=t<C��|e��G c}��m�Z�f��
���~r�~}�g �}6-�Gx(d��Q��;�0C}T�VN��������K<*,V�<[�Rr��G�����:��6}���s$o.v���Y�{|_q�e�6�fB{;�6��(5G^���O�<jg^*�|!��3�G�����y)���7�.c�>UO(� ��x��jy/�GE���<]<J�x��O��G��
���x�d�e����N��b���US����hu�gS��>���H����Qj.����n�*�5g���+��(�/d��(9�\�[�}�C��������i}jq���5�9�N^_�~}��<�>-`���i�o�����Ge��g�9�F��7Z������b����;���K�X����������F��}�����e�����(�� �V���/s��2z�	�?U����P��9##��������Q<j�|~��/Gr%�y@�>�a���N�n�.�o����.��7���xTTq���N��(#�D��|)3���������Z^�x�� U�q,xTP:��C��(���W��a`TU|m_O�xTZ-c����2����x�������
�����n��@����Y�����.�2x�����.��)���]��='g
x��Jk�]4C�}�j��,�����b��t��2��>nq<jQ����d��"�l�_�j��e�y!��xld�I���j��[��W��QY��t�E<���_��x������#�.
�Q��d����~��.�Ge�O/��
�QA�������(����rPU�|!�'������Xt<���sD>�ZU�,_�g<j~e�W��Q:6���
�G����7x��'{��
�Q���������}����(%��>5�G�v�������6��S��������~}V�]��K�a��V|/�.$�<J��NF-���
n ������J������w<J�������+�$qC<Js��o��b�t#1rI]��3y���o��>���G������T�~u���S�S��a-����0��O���5#%7}j����AN���;Z�2g��X��x��&��7���A0?���L>�_���!5g�(�����,8?Jq&|�J�U�	o������Uu�����Fg,V~����0���_U;[��*��������q���`������u���]��W�i.sB�:����x��F�}�>5�B"�Pe�����8��=H�������+cP��h��r}��q��8?��!�l�Q���[	�Qz���L���@�

�Q��o	��e����G<��o`y:�������U�����;�x��{u���G�3����x�b��dk49�s}Xc�����������GO�hr�����(Xe�uf��>�X~!��+��Ln1�������i��(##��������"ea��U��V��|m�e�fy\�ea8�6����������aj���!Bt2�����L(c�����������p�������OO��_~}y<���=������������gn�O������/��������~?�9mk=�<�z<�~;�������	��������������w/�����y_����f����~
��@���a���������?�n�p���oa��?��;�}�}���QN���f;���������������/��������(��0��=���n��O���o�w���p���_���
���Z`�.�����?=����z������l���t�7������=�<����-����?���~s>��/s�������������}����fs�a����r�������|�9m[y~�����������`�/3.��/����_�{�tx�M��?�����?�����<�{����y8�N�;��_~��_�����u������_��p�������������|8����������y{9�o�>>>��������������n����'7���������>��O��~[jSd���������o;m�]A�������dR�w{������[a&���[�y���^�����w[�)>Y7��������EvR��f�
^��^������i+���JG����8^���Y�+�!|�$��7��_a!//�����U`C�/~����?�U��O���I"e+GT�Q�����d+w���~��S�K���-!�3r	21\R�{uy��">���ng���,����.��-���`�/���;WK�y��%��4l!�����"^�3���8	Z���f�\���.�Bf�R���n��R��JdD'�"r-�G�#��:�����]���}���F�2���:�?d
����5�������7�;���ZK�g+���w1�%�����\��s���/�h�����i�!�uf���D��'g�t�j��|#��3I��W���w�J'-Qn�SV�i�����2]��
gO�?�?��J6�'K��)b�p�%������?�A����
Y�J:g���M����F�eW���CH6vBS���IeM:�zf� 2��e	�
����fpXv�~��"�L��UR����{�k���!��f��9����.��L6mG�Y4��d�t���{�X�H|��<w
n���r1CT��B^*�E���]����)j�z�}\�5�����;���;9�&�j��X��w3DE�h]��ot?# K@T$��B���4�^eWme�H��Yv9T��IH��H`��H�
q��%�q�C�"����2E�i�F�^��]�g�@�>�3K%��b�2���,��� �H+����
�z��.#��7r�8�	�S|HuY��"�WF�����;+�!���L<p������C����,�%�k��\�k����aK4��Ig.A���Ig�-�� �h��dy#b��n����5>���6�|���3c�[[�����J�����,�DH�"����sQiBy��,�t����|-r#3��:\�$j����"�;W^�"
�H��S]��;H����Rb�W��o�e���Z	�<L��T��s���$����|j�|h���������Q�,�����$��|���+L�1���5L+j�<�=(�@��4��@���.|'T��!^�/�p�����^zh�Q�s)u�C��AG{K�:������EHv/��kL�12�!z�(�A� �*|e_1�n	|�,�8�#F2��(N�B"c� �QF)b
�M
!%+���y�$�%��-�H�����@&TEm�5f�>�3G�*�w��$�6{�-In��$�-�g�|@I���O�S�����I{��a��|�hRQ��<S"
N�:3�=�NN�p��������J]���	�3����f�Oh��}�
T���O�[��d�c�L3��*q/���&��J�;�d��y0�	��
��T"�-�~	�3m�T�9���!C
J���`.��!������al ��4gCf��>@�J��J���)�8������l)�&e����`��@�T�!����}������&������3E�7��B��MI�;9a�_
��8gGY�5��X$�_�t!�M��������������7����^��xS�3�T���X��v6�LE���^��8}-���L>���o)����9�mS�����
t�����M�%�3����>��7�)����|P����2a��ONx�VR����<�-����������=�-O������S3�'��v���/��V�?��P�9��?�~�8��|~�����}��@������u��2����G���e������a���P���,��+�OU>���T���z�4IP��@�d/P�y�*��*[������$��z����}ayK@�L����
���_����h�tR2&����G���b%H{K��
��[i�s(�OR<jU|��ZI��� S;!:(6<�k;�W��x�b�
�-�c'�^g����	}��x����{!��G�H~[������<S"c��b��L>UTU��R��R>��a���x����?S��[�)y�
����^������ �x��[����w{��#G�,	�3�"�@�4�vuw.�a���<�����e�FT2��A^X��U��_w2&����i���O5�Fs35���j<**,��{D���$�G<J��p�x�$g:�q"�Qr��[���o��mE��4�W�����`�1B�_-�L��QjF�����<��'�3E<J�B)c�L��d�)��UU��K�@o��V�qIo�xT�
��>Z^j
����������}��9�x��/��A�SQ8���%='#�Q����#���Jb���Y5l
��
o��6[��C+r�3��J*�����uR����@v*J���nv]��vD�3�E����}5�7'�BR����>��>c����
%"C^�z��TF[��K�J�U|�=S�K)�W���d����kx��6V�9Y����`��\�u��&+��b �>������#wxT4pS�95*G�Q�L��NF�<�U�@���^�F��%~��u'���)�E�)���O�����q�1��^�e��}��%������"=8�v_�T����(3O���������)�Q��s>�I�kb�A�-�Q�����>������<Y��Qkv;���S'���>g�����D���\��S��d�v��1����_�>Fb_�������oir���
����cu#7<*U�%cB����}Je}��(��c�������
�*Z�
?��.�@�J��#���Q��F�[�"��q��1��6s��Mf:�����XN	����I��|�i���U4�����s$r�U���o�|/	�(��L��I���G�#���B�v�Q�U�k���**�,m�c4tS�^������������$���Y�O�x�lqn������D$��W�!sD������MS���3H�G3&d��oN��mC<*[����Q��JYg�9UX�s
��f�!��x�������1}
xTV���D�5'�f��)�}�V2Y���Rg*Y�l �V=��&���,z���?U-:|5�	���t����}5���ak	����_g�B�QQ����#z�Q����?5<j�}^��*5<���M9e�u(J��zv/M����~m��R
;��`�-
�*��O�D>�e�9�3H
�ZG����`:9C��}��d2�05<jm=b�]��mx��m�/���-[Ip�xT���1Y~�h�}G%�����e����Q���R[Y��_�]��Od�t��F���G����5����:(m�}vP�75�LN�2�-����O��cK�����~C<��1]X�:����x���f�:�QE����z���1��2��J�������jA�l�=�MN��S)�l
����[_��x�������cF�l����xT1k���5��l�-��*��%]j�Q�������(g�Q��c�[���3[	x���������<-_}aB~����x�	�(��p������}�xTR���}K��o�i�JV�����@�����G��x�Z�x�YCBz�$��t��3F�&}F.����V=��GU���=F
	y�
�Z����������K=��������QE��:��Q�����}�����v�}K�G��l���mo�����x���Eg��l���o��GUK'�Z�<D���}�3��G���&}��%'3y�4e��$��G
*�(������55�(��7�Q����A�0e����Y�(]��<��G%�o��S7C�>3?Fr���Q�Q�.���(�����e��F�b��>h�����9@�_a�26e�v_�l�E�3mx���p�`2�x�����%�?
��H���<U�����s������������x?#e���������R���R���z�!/ea|L�U�H0_�0������y@�>=�����������&��@N�#e��0�����_p�~}����=~T6}Kv�]+~#����������G
J9u2��T���9S�G�| �'?jPy:��}@����`k9w�S�������#���x���|u[���z2�xk��G��l��w�O�>~��k�����`��cr
x��O&o�Q��-f�rr����}K&���O���8!�Q�G�j��S�?��z:��E�~}zV�/����U.��'c�>����?2�QfO&��S�)r�c��O��/��q:���}xe~T�r���?��2T4���^�T����
D>�
f�����e����x�da���eq5��"���N�x�`���yl����:�Q����j&2�Q��/EGQ�������JF�jo�./e��%z�E)�����*�,"�S����l�g7m���ty�x'F/h������R��{<j�^��2�nS<j���3{xT5&��J���RTq�r�����U��Mp�xT4x8���G�H���S��t/���������B�
�J��A��ak@�_�����e�|���2tq������_�`}��
�Q��������kl������e���5 �W��/�Gur
2��Q���z��-�A�OGjY
�Q��I��Fr��G������z��.j����e�b$_XB��������V�p>�H��QUq#e�:�����w�/�[�R���#��
����xTPu9��xTV����GU�C�����A��;GkU,&k��>�<����.�~}�����4<*��>��[fp~������};!�����,�>�1��,���A%uy���6ex�d�S���2���/xTU}��z����F_��UT��w
�S#���ytx��^g���L���Q�U��|\�������!)�G���>\�����w�����v������0,/Ue�$�VrW�g���.�]���E@�<*[9&�}�>c�G7����|G�	&��GM*����Rv�����.���MI^��,�����GE�g�!)�G�)r~K��}o �R���QKl�QQ�.|�'K������^<�*��i.�G�V���e�Bbw;��\�����(7�f��?Jh��.�G���S�JFN��tc�;���,�xTT��\�

����������������o�z~g�����G%����M(c���j>r�:^�����b�>��B�	�(=�A���e�	��<J��r�}��&���jj���V�$��8?��
����?����U��#���e�~����������
��fk�{/��2g��,����	�gQ��^��+���~}Q����a����);S�OM���0s��o���j�N������t���;}�tx�{������������������WO7����������v������������>���e��������/������i��4��z�x<���_����?���O����u�������w�:,���>�����ww����f9���/���8�	~��wv?�n���G9y�j9���������q�����l���rt?~
 �?�}�=���v7������_x�.����
����|h.iyR�~�=}||>����~�'�����,���x\7�����_��O��������'����9����Z��>���=!c���aq��4��������������?.[y�_�����������:_>f���������{���!�Ew�_��qZ��o�����7o����w�����������z��w_^���/�?/���������������iw����������iy9�v?�~xx<���������w�����.����'�����?�~���O��������_�Z���?xx�t���N%�Y��&�r�v�y���w+g$N9v+d���e������U),�^!�0/+�A�	������`|��y�e����L�=�;�g��� l���o+����_AT���@�y�Y�;�~=�W��J
�	���%���1@�
����9RQ��f�~�y��z���(���t^Bv���+�7~��I��.HS�o�r����N
A�)�	��(F�����#~���!l��y�Q$J�����RE�����}����G6��k�~��%���)��t���g�7"v����D�K��d3��\�F������]j�pV=��9��r����b<K�4dC:�g��$}J�Ef���2��������S65�K�fKMw��!�������)Mu��g{#A��-�ao�n/��}[bJ�J�������,I��X�8'�I��Yd�h�&��R9R���4���tJg�'�K�t�:br�]l�Tr�,�s��YHW��Y�&���I.� 7��Tk�!�i-M���*� �,�&���H�$��3d��3>M����RY:��}��"�}� EK�NV$�>d�.wA���;�A��
. �Y^���h�p�I������FJ���:N\�U��gK��s�|fr	��lr�\�����S����^�Em�Y���FjDS��o���V��C:I~��]\~#�I�<��Y�I���5E�N��4�d	��&y�2 �57�e$��&�������r1BTT
}A�sl����T�r.k�1�53B���b�h���%H���=Yo��cAw�A&9�q�C�� �h�=e�~��9���6�d��Q��;e�~��L���lj1{��/����@:��/.���S-��fS�N���N#Y���u�|gA.��IA����A��f�%���%�
9��+�!$����9��X�w��}�(/5�DknQ�)�� %Usj����i���9g-�!����R9�l�@t���S��U7B��g�N��'�Km��P$�S.Ar�s����
uIxs��d�;�,���
��2�C�K	�/��h�$4����C�Yec�>��sP�����5@H�Q\>c��,���G�	�W���k���������`�9�R��o!)��p�i����k\vB�������{i��,kv���4�h�
��~�����2f�i��&�Y�[�������%hm�����s5�x��
?���i$/������"�������4i�}	�"g���C��'�2�!��2����"��S��:ys
EZc�`3}�`��3�o�����#�I� ����5 iN��L����y;��}���9NR��}��SH�O���o�������cm��4I#(2�!g
p����I�� '�t�\��:J���/�
�(M�@���
'�����4Y���G�f�b�:��A
U�u�EF.���4)](����+����L�6`i�Y�y4}��^��k��A�������
[�����^�����3����9^+�/��r3$�|����}�$���6�a�T�D~�S��R��
&�L%�����T�*-�_�2U��v��3M�J}H���0zk
v�4�~:�O��!M�������T�nI*(�XS��Sv�[H���6�h�[�F�����<�-MN%WY�v�G)`A�EDNq�����o���@����sP���b~�v?[12���:����1���79/��F
w�e�j�"1a��k���5��%7W���;���������I��d���
���d)�^��iC���������	�}�GK�9�	��b��t�[q6��������*+����N�?U~���5Y��	�i�P�������� xZjT�2�o j�����Du��O&o���l�����5,j�=��x�Qr��)���8J�<�5��A�&KN�����yN�#���T��$�����0(�R�I>�Q��L+������G��{�|��(9wP�-�Qq�j�b���5�:)��~2[��i�\'���V���s�(9�I�r/�GUU����b�<�i���.�j
��)%{�{���(���%����
H�^�j���L�<��[��h��{LD �j��>H�!��JqHN)�~�k��v��X��(���{!g
x��/�����QS5��Q�bg�
?��-�QU����t<�X��2��>�V����(�k�|������J�Nt2�Q��w�v���Q���~}*y�
�c��&���NH~=�)k$u��QsTz��|��pR9Xq��_S��h��28NKH���go�(9�D��A�r�T!�/����J��|�{���[�e�D��{%xe<J���~!y�Hu����B������z���Q������G
��A�`��%��{)>�(M���d"��T�E���3m�D�xn;L8��t�������u}�dS�����~���W.��,jx�g3��]m���������f�9s��������}���v����+��Z�1�����efo���T�L��Q[?�!�4���~���!��p����I,)�~�����1&��G�>|�L��AN�|���GI�����S�W'[?��L�U��(��X���^�*
7��[���A�]�j7bcB�9X�����RV�9��F��U���,���f��7G�x�]�������:������)�[���`�t,�x��bSY������A1F�{a�h�i��T���1���3��9U�Td����E%��|u�q�<5�1Rk{<��U v����}�n�y@�t�r�l��*,I�p���;��Q����x'�y~2�+"5v����20-�"fhrZT��\�G�NZ�����x�������xTR5F>\=�x��{�~~��V,�	��`�J�}@���a|��	�����/���u��LI ��t_'�>������\�_R��������x��S�t2���T���5&��T�H%�<���r(�w ����jz�w��T�
��*����B59S�������/	�Q���i@xTQ��k49-�+k���(e�d��c��zs�n�|�!�~����{�:U# e�}�����=������U|K�-�Q��q&9����Y���|2���$���SJ���U/H' �[F�8�	�(��{��#�o����oJ�7�3zU~��K����i�r}����vA���e�}r/�O�<��#z���&���D�3��rN�3���5[�S2�#��vkM��y��!��v���1��&�G����Ll%�Q�����[12�
���i&5W�/Z�t�����{0T@N�e����i���T���J�3���;���sRw��R����^�����bg
�P,\��;�q��G�r9	�(9{��;?J�uq�K�q�F��B=�W�x���z���B��[_��T���V�$���G�q6��xT�����G�����?jV��3g0Be�`��<j���t	�����w��(#�r����[{!z��K'�F=.;�GY�;X~l��6l��L���n�p���xT��y��UU�
y���OP���(G"M]�]?���6�n�fi���A����#xC~�h�:��M����S�����^��K_�s����xT��4��G���:�Id��4g�m|��?F�)�QE�J�}�57�j��o9w�R�Uz�(9��^���l_�w�g�Q�q%�jd�G�a-�����fU'- �^��?U��U�q��d��$'�[�����^2����if������u������^��G��J�X=�����7�C��7����G���7��C��^�%��Ge�����F=e�E�{	�/����=V--�-3��T�����*V�B�1���
k��G)>�����"?J��>8c�>�?%�T�~}Y��VyK��bB�b��c�8��kkX�;���@96}:Zk��#�G�u���U��?-*��=�.���k{x�YK��� ���V�A�#�O}�/����,�M���?5��D5���'�v_��s����t������x�YKK��T��B>H/����A�1�-�ns��7r�D'e�a� )��,���p�T�?|9������W�������DN��U_��s�SY'��3�Q���E��
�V��)e����o��#�<��w������,)esh��-���b�GY��O�QVmqd��������X�YqV�m`�rj�:�_r�<��0��<J����3���JV���c�G�� �����R����MD��%{Sz��\�8��&��x����]���f�)����S#�A��(��5��4_����OK2���?J��w����="�DN���g`�D>���np$�M������G
&������[#w���j�b�.8O��'K1�
xT��R,��(=E�WG�������3�Q�����zF~���|u����0�[@N-���S��n�,<Jc�>|?c�>�^���2�Q*~��by����B����_��Q�Ge�_I��3��T��W7���V/���Gi���������$�LO~���J_�E�<�������G�XL�w �}����3`�����a�h]��d_o����N2g � u�eh�T����$~)�Y��#z���f��?U����+�G�j��O�����pB_~���������]������?�L�N��J��,�E�y/��fN����,�������U�|�w(a�����Q���3��~}�z/.8?������(��7��K��S3~!2���Tn���(�G
������4�&��n�5�zK_}a�~}��o���Q:�:���Q�h�
3���GM*~����)�Q���3E<��G���%uq�U�������c:(A^��y��1�e����hv_���r
��+�,=��(�G+_H��x��+�:(79�*����4�5 j�J�x�����m����l�}���r&W��QV�]�])��C�����2�^7�	l�n��Q�K������b���������7Y���+��N6f��}��7���{��J���07�����?����9�v��L����(����9�G)���n�5[�1��*����`_
Z~�d
$g���b�������Q�In���V�_|=3
��F���I����3��bk49��yK�G��L���?p~�e��y���1���O��[#��Q��qf��Q��K19m���Q�������?j�t!���Uc${D�3���T0�{���(3��J��L����G%eo��O���Q����w����S����A3u[���F
<�O�_��������r��f��x������e����j{
���W[�N�n��,���(�����+��J"np�.���<���2C�T���<�Q�5���c����is�}|��>:�����xx�������mx�������������gnN��w����������������O��������������������ll�=}<�������?n���w�����������~����z�O�@���n��yw�y��o�S8����0����_����w������0������7�w���������������~�jH�?�}�=���v7������_x��5����
���_�a�qS���������iG~���?�_w���c��7������w��z�:��o���?�����r�����|�}	���>�8���c����KcwCX�Z��n�g���������l��~��������/�|��aw��?��O~^�����Pa<��~���i}���o�����y��w�����N���O���nw<�}yQ�?�����<�����?��?�v�����������������p������3���O_W������������>��������?����~YjQd����������/;��a
x0�KP�/�/�������_5%�����2xYa���<���a���e��k��+���I?������L������q�����a9f����ja{�#��$�W�}��rj�6#���-tMr
O����$���l4�!b�y� �!�'sH�nd���,���%���:����8v�������D��\7>�Xx��U6~�����b����.�D'����,>���X�����$�W�w�Y:�;y�C�8��t&���� �����r���Y�F��-!k���R��v
���F<��������$�F�.�t��^r���Y:��6q�R�x���Be6d��u?_�*�Qo�5W>��H��<���,�kG���!d�vC����e{��c��*���n���R�������W�T�2Wo�\��f�F����&?�5�m�Y��O��h?��F$e[���h�"���`���!��HS�H�����d\���d���TJ�k�j�V���3�aRNk�8�k�cD.:��-�lM:e5�Z�tWi��$A���  �s`�����t�k�Y�TZ���ld�������T.hG����m	��S9�j����H��2��o�46�g��]�.J�M�r�,*��%T���Y4P}�u���I1L���Um�T\�YAw��Sy��D�1<�~fbEj��>�����
����<��o��M�f���\j��T'H�4�*�,�R|���eAw
�v�/�E���n��5��1;����y#�����<���x���p���6ZgRp����&�EvP��\j��d�$�o���y�Yb���v����7Fg�oDTV�D��8�o���S��$C������3��5#�5�Z�/���F�\{m&��k\��]W���q6���e/����T�����9�e��Fu#�?����r���	�l�v���F��c�!���y���)�-r���������� ����$4�����NR�9���2>��<�����o�'��\JgJ)M>�����q�4B�'�e�E�	��$4�,�����y-��(����Q��U���������v���$��W�^~�H|�>Z��S�h6>��K$�����S�6�"�m�����GY�����>k��7���~��$�r���onG��K��m�QLj�m�N��t�(��W~;��N��S9ua�,����{!ur$}�2H!���,�eh����3��P�\`H:)����H�?�2sD>ER=��_L�4��Wv����#�>kN)�4�y**�����(����kH�Z9+RWK����FH�O��c�&��@�	�$48)�����1]����VngHvH �V���@�f�J�B�~�O�1��
SZ�p�D"
TZ�
o�}��U�e_ gPV�*s��M�wd����T��k��"�!K���m�2hi����\���*;'����KA�9���>%2���/M*Q�KZ���\(�k�o�I�VV�6ys�0�b�C�[ M*������1��4����}a�P�d��������N���i�buRxh��	�^��7���;���P�6�$�nXS�\C]B��M����>��S���'	7�b6���j��>��U��*�����T�KP�����%����|`N���~�c���P��3�[@�dO0wud������H}J�c�����L���T����@�t��a��69]���\�	{�����>U�LY>h}j�
�L~�UI�\�U��x_�����)�������������b�O������l�����d-[�K�o��VFwu���"�1���\�<3����8�t�8J��}��$J��sV���S��Jr��;}�]j�������|sL�����3e��<���>SzG)_J���@N��-�xb�#�Q�U&M�z������("%�0:��x�d��cq�����e����,��;�cq}jph)?�QW���G�#M����< /e��S�c���`��������}tv��'�� �r�7\&9��[k��
��k��m�T��N=x��,|1r>SV9_�E��>��=H>9d_1gaD<J�l�#��e
u/�[���y���v<j�r}�L�4�bFL+�NN��=��OG�GK�����X�����*��O"�G���W�L=��&�gK���#��\USWf��s$�eL��7�v/���6�
M#�Q��s$����r����8N�w�����;���A�W	��
�9r�GMV���#�Q��'�|)"��GUu��\N<*]ko�*��W�����_�D�]�t��ev�(5�����
�N��(�7�tP���m_�����G}E���!����8����J����>�Q*���\E��&uN=V:|��M�����Q+I�G�<���DN�����T��Gc
�)*�,�����[��S����-l����G���Q���U����u�����d�L�-�Q&��l���"��3%:9P&V��Q���<��TV���}4�or�������.��v?Y�_l#��m��l������aHn<�]����`�v��&F
<ysS����z�8E����S�����M��+#�T>���eb�,6�:�� ��$��Z�8���3��9���g���f(�������q���}3������~�,6<*X=Xw���l�tG���JV>����F�N��S�s�y�����
w��~�������_�k'�G��p��~TT��W/����_#��e���A^���$�������
L���-E�K<jT:��'�G�W�0��Q�����}���"��:s���Qv/��������iz��J
+�����u/3���{	�[1������m�lv
]��m��~TR�!}r��Gi��Sr��aOv^��tD�#����/�?M�G%�F��R��oa��(S���#��5��c��T�!���	����9<*��aN�KJ]����@p�x��k����QIqh���QVW�H�m���F���1��7���h�J|���A�/�x.���o;~azZ����:w��c�3�*o����-�D>r�o1���c�G�V}!�AK������w��E�>e�6����}��-e��R:��|$������MPW�W��2��J'KY'g�x�����b�:AN�,9��^�kz�{~T����)��F���pV�Q�Fj�Q�����/	�������v�6|�Z]X���o�rJ��Q��2��tcCio�> �W����?j4����M�����	�QI�/�&�-�Q�U;��-�QV�8�7$h�'��z�.�Q���|�L�Q���%���}��&��|��4v��3�������o}��!� 2xTP8��["�G�^��75bS����F.��K%�G���o�@<jP9Xg^
�������T���r
�ZS�Fw�?J�����M���(�.9��c8�I[��*M���j�H�-����W���i�z)��7�����-�����{�}D|�F
+���R
[�o������mN�>
�������U���>�Q��NB�����}s)����\������0-br����E���g��eb8t^@B���)i�xT���T�~}U���1<dd@������3�l�3�Qr~�>Sv��#oI�e?J��u��2�Q&�E��x�du�$�z<���@��(����~�~}I�P|�4�����<�?�>��?]��=��y)U� �J���8�I���/nnxT.V�Q&c��2GW�%���`�?H���__�bu6��QJ��{ak@��?%XA�����F5<*�� �7�AN-{����o��f�d��H�WnxT�����x�~}v����G��m�Ar��(���y)�^���O'�
��0c�>��:�S����|s�G
��=�{��[�;9��t�.�<*�|��{�o�P���S�T$sll��m��������<*?J���@�~}��[__�x��t6m��3N��� ��8(+�'qv~T���w~�d��c���e�}W����[Y�����O���zU?�x��j|u��QQ��57<j��l�'#�����b~r��}�{O��Q��	`gZ;95j������6���x6y���������x��a��~G?�6��(����-�QY���������c�N��?J�=|u}�Q*���QV?6f�_�d��%2x�����5�}�~}f?iz�MN��OY�����	2� 26u�#��hv?*?Y��D�M]�	���c��2{���(]�����CD�;akt�O����e��X���Y=�����z �<.�Q
�V8!������1w}&��%������Ad��Q+�/l��c
����)��L>���6��^6����k�fk��r�N����vy�����V<m�)�F�����������*�2���k%�>eS�3����'i��y��Z������|�0�GY12�[�����lf2��f���������7��(�G��_������K�Jr�GUU�������0d�����)"�������������Q$?VBg��k7�.��(��O��~(��C$��]e��D�!?���L��%v��U��
�QE��2��f��A���wxTR������)N���U���f�}�w����<.�O������l�G��q�J�Ge����c�Q��_�@�>�g(�1*��o�r�$?V�_����\���t����@�>��x��(�g1�:���4'���+��o��Bg|[�5[�,��e��$��x�9�����,�
�A�G)=������f�0�<&|���}K��2���6�|H9%�@~���Y�xT���O�2��1_�(=������w�]'Mz��Rq�y:fe�u"����(f�^:���&��~��g��(��|xT��Q����\p~TT�����a~���������u[�"��)W�uv��>5d����z��k�{��j���F�]u�,�2v�O��Mr�����lRfo�NN�:�-MN5W��3�5Z6��}�G�x�{�g9]��",����L~�N0���(����d����q,~��~(F~��)�QQ������(����A�Ge��G��%������N�x����~K�o�c,~�~}*�����f��|��S�&Xc�!/e�;0<j�r�L!?J��:�B�G�o����)��,{��t8?Ja�>l���75sJD��*�������-������������aw����n�����������������w��n�w����9=����_��������|:>���Z��?���_v7w������i�����x��������������oO������u?�vuX>
h�}�-�?���>/����r
��_���P�����~����?,�r����rH������o����a��Y��rt?~	2�������v��y|x8������k���j����_��y����������������W�������o���uSo?}�y���_�n���N�5����ZN���[_����������
����^8/W�wC\i��
���������?.[y�_�����������:_?ew��?�����p����"���XB�4���W����������������o�H��������������[�j����O��}���0yx��������~Z~�����Gn��.?������������o��������c����
����������{����B���f���I����qs�����j\����8��z��3~�����.��p���z��,���y~������y�;�����O?���w���p�������7����Gn>���{�xx�=<�v�?n�N��K�?���n����������>�>}]y�(��v-����'�����?�~���O��������_�Z��������
�d/{�5u���M����73���u��0���C�V�X/��J��O�1t+T�e��W���^����X��
k�t�!�z������O��<����z��Dr|/^z��!�]DZ��
R�=}[a32�+d������
�\A|�V;|[B�k��7I~��Y�w��������,F��(�n�V���E1�����"�e�QMj	R���g=Q����gm�%��C����]j2.�d)���i�_�o$O�3��X$��3�~�5������?Kg���5�GF����3�*��P����^�
�9K�JcK�B�.�E�m	I�%�+��s%�L��`��K�Y.!��
g���K���%d�C�y��,�kAA��(���<���!��y� �B<v�_��DP���>��!%�/�wi=�BpW�`M�

���`=I�t�Q~�pE�&����+��IgIs��X��������G�}�,�Bj-Bj�3��,����
Mw�Rk	�����nK�4�]d|#��3�,t����F������.�Y0b�y�X��d�����|fb	F���^�<V�\��r	���,���%�rKD;�����RR��l(>V-��S�5����4���e'Nci�3��xf��.MwJ���#C����8}aU��N�!���6��Ejp)����Sv�SK�[#
����>�I�GxS_\~f5�_*q]k��2�K�Y�Z��^%�uD�2�9��`��$d�������������6u���;6�s��\�%.K���s�����������f�F��;-7��F�������E��������fyl�=(\����s�T��-�MwN�!��M��x��P.�	���Q�C�eFi�/[����
#p�F���o�� �H�����h����7���I����� �S�;k4��;c1%���IgUI)��4��;U���L����QE��u�3�N����rf��UH#?���:CT���gS���l;�&F`n�)'�����Z3d��M��I>�S%b���l|��4��.��0@\���s���Q�t��MB�l(?�/M������4��dtV�W�YCu�3'a��R6|q�Y
C�y6r�$��G��w{�������`�>�m�/+���#�G�2F�6@�SB*]G�m9U�Q�k���>9�
<�J���6�����yS�����W�^��'�`}�"h�R&�)�^�>ek4�����3��!�o�g �:D��-7���H_�����&�a0�>�[��dC�})Wy�N;@�4YA,��S�7&�rB�Tys�gx��8$�G�������$��&���`��������r�[
���lT��I�2�'o�!J+�n[�w� �"{��7��hr����0Fh��W��52�P����1����
������+��#���`i��n�sMN��q�^'6
��q6��V������5��
��P-?��)�S���H��KE��r�Q��+�z�L�N�����) LE�l��;�CL�"o�aL�Og���n�����*�e��<��'�P&����o��^� r������6���XC�.�br�L�L�K���t�,����������hr*{��e��M�|(
;��*��=�&�I���8����dM�9�`���g9�Z��6�i��m��O�T��H>C��������>��Z���<��r(��`~aC���r�g_�Tt��/��Td�����O����[��6�i���dr�
~*rN��/D5�i��>.��@�p�a��>
�c��1 �E-:��������BM�N��r*���0T��1���A���V�S�?&UT��n���y��(��]0��aQE����������7s��6�]u�3Ox�6����Ge_du�L����
�OJ�U��`�^J��*��I�9�Q�*Ly���{�
�Z���}�l
�K��_�MU�$F4<����Jlx���l[>�e�@�WnzU�?��y8�K�8J|�o!r
x�����Fr��SU�+�-����2GOx�GM��@^<J�9���������L������r}���|K��?b�O����4MJH?���Q�*az��II������m��KE=v������Z��"�Q�f��F������C�H]�Q+K��(�r[1u��#YO�[�C�	�}W�� ��(]�+}:�FW��m��
N�*n�a���j��,F��q-�pYb����������3T���xTP>���>��UP-� ��(9�O��u`:�*��Bt!R���l�'�\'�^����T���kY�����5Wd
�;��F�"c�w����cQD <�G	~:�2����{)`�>'���G�O����-�QU���ox�r�R>$��}KGm�(���GE�����(3o��K�G]�k-L���"�Q������QU��r���d0;����Q&������W������}�b i��> z%������^�P�����^�*�f;e���0-yD'�]��v��0cW�r�>�W
;|5��P����e�)���QV�#!�G��t�Ab��L]���_gk@��l�A���A����gk@��bK�����I��eou���ul�f>�������:��Ge��a|q���F
	k�q��|8rD^��s>(�e''.g����8�c�G�������12�u��B�bS"��G�:�-�Qm���s�qg;F&�XjxT����������N�� XAjxT�����}@�o�����F���o!mw��w�&����QE�n��X~�����`��}U���Q	�Q�},���K=?���"���/�lv~TU���pH+"�����N)tTS#J�����e��
��QY�K��5�< �R����	��ba�$������fn�}��R��u���,��u�B~�����9����]�|�7�b1bo�Qr����6`�=��}�7U��\���}�����E�Sg;m6�Q���X�#%�*a����H�>��fr��m�*� ��D��w�)]����@�`�Q��Q�qx�QU�����.<j���:��(9�[k��U����+�U��_|5�	��d��H����T��W�24@1�6����(9�����JW��&����9���p
�L�y��������|��
�V!?*[u��J��*f��}��Ul*k���~���0?�tr��V��f�u}��?�
�O����H��Eo�@�f�.�7z��<���rXO��e�F��XB~��1�k���j���3�]=�v�%������D��J���>��
�=��'��L�(�q����|/�[�%����`I	��I������q�#���x�����Q�������q��gF<*��>L+������X�Z��*�&1v/`�-���:�QI�Q�X���r�N��� G-x������Q��N��o2rl�L��Q���}�
	�QV���sS��6�Jv���[](I�V������������<j�u�f��o���>@NWT�R�L��s���y��G�������Qk�Ac�ys��OaZ>_<*����:�x���#�0y��:�-�����|��<t}&��������r���%C�o���R$���G��p��?��t^��W!�M����O��c�
r�>f�r
�������1���gL�`kt�����d��T���__<J�1�O���3�����a��x��$�}����9��(5�J�d�G�V�Rv/���m�}������f�&�@���^����(�!�/�G��:�:�;}j�������Q6A��dq��?��bk$��Rk�=9S�G%��<.�S�G%�o�b���Q�d�x��9��(�?H�uv�q�:C��A�2&dg��_�W7���V�P6:	��Y�f+�U�|���;95d��9��f�K.1[��Km�cl~�����������gJ����A�����x�������������Ge+/���?jVy)g�x����2Fb���I:����Qf�����������3����a���5*�!u!����7��g����3 �x���t���G%�"o�v���x��}����+��X���F�7�����������*;��d��7Z=D��<�*����T��:f��}�v��-�Q���W���N�9G���6�5�'5X��$G����3A�>�Q����@~T2{�9~T1b���o�6���d���UG�d�(�.����G�A��"�c1!�Qf}2;�N����}�G�f����9,O���p � �xTQu�N?��d�Q�fe��0_{����"�v�x'F�9S�G)�U�Tak4}:*�P�u��Q�� ��Q����Z���(��p4��q�/
��&����2trj�a������n�dr���Q������2���./e�[�-�7����������e������d�.��S���u������o w�z~������9�k������~T1&4�z�x����j
���V���G��������^&���������W�e�f �X�~}V�u%��z����_
�Q���E��xTVym�})�G�u��^�e�/�L�E��2�����iP9z����d�����$�v��;����<��-��A|�
,���3�|pA<����:�����Q{N���`�!:�(��0���}my�[���$�#~�QKK�\�x'��2���^�L��Qf���q~��_��������7G�m�x_��w��
��Y�������f�b�^rGg��e�����Fk.�=rW�g����B��q�.Z��g/�8����G-��1�c$w[@N�)�r��G��xdf��2������������m���������r�
;�or:M�C����$�5�3���*������^<J������{ixT
����������9G&�
����A���R��2�+��U�_��;+���J��F��f~r��j�d����GU=SX�*!�����f��_���������D4<j��p����("�x�9���J���8�����gr����j7|5h������v�5�f���Q�7�S���(�{���e����J����Q�/��S����N���gJ�L��Qf/"�}����(�����D5�}8})��Fs�/��GUkf,{��Gek�
�	q~�9k�����oeN��[��#�YLx�������5���[��O������t���;}�tx�{������������������WO7����������v������������>���e��������/������i��4��z�x<���_����?���O����u�������w��w�=�m�O�����������YN���K���J��������[>���Q�_^�Z��p�y���p�8�~<�I�?z9�����>��n�w�����������?�����l_-W����P�6���������������W�������o���uSo�?���P�:�Y�/�c��k9���n�}����C�����0�����*��Bk��n�'������N����������[��/�l���c����� �>}�y����B]��p���z��Y���y~������y�;��;��O?���w���p��E����7����n>���{�xx�=<�v�?n�N��K�?����n����������>�>}]y�x�����?��������W��t��;����e�E�}�������o@'�X�T��1��,b� �I�;��NO���:�s��<��
u�k�
�����=�$q��v%��Y��eZ�C�Qm�
�d�_����K��������~��%D�Ai1�.�z����Z��C��x�6�o+d��������/KQ���/'������V)"&1�7~YB�.E�Ml�n����q��Z"�w1Wy�b��,Q���s;�dj=�b*�F����>�B2BK�.�
g�T��dX�Y:�\K�\����.F�qt�c;�,�B�t�9!6��gK.�.
����#��g�t�uj	6��IgR�)n���,M:�|�bl�H��Q���!�7N�8�t��dHg��W
8����(_�Xbb
��"�4u��Wl3�\B�_�
�Ig,R���;�y��c��������������(ZyS�X{4��Y�N��JMw�I�����&�QYv���������%���N�q�{��,���b��8NF>�b�R.��J�����S�zYk�&�S��*w��=m��)"�TZK.�����
"�/�����F��+M:e!��V��F n�"���.J{�ae1�,��#?�U_��H����B�&�5�`�,`����^I]����NF�C�M:�����d����Q/��;T��jH'�Em�����"���v��/HB�&�#����j��Q�#�Q��rj�;��2�jE#6���w������$7��s,�A$r�����J��q@#`����96�9��W��	7|l�)K�6ul���
>6����t'�EA}�E���I�[��/9����Y��A!f�
'�}���m� >5����������y�����t�BB}���bJ�,K�Q�	��&����,F��n:Kg���Z��@��t�A��,�����e/R��]��>M��*��f�����v#���7B^�|�����K�sh"=>���72��H��RKxvn���4�H`n�9(�O>3�D����X�p}��.U���F�Y4���r	R67��U�*��h�e�A�����9#uah�)��������/-o�O�����i�H����|���C�_����x)��CR�8i�wY��������d��N�n�I���h��g�B��V���������q�Bh�Q�V�L�����I}��U9;H�v��+<P�:����e�� *=���P�k�Q������[��$�\G��UrhR�|s�<�;9�v\��

B�����>|�aHE'���e�hr��y�D��O�!��	
F����~��F�${M����i<c����a����4+[D����U��-9���og�H�hh��!7�t�g�1�������:���V6@��n��`g���4JY�3��������5

SR<c%c$G�T������h�c�<V��F�{a�i�t�6[�-[���1���%9�D�}"�-�y�n_�aK5�R�9}���l��f�S��-d�Sr����tY��� �A
`Z������6��q�l�������L��[�v"w[@N�<�>����#tlJ�m���4��y0��L+O��$�y���i�N&>LC���u�r�d�B�/+���Ot`M��0?��MU���	S"
m���3��<*��i�f��A�/�C����YN�(�X�>Y��O���3��C>�Nn�S�:,���/����]8&�cF.�X69���H
sh�S�-��������n�-�T�`���������1�O�t!�"����>�w���3�p
h+
����q��[����S�r���%���5X%0�S�K}Jdl�$�g30����R�������Se��y�M'������P��u��MN���PwK�Qi�� �F�S�G\�9������5�VEt�QQ���g�J-�@z��G��-#~ag
�T�5(�@��(5Q�X2KJ����F�&�����Q�q��G��,�Bb�8d\c���3-����R���=lt���O�,�)aU��;LL>�?�r�����G9/C�����U[K��x���{c�L&u/jD>U���k�x?"��b��7xT�����)���U=��/@gR�<�b��|�h�W�}B�d���#���FI�MP��3%qelxT�LP����kx���("d�h�tT1�/���GUU�#s��[�R�?_n+6<jm�������~���Q�G��@^,:��{>&5��	g~,��?��s��	$�d%���)T�M�/t�[ 8%��C�R�(���[��e,�l;S��Wo_�Br@rJ�������$����~���������X��V��&����@t���f�4�*eL�c�L!�W���9�o������q%;������9�X,�I���b8�(����X����|��'�
���g�7���*����E��d�&}�n��=����,`�M|����*���A�X�pS���i���_���B��eHn<-�;���O����
u}V��#�Q���8}:��d?@��-��J�P� ����b��5�?5����n��.|�A��b�(fo�R�W��%�$�I��Az�E����������yK��5<j�����&��^j��fzl��S#�����i�6[aI�LAN��
R�%g\i]�z]@%c�5��<*�&G�:�Qf����E��T7�#�����;�^*�G����z�x���
IQ������S�O��'ys�G
������M��9������0]8w�"�7Gd�(3��� ����Pk�3�T�9�>Ev�j��=����v�W"%�N� 5Y���NC'�F^�4�A~����F3�G��_�}@�Y�{�n��|����>�F�o�����m"s��|ajx����&�~J�G����nC�O
c���R�x_��x�Y�Ij������"��x�drhHK$��FK;�4�R\_����A�K);���}�iy����mL���;����� �V����QQ���t	�Q�Z�At�Q&'���]�&�"�E<*)������S�Y�5FlP����F%��h����u}���(���U�K|��:^�v�M��	��h�@L�6<j�<|���fe+��������:S��|�����^�n���8jR5�R���~TU��N�~�7�N��?�����]�o�k��mx�8����F1?*Z��L�R���5Z]����xTU�q_�T<J5�tr�S�����1��u%?;��g�"�-�*{s�G��"uy��G�^�J��|U�zK���M
y/�G��D��2{"0_�(�����G����(%��7�Z_mq<jTz�W��j�gb[����(��A�A	�(�/$����$�'���%��z9��Nx�:�`�	�(��S�A|)��F�*�@��(�!�m~TT~���'��sfo�*�[�r:v�R�����(�s�q��QEqh�D��Tz_~=��Q/���G���d��b���>"��u9���?��a��O��>�����/e�:YoxTQu(
Kb�}{$���CA<*�*�h'�(��-��|�7�O��em�A�Z�S���z�)�	[����Ep�x�����dl�gud:�QAq�}}��Q:���%��G���x�K��Y�S'�#?j�1�3o��2k��>��+9��Ms��o;L�~<*H��\���x�\�����G�CQX��}&��;�����������n������c���x��
�[���{�a'��U�/�/�� /e�(~T�������R���������W�{����k������z��b�QV���2�Q&w�p�3����#�}s�G}	�7tP��~��1��5�Z_}���g���2���\l/�8c�>��s��G�V������:��&D��RW�����Or�u}9uq����~�����,2��3kGI�CF~�U�G�x'V�`��h��"9�x���,u![�J�:i_N)?jR�3d������7���5��j%�o��~(�?F��������u�^�
�\,�����b��������������16i���&g��i���c������o	��q$��c���3��UO_]_<����� ���zm���_�����G��Mn5���G����w�~}V��/��K]��7��/���D;�O��@������:}m����69��x�������Ge�����tF�`��5�RS���GA��<��F ������S�o���!/eMfCaNT����Ad��hq���@=�����%�c�G�y��5*�@�)�sS����_HO�<uv��E@�v���vB���G6��|Su��7x�����2�I3�Qf������E�����(5G��?<��� ����x��������S�W:�J�GY���:o��N��Ia|��.��S�Yu�cs��y:������#y/��
_�������6���>
���u��M���QW��Q����2|G�)=�.���'u��QW������Nl�0�Q6W�}�S��v�������:9#�(-��:� /e���}e��`����2xZ�L������+�~��#3����P�m(0?*Z��L��_��F����x�������?��/}�>�&�}KBY7����g�F�r/�G%U�����4����.��o�:Y}�[�S���lT���R�n�U�wKz����������=q[����L�<��_��N�eNXe��(������G���w"8x������m�rH�Q��������z�]�QcD�\��O����?*�� '�e�� }�����_d.����_�U�J��R�g��K���QO������~[�n�8j[�2���j��%��R�<����}@����hx�����
�Q���D�-�Q�"��(��`:�(����;�������A�����,�8������$�R�5I���F�����p��Q�^���/�GY�'�=*���#��X�~}���d���U��;�S�����G��M�9�e�z)5�Cb��Lq~��i�Z�xTQ����@��Qf->�u�GI�D���~���$8r<*�:'��?*Xo��>�QV--��u���'g��(����:���� f_���M��G<J�}ue�>V_R#Pp~���u���GI_��w�75g,�}@]�������`��&2xT���`�e�/g�{m�Q�����uS���;{���T������������o�(��Id��i.��/��2{0]xT����������is�}|��>:�����xx�������mx�������������gnN��w����������������O��������������������ll�=}<�������?n���w�����������~���]����f�v����������x������~p���*�����~����?,�r����rH������o����a������rt?~Mb�r�p{����n/�w{���r��`�g����W�d1��0�����oO�O;���_��_����_���K���'YT9
high_concurrency.tar.gzapplication/x-gzip; name=high_concurrency.tar.gzDownload
���d���n]����k=���
��1��?�e_7�0h�.	��j��]of�Z�+�\c���F��F.KJ��32"2F�?������>���������?�����9Ws>��^^w!���������O��zr>��w��<���������Q�}����Q�������7�������_��?��O���O���_���q�GII|�(��������;��������������o�g�x��/�������~<z�������������w~:=<=}}���������������������������������>|}�vz��|z���o��l����>�t�����>��������O��N�-?������_�y������??|����?������>���������������o�~:�;w�����qF�]==�r����x��;}�v�������|���N����'>|�X!�W������)�+���<^]!���CM����B������P�_]"��(
K��/��w1��K���/�Q����K�����H��������%r�K�t�B��D=/�B�|�z����3��{��/��
[^�'l�+����������j�K��V��%���Fn��^<��Z�]���B����l���z��������J���8�gj�\nh?u1����%~�g,)��%�]p����� 6#���s��.!���a����p��%�b\w�]�������~.���a?���/Rm��2��D]�"{�D;/���������a����"�/KD�"���p��_�/vq�H�~T�?�H���wK4��0��O���]_$�/����D��8\�_�H}]�]��p��z<�jZ��u;�g������>E��_?f�l�����pO!B��:[p����������/���/��]t��V�"5-K�~�)�Y�8�'��%�-�=_vQ��������.Nj4���1[�"����5N����������V��"�a/�jZGt}�2�H�^p;�u��g��G,�G��Ib/�:cE(:x-�l���w]��/��%�Yg�t9�m^+��A�U,!R��u��A�O���4��f��p`0-3w�.�Y�Hs�DA4�n�|�+�.��h}�*��t���*
��b���^��rF��P�V2�L�������*�fdo�Z��E��l��x��o�H6��u"���x��KXd?�6��r)��"��^yF2��\w|���d�Tz-����=�)""{�~������x�"�;�q��EV��Y,a��;;r���]�u��P������)f���Y�E�1�n�������w��P$�0��vQ�r�_�K4��iO���V9[g;rx���Vr��Y1���.�E_�y�qk�] ,{��w����IXgis/�o��z��u�q�[^���� PgdO�G�a��M�z{���#Gd�Z���CLK���|g;���uFJ�n��|g�L�.�"�T��*}'��H������[�����k=[gw	�C~�����u���q
g���0���p��3"*t��S��)`�E�Yg�n�|���Ygd����x�����a/(����w��[\N	��Y;[g�����b%|g������bZ�uF��7���a��f:>�g��9"�sa�� ����	kLu����'�;[��L�H	t7������~U�6�^�����E���m	&�.��v����u��:^����^����|]����}}
��x/�%\_�b,���^���A��(%BQo�u{
|Q����D��2�=�@��U����)/���������������z��1����0?J�+�v�2��������i���(�q�<	��E��'�;�+u�n��P#�B��]h��%Dg��+�������
���=*u�M��{g��X"k���U����� ��~�5�N[��6�;� ���[�oG�.��#	P�{�S�=}X���*x��zH�@�!�g�������8���n�Q�����`��zC����d��Z��G�y���.��?:�m]�	��ETb�H-dT�����4�����na�.l� ����%�3�0�"���|T}[�J�<����P����H=IH�icN�1���?���u^RT�a�42����M��0�~n�Q�sQ��e�[5���q�����H��������
K��-0�Xc��A���I�E^����.������(�Q��'_����)
�37M��3��������p�
U}�j�Q:��C\�}4;m��]2��*;������>�y�F2;���&g�RQ��3��\9�c]�`
�'�tX��m�Y��dvZ�^���m1*Y~ZR���F ��q��w�KP�1�4��7�����R:�2�@����a����<Y�`��7�dv�V���s�����q����O>�K)���h}�s^��g��x�XW��P��k��4����N4��3�t������������?
��]:�� �2��s��z����lv��.��]BR��l���(^����?������q�R�>���zu^�H����wA�T�X1;u�������i1;�1�����K����rr�J]�1��w1;`��]ZYs:Yw8�M�~��n�	��7��8:q=�,l�s{�R<,�����(��3�t�i�k���Z�3��b�
�6�6�E��?cN)��XY��(z�3��b?��z^���UtF����*�����__�Nk��yi��C��w:�����s���x:������T[��X�g�=��*�~E7�S��{��3WQW?���k���4����r�fv�����J;�O){_��}�w9�i��^�^���D|if����5��H���V�S����m�����F@�?cP)�������}�B6�3�-|����g*���m�B�.����A�I,������r7�X�������'��=E� �o�����ynq�T���J9'��}��%�wq����CSk��4�w)�/�	������n�`c�����8���"�:���
�*��[tW8�[��J>R���Q+E��3;���Qi����]�)c�U�J��9��L`xT1j=�h7���������RE���n�il�bk	g<�8/�q���w1;
	��f�rO�NSm</>Y���i9�_^�w�$���G��2l=0wPd��3��s�SkX�o+����Y�~�|�f��&~��]�����G�=��pO�,���TjF��z~[a�g<*��o��P4j��cT8�Q���\����8�i=B��]
Z�����Ggn��K�:l@�?B0;=��1�?�x�ac
�e���]=��m����(�Ug;m#__�\���-��������t����G���:\PZq��5��O��Q�U��#%����z���# p�p�lr�	=;�D-8Lj�c��G�jJar�\C�����������M�2�]���|}��>��]��Io*���E�
�o�������DM:\�i��]�j
����0`<��;�8���z����O��8�Zio#k#9�h��G�F��d9�
��Y�[��j�|�AY47��sj�}��qE];L�S<ll=/��� �.I#������tD�T���45��a��R���$����.I�bQ�c;5��	6�G��&��FR���f�������c����*�5���d���Vun'��frq���l�<��{���5%0�09O���'TR�HO-R5���I�t��T���o+����=�:�J�C�UQ1*_�����;���e(�_�o�R��=Fa2������jF}*51V�����c(�7�{#�2�I���$��;���Z
�T�>������N�>z&Z�����;�d�cG�$�0;-������u���X��'�������!	�5��2y�9	��U�&@	F�q���Z�z���N���6S5�:�t��P�C��#B�����v�?�wA�?���mR�����������\(
�@}L��K2T W�=F�N����J���bO'�E����_��v�����(�6�i�y�w�a2������d�D����5��U��wA�XU��6�L
���|~�]�N�k��E�j?�hQ-{�Bho(�0yQ�.���#f�"�����C�7sm������$7A�A}���>i�����w�OC��@�xv������Y��-��}�S��:��U��}RK#���hD�f�q��@�q?:��e�����F��G���o�~q7�g<*��
��u�Bq���5�Mk�7��^�IG��w��.���6?����5�,�Kt�d�������]Alp�d���'?*g������hx������ r��g?�+�����>�h��6�����*I%��^�e�
�}%e�z������ �t���C���U���G9��x��\��
]3m���F�6+yWWkLJ����f����'Z����6�%E�G�#���@[=$q��F����{'?��_��]]��wix�J�������=���_I����G���5Dm+^��6��O�_7<���[�R�����O�9S�p�����D��([�v���F*������������i��O�o�Y��#�����:9��8�-1�d�����S{j��T#br~�1'?�Ha�'�~� ��8�Q��3�=U���Q�gr�/�
��Q�y�}�������J�C���U��8�Q��\@�������:�~g���0<�G�q�y��p��F��J���������9`���k�?-�^]`�����4���T&�?*�WP(���6g~�>����k?�
(��:�I�;D�G�!$��p�����G���9k�G��b�(��o�!��U�0�Qa�h�O:da����.�/��7P	����r�\��^k�]�N{{:����sL����SJ`���Q/�wr����7-�q����z�������D����=��5%p�p'T����T��3�V�F�Gy_�o�c�8/��:n��{��gU{jv�7]�
�O6<��xS������t��R^V�B�G����~�DS���7�G.��}h"�%E�G���A�s��b�(���x�p�h�(_��`U]��Q�H���T�S9���|�����?��F]���D�Gy�_��y�w9�i�ep����h��0�Ho����C4~T�7�S�J�[�G�WJ��quq^�<�����UkL���u�.g;
iU�=�y��S�����;�W���
����.
����
����~~�'���
����\J�d�G�h�m<�h�(��"��9`���Y��75w������
��F/z�b������|=����������TQ~��Q�
�<O�9��X�<>rW����X�������A����{4~T�
w���>u�0~T������v=�%�GEy��K�zP2~��u�5�7�{����m����LI�O~T>>��A|q�n���F�r}�F=��N��l�X������F��5D�~���a����d��8$�����q��Q1Q����}.����<�^������On��x�?�&?j���K���#�)
��J����Rvj�������^���b2~Tvy����]Dm<?*�?V+������"�@��T��d��\*������������J��g����qa�^
-���Tp�������b
�G����O��4�Q������a���*�Dp�����U�.��]�����`<������f^�(�3u�K#�:W�K�L��
������N���Jj��u
��&�����>V�'���t���y�k������S��r��9�26�^_
��{��!&����4�c�����dxTi9���&�^�dx��-�������$��*tz����>���^�K�t�kU��8y�������R�vZ:��"�b���+l�l�bO�x��W��\�E=(�^_�w�R�bO
�jc���.1[�b��G�6\��?�zjBg"�^_+w�����Fw&��Z�vXY�</Z/b�f��Pc��tQ�M�G�7K�u{jxT;�����]��UH�G��+�X�S���j5[+�#�>�dxT�_���xkxT+9I�yi�g"�*���# j)O;-���E�B��Zg����rG�.�0;-y�Sh�~�dxT����!"F�!p�G���6�W}�2���E�}��G�B���xW6fxT�t{J����N��QmL�\�H��DOM2<�v�����\�av:������������^�w������2�4z�[����H�G���������i��p?���]����j�s��K��:����AhD$��ZXg����E__2<�����+��E���t�9��r?�N��nqA��W���Q��}��jD^�3��D�
�9
^R2<�%J:wx��v}�6��c��rq�
���:h������S�)������Q���~$�����=���'����o�:�;��N��Q-%�������O����9���v�������+�0;m��yPS5X��^t��["S9��������q'z���Q}�aOq�Pw ���c?��*������`������G�]�A�G�������v��cl��Z������}�����E���OW���v�;�
�:�
��z�Ge����o�&�����4�.���]�-��7�w�%e����B�+�z������|Q��n�)������A��G�F���>���_��Zc��v�Dm+��/D>F-Wa~��q-�7������Q������f���������������^	�,�t��{T�j(���{��_�>bT�R�_��������rQ�bn��P�8k���������9�?-����/jl9L;-�1�T�Pr�������+�.�2����T���Q��n1����1;O������S�����������f]j�2f�^�f]��)�C��r����[{�nq3?eo��]' �y���>��lacq������:s�G�����/�'�;�l�(Q���G������og�4g�.�;��c�S���s��N�o�����E~�Z�S���
�:bTcN�Yb?��G��������e����������lx���B�%M;m�a�?��O<j�`���U��f�����u�m��zm����E���'u,r����J�xTe?����8�������T���G��6���mqn�Q-g>G}��x��Q�7�T��|q�b]�>Hh���G�D?����5�elh7�CpW���j�������3<����Q8���^���6��p�|�Gq��v�E�G.q��R_[�RxT��'�=���J����M���*��l�V��L��������@Q������<�����~�<�Q����5�?���lx�� �S�>G���
��c��KZbe�y��G��}�]a�5���+��������3W.����c�G�!���j��>�
�������"z{����]�{�-NC�S�a��!��o������w���Y���Yw3���E�����p���k��VO��'_]�a���9��S3C���Q�xG�l]�����8F��\
`�jF{6<������8�M���]�/k���<�Q��;
D���'?�v���{Q����*�{
]�,����G��.����z����
F^AT�a��^���o�;\�����
l-����s�U^hx��]�������'?jH���zU������v^�-5�El0<�y�*���7�ee���w�,�Y�0/�����Q�E����c�:R��x���8uH�>6<��DN3z����??�?~���������_~:����/��������������w��������o�?}���������_O_�~8��/O��?k=~��������������|<Xs������������}������O�>=|k��t?���Sq�K].0����������?���c>���.�������?��x�?;������c���z���������8�e��~l���{Az����������_~l��/�7@��w�Op��!���w�v��??=����$����n������z�����������������T��������_C���0������]x�o�|pc��/w��u�������������{�:�����<��w������://�N����_������<����>������q�q����/www?��O����q>��/����t:==|~9I������q�|�������N�_�O������-����81?�������O��<���u�����a��O�>���������wo����??<����c����������.|��H�Pb���Dt7�&���p��~�3���\�������[��-�����N�@������r��P���`����>�����q�KxQt��}j��|���s�D��B��
R�k�d���H%h�_5�.�",���"b/��)���Owu�����h6=��>�u�X�K+.�����k�����,��x��m}�lz�����/y��x,5�*�
�0|p�+�K��r��X��K�
4U�L�8L�a7��uF�}����qT{F�{Y�G�.���y��^_�L�GG�}59M�lm�I���s$��g���B;w���c
5���[_���&�B���j2�?�1f4�e?�K��D5m��D���R`8���^Nx;���W��0�E���S�:� |8��1,��8sp�1�����
v=�����[�u�#���O&����<_���2 �^L��l����h61}��*s~��J�h{
��z�#R���VR����	
E�>��"�/��P��?�8L��z�
'����Z}%�>���;�E�
�{���Ay>�"��"��������c���S��s���F�p4���9/�:'1fv�+���q;!���`�y�V9�����e�����O�T��U4}�I���(�����G0*b����Bg�K�o�\����1��xE�����r�'2(������	q-2�6����E��e��g�9&�a	��j	1�<�'q����:�1[j���yWM%6��� ��"��������n����T<t�Sz���9C���1*����m3$�{��O���J���*J�6	�ED�f5QI��x�s	�hA����p5����"b	��C#�P�_�����MO�R��o�axWN�\N���W�/�����F�����q�� ��$�!�vs���Ds1/s�6�����9x��s^#5�E��������h�Q�?����8����H�m^��p������N���b����x���$�h�������c�`�L@=�.��Q4����>�n0�������18�7R�����>�OB�]�" ���<�5�������>4���J�3q���w=tF��6�g�N����4� �H��I>�1�Y������B����b;
���e�IP�mZg��r�S"�S�u^��!���m��+������Vl�]��;���4N�Q(���U�;����H�-L��s:���Ob	��ZyR�E��	�iw-�P|��1�����8���6��v�R��K+���F�u�8j�� Q��Iw=FF3�N��������B�|U�7����<�� �n��t��U�;�
E��f���������h�w?'�
����=��g����&�:�&�����"D]��M3����UX�����-�|����O;-�4��(�1�m�]���IQG�-���s
�6�&m����2'��4�Cl71�n� �B�|�6����8A��M��~���}%Q��6�������B�av:�F���\&����t�
�</�������=m����1cr�1�����9�7&������M�P�������p��oLN�����H��t8����*�e�19�������TX?'����5f{v���bs��������m�	��������_M�r����Z���v��SS��19�P��*��=5&�1��8Z���$B��<H)�zcr��<Y������6�����j�7&�o����Q��������U����a�$1��V�t�������i����$N5h,��=5&gxmh^���z%��@.���C�L���tC�i�1 �U�j�19}����t�W���s��x�nQ���~���dR���7&��Vf	�QA`���~�\�T%;^��9�nLP_
��Rp�7&���|+V�:����\�����9��Nv��$�G|�92��^�����*�g��T%������)���R�.f���&:�jj������09C��zcr��M1�����Iw��9�P1K��t7����A���i�jd$1���<JP���G������N ��������
��>(	��7&gC�0���P�������d�xQw�e��
�j�}��gL�P�+�V�����Br��!��mL����\�����@��Y������WMY4F2J9U)���3��uj��\?'�5�)S���"����2�m�T��n*�3&��-���N@����qC^���k�����C�y�.T�P{:��C�}=��gN��19�]�m�a�s���%�wi����&��������~29��~�:�s�d�������������@�����dr�����s�;�drz����T�?��}� �����i�T_�RJ���q���[�%������Lqr�����19G��k���aN��������7e���>�LM����L��vc?��oL���c�5rM�.6�iX����\�s��ES�R"'�yQ/�,z8(jq�X�LY4e�uJLA|=��E��{J�,����E����,����x����p�:���V�S
���	��R*T��E�Hh�9�t�1'��������0�����o+rK'��0'��mJ������)���E�[g}]��`��9�T�����S�����}���~LY4u�� ����#UzA��/P���`��n���5�-�Pk\0�=Y��A
~��+�J��/������w�[:��G���/u������G��(����E��<*5���UW�0��E]�����v�0������������{*'�]L(���\���}����G���7�.�h��Gy��s���a�Q�]�W�?��P0<����9��P�	�G7�����J0<�U�_�BX����z�</�'7Q��G���}�oU;w0<�%*��>�h��G�����s,��H�(N�ux�������q���H��-�^����X�sI�t�r�Gh��
�s��Q�=*�
'�t����������j,<��i����eS\Sk�?u��:nTg�QcX|2rEVM������A�d��B(��=\Ma�G�qW_��x����v�C�\��|�����iQA[|�������w���4_t�g�V�?�:L�x����s+�e�i��(����0;��L�#�>�`x�qK��r� ���Qy�a������"�g{^��d���v�����j�i�%o`�����G���#���#n����\[z�
}9��(���� ����9��_U�}����Dy�A�9��_o��z<�0�E;�KR�.
�%Le�J���n��r��,�)��F+��QGv�,j[�f0�E�`V���Q���xT�������]���[�=����E��?�4�����Q��C~�
{��L<*7E�D�d0<*�[o�����G������F�����������
�;��A��C��(�={���GM<*�����z��/�X����"���6�H�M�4�0�����Z0�����Q/�,P7^��R6m������#��������F���c�G�X?%��\��t��������xT�}P.B���-�W!�GQ=���8��!/*O�xT���)�>�`xTp�}��sj�]0<�x+�R�e�5<*��=�������P9i�9��/����M���i4<j���~,�	@���8z���=�|���A!���94<*�ab+m/�����<{�{�E�U4<*6G��}l�N'e��]�w9�in�������P<�xT)��[��G���P�w����R,���S���G���GE��DOM4<��wc����(��8��Q�*�s�R66���0�k�ME��6�.��NK^X�SD>
���^��LpR��?��Q�����+�R��#�XE][M��6�.W�KUN@�z�Iw���.�=J��l�e�l���=�	�1UF�]qd�)E7��Jf���/X�D��r��S����Q�G�&��9L=��������P���~m�]q���]�����Q�o=��w�hxT	�Q_��
�*�S�*x|N����QGh@
����&�D��r�]�=$�??���|�p(�s�;r4<�x���� ���Qyg���>'�K�=-���9T�d4~T��u��r���.}�Kd��Y�}��r'\!Ud���h�|uK�����VC��3~�q��$�
,��$?��v�����>+MG���c���$���Q�f�R�"/��hxT������z�c�v����
��-m���I�qN�������P���?����|��Xi|�RW!.v����!��G�\!����:/S�o���`���w1
�Rt|���8/&�W����`j�G4�R������,z6���e����%f{/j(q��m�.��=[�&�W4�L��Jo��hJ|����E�@�R|���f����iSS%�H�`���q�r�]��M����)dnv:��J��#��]�a�=������1�k��o~�+��55�����"���|��e���&��4���h�}@Va�D�����5(�$d��T�0,$����������?6%P�S�.�_��a���*/4a��
I�� ��t{���wb��U.e�|��H[���zS?�ZQR��6���]�T�.���jw��;��h�|-��=��$������<�~���[��C>c��M^���i�4DxhqJ��R��@mKph�i���	/������K��=�yn/T�:��
�T���kiS=��E�5L��5j���I��)�W
5�.*�t�����%�o;��
��5�w�Z}�o��8�*�b}q�����hj}�0�o�����\_H|=Pw ��kc�:l�}%
?��,
�Vp4��^���B���kX?�zX��x���~���{E�I��O����I�?��|=�^_okO��.J�&��'�5U�?v��%��;rrW�IT����q�n����WqoH���F���!|r2��6&9�[k���i���B��	i���W�~Xl=�"����9L�}����~�L����������V2���85�;j�	�a����!�{�;P�3��R��]��Nq�-��}(Y���?�<��m�G
3�;�OSOI�����Z��{�'1M~���GN��O:o9{G�w	3�o����#C��i�����d�W&��k�#m(X�������~[�\�<S�vh�������^�R�{���d�����s���za��w��l�Ua�q�}G[G|Q��d��z�)�����e�N:�-G��0��O#�+���q��G��>���^��?��c��E����q���"c��Qn�
V�[�wk���6=i��d��'����FYs)���~����*��b������WnkO��4�Q5S�z��#l}N��T��sU���r�Z�\��b���k��]8NJ�	��Qnph�MS�0]�N���wQ���(7�rW~6�
J�+M�����q����2�����mNQ��4���Z���K���K�6=X �Ri���M��5�$��zw��$����^���ClPzJ��Q.�����2���P��a^�l}���J�/��y��7��{�����x��rC������L��
�|������\t��g���c��=�kd��O�G������O�*���l=s
�{���z��^�����Ke�L�H�	�kk?�Ur5���d����z�����L�����U����^2���W���:y|��&xJG �i�[/>z6f���i��]1-Y2~��g}���mxTo��:����H��:N�-;�B�4��O��B���o�����v\�K"/Z|���-��y���`�(��D=z�����7��M�Y���Ca����,l��Q~(��.rm��%�G�N�M�����Q.���:nQ�n�(_6��U.e�(W6x�	��c�����
�c���0~�G�����s}�i����!���N��yG~�b����ke�~ F�Y��������V����G�L0O�����#9V�I�����?���bvK6~�/�U���9�n��y��r�'g�G�N�����z�����VpWDn����gl��C�*d�G�H=�^���|��W��������n��6N"8gQ�c��Q���>�������h#w�}�b?�5F��}�����+������R8������
�/��nV�>�QC�����j?�?����|L���?��s�7��l��#��q��8s��)YCxC��o��	����6?*���B��]�}��5 ���Q/��o���&�����79��QN�)e�G7��m�3��������F�5�<�QC�h}�B.��c��{��*s��ya6~�pd�����k6~� X���9�E�a�����V�	E���������9����q7
�����������3g�����_6f���k�S�G����~�K�\d�2���������s8���� 5&��(��Q��R!T
[�h�@&p�Y+)@nj���%�$Y��x��� ���J.�R5R�EX��� ���$�~AL�F��Jp�&D��bl2bD����nc�KCn�d�l�T�h9�{��$�F<���9����p�b���`�h��&��=.Q��8����� �2V�y1�Tnl�=�(:f#H��O�6L�]�J@� ��f�P(8.|�����f��BL��l�T��
d�$�M�T��S�D(+:	R��	��3�O/R+��2�@�tF�*%��P����0;Z1���SE18A���&x0��w1;�l�!��*[7�T���y��'A�����m����H���o|� UF�w���*�6�T���98i^]�� Ur����
 F���2,�GS�X���o�e�u�m� �C�|�V�g;=.R�
��>H��g#H�V���T�a�
c@j�a�T��i�U
� U]%	��"��s�v��>���8�� U�FLb�^4f#HU��"f��6O����v*�����\;����3�T��2���=5����<@�&�i����0�Q��*w0����	���{jv	��1u�6�T��u?P����j��H��qW�#H���g_�� U#�I�.*�1�T)��Mh�-��S#H�D"��0
���I8
�A!V�.)���(U����B�2��"�����o�0q���O��!w�]L4�e#H�-Fm�a�a�������������/?�������?�������w�����o��?z���7���>�t���������/_?�����_������������O�?zx|>�����������������>}���t��O����?|��������.���t������_������^�.������y}����t���C������c���z���������x)���o�c���EAa|�w�?=��|z�������}��������;>��'}��a���������������|���_?���������4�������x��rw����[~��������������q�B:��w��{u99?D]~wr�����o��O��|�r|�G��������X��e��~�_�����v|���?�rX���?���<��?���������������4���/����N����/������;l����o�?}�����������O������c����~~��4~���O�^W>�?~�z����O�����|�������������?�:�����������������.!����������>��`��b����j�f�*~���
�:��O10g����<�"����/rEYW#.����]�v~�e_��z�n������{��>��|�����%��O1:$��{���.�����+�0A��XB����<���J`;E���A���YsG���fd\��:�*���<t4�SX���,g��#P-q����V���l���+����5�}�zxuE�x�F��=p�{q#0hi�@�����3gL�'���$�ZG���3&�#�����@}(��`�����)��#����3��45�������D���m��iu���`������G��R�7���uH�b�a�Y��Q1/Lj��ox!��zk�SR��%�@�mu$�a����]�'��0-^�<��������\����������EPH1'�����%�S._��z��:���
%����1���&�[���{�/"������6�'�qx��������vF���)��]pa�����"����G���bT�<����E���<\���B��b�s�#�/��B�DL]���@X��D���S ����sc�9�M��iSzw(�L]�0�j��gd���.��^�O�����-��hS�R]NSx,P���j�4����c���J��;�W(�Eu��u<iZ��jXz��b_����!N�I��.�}=C�{$����Q����])�ZKh3���<�C�����4��#�z������������L������S�u��A,�����2�r���z'����+���L�@�@���sP5���
x��
U4����7�/z�k��;7��oS��4����L��5�.1���v �J�g&���r�B�"�MhHMi��Q�nzpq[���`���d]B)�n����r��x
�������D����E5o�{wM��Q��0�{�TW���$��_��"4A�(SStP�V]�r�e������������H%s�ej�$p�]0/"� SO�{z-����ehy/��U����uN��o�\N�������d�:	�L�n���	)b���1�����E�����17��P���*%{#n��H���=�0��+��J�3���6�P����3UD���;*o^?��B�a��}D�	{7��
�)0-"�7��C"�V����y\�#����QA6��K��)�,������I�~�����y����������,��y*Hv8�O}�)���m���n�I�t��Y��M�f�g������0
?�hv�37��SD���sd��G�n�A�}��yC���pGB/������V�>Q����7��8��9���o��5i+��>���x#m:O�#�����1<�z�(���G}��gn�{jR/XE�����!H��-�,o��0�i�_G����{#m��aP[lY����(��H����6]'Yr{������\�8R'Z+l�H�/�1��U���5���A
�H.+A!�a���m����<o�M;�<6�����y|e���������&*�H�{j��p\�(��P��>N����.&'�K�vZ��(�/��~���JqF$�j��3;=�N���b/�8�G��]p�R�c����{��������,�~����_��v�5t�h(<�g�Cy�yP�Q��q6}�@��
��4E�:���c���<��/E�����GtE�IT�
�����(6'�����N�>�>�MD4���B�/���DD��H� ���DD}���������D;%�(z��M���	���)*R�q2��H���q����g��#e�H��E~:EDC�D����x{)"��`����&"zX����9��5EDC�b6�13��2s���8�&"<�.�>���x
��x�n��DD}��s5����h9n]��B!T��pS��C<�e���=�"M�s�{���^�f�Q!��=�������8@�1�va"�q��7����7���.�M��,�3g"�a�f�B-�UuC��_�t]GR��`���f.k���/4�8d�!?�*FU��������;a��S�[��
~���)R7Q���C}��qm�)Z��MD4�M����MD4]u�:��2�������S5%���u�Py�����v��m��z�����Y(�k`����7*5����^���6��(y�6����Q�I`7�DDS����!����P9�r����U���Py�1V�%p6�����&Z�������D�����x���fPTN���AA��������b?���UT�c�h�
���9]�O���n"�eHP�"o�t
�1<*��U����R�������`xTj���W-��G�L��"68���rK����hE
&"ZRCl�K��E�]�q���4?.�s�`"�e���Nm�z��G�1z��4?��[}���f4���H�&"���s��G���*GR����~�`~b
������q_1ELDtL�@��A�U��`"�9{�9����2��h��P�{8�jLD��9H�1�[�1�8�
�[�G5�`xTq�w�J���?
��W��D;P0��a�cO�K	�F0�:��e?J����DD���i=����ex����T�^��A5b���������3�D?e0<�9��_��Z�X�l�-{>���{f"�8�iK�\Am�I���N��}�$�q��&����/�~L���N�����5<�T�`xT���������������
qn
�j���%����%�����"Z(@����G��;����c��K|����G�!���K��u��������T�����#r���s/b�b�nk�)q��.��`xTs��������Q��J?�|L��B�v�3��(���jc8����}���ux��=�=[|[��z�`n��m~����<h�[�,|��Q=pJA��Sy��Q��+~}�3���5��q�f��=��\V���F
�G����qN`����YC)~L����zw�k��+jxT/6X<kJjO�NG�V�@
V�av:�����[^z���|�t`�jHh0<�&D����J�avZy�-���
_hxT/[^�a�k�G������MOC�v�����ZN0<��H_��o[��VO+������p�~���������s��2<�U2j����}���qUG��;r~�g�3u�������R�����k�6�����xTv��=��wu�i���mS9��Q�p����rI0<�w�3�C�+�����[r�����G��"�1J`'��(���X=h����;�������?����2V*�
7m�6��]��M��Q}���w=��������}���z�����O�����}J'����Q��w������5w�)r:U�j�N�O���b��Q}���c][�av�������>����)�zC�B�v�q���!�P��Q}�-���wd�]�z����	�X��N#k�\C�c}�������/�G�#8�9p�����^8������-���Y�~L��
�:r��\�m}(����y���.Jf����Cev�Pk������
�x�R���^(j}�����L����x��>3��w��������.�t���>zGqnQ�V�;n������4��Eg��6��1�)5$�.�����&����?%&��}��O�[n)�Q�_��0�A����O���o[�.f���[�3'�i��.�^k�������v�~��'+dxTB��f� ��������z���cpsO���m�.����X�������G��W@�Aqg��Q=4�����r�������a�RI
q�q
���9�NK`�@����G5�n������G�=�@?��k�0���#��P<G����h����G��G����
j�T������[N'�~��t�#�'������^��A�����{��������35���e��q�����f r�g~Z����T��8q�B��
5�7�y���������O7�����
i�����PO5��,?-~��}4���i�}�����jO'�Y�����Gu;���:s����f�U�����$���E�4��Oc��3'�	q�Qy;s���Zc�O��m�s[�w�xT�c��/�f/���?���Z_�����{�SQ�y���9��JG N<�H�y�C�-���g]j{����L<�Sf������M������������)r~Q��e��a{���}����o�B�kO<�T�Px�_,N<
:��]���*�ng?[/�={wG}�Y�"h��������G�i��-^�Qi[��Oa��*�q�1��Q���� ����0<�f�k��_;���q�Q���r�b��Z��4v+�z�l�5f��Z�Y��zq�����k��bxT�[}}�i��e��
[��q�'��=}[�Ul��������bxT��B�����G�#4�9���������{�J��E���y�uacxT�b6����&�7,�����G�N}�
$c��e�Usg�e_N4<�y~_���� ����'w���f�'/��(jUO6<��F~6�����G-g�����j�>���7��]U}�����/� ���9��Q�k�xs�8�6���5��@h<�V}���J���'�QD�����n{6���dxT�
w�����J�G�}O�'�j�i���v�Usg�X�1WR�a�����n5���(WY�^�F���J��
��[���"J�G�1;~��AY����Q�9��i.���K��J����rm������05���q2~T���#��-���������A�=���Xy��uR���#�@#b=�^�a����1|��}�s�����������>Y�P�����rEG���\cN{J�}u�dz}/�p�����Q���^r:��c?��@����W��9a������H����s�S
P]�����d3��_��pe���T�ux�����M}zfpsL�RO6���`��oH�7�l�S�C���-j��?��C��w�]L`iN~�5���T��9��y>�C�6���v�U��7�h�����8�m��E�5O6������
������Q�_��;E�������9��	\=�����I��Q��iN�z���h�'S����������^�d3�^{�#r�;�^�4�@B]Z�}�?l
T����|�+�������������6�4��3w��A��o���{�9	�����8�l}����5V�]�S�u����*W���:h�[r4@Pg��A�Xa����^�dx�iw��+H6�>24�9xB=���<k��
Wb�)O;-��.����?��HEhd*��d3�^xZ�O�}_�J��\�]�7�K�5,��J�oh�%Q�K6��mO+���'��K�0��Js8?j���6vR���d�m�����z��SjA�NEOo��P��T�����2�C�u|�X��:�e������f�����n9�a��''���h�B�|u���9 j�_�7Nm[�����������#��6e
�P��jvZb��c?���!Q���r?��@�S�J���V��T�Nk��.��Wq��j+O<\��e��6E���CI�G�D,z��V�2��VG7����(���Dm�����G�!����mL�[���h�Zg�q�����s[�?z��m����<��P����(������������GP��5�0�����������yS����#��tM���&M<���;�s��O<����|������w�� ��������������[���������eU�������L\��9;�����'�'��������(��4�GUjUt��L*FM<��{���'�Yt���������f��_��;�*���i�F��\E���x��[����>Gw�<�G
��v+6d������6\���' ��Q���-��=5�����9#"���G������A��M;e�5��@�lx��z&:p�,�:��Q�������_�����!�@�H���(_����T=����������f�G�!�[G�T����+�{�s����c6~�/�S�\
/p�l�(���z���/��������E/K6~�?\�Yp��X#���6�Y���^�/���9�R|�0��7gQ�:n6~T��B�fb�5�^�o���A<[����C�s�w@m+��l����X���$4�������_qu��Q�:e�GO-$�MP�����B������T�bz}!�6`A�-����'O���J�.?*�r
z�5����Q�S/x���bOM��Ew3��,z������>��	�A�9��K����)|���l��Q0�}P^�����B���S}[��Q��m��`�,?*��M�}���;P������n�.�?9?*x����*3����������#?*l���r��Z��4n�(94jO�\�sF�����s~����[~L�?��Q�Urs�.�-�]=��~)��D*����1 �g��}��O����Y(>r6<*V���:W�������Q���G�!��o�}5�3?��'��>Y���G����`|J�:?*��z7��DQ����J�<`������Q�8��
[���
��n����pB�2�^_*�����*�1<�X��������Q90?������J#�[u�9�^��g�G���g�H[7��1P�qv*4s�q?��������l~T���*�����6?*���GP��N��9�S5�=?*5>G>���{6~T*��mgN��
�J��k��q��?j����"�R������@���:jfJ6~T����}"�K�B�������5�������
������S��)k��]����t5iyo0<*7�R��u����D����2�G���q�����
�:�r��D?��t��	���<^�O
�*�;����U�s~T#�Py7�lz}%��Y�K���lxTn9Le�^�*d�����]�� zX������!C}~�K��UF�f���U�?�G��jF��A���Rr�m���.�G���v�������v_�6��lxT-m���+���������`��R�sKN��k??�?~���������_~:����/��������������w��������o�?}���������_O_�~8��/O��?k=~��������������|<Xs������������}������O�>=|k��t?�������v��|�o������?�z�����]x�������������O:^�n�A��?�;6�������<<���p���k�8��G?��?F0zi�x����������_~l��/�����azw|������z�����N�����_�?���������>~���_�������x�?�����������������_�V*��}���w^��9����G>8��/trG)�w'�����}��|�t<��/��y���k���u^^�����%�~��o�g�x��/�>|������<������_���~���NOO����_��_��tzz��r�N���7�����������_���>������;[����qd~:�����_���y����������h���}���������������>~x����R������?�]8��:8��!7r���l���}i�ha�+�P���\�~~�i���G����r	�I/?��C��_.���Wnp����K�����q����������B�	�u;��������2���K{C-$WWh�����e���k4�����!b�A�KK.Z$���GW=�2��D�e�3
K`ex�����A�X���e��F�����{�^f��u	��6`��#y�k�k`[�H���K�vvC��#����K	�>��h|�RW���{!�������jki��A�#R�.f�NW�
12h)����q��Z�C����Q3��/2:_������8�����>���&*�_$y�|Q�*rP��%RY�2F�{����_
����e�V95F��3u8EMB2r�+_@T����n/������4
h�l��uf%9i��!��tbz UI)���3s���h����vR���m�{y~�X�Dp���rq�Q�|gVJMe.�pR�8�m��Yk�!�?H-�y����Q��b\�1?��,��P��Bg������.���_��H������[�6�8�o�^v	�_#}�- �	C6�O���%@������Y��D��h6���/�=q=���;�v�I�V��3E���U��d�y��%+�j����d��8���^�w*���3lm�5T���uw����(I���������U��Ed��T������p���	�I���ul�0pDa�w����Y�k�H��Z_�9�h�,3�S��A���z��cs���q��#��9�eV�G{���<[�$@N��m��z������S0zg���yO��vQ,����	5�&��L����Gcs��q;���R�$�����mH��[�LI(��
!y���J#�F�l�O�*�Bd�u��=����u�����@�)>��:k�b*U��2�$u��p��%�<W�w���_$	�j�Y3���0�6�j�}�����\u�q���f�XQr���g��u��~��&�k5��W��b�ok�lf��5v�/DwgK3�$>��(v�������P�ZN�nZmV�X���5���u�E5>*<�`�Ma��r�C���(��s�\%����~A�$(v��l��p�k]�I�L�A���x09�����8�z*�Yg���&�%
��8��S1��������U�q�������M��oE"���wnu�km���xOu���������P%\O;j Q<����1�w�P0/��~�7G��j�i���;��90��ga^����F&��.������
XI0�����@>�c���nZi��Z ��Y���h��#��o;��Q�e�Q���������.��p������Q��p���`�n�*N�7����o���	�
:�����U�"�aG�*�8����3��w��r�7��opU�$���
N���gDa�{����?2�������tn�A��^�X��t�h�2/+���g�M7UA���p�.���c��'���Hm8����E:���O[g����Ri�j�� �?�D��:GXN}��>s
�5��O5��y�#n!n�����]E�uT�g�����9XRU�����g��Q�M|��&Z�[�'Dx=K�'�Xxn3}�O/�D(� W���7]�
�l�O
Q:�r*�oa��O�1GC�E��7]��*��`yco�(a��k��H�N+U+�����y\T����.�>M�
��HT��Tm�T��8/�N���j��<�4�P��i���N;MB��{����\���B�O5�����WJ�d�R��WV�V������h_�0�!
F���R8�����";Q�V��&Z
�4��}._�}���{����&Z7E>�h���<R)��>�����SM��|p#�����{���mgwS����T��jM8���k��q*�zV66�DC������b�MW9�z�*F{���3U�x����9�u�*3���z��Fb�C�a�w�$��)���{������	�����<v��DT(�/�
6�(r�|���~����E��:U��Q5%������[�EU�{3��o�i;j��7�ft��vPw������������
"@Qo�����k���
���N���j�4��?>%|Y������	�����B'�'o���M_n��UM����G� �_���7�f�e�r[}����aL
[��Lv��h�r\�	������9��B�����G"�wA-8�nb�6����� o����6�"''�w9��8�B����6�f��>�Sjj�7��h?��/�&*/4�f*Z������{3D����(�0�qKP���P�.SUlC����h>��EE�x����s���c������S���dW�����;�Xp� ����n*������uS����F�S��0�����F��-��`����|��SY(�SM����PS���(��hr�U��}SM�*�T���&LM4m1�[S��`j���PI�j+�m,��v������;�Rl	�&�R��1[����nw��T�@^(0�`j�9prrEM�)�����J������LM4�	�xL�����������������D���|�[qG�&�J�����LM4��a�$��s���(l����S���
P�B�%�i���
iT�p�>cxTn%R=
%�����]���4�`xT	�{T���I���DsOj+TU1;��h)GN���A��LM��g�X ��z05�:���S��Z�Kn%�8�i���
H^N����V�++���~LM���_Z�c}�����D������
��'U������1�]LM�pA���2��S���!��B�2�Z�q��Z;�se�]�(r�5�vzd
�O�R�|�Z!�0;
ya�
�S�LS=�/���{[{e0<��|P})*'��ux����=��'LM���uz;�D];U�6����w#U���~k
/����^zV�M��\0<�����t�PD��.���b�Sr�G�H�3_(H����6���~,�d�����?J��Ug��������Z��SS���09����j��g}���2�C��]���WS=������}P�T�i��(y��J����9�Nn�#6����]�[����`x��F��e7������l�6�U�4<�%NS)	q_���Q-6�(������Z�ZdY�/}b
�S__�c��U��Q-+����G5��X�Xq�9��A���s[7<�����������f������P����������Qm���s������Q�88/\C���Qm�.����]��C0;�x���S����B��Q�Q����V+m��.�jC���wQg����z��#F	L<��h��nW��F=F����x��QE__h���~���+���ZM�e��E���Q-���}�?�j����y>���V��wy�}�B�*7������Q�P��$�0��lxTk
xe�g_}�i��9]\��
��G�mS�k�okx���1�����0<������E��������s+���Q�����9U��3�S�~�������2�������Q/�q�'�3gxT�}{�D���{���){N�[���3��S���kD7�t�S�)9Q���"�����Pk����[s�=��O�\n����1<��-�������hxT=���e�]v�J�l��+4�9(��j����T�D�"���*��u2��/���sQ@�/�z����������-[�����R<�5���kJr�(xT�9c92S�<�M����O+��Q���z���c�Q�~��g����=d=��N�/�}!��(x���>X��c�(xTK�b
')[<��h�e�*Q��^�}g�S8s$7�^�i�(.���v��X'XA��O+�-aM���^�R����N�������ZN�����8A��yG��1�?��O�vn���7�bm���B	�w������yTA�lb:��A�S���w[S���W`���p��Qs��A������QcM��f�������S����"F��	�Ne ���N*�g�!a���~��`����E�����:��Q�i����q�X��Q�u�;����jv���-�S�Q�}S��8�����&������VD��`q��Q�u�u��f���r�#P:�����J�b����9��<�����R���^Ey/���|d�7��^�%;��E�;��^q&�T�"��Q���l���3`=�kGU�+��P��1��[��y��o~�IY��`B/�G����C��doE������R	=F�/'�_�
� �3���,��3�"��`��3����	f���F(�A�AQe�� ���/������
���=W��_����������_A)(�;K��H�Uo��]��C���H�A�� g��9��u�+��W��.T��e��}I��%������@�K�b�F��
#��"�7����7��lQ��3������
�S���.�v�gRc�U����D	?�(_X{6g�=,'U�Z����I���,_Mmb�Bz����M����u��Fg�C�h��;���u=��6�<J�Q��/8s��d��h�5�Pu�LH�wTq>�r����%��Q��jO�Q/��QQ��<��Q����F��H���J&}Q��)�\&�
}���r���s��6i�}w_X-X5�R�s��������b������'�Kl�O(�;��}��K��\���`E��N�(�_���"�W]��|ra��(�������\���*�PREx���������B������6�I@|��E���`�R�/��
"�����A>!����L8��LG �^_+x����$�T�������G0�$z}}����"�A�M�������-8�����z}�h��� l=T���:���ocI��K
F�3NQR�>����r�ON����.�����������@jlI��J���A?.� J^������ia��{?v�dB
���D�����tf��[�������"��`�I��Z2U�-,vH���R�����LpN��qb	~K ���z}9-5�����yO}J.��6��9�2����u.��L2��u��b���36u)�!Z&�pVSPjtGq���%���!���Ud_T�/����5�^_�����|a#=yI�������reu�$z}�;�����~L��f�����oE��e�w��ORwH���*�[��I2��V�58������������������b!|�$x�Ho���eZ{I@�Q5T	�T���P�[l>�^_+����8,���5!��l����:�c�a���8xI��z��.��,NV���[��������������S��z7����1���E�)�1R�L�G����0.L�O��r.��<NI XRJ���0�Q��}���V�W}\f��>+�qG����N����B���I]���du��z}1A
��E2$�^_�^��Z&��(m��P���?;�^�� B���b���m52��$����,�g�����Q��:��l���I#��X"|�����+i��{=sh���:LR�>g��1�	�T�/��P�c�I�Q�c|M&�S���i�����Hj�I�Q��QEJb:���,���-�
���&��z���wTf�\�{����0?&�(�"�K�X�|KU;5������T�N>#��%{��	���X�,���=�Q�W�������lB<�Y�z}.�ON�g���$xT�{74����"�(7��U�b~�i%���LC��5�Jz{RS;M����W�����|D�<�Jt7�������.g$5���'����Gy�=�������6���p�zV3~��Xc���l�Y~���������^��]|�l]�Q��oA��/I�Q�p�;�Q��2	?���{{�3�v��
�5������D�<��
��
	��he�c�T�/ ��a�)���5�-��D�+v�U�/G��o8��~������x�|K~T����9�#�vV��XQ���,>���+VV�����`Y�Qar����,�O���#u�,��P1�o��Y�Q1���8��X;;�O<c��'6O��
?*L�tXaMI�����hL7?*����pG9�e�G����-������UC�����7?jS�a�W�$����J��z��+�����b2�6b����g�*�����G��,�f�����e�Gy�{�A���:]�j�8w���/����k(���L�,���-�W�)1�I~T�k�
\
f����F��a=�M�~T��<��z'?*�-�@�
��������2p~�����A
UO�����-�:��1��,���p
jBz�������'l�3��t�G�)g>r1�f�G�(��pM��~T��S�e��Y�Q���+rEI�/U�l��-����e�G�V@��:���89?*�iE~�e�G�P
��o�����J	9�xn+[S�Go�m��v$����*��mDMHbc�G�g���p�,xTn=��B]�>�l�e��F&�}v��^_��5��)�k;��^_�V����<�8o��Fbc��WrK�P���.U��Vx��6&xT�m-���>{��i5�9�����04{�}����!��n\���0�����������Uk����Q�G��!+�2�k<�:��PA���f��k�OW�>���U�/7�#C~����^������^<���:���:�#Ugk.hc�A���Q��w��.|�S����=�^�����N���Y<&x�xF�g�������Z�{�E=|�������}��/�'g����O�����z}���P%5��z}S�
��������}��Q[���_����&���}K�Y��^��.k
�B�]����+j�����E������ml�:�A��7Gk����f�������dfc4����C0��z}���	jC��������h��T��j3:y��G����M����>Cu&�G=�-&v�z}S�(�>���T�/
U��aw�������d���^�7�*�$�R����`��F0����+��b�����^���=���;��rb���T�o�U��Og���n��2Am}[�^�7���)buK��8��Lh,�z}�6�>�t�O����?9�^��b2�@g����X�-j�n��������������������/��y����������OO7�w��_���y~x�|����r|�q���e��?�\?�g��|���xx��psw{�/����>{<^y�����}����a��������//���}N�ux�>@_��0~����1~���X��������s�����\�����?����_?�t���q����x��x������-��O �4�O������w���������~��8�Y�gl����uW��9f���>{xy>���������������o��|���8���������������g~�0�y�����������9\7�Os�{�>���u��������zyz�~���}��{���_������>����%�������o��|>�x��������y}���������|>�{��_�?�~>�w'Gx������o���|;>������t�x>�}���I���<���O�_���y�v���������r�O�r}��_�?~�t��>����~�x��~�g������*}���C7	R��=�
���j~��K����R:�W�I��=����� ��W�$oa��:m�w�Wq��G�C8OoQ��~��P��6��D(`oA���\��
�?>�0|��C�_0��!K�h�i&`{;�f�}]�����`���-�YP��Q,]z#E ������Y��2�b�&1�<�d�Y@R�Zp)iI����Vp)��#�eo!"`VHD2!;'���h��N��,Ru%�P�����XS*&.�`}~��Ql���l�jp9�V	�(t��X���a�#��If!`�0�)$��XdM��.p����C�6[C%�JL%<#D^_��:%���a`�-���SA}}�&:��������,4�:Q��g���,`��_FS,��@qKD�"�j���h�����<�� ��2&LNV��"����:�:g����_��56uu|�k�����)@�����I$��9����0w�����@�&��uG�������;}����ld�
����p]xTyD?�!��RF�??�G��k�8D*K��R�t9FW�i3�
V�*�a!���Y��jI���������s0z/2J�*'����a���G�`c�f��15V�?�����&�[�lD9���U����d4-R�R���#�r���h�����{kA��J�6���6�	�R�g[3J�
J������!?B�l&d����f��p�x��rI���PA	YT��CV���J����l�}��[�p-i@��>5��c�Q�<B|g�h������(��99�P�� 	g�L���AX���q����Gx�w*9�B���(�@`���Y������U�g�A����B�f����C�r��*R��U�`���{*J�m�@9:��I�*����IS������������l�F�e��x=Q�m�b��#�w���y1v�kF���jw���K�67;8�;e2��0�����L�����v��CP|��(�/��_-CbZ"/{r|��h��J�e{0�,'Q�q�>u�����I����0w�^,8i����n����M������0zTX�E�T�#���������1�����l+����1yQ�����.x��UT�w�#������l��C`6����x
x�)��l��}��������
�t�8I�������<��������_�E�)�q�;�G���6�Z��2����u�h(����{����{��=l����K	��Ps#� ���%�5��'1���3s�z�L3�+���f�a�{����E�������u����J�����F�+$M���u�-������
�����y<�������X�}_������������	^��#�B�
��Yi��G���� ��W=Y!�qi��qT$/����tz�����{����
�z3`�K���wg�
6��C
��w��C�>��-���u�?�h����l�z��[���X��������D�#����z���-[����	g��AG��d��^��Zl�h�~x��
p5�8&A���������Y5��U�:������
�:j���^�ds6��t���{?�,`��c��^������wt�������]lJ�����u����0�,�]1���b�^��#��k_q7����J;>"�m"��^����+�Q#s���w��=A
u��3D��-%h/`U0/�����@����/�]o����|��w}G$��������;�����H��~6��t�%������Z�jJf���UO� ��L�����l-
cml3 {��N+�����9^����P�,���^��#��5EM8��&��0�����q>���Y�eVt��� x���/>���r7w��������^��a��)����Ct����8���7Kfy����G\��pN<�_��}�;�h�����n���E���(���Z�VN��`�!vP�AFf�E���u��E}n������P��!������n4� ��D����Y8y�'g�	7L}��k��'7=H�G4��wC������l��A��ul�"�V���5�����
�7T���&\`�.�����������a����e`���x���g~]��1U�[�
c>Y���o��rS���	���h]��;m��:t��~���S����0hvg7z�b������i�g�����Z��� ���!v���l�`��b�%���-C���wC_���o�Nrn����l1{�G2��7�������S���*j��n)������6�0bk��?���1��w��!������f�1q/��	7��:Y�2����he�"��'���g��J�����j���	�';"����p���J5YP������5w�0������MF��R��� xT*�UG�NOb� x���}A$r���QS����b��Qi�=�1?�-��Qy\��_V@S����Qs���B�v&�?A��q�w�h9��A<*��v
1�#�c��Q#7��8���G��P��J����,�bW��#�N����=�����2��l���������l6�e5Z��sA�d�l��X4���G��QT�{�.6{����I��}�Nf�$������~�����W B-G����-#M@]9�e�����Y��Jp� z���}���~�*!��F�.$-NA�d�
F�cj;�.� z��b]j�b��b�G�S�z]�{L�O��Q���q)�����t��:�FD<�N�c�z��2U�lZ��Ny��i��QfY�yKA��6�3���6�_�j�BL�����������i�e���
�G5�� ��a��A���`�{�-��I�q c��a�j	������u���y���<���� xT�f����A�~<�%��bh#xT�b���������G�/T�����}+xT���j���S
�G��P��AL?5�_[0���NZ���Q�d����'�G�	����'_(xT�5�<�:{��iG�\0v � xTOF������Q�UR~yh��F��^=���`�����{�{�!x��0��,'<�W����3����Q��6�w��G������M<�w���VTI�TP=��3���I�?���
t2��}��zl0���o��P=�9�1A?��Q�G�����9�$�U=�^����������:�Ym��<�FO����]��N��Q}j��Z}�����-xT�<h��ya��A��>��sP�e���Q��)�sKfi����H��p���x<jd�����}<����g�;J��>��U�zX���z��^�����V����m��(
�G��1�A;e����&s���4�[��z�}�=hF���/x���'*4������9����9��1�
�-�S6�g��<�Oi�����!!��=���_vg���6����1���O+@?��P��Q}R� MkK	�K1q�B�w���l��:����Q�������S���{���E��OM�umR���G�`�}���0���Q}�<��~�=C��:���=Gdb��s�X��1r�E�v�s�L�Nb�(xT���AD����;>�^;D���,������E�yrh�����E��N���9�O�������~�LJ��^��8l,A$��N���`�H�G���p��}<�O,�����W�1^�}!�������g�O�<�w�@-���.
����5s�$�����0dM����<�]�������A��
���D��q�[��n���J�E�4%sWb
{��&�:2`���w��c���!
�����X��!v���3�����v�dR���G�v���@	������y�,�����}U�K9�x!���'/���l�\E�L������^���	�kbw���)i�>g�}Q]��7��W�GE�������B���h����	C�p�Y��5�T(�h��VT�F��ao�/��\�"�WK���L�#Ew��M�:S��*����-k
���nEy�fT��0�6�3��{�1D��fw�F{��|^�����A]�*���Q��^a�eM���`�Q����b�O����u�JO5�uu&�z��C�P}[��A��7uzV�(H@v���x�����F��+����+���NQ�
���>����g�=[gB�q#�g�?���`�Qu��by�V�^��B|-�{d�%~]���64
���E���X�����ZN-�6K2�c������_,�y��WK�_�����kE�o�/�~����G��{Ow
�(��� _��}XSj���7��W���WE������#�^X�{T��w����`�QD�p���o��U��t#�
�5�/"���wc~�T�Y��B@;E�+��E���B��3��$�(�|}�O��s k�4����[���D��\6��z72�8�;�,�Hm]���7����%XRTy�qY�k�Q�q�����x���F�C�(����<���DQ��>���<��T��Y:�u*,7<�Mx|�Ec��|���9�C����Q��G��2
������OM���mt���(����
�E����V[�R_[���z�rnU�o��������V��-`�{���}�T5���G9�<�w6�A�"��Z@�>��d�Z�����6�+r�&����h����$x�3|BT�d|��z}���Af?���$x�FyZ{MN��`��c��7�9r�[S�����i����D���z}3�]'��	n��r�����d&������J�*�%c�z�F�
������y�#-@o���3�NcD�:%�A�G���5��c"\�$��z�';����x���/X�"Xt<��~�U��}����r����X	�Y$�v�|Sc����T���Ma�C#�GR���P���~�c2�ix>���=Gb�$#�z]{6m>�	�,	�jf���'����Qn�������A�G�	���3�l]�(7G���%j���GR�>�}J��>.[S���s�Q����%�������B�l���G��m&�i<�y��fL9/�����VK�
<J�����P���?�G��0�'�\R���#���z��o������}\���z�Z����F��Vt{�Lt���S��nb:|����|C~eG-�MH��
Sba�m��N��I�Q���b�H��I����oA����XR����'����4�^_�q_K-�>�$�(?[�V[�8�it'�G��1o
f6�%	?��b4e!� �ER��Z�-���}~�I�i_7��I'�G���AxW_~T��/���F�����B�~���Hz&�������{��6z}��3����f}}�"��#�aI�Q~$��+yan�z}so����Lz����sW�f(YS������pg��S��@�`�I�Q!m9�M�_W��������	/:	?�;�~�L$���?m���\�h'�G��E�/����S������3' 	?*NiiXSx�RK��7n��� 5�$�������0�`�I�Q��p{���)��^_�|�-Y�0�^_F�u����g���@_0���#j���[ ��$��8��j��2�F���4���|��z}�Wr�=<�c����C�1��I��Z0��t�?*o+X/$��z}�������U�/u\S����F<*�����#����$��89Ee�=��Q��km0�����Qq�,VMH�[f?jdk
���n�,�^_�xg��z����Mz��NgCSE�g��aoo=�eI��J	9#����u�G����k�;�-,����?WA��1�,����zV�S��	M����,�T�>g4�kL��
?*OI�UuYH�A~��?��_D�>;���_����Fb�,xT�����-p5��g��Fd�P�t��}d���	5��~J�:����+t��X�����Q%b���<[�A��d=s���X;UB�<��OvD,U<���6��{+�R�9�u���=���J���>���`�G���������!�=c����bY���*j��3�����5�p&�����u��uf��G�Z�5�i���<~�O6�5��O��:j�e���U���{��l~T�#D\up��}��Ug)d��7|�����h���&�-x����h��K���Q��t��,�,xT��d�[�]���	g.�� �RY��Z������U�Z�M=�	��Q-����/����g��.����G�4�����z��ZC-��sF������5��uRs��GUS�,uG����o�(�K�%�������zP<�e�A|B�-��!�8�c���~�@��;��Qu�����c9aV�>�?�AW�`�9���f�Y�3��j�����,��	��.m	��g��,xT���@���Hm+�^_C�c�B
�[�N�GM��8{���jR�v�d���#Ww�?8�9���3��E`�!xT�FK
��H�/o����@f���
��#�[����K��@-$�%�����~�~�s����PS�h���C�����E�7�T��`��0]����k�+���'�^_D�s�A��C����hf�&{��I����Azj���M��.�f@���Q=b���e!\��z}	��m9Rs��Guo����=�N�5�����C��@F���E���}
��b\��+��4:y�	u�e��:��R��w4���Y%xT�foQW���e���k���O:�^_E����s�U����t��KV���1�����S�������$���z}f���� {�z}��~�����?�@'/����Q}�P*���<c��SA���9�gl��h�`�����^bIF��`�Y�����
��E���O��
������C4�-�+�u\�aF�C�����@�`|Y�����Y������z}%�`=H�AV��b���e�T��*�������z�8������kF�
|�P���W+���,�V��W���-I�y���%��������x}�t}�|�px�������o������r�����z��������������<?<~>�O�|9>�8|�2����?����_��v|<<�~���=�?�kn�_��=��������������������|������>�������}:��_���~���p3V�����=3���y����~����@���i,����������������s�������}�O��O������w���������~��x�����~[0��l��S�d�i�����o/�������~}��������<>����������o�j������_c1JJ��{-���$��~w>�Z����F�}���+�/������^�����<};t����k��������������_�����/��w?���<O���7//�����������q������������xw:L������6N�����__�O��������O���_����|>�t����q���o�O�O>\��f;~��������������������?������������/Ww�vY?�
n� R�`������-�-_i�Co��pcL_��u���G��>;��r8��[��45��'�y���u��O���Z�vI�4,7k��K,�B�Row�H��Y`���G4���vE{?+�X�\�F���G���>�U��L���-���y�g$��R���=�arI�rF�}�.���K��X
6������|YW4X�J�.g$�����3�"��f������4��H3�3_�|�m.k���������������������8�iT��Spb���=�����:�f���K�Ud������,#-�����U�0�~�U�r,�h�*L']�4�-|��'vMt��F��*w�qD�Xq����S�e9p~���I*��=��>5���|���9p����0|�.,r�(�dM���=�������;g�������[T�����#��aM��#q�:����7#
S�s������sf:����	K��-�����L�J�2�"��%'��U������@�Y�d�/�����L�Z�I�*]m%�t�������W``3K)�
��@CT"���6is�N����%"e���r�iG�C�<"�*(Of�]z&�����0-�H-��<�x��d�����uG`�yd�Q's+�1���S�)H�uN}��:�LF��U�t��\��b��*��3HPxh���z)�	�1C�1�����s���#�:�
O�P����Nw��]��!��T��9T�E����i�=ioS�U���#�)�����v09}QxtF���2C���Q8�Ha�j�9����3�AL����fZ�>�����������"�1�[AU�����n���u�i-k���t.�f�
�5�*RV�2.*���yG����mF����L!2���0�m*����#���U�����
�&#!�y����~��N�69���Dzt$uFR�T��)��m6`��3B� d4C�%;"��u���p
Ab��7{���	�FTG�d4�o�1�#���3bp�����1��X':>��)��uNpY���g�X�w���`����_���P?��Q����H��SEn���Z����[����\E��	���:[�a	����Z��z�o��� R�u����0���X�T%��TdEh���a<4%��LtF���j��|�onv�:F�3�!]}gA%9_���Q�;�f �SH�G����&d�,�U����^�G
�x����@a�{Q�7-�Z�p-����]��]>\��#����l�x�������*��<
a�y���1Fi��b���3���
?��}fs���b����z����HA��������S+Pa0�nF�$���#m�=
I�����j�k��M��=P1�t�y'f:�5P����E�k
��x���f����'�ou��W�����z4�yU5��Q�6�k����.�������h0�D"�{Um������H��8�>2����C������3@�o�U]�tv`��\����,�{�r/lN<0�{C%b���|Oe�>�-�.�r�b,��JK|��G����uQ�L�J�L�����GF�Q�'��>�?mf�Lh�������j��QA����	�3�/���2���!�z5��L]�G��kwg0*���^��6�����G%/`R�&B�E��{as�9�
���^OlL��>�A�	�( ��U'S&��-�7@�^;�0�tH�r/�R�D��|��	����p1%��������{�6�6��*c���/�O��i�����'�N���9�Q�2>�(�{�����V�!�`�"|R�pM��E$���f�(�-����<NR�3�H����h�����$U����}�3�'�}Q�F����S�as������V��#������[p
!{F�~��b	~=�X[��'%��~)��m^��#����|�_Wu����f�,v6���4��1.9/�.��������E���z��Q!����.:�����M��	�sD;D<�����%��7v��Jasz�i����Zs3�����{Um�h�=�[bc�6�W���]����R���6�S�X�5;���o�lM�N�d�u��X,%l�q^�NqR�t�U�)�%Z5^��(��sZ��P�
�N����~Y���=h���9]�0�Co
�o������1P�a����t��p�����Q
m}�
=�����9]����	H���2�(/�Iu^�����5��X$lN?���{� �<[�EC��h}Y�
���T���D�fq������vJ�as/`|����"l��>���3���7��8���������7��
�sx�]`��Sas��"��Y� l�`��`�[Sas�in�z$�HL���3�.�Um�\��zas�O*.H��3z�D������38�S	����~_
�NF!�T��1a������/�������}��y��9c�0�������
u�*��=��Q��L���O����sk�S���X*��h��3��`'A�ECu��TG�����R������D]4�z��D���\u�eb�
yT!yTu��-u_A�MF	�.�(&�P�!�� ����TC�=�[Q�9\SrW��N���=���Q�JU��`=�����N�`=�&�g���)�������u�)
�~K��3&�����5j�8��}�������/��D�Ue��:1����l�EpP�f�.xTt���)��SQMS���Q��� Q�Ez�A�2�Ej�	m�#���!*�3^_�g�'�<*��h���a����u���&�*����Q�S%h�h�d*0A��������#��hh���
b�����h2S��r=Q��.������gXJ�0���RA�EG�n��	Y�!��il{����Q�em���
���'��h6�|���G����folcB�	�Gg��#��zU&]��=�)�Q�'��um�g;�s�
��'u� ��e�\��� ���Qe*��*�J��<�F`DO�t����*U�d����S���J�za��4���*��t7Tj���	UGh����.J�C�����gp�� xT
F����	U���Uu
�JGj(A����1�?
;/�G���R�3�o���A��R�/�	U��8�@M�)���������TyV
Y�U�*�]�;J�����?�B	�G���)��{�	UKD�G����
�����
�dH<�M[�(.��Uu��S�V5��G�s����yTm��=U�������loE��l8������Qm�b���!����j	�K����G�d�T=I�/�zD����A���Qm*r��2�H�U<���	5GO�q���<������N�j����=|_DU|N0^�gDP�#=5A�E]E�
�,oPu����WK�.T]4dT:`,�Su�qoAQ�1?��N3����������S���2�U�8E���Ru�)���^��V���&�*�{�4������[foYL'xTsF�{z	vT]4�
wTXm���E�E=NCD�iG������3�'N�3������H<���������T]���[���@l]�Eg����:�&6��
�uT&g~L�E�H�:IU�������"[����)�������0��T]t�i�o�m<����-�����(xTO��������f���b�Q��>�<��� 9P<�53Qk���G��?P�m�>��Q'NQ�}�C������}���F��v��NvM��S;�Z>�����@-��+a�F�����V�@b$��<�5������V���1�����[�������-�*n&<�	�[tJC��a:����Q��DV��L���5>5�U<�c�
��px�_�a�an{���{?��(xT/�)2�Az{��Q��2
�X�!�Y�G����}K&�D���>��?H���#�C5o�Z��%xT�	}��o����]����TF��M��R�n`k���L�4�A����~�@��l>F���(X'�X�j��E���/<����P1�pcT;�i���"��5��cK����$
5~
��-Y�c<������&������ �.x�8/XBDr��4��h�Ocq��Q=��&{7�}$���`=�[N��S�/4���y�iw�m��_X������
��u�]���!o���1��_L�����c��Q���
�}u������z��J1o�k�0��vW�^6��uG�v���P���u�]�x^p*�?t�]E��<���v7����;��.�f�]���-Sl�iw���L�"�X�iw�����O�N����2��y�iw���}!xv�iw{zMC8�Q��orX����&����yQ<*�j���"*�m��>���&>E���B�Rq3�n�-�1��Ep��������g����Q�����'u�]�^��������j�����������H1�����=���&fw���/:�n���{���r�z0�Q7�S3=1�/�V��@���bQ��o0u\��M]
�:� V3P<jR����XYS�vWP���9����oj�Y��R��\
�v�jJ�G�~m;E�����f���X��xT1�~����;��v�&�E��&���?6���9s�����Q�N�������b���[���C�un��a����R���n����h|�pr0N����S<�ts��3����N����{����G���}?F��Q������z$�~R<�:�����H�Vr;5�� R/Ln��b�Nb�$xT������Jb������#n�#{��/xT�%��5���[�w�h03����P�[��V�}9I�Q�'�F.�p�9�I��zEI�U�']%�S��rS>4���@�nG�!��)g��w�{�g�4b_���T�.	5�v�_��,:	L�����T#3)?*{�������I�Q��;�g���)N��7�V�&d]��i$��&a����Ox�I��8e����RON���
j",�p�*�/)?j�7tX�����0�����z���Q��F�
��2}�$xT�e�6�@zi���9r-�i���<�}�����$��Ff��~�[�'��
�h���������rW�7����fq�u��W~T�>i\�L�.��Q�al�k
���z����
b�Bb�$xT	��U�x;�M�G���x�8��Q)*?<�}�vn���*�ZW�+SIm+)?jR?���s7�$E�����	1?��)xT6��dPZ<*F�=o	b:��G���4�.9���
r��cElL����[�������QeR����{���S�`�$���%��r��W�@�l���,���q����(��rC|���6	Uf(����I��2��������@�G��[C��K�G�������
�0K�G�����������>!��X\(xT)X���{�,><*�R���0�����$xT��Nk|jF�1���K����-9/�Ggt%�z�R�K�G�YN��4�q_��?Mx7�$�E�����XA���z�G
?xT���UH�G�f��
���=�N3��US�`�!<�9����G ��I�������}Tv���|9������G���o�����<
9#m��#cq��Q�#����L��I�D��a�EX��D�����*��8�E� r��9Q���p�����tPT��-�O�_dRTa1�Z��r^dTT�a�:�gQ�����]��_�!����aQ�������8Y�E��J�\
�[�)�����v���:����X���g�{$����hz�ebT/�0:����R7��p�
��K��}]S��#Xc��Q����'\p�������/������jJ26�&3�4��%��:�m������� \����N������R�b��Q���J��K����>������l����5�	fxTb��L�����{�FDd~]�G����;G���$���7#�j���������{�V��,��z����9��/Y�G�s���p�Wr�g�U��;
}!��e��)����@���v����I|��:���������Ly���_���M����z+�@�O:+5eL��ALG�tY�Ge���
����G����]DD����������%����xT<�����f�!�Nj�9zf��'g��:�9������Qn�b�~2��l~C~�k,5mz����8>q2��lf[�����vL�+�S3w�o�{.���'C����f�U��7���S�u~T5���fPIl�������@����|�������������e~T�#G��-8���
Y�G��~�d���e~��w�v���Q9(���B�A0����f�1����o+���q%�}����G�9�t���A���*f~�){������6R��G�Y*[��r 6�<o�Ge�=p�1����G�n����X#{���������UXl���&��v����Y�(�:�t���C��Y�(��y��]d���|B�I'�%e�����=F�>t~TEN@���b�$���i�<�\����i1�����f~�t��fq������\:�(�f\��:��%�cY�(gt��=X�2���i���B�"�$g������}�8EY�G�yv&{FR�nz��e�#���Y6��A��	�+g����+m��I�Q�������@�\�|?{���Bz���Q�;�Mqf[f�(�����g�Q_�����]�=/��7����s���/��	������A�E����o.x6j���-z��9�`c,^��QFK���j�Y�G���5�B-y�����n���*����r�������(��F:�s�0�`�"x�{�92����Q��9�?"������.��-�_���p�4�."�������w�m	?�'��4sy���	����l>r��Q�:��Z�\b���u~T1����Ou~���W�v���(���yI��������fR����:�:Z��J��'������e��
j��kg�GEgfQd���h�G9��Kb5X�G����[��	G3?�����ON,�����0�)|.?������t���\��c��Y�Q��y��}L�n�������}�s�Y$�(��L�|B����5���_	{K8�Y�Q!����i�,���PS��l#�NY�QaJ~��������������������?���|{�~��������_���?�>=�\�����������������������x<�q�8�u���������������y�Xs������x����~����������>������<^���|(#]y�>@_��0~����1~���X����v{�����y����~��������i,��������������������������D������������p�p|[����7�Z��3�`�����qi^�?������������?���������1�����q��/w_�����W��������)�2�%�~���w�������s�q��<8_�?����g~���������*O������7�����<��1� ��/�������;����������z<�3��������������p||����������px<������o��
���v|�������p��|8������<���y����n��?<�����������/�P�O�r}��_�?~�t��>����~�x��Z?��?�x��j�������Z�1�R.�������}���q�-d���O���g[��*����y�H�����%�P��q���4��foO�m�����9�2|��C���r��.;b��������4�4��KFeJ�-e���D��3PT�����6�����p�.��v�)@�N��5�Uu�sr�_�*�l:���^Z��,H*X�`��9�P�d3��%�2�����P�}~�k���#2a�ym)PX
d�g����"x��������FB�r����w�@�
S���l+��Pu���iS�ds��CBZ��`����E�!	6�#K�M���n�?KFg�1Co����l���+7���1~?e����g���T��|��Ih�L8\�"y<���0���K��XZ&�����:U�v�'X��`���z�x$������uJ����}Sl-�vG��#2��	�^jt�He�*��Uh�����wV��=�}�/�u�����&� �S<g]N��$����������b6�$�[,��;.O*���w*|vl2���s>O\���Y]|�_�����V�oE|g��!���$&��+��v�E���@�aS�"+&	�#�1WV����lZ����Hu)�>��a���Xgw�x�������
}����&�N�"�o�`l]&�� �mD����Qx����#
���*�����^���>i�@����Xg����L��`��"M�>�1K��C!��5b�'��_�H�g
�;�IKR�N�9T,/�U�D���:�k9�X_��#`��}���P�:'�lm��������qU�WQc�)��ul���l��^wz�1�&!J�V��g$bky��N��%�o&b�4 #Y�� ���]x�-ap�\.��Pg��/�U�Uaq���ka��T�$N�:�#0���M��3����ap@LK���+�����FR+��y���(E�H���$�p���M�N�m���R��3���rH�U��5',���2��7��$�nR�R�f]�4�9f�� ����Q�B$���Y[���ZuE!n�9Tj7�e
a��ls���X]#A��6_'��������f�~N�BH�u�,����d-����_���J
�z�G�r:���G�u��QN��8�b���4�e���"8>��+�����#���~R2�f��^0l�e}��j�	<������������.@
�B����$D��+]3xC��6t����5[s:b����w�%�&c�#����5�n����Hz�s� I#52�t���[������J�����=�Lbi�t�j�4Ho";/J���)+��V�A6J�L���]i�(A�-���v���9���e	�Rd���J����)]s���m�RG��y�uSnw�(Ay'���|������e�q�^����&��IH����p��G$��^�C�D��>�NI����6H�u�$����|�3#�;����Pp�R�3��"�gk�����/"��E>�������
]�Ca���/�O�0���$6�%5�J����K��<���3�������I���
][Q���Q�}L[���4�J�Hh�HO$��P����<Z/�='tM7k��zdl�%�P�����$��+]����y"�����2��C�"0K�f��
��;/B��&R ���K���X�� L�4)�("�
c)BO�"����5�D�'��8���=��2)����A�d;�F>��} ��Pr��5��FRd��	]3��a�{4�������o��z��&����i�q��t��C���U�h���$��B�G}2�uR��Y�E(��6V������� ���(]3��~}��F�V��+�i�2�?/tM?�v�3�p_���|h)@=mP3�\�B�FR�R?��
]3����k�f0��-�};�
kpn!�g���5c�1
�TG��^��q�Ca}���x�k��#��
���{�k�g�H�-LZ���������k�q5�z@�"����f�r����:�=��&o���"T\/t�8�'�)P�_��9y����I���J�s0�}Pf6V����#6h|*t�8KCq������kF��%gN��>5��H�2�fL��6�o�G{�k�i� s�>�K	]3F��T��h/t�X2��-^']3M
,HK�z���f�(#����t4��f�(�R����]3%���`=X,%t�<6������V��/�#6����9/~�[�Yi�,t��p�3������]3������
]3Ms�{�Bk�B�L�����$|��5`�=P�����iN@���}bcB��3-��y����	]3��We���X=�">'��=[g}PA��es�Pf�i� ��J�:L]��f^�xg;-�3�8��-��J���5`^I�2�����-�#i��� ���_���O���--�?[�o2����]G6�B2��Bw�|��!��3���{��#�\�qvu������l��G�������0	� ��j��R s��?�8���g�EZ���Q�����/Lb� xT}U�X���=�}�|h-��J#��A��m�yYr��F;m����N�w�G���iY���W�H���X�5i�8�G�	��=cc)��Qu�2a����;�x�:^:����j��gcF�<j��[�j��G���m���
j���3��� �����;%�� ��j�QA��]I�����1�;
�2���i�Q���R�\���8�,9�<�do�������o�$�
�G�� �26FjlA��Z�r�/$<� xT5�*����G���XGzc.F�� xT����oi��$�
�G�j��_zn��S3h��Dl]��:��w����A��2�Ya��eR�A���q\��t�-����:������6����`t��B�{���6�`��v�;�-�/+�G
��c�%�ON�b���y<�63�������Q�}a��!�4!>W��2UK���!��D��?�s�kJ�C�4f3��F����7�]_����Q5w\xG�A!k|��_���5bK�����XJ����/���B�KQ;�\�,��'�<C���8������Q��W�B�T��:�y�cb:k���a��
D�!��m�����j��[��y)�f�uc�=�N��������<�V���N<��C�{e����E���P�
s�����j�����N��	1���R,^<����q�n`�������F�O�����1&1���;8sq f�G���Gy����Q�`1��lo��)��m��=C�����������?����S����R>����<��V�[0�g�!v�Q��Xg>����?�z^��������������x��O��S��I�����zS/D�����Q#Br����������y�3}c�m����mu���
�{�3���b]
�A���������a��j��q�s��N#��/�p����T�8�L��m�(<�h���)
�\�o�������z�7 
;�������Q�W@���m���k��#�6:��:�g�(&y�4>u�g�X�����Q����H���x���=��QY�M��y��dM�j��3�����Q�����B�i�q{����3�3��~
g��E��b
����j���[^cT<�u�������xTE.��S�S7xT���PX�-*���)a������ws1Gp���bP)P&���xTE���H|�����`=���*�g������NMm���c����@�����8���}�����M��`��xT�X4�K1;U<�G<�����U<*w�gC{���a�>�`�q�G�|��gv�xT�u����<�9�xnI_NT<�YL�9�7D�����������&����p��Q=��)�������}��<�����������L����yT0�6� R��G������{��G���S�}�"*�L��s�����or1�u�����S�-��xT�0q��w"����c\��=���&>�(�c���Q�a��-]����z��B4"��Q#��g��ck���M�8!��7xT4�)������V��al��T����-�^Hl}�������TT<��~:�c,�W<��'c��,*U��	�.����Q��r`_X
E��M����'�M��y��X�/x�)����+��d�[fj����c��<�����`����Z7�@['{�xT7g�:��
U��x�T7��1�f~�n�(���G�q��Q��
X�b�������s��9*�
�db&L���g��~a��6�S���2_�xTa���O8�Q��9Z|=���M|j0`���o;��0�U7xTO�q	�26����O�<���m��7��5���m�|�`,>���Q��f�c\v���{6����P<j���_z�������6���Ge���0��V<��4�����xT
h���fc}���������Q�����s��N?�Y�7����:�O����Q#��k$�mR<�u�^M��zr��X_��g,�Re��5�W&���3��z	G3)5��r �q����Ho�I�/)?j�<�����!�M|�[O�yT��Q��`|!��$��O���B����Q�a�����������=G�XR<*��i�������w�@�hw$��zGn��9���QX�sK|r��Q�����[6xT���<i��g��:��a}���I��V�{�����xT�5i����(?���+XS6<%,��~�$�=������������:?����/kJ'�h�oj�&�%v���bI����u�����K�>�}��Q3W�K"��)���~�'����M1v u�7u)�������K��1�����m�n��*��O���{�p_�����}�CI���������
�G5���}}dM������e�=I��96~���u�R����W~����
�L�����l�Rf=2�9����<���p�Ql���cm�/��M�4b'p���R����y��2m�}�y^��������h"�
�w�,:m����7�g�o�{�|�����Bm[����;��>����Qy|�N�yQ<�Y~6�[�M|jpd8�{M�G�h�d|�����
�cKb��G��)�B���6��n�o`�p����?�9��OM�a�0�z�g���#�i��2w6��Y^Y6vjb~�=�/��Qy���1��xT���^_f���B=%����\���|��l<�M�q�)��RY��xT�c�I����������e���ru��&M�@�G��c�GUkc��C��
�<q�-�fP7��{��}4���_���m��M	j1�P<�%�/��`�?6xT��]��t<��r��}(5�2���,����2jD�_g�B�G��Q��p4��Q�<r�����C1�&�	�y��O
d�[b�}�Mw9�����(c��	 ���G������I��jt7�����PW������x�0�zj'm�Q�`
���&���c6��������\��Q��Z[���G��q�P\��j5}J��`����7>�u����&>5}�5g��{����@��
���4����;���������,^��,�[6}(����B�i�~T���G�������w@������
��b]��^V<�5�q����[<
��y��}a��Q��	��F��o��?X�F0����rFw������Qt�-�W�������G����
?���_��1�������q���G�����<�ie��F�b��>����QX�2�-��M]���6���mV<*��6r�'�
e8E���XV<j���s;}2�����a�#A�T���������Zg����_G�,������=��b~,n�����	�>��n���g���>����	�'o��w�B\,o�Q���g_�xT��&.$z[y��*&�,'�<�������G��OM.��L�>6x����f����A~K�T��l4Q��
Y���>��NbN�>�]
U^��~��2��	�-<������_���M�R/���GE�w�����sy����g���7y�G����y���������7�S��0�`y��J����������&Mt������[�����p6��o�_������5��xT��*��|n�����.�+����� R��G�l4�.������Fw��)��6x�G<c~��<���)��e����-�
�<���l���N��>������u!�5o��L,r���(?�M�9�zrV<�F���~r�6��nz&��C�t�G}�{%1L]��;�|�s5rU��7=�W�g��Z]��zrV<�&�WBM��9��u�drd��&{���3��pF�{��F�?�=h�>�x��v��69��G��Z����l=��o4����;J�����w�����
�GMXbm�1v��z}�g8]�S���A�7�(��gtj��(5�z�`_������-�='1+U���+���������k���xThi�
S~���k}g<*f�Q�����d�K��xT�����0���s{��b.����|��=fq������,����N��x}�t}�|�px�������o������r�����z��������������<?<~>�O�|9>�8|�2����?����_��v|<<�~���=�?�kn�_��=��������������������|������>�����>@_��0~����1~���X�����q����7��������rs0���i,�����������������t��GoK�����M�t{�|{}w�y��?�-������X�il���i*_�aP�~����������?���������}���8�����������������k�GI�0�|���������:�h�s�8���w�/������^�����<}�t����k��������������_�����/��w?���<���7//�����������q�������������xw:O������6�����__�O��������O���_����|>�t����q���o�O�O>\���;~��������������������?������������/W��v_?���}Ak<_U�%��_���&sIWu������B��bwK_P��u;��o��s=���pi~y�>��Mo��`����,\��z{���kkam��r����l����~��xal�s�Z��Z��(Kz^G(����X������"������%,W���&G���(.��`�?���g��3���0�����l<��}7��������H��3:0�1���3KY�����e6W5��Wh`>bM�3I��H|,}U>E���9�u���A��
�>��u���#�c�9��#!XR�����B�3
�:�E�W�p�A�8��;����y�U��4cb}��eS�T��&��5%;�����&�:�����C.'Y�"���E���Ev�:�*1f����X��p��C:d(dB�Xg�`�-��L$D�sJ����HL?[�39�o�>��;�u�$E��)�D���yp��&L�t-pG`vzd-�wU�D?�����o��y8fL�S�3����T0-*�$���i_a:Z]>���fH����X'T�ft�H$��=[gs
�^������������y���$��	c���aSmJ�����	;�>D}�7Z����b��x-��W�3�0��N�F�8[g�n3W08`�z	���^tF�8{ls4LX�b]�X��Vj������`�X���|���pb7��9Wj�	=8)�%��P�C�er���2x-<���"��\0A2��`�mD���P��o!���.�&^/[�.k�"�EyRV.b��Aw=#��%��{�_w���s|E��5��vA"�3��7;�`�(i�;#���f�u9,'[����X���@R�3�>>�������>�3�>?]�4�(b��Pubv�y�����b� �n��	�"}N�`�U�(����!��|%k-gd��BX�U|gZ��'�t��������8�jZC�g�l��I���\�U|���r����������"&HY�:[��!p��M�����,�X!RiN?��#�Eo��f!|�����8�8f>�1����3�>L+�Z�/�Q��N�=����b�nm��t!MZM��'�#��Hn�&qguX�����Rk���}\�����:'��3h(H�-��y�1V�����j�k[�\NHn��:��.B�F��=�q�h��/g�	ZE��fr�w��+�r��1��Z&��:�:��	p�����.2�G7�Sb7D��s(��8���@WR�����8���K�l�wr��
���'�B�����Kx�0lAb��g�Q�����[�z��!6:���{��#2��I�"z���W�-�6$���;�fM�-w�lo���x5BZA1
�q�]�v���:�6y��N��[��C��x�Sh�~���H�{���0�vP�#t/4N7!����X��;����P����������}��iB�b��L��Ng���M�}��]��N����-A���8}� '�!�e�G��8}��,Oh�^h�n�!������������\f{+4NgFLu�]���B�t���C�	�������v�����8��@�m�IX���9v��;d��H�x�q����{��%�"PRw&DO��2�����O��P;0�������4�4��D�o��N��}�{�aZ1LNd_����"�znQ~��/B�tS���?"�	�Q�i3g��D���8]F	L����j��������}R����C�+K\��8]�1� ��������A�eD�������W�j�P}b�/4NW�9s�nK�Vh�n2�V;���D
i^h���N+5�Cy��/B��C�~�o�E��O[���u�@
�^h�!`k�x���W��sdC�:�R,N�z�G���EU(/4N?����=���m7������S`_D���@.���-1��r(2��~�&�������^��6�o��=������5j��3[����8]l�<�K��l0�����<�����vVz�S�hx�q�N����CQ9�h�~0~�8
����������M�]�h�G5�X'����h�>�v�9�������+)���IH/x�q��Z�;�uuf�3G���n��}to4N�I@t��E�����3�kY[**�7������J1s���������w�8��5`�A�+��F�1��{_t���8C�4zu)����8c��CC������u�
�M��F��5�B����H�.w��������8C%M�d�w�q�Di��;�Ww�qF�������4gjTKj��)+o4������<l��}�h��7��["~%j~�qFw�tX<Cy�q	1�p��B2��3���V'�ok4��Y;4�s�N6g��k��NVno4�c�t~�/b���3������7���P'7�[*�.o4��R�� �s�h��mm[SP����h��:�=*z�N���8������;�h�7gn��z`��Yo4��+���yc&+:�)�)���j)��&1Ti��&�MV4�Zk��P1e�������V������h�,�������`�������"dg�����f�y�Sq	&+�-�+kq7
&+:tW���
\=#�3������`��y��VH�x��z|k��G������Y���(�r����&�\#e���9NKZG5�g�UF����`xT������LV4f����C���`��%�[#;��������(�"�
�G�_"{[�,2eE]�$9&O��S�-����k:E]�Sf�lr���T����8�T�~�� l"��Q�Q^}�.Z�0U������;�*G����B3U�Q��Kd�!���Qe(���W�����c�3>�Z;4q
�G�x�J\���d���u�y�����qZ���o�!!!�*���g��B,LY���y�c��)\��}�BH����Qe��������)+�7{���9���zg����w�~���kj��m��VI��5,eV��Qe�]����M����������H8+UN����������3����7�3�c�l�Y'��bxTj���$�y�q�0eE�&_���xv0<��rZRi��'LY������"r��Q-&�)�NN�LM^l��A�N����Q��'r�cF@���Z�����$A��Q-m���u6f����"j��o�D�!�:qd���
�G�!�����%13����X�kmU[��c��.��b���>���w	�[Su��Q=��[�������G�?����8������4�l�k���r>�D���>]�3N3��bL���G��Z��E��isW)�V��9�?���8��.�
�Gu��.y]��SVt�Ec��.&���Q}\����J������n�;��?��6(�1��/�G�a5q���NP����O��@�f�_��]���0����:"�������6wC�5�s�Rb��c�\t������QG����!&������zN�b���G����?G������e�c�B���G��9�A
�
�G���eM7eE�Lo;]S��G���v��������
Y����G5�Ya�S�S�6��M�:�^W5n�qZ��=%��m�i���A���6��Y;�N(��6�i`m�w}�`xT{}�:��0eE�L��pVk�g>m[]�z]�����p+g�6�^��Q}���y��z��.����RR�����3('�~�E}�=��"����Q}�|��)��3N�V��
^��Y�:�=X���C4<���&�K�?���}�Zj������G�!�������q�>�$t#�a�(��Q}0����uPt��Xk��_
�:����(K����t8��]`�%0���=*e�:z�"D7���5��/�G4<�g����W�����~d_*��>��Gu�Y����i���O������\�3N�Q[�@���Q�w�D;��l���q�����<��|��0_���q�����s�^�A��{�v�$/I���Q}�5���8����G��)IN�Upc��t�}"����a����e���c�����p�
">����v�=6��3N+�@��C����h�'�.AZmF�����~����s��c||?u����uu��(�q��R�G�3�FZ	�.s�1.����iWg��Q=��Aj���f��ZJ���8������P�u��z�����"��1�8����]D?9�y���`���}�f}��e�����f}��
��]�LD�����W�C�4�4nw���w�8z����V%�hxT�B�����4���Of�S��4�����u�\S�������j�L<j������VR�3N[�9���G�x�P��ViG���{%����R���G�6W;]����x�v�rnK���������T���G��{�����/�
�6D��1�O'5�o���R=���|����x���F_;�>C��D���p�������
�e0k)�
;���y��lPg���Z�z(���3j�Q)l�)����'��}�z]�b����O����W���G���=���������R�l�3N�vo�����P]�����/�1��Hw��U�~�Ge�Q\Sc�J�q��E���:��;�����&U�v���$��q�Q���[�
|?���t�c���a�Q������b�2N<j�|�g^��.�(�������.���1�H�l��=w�o�� ��-���s_���]��N��V��x�����q���8���5�k4<��m���}1���}�1��P�}��t�>��Qge�})���S:5���G�"������G����sTk�/���m=�����S���GE�p�sN�=�����i�ua��)y�[M'x|q�Q/���u��Hx�V���'�&U�Z���/���=�o���.�i�Q�lz��{��w�>M�������~���b�NF�ti�Qa���.��O���pW|�4��|��x�N�G=���� ����E_���-�w�x������<).��=o}��/�t�������xT��~��1v�G���w(/����5��O�7�M�����qN��i�r.�t��r7��S��3���6C2��>�P�����\������S����!��SK���8��.��<��h��uM��Py�L���C�y�O���L��i�`W#����Lf��z������'�}j�Y��K*B[<��S��5��Z�*k�d�O-mz��YT�;��S]��v3.e������L�����^_��#�9�'4�����V��]�o[��^�Q�|�[A���t�[Z�\A��'3���@-}�.���!]8@�R�N?j�!���k�}+��dP����/���}&3�jG��5���9�4]�����-�0S�K3N3�-a:T�],M����M�&�������\����� s�j>S������4�i���fO������z�#�x�<����O����g�],N%x}hU4��J��:� >T�"�T}��/�v���r�B�J[*��&�Ri:B����*�S�����FO)���	U���~P�g��P��w�)s��B��
c�u���l��}��[�vPw��5���,��6v��PG��3
s������)�u��f���3k���c�i���'��jm�T��(����9��E�-U�Nw�a����M�N�����-|Z(��d�P-G��AcW9��K�(�4�����CTk�n����f�������a���*e���O��fHf������y��oH��kc�@#Ku���O
W���S������<�ZJ�����Z{���."�
�r~���y�T�aVQ������,��dx���9R�8��ax�����u�����j\g��F�N^2��G�-�9x���d~Q}P����5���4
����d�o��c��T������sf�#kG�cek�Q�l���mU=X�������GR}��UW.�^[V���mT����/�>5<�
�:�������(�����{�XSs��Cz|�.a1�K��1�uT?��B/'�����j���XS�.���[�=�|Z;L+u����g���M�G���F.����
L�?j�L��}+8����#kQ��v���v�G�X���D/'�TK9��Z�T���U+k:��,b,��� �o�g�w1}����Qs8���<��b��0�&j�<��r���������}��:��"z���(7f6���T���/��2�����G�!�������~���1�~�R��������L��"j�lx��sJZjJ�3�y���^X�7��e6<�gj�P[?��t6<��B����������\�4�7Q�mM������������?j���xe��Q��0�z��t6~�/��� q����+�h���:9��T6~���}�
A�L��U������3O�(�x��/%z���QGc�3�D-������~�<�z��w����9D����������a�(?z��3��)�Q��Q>s���:Q����Q��4����w�>g�Y�3���l��0FcV=ih�*m�l�(��s���M�{!?���z(I�1�G�q��tj�<]6~T����< ��m������M�X������T��3P�Qkg�����Z����-��c�G����#8���Q~ht��o��b6~���3��C��Q�7�}T�m�(_+�{�3~T(�_o��y�Y��Q����#��1��"5UX;(�l�(�2��;\������j����Q8a6~T8���>^����
��S�������+�~f��3~Tt���<1D6?*d~�F_@�m������q&O�Q��Q�-�w���\)��<�������T���*5v[!gD���?�q�q��{���:�Z��W�G�q�=�=
{l"N����8�!c��Q����P[1���u�����^p6~T�[
�i��a>���[��3~��5���7D�U���=�x�Pz���QG���2����Q����QcF�0�?�%�%���jm�G���e]S����Qa�k��
Y�'������X�q���j��)����7<*���uT
3������.��R9h�G
������>�O���
-+h��*��?*v�:1���������:��==���B6~�
���QwB�G�������~6~T��������lxT�<�tH���?*
�Px���T|[�G�������
��O����`](x|���<t6��A�q�;��4?�g,��J�������w�y�9��Q�S��R_[����J��w`�Yy���<����j������5EM��[�GeG�����G�������w���^������W?}������_n�~�o��������?}����w�������������W���?����n~��;�u�������/�z�����������_�?��\��_?_������W�������������������.0�������>�~��_��p��Q����]�;O����?����������ts�������]�zs���g�:���-����A�|��x������/��7�����/�J�1�������pW�c����~������J��?�������=��www�����������o����������()]���M<�>�~d72���]9���&���Z�p��=��__���������un�?w�c���s_�]��������������1x���7c=��n�������o������|usw7����/�������n>=n��?~�'�����}������_n�^�~��������o��o��
�����r7����>=�������O����������7����o>}������G����s���E*�vP�W�{1���(��	~h\\�����Fp��="�U�?�
Ku��v��M�?���������n���{��-�<�k/��s��Z��	=@�r�!(G��T��+$���>|�H��YL7|;�}}��G����\�.9&�Ng_���Id��g���g���P�o�VG�$��(�/i���q�������9<+�r��~�3�Q��\�<���?�P��"�qt���g>�!��/7�_���UY����4`/����	�q�jN"1#�"��wy��V!4m�H�#p�z#�����$����26x����/Tr���-g��H���b�4#��E
r/����yhJ��I����������,��oT�<FU������C���Yi�"������U�������f�Xl3�+���f<".��c�)7���]�$�!��r�&��)�_���<�:.��J7j������hjUr���Q
`Mf�m��*?*gE
�=�E&���8)}��������"��Y"����C�R'��X�_X)
b�b��}���/"z"F�<���r6��(�������a\(���� �x4�������)1w"��y�|Q0����6�X��.��
�je�����,�m����k�f�6x9����}a��fS�����aU���@��/�B�������x�T������+e-rEO2�g�d����&�QE�#
���^��3�
o����~�S�H|���C,��tU��F�,���G�2�C�x�e���t9��n4��X�xJU�=cy�Z_������H��3�<%P`�����M����Yb`�����4�g,b�,�@���Y*����$���Y��~9�b9-:��Z'�"�����G������b��y��fM#��E�H�q;K�Zx��e�u�����"����������������;]�#HB|y�?���oy�Q���r��98?j�4��,�A
���)n� ��+����m3m�H��''\�W������
�8G��Y�v��1F��-1�������y��,���#��F�,�G����E,:��(�pB52��.(���
���w����� ^���d.'/�bl����F�'S��_�-:{bt���^��������{�F��n4������H����8��|�8���
7g}��,�@���>�3p�z��Z�t��<Gx�T�n�9��V�"���P����C�p�L`$����H����8[���(�"���9�eVr.
����7g��E������	��Q��������&p�gP��(����8��]^I����tx��� hN1������p����L��Nr?� ����F��)�v�p�B[��i��;�B`�?CG���m�����I�!��rZ���8�Z;JR�go��~c\oIQdy�j��7�����~�i�h���^�)(z�P���'��'!����0�� ����+�#�{C��/(��g]P�8ug��B��!���q�J���
D�!�5'{�e�
EjCHk%SU�>�8m��1�m/�~
�
R�0�4E�3 T��E�~
��5��
�*���@��8j�eoXR{��<�5_���Sv'�8U�2+����P�P���I-f
�6���>��������~�*��J�f���lP�
�(u)��3J�w�AJu��x�S���BP4�s�� �~
��M��bB|�OA�#�$��a���!���G��g���R���"Z�����;Dk=A6���)(�zY��qX�� x���Q������y{��MY���I� z?~
�:�9������w�q�)�������7x���o��_�Q;�C�x]$qA=��Q�<��k��.y
�lde�����h�DZI�"~
���{Cx���������k��e
���d4����� �T��)(����:�.4����E�+
i���&���)(�w�'�:����S�������OA�1�����I���SP�W
�;� �?.E7�Y}����z'���	B������u�_�9U'�t��Rl��f����C�b�.���SP�v�������8�fz�;M��3L`d���I�������Cj���J��I�l����Z�0�SP�d��:�@A���E�x4p{]���~l�S�� c���f�\9��.�\S�M)+oN?<n���T�o���D��XT��8����uMA���7��� ^�.��t
6y2Q�0����nhA�1&'���?��'��x�Q�l�����1� �~�F��i�9�����cF�<n��\$	
����#>��3�|F��D��(`%����v�)�aT���o4�����8]���2���0!�����yU�MA�F#F~5O���"�))���d�7����x���8@����*�z�&/�G0�;WI�e^W"%��|�i1�y;���K"%�c�LP4������A�EC�qi�y�D����2��?(h�&�MP������r=�`w��!�!��
�S��/N���	���(
F�R`'�E����3 ����LP4�\�
Y`���q�`w�3(���� ���Ec��z�]L~[3�K�w���Q�F��	�����=T^&(�Z�H�=�`���1�V���)m0A��	�V�=��A&(�����R����[���W|PM�e�����2<�Q)��<VqFy�?
&(���]Z��&h"NMP4
��S1��MP4�-��8�&(Ja�!�a !@LP4�\�K_{��*���)!wD��&(�b�p�0�)���qq��
�[q&(�c�K)�S�sq
�D0W8uF��h��|���Es��WV��J�#��h*[��0C~[��\�?j^Mi��?LP4G�ja=���Fb��.���&(�K��z����4����b�?*�w�:_���00�g����LP4a����s*��h9.���r��LP���5N7�o�mMP�<��]>��M�]�������^���	�����A
�&(ZF��>��}cy�)�d
%�s�Eso�.��B�]LP�l����R0A��xW���l0A�2D�c�S��
y�ic.\zl��]�;����rp_(�<�4��.�d|<�iy������aq���A�S-%A��.X��&��E��w�uxy^��LP��Ucc����_�	��'���gV(3NYkW�b^�b�EK	�/\SA
&(�Hs�z���N6A�2�k�����-��	���;��{����	��q�]�����&(Z*����.T�u�ic��s�+}�:�4G��XS���8E}�S1O�*C;��>C�s�������c�+�*m����BB%UZ|��_���G=�����5��*������Z���r\q�m)�'���Qax���}��vU�]�f�9
�*��f��m�O���f�Q�v�^��O���O���*�L]%�bxT�(���2=&(�k�Q�r��"��	���v.8+8fa�Q��3��k)���c.�������G�������{� M��G
J�������
��%��L�juo0<*&��'�Q;1<��������a&�aqZ��(zxe0<���t��
'��+p1���^��Q.o�K]�~�R����<���$�#N<�8�:��
��G��#����T�����:#�\�����n�����'g�����n�O�ME_*N~���p��ur��Q=r����U��ipW����ds�q��Jl�3�l���j����~�R���b����U����
o-������(7h
X���55<������_��E�w�3>p���>��7�/�G��hx���u�"�������l1j:1���S���f�K�oy�\Q������'5n�hx��%�wPO��0��&���da�M3��+G"�_���;���S�z�m����m�s���"N9w3������4�$gU��0��(��Y�v����n�X���-J���Qu��W����$���*��s��sA�����K��+�E�1N����?5���w
�r�f�9���r�|!�}�O
�r=}��/��G4<��t��:Er$�3.�OY��R�M��(W*g��f�?��G�'O���"�E�?�6��Nn�R14~TGo��C�s�s���'�y�.�0q��J��%��^�B�#?����������o��G��������Q��}�*����\_d|�.���
�r����u1k
���+s�/4�}�hx��;��b&/uT�0����%�9�Q#dWnBb��<6�Q=���B�����(�i��)��~������������(W�f$O�����;����K��hx����@�Iu75<����<�8+��hx�Q��X!��~�������a���5F������oK�?�_��G�~\W^8�J�+\bO��O(���G��;�c���iE�����G����V�2��
v��J4��O�v�u������
��[�(����G����C:����>��0q�����p��lP������*����T�>
�2����$0�hx��;����y�R|B�;P�}��<����w1q��z��O1�M������<9�wi�>�4/�������gY:f{�|4<�o���M����G=Q�\����h�wBh3�V�`��B)��q��-��O;fz;p��j�6y�!�^�M�D���0�[�Sj;�X��z�3����V����G
��5�W���G4<*���h��9�����?������5pBp�pS=��Gr47#h���xT��_��dOi�Qc=��B�@��f�K]�#'���h�������/��
%�����+��Q��`���E&?*�#������������E}Z�V��Q��0��[�
���vf�g�DM�&?*��J�Wj�����;��Q2�����pm����{
b60M~��8���W.M��Q���9���2?���5��.l�Q���P������XS���z���[�x��K��:v��-3'��a������l(j����K��E��5���B�������e�L`�N=c��RC��Ej��gL~�vo�,���&����]��x�}.M~Td]���|j��P���"��d��c=*�b4O���Qi��sl3��4����#z���9�'?���g��W�e��������}.M~TI�&�Bq8M~�Qnq�\Q���&?��u�G��X���G�H.O}��k��������{y}���*�PTN��G�{�V����s�5��ON�G�q�]��@<[}���Ge�@����Q)lwS����R2<*
z��Ck:�QC����,�t���Q�u�?��gX��m>9cn\���M�������:����:�k��T���7m���P���G���������������gL~�H%�$r�^���Ge��2>���
��G�������>M~����s��o��|���������x��(G���Z�K�3��e��o�/j=&���s�f}�dxT���_�����"N�	�t=�dxT�1��b�Yp�R����������G������~��iO�c��V�����k=�� ���G�D�+y|��/��W�?V��)z�i����	�u��Z��7��c����4�Q�=��(f���G�����z���J������4�Qq�1��J�#M~�Eiy���A�����E��'?j\�����w��<�QC3c�/�T�HN~T��G�i��
��*����'����~�h"
\=M~��q�[�~���?��M������.�4���hC(�1y|y�4��*�9�>m�!>��XT��M���X���S���Qe�R���y:yG6<�l�p�P���GgC8�F���6�ir��z��7<���.�>C�G��t��r�E�u����EF�������~6(���'�4t��y��o�'/�����U5L���x���N�/}�){��3��A�3��S��8_D���7-��-���
�:~p���*f��:�����b�6����>������8���4�w�8�1r��W�����5U�U"\m��CI|�`�~�n�L��<���Wvq���Sq����z���h�������v���,�����7]'j��X�q�=��C����Q�����p���8��,��zL�?��J�,�X3���8��]5��S������g���~������N����~���T�i���e�c��b�?�=pE��R�e��JJ�m��'�
�*-�/����of����@S�����O�?�� f���Q�n5�C�9�0��
������aq�����/��r�q�� ��W�g}���{��]�*-n���D%u�����s����GU��E`������b���E���QG�|j���J!^��!x|9����g��T�#�8�� ��U�X���[���ChA�t�O���w����}?2�1��X6<�<����R�i�q���H_��^_%��=�K��^��1�3P',:_��u��6^��.��'�jKU���|��[je�sn����;2�9��f����Q�]�-���
�:��v����QS��4��(�i�<�����P���2���r~���E�xT����T�q���:����2�z�S�oh��K=��3f_j�����*O��L��-��9�<��jcO	�V����7���yN�2��^x7u����y���@�����&�2c��Vh���G���3
5���S����N��"��E�RW��!���������+����/�X����<�����w��c�Qm��d��l�x��%�:Hp�������y�	�F�xTO�N�Y�&�3�l�9�_�z}���n� W��
���o�	L+O�(w�)���-'��lx�#�e����zT���G����rV��L��!-��8S�E���������>��D������
�1�m'?*~�]�����50`h���#��<�Qe��!'@���?
�N�d���9�#���r=��k��St����M��Jh��8���3��G�'���]������Q�9����Yh���5��+��a=�|P��������v��V�>y|�s���n�:�Q��A���^S�?}�)�|��I���To|���7���=�K[����������?~���������~�����O�<��?���~���7_�]�x�������r����������>y�����v}w<����/7wW_�v���������5w������~���~�������.����7_���?�]����Uq�K]>`���W���?}������;V�����|s%����=�����p��?~|s,��������qsw��������c�����t���������?]��r{{�m�>~�rpG��s|����z���H�?�����/�W����������~���O�{�����O_~��?|�Sz{�'������u(�k���#�������;��e�g�rT��^�r�(7������?��������S�~>>������o;y����+�����~���������#o>��f�������~������������n�������������������}t��o��_96��7_�x�������/�W7������=�����_~������_��s�����'_]��{�������������������O7w�c���#}�����on�������������Y��E�rn��)�}/JQ����������>v�z��G���F�QO����V�7�wo� |;�{^�j�p��|'�<��>������=�d1~;�}#��[:���������ta���/��_��6���@������v�+<C���u�4
���M��=#��w>�-��~��p�|��'�-+��+��g]��d�~��y�������`]>e}V����O����.�NQa���@�p���������q��Wt�|�Z<K���ZE����Q}~D�`,��j\9K��X�\��u-�0����c�y}D������h%�Ak����9:s)PK	`.����WG�Ue���EJ�G��C�>&�E
v��H���������/���=�G�;<"8
����6������Z�O*�K�Ah)�*���0��:�-:C�rr�W4�M�������P:i�V\���WI�[t�����lS�-:}�Zd~T%8���V���9*�,���@F�c�faD��u=�]4q�:�9:K^���(B#C�=�f�k��$�b��UJ)C�W�cM���V\7;�3�if����/���2L4��zTJ�����b�N�}{����������<=S��Z��3��|�l9�l��2�fa���<����X��V��_���B��"yFg�����D�d���+SxIY�]X�Y��FhQ�P���~��`��/R�Z@��C�4
A�l�9f�;��"�f����c�Tu#Y���U�B��z���U(8����ft���=w���^�����.cT��*�Mm����pgNex�c��B���Y�3�~��g��6]�b���6����5���)��!��������l9C��N��3���G�G��f���v��g������st����oj�/o�j�y\���/V�E,:���_��|�����:v�8.��T5�V��Ov��������s0���X�y���7D1{W������C@l�:����\I��7�hHB!LA�j��t�	��^D_����m����Ujv�G���w�m�;������X���>*�$n��rg\)����Z	������mY���y�76��/���i���m���&�f}Fg��	 �f1rc���:�T~�$������OIg����������z:A3.���n��W)���)��x�E'\�Z�\��nug�[h��h�-:�g��,�^���rgfG�5J���S�������TbkL���MG�G�N)��\P����+�fn�R#Bc{����2&�T:)�5��L��H�
��p���X:��V�$�7g���p�-�NU�Og��r�fr��D����l�z�~���H�~*���	���2�].��ze	J78�.�lw����C����Og;WX
�]Dc�r��#��Ep�7�������T��������w���C�Og����gk�z�����#���m-�z�Og������U��~:���\�~��1���L�3&bL0�}�qxX5Q��~:���)L����{z�����2'�V�
��<Jq:�e*h�g�$�P�>u�T*����n���A%sq��aN:AR�_���I�%��'Nr������)��������v��D/�S�����#dWEu�/J	�s�u�:21����yT�`�P-?v���v�?�q��������0\`������vO����ee�,N���	>��q��D�lt���
S:V������*=:d��Bq���*�J��99f�7��J+t����6������F�PuVs��������z����x6���Qcn:�2��
�b�Og��^�K�X�t�+��]���������7�`5O4��"�&��Y���l&�{�B��s���9L���M]n�17�������h��<}s��r��ucn����D���zL�0W�:�9be�!�*mt�
�>7����b=�5�f�M�D�;�������<����XRy����f�md�/��Y��B����3�L�Q��2��w��v���@�wCN�LG��X��Uu�17������,f3�17���w��@C���]���=�_8�Q]���@��t�s��(��J%�s��O�����|1�f(���J5��:��c8�������S������7�17�:Zs!�S���������U�T_��8�[��EZ��t+3c>�^��ve�a6�y�]LI����v`�Pg�17C���s^8@���t�wB@qASx��zs����]��������������7��O������zF�{����)5RoJ�~����!�>�t�KTd.LBu�s3
n=�g�}k��0fWf/@� �Z?���A�n=A�����+����(  o��#����YEu�_:��1	dO���C%c2Q�I������y�I�17�P��yL��������`j]�^��l:��� ��$�0��d�r.�$[�Kp��P�S�c�oe\��H����lw�����2��Q�$G*Y]a�?U�d��Dcd/�%�M�c��D�OKg�����]O���B���$��my����SM��]�������DG���j�*>LI4�M�>����DS�T!G�_9!S�G�%��8Qk?�4��l��T|Lg�N'�F�{��MI4���cT�R9��D���S_��SHX�c"���lw\�����e0%�4�3�j(fj�2��h��o�VA�1���P{:u�R�d!\�)Us1������Q9&*5��Q�4���#����J�)Lg���_�}�0����t�CV�/��DS�#7�.�.������%��`xT��Nn L8�i���PW���!j�0��\���h0^���.��b^+L%��X[��<�Ds�]}S��a*��M�jsAQ��9N����3���UN6<����~�/�3���F�(L�9q�SIt��U�������P5<WD�Wa*�B"\P���p*����Uu�Jo*'O%��=w	yVN%�PY�E*��zl:��M���S���4��U�	�2�Uk��Y�P�S����#3�b]�1��Z�p�*5����j���Bef��G������s_�Hu\�P'�'�{��Q��g��&U�����Q����j=�_^�����.3N���V�������[/��`xT+����T-�����<c�uy���x%~��M��
�j�1��yK���j��e��z4�#���qMXsP������x0<��s���0�G��9���os���;���s��-E3<�
C6��{�����]����:��:�	��QN�/�GGT
z�J%6��t-�?�R��3N��3A��s�����z�5�"����[�.�
�G�1���X����`xTkt���C����Zcv���GuOW��]T2<�i�>K��ox�#e%��
I�*����V�8��9S�Vjg1&��v��kZp6�w�8u��X��E���Z��v�tcqjxT��u}�t�w���cy]8��z,��c]�*�������"�}[��g>��{.�.'����������>��g�)s���>������P����-���m��}kxTw���@�T�����c?��}���LW�d5��:b��}`�^�O��qZX��E

�����N�M��������������G��X'��[�_��Q�H1���.>���Z��#�Ju���G�oE��u/'��:�����g�s�b�p{�[�n�����}�f%��Q=�mc���GuO�_��]�����~.�����T4<������A����Q=rN��s_���Q}����V�����t�7�)T�[��:��o���W��������Eo+�7�s��*>������y���S��:{���<��B����3<����.kf�rF`�S�]��G�����Xt��XK1��}.�Y��7�����D��z��(��M��0�Q���bL��q�in���q6u�}����.���0`�cj�*���K8;_��y4<�q=�~���q��8�������x��;�<����C](j�hxT��Q����,b�})��o9Y�@1���mg6]r�3,N� ��>L��#�<������I�E�Q������4�t;�y3$�����`����{eL�>��=xf�s.�{Tj�������f����SUk�S���5�	.q��r=N�mSgC��~����[���K�wB:��|�/�S>�k*�Q1�s�`���5����y�i��?�����<�i���j~����t���T�/�G�A;�g{�(��3��xF��=�X.�Q	�-���=b����/�\X�,\�����)�E��������/3N���b]����G��]��!8#���>J��<���2���i�l�N����Gf�!��8��^����E�G��~"V���D|uT�[>���j�:�}O��E�?�<����sb�&N<j��N���� ^�Q���t'=%��Z'�w����\g�6b���U���_���q/�(���c��n�t;_�oU_�]�O�y���Y�hx��Y6����R��8���d��:�.�(�N��������vA��fb��)g�wQ����x���A����Sry������G�a��}p���������rFD������?^�6/��R�_��BG ^�Q�3����c��:�{[�N�g��N�[�*���G
*.���:�&5�jO{�]���~���������cm�sN�O�������c�	a��Gy:�o�lq�$^�?��!��O�������%w��o=���w���qzRs[��s?:������1���u2�T���8�p>�"T���}~�.�[�8�xT�����P��O<j����vP��g�&�=��\.�(��3���t�Q���m=D�"]�Qt��b]����R�X�����N��Q������|�|���g6��/����:��8���y9'�p��Y	l^�_����6��������vlS��8[,�4\�����:_2<��-��]�^_�x���X���Rk:�)����{1��&�����D������m=��Z�Jp>��B�3M<*ls9[���J��B�+��u�xT/�7l�q��q�������/����y6�w�s���#A�seTf|�J�S�m�}�o��@�]&��*�sb&/����-W�����<Jp��E��^���G��ss�B�!�eN�|M�(��u:�+s���r�zl:��w�{��z0���%]�Q�s����#,]����� �"�&�����-8V)��=���o'5���>�rnO��E|��R�����A�lZ���N~�s�c0��b�#M<��8f����xT������&��Y�����K�rv�~�2��xT�8V���1�(G.��;N�&�����J�\hxT����E�d��G
I���T>��og3W��1Vf�4�����E|L<�m��vf�\8�Q%q�s9Q���G
�9V p�T.���w�:L+M~T��v6�Y�4�(���6�c�w�8����sN�
�54�0�K�?e�8q����������,�����
�z���/�ul~[h��2�������N<�i��K{n�Q�vX��B��J�5f���9�����G!�}K]Zqf_��{��-��g�x���5�.�Y��J��JrFD�N<������U=�K<�;=6��.��-�2�T�a�Q#��?�]�_&�6��q����
/z����j�����s�����v�����4��A�(g�T���<*q�����k��^������GE�)my]~�9��q��.����w�'�r�g�����V��u1��
��5���i��e�����m�.��>n��?����k����,����Uk�K��H+f���G������]'��k�Qy�~��n�C��?�>�s]��Ab�4�Tq���0E�s���jY�K�}N�������tx�6���l�Q�o����#�TX��������?��_m�,j�l�Q5mF��cQ��d����1N#�C��YE���8���l�3N��E/�$��l�Qu�����V~��������%x�E��s�q����������Jp�g��&?�QG�m����$f7��G��r1�W��r����oms�=�,N��k����K�8u��v<#��l0�����M_���v���q��G
w���s4F�&��5p���M���G
�D���^`8���m@��O�;+������6�� �qs��4�ey��D6���W����`=��X~���o������UMg�Q�m6����������h���]|�"�T���8�L�
��?�U���
���9�T5�c�����g<*����e=��,j�g<*�HC�=��3�7r�/����^���~���������i+yZ�U�a��G��h��*f7r�|�2���Py>�d�iZ���YY�Lo��O�Vk#>��Q���i��>km�������������������A�A�����a-��c�yV��s�/�O��;�l�tH����1��zL/���^zIp�r�8�}��n*��9[>
����,|�3{9����jM��������@
#�	���?���;��+k�b�i�p��������)����k^���X>������U����:��m�ZJ�|�2����1V��c.v���zl�����8����8o�m��Z�:��g��S�0��'���m���zJ����{�����c�G=����EOI�:�j�����v��#_�1�o��q���tp���w�b�"?�Q�����/���G��y
��Q�F�jq���r����Y��u��QWu��m��UCu��Ep�r�|�c��p�>5�����YK�����>��<�U.ly�)�r��M���ZH�w���kzq��U���������byz��g������]����[���c<�S������p;��g!��n��og��}���|x����{T���-N[@���>��>���3��T���(�7/,�V'uo0<��Jotz��<fx�q��'���7i��u����Z����QnpyV?��[fG���o�^����������n~������7?=��p{��������|}w�������������W���n�~������/�vw������������]}����Oon������z�����������_??|����>�|�~�pw=~��k]}�|���_���?\�����yw����Gm�<`����=�����8�������H7��~��������7W�z�T�������1Q�C�������?]��r{{�m�>~�r�o�������=��9^K)?�����/�W�������_��������z|�www#�~����?���?������G$u���Z���]x���
W�����;J��]�:�W��?\�����������|�|l�[������v����qW���%���/�g�p��/G�������#���������o�~�g~������?�������WWw7�3������Hc�>�|����/7_�n��_������7���7�G��������~�����_��|u}�~���O����������7����o>}������G����?��������[�|^GS*Y�.|������Em��������[���_3�c�{[Ek5=?bh��G������M���i����(��������2-��.E<J�u<�����e�� �bB��h��b��qm��.,����QB�
[�^��:���zU���1�����m��}�E���z����*�F��M��^��Q|�}(�\yX�Q�U�u���.F�m���	��NR��T�F;�t�!������8Ns�"�-��+�]�Dab���C�����E.'�s^^�9{10�+�N����Q�4�����s��w"0��)��A6]a�-K� {D�r�n������K��PYHC���4BK�N���2kE^L�x�������;Uj����G�Qh6�6��+0����[�`$�>����N��5x����.�
BFiN�y�n�J���3����LTH�S������Z��"\G_���Qz��j�q��Lzt<_L���E�`�#��A-E���7�8���{�1��Leh*�j�<���&1)&$����<�����8o�|Q$���s,!����]�}��Iu[��(��K�v��(�d�����<,w�N�5����.rg;/]��F���	o��
���=q���l�m����9�
HA��l���-��l�^��3��cY�������ou��U���u^�r��*��f�4����PE���u&H�LE��bz�_���9R+��!cSm�&*j��F��E(7�9�S��p�f���y�\;���������a#e���%R�D "�-bX���^|T�������5�d�Vn��F��6Iq�)�0����qO}9��9����m-���(���{$mg���1:����q7�3��IP��mF������Pj���_���P��� r1�`��A:;GT}au����G�(��9?Qg��B'�M�D����� aS>>sj�����f���o��,��lv�EF�C
D�����.��""�����C�Q���(�=�G��D�|��&��Eu��M���Vu�MM����Nnu���i�<41�w��������}��f�_.������5�Qw
��>Ov�YA�}v�
�RN$��y��WD�����\��K��<���4V��}�,<}����T��;?���j�\�������F���w\���}�5^kZ�Q���-�R��!�5���m0����m4Y F�m5r��}}A��n��L���E���9���p����e�I�����+��d�������q�mlW=E5�����q���\����u�HQ5��e(��q�"$�aG�(/��i����O?���w��1���ZS�����w���_�w�����S�[��Z�����e���X���H�XSC��'��g(���r��5�QI���aH�W`P_���
Dj��w*a�&?Q�B�yE�@�3,�v�a��=o8R����Z=ro@R� �YQ��Ui�@OpF��q��z�=�����x��z��LtY��&=ZY�>��A\X�D��g/��	J�������D�W����;��AEPt#���7�z�?��
Q���y���p��GP����^ t��d�T(��`*=���Y|(���kd�:`"�'}�m������T�Vk#N������
�%�Vu������V�&�!�\��������o�R/�g�J�����W�E~��O�����jO��./��7Z����z��=vzZe);�(eA�
`:��v����XxC��Wa��g�3��d�+5�u{!�N�9��ui�G�^��79Y����U�������&U,�{����!��q	��br�>�X��������MN��y���rn��d]�M<�y�3���-�pS�9oXS���VM�����n27���?���9iMIP����:P�G��(�����L�x>#
�
?��!mg��M�4��d�=��N���/���(q� sST.�3���������j=LN�
��~����OMN��U���l}���{������=R�[��s>
~�}�\���]���m��������d���a������w�P?�g�����79�V���8oU���dC�\y��y��d�`%����&'�J��t/��559Y?[���������1�����������y,qB�[����r�})��������
c2N�������rLA~�~�.�k��ar��WHk7�����&'"�bz�2��l(��m��D�b�F��}��:@��cr�!����P�[����9z�7�n<_�������w���
������9}7t�O5����49�8���p�t���������ll����!����&�-F���0����� �����1U���='��`��)$H87��S��n�)�/;`We�����"�jZ$��8��e������4�����m�7<���9H�Y?�}���������`���P��Qz]����
�ha.5n��c<�7���[�ur�\0{�0r�������9
fo8�e8_x�+�������5
7
foxS�mi�u}�`��i���]<���t{Fa��;�gC0{�Th)ZA�s����0����.��2�]�����PT�Q���0Z�7����aqz,!�-)4B�3��a�$�����X7{�1��wAOI���FG�����J3Ns��A���7��v���GL�7�#T�����fo�������Ye?��0���7��bfo���c�waM������q��R������?� �(NO0{�qH�w��Wr���
Sa�\;&
Eo+�K�|�-���8m�u}/�N���1���}Z�Y�`���I�����\9��
��>z��'��`���v���;�3��
k��E_���fo�8���r,��GI#���8=�B�%�sN���������N�8��~�GN.�t��a��5�`���D/'��am�=j�KY�?F�N=���WX�V���������>w!<=��3���:W���������XG=�X��G����g1��P��Q�n66�Nd=fxT����U�BZ�������1����3<�v�Qe9�����ax�=�z�����G���5e����7<�m��o��u�7<NF���R{��
���[�m^�iS�n��m��W[�����fs�)�V0K+��RO���*N���(�h�V�R��3����1�����M_����Ru��QG��]8x����G5_<�t���n)��~�.8+����Q�y�����:�����\����3N������5<�I����������x�yL�+
�:����*�������% '��0�
��E3����io�:m�u��(#�~��|*��`x���jKb���L{��Y����T���8��c�u6����g�V��G�����A���ioj��@M'�����J����3;I��0�d3U(�[^�r�Ah���A����slT����(��6�Q^�;l�t�(k��as}���R'��AH��)'����"�5�Q�q�&����r����v�RU��E�G��*
ynJ%��O��Q~�����R��(���%	���\a������1��gY
�����8�����=�G
�r~�1`�U)?��m���&��8�(�p��f{D�G7��
p��~rXt4<�
�%�1h�(Q&�����`�	��)E����|90�9�i��������G����`�T	�����{>�K.t�~�)km�'7���G7`�;�S�hx�;� J|c=T�0<�C�k�1J��w1<�
7	��)%���O3�l*f�g<��7
Z�,���b����3���+jw���'����Ia��(���m�_|[��\��J���\4<���I�����0y'�3��
�8�c�s�����E�
�
cls[����0<�
����yL���Q��pn���0<���=G]	1?
���a���@Q;�������@1�8���3��|��i;��:��:YqF��G��5E��Um�����h)�lx���mu`�Y`���(�D?[��zL����(?\p1��8=�hx�.��w������
R^g��V���f��`��|�&��a�k��F�������h�cQ������ua�1f����w!�A���Q~����N]u�j�����E���Q�`Ny,��axTH~��y+x'�����9%������Gx���U����0��:�����G��Bv��t���}���0���o+�������)�P�%u�
��9���a�~�z�����6.N{�D�����WqZ&�${��h5/���|�8/E{!u�
�@�.J<9N~T��4-k�U.4<����p�S��F���3^g�3��w�9iW��������G�F�F}u'4<��c�y���b�u<���5�3���������{���">�>�XS�=��KuT}�?Iw%�9�������)�B���%[��.�z�����y\��6��G�'����	����c4q�4$'>r\�@I���io��s�����P
��O]���'�S����G�-���*�@_��:5���B�2��	���N8�:�$��p�[g���z�}���r������a"}��x�����*}-B���_Y�+��Q-��;�K�3<��+���<�(%�n}�F�>aS���Q��5K�}e;�T_\�ba�x��Q�m:h�OV�nq�Q�n:h����Z�QIn���q�O6<�G��:*���h�(7���.���x�]��Q�nv��"�^�si����w�z(qz���CwS�_^�����zv���/���7���ke�IB��4��z�8&��"�������k�aM��g�z}����uxe�z}�!��n:��0�^_/w.p��8�xT�x��-��v2���#����~2��>�������.M<�����f���L���M
ur3hi�Q�5�rP�G�x�{B��X�����u%�
�I~��mM7�����dz}�u�^S�Z��)L|�3��_T�M���b�����zW����>h�4���4���;�]��N<�� �sM�S����y���!D^�x��$��:y�&�_��=G����:g{p��5�s�bI�|S�m���1O�E���&����t{����|���P���nz}�nz��������^_��R�]h�$��\�e�;���n�L�����1�TE/8]��msJ��T����`\���]�����wr�r2<�
��j�M3A��O�
�f`����1u{|��0>���L�������7�����T��������t�r�v=i�����i���-7��t�|1~��&�?��j�'M<����N�_��jx�k��:���������~���=M�>�6�A�OE%M�������W��A2<�
���j��O���;��*�dx�w��������z��OG���Q~��������B��������/S�������D%]��5�o9��8#��(�����A�M����]`T.�xT���w�^�9����9�����G�H�{�l�z����yV�uN��=7��������Ke�����	Z��gX��M���I��&��|^��c���|Z�
1�I�;��^_�t7�B�]&5x+&N�����&����S����@2<�	c�s�O����7�����eI�G�i�tj��|jxTH���� 0�dx����(t����Om��p�b��R��v1��sN���u�1�:�X��4����{_�r���3qd�B��1~T�S\=����Qa���S�^���O�l�����8�M�M�^�������UHS�/�mwdixjqZ����������8��g0���6��������6/E��)��s�n �)����^_������S5L���#4�PK9U?j�c���P�����Q�A+����%��Bm�1��9�<��
�*�q�����\_�l15T��]d�G���yz�'X�G�}&wB'�4?*:��������/5$�0����Yd�G���=�D�-���k�3��],N�6����^��y~jU���8�H_~��Q�m���ZY�B��E�Q��9�]�^_�l#�,z����F��<���E%��O�}W�.K�����8�>��K6<�85tY��!��<��*��7�;q6�����]u&�3�Zlk����i�d�G����V
��^�x��������g�|z�����b�B��d�������\(�\�8������2O��\P���g�],N��_��]Q�1��6
fp�����������j�a�F������g| N��E�z}}�AC���e�z}O�n�������G���U:W����U�h���X���4?����4qW�S����kfoK=�9N���7T�`���U�Q[��]���ykx�QR���NV���e�-������������������c�y�����I��������!	�"O����Vu�y���20q��N�/���;Z���L�������'����K��
��J�(O����-�T�������c����\N�z}�Q{����Ge�����_�����Qm���="��^_������9f�G�������2��J�t%��.����^_��+���.\�z}~���r�;��aq:x|��U��>P�z}����N�������Q�����z}��P*��"N�^���9��I6<�xj!����p��m^%�ck*'ul}�z����l��\��W��9��0O��F^R�����S�����B�m��B~������]{�C���j��������L��A;_�X^���85<�
K�UK-c�G�.�)2N��_���?��<=1��A`����Z6=Gb*u|�m�A�Q�
S�/��o
U�O�^���kg{���~��~���=(p�<��6<j���Z�z}�^%G�1�m�^��<�
|��������w1�]�<������|��Z�A�/�>����;�8g�e����z}�w6��1��S�o�Y��g��bxT�_���.���>��#=��o����G=���~��L�x�<�����C���Qm�(�������G�@��M�Q���j>Q���P1�g���:�����3N��.�� ���Q-��tG�����������?~���������~�����O�<��?���~���7_�]�x���������{����$k������%�������@��h��D�(�U��o')F�|����������{�����k���������o��_>����������n>�r}w�������������;������><���W������t��w7�_�������;w����a�����>}�v��/��]�����~�`�����{.�����?�Q�����t}�����������O?=�v�}���������������O��_no��o������~r�o�Op������b�����n�?~y�?����������o�q���ww��~�������������������4��i�^�2~w��&s\�����Q����Fw$�����3?������Ww��|�||�[��������y|w��������_������/�%^������q&��z���������������8���������������q:������/�Yx����_O�\=�~�?]�����[����ql��~�������1�o�>�|���0����O�n������o^����?}���_���R����������9���u��[�,�o���I�?���k{i�Mh,�Z0��
����
�q�)
���}	����K`�G����i���
�����V�Pyy~����;��E:�
Y�W�~I7�:��Q���8^X(|��}������c��h�~E��1��m^�.m��_\�������

s�R����a�G-���V�Q�s���}�uX������R?#�!��Q�����He��
#���@D��J���C�Fr�/�>Q�?���4�V�g��h{3Vh�|����"c2Rhy���,�`!>m���c^_$x.!t��bH�S�Pc����L��0J}v+a'x2��-���xh�%5��JF�d�������g�����X�z+����)D��qAkn<f���LG������P��j	���T�U*���YcA���O��z��>�N���1S���)�/�Ec��������RZ3��HD�hL/"���;9~������)�v��B|T��H�G^D���\)
AR�l�� '�I�',�������.T��Yg*��Lg1�.��~9\�}U��SCg�O��(4c�������RR�	S&9�UX�k�
�;1�q����Pg��k��eO�������JPZMQ�L��u~����2�Y+�s�!yZg��A?kVX��`��)I��qc&��U���sJT�M��x�)J�
��;kq0-����<��O�n�^�_(��3�~�H�+�n�P;#�i��g��l�3z�����3��$��OR>^����zl����]l��_v|g���a;q�)]1���3S8\`���s�.�"��D�_�wv�#|�$�F�li�A����b��*u�2=���"{�I���_<#���UE~WvP�����^�x����3�>4��>x��?���^P��%|TQ~xF��K"nS=��e:��CL!\|�����?i�`.���*�f�=8%�DMi*�$*Ir*�8#�;��
 4�e8��9��L�u�b2�c����f����m�6���c"�����p���4F������9b/�|���X�F�����`9���`
��y`�%�H����>��/����h�����P�T���.�%T[U
�&.Z{�=�):/��M[�fEg$��m�oy!h�JSmiU��@V��G����;.��Q�g����/�_T�:eE;�xJI�������������LT�"�u �+A�9����;��(��xz^$�����i��'���5���<6?5E]��(8ir��)���vM/�-?5E#����N��3���G�s�W~��%�sT\R6�n�`�*�7�s�)2o5��O�6���z/J2����P�J�N����i�m��@)��yx^��w�tD!�����y(�|2��w���������q8]$?f�������}�C^�J���q�#�/f�rO��X��["�X���������%�Fo���yl��M
�4�������RD_�7�{��9_��>�s����lJ jv�7���e�!�0����U�
:GQ����|T|�����q8���i�T��8��sF��O&8~j��M#���"��������Dtz�p���(��_��mN�ul�m>���B�4���G��w.n~�ZI�!`fN,t3�������:�-������h��l�NIp�����^oz�"��q���,F��N�zLM���
mS)�9���r�v����:5�</<��L"��iV�V[�������)�S�/�V�m���J�l���/l}���D�u��e�#b��B�����C��s�c���ynY��w�i���tG"��8(���7������L{���<�����}�����;ul8�O�i����@�a���SS4$����P�bxn�
�$�\oNW7_.G<PoN�����*]c?g��g�"vP>yj���;�^,�8��OM���q��z�]������,�5�\�Q�>H��������v**|�8����g�*MQo�P��Pi���o�`����`]oN�#}�c-G�c���<�M�Q����!��y��U<fN7���c����|����}��,y?Q��0kJ] -�N;�t	;�|nj�O�j��	��)8��=���4E=5���#po������l3��������r6��_���h�^�6o\�a��>�P����P�~1g�\�{������G
��9�a���c�W�4�������d�����q?5E�t}����j'6gifuB�Aty�p�J���:j���Q��gS��b���g����y�X��N��!�JB�S�
��<�>��^h�z�p��A������3oz��E�1��0���3q9���-��Wr��Wu��)Z�sk_�
�|�j<\g�RJ��q8��������\����V�1�N�:0M�Q����"�
�)��v�:�zKA����)�j9������)���vZ�VLS4Y����v����=2���t�OSSt���u
p�E{Y0<*m���s��Zc��B]R���
�i����;	��,)�
k��s��aj���X;�CA|���(��:�������r��4�~Z����=u��Y��aj�v�x7�����<��tl�����W�~�9LM�!Q�jn�za��GO��F����U�&�j��x�m
�*�z��y�
�:������A� ����,����+���Q���C]� p�`xTM��_��sw�����L�����c0<����bm���z� �:�D�/U�����E���Qm�B.�a<��b
�I����&XZ������4F�)�����6�M�1��N���i��!��j�$���^����@�`�z���Q����	��Qu@d��^�����Y��������Q�-�������o��Q/iXQ+I����qL�	�^�fLS�U�s�Z���i��5.����+���B����u��Z����9�N
�z�������`\�����
�]F\(|�i�����s��A������.��z����Gj�=?��G�xg/�Qb����8f��.��
M�V���_�Y�Ca8���<����u5�(ux�m^f��:]0<����;���w���Z�_��i��)��q��uZ���6�=5<*�s�����g3����1�G�G�>��s���U�n��>F�c.������(������E�@0�So�a�4����}���������<U�z�3�:g�t����`����K&JrG0<����=u�`����%��a��n�x��|�B\��}��Q�_������z���F^YT<v�G%�)�$y�����'}�Y�@��"���*jFw�g����;xzE��&5�.�*��M.T�������h���$���t���Pk����=
~L����������j���U�����~X�H�MB���/����Z>��u�u��������Q���ax�ea�C�D����w��N�	k�w�3��d���0<*�>��$n*��l�]�,W�cQ�
�G���[L����������G����D�A��`x��D.��1�-�g���o���>��;�(�r���0�(���e���ok�~�8g�fqn�����3�#��j�q��jL�z�>Y�[�9�.l���{d�gG��B�����X��E��|K��^)�'?����y�)
�
)��G��hxT8�z:�������N��^�*��8�Q1��1@DH����QG�� �+��X��i��?E,����:<I`���/��hx�O�q!|a��h�z�r����q����s���9��]��&�s��Qq�V�4 �g�m�	h8/R�k�`v�k
�Q��ud8�w���
�������	�!u��~yO�����Q~������V4<*8�/�~Teca�K���_�4u|[�m�����2!|8f�bOE\
�:�~�~��E�f4<*&��k��	\==�J�����1������.rO���7��������D���TjB��:]��w�*�A����N4<���<� .T���Q�my9�f
��a��&'@����Qm�5{?,�E�����*;���>�����}(N|[��|��	��J�]Lu�)��[
��&���Qn�5�����O)?*�5�%G>�h�.�����r�������]�q���������~A�i�\4���7a���
�z�4���������=�H	~��;������\��iZgfP2#�5���i;���������j_�OGo�ZVbm1���������"�
����e��FJ�~~h��G4<*��dD�i����)�_�B,N~�'����(8x�����l~}�S5[.N<�q66�Kj�q���c�P���8r4~T��fh}�Y|��Gy����A�s��6^8EJ�%�������f�e�N9E��P�����P�\�@�dP���>i������&?��;�W�D��Bg�����N��(�qy�w����;!�"�����X��{N��m5���K��E�w4<*>��F�}�5�w���l�����<
�+��`MZ����39���W1�����u�m?��uxV�9`|Q��g���Z0���_&?���������M��T�E�d4<��M��7�Y�sm�i@DU,5�Q�m�1*������-�+*���Q��s�R��8�Q��R�wB3#�Y���r
�0�]�:��Pp�U����A���}���4<*�y��7����u������wq������39����-N~T%f�5Tk4<*ms��;������v���{�����*�<~��%�GYu����u��&���EV�%1^W�a���)S�|����JS�/�5�Q��?Uk�?������E]*M<j�H����s��Ta��#��!=�QG2�	�������G�D���ZD__2��6����p����|?���{?���J����:��.NN�����ur������7j�r���z��_�4Q3�e?�l�So��������O�G?&���{j�PxT�=��=�9�0��d��&��G*���Q�(��l�S��w�q�S
j���|�)r�f�{��&�������]8=E=�������]��dS���z��� ����>�����b��|��}��Qbw���%6���Ric�3P6fv���t��RZH��(74D��H�x�]����=y��P}��Q.l=���&����7`6��gS� ��k�?��W1���] ^W�
i����:]��z��]��\��d#���)���y�K��N3���[�mmT�5������t�J���/G��U��H�vQ3H��r5��=�I�~�9�o3�\�� �������$��);�QP-�~q�!q"'Li��E��5K��:E/-b� 0�4��H>{���M�qP�p��u���!IS�/�|�v�|������S����^������5���7���U}�i�Qa��v�&�����*dx��E��Q�`�������]8$@�`��Q��XG?�q�Gm�_�AK*��x���9�Q�K���n�=�g�8y��Je\l�5���4�F;E|*t����r�?
����x�k��PWR���r���EZ��i�����g@�3W&����
�Wu�3<*oX�zG9�N<j��B�
=���cc���\�4�Q�k,����������z���&?j�v���-�;��������A`|�N���m��#y���i��������)�)G,���dxT�4D6=6U��x����{J�����G�!�
�����w1<��M������&u\���p��xl�Qi��Y_W����-~��N�5�*u��|.J�1M��;�}���;���)���'1M~��eD�5�	[7<� �R���;j�Q�No+�AS�[g?��B�;�I��G�mN����j(gz}y�Of������yu
9aT>���8d]��"�=��>G��x���5���98�SN�5;o���1|����Px��������U�7��������y�����e�G��i�F��P�1q�L�X��o������n����<��j�6��q'�����$����Q1j��Qn�([�0m��Y�A����82�4�:L������>��N������^�|��0:�����z
���wdT�7lZ���0O���/��@�I��l�����?*����y��
�ah�R����6?��5��#�5�o�&T��q�.���[���_����S�o���n��������%Q��s�D�����i�o�Z������C�S�:�Yzy����I�����j���Qe|��>�%99�}�J�MW�z��n0~Tq�A�����c���*c^��C��������0<���uO��(tH�������i������<����,s1�s�
�*����:�.�s<�i����[���\��N���[|r��q��8��Cm�4<��e����m��Xs����J��wE����x6~T)qr�D�>?�lzJ=�N�9������8�@p��Q5��AE'����Q�}��}xu^L��f��:�������t���O���Z70?�6����9Tcx����n�!�>���K=y%������^_ W��F/����74�����T�-��^_C�P*k�b?�:����s*1<��:��u�M��Q��D{e,exT5Xh��N�2�F�����k-���������>b:b����i�n��z�S�"�����j�S34�������35ea�jD6~T�qP���6�5f�G�#��~D���e6<��M�=�^h�e��ZI��*�����GuW��������l�G�������]���GKpO�)+0�lxT{
���+s�:�)�u�� �t������W8�F���G���]���~1<�u�|�,1����lxT�����>�gv������=DLgxT��s�w�*���N��B���'g�����X"|��p��Q-��@�P��lxT���~A~��0�G��+����T�m�iq����kLZ"m����z������q
�j��������6�i��1U�5<�x�_�Gk4;���V;m������A�,�������</*�7<�8s���w��lxTz����w������6�OU}����v�sv�z�g;��z(��U>������Y�Qk�s�p�C��>�(�Q��G��G�@��V�hK�����������/���o�_�;�������~y��������Oo����ts���o���{w�o��p}��������~w���������_��N_~=��ts}{<Xsg��������������7�>��������X�����x�w����:_`>��������O����������C8������?}w��n,���7�&]���v����������O����G��������������������������w�y����|,�9>��������_�����/�'��|�������>�������������o����������?����������n�����v�7j�>
A�PO�oU�_N�?��/�z�zuw<���������k��za���q'����������O?�rX���������������}����;]�����?��??�;���?=��_����r�������������������o����%>\�G������n���s����������h���0������������?���������,ux�o��}����3�~U��[$*����u��{����}��g�}B�g+tI���+����|���nG���]��D,�/��
���^���/���p��1�|�:��/.����%�	\��(��W�oqm�IGx��%��C}����h,�WB�XB�m�������/Q���(�����g �����WB����g ����D#�9�b���x��J�����|�<T_^�������7D�"�j�������F�8�h��E����5~��������+�����z��a/��Y�������e�NJ��(��bG8/KH��gfHyJ��hT�RS���`�G0t}
5����>�~l@OCSs�=�j��)��"�I�
z�LX"xv
E�g�L��1���N�l}���W��K��c�A�j\��u�R���<P�Z#����\/~A^�f��w0�_gDi�����]��(�Y;#�SY��Qj�f���l�N��J�E3p�����U���8����#e��)����R�R������=��U3g�����-����C�e]m�I���-�2�F��5J����U~4���|��cm�������q�4�(Y@���,uU�zTfY
\�%�:G�x}
4��!���,m3p��a5��[�%0\�E���`J��k���>��P��&��y�zR���5	��H�������g�}(�Pa�*�B�n
�6��x+�<u���}�30��*��w�(�OVr�2:���Z��HZ�$��ags��Z�{�^z�{�dN��2�1���b�w:�h�P�*f�=U��Q�g<������j.��<�Py��I]L��b���OF����!x�%
������Ygi�h|'4N�gZGhR�jD�/���x9t�������������l�]��z<��&p�jq����f��]�Z��M��P�m"Pz��4���/[g5��4���IU��3���!k,��]<#��%P�PeX a�|�����"��S�Y�v������u��4p%����\���!k�����|
c�AS����w�/�~Tr�D�i#�����H�If3��bp��E�5�;kH�G���D�������m^&�(�5��n�����f�Yw��$�l�~�Q/n�
���:�����:�}��.�jZY����&��F�P)�S��o�j|����f���oH&��s7�Y;b�,{��YiZ�U,1E�b��p����t�l�[������/�Yg���
�TQ�6
���JW���4��#����cj8���
���7�.l��(���h�y��dQ��SR-&���r~�������T���924PR�b?�yx�p:_(u�8#���7
�{RY?_�QNX=���HEG�M���9�n0� �A�A<�Q8]	��6�,�`�(����86�^$��(���qq����g��v*�q~J��M���|eF�t����S�A���k����
��))�|b���������x�p������G��XP��4�7��i��c��D����s���9nK�a�4o��@;Uk�d�;\I����\�7���9��KGEA��#��(I�(�3gN7&���>Y���y���������O`��h�}�OI��8��	�������t�;����>��hc�.�%����h�h�c��x��L����~����N���p�(%�))�I��t��^{�p�Bj�&+dI�q�\��[:�}��?�W��wQ��~����p�-��1%E�6��g�joN?�
���6f��a���A���6
�wv���*��s�]�L=���X���>�����A!�~J�����M�WHE�9�n�dB,��A���.�;�J���5x�p�Z)]��T���K��
�\�N��_�G�q�-[�����O{��Q�F�%����dkI���1%�=%g9NZ�Z�Q8]��J4'Q��SRt��X���+�l0S�(}@rV��I���HrO�}LI�1�9!�i�SR�����m�F��#����V/���(�~��A�y����F��<c?��a��h-��<�C����)B�^T�lN���
�{T�b�b���8i�]��]�#��j?��h��s��		o?%E]�dqg��r������Wc��Q8��JiSJ��5������w��{�))��5�+N������s!E9����=��;�O��R_�Tc��E.���OIQ�8V@s��LR4s�]��0�����OGyTQ��s��V���S�����<���)��p����j�}R��&�8&�`|!�NT5G����k�&E?G���s�;[�9:����H#W�b#C7Y�F�D��9�n�{D��Ww�Q8��y���d�(��P6��%�w�#������=����F��>B�!N�����<){
����rJ�Y�U��i�~J�VJ#o#C�O6
g��_n��*�2
�(��9Ps�"Gs��Fi]���LR4UJm����d��)Q����A���M#Z��z�r^�.aJ����\�S��))�)����T�a�c����������h��� ����=!�h��e0<*
�2������?M����.��0<�X����'
"W�Ge)oH�K!�����c���>LR4��R��N��h�|�"�:L0<jh%A��<A�t��������;/&)���j~��O�������nPcG�I����)$$���0%EC.�{��yT0I��)�^�#��}��h��o);�jJ���)y_$$��`��5���f���$E��W�
9����%� ��%���
�����DI�������s��8sSR�D�� ��������?J�������Q5F�������X0<�� u<�	<;��h-��<���~���:�b�����;zQv��~���&�OzH���������F;U�L<d��5��bxT���K�L������z>k���NI�!]�~��2�4I�6�<��A:J�S����Rkk�H�&)zd+����9P0I��,���O�~L)qWK�F�|��QaHX!���*�3�o���9��F=y�=H@�k�w1����7kX������+%�wu��@��-%�^��mQ���G
��|Jb
k����x�w8�W��z*1���Z�p�
�G[��5���V0�S�k�8��&��`��c�:������d>���)�+���Q�j"���w��:���A�Z�O����,������vq�@r�3�(F�y��m*�0�S����N������d6w�
����3�4��'*F�DN�U]�(P�m�1>H��
��jy��T��5&���lL�Q��jY�K%�F���Ae��/��K���J�~���W0�
U>���:��dB��Q��V9�Q���Vu�����P�������L2To��G�iPZf�m#��{���I������bdFh�����1
���R�������TU���j����waL'��D����QC��������-f/����$E���_XT}}���������_����q�aO={Y�~/��D��6�I�1�4n��?��]&�d�_����0F�j}c��^�E�c0nT��/L���ok���;�9d�a��V�1�� ����Oka<��A�Q��Q�#�W_��A�_�3��7���V�{�����<�tJ)?��a��A��"j�q���Z�v
[�%N~��ty�������jU��Gg���H����!���v��C�T��8���V�����#:���yWRWD�q���6��c%l�O������8_|����R7�?S�p�7;�w����h���#�p�t�������#b�h�z5�~�	5!����;y��W.�N��?�p��O����cTl���������RDM:�3��t���J������+��B�5���J�OF
E��F���b.q?�5�Q�m�)���W!N~��{���{?��^��/L��m#"�	�=���/��m�skx��;��u�q��jf���~E>'?�w��=�W���G��w�_�"���U9��&��0;m�1��R�5<���QHyT�z4��#�c��f���x'�cG�}S"\�$�z�����R�a��hCO����M��������=c\�M�?M����r��jI1M;��������4&Z���N	KN~T��p��T=(�q��Q��]���qL��]Q6�f|Zx7�^X��@������]^�
����
��.���G����J��q����y����p��R
5<�C��q�d����MQ�3Q��S
%o�jrx�/<�G���J}a��6nd�<����7-��p�����s��t��%Q/�y����O�^T\X&��c��#����Q/if����R���7��>��M~T�xI��Q��q�����b��t�����Qj�wPZ���Q�G�AQ@��L~���a�`���|#����W�0g�(����w�
����r�(?���]�1����h9�������
�O7������
Om���!�u���g��[�_��[a��9�P��:�i$'q�!Q�av:���v����+��G��)�o�����Q�6����.���Gy��yI�L~���+Q�����G�I�k/���:��G���sr���'��!c:�G�1E�Y�(�p�G�������A}[����~T��;m����7M���y��o��ryd,e�(�kJ�[����G��=�wq�6�.u�uB,��������`��%K?*:�����FdF�G�H.�XU>��Q��7�g?���Q!m����_�u��y��g"?*w��)k("K��
m�$�g3
�{2~T>7����sL;e�wK�O�����su����9r��A��}����F5]Q3HS��������''7�O���E�����@[��u�bx����R�P��?*F���}��~�i���.��H���i�1���,���<�O�.�f�&?j�O&���A
����c�nc��qN�����-��F�+���>����XE.����h����!��EX�K���Z�x|���G������Qi�c+���
��QG6N��Q��&�G
�>�B��^A2~Tm��u�P�h�d���#c\�QQ�����F+y���0K����!���N`k����X�#�U�S��r��D����ZN2<*u�Qu��6fxT���9�}+����#�H��GS������/kT����&���O�o+4wO<?*��e���g"*dxT�c���;�����r*��CK�-�d����#����j?�����~Z�����o���b��"N`������_X�*[7~T��E;��H'�t���<���96H���ia��gN)�'��J`�\�!�x���Q%��5`c����:nu��y�"v0<�8�;�����~a2~TR�����������9�}��GU�������0���I]P?u*�1~T
���@N�PR�|��[
�WvjxT�j9��5QJ�G��z29�N���G�&V�A�{z89��N���w��`��9�����8cm��%���i��gS�i�u)������}u��=e�M����):�����8���N"yk�k��Ep���Q����"jJ��(�=��EG ��*�1<*>���}P�R����a�va��FmO�>�����B�-�i��� �J
^A2<*=��X���g���M��������
S��A�S�����k��r��|��Qi�V����������!�:.5����}�=W�������\7��L-5q�u��>�U�nxT}[��#�Sw��Q�0�o�����i�=�S�Z]���G�PXv���5f�������li���N~64���S��|M����?
*�7<��v����������>������q��S�wI�7��0<�Xc�PV��9�5{����xTq�����<���#��'������fX�-u��_�x�)x���N
�:�c�����]�~:j[������{?��5�
T
6O��XX��j[/?G6<jq[���2��O����:��^_��.������?
���`�\�3��=�AO�����G�}��_}�����������k-F����Uj�"�����^_`�'��M6<�I#���<��y��G�Lm���Z�z}���:^���Q�����9�]�^�q�X�����S�������Xa�^�9��������=U�
����.�s~v�z}�xCE�D�b�z}�F���7MY�?��C/g�.���.�G��"�z2�}��S�o�.�����$�<���������������a�u/��lxT��u:�i��lxT�8��q���"���i�|��J�7O�����F5�~����:.�<
+�S�/o{�����[����Z0�C��8��0��q���
��G�A����D���
�*c9�(�6.��lxT)��)uzE���^_�5!��&r�|������Wj0g������n u��3<�l����T�G�x�8s�P�J�������+����O���C��8�ug�Y�g���N���Q�7�@�����<� &�5�?5<��[��-�������TA��5�lxT�������zS���Q�D�A\]�;d���g� �Q��lxT{�{��AE�?�j��@SE�;d���S��|���J6uG����������b
��,�Rb~u�&Uk�s�>��`xT��6e\���9g���V4v�wu�lxT��z^�q��f6<��R������������p��:s�G�~�e�Eml�I��G�L\�d�s�N
��O#?�����f�GU_��1R5�lxTc��z7p���1��;�(p4���$�M�/{����6[�^_n���\@m���lz}��-�����Z_6��:��~��T����RF<���~�,�����J\ml�6f?�����J%����U�����r�c����7�^��g��9t����lz}�P#"���T�kz}�.���^�mM�t\5+�w�'�^_}�8_����M��>���5��-�����[��=�y[������WB�fWp����0;�	����E�
��W]���G�zV1����5��<����?L���U�c����!�^_*��=�j6G6���[���������9���,�������6e-�����P���lRv:�G�L�����okz}�v@����Y�R��W���=u���`z}�3�+�Z���L�/�����u�&z{����\���^�M����o��0/�qwu���������������~�����O�<��?���~���7_�_}�����7�����;�7�|���v�����~������X����/�w�/�������?����z��������|�����Ogzws�u�����j<��Sq�K�/0���������o���������Z���}�o��s�������8�����o�M��}��t�����o�����e���o���p�onno�o�>�������y7��?����w�Op��1��Q��H�O?�����������?��~}����?������n<�O�����?|��wo�������cJJ�������]x���xx7@
����z����|������#?�O~=|���;��������w��_��������������r|���|9L����o�~����������o����w���������������Nw���������?~9����_�z������������7_������������o�_�����x��i�����a��Oru��_W�~|�����������?�:���������������S�-�����FO+Gl��H�Y�nH����K���^��m^���Wh�����R�����~C��Z��q�D������Qc����Io���"�������_~�u���B�O�:�f.[$��j�����~}��,�OZ]�S�F�fV�<i�[j@��$F�Z����ZTStLq�'��K�����8a�����+���&��vr��hE0e�:�u;��T��;-���j{������E�;L��(�:������1�f5p�U|�0�E�����d�Mh�Y%���F��hn�K�%�n�y�3���&D3�	����p�:_����(�&G�8��_:f���m�#|^���������mx��T��3�>� `V����y�R��P�.G�m���Gvv�)�)��iZh^P�8��"O�6����o����Q��^IV�a���T��������d1D��i:��2g(=D� m��%�1K��Y�Tue����6��	�m8�"8�\�������)����#�e�������kj0f_�P0��Z@�#�Eu�j��](��I���U"����E��xC��q�"\���C�_\BAS�����*�^��%���?� <�Z����j!��d��)��)��@d;��l r�'�F�u��R�A��Oe�#���'v��iB�u����X�n���k��
��9���5r�$]Li���O@�&IL���w�U�Q ���k�5u�V!�I��!A���2�/{pcv��v��m�W�����
cp
j�3b8z+�����"O�c�r�Gu���x
�N�.�@I�H���lCV�d���3���"����w�vGz�����w��v!T�@�-aP�Cs�j����c,���Lj;�w���LHi�;�E7eN�����!C���i���>Z��
�K�F�t�2!���.lLN7����%T!f�+���B����e�y�	��f�9UF�t������4�d�P	\M�1��D4�%DzgN7�.j��d����0C��18]��e���(�C���Z��dfEB�o��b���(Q����4��-;���U$R]co�'���E�
��vy��A)D�(�-�b�d(�F$/F��'u�����<�z�w���=���q�=i�-��;U�g���ps���(y�k��6���0?��
iSd��"�Dos��>+��A!{nsd]�������T �N��\���F@����6��m�l��E8/os���������_k�m�Ks���S?��=��-w<g��w�s���w4�(B
�cy�m�������~o��m���E��7�����>z����<��6��Oq����
��������t����y���x��n��0�$T�o��m>�~��~����-�������2+��H4���aF���S���z����`,wI_h�M�5�4��V?����%��$jf�x���������{���m�s��3�����m�Qv�]LW�Q/�gN����<Np�l�1��vC&-���uEo�M\AX�����x���y�N�j��6}��!v">����y���i�	�l���j8�^��x�mO?F
ri�������(n�7���Z����7�o3r��j��7�f(�:�DM��o�Gj+v���/��i�����������<��r��x������Oc�/�Ks���k�xl�dWs���6}��s������x�/�P"T@�>M;������"���6���.�
Y�����zb
�UA�lx�m��#}!|�(!y�m�!_��}t��8�x�q�K��B��
8�o3��U�ZONT���6��1�\zac��}��$�#jj�x��V��
�o'�m�����Q�^v�o3T�aj�|kq7o3���A�Y�/��O���#�z/~����&�f)?f��6m4���u�m�!5�:�t*�1�f��v��)�zo���7�G�Vy�����Of���/o:��:�0DTE[��:�C��_�S�.�#:Z���[w��N�M���K��I��#��x�t�<a�#��X�V1�V
�gzb����;�z�?�]�kvm�(�����D��m���75�����M�D��������\�b�
�P+��@�'����H��Y����7�)�MG���+MG4o� ���@���E;������P�y�����U,eT�z�����SGt4�@��������@�������MG4U�����56C����K�|=q^���P3���c�
���c
��
o0 *�F-bYr
��0�)4�[*�nPT���sl���S��gj��&]��{��'U:�8�3�<�RgK�{���<d��y����o:��G�5�9Qc�#��N��g~��C0�2f�c^�uQ_�#Z�6��3DkC0��t��OE�J0�R��'r�`:��Eq��l�V�M����em�a���fn��g;��O������X�:�m���u����t<:5Q9S[����D������#:F���Vq��"~���$�����#�*�I�U�Q�w��#��a@�6�G����&���E5�*-����'7�U��#4[�����Q�S�b�w�:^�s����:�C�<^�T;|�:�[��"��"�SG��f@���h<a������	������6���y���v�7���n�#�!��{���N��%����(7}F���#�i�U��9eSG���R�[�?��Q�0��u��t�6lm��#��`xTs	��U�N�C��j���]U�z3<�=�������a�j�zAP��G��Y=%CoN����Q�5j�F�SN�M��Zq���j.�NwDh���ex�������.y��v����Z���M�Q�Gu��eY����3
�G�Q:\��B�w����=����������Ma���`xT����y�Z����Ibj?L��sVq!� ����Q�m�}}���:�����E
V����#�;4s���2<�g�K�>���
����Z��r�{�9��c|rZ��<9uW�Gf�Sh�WuW��
�h	�Gu�|�g��6�0uD�a*�~P?K�G��R*����c�G��y���J�:��x�d�j�v0<�5����W�tg:�5��2([/�N��O�7(���Q�����Cin������K�E�A�Gu�b:e��G��*�:����0;�[,��
��S/�Q��F~[�E�y0<�������k��S�5p���g���r��v��f�C��_�S�?���o���P1��Q}���g��>��X���>f7����j��G���t8����j�3�
�d�w1<��������$�0;}���������S��K�
������#��C�v�y����=5;��e��s�n0<������E�}��z���q�������2����muD���t�U�oxT��F=��N���>���?��w4�����{�q�`xT�%���Pye��>���s����z���v���N;e�c��m�X�O�����J�����vn��W!�y��-�f,����n�ie���O5�>�3;�\���^�����s����x4<��1�b���|���?�lo���G7�����W5������zX�������������hxT��{�;J��F�������O���3�������~��G��.�S��G�J��8��b�q4<����?���`��v�9g�v*|P�3>u��c~�����`~��0���Y|��4�T�a���~��d��������W�9�/4<���B-5XQc�a�����k�m���0�hxT�i�1�B:&�����wQb�G����{�,\�v��sU���M�(�0�S����T�����>x��
�k�.��z����4u�t�c��Cqg�i�����J�.�{����b��~�����k��mw�z��O7;��P�6N;��W�/*v0<��<������/��u9�I�3>�����"�R����D�_l�����t���W���;{�Q�ov�o+�N{�,�U�y���5�N��=�����'Ure��O�1��������ALg�i��t�S
������yU���G���x�l%G'?�R*h����Y���G���������
�r)��������	;5�6��B2n]��~�h|��M�;/kDun
���sS;������)������1���'_s�D�S4���8��]���^�hx�;����w1TY����f��:�~E7�_K�����K5�8�QOc���B�6��S����$�P�����G���LP�Z=���#���N�:��q�R�;^�P�S�/g��,��Q�^F��q{����f�F��|�x��O���
�����K��m
�
�&�>�|��(W�����.��x|%�k�\sa�GG�\�,����Qn�pB����C��E�����W����]�#k���+��t��H]��� ��L�/�5����Q]���G��6����G���:�;�&����P�����kW�*���LR#"N�>hC=�]V_�b����Y�����z�S���y�y�����*c�1S[�q�����	I`����L�oJ�P���(��5�4]S5����4�o�����j�6��������"z���Q�����N����G�!���=����	
�r[�c)���X_%7�cV`Vq��Q�m�=�u�m�]�$���!	-�hx�;>.�����dx�w��RM����(?���9��P��
����q�E�3u���~�5����Q~����#+�i2<������B�����4���2G6������r#Z�9h�f��H�G��i�Q@�Q���*|!������������r�����^�h7Z�y���IS��Q����PE�.M��!��j1�89M��B�95���N6��7����E������4U(���,M��2�-�o��6M��������vz�����eQ?M�G�1
1�}��GyGh{����:��1]�S�O�N+���=U����j_9E��`��G3M��Q�Y�J���eI�G=����Y�S�����I�+�%��\��d��Y��&����Q�8E��R��){{����w�z}.�G�vZ�"���2����l�S�m������@�����[� h!��'��T���upV����Z�#R�U���O;�c������^_�[=>H�/��(w������S�u����a?����G����`.��J�G����9��o��@m�7�ZOVS����������K3��3���F�N��!q�;
S	�;M���2���C������v4L�Ps��
)��H�=9hl���F�NG}L�O�������-"�N����zG)�/?*�D��Fj
�=GO^���x�����Y?�N�f��'O<*���"�xe2<*�MZHJ�9?*����&QwHS�/y�����D-8M��?�c���9?��@\8��q'5t�Q��V���S��H���y�*��z}!�����WS�L�o@��sp:�����6;u��+���_�iV����nu���S����.=Ij��G�
W���T����{���"���(�ifl�OuWN<������]ix��	���U�g2<��m�	z{��_O�G�'*���A�
�GEW�����0�t�G�_k,���^��D��.��j�g;�S���c�w#�iQ�m5��>����fu�7���_���K5�9�kwun
�
�vb'��SkL������5�=7���\tX�o��}��B����
KJgxTd=�
���$�����y���yi���~�#s����
5��^�����R-#�R�-����]i�dRZ�����p�Vp7�Z��Q�	��p�*�t�G���c�,�9���S�x�F���U�avZ�IM
����>��D�"���G�������QM�5<*�
4�Q��lxT��z���D�Xvgv
M�����k��aF��U�
����NQ�QzJ��Q��L�d�f��\�M�O����Q1��>�~�<���\&�~�9,�\�z}c�dX����uX=l���^�����&M�=/r�<��*�@������QG@�`>������R���=
j����k�]��������aV=�Kk��d�\���+�=�QG���#��.��0O<j�J^��T},��Q�3���t����<G�:�l�5����6�|��*��y�����L\��g<*��A�6'�;
g�)��U�g����6q7��Q�xT����*��s~T��+=�15���%��	��,t{���F:���{.�;{��r�
d][�����rq�,��R� ��Ge�Q��"^�����.>g�&�?�Y]��)�X��i�x���������ox1O�E�
����$�t2v0<�WGMu:k�9?j������C�/�l~T&��9�*N6~����~m5V9�;Z�S��rO�N�������� �4M����9�����G��o���1���9?*g�����?�Gm3�:���O�g�>���-�>�Q������(������u)���[�x��-��Qju������V���FQ������#��������av*�����\|�'+�1��gra����s>�O;b)r�D�E�x�[��C������G
}���o)��lxT�,����G����9��O�q�k���1O~Ts[o bmQ��J��%nZ�/��Q�3�6l>�w��i����*v����k�k �P|�<�G=I�-u�PDm<����9b�������@�@*G�xT��0��������u����1����+p���U���0`��
����J:��w�s�9��/���s ������;J��g<*�!��}�_����>�Q����l����h"�#��H���a|���q�����
q�?_#.�C9:a���T-4<�R����6����Y��s�1�l�.I�������<��o��J�
�n��Q���?HY:Q��2�5���Z�{D����$��3$b\��8���uE�F~�����������!�-�xQ9b��H�EY6�T�l����Cq�<CR�BqH� $S.���$@��=U���gH*���)�PY�~�gH�x��>�������L�.O�D�k��UD�s6�T}R1>_��<�}RO�[������������z������������N?}������_n�~�o��������>���v����_�����>\�};}������]�~uw�u��������_O�?�\�������xw}����~���������?����:���pw5���i��|=_`>��������O��������%������yz����;^�7������c��o�;]�q}w���������1�G�������0�77�7�7W�N����^���������ys|���0d��Ha�������p���7y�����>������������o����������?����'���cf��}<������zX�OG(>��G`<�/j����g~��__����G����B�����_/���2�d�����o�����_;��������D�q�������o���w����qD�������w�������t������_���������>|��z��r������7��������;�p������c�?�|}Z�tu�a������\�~���������_�t}��������?���o?�=s��q��~�9D�jy� ^t��9�*�"~�5{�iRR}�K��x,���r
�������lU�����9�LO�����x/��9��ae��}�H�a�{��YF#��/&H�������J���	��z���%�I9��z��cu�1�A�A`����kp	Ac|F��P#G<�f����Q�_��P<V�oA$��c�5rY5�b����x�����{���S���j���S��1@N��g>����vT�j|��5�ML�yO��~er{N�V*���Y�8`\����vgu�aZ����]�^;).m�Q��L6h�<fDG�4#�����S(�j��=E*���SSs3����-�B�FI�[zS��SF1�eZ��8S�	��s����)pR���Y��r_x�h�Y��^��.�7#��-[tl�$�h�9J�k�H���A���J��`���e��f(i(��3��tRA�@����:G��xR�^��qk���ha��@kZ����"K���u���P&\�"m??Ec��{�m���1`;)B�u�������T,43������d����J�qF�a�����m�2�EU���Q�`�.r["���H�_���9��.�^�A�m�]��t+1�a����1iE�P�2�#M+1�K�u��<�/����%=��_���Y�_	�����$1��-��`����4p�Ef�*\�]t�-���h�-f�O��K.GSx����@�+���|�V�B�d�o�q�~��.D)�F����.��?j1�"h�a�"�7����Uh�$��Ygdm��e<	�s�8��UL���S'��T]�B�����f��Q;��(������f��Y�'�h�cu'�S�X,a7{O����b�G5������I�R�%�or��tYQ2����JL�u��Upl��T�k8z���@�"���h���m&pEC�[��V�r��*h�<Wrv��L��Sctw��~Uy�I������VE���c���g��hl�;�v	 h��y��co����Bq�������j����u��y�`��c����m��z-WQs�f��S{zY\�����A�i�/�����^���U�_��E�=�j�E��3W^E�����'����"�Q��A��pk���|,.C�����I]}r�]��K��//?�~�����F���9RRlA��nz�\I��O�f�O���*�L�(6zg��8�0/�� ��3�,b8Rl�~�T��[��w!S�MR������urO���F'������ml�Cb�Z�����q0%�EG�7����8f�t�SR�ib��.����SR4P��r�Q�O���~k�.�7���))z�X��&���eJ���`���N������l�zn��.���(��{�"��g������A�XSRtTV���Qj����������G`P�LR���I���]LR��BYA�P^��������W�n#�\��3����,-��������3�Q(J���qu�p"KP�k?)�����q9E��~J��t���V�!��p�f����3�?���deAu��@���*
D���h�����$^���8�����"(�q��&�������uR�0� ����
E��'7����rF��(����D�O
���>!����SR4��7��h�#?)�9F��;J����p������U,e�R��q��,���i������'�Z�I����CK�����h��u>�(@y�����*���(~R8G�r�C��~R8�6n�uu^���(�{�J*��>�Q��c~Q���9�SC��!h:�(�~����3�T��'5.��o�x��MI���/���{.�Q�:����T��'%>q?6�ga�F�<��M:
w����<��q���T���p���+��E%U���
�����(��))3)��`Qq����7id����W����$$|����.S����'��I����S�pR8�z��"��~N�$E KP���p>����f��F�e[���@|[�p��n����rS�p�F��AxX�B�pF��vy2�b:�p��g2N�a���/)��z�)�9��uu��$E9����}���M����\�(����Tc�
b��7I���&��=|4o���m�9?��K�vJ���9a���h��V[G��Wu)�F=�Q^������X��b~u���hr���E����7*�r�zW:���.&-6�c�\a����))7YA��5���h���.@g�}�S�y��G�=5I��$s?`c*N6I����j�,��=LR4m�+�9'��$EC�L+%������h�1�� *<��
�}6�q�-��#�����G�0&)���P[������#�G��������$Es����=�,G0I�T(]Y;���K0I�hw�pg���.m~����Mh���|_����hv�c�+%���N���q�<c�������Q��D�LR4�NCm���e���C�����'�������]02#�7�vnkwQ�	��N���NUWT0<*�V������|.��h��O�m�:/SRt�r�>p�*dxT��]���������f����`xT��������|.U���!k�����Q���=E���^�`xT�����Wq��Y���0�G������7;E�A�o����o�=-�cN���������F���G��:nE�Q�q��Qe��[���8Y}�n�k��W��Q���R7��1��[��J��0k�����hi���~�$E��j�r^P��i0I��(Z��&U[-��]hGF�5����`�znK^���|?��C�]�~�G9����6��tA-���!�
1�B�iQ��G�1�4�k���E�j��9"�����j�+�a}uG��h���_(z���Q�Pn��{
�G��O��iX��)?fxT��Kmk�R0I��yW9�z�g;�9K*K~�(�/�x��:��BIs��=G����>qg�rt���c����c�I���o�j�9r�N���
�j�F�1�iw��Q���G!)I��Zc]�@�I�/�G�D�����V��6<�%��s�3gxTw��.���bw��n���k(2q0<�U�QcH�h��Gw�[`�A�d
�G�^3�1���
����A��M� ���#�XP�v�uo�4o��������`xT�y�1���9������]���S`�Vk*����/������g0<���xG!�=y��{?x�1`�F���x^���%���O^j��)|��Q}����=�rB��z�����?�Fk����������Q=�-��/Xc0<�����.g_)���O��l�"zX��Q�����]���#�h�^�b�M;u��K��_�O6<���0bw�u^��O��F?�U�����n���A�Q�Gu���������43o���&�s`�5����G�����qW��0<����������O����j�G����[�������8R����������E,���>�(�|o�.���Q}L#��?T|jx��\�z�}�_g��{?f�����%�i��Vs���\t��z�)}�����{��>��*���G�D�t�+����S�b�-�x�hxTkK[8bF��hxT-�����Rt�N3����~=�kb<�8��:]t�N�����,:�y�s��~����Q}�"���W��hxT���}�]��c"Z����~�Q����W�i�����5D�
��!n1.���>��O�Z�G%��hxT?�
�d��T���O#k�</��
��[/K!�$r���4��yQ>�����m1r ��
���}l[�+���N��m��l,L;m[���P���}���m�������B���a��=]������a��"���q(J�5�y'����G�g�~����"���Q�f��~�*z���Q�n5G������G����0J����G��e�������g����q�O�;�q��_b��t��^��8�������������u�D��z�0�!p��f������m�4��
G�}�$��S�v��J�,iv�9�����x�q�Q��8\��
���O9!���Kgu~�u���e�Qc�����"N<*r����~�����������M<�iB���T���<j�k�Nn
���$���:�G�<���gow���<�i�|�E�q���2{���A}��GU��v�	4�����<�*�x����Kg����hxT�[��^'���Y]�X��]��-���w6k[��'�4]���XR�x���/bZ]������P��R�m�]����y���+k9jO��r|I�������o[.~US�xT���V�*'�gy�v���
|.N<j�V�n��b�3<*AS�1nc��������:�������29������8������yQ�m=�����U~������Y�����s<����9q^���SU���J!0�����e�i�j���T,���}�+����7��Q9��/�
�:���1�>�(������M���R$�N�T�A�G����4�u�?�jC{q���GU�����n��1a������.�J�ug�cGndk_�)6�}a5�������F�T�*@�j��m��IVi�km��nd�TT&3��k��%-��Z���c���O��v�Q���F/zj��"�a�����S�\�w�����p�/}l���}��>�|o�5*,)���R�IdO�����GR���>&zz�;�QK�l]��<
����}Q�M��/��so�;$7�(Wx^�����G�������4���������vxT��}�.�p�4��������E��G%��6�]8������r9v�e�Q�c��#�x��G�z�>��K��gd�_�s;��^����t���~�+xT^0�������
K�
| �c�x�@�OVG�c�z��(;=�Q�G>H`'i�Q=����������<O�m��D���P�
)�R��B�xT^�k�~x��-��z��S�S��^��z�C����?H�PxT���r�
}�4��^��&.l}�Q���	��	\,
<�c���E�sxT\�������������R<������/z����F��j?�Oz[�����0���|��� �c�Q[Y���S}(i�Q�����6v���sK*��4���G��"7M�(�64��>";_���,
<*�}������vJ��X��9�n��|���O~��S��N�sy�?
���cH����<5��?'1
<�>��T.6��m���gS��i�Q%.xy8j`����#,Z�Q��;EMZ��<*$�s��/���)�M<srOG�t��c��������������Ge�\��?9
<�Cd�u������~�A��b�?jw���_5�t��������m�C�t�<Yw��u�=��<��B.��{�C������Q<��_��_���]���4����r��D��<*��.}}��<��s��B����"�u���NK>��r�������Z��%��q�G�������=��\t���n��������i�Q�W�"��}<*R�w���xT/��K����xT�\ �A��j������}+�?����������~������O�*��[b)U:���v���8gi���7���������-�`��������F/����z��/�c�x��KK#�����/E^����G�4�r
V�]�#?���F�5����9����GmK?9���
<*��){z���?*.��������^��/�-���������Kv��b��=^�.���~�����������P�Iv��t�����ZNv�>����i��2�i��X����O����_���O}�.Dl���~���pxT\{�y������'=����Q?����4�����R�	�?����o���/G��y��-a���R1���u��������������0�x��^M:��t�=������Gu�x[k�nx����9�Y���c���u���:���K�Em���+�xTZ��KO�Z�P������������(�������|n�o)r�|���bc�	�w1<����o+�%�C����*�xT������x=�����R|��G������K=�<��Nc��-�'��E>r����~�2�'��|����S�Q�`���g�-�����G����@N(f��#?�G<-����t����|��kn��_������~�)_8���30��m�?
�-y����G��o`�!��U����9
t�G��$_|ec����yC�y�Qq�u����2����
ndz}m����(}�<��.��>���	z}KO
�l�)�����\�7T�C|J�k�����?���x�Vq ���}��G���r�	�=w�Gqn��O��U6<j��N���=yTY��(�����.u�Q7�~��{����Qk?k[��m��?.��?xT��/����@>�Q%����-�t�Q�p�����x����_��]yT�Q}]|������~��E�����/���37�(�����������z�������_��P�S1L=����+4"�A��/ZY�$������3>Xc>���Bh0+��<���h���!��r=��.�sd����7���^k���(��Yx*���>i��0.��<��>����������.���+U-����/���U��*n�E��� ����Y���E�Fn�#G�K��G�������V����zj�����U�o��r>/E>�����qYkOh�U�:?���wy���}���xsw{z������/���^��������/������{�x������g>>��8�w���v�z�i��?��������}����������/7�����Uw�������>����W������t�������������<N{�}z8.0�����t�������������gm������3/�9�����rt������t}�������W�_�������B���[�������Onnoo���>���^�������y������?�a���A���?��������I���������7����W?>����������wI������������t���-?�����w�Wr������������tr�����������Q��_�V��������u�_�����#�������>�����������c?������������������}?�������_?�N��_��������~�O����>}��~8��=���u������t�����n~������������OW�������S����o�����������_�\������R�������o?�?����u�]��p9E��>L�U��������WB��k��g���}��	�%������~5����KD��e��C��"��S��q��y�����"��~M�Vg�}�%��M��|��Ch�L�>���B��y^]���(���{���
Zl�����+��MTI�;��������y���|�0|p].������=����4CE��O���S8�v��^O{���9	M��z��c���=��\0]|�3��z�q	�$�����K��&������a�,��>E�3��(p:�����=/g�}_b�@�%@�Rr�����l
Y�3�s����75���u�
��;6} 9��������j0/�D��y�[5��+�N���:�.22=����$��g�=n������`����I�R���./�9�E��3��_d�^�
�%$���u�����a;�&����q��4�p�%l;���};�/����Yg,�Z~���H��_u�M�E4�����u@I����
y��a�� �}����)�Td�O�a�J����m�"
�����u����u&���Y����R�L)�^����;U�G�w���3�z�����e�-�H+���"���7��d��a��qR����?�E�GU�
����D�x
E1��l�"��|:/��E�:c�l��jh;[gyi+9.QN6�l��'�cD����f�e�R���\�)�w��Y%5�-�u�H���"�V6�L�Q���M���YzW�lPAL
�0������ET��(���K@,a�Y���,�b�����zL������7j���v���(����Kd�>�f��6��Zq�!����;#��t~��J�m3�t��+gD��g<=�o���7���f�Y<�����S7��V�a�z��f�Yg�����D#^���{���YD�U���_�
�]��b��-�hI����3�{$�)^7�b�
���s�-f�%._9��"v�w�RD9�S�^�����{��H4����|���]�E�����*"t��;S��e���?�V�M�����Y�:kv���=N�z�����(Zw������V�t������������u��v��F�W����Q�%X9{q����N��T��q��/R>*3DQ�kf�ny��E�V7����i/8.����Y��%�_�f��Zm��0Oa�Y��|�e�6����-��:����7w�5�$��f���L #����uvZ��	8\aK���9�P���L��ICU�U:OQ�=�7�5����
������/k��f�>�.g����5X��q�3}3�=���|����X]�aCE'��������Y���<R�������X1��Y�{*
gf�����._8�7cm�6����������q7:�XI8s��N��0�-�S�]��i��kcP�bv�mWBT�����Z�7f
/�F�;�6�9�'��xT3q��h������f@�x�|T��|F�J3���G�~��ha� U�!���F�M��g%�$
f>���A�E����!5��mq�EqQz�j�����:��"�����#��"��`��2J^<sIH_z�����������^^�������!I5��A�,����Z�������0,��0�kP�A�av��(�)�JQ/��&=�"�k���R���gi��NjE!��
Oj[��ST����Pj�#�p>���}sr���
$����7�#%�1��7L����[�������}D��b?Uj��9Z_�T ��`�Zf�����|��R�7\��&�.��j�0��s���w	"��F�t��[�(i��=)����������]��&D����<�Q��b���i�)�h��YH^{�o��A����{?��|��<�,p��b���9���������Y������� ��(c���E!g�
cj��yq�����4R�l��~L���7�c���T�l0S��w6�����o��.mvTd��=�������o�M���8�D!�5����6T����F���d'�CK��U�n�M�e��� ��l���.8������5����j�����`�M�)�����f��7�~Y�'CN#��o�M�����,�#}�we��]�|���[6�}��UQ�F�t����2���K}s�u�����0F��/���i��I�l���/��-���u�o�~}�y?s(�n���������:�F��-2k��]��5�u��o�h����~�	���ok�MW9�t�hPY�a�M�5p�e������iq��Su)�o���4���5�~�?���|T4�x�o�a!�-�C�S�o���1��j��F����x]P���7C��~^g_��F��[�����h`�F����g��Pg���>r�-�[;}3�a��z�}3$��+�c^��F���(�s�����m|H-�Ne�l���9��!>������H��
txU7�f'�����;*��h��T�^�D�2��h���P^`'��D#,:�z��1��hl3�,}Sk����5�{L+��h�����������m?:���Pye09�Pc��oP��l�11�	{*��`r�q[��#�D�G09��>��!-��o���NS�f[���w'��h��zg;E'��LN4�
��R ���&'�2�A
}������~����~	��)��h���%���3��h�(GL�P�������*��3c������b?J������X����J�6��������X�~=�	&'�����l���i09��'1o���\09���f����2��Dw������f�� Y[����]ir�����s��qr09�-q�tY�/��br���pG����LN�,R)��9���D�B���XJ��
&'�m��7S1]09��U���xq^LN����A
C����D�*���56[c)	\]� �����)�4����������Ny��}��v����B�C����D��<��c��}�����������nQ�p������
&'Z\����)���*�� �����Q���r|����G�>]r~��5D�?U���,��V��G��;��T�1QS
&'Zb��mS���Q�x�����>LN�t�!h��p^�*=D��8���`r�%�����m09�}O?���g09��*���A^���i�&�%�jx��U�z����"#�a��z\C���<�t������*��-�����G�P(	�����`xTI��<���8�`xT�G��9D�4U�e<��F;�m��L�;��w��R��2'g����F�xG�?H�/�G�U��6&$d��Q[�q���s����i������'��Oe��#�$U�2��@�P���*y�o+s1�m
�*y��{N�`��Q�����d���
B��Q�u\'���i��/��r?�N���v��u����������2����qe�h�*�3<��e�t�,�:��G�G��2�m��Uz��l��!Q*���R%�%��O6<��eL���%��?��`O�x�`x���s��s5�)������M�>U�2V��_*.4<��e��������e�qqg�^����6~�>Um�
��|�����O�=AKI	���w��c�����Q{�@yf���U�r���=���RV��Vq��*}lX�x^�\��Q��@�������Xt�Ne^��-�5�������V��Q�~,�%�5���?]�w�]D�e4<����y^����V�S�GE7��ed1}�R!r��_�B��V��hxT�K���X��N���|%�dx���-���DO^��N�:��q(?�4/1���9F����]�����*e��S��
������w5�hxT�S��e[g��{�u���8r���.#6�mE�R#>]�wC�Cb�t�M�O�_7<������])�mv�������F���_f���a�Q�ceca��e� }����0�R�u�kv���d���E=��N9�g_�/����������a��g����1��G��$��	[��N�����]�2%���"��q�Q}�+b\�OE�UG����X��<�R��c���8j�~L��q����?���bLJ;e~������#���i�e�Q��c�<*��:G��=x����As���8�������"zi���J�]���3<�Yox�2D>x�[�����0;-a��;��G��|�sB������C�������E�,z����J�h�@�^��^����h�<�4�L����G�D�(s���Rx�F��.7��}��z���'T^��U�>��F�F����p��>���<�,}~+��6��^��~l�Q�]���"�u��&��-�yxT���Y��k;�"�9�/v:��R�����m�i��R9���61�~L���Z�>���xT^�
��8Px����8s����`�����r�Q?�;\��������
��B]���Qk��t��hD�\����[��~)�]���hxT'��#�7����G��ZN!'@�[�rf_j[y����jZ43��6��}b
�Ci�<`�+���?�_��R_J}���<�}lE�OM���.�;��e��b
�EgJ�QC��1�G�.78s�����1��k~�������^����X#T$������&��[�2�L6�&�D��\Y�;��V�0��(�-:���=�Gy��:9�Jo+~����x���
�r�<���W*|?���[������;�K�exe2<�E�k7�������Q.m�5��SD
%�2���M�����Z��Ae>/N�/i������}P��Pr����*����>�����n�5��1���k/z�>�^�_�#N���l����Je`�4�g'��\?�������2���g@�S��O�G������*F ���������ii������O��O�6��
�%��E�6<;�!�����v�����k���y�}��Xc���x��z����/�{��$����1�*��
1�o���%���5���4?��o��Q�_�}��"�b'����Mj"�o*�e��:C�
8��r�y��>�����z����C
#>�h\��U��1<�w��yO�i.�6���C�m����_7<����^i�%��B�G���S�N��1��~}�{��!���SOi��dxT���=��{����3'����Q�����A�*��$�����������}m�0�L�G���h��DhbO
��}���t�U�3��^_��q�����&��|�����U������E�v���'��b�)A�#��sX���>���������;�rH����
]�z(��Dn��
.��!���������F�<(�
���=�51g���>�z�ASk�����O��Mp���Q!S���6��e�G_�o�bNn�Cg�W�l���okv��37��C���z}�D� ����&��b���{J�1��'��B����"NVy��Q�R���E�i2<*��8w��]�p��-�0�e^i����6QW� ��%������@�Sp�����k^�6��dxT��A��
Y����.S���rjL���.aC����
����.E�*5�r����t����U�c��b���J�.ec�����'����z}]�� `r?�q�X/D���>NC��x�Q�9�CO:���.U<6�����7�9��HC�oQ��=6Q�M�GF~%WW���������5���&�G��/�V�����Q�P��b$�C��
��g���1�G��S�����z��I��+����4��z����.Z��]��vi�9.DIVk���t�v��<��Q���_�S5�0�a����%���dx��s��mTs2<*vY�9��hP�>��N�D=����a���� �������6�J5r4���gWj0���������D�+/j�����^s�����k���Ph�����0�������"G�����f/����~^����T�z�dQ��C��K^������(���-3���a��b�o��3�zj�u��N��g���0?*�^'�b��W�axT�4��P�5�<���������A��<j_��m|�lxT|����]D��
����r5q
�V�������,���Q�SP�-�����
�
n�o1T��{?���'��9^W����>cK��DQ��a�O5!�����.��G�wT��9�R
z��&u^�
e�����Pf��Q1qN��Bs'�r)�Q������������E����Q�c�;-���G���u�)
�F�
�J/m����/zz��Q{��E��N�B�����S9�R���Q�m�_��)��lxT���^�������\�^�B��z�K�V�_8���A�f��R���K#�J}��XAA�T���Qi��(��?��2<*����=Jo+�^��.�����
������>�*�������*�<���Lfv��p�s��67�����\�M�
��G�R�����)?v��bin�]���:/�G��0��3�s���e�~�'{�����U�Y/gL���|��bn}�a���:���Q%{~���T�sg<�����;��Aa���G�0���OZsV���*�c�G����g�U2�z-k|?�����'|���E������r�[a�/������
����~���Ng,��(�W>�Qq����q�e1.���>��a?�y��/<�Q����B�?T������O��j}B�<U{M)\z�����Q{vq�g��=5<��^4�k��>�C?�2������f���~�f�����a�3}lo���xT��	��<acc~�k3������q���L���}W�5��3�~�\F����Su�\�N�ega^��e��s���'^���i[f���S��e�I�e6:�������u%���/U����;	u�c�1�����io�����}���������~�Q����uY3~T����[�=�4rn$�cj�N��2�Zw;���J�G5���sE7U��7e�g�F��W����k�:LQw��G������2o0~T-�}�����
�r]`���D?]��H��=Q�����p���&z{��Qn��vc��������^�&���������s"�o�N=g>�H�W�?�Rgb��X���xu�p������������_>�}���������_����y����������||���p����t}��������_�qu��u��������o��_n�o����_?�__}z��_��u��������7�}�OO�W�y>���3<�p���������}�w�����{���v�����~����?������w�&]�~�v����������|ng�&d�}�����@�����������������w���pp���������7(�~�{����<~�{z<������^��������������D�|���/_�������������wcK��/���������w����[����%�}�/{����7��?����xu�?�����������~���������������������������x�G�W���������p����g���������������i:��������Q�������Ow��������n�����S�������w���y�|�������S���_�ru���W�~~�����������~_jwb���������������SD�oS%(�N��w�o�sJ���	������j3��=�R�l:/Qk�S���Rr�W��LH��	*m�����~I��g���3�y`T����K|��}�ZP�%��a���mO^��y�����y�U�K(.������D�2�=?T!�����Y���N��-�o���3�cg������B�����;#��A�,�3������6�\�iR�����
�l���LD1������-0�Wc{G�sf�wt(�I�Ad�uFJ!����s��ls�9 U}�g~�N�r\pokW;#�q����X�!B����l��I��99���De�/�5������LyS�9�unv�����3��?EB<
�Ip��sT��s��/^��G
(�Sf�f�]h�L�,J9�����a�E	_��(~����+]c��,{�tDy$�u��Pg���U)y�]T7�<���:1/�cf��m!���]>?`��$|7;����2��d�����0�����9�������e��J4����i��_EU4�t�@�3��bg U8����H�EP�S���u�>Qv^��rQ�5�}{i����������s/g��A>b���o����M�p�=xB:�t:EU8/�"|����l�9&|��%�*��u&��=x���8 �>U{��tuk�J����7}T�7O���Y���u�!��S�0�ox���;��:�6C!�b������Kb�(�x�mIR��3$F|�'�/r������0d}���X�f���[o�M��j�7\=��cV�������,~�	���q!������T�j�I�% 
�������~��dR<_7������cZl����%���j�x�����@����ipz�*w�H�;C�KH�N|�Q
L�4���E�dXz�)r	���J/[�U�/��,�!�usDJw*&��SfS@}�h��}����$����e����P@����0O��v�N@1q���R����_G��|�������A��.-|h�L�fz)�c/<;
D���38����=b��~o��{xpQ����������,�g�C��%��&���?�
���" v��������8f:���hU�Bb��E��y��R�EwF���E��Wq	��;[�1�_?#mT����m�P����!����M��(	���w�Yc�;>��D����N�t���w���
[��V���w~������M���?S8{[�r��(����x)�)��P?$E�t�y?`J^���h
������������9(�+���Z;�L������0'���!�����^��sx���n�����	���~(���f�[b5:�L&l������N���\�{���TF����E~���(�����Y�X��z�����d����
=��r
�p&Q��CR����}H�������~h����X���=
��H��!H{��������0.|����u!]������+�
<i R�cGA��	(��T�4�z��K3�,��-�U~�A�X���6,�k��\�($y6�yC��������`�8�}G�{�{"���%=�se~����z�Z�N=?�g�T[b#�(U��q��3�IT��p��t�SP����j���K�C��zC�Z��5S�+po�R��{�� ��Q8{G���A��*5O���(�d��J�Ov���C���+5O�$c)��TKa�=j��h+�,�����K B��������[W��AKm�f;u�_T=���;�+d(�����K�,#U<�d�������w����/�:�|n�Y5
����^��dc��TG��p�BK�!�&��V:�K(��7��u�7�)%��2��5��f�����2���$��6A���2��P�������nK|��A��I��P�"�����^/����hk���$E�_�M�(_��s#U�T0K���k	r)��`r
�h���1^�����sqw�J��Sq�B���,�5����.D9.;������8� �
o���O��������I�z�8� qt�����h��/=GTvj����t0���w�I�:���5��xo#��2��^HB����E6n�j�b�<�Yz�q5�OMR�m�R��|�n����	�8OZ����=����YW��$E]WK�t��zC�*$���
)o�������m?LR���6����}v:����F!��MR���
�fK%��MR��q���yQw�I��1e8YS�����)k(*�#�������k�CR��U:�1���c���~,#�`c���s�f�a�Q '~P8[�X��6x���w��y��D���}���2Q�b#�"Gur�IRu:����"-������V�`�y1
��Z����?�I��>J�^�o8��h�����h[�\�(��p��R�"��
�6� ��ht��+��yC0I��<QC�B�#I�H���x��Zp��-T��MW����������n�z�MR4�����~�8(I�-"���0���$E���e��>�F�F�=M�.�� j�aH��@���W=��j��c����&)��"M���8+&)���o�h��$E���"���&)�ncC�8H��$EC��/�%��h)��,�3I��d8a^��!)���n��V��I5:��U���/I��HVSRT���$E{�����1��]��^��(r�`��{���9�=�^OCR�C��/�@���$E{38�b�x!'LR�7��n�OVw��������NLR4e���`�S��!)�";I*l,;���x��^?
q���{���7�a��!H��'���`���$��uK'���I��������jDw0<*��=-��E�����h��.~[Q&)�,;K�f�fLRtsye�I���,�8�iNgPx�E�l�]�E�����R���5F����8^;	|.��;��\�=� ���GE�Y��U�#�4���{�!.T��`#�\�6�����V$�<��Y�)�}\�X����o����i
6����u\���6�����.P}a��K�]I�D��q���7rS���l����.gC�F�<����2�W�������K=���,��(�.��KE���]$C|��*k���.����[����
�G�-e��e��*[E�KI[<j��*H�B22l��V��Y�Q�������WFu
i�`��k�S_N��R���h�gr]�G�:1r8
�"�H��\lH��y��*o�d����Z��W&������[3c'�b���a��[���Y�[��R��x�H��r�!)��B�=h�	����.��W5�&U����g3�qa�Qu���K��bd��W�s`����0$E#e&�2^[�����=��{{H
S�e�Q.E���8
)B��s���xU2FT�K_��oqa=�Ii�kuG
I���vfZQu#E����^�2�B1""<��Us|Z))��!)Z�Q7}O��,��`�������V�O�������0Y��1�Z�|?������bb��*2nT�G~�j�!)���sd��Y�!)�3�=�M���������3Pw����#����E-'<����B��zH��������^�"�0��(W{%QO��u�c�]
	}����d��Q�O��s �"�Kt�Oz�� N.���G�>J
�<kj?,�����86���hx�w��5AD<
���6�k�BD��>��^|��N���q�8��Q�FPU���1CS�1?��Q&�qg;U#��?�Q5%ph�����Gu��9ksL�0�h���[�0�a�=����~��x�a�w!�R���ZW��nrO��.xC������Q��4��%����G���g��'�v���p�WD�����}���l�~1<*��~��D-X}[��\���4��;;�{=�\�cY�O��Q>k��������.�j,�3F�ia�������"����1;M��"�Fp���Q�O�D��rDM)�G�5
|��e4<���81Lc���Q��R���W��i������������t�t�n��
�
}j����G�@q������uXR4<�m�^�&jq��Ra^��!��!�a�=�uK�����k;��o{���2��m����Q!�_42��=�QK|�Y�W{j��f�����e���#����A���=�\F��gS�/������K5�[��G��Q��>�b"W��*��8�P�<j��`*j�=x�0�Xc4<�yD��]�{(NQ4<*�e�7��D},������P�����
\�+���<�q?*�9�]�����/��zm�b���}�g<j_���"�S����Q��M�;�5u�
<�k���e�(���Q�4�J"��*2<����]��j��u���� �������������-?���[����GE�^|��M����z+�5��+r�!�����r������>i�E�V�������{�b���(!��O���y���-v��P�������;,}��z����Z`��q����b��/=���S����Q�v��Qw(������cK�,��h�|��nOu�4��Y�D���}
��ESO�d��������B]~�yF����(5�8H*��Z����.���9L
|���Y/>���=m�*>����aL�os�J�S�y��Gm�G`V����G�V*����G��6b����?���pO��T5&������S��sE��+�V_?~o�=U���+	8����5�=��$�B 4 ���2��V�]��:���m�� %q��c�dz}{vB\_P��dx���
�����?�^_I�>��(z���Q�CdF�j���?�N�"�.�����c��
�D/m2��g��y?X?}J�
��CG`��i��*�S[8��0;-��t�b������Z,� �}�L�o�9�?�:/~��a��.�|��i�h���\�����a���0!I��0<j�S<���������{
�S�{$?�4SK��[D
%�����?'F	��4���nwv�Z���`Z����U��k�~�4���2�u:5�%�^_	��A� u^���V�w�w�dz}��P�8SWA����[4��w������R3c�
"oH��W:��>Y��������=G�c5%�~~j!-�V�k'������!���J ��O���9�A���1��.{Z���5,>-�������y�X��i�8�g�o��5���-Z�o��K���;O|�������bz}�v���x�%%��!��V�x�1j�9���l>�)P>��R�Q������<u���1*/#@"1`�mM��l�~�3�o�L��v]����D�c�L����r���E��b��}���GO=6��u��"���o�9z����?U�����jo�C,�0����
�������L���e��c�8sc"T�����72��'�hAsd��qNy��-������=���0�z�j
��0�+��-��N9�Z��9������m�N��1�x�U��^Zjt� ?js��B?cA��c6T��"�U�
c8��x^{���������%	,)�x��q�u6���7�Ce�hR���*3~����1�P����Q�K_���-�c���2���*v3�*u�=���Z_x�z�r��|�?�y��+	>���N�G��h0#��*'z}y�S��E����*�u~��70?����s NVy�"��s5���d��y���,����|�-5���+
����1�
���1J�G�=���>�:�_7<�vs��������}2y'j���Q�%�|S'O��'���K�=����N����@��X��O��L�����K��GCN�D�Gj������~�:scnTe<�6j��=5<���8��-U�mx��Y�g������������4��0;���2�Y���G-3��y��:����������i	\���eI��|��:����g�G9���X_��e����J��9D��
�j��.\���f��s�]=h��
�n�
�j]�h>s�a���<�Q~�����
�ja�uj������Q����c�
�j>�����!��\&���/��y���2c(0���������e��Ze
�\�$����~������������b�,������!2�B��r?��y��h�����<�Q=��`}]�a������pVk�~ ��9����0���_���E�"?�G��^���?j?������mm}��"^���������tA����J���������Q�&��?j�6�7�q~���>�Q/����"5�<�Q=���[D���(��R�Y�Z���*�|B�G�g�G��d���S��������W���S�G�!�>�*�����OS\�{MV���N��<�C�a������ ����EX���)��HE�l�T�K�� ��A�ra	P9TY�	�9��x����R��!��F&��9
���$���_�1��<KW��R.����y�*�"��D������"�2q�}�1�)q�<�����`(��m.<�2�@���\�t�����l��>�!�*)��N��kb�]��S��r�J9�i�7�wZHS�a������8(�(�1z�,��"��|���`
� ��!����R�� H��0\�9y����I$`=��*��&45H"R�k,���� �5�9l@4(g#H��!`'a,!�<H�=o����@U��R�}��3�Q(�����R��<���(��y�z�b?^���F8�z�s"�B�b�� �WQH�S���m�Tt�B$7�Xj�<E�r�����@b4H�h�F�
��JHK�0�� {_���=��e��"H��>�)/A*���"/��l)��t"w��; �:?`.^�Y ��nR(0��5T�b���od��E,�c������fA��6@���������{�����:Y4��z���=�� ���R=����g��d���{��H3k UZ[��#RE%���	������9
����0��D6�XW������@�bKu^�*/�h����)��l�TY����!& Ub�	��:s� �X3~&��_��n�>>������q���������<��t�������/�>^}���}����w�N����������}�����?����n���z}�����������`��������O/�����n�>}=������������?��������>������|����w�]���<@"�Z��g^�s�������������I������q}����?��}NO���o]���������y���r�xw{{�}�n���m�����?���c����I�~L��������������i��������������4�|���/_����R���g����/�%<���������|������?�>?�����Y;_JN:�����_O�W���<|�?���{�_����<��;���G~�����g�|��o�^��]���~�q���������������~>������~8����<���������������|�tw�p��{<]������-���q?1N?��~{w�����7/+��n?u������'W���y���wo����|���_����v�����_�~z���o����iLR|_�*������/u+N]4��B��������o��G:�x��{�^�q8/�g��}�)������|_"��,���S����{�����=���|��>��}u�r~���c&�/=Q��^����2�y/��3�^-��S�����/S<�����=��[�E��G�����j������� m�=^���8|�I&����S
��W�g��s����I��/jv�w
�_&�&LYF���^_�D��%�$r��y����4z(l���Bm���h����%b@�J������T��]B��JkF�j���a����`;	[��l�������\U��
�#qP�����nk$3���{l;��*�^P:�������P�Y�D��^�o���h��e����]��3u����hJ3����D���q��uvJ��Q��AM!��U��u�D/�W�(���2;�����;;�=P�����P_���@I���[��gu��[�iuJ���"���(�(f������f?I =h�P���&�si"����l���0?�)����:K�!�\r�<��g.�q���!��eR��#���:�[>*U|S�^d�? ���>8��W�g��
�����"��P�`(q��GA7*u�/!!p���=K�j��$?Z�p�Yd/�	J��=K��N�S]�C4�&�q���9p=��b����/Up�}����/�
�����X�7����I5�g��$^��"<����Ri���m��#����|�}�S�
�g�"�P/�����1A�Ay^\����G�� Z����`�sO���L&^�Z��w��{��9��{�EZ%�i^��2�HT�p�En���b���������Lu4j�F:�[P_��r�Sp2���q�_
���������UYtzD�6���E���V���w��Q����:����YQ���,[��8^��M����%��%j�u���2�Q�� t��[��M���������9
b/�x���hl��Yrl��:n����B$�����%&���mP9;�	���%��f�y[�,Q�3��:��x
%6x�/���/B���/j^�_v�	��`q6VQ�j���f^cq��+x�_d^uk�K@b���0�h(t�:���,��)����T�)������h���(Z5?�}5I�g�C/�:��p��1`
��V�a�8������ro������J��H9�Lt����t�lCNS9�7���R���c��9��P�A�� l����lP���B[LQ�E�,:Np���op�d�����������6�������q�_&kI���������z�7��te�9}�P����������H����i��xD�Q�9�����
g��D���Pn`
��ue�a�S*$R-%�4oR���llp��7�.��n���z��.Q�m���ok(R�q�|��A4�y��v�����EQ�a(7p
<��I��}�~�wY�Q�s�q^��_�+��5(���>��oXR�x70
R�6o`R�\,�u*�������ec�M��'���J'�;}v���2YN�B�Z'����=Uvj�\�57crz�k�3�����'�-~8{��R���d�PL`US���T����j1X�m�*�,J�����Z������o�R��q!��M;|�
K���)��m�����6��)y~8����5D�����D���n�X���s(A���;�y�����
�j�������@��B���sd���'�5��N���z������y��	h[��N�J��TK� p�E���
E�P��8A�q
� ��<����3��[��j(K^�)�"2�����_��T	����I��/���o������������z�y��J[7�+ny�Q��0����"N-J~���\��kBQ���j� p�
DLc�8�kPe��%Q(�c�]k�?EL'�1� ��k1.y[��2�}�*�#0 ������B�!���*���JR=;9���s��I�E^��7��<����T�=�!q�/����7��<*L��m=���8]�T����q� '�
3!^�F�t]�v�a�k�8h8K`�M5��������rQ)I�=�3����������A�@�^��0�*�h]�F��#��B5������{��y�8����z��_:sJy�g�k�}OQ�����iI���L���f�
���Q��r
Sl�T�U�)���f��m�X�3|3;���������p�7�B�������1aRx�TyV�1�
�9)\M����i�\���T���������}��o���g]���Zf�)�����5*b\���EC���ya���G�P���:�7��P�ECX&�R�D�/��G������A4�gv���
�N�xf�%Pi�s���qapf�m�D���/���l������>L�aK�b)�.b?�k�Y���Q�/�EC�=f��BQac��4P1�"%I�����b�e���fov��=�`J12xI��.�A����A���S��ca�� �D�W��)3E�����]�}��4v,~����S���:A}���`��1T��*��E�"��h����C][Mp�(���]��QS
�(�G>W���ES�wqo�S�2�8��m)�0��h�"���+8�^�1SM%��,�����)��8OO���}�D�.��h�"G�����)���a���+��)�>OO����n��:��hJ�X^��<;��h~�>��[:!���i�1�
�	��p���7�������{���it9r�M�w1���U4�AJ��I�3�R�����Y�g�E�~�a? ~�EP0A�>
	������ES'��Kv�U<f��������]E�g0A��C���4z���h��C��O���N��(XA��3gx��*�gn�S'��`��9��*�>Y�q��-V�Q�1�|LPt+���Twx�k���y�zgQ3�G�����N�G��G0<*5�_���+qnMPt�,��Kb���l�[���������w��o;�y�iDD+*�2A�-S��PI\�W��
�KA��D},����J�����+;5<j�����Ap�	����%�L�g��[�*��w9��3siZck8���*�u�m���)���if-����m��Sj��(xu�������l�[IXC���iYb)����5A��uA�=�%X�7�	&(Z �������
����.�9����J�6�<J���G�>�����<J(����o����}����g���`|*��P��F��$�rB��JK��6��;%�dxT�
8��m'&����������>&j�����!�y?����C�g;����r1e�G���������Ek�q�n~��R��n���	�{�#�8��s_�l�Sa�E�������}�(5��J/�n����+��f�ek?�c+�G������{Np���Q�R�v9s��7<�N����]�����:�&;��uW��=��(bZ*v0<��o<�������r|P���$u@�������=j�d0z��
����CP��[���~�h��\��� T��h��-&
��&-��h��-�n�!���?5���5��Bz"mM������OOn��������I��+�9�|��=�;$'G�G=3DA�.&j���Q����#���?j����e����f�U�Fad��l�]��G,�x�+�(?j�xh����Ub����(I$�Gm��;��j�=~T�
�J$�(?j���O������*�p�y���z�a��j+��)j�1;�S�|�N������*��7��'_L|[�G���_/}�����*�P�>9)!4�G�7���l^�/��*�����o�F��SN���xV>��Q��(�(�E4~TY8���j��"?������Zfb?��^�;�Sn�hkZ{=7���ac�`��jP�H�oE�G�����{{��
�=G�[��kJ�n��5�Hp!�R�X��=G��.C5��n 7A���Y��>i���)�����w1~�������E��U:.�[5`&���[��!�<���/���$�O�B��q���q#�P�[4&�#�K��I���(D�� �:E���a��R'H����jN
n5�����^NK.���6��2?��e���I�ab>����2�q�>Gn5���-�_�����2$�Z����I�����k��
�zVq����N�������C��.�A^�|��.�n��&����*9#�!Q��h������[����M�ok�z=�_���C�/Q�z������jo����*G61�ZCa=�:jOM%�3�A*�7~T�����#G�*�1~�����m+�+�]�t��j9��O�f�~���w!/I�a������u�/UhU�����~x����E��oKd���i���%G�/Y�����&U��|/�d��M�KE�k���
����b�|5S$�{����a35"�_(p�h�|�E����q���h�|����;[����WkE�L�^D/\4y��n5��==�c���5��\�)��	�T��q(�m4V�+�G ���s�|���r����Y_�_�N�1x����(t�b��uK�[Y��^Z�����j�]L�����=$J�;�P_s��-��U�<�����+���T_�����/)������!�c����O��;����
�j]t{>/��P5�G�.k�s|NMo0<��9���������j����z���Q-Pl��PY�a��Q���8��=MC�/m��A�����z�����%��Z������ZU���5�z��1��
}!�[58=?���>Gj(�U2<��6�>�*b�d�(��>>f_��+��Q5-�-�(��zl��^_)|�7����Q����!N8P2~����e?�@���W��x�����i�0j�e��A���{���$&�G�����o]�x��
��M~=?�m��/�XJ~����X?u��n����z}�;�O."J��ra�����9�z���h���(�����������n��=m��r�(ti�����}9�� QO�G5�^W=�MM!4<jOo�5����t���X�C����\Oa���d�(�<��QQ�����.���}�z��~���_w���\��2�t�m	'U]]j���� jJi��� \�.B3#U{���ZN�|��J��
{{Dm<?�a$@�6>��Q��1j|��Cz}q��
E�c�����?�Z7A��C���������jO�n���N��-zY����weR���^�~9`
�-7un�^_���m>���}�i������Z��Ug��Q����K�R��m�(]����qz}Kj���&��������F�Bh�%�G�_��e?�;?��y>V�����Z���:�\��'�E�<��
�(�Lx�%�<t{
3��nB2~����%�������\�k��+��d�(���h��9����}��e��?���'�����]�}������b2~T�
��zN����Q{D�*�����d��g�/�s�������Z��y�R���i��F
�D}~�]��S��p����?�/����<����"�)��.C_�@Wa����d�(_�>�~^�W����Q�%��$��c��AC�����������.�A�L��
nOu�1P����B�e�|aE�Q����
��������b)�G��=}�����f�[��
�T�?��m�����J�=W���BO:?�c����#c�G���.�
���M��
��.�QK��!
�>WxW�nB!?*djVr#���:�����6M�d������D�%%�G�u���=�d���[@�wA^���d�����d}?8R���K�@=%�(��dz}}B<��~P~���BI�2��s%�Xz(�P���SR6f�R]&{~�_D��M�/n
5%>��;�����;�C._��y��u. �~]�@������,��>(�^_t����)	|?�^_��{��!�P�
�����O]8��P�yM�/�\���6[��G��?�YG�f�M�/v}~h���~�d��b*�T�}J���z�?����6�M�/���|nqG��A6������%�bE6<��
xc���H�^��a��0���.��������������R���N^���|����SpE�*����A%WC}������QE=i�?�^�����G/����R�c���r"���G��.��<s�G����9���s"o������-G�a��G�B�� .T�P�����������0}����m��lz}[/?N��:F^`�y��%��� vB�7�����N�8��G��v��f$��<�Q��_9s����Zc�KU���(r�l��
]���6UyT���S��"�I����Q��?����<�G�=������c~�[���&-��y��rk���,����(����?�	M�<����� �R|����Cf`'�	�s�yk�����y����5G�pD];?���/���d�G�.y��b���9�/.3����}���Q������z�������]>c��	7�r&F6~T�{���MrF�x��c�21Oac~Tp�y�`ZbO�e^�x��_���0�7\�{�����Guj�|^&^R�X�X�����uAG v�L�����6�����
�r~��/|B�c~�2�~�eQq�������~L���������"j9y��:�g9����c~�R�h��TOM6~TY��8���1������U/�GS�c��*�\�^������g����T>��{����|n���
�ri���wQ1���sB�\�M�(?����KU{j���-^���<�Q]�c�1�� �5��Gm��u�l�Z���JO1����/�������l����gq�� Hy���[�e9R�A�q�� �(0��$up�����p���F�*��1��$��B]�2��S\�u4L-��d�	��l���
`�*cr?��ny��Cp���A��)1�1X� H|]���F�<Hu!4(�pc��������!��
� U
� �E�� �=:1U����p�B$n���� H�yX�+NY[g��Ih��o|kDq����F�<H���e�
�� ��!�P�%5R���>�m� ����������������N�|��z����O��O�����������������xw���������������������~_����������N��\�>�V���>~������_�^��������O�o���������|8m��{8.0�����t��������������a��-~��=�����O�;������I������q}����?Ogn�������2	�����������������w���po�z�\���`�����}(��v���7����O��~�'��|���������}�_��������~�_�����}��{��������D�����\W��/2����S89_\.:��?��������(_��s�����~���:�/�N����_�����?�~��n��_~~�����\}|z�����������������_���N���/�������o��������?�>�]?�n�O���yx|gK|�~�����O7���������������O�b��������^}��������/_������}��}}��������<�?�]�����=>8�O��c�������@i�}�)oZj��
����R=�%N*9��C��<a����P�6��i^"b,��	���sH/�����o]����N��c����B����9�H�y@d���MR�3�g�PSU;�P(m3b���)�B�%@����!1(����^x��jn�E�����������*������!N�Q(�C}SC�-�5g�yRL�a�t>"��ld��)�n��k�4��0��YpS�����mH]�Y����Y�gI2 #�Dv3TI}[�H���.��DQ�E�X
 2������j/�:{�g�U(A����uV� 3T�Q�^,B\�����.h�3���r�/�O�v�J�$��:IFb���/���)}'�(�1-�mOi�g��]�e��I��Tm�K���@��P�tT*��%J��!��p���x^�R�I�M�a����dZ���T�n,����x��76�un��uMD��A��K�k2�7���w�F=(���[t���hZ� �%!�;�G�L�8���C~��_�E�'�����s@�uI���^Z����QE���g����_R���>�n
��h?P�Q����h#��;|���=W�('+���3���5\ST���(������2�=P�dd�h=0uO�0`�JW� ��'�@�{����������E��K�����,�����AA-Hu	��hm
W���h�j�]�u���j("h�FM=���	W�Ck�y��ZJ�oH�v�r,A!�����cFE�(�n���B�%���������//D$Y��eE�QJ�:~�B*��JPL��P-�w6�������0�Rc���T��Cb��;��
�j��~�q�6��_����
��h�p|����)���7�E����6 !�a��VW������4����4��-�4���-5`���I��m�t���&Z�p^|EJ�#j�v�y��!M���#�?����We��:��0�Q24����,�N��:14e��0��m��r��0~H�V�Cq'�Dp�F�1C�E�SLxyX��H���CO4.�������{�kbk*���������!��@�U��h��shl����������R�(J��v/��c����C�6���BD������N��1{� �w������Dx��y��E�E�[H�m��A=2Q����D��m!N�9�W�CH4G�;�/d��x�)�!���� oB�{��ii������(�Q.��*o��Zo���#�-��CH�56���,\�7��uA��=CA}?�h$)&��T�
8��/
�h|��!���U/:c��z��ZL��(l����B�����Yy���!$�%�I\C@��Gm���X���B��&�PQ�E�1���f�F�;�.CH�'6�S�A��!H-%�u�i
Y4��{��0]r8/"(�CHtK���gN=���n��A�b�j�A��08uVU`�QH�������v�7���$���Qe���)�=�J���T=si��&�M���.��Q�D��~��H�5�iP��7}\�8)���������,z���8�EA��'�;�����8|4;�H�����g����Y ��@6��A�G����XKClE��7!Q�u'g�:V[D!��D��?}�P: n."�qS=�%Pi��F�@�c�����Z����A4�����y�d�.F����L�@�E/�B��/�/Q~7�#v�����&��B10
EAB�CHt����b���(����B�s���y�7j�s�~��v����o���p�z��>�dAB� K�A����t#�T�1��W�!�{����`�^
rd�m�@�_�H9|D���O��+�u�]L��SH��V	hy��v��!���B����g�0Q��CH4G���(�!$�]�|GQ�Z��CHtK�T��z�#U�9�%R�MH4��La3��u�e�w�I�����"F��T�~uY������h/
a
o�p�B�~�Y^������]fq#O�1�D��lD-P'?�DC����������Fq����hYv�OH�x
�A�"	��aB����oK�]1\����/�j ���������}H:�D�c�yW
3!Q�m�MP�S�m_���&$�kc�%Q i��DC��������<��D��
A�O���h��GQ�.�x}��F|[5��!��r�����&$�E�����CH�S8g�:���L���]�h������h���*!��AH42�~��uo��P	1$G�cF�Z!�^1x(��r���=����X���s��h�>�9`�^��~�����+rX���%��h��i�����Fk�5Q�zP��CH��Q��]P��~B���9P���]LHt[���{�[Wnl��9�U,�@�A���0��}���@���m����$��wR���5��l�?^�8i����E�X���E�b_&$z�"F.D}=�����D|���

�FO�Z�9]0!�4��V?�:;�]��4=i.c ��q{0!�4�^W�:�.�z	SH4w����Aj�Ok���$��0�D]������okB�G�5�)�uq6?��s_'�\��M��.�������n��9�����B�^��8f�k��f���h��l
���R0!�4�\W�[v~=�`xT�4u��lyP0<j8�2��]D�o0!�!��1�#��0!�8z\qF��-� ��RI�z��.z���Q�����$��������"��"�
&$��
�QxW���Q�7�GM���)$�h����
�/u�Q8�H��q�G���]�����������JH4��]�
���^�i��r��.�a�h��G��M�>��.�1L��D��P$6�Z_0<*���X/��J#����E
fl���z��T�)�dqY�lz��aq:t��u��F����rc�c"VqjxTI�9�RS��85UE�+��N�q������2�������;p���}(���2���1D�X0c����J�������(�-sZ�3��DH���ul�mk_��MH���c`>�]=U]-|��b���]�;�������>�i�����{���
�G�!���/�������o��awU�
�G��W/}�(0�`xT��%����{)j�*�f�u�(����(�������B�*�F��:�N��h,�x�����uN��|�����>b}}������D���=��,{�c�I���}�����m���3u\�*r�3�����VC)K.�h����G�"�@��N0<����_����J�����[��cO��`xTG����=Y���i���Qc����%`�	BW0<����������8m�v���}:��G�cN���T�����Y������6�t;�`����bxT�����m�O:�G��.�������y�{�c/�c��8!�S�'��4�:��d5��[o���	��`xTO�1>����������/h���8����|]e��:��{�z�E������)1-U��s?u��_w�����x��R���G����/���],NK��@~�Z����g��S5i����)L	�Sk���c�2N�,���g���������hx�coq�{�c?�c������n���}��!:����c��NX��VQ��G=�\\�?��?���i���~T���G��c`�vQ���G���'��q������9�7���$��Y~�{�m�����G>��\j�����_�S�)�uq6D�������l���O�sn��yi�
���C�x�QO��G��
�����~��!p?�#���������A�O��Q}�M��8U����o���J;��t�K�q�p����hxTw��G5�f~�*����s��4��8��r�4����R^�a��*���"_��G���������Q}��`C]J�G��zb+�[e�
�z|w�9���8��r��y+r�hxT�4��C|����)sN���L�b�q�Zk[bO�3?�����D~��O�
��ta
���W�/�
M��u�A�����c�����cU�9�y������C�.��Q=m���^������@b>��O{�>����
��Q��ny����������4Y���4�t���7!���r>��/
��%��n��w�8m[�����[��Z����.��5<��9���R��u�G����?���k���^�*z��Q�x�/�u)�.�q��v��u{������Y�������������djw�1����������)�7L�W9�B
=��_i��&�q���L���7S�V	�GS�+�_j}`|U�cS��8q���:��hZ|�m����u!M��H�cX�I�fFS�+��T@�UU������z����f0��F����9�������iXy��)��)����}���S�S�o��X/�y�8��|u�����}�.g�|�i�'?[�����l�;l1&8�q����)>RwR	1O���w�I�_���hhK�`�5�2_m��"wV��F��{���`$;�
�]��D��w�B��S�o����s�{��:_�~;j[E�AS��J�R�O��L���B��@*NM���M�u�*���t�>��%jJS���}}CokN�J���7��Wm(��&u��H��������G��������.��|���F]���d����.mTI4���D�1��!���y��M�Y��&�����0� bIb��V_��v���j�u����^c}[JH=�Z_k�w"cL���)�W6�m��E���^_����+��^_k��.����k���PIi�[��M���(p�4������Q�B�ci��
��)�C�@������������qJH����L����^���,zH�����i!�/8+���W=M�`_���q��O�5�E�E2���7cn���95����f����6�^�1���~S�k��^_��D�>���$���'��w�9S����9
��ukx��
��e������k	�Bz�*��d~O�I���z�*��^�c���V�������������� Jf��#�0��U<�d�O���>�^'Y��^_s�u�r��H���G;+���o.b�l�Zj����W&�|�����h��0���S�c/,��*M����s�.4�R��i��Q������T���5�����3�R�z���.��z��Jg�MCU��q����:��&����5vq'��Uk��Z���M*5��}[���eI��=�B�91��@�@�6j�e�s��^������|I"O6��V�9�P�s�|��V�q����z����w�$���(7�\�tFE�G�4�}j�l������Q.o95TUdfP�&����<Q�������:���L��F�4-�$8i���5N_�
Tw���7��U��;��$M���[��]����4��F��.��w�n�^���s�������[���:�}@��$�M����������������~6�Zp2<��M����������1�:bL�9�����l����b�(�6MHjR��R2<������O����{^���"j}��Qn���8��/L��r������'���u��mR�i9��2_G�P�w1~��z�;�������:��M�u����Qn�;cN_����^��I�~��;i�z}�r>p�����Q�y��#RZHi������Nm}��%�G����������|!n���sjz}�����D}�i��%��:p �O��^_	�s�N��cS�o���A�S��S�b��S����B�O@C��+����W
t��T^8�������B�?U2~�����N�:����
�-����������b�G�{$�G��i�c��UT.�g~�^k�QI����r�q�`-X�9�G��yb+�� �GyO��\���$�G���I�L��O�>��&@7P�]$�GY�u��Ps:����PV�}�G����M��V�G�M�����������|iS^6��Q>m�)���|d�G��c�9e��z�O7}�����{d�G�Z�.����Wf�Gy�>G���l�i��1Q3���Z�|`�Pz(��QaH�f�����5~T���������:��r�n���G�Jm�V_W����zI�o�	��l��c��>F�N��y��
9�5N��%x8��QaH��c��H��������1�~���������~�����t��c�
��[�u����!���
�1��G�����W���0����g��m������^��m�1�*��:�j�A�r���Bb}���\�b��Qq�"����*�����mq�=h��Q1�~���"��l����=�^�����5���.��9n6~TL���s?��~6~�����CW���Qa�A��:t������b.�g7`Z2N����S�������{������e�����\;?jx�Rs�u|�l�����5�s������U���������Q�n�A�u�?*��m��w������v���f��R�����S^���Q�l�)1`����GaJm��:�y6~T:�j�B�@���G��\��)�95~T*����,��lxTN���8�C���G
!E�)�D�1���e����=��G�����^Qc���7�8\��1�K�^_�\���
*>L�/z���jd��K���0��b��^_r��>��&�M�/�]�5iuV�^_��v:����M�/�
-��u1<*W~e�����������U�/^�������t.��'���
��O���wy]__6<�<����A=6�{�
�*c���6P/X�9��+Ot�ejC�95<*��:����b�U�W���a��Us�s�|S���
����^WT���j.�)c|.uD9��1'8����6
�M��N��r,�Uw#�NW2�����.�:j>����Hu�?V�����G������%�:���(������*����a�094�9�w�c�(S�a��A�^��3/}(��Qu���]0j���7
�7�oZT���Q�n�lrV��Uk /�.Y����E��@o������f?�G�]��c���d�.}[�����z���+
�������
<�,�*���j�G�g�������:�-�
>�k.��G����B�KM~T�zz�7����Q�IF�|����?��������#������������/���o\�;������_~}��������Oo����ts���o���{w�o��p}��������qw����1����_��N_~;��ts}{<Xsg��������������7�>�������������x�w�!���|���_O��W�>};~����,\x�n/9�p�o��s�������
�����1I�������y}w������g�A���S������onno�o�>������>y7��?����|s|�����r|�~du���us�����I�����I��x���������x�_>}��/���/��������u�������=~w���;w��A�i�����tr���tr����������Q�~>>���{�_����<��;���G~�����g�x���#�?��f���X���z���������������X����������Nw����������=����_�|������������7_������u�������_�����x��i�������Oru��_W�~~�����������?�:��o��}��������a�����x�%��LP��O#��d0h#��z��7������e��|���p�����>���8rW��.�J���Oz6D9��"��i_��#�9Gz���������C<�����[e��}����~J���2��E$�_��/����T�ZXcB��F
-a�g%4�,J3fh����@`�r�N$�4����n���������(���4��L�]J�����"�����b)4�chTE���]gHl��,�%j�<C��HHA�
H��hC6Fh��-�W����Q�\��������0��oE�,�"�J:�f!�n�9�<��D�[7#�V�y��p�4���>n~Y���U�9�E(���S�-�N��&nD�(����������-����9:����ru,"�������\D 	JYl�61�U��q@�s���D�O1���=n��b����m7p f��`���E����������Un������J�{����^DT���Y}�,�a��J�����~��"��XD}���5�*�AsV��4+�����&��m����L�i�������Qq{,:�TX��i�!WX�#+��H��y&J�g�h����Yo���^C������>9���b���BV����Xul�WM��G2Z��G��Q�\�l�`}���A5�gk�Bv��:kL�!ldO4�fA87�g����������q.�b�$'�s�C��}�V4���odQ6�+�Egc\x�M�kF�,�����&d7�<���C���n�)::�Q\w��r��hw:{�U�I����	V�����T�m���V$��2�J1Y��8��Y����1.^�r��;���(��SmtS��!�nb�m`�#.���i9�����!l��k��.����T���TAb�2���)(l�	���_L�QG��M�L��Sf��M"���/G�T��Q��6����H�~_�N��[���fE��A�m���KC(���0�S�!6�P87�����	�U����=��O
��nS�R��R��S]4l*�<�E7���h��A�����-���3��ef����)���I���Uu�������E3�Z�,B��p������V�������n&R��*�����x�).�9��K"E��9|��4^-�	��m�*�iu*�tx�����OEQ_�I�Y�TJ�)���`�{J1���MQ���{&��"5�������Z�����Cl�_��J)����q��V�M%j�nn����v���0%�!��� ;���g��������{�T}2U[���Pb��z�T'�c��{{?����3]D�
8��	Y�RT|�)�z��������Wx8�v)$�aG���k�U���w�kR��'����Q�
=j���T$N���
>�`oU������Y������LFY/�gE�ME�#������e*�v:�P�)��=?EG)u�S2(D��OE�ApCm�"�K~*�I�Z���^�7�fw��Y'sA���(�3���������`�	����{��6�]����v]A�_UT�18�7��RaU�aq:�p�tf��O�������4?E��n�C��18��+��;���l0����R�F����t����r����t�����lM0�"c�b���oN�����N
&�7�s��K�o�R����E{�Rh���t�;]G^D��OE��
�l*���T�T���u�XoN��`�	!��OE�V���:P�������qJ�9�mW��������t��[�d��3j*���m��S����EC�zA����|���TX
sjN�����CW�j�2�f���u�����;���'����nc�u:����8Ew���T>fN����G51e���*�W�}cp���S����G�A�%�[����h/��������<n�T�dUK4f�2���5��_��7�G��`�a�	5r?Eq���,V��@�E`����1�VA�o����@%��j���S��Q��!�cp�'���1���}cp��[�u��)hzcp��LX.=��q���pA��|��}-���v��F�����g6���@�18�'�rS�
E���S-�e����5E�8}�1"�C��)�F@G�*���Ecd��f1�g��J�������NE�A�����R���(�[,�?Xw�n��qp�
Ed��v��(��'�u>T��E��� N�*4���h�d��s*��E��r�GS�S
������r~S�E�A�:}*��M]{��#��h�k����T��EG1��>8+���7E�a�����T�QSQ��3����T����1��">��S�O[�Z[�wQ��s?�PE����LQ4�u�����8�2n��#����1�9LQ4v��DD=(����n��
��_�)��A�Yc��|Q�2�pr\���.�W�)��aD��i-P������IT�|��A�
n���pF���S��s��-�wyy�SM����`G��2��h�T{�
Vj)�E3���]���b�Esd�cS�5�`��%d�E��b���h��R����LQ4{��T9R�\0E��:���8��)���<�������)���
V">LQ4u�|���P�d��i(hb�^(��`���W��D�E0E�<D��n�+����������*���Qi8��Kk_���E����P���
R��Q���������~�oW%�Due��(�[g�C$H��s��a���r�>����qZ��>���$����r\�;re^��uS�Cmi��oU�W0<�4_�*G���z���1��*��`��y`���^X��bxTu
�Q��������zcP��P�Rk���T"U��u#�0|������t"��*��%;,�i��b�xN)T4���OG����(��j�M}c:�B^
]Ge>v�p�6�.�����w1�{����N}wsD��,����1�>�/��$L<*�Bg������G������C����4j��^���|l:�u�[��
{
��.o����z��
{��9��
y��N��(��&U+��7��n�Q);!N��Z�@�p� !C���Q~��c�~����^k�S:�)�����������|�q�2{X���$3/L��������E���Q��$��)����_�~��_���XE_N0����=�A�B�#�9�%vZ;R��>6������>6����]��������0���
���T�N�0�@��Z�Wj�a��F���:�+Uf:���"��V����������b�������!�
��.�����e:����g��u��\�������*L���{%qd�E��\�KM��DM:L����K{������>��~=h����o�/�GV�1��!`������S����|�E|u�0Y�J����bg=��_�v1��A��C�(��"��8ZPe:����	�w1<*8��4�9&�{��p��|}�����]�1D��s��#��>�Pzb���U}��t�ry�wA>�j9�5H�s���G���x�G����r��3I<*L~��M�g�;�q7{q�hx�q�����qX�K��p7���<��8��G�n���8���Q!��uK�S�@dq����D|���#N��@GH:�)��hxT���676��u���B����p�c��~$���� ���Y_s�����~��{�X���e:���7�=����p���P�W����>��7���;P4<*l5��mKI"M�;pF�lQ/��������E���p7�s�<�D���t�N���B�!����(�}d���d�G���0�����"�z��p'���Q��,��"?���.l=$���F���#�C�(s�"j(�����^�m>��7�������uS��8�6�^��r���G�LgJ����}}��w����?���0�B�R�I��t����^��c�8��)��'zHb��R��z`o���>������(c}:�
��:8g�v���g��}[q����z�)���
�
�~�<��:��J�m�L���M<j��'�������JC��c��\4��a;�w&.�)���#����	N@L���L��	E�D�w-�l��'+7��f?�����G}Jq:��UDp�)��rN�c���US���J�|1:T�\����6�.:c��m��_*�K���\��Qy������X4~T.���8������G�;�P�s%����Q�����c��������n�]���t�s�.��y��~4<*)���n9�K
��-n��1��j�������>�hxT*����Q��D��{��_���<(�"� �����*�C���Q�xhx�������j|TQ���*�_��J�t�g�
~C4<�8���D�:E�+���Q�,�va�|u��AN9����$_s��Q�$��o�|-1���p���85<��<yU�E�w�kU{���w��c�&�W35f<�E�P�._j�����Ma����u���AS��t�FR?(�3�����X����]QN����j���=0����)���{���������T�{�����),)�<_�����;4U�0}�6r�(��8�w�Z�K�����3})���5
'�D_����G���g�F_=���.��)�����_g��T��oK��.&�Wu��<^U�:����]�P�g�R����������H� p��-���T��1Z{2�(���w����G��*Y�)���CB�>�K'�6;
�XQ�S�o��A]=�*�7<��:���Q�3���=���Bk/����1�/B[3�^_��e$�D����_9����9`q:�y���j�i���N�0�n(�|��;n^\���w��&n�������4��'�}�.��������������i�����d�K)��dz}��iC�s.5���SWA|��;����>'������\�B�0�F����� x����Zp���\��n2��G})���G����W����y&����}���%���L�/������t2���iQ��s�.a�i��y�����C���a/��Hgz}���9���N�G���+YiS��0<j��w��*��;��?��A�u����:�~�w����s��1F�b�nM�����\xok���z]{7^�Q��i���6th�^r�=�����[�����������s_|���7�����b2��|��{��5<���Q�:%��j�o1<J�/��c�w�4��0M�zd��R]�����7��/�N��RK�G�H,�=�
kLi�N
sG��X���
�/�� 5�g���A}L����G��`�3NE|����xj1*k�4��7})��D];�3�	��g��N�Uu�
�q��L~T-��)��1f��^����3���=�����%>��b��U��P�Wf	)�����1ez6uz[�w�}_��R����Q$�(����(�q�7�Bu�<��K�c���H�G�AAAOt��%M~T������r���J�+��H7��8��1N1A��S��I}Y�������+���kQ�����������
���^�/=$��X/���]���O�r�4��������:V�O�5���d�(���m�� ���8m�kN��������!�!���G�����N*����mZ��'g��������=Wb�?���HG�t��������}�b�?�����(U�N���>�Q�K�������u�r���g�E�kV������]��vTk��Qn�s���0/�������\��:u�s��t��#�I�A�����qW��}��
����mg�td^��mN�z}O��%>Pw�����c��T�O~T���C���I��
��\�����N����q�1��3~T�u���� z7��Gej�6�:�\���\��u���/�8�?�wA��K��w�){6i�+z%���K��������Z����+?*���=5Jc7O��\��v�E�3O��Z7MH�����z}O�1�c���E�.?*�M�RgS=���ss�,c�]����x�����n����:vx��6�*�f�����W`kNh!e�G�a�s�G��������l���4���������������Y??�d~[������N�*=���6?*���M@=Y��������1�������O�oD���^����E����<��6^R����3;?*��]�';q���G��z��9�O�'>�'�Q��Q��/�^|���Ge���oH������A�X�O�o)�����<�N����B�=O����J.����������my�G����Y���~:��\��yr�z}a����E-8O��')��9��z��8-��)���W��G�-���k�o;��"���m�s<�i9�q���@�l��r\#�:����%O�>��RY��#oc?���������G��kL�s��8+
������3��^�l����;�}\�K��UJ��N�qW��GU�^����9}��:Z�W-F�n����G���9���������1����w6U�t9�{�A6<�)��c���5<��%����&�������$���ug��Qu��x��3J���Q5��1��k����Xc��RU>�'���X����![_����]�������G�Q���E|����_j�k\�.T}.��os�+�F��s�>��0����c6~T�����X�����Q}����=�������Y�C��{���p0���h�9�z(��l�&�3{�G�����:F^h�f�G�������88�b���
���s����X�	�����f���T��Q��R���Qn\�1��R��<��.=�/*��Y]��*��U��N=������z��Q��{}E����O/��8xJb��8}�4���K��x^�^&?
2��@o1����xp#����M����cO��N���jq}�O&�+�=��QG����A�G��l���#{��
%����?w���Q�O+O~����K�Viv�����u=�j�?��nr���?��6c�zG���:r\rV�{4�5�3~T�|�9g5O~��A[yI�������L��c�������:n��������Q9����gQ5���r����WXc6~�q}��6��"������ECK�k_����*�n\��9��k7�O�����~��]�~�z���t����w�_>~�|���������_������W�nn?����/w�N��?����>�p��?�����;��}�������o���n�o��k����������_?_�����������\cx�����Z������z:~���������?f�����=��o��s��������0����7�$]���v����������Z��������`<�����������������w�y��Q�x��7�'8�rC@���G��~�����/�'��~���������x������������_>}��/���/�����3?c����u�>���w�����
y�cY��r*�������tr����������Q�~>����{�_����<��;���G~�����g�x���c�����1�c;�������o����w����������������tw��q'<��������6�����?�>|��z��r������76����c�{w�����/w������4������s���0������������?���������u@���?��������{��j9��"\{���	'����G��������3�������m!�[|z~����}����D��4��Of6B:n�K5�����I�����q�TR��|��|�k�Sz���B���qk����/��qL�@~��&y�{�f7:3^��#�w^?i\.���&���zq��8�����s\�,G����vAO6Vp��k���[�F
���-
FH{�Vju��>$4��\��������������xT����5Bp
ks�,'�SW�Qu���W��;�'�+*���l>,:�sA��.��/�!"�Up�����{��U\��uz�F.y{
��q�v�
������R������"$�0�0'�O�^d^oK��
���J���z(���T&	x��W��MJ�@�L����
{1
ph�J�J����ClUq
$�d�O�u���z �P�R:J&KW����)�AS���=�V���Eg#����H����!v-����EbF���%Y�dX�7���.	u�Y�.�S�8o�9�60���>���VOfJ�)�U���6�3������i�'��45i29���������I���y��X�}��V���E������;=���F����u(7�+��]�_V�n�����)��y�*
L����f[f~��>���mg�F�&��9��'*��������B

���
����a�|X[E���+��b�]��,Nyb/3�l��E�!������A�l��&9�K�op�
e��m���r��f�4@�V|������a��������2��L��t�S�m�y�����0��>x�AG3Sk6GE�\�����f{)��=sp��d���tM�&4�:�_��%�pl:����_�;}%�E���&�E��H]�D�V��_�4(�5Q�������Dx������f�N�kYEK�b�S���:(����m�E����M���Y������d�v��rf��q����*�x
��At��v-��a�};�_$2.^�r�w�?Y�/}d�~�vW;�N���! ��J�	��T�S�Lk��Co{@��� �Y��1����_���M���Y��~��4�&z�~A��"r-#�:����kA:���>�05���`�{gF+��w��:�is���(���x��`H�qg7����gu����Q��_�wf���IU���lK[�K}���-o�]���c�(oz�}��`�����B�j���0=��_�Xt��S�1u���`��
mK�f��:5������u��0�|
4o�]7�0�2�����>Q_&Q�O�1}��aPEH�����l���������w���N'j*��������so1?�d+�^��x�~��v���/E���D��y���zi�p�SO6��XW���6ouxHd������������z�%SO�$��8u��(���x���U����d��c��������X���J�������z�}����p�����&���w9����S�fE��uG�!����b�]7l>.f0I����p�zS�<��S����>�j��W�����t����S��u�*�����,��;���������6����������Kc����3=���GVk.�����@�
��7��C
��!2����w�f`Py��w}��gC�����~��b�b�����������SO�uh*t\����z���P���3��<����Z�?���������J�������5mZ}�f�����/;t\U���.a�4�|"o��0<��
zg{���}�h�"NE��7x�c���Z�7�n��-���*��o8R�������X3=��6�g�MU�7��im��P�i�s��@CN`��z��z	\B�O��bz�ah)�����g��lL��j8o���7=�8|�0��)Q�1y���J���X7�nt��J��T�k��a�F�9t����7��h=�~�1��x����xO�������B���������wS���CS!��������_�w ���=>.���>'����qX�������5���B����^�_&7PO���
����=26�
G�Q���:�������lV�����.�c��Y�i��Vu��<o����5gz�#�e���V��6��1��j_7=��|���y.��v���f���[���L���{v��0�coz�����x^�r�j�nS��E�uA�H�P��l�xz�7��'������B�����(����z����dS�����t�����C�+��G���'��n���Z��Iu�Q�q�_��������N��B;��������A�c�s�Ak���Ay�x��R��Sm�@�nxT����?����`z��Q��2��&��ds��������I0<*�NOs�c^�=����!��=9�X/���2�!�=h��y��LO�Ih~a_���G��������bz]!5]����b����
�r6�:��.�+��'�����j9a+	s*�����Rr����8o��Q��ny�����:V����w�`x���!b��
j>L�pH�@�5G�.3N{e�����:]0=���n�t�N���/���=Es�'[5%��Nx���8�0�/��+7���^��=�b��<��c����`z��3�,:�A���Q-G�c	����
�j)��Q^��LO���{TI����`xTK��)�:�����2�}�^�B�;U{��-�=V\3�����_��g�:�LO�m5����G��^�#�� z3��Q�{��g����'{\=����Eq
�j����ua��7��p6���`xT-�w6�l���J�S{���r��&��'�c�%��� zM��Q��{�Ti��B)��m���~�`4���G�Z�!�3<�m���l0<�5��z^��8�d��U?t�x�q	��g7��z����{�n
�
Cv�}�I�j��QaL
��Ha{��7��{m*�0<*x��4���vB�����
��E���G;+k(�=��c�Q�=m���|L��M�TV1f���7��%_?����a�d������7���7��e���"L<���0��
Tw�r�/u�?��?�7P0<��f������f��V��#���A�^������7L��V���xT���8�T�0������gB�]����a��A�O���Qq�.�A�{����ld���.���w����z���Q��0�.z���Qa�����A����G�(�%��_*�q�]�(RD�v�xTr������'#5iQ�(��gxT��1>��p������}+�����F~
��c�w1<*�ZN��]D_N0<�X/���k+|�B��i��v��I�]�6�}��=�M���G
�
���=��cxT����uEo`���i�<qR�0�
+k�\�E�*�����~[����
�
��+�1F.����R�<W6_05������P?U}[a�Q�>��J�k-L��5��P����G���<G:�}5F�k��e���;A������TdxTx*�^���g����y=��w�s�1�w�8��G����Yk^P\��Guj�8����
���5����!*1�G������/�hx�w�S��"V�[F7y'�������^���,��;�r6$�K
�ru�j��l�������B��*����8
����0��0�Y��zY��G����Qq�=���$����o@	_c]q��)�u������)��hx���3������G������m�c���{�{��wy����&(�/�Sh��}�R}��(�������a����zG�fa��;x���?�57%��+�N�z�*_�hxT��u���V����Q!m��}��Me��D�<���J�+���������Q!�gq����8�Q5z��8���>��G��y��� ����Q�m���aT������%���&j���0<#q�C_��1�����|S��q���G��#��'��
�:n�����_iN~�hIYs�Xyr��~���~*��b�}}[m�\/��F�G��~���+��N<j���{N�l��h=K��=�j�O���^����G4<��������2�Q'�c]��������K���{D����%5�$���Q�5��UQ�����{l�Vxe4<����=�\Q%�iq:h
y'E`���(�2s��{�*_7~�q����~�U�=�����Y��R���ru��X�\���hx����������qZp�l���������R�aqZJ@]�um���y��������yF���y6��������Xf??536���.�G��<x|�NG"N~�(���>1���6N�&Q.������:�MT��nxT���`_��R����A�7��+��f4<��@���=J�s�G=������2%�ZbM��{��g�����A����
7�j�s����������0�y���������Q��G�#N��������gC�Rq��
���0j4<�������eTw ��B���:��8��Q��X��'����O������u�`��>�*��x�c���U�/m���A��K[E�v4�����}lY��,?�|@d5���Q/px�CU��"��Jo�U�b�i5��'5j9�R��~�8���n���Z��?�J=��T�����Q���8���z1<*�
	����zUg����V����a
:����.�����'+��8����
_���1��{i���!����F��z�m��B���Q�o�L���z�����ZR]����(7Jek�D},M���X_����]��G
�=��7�J�z}�
}l��D|��G�B]'��s?=�QCn�b��(����GA��uK>���g<�8x3�>�Z�wb�&�yj��9.b��^�4��6=�M�H�l��G��f�\� I��i�����yRW����>=x�z�����:�����n�t����=��	�-Q�NS������Z{j�O]F���� �@��Q>J�B�#�:n2<�u����:��4��jf=5�,��dx��������i�x����Qg��|,?���9M��^&��3Am�$tH������r�Ge�5��G��^k�7�3���z��q����nO2<�ow��]�^hx��q��n����z}=�g��4v����r:�>��x�8�Py'�T��)��iI�������8��z������Q�ErW��16��qZs�M+K����9��k_���������-� /��i�����B�P���������W�C��+�.yk"ONg}��r���aMi�I�M�ZYj?�xT�z���/�b����3�	�
���?e�S�(���4����

�}��#������=����K�GI1�@=%���'��C;��w�8�j�LP�_�aq:�-��D� ��;�t���x���&��G
�1w������]�*j�)����M��;+��CI����	,)]c�&����L�>�q�������G
MH�s����X����p���dxT�~K)�Le�CY��.�g"*�@�p��I�z}�������������r���z��Z�`
E����bu��LE5�������l���&?*�M����.�G��k��Sc�����wQ���G�U'���x�xT_mR��M�T�O~T%���6�|����$#����	��c�����y�b���4���	z����������]s����\�xT�8������f�nZ��	�z����{�|;�[��^���&584�S�������
�\z�,t����
�s{���;5�S��.��$t�9?
�KE��W��>���;!�Cpg��Q�Qg�����2����+�)��SW�z�8��0���r�c�<���1LW�o�r�](��d��#����/�x��2������j��G��������|d��|o�V8�����^_����#��z6~��+��YQ�P��<��6.`M���py��
������0�>�^��^Z�Ke��J�]�������lxTI��U��8��lqZ���i�	�V�z}����������_j��~)����k�3l����'?��x���h�l����W����S���g<��$��n�/�9���\=< ���
�c�?�E��?*�uk�Q-����W�w�6��=t�:�y�G9�';����<�Q���/Qo\y�O�i'/SOI�A��jCgb}��7P��������EN����s�<Q�-"_����#���jO��Q�f�Q��r�>���1�����p�aK���R�n��G��6W�$��r�8�m��/���X��Q�Rj�,����G��$ta�dQS�������wsj�Q
}�a3�-�^�������C���%?�Q���_�F��7���)x�a��N��C�f����Wf�����F�q*�R9M�ig���]D�-�����Q��lx��;P�@y��dq:���`�*�N�q;*�C��dq�s�|4����b�iq[O
��X/�G������Bk/nS6<���r_��O���!��������������s��\�����+jN�^��W�x�E��G�!a�^8�O�=;O~���G*�5���4��w�$j�9���L����G�@��N<[��<�4m�HrE��������n����Rl?}��,����-��i��S�l����Qnx�`O���o��G�c�����WR|�g<����90�Jw#��{P��Pl?��9�Dm<?�Q������y#��T1�]�
.y+��<j�iK����$H=��_�AZ���������G���M��M�\t yWuXV;���������y#�P�_m����X)VAV-A<��B�V�J�T�un ����A]>�%�c������.��/3�pXf����5J�\����6��&�d��Z�&����2�u����:�e!a���Y��B��)W�4��<�+/0l"$��lC����kY]���i�,�QtG4�fq��.��!&7�S�%���u�p���i���iU�z���hTj�b��}���������gT�����`����>�@���r� ���%U�5@���!�R�I��4�f�M�e�<	R�"��-�;	R��u����qwu�����������?���~�����/�>��?���~���7_�_}�����7�����;�7�x���v������������������w�/�������?����z��������|�����Ogzws�u�����j<��S9�������z:~���������?f�����}p������\�����r#������t}�������wW�_��j\���S���lv��������O��_no��O������������������8�<�������p���7z�����?���������������O�o����?��uL�qs9���c��}����t�"���q�����������tr����������Q�~>����{�_����<��;���G~�����g�x���#�?��f���X���z���������������X����������Nw���������=V����_�|������������7_������E�������_�����x��i�������Oru��_W�~~�����������?�:��o��}����v������Y��`��,���	���#�'���V-��6+����_��F��^�5}?��O+������SK��~?�}��O}:v�C8i��������@��-��1D���C��UT��-+�Z����D��� ���6����~@��6����w~>�H8o~�#��9��=V���-E��3d�u}���8$�g~P���J������0�}�������{�?��G|��W�m\����x��}�v�W_C���3�����.}}�����1J[�LC#��c(��g>���0D�/*�4�a���D��(K��7H!��=HCq�:h�Q�&�,�|��C�|P(k���������^�����Z;��;n���q*�;*�V��"x���h����Ae�<�S�����"����*n��'U��
}?�_��"�������(
�=u5�E��y����v M*��,:��w�"���&��1���V`)Pl��W�JE�VW26��`r}
(�6��d�Ip&P�^t�^��1z���#B���&T��rq�7���lD��G}�����B�J�����+|
�>����ip�q��]���M,3C��pv��!��b��������TgZ�e������7�y��B�c����Xt>f����(0?�Gh��>E�$���X��l�kD�p�q�@x�Y��?vN�KCH ���U
���N��L�	��#��(�F������) g���e�x��T���:��MO�S�:�������{
���#��G��_���dW�g!V(��^6�2P�V�J�;{����J��)�E9$"�l���e����I%x�������S$��������Z��'�`Mv����@r�Do�z�w�F��P<�EgeC/�T�U�^��_:T�t=;�i�K�A���^]X#��c/�T��KO�N��������A�(�P������F��[6�}�L_�fc�������.�S��poPz
�y�����:���5B9��j@zm�O�.^�4�^KF����&V���u��������ef(z��\Dv��w�^����!E��C?�����:�Bo�.!��6
1F�-�������G��]��Y��?�5R8����n���y�EQ����s��9!w���������V���;o�3��p����mQ8���E_���!{�T����j:�y\\$�4A^�v���[��K<*�b.���_��"]�n�[�#�h�F������D��%3�MV�fRB��)�
�&=�qR�D��l���Kl���w���b=Yy���w3H�+x����;�C]�wA��T�&+�2� m �����h��L���Yg�2eE{!�RXA���I���t�$���O�Pn���*����
�#�(P��u?i��l-�\/�9�hGl��$�jO�~�o�r���X?i��>���|L�[��H9T��h����s�RG">&���I��Gc���FY���Z�!�a5�>������M����;�]�Y�<�JO����4N�����X���qV�7��BJ'�s�r���J������B�2x"��fs��&o���D�MN�������X����ov��H�SV�o�l��)IaohR�Tt0��L�|L��%\�U��&+�6����x�3�������#?i�.0�-�	���4��7�3kWj�>��]����?i������I
�I��#ii����s�~����W���9��?q������pt�c�
��7d��@���}L���O����3J�&�s�$��`/�Eo�R�=�9(c�:q,Nk�h�D��s���4p?E�������+Ux�Qc�~�������e�8��^XoR�~�8[�hsw��3Y����pi%�'��m�K&UX�9C�z t�WY}{��:$�_`�����&��O���4YQ���i��L_f�F�G�J ���8iU�)�$�����X�"�O���3g���V��0�
m:rK��`�!W�MV���*\���0YQ��S:?���L��f[NySu�6Y��5�uK9�����1F��}���7YQ�;m�	����������J,�^����dE���E6���Q���is7�� )�z���is��z���q�MV��J����U�b6"���6UA�LV4��	���N�is�6�/���8=���=�f}.Pwo��a���,1�`E��&+z<�������S������p�h#�&+�3�{����c�3lwSJ	��OY����!��*>LV44�n�!�dEC�,�y����dE}��w������&+���^�1(s&��dE�H�M&smu�4Y�����
�6n��!Rc��P���8��j�D!����.|���������J�A��"�cq�p�����9,N�fqY�'���r��G�����2�����'���p>h�-��`��1o��k�oLV4����6���`q:$�����
�%��h�����T�������!u� +i�`��C��R��s8���
�#�����=��q��R�ZA��oq:�$H�c���mx���� ���^(c�l��<-?������G�����i�D��.��}�J��8}��R:�qH7�������L;��X<���&��K����D�#<�Q�D����^���l��p ��p\�E`Z�l�J�X��'r�`6w�$J�o]�"���.�k?CbY�����
�}�:u��3Ni�W��z��������\�R������.V����&��]�XA}��4����M�Y�G�oK���{CT\3����p/z7��Q�H���0��~��=��}������d5Ge���m������G���(���k_�A�G�!���An�ho"��q�(����P]	fsW��Y]��%�c�i�� ��\t0���*�>j�]����Q�U,�](��b�dE3X {|(��`6w���s��~����+���$z&������7��^����1f���`/����*���u�K�1D����1���v�X�cL�4��h��������0�Q��|?L��P�[�N�+�Uo8#<%��Jz2�);��!�6��4H:����sA}[�<�!4�i���N��k$=�f����=F�V���mxT����aT�h��'����#�<y�b%��)�c>��I�}�	8L����h�4s��[�|����>7�O�r���]��d?�#�Z�O7�<eRG�=���m��<��:�U�&j���������d@
aOp��� ���Q����X��>�09P�jwq����I�����N�9LT(? �*��`4��H�Jb��<{��9U���:���f�.��3&Tf�8��U�>�PC�u%��M%r��BE��o�.�.��6~D!KC��dC�Nk�D-�m'jl%xR�D�����)�<����
�K��&#���&�"�{�Q��������&��������t*������](���R���Q�9���-������K���xQu�
��G���O'1�Q��C�T���u�[���*�X0jTu�^�UM��(���|���U���9��W��;�����Ra�l?��M�Y��`��6��N.�PV1~Ts~[s�b7��jm��E�)�J4~Tjv+���$�o���m�1��N��Q�%�{���G�G����r��_(����QG��ur������G�|�L�5��������j���Y�T*
�1�U�#��sN	�D�G���q~[eo'?j@�z�]D�"����wq�Ob��5���b��=9N~��g��)�is�cK6��'?��p���<�c���V��������]^':�u��ko
�]��]��c�qE�M��F}<��������z\�����c�6w�>�x��8�Q��Us�
"O���X� �C�
��G����pf�{e�6w�9�<�����n�����-�q���k���Z���.P��}�R_n��u�qh�w!�1�~����=�"_�����m��v��������9���h�{m8�`O��������:�9��Q�@�����e�����r�xv��Y���EG�G��IDm+�$����?Xs����Qn��"�G��tg�<+1�A`�1����Y�+0N������W���j��o��:���<9��My6��[����jC�_�?dn9���n�/}y���s����J�����?�������#���>�E�B4<����s�&,:N~�[eav�iPg��G�U�{������5<��@�:yIjO���F\ls���8�Q�8!]�����Nb�������L����t�u�hxT�[�WH�l-�S�HM��!���G�����3����4t��m<-���e����57�Q.���q����&g���:_&?�o�o��i4<�H��u�e	�k�.wm��p���2�Q��E����G�'7�e����l�(W��X�Q�G)�g4~���o(���?����s*���u�j���WFUs���^��Z��M�t����G���|���rRF|������\��wS�n=y|�����Gu�?��B���*�3~�����I(2G�G��3*�v!���6�`�
A�=��-p}��^k��?���8�	����3~�o�|d`A��G
���:���k.z����B
��m|B�.�U
9�?J���G���y������8�|,�����q��������������-�������������c����8��2�!�T��>��W�Q<oU�o�(?����1��42~T8���3�:�1,N�~]s��5�k'�GWd�����f���K�f��G�����Q�����eCN�E-8?*m9��b���&?j�����}���d��8�.�KB���#���9��0w�e����a���������m�|�Ac�+��G��|����#'?�����:q���1��4�U�l�8���ud(�0�(zX����9E��9U���'���zC�Dya2~Tlo�c��4?����%n�+��)%?y|��A����}&7wY�����(
�����+��u����r/�a�����9���=��Qi���^|rv���>r�&|2�����+r~r�O+?*�BnBE/�2�1~Tj����Q�/j9i���3p���2�QCs�9�Aj�?�%�&9�b>&?��t��]y'���b��;I�<��1�z1~T	�)�+N�0�����\Q�.�w����Z�U(�������������k_�����<���sN��G�����>&z%�������F�:�i%�G=��������'���PG�-.yr>���]��P�V�!��U����Q9�����[K�	�D�(�/z��Q�n�0�����������*������$����>�$r)��re�v@��2�K�5�c�.�
��G��A�w4�O)���4�Q����\5�dxT��M�Wv����%TN�p�D�.���\�����L��w�w�u��|LW(�yS��-�i���������d�G����/}��|���m�kj�S�n
�JC�.���8�i��F��"OK��&��
�����������M�4�M����r����D�-?�x����kN�����T�a"y|b_7~�q�%p��#�c��yz�n�$eh<����l����L~T��am�v1f��r���S��T�k���i����w����-b����&?��pN�.*������}���I'�G���}�zE�X�<����RJ#3?������b��Q����|��~j��RwFp$TN�f���8*��~QOt��16�
�.i�9�
�zQg��G�� p��+���������G�uk��
L+l�}I����*m����Y���6���k5������43�A}=�~��g�f�	�W�^8�Q����|��p����������p����sTOo�����w!7A������"���#�����������������1�����u�l�)�AM`��Q���dY�����??�@�s��������*e;���DN����=�go�����G�����-�q��U2�[<�r��{�����7x`8J�#���c<���FD����j��5G�^���j�����������r�^H���W�����x���#?�n~8�)������*-o.����l��:p �f��2>���ng6�q������U�����C6~T{��Dm<�s?O~T��
���>�l��Z��\/���'?�9�:�sb?�������]�����m��9=�Ge���^���Q����a�a����!'��&?��M���n��X��n$�e���u�9���Z&�]�w�kf8�O�w����qF��)��s�}��|��~~����������?��n���J�_���Q���WE���U}������&?j�x�>���N�~���<�������!����9�<_�sX����Z��3����c��V���J���_���d������lM`�����=�*�95�w2�t���WR����Gm��O�����G���9��U���7���u�������#���sh�`����(�.��G�����W�1���=���!�B������� R�9��Z�?��Q�c���c���Qe�N������w��jN�~������������c��s���8����g�������o+jJy���#���V���G����e����N~T��t�q:�Q�^���S�������@B�������m���K�<>���\/��������8�������/�zv"����z�{���1�Qe�����U�u�i��E-'
�|����x^�=r�<����"��y��j��p������5R���Q�%��������*��j>��YD[���^��5�����P����u\����F]k�.S��I�x���\Q�M��G�Qw����j�y��R"G�2�����(_�z�N�fr>F9)� ������@�,��}R�9��%b�
�jCD��	��)��)���� ������$uH�I8�L�8���a)�6�ED� J6��l����E�A��&�~iQb���c�����J�� �J��j!�)��$H�^��]x�
1y����&N����xHQD�N�T��EwTq�� �H�C�1,b��wW�_����|�=��������_>_��������/���|z���������������������o��_>�����?����n>�z}w�������������;������><���W������t��w7�_�������;w����a�����>}�v��/��Y���hd�K9�7O����w���t�D����7�$]���v����������ZM������ut?v~��������tz��������|~���{����	�?i�2���2��O��������$���o����x���������x�_>}��/���/��=������Y()��������-���GyLE����c�8�D����tr�����__����G����4������.���2�d�����������'_������1�c)��������o�~�;�N�wwcm�����?{w:�]z\E�?���X�?^���������/����|�cC|��?V���O7��~�?�������OW�F�?�a�����]}��������O�w�k?������g�����g���S�8�W���-)����2X"���H�����b�?�VM���,9�qd(>��z^;���6��^>��O�1��q�u��P�'���9�a��LeY2�#�L��<��KC�d�J�|?�}	+,�@K�������Hk�G���J�����j�]��0�{y��6����	��J8d�q�V����.���.�.��h��� &H����^��DMP�'��c�mv�H��]�u��
�V��O�����n	��6E���?�����'�^�;0���&�[R�*+22"V�ZS��U���QI9�S��)�����
�m4@c�!��{�z����#b�{)�������,Q3�;L�(��@��7�|��*���=�(�+�GJn�e'
Xe"�a�:�G-��6�����f
Qx7��
��5������\����v�f�C
{�[�Bn^0��5.�3bX�S�#�}���4����-�8���m"�~c����Q�w��~#1�)I����[�#����l�ol�8��f�n��u=�L1�����	SP�Z����a1�/� ����:@�UP�O�}�l��6uD�U�7{������-�YR����������=����j�Pb\��5����A��2����{�V������EWv1;����L�1Q������g!1�j�,���Q.T�@yZga�&`�*�&�>�_�=�:6�	�?k�^i�j;�w�M/ji����t��~�:Z9C�[��._DY�	P�$Pd��j���������M48�H���x�f/�TC�k%��'c�]&�>4ATNW����+�o���S
JoC�v�;�����
;p�f��BM���&M`�	�l\����l�����H���N�,�>l��c�� z��,	�U�81��X��"
�����8�Iz� Z�&�^�|T5i�=5��M ��k��9����N���8g�5�ed��c��}�^XU��<O��A���@�%��]a�	o�*�����Z��E�^L�|K����m��f��_�7�cE	���7���3Qv��n4�M����T����sh`���A�=n�/fva�3l��IS��0��]���e�����Nr�f]���C:�.H�E���7��B��f[D7�dM+�����E9ho��x*�E���n��-�{�(G~��%2���*��>;���ur��|�|
Q�!"�E)���n����Q����[��^r���;e��n\_E����>�&�VT�T���<�n��GK?�(���fo�7�tv���6�������.y�u1��
E� �yo<���T��)������[��Z��tPE�����]�G��UC��w:*�p�>
�Ho�X����xD+�[���
9j�3�F�TE�����s�0�L�@�����f�^�{�
<��0��>H�
��k��������G�%O�pj~�k���o���=+��H����}��9���o�i��7Q7�n�oL�^q7����
Kf]���0�i����O*�Z�����:w���E���kW&�����O]�N
X��'uWN]���)�Q��a��L;�,�x�uC�x�b�������|���6�5���fg:MF��x�������)�4�����m�D��O]�}����>����Wn���S3�����3G�rQ���#�J&7<�KB��G�����Pr��O�N�8�*jh�P��������o����}~%s�����u��)���5��&�8��}��'���������W���4����������]����w�v���k�1u����UOn�,�w����Nkx������K���v��<��f����]���L�� L���4�6��.�����Qi]gbXQs��t�|����r��L^f��������f�#B{>@~�]�->4����x���-���07U��4�0^k�c����+/HS
Crx��J�<��@M)<�-��@���v��)Q����J��s�G����S�X�v����-�;�M�.�0�E�
��t���Z��[�q�M�.��Q�MGE��z��|:�A�����?-[T82%����y�y����l��6}K�����_��]��A�qn������O�5%��[}���7*?fs�����@3����6����X�vj�S�x� �y�������z��#6]��K�������L=�M�G�t6��{����q������b��V��-*�5]���|n5K�M�.�	=�1`?*'4]��,�<�������}�]�3]��9����z���+��<�����������8/S��9������(������iQ��!Qa�K�k�V����6C����])���)���G��_oc�a�	y�*
oc�1������m��iJ!>\��6�@K���X[��t���������Y����Q�X�����
�k����lE��4���Qi�R��s�=
�k�#Gr+�cN�/�t�rk8/u��rw���N�H���������������<��9L���=/k �-'�t������bQc�G�������:F�����j�zP^�������+���k�t^�9��R�#���w�vQ]����Y�q��t���J/��`�v�e�$m�T��L�.��;��9u�
��i����o����QG(��m�{��0]�\I�P�G)p�`�v�����3PZ����<(x�����.L�.
��u?��RDL��`��X�4N���t�r��_�}��L���J[w8/�>L��4O;���L��x{h��bN4���Jm�������*�xe�����kWc���.O��X#��V�Q�&S�������-W�CLn���A��-K��;j�Q%����E��!N�4u�#�
Z}�Cc����
l>L�����5�~��6]n�0�,L<*:R�4�t3];����t����1�^�5�`cj�0�xD#��vQ3'��w�u�N�N�}9�tj����
�������:U��$��F�����PZ�c��5�j�N}�����xj����1�%=��r
��w�8��V�?&�h�<����l����-�U�y��q,p���T�d��\(<��T`�]N��=$��U��'�����"�?B>5G4���6Ku�B����TXt�<��D��@KR����\���lz���(�:�y4�Gu7\��P�Y�����#~����i���5��8�0�mV��@��Aii����R� \��/���V����������	~~�?^��}�����7��#
��_�K����dp��
�I�`sPG�"��W���^f����6d���&�j��eP	C��v>�9����$nA4M�<UTS������P���,n��v�9�l��@��AY�����N����ds �nbn����'�h�d�!�
0m$�y6K��?�@�f���TGAE�N�v�h3T�nSQ5Sl�G��]�N��OE4�)nW2w�1��&�h^�3�[��l2������
��$r���d��s�$�%ac��������k�A�
s:�
���B�e�>�w�~<��c6��V
��9������!.���F4u���]�y�D;H��]
4l�R���d�����_��
I�@�	���?�!����j1X��Tw��DT	ZG�j��sW�8����Z'
)Q����}�iAS���6$u�}��nb;b�'Nq��	sxX����?��� �� 2q����]�R	L�9$5��������������Q�����Jh��5�a-�
�4��O75���
Iu��'0!�y�����w���F���+�������y���fl/�t������TLV�����6(��\1x�d��MH��r�����8���8�8|�H9�9$�<3�0�f���JN6��)~�h��s�<M[3�z���
���[4\���Tg1��n((�!���[�n�>�!�����#b)A������W�A�sq�m|�l�qP�s������i4��T���nQ��1��b�j�3��U���J5���Jx,N����@�����S���������x��a
7�����=�l,MJ���E;�!�H���F���z�=����h�N�>��/�8A�!���>���'(��6���V�����o9�
j<�m�6�DM)_�$����]�N�}�Ij �[�����\����skCRn��` q�(m�	J�m�70S������&k��)��!�Sb����z�	FQO���+�6���	J���D�2��G�jI�"�k��W2>�S�/��NP*��q�OUnjt|O"���(f���w\c��hFQw������'s�������X��9��z�������vq�= ��/��:�����bX+�v�]x�)���h�NI� ����������Q��6$� �����*Nf>4���iR����o�'q���S���]�]����v�s?
����N�N@qr 4<��-[����_�q��p=�P������Y����D�cl��o<s���S����E����G��z�����j(6$�b�iNP~���\�x��*2�8i��gssuAf����~{�}nl��/�����x�L}����P�3�/lx��hV�S�.$��&��S�$��k]���/�����K�s�\A�0��/�m?(��8�i��%���)����l�e���_&c_;��t��-*��!)��O+�T}��w�����xP>���\u�%q��UHn���g�T��,���}\W�c�6M��A�=$"�N��/r�k;�"I6$�FSi9d)������R���%M��H�
��0;m��YX��M6$����H����T?
<��wPj�%��g#Ey��I��7�/�	%�`CR~�*�1����F�!�������&�]lH��-�����c�!)�c�D��&i_��Kqn��+u�(��zr�!)?����w��dCR���=%&.��
I=���~�y�p����J�����i��s�W��0��3	�8�*r�&�D��'u����0�d(O6$�4p��[����0���2*W	;� fJ6$��J4�����t2<*���J��|����dCR~0�c?��)����|��qf-G�9�
��[
�
�N6$2��8�D}=�!�B#����L<�x�����4acF���j�~L=�$���7�uGi_|�.�k��9��f�GXR���]lH��H�A�]�mH���`���*.4���#	H�,j��H�b:�������;�W&#���l�q�[��'#�;l����P�������o�:L<i_h��
�{A��$�:~
�:�����%#�#]�	j9I6$����H`I���#}	�q��i2���"		P��J��H�c������F�������X���b��Y{Y��b�}���
��B%+i_<BZ�:�u^��/������W!�I�r�i�fcr�I���G!,��������>��}�!�H��2��z����
}�X%]��cOIl�5��
����1��~���O)i_l��6���&#��#�]m�"sNe�i!�{&�����B������/����]�78K�i����8�#��H�bM��i��4��0�`��;[��%�����Q�7����Q)nb���LF��1��������4R���W�
F��:�+�1�F���:)�=��H�r����������N��mU��i_���f�����dxT���*�N���G��i��SRp2������,�:i�a ���*Gn�N}C���R>�$��$��������S�.H������Q}��������F�6��5���y1<*w���Z�S5%�����Y�4��=5<�%"3�}�W�s�$"�H��O����*��@��(N���'�5�$��}}���R"�u:��(����@<���F�W�GU!j�b�lxT-xei �9a6��:R���r'�Ge������~��~T���N��PY���u�lxT�-�����z6<����92�1�.u��XA=�'��kxT�u��]���;m5���5����G��vQ"�D7i_�R?����i��lxT�����9qGe��zI��bM������61��(��lxT����z���6��6�>_����������b)�;��W�]���w#�]N����S�����s�]�Ls6<�q���`�9�NG[>�~L�/���^b���},E���?
$3�RqP6<�5�I������G����O&b�nZ����3������0�PG��:vs�T�7C}��x�Z����\w��
M�9N������P6@��:h��.��/������H�5(�
�j�
 %�0%�������D��
������2uI �iU�N��4B���}��DQ�)Gv��>��;.:uY u���9��!�l�T������<
��>�t��{�T/��R}8|����
�zR��S~epi�T�T\��C9e�z';mqk����R��Y����
�:�)/)���l���[@��PA�R}k�,h����/���?��Z������>P*LNE�= ��y�]%y�i\�K�0�
�j��)����H����@(�;����R�����l��q^
��[�H���S���bO
�����yX�G9����p^�w1@����3[�n���x7�q��8���1hc�����
���3��*�~���_�����_�H�Q43E�, ��6l�4��Uf��t
�@�Rl�H����.�S$g�J
H>X�
bX# U+�$
���y1@���IP�b�j��������l����T6@���p�9D�r��0p��0'-M�E�g��cO�d�E&�6 �����3u��#`�N�������T)G(�n�U�c6 �?��`R�*3������PsDy��8�aH����
��~�`J���Q����w���q{�9����A6 U���2���
�m�)����&@�l�}i4<,M�a����R����SYh��`�S�����*a>5���!�7���$�
�n�F�W����x�?������6VU���J�$E�A����J�������:a_����Q�|��J���]�<�����������o�������t������?~�������o�����������{��������w��|����~{�����X������n>�����w����5w�����ny���n�����O7�?}�p�e�������<?�����y���_n����~�����?�;v���'V|z������?��x������?�96�����7���{�����/7�I��o[����:-�|������������w�6��������������G�s�R�����}x|�������z��z����;�����a~����?���?���������_�F��n��Cvh�>&H�~w>�Aa��Z$C8����GS�p��3?����_o�G����:����������������~�����o~������z3��q����������o����n�����������������O�������~>N���w_�x����/7��o������[�������t���_�??��������on�&{����On�����z����x��������?�:�����w����+�vQF�gg�g�\����%�}VG����v���m�W���6.���o�@).��!�C�������{��/k������ul���/l�qHO�����Or���������)V�<hi_\���_�<�?�������o��z>b�#�L�%���
�])D#�"m�lYkD}�EH|��C����KkT���>�@��uB-K�:?s8�3Gid4����D�	�U�]o���@7l"4����/.S�#(W���"��4I�E>n��%n���������E0����/IN��������������$R�n��H-�#��"��Du�~�h��b��q$I��������x�w��i�M��xZ�"2:�1�fH��U"V,�5���
�?�i�It6)�m������'��v��:�ZW��D�Aqd�9���>�M"�5B��:
|�����"%4���_����x����B�I���8�o2��+��##��IMTU����,3yr�+.c�����QGI v�Dz��`$cAy�4��5�������V�YB���j��#�URd�XH��H����b��x��l[
K�/B���1��b��L]�5�TK����@�#;��&:��_��.��$����
Q��v�xV�����GK#��d@V��V�������M���<�������:�;=���=���:9e%�H=v:>U��,1�b��D�-U����"�2y���Vw���x
��,:%��NG��Q]��9:�k��K�����:�r�tOY0�Ed���7��$��m��%o�S�����:������J��F7Z�'��=��`1���<�L��V�b7{-�<�Q��q���
x�S��)}�!P������w�a/<�"�I��w���f^�/[�������LqF��������T��iS���I������l��/�f�?����cF��������J$��N���]�������~^�t����zw=����S������)�0>�Z�T�����T�x�:
;o��`�+�ZwC;��3"f9���s��6������m�
�YdE�����}GR?��d���B�Z��csi�V��M���(5U��#�0�Y5�3E�|w��M��e�2�<������'1�l�y��?]����O�,�2x���)p�+{~]����\�1�F��N��#^�nv�����f[����.�S�.Sm�0=�����e��S��D��MBQK~��G��J*��)o�<eH�%�A�����IKa�5�����k�?��������`�Z���������5L���.
�&ow�)��� �|�O:Q��`�rT�2���M^�����Ly��N�	�M��
$�Z����S��'�����b��.l��H
�:s6���Mw�YE�����\�@;�h�~t��;a��	��������(�����s�?�8V+�� ��6��=U~�0��@�H

�����u2f��U�r�$o�J��0���1����:s�#�����!��~��.�T��"���$��I*0�]�~�����1����S��������1�����U�P8��';�� )A�r(�
N��H�QB��u�Yi�'Dc����X^�[2���]��?*�/��0evII�4�T���v������EQ�gy����������z�$�>U��I�����i�W~���M��R(bB���?�$6���0z�/����Z������Q��R�a4�}�)�D�(Vx��tCI�����o���Y�������������\��cS�n�������m��7���S<�H��Mo����=}�����M?�T��M����7�`�LW�CT_�Mo>��}[E��mz��)��](� �`o��Gz��@������5Qn�vh~���M�����Mo�nj�G ���1���~���wAL'����D}�$7i��e��.�9�nc���mz��������W���D�p����;H��)o7�����]~��A���F�u�mz�)1e@�,���Mo�.���f��������� ���Omz�?8,6�z��5���$Y2s ����H6�Y����7/@�s�[��mz�����C�u�=2�6IQ��F'ZcK+���7:���Rw^�r���h�h�Z���\��D��9B�����N4��AUO�y1U��N4n��
5%5!��N��H�^L<v�mt�aP����T��x�
���������N4TN���o���F'Fx��)������h��B�y���F'��t�w��j��v���T
Sx�
C�R(�A*�5:�'��UR!���nt�180�4��{���h�e�c�T\ht��[��#R����D����QSJ�'����������5�������4�h�
F'��&��9u-Z��N4$��4�br`�)�Rv���h�7f�F�C�i0:���I{��	�N4>�Q�� ��'0:��3H)��I���[���E�a0:�'I����$l�����u�RN����D�P�X�������	F'�*i�+�':��������T�x5�at���e���(��`t���A��5TM:�����wal����!wC%
�h�
�G��Q�����F'�F�
I������-��u^�N4���GC�����N4?����aOE�A0:�<p����V�)�nt��������F#b�����<*���
q7T���9�F<��t���5�i����N��D#K06����y!�����y�J���."o�&��:4���3H06�����|2��bl��E�9��EgO0y���VB5,fl�y�uH;���f�`xTq����x��M4�M��QD|�M4�u�w�
��Sl06�2��Wy�3�.�*X��dD�#�hndi���xc-����9����M�T���F�\c����3qBac�&��]��g��/46��� +�|��}c&C�u�`l�eH��9@�/�P��Q�Y�n������G��k��_g��G��)/��+dxT+��J� G ��QO����w���U�����X�6fxTu�S��)i�`xT=�@+�9�����#N�����j0<�2��!���Q�0�/�T�[����|H��[�X��D�����s�"^�a��Qu�gb
�S�S����m�!h�	��Uq����~�`xT������6fx�q�����t�^��#W/W�T���&Z�F���X������\�Z�@�@�Q�G�!%]��k��P�y
|[�/{
�G�v��+���[|%N�l���y���	��`xTm�,�|�%��Nq�lv��m����k����=�D��$��s���jnc^r��:�X����7��C��2�������>�M;M</|�����R����=$�M����ii��G�����*<*U3�����\W0<�f�/��R�������X���� 1;���5FE�exT;BX�����J.���z2��b��G�N�����O�Sb
o�����]��e0<�VJ��Jzu�U��=��[�.�N�c��Va�����*�u������Q��/��x�	jxT������}�i����6��f�C��p�M�A����v�����8��0��w���5������"�`���v������2��<�&�������S��]Y���b�a�Y�#w��/��q����)_$j�q��9��c���S���/�Ba~�����0�I���������p��Q�=�m
e~��%\�ou�Q4<��1'|��*����nv����K9��-������{��"r�hxT��"KY��&�����>{jv�axTs�C��tkG��j�[D�Aqn
��G������.a��\x�CYJ��p����x^D�?�S]j��;�89u�/��c�T�����[�n�]�Qa�Q1_�o�~(���t�=��g���Z6�S�
�70��O7�P�u��gx�q7l�����8��NiK��]�}��j���b"���?-��%���.'���."���G��V����W���Q���]�{���hxT-�}�������v�.�]��O�i�Q���b���4������.��"�tn���E����QO���sx�
�:������!f�b���&I��V��G5��@�J�2�i����s�&s�QN�����b�y�&k�{N��������6&��c�u�Fim�9�w'������*��';�bm�
�W2u<���B�C�s1O�������'���?����c�Q����� �������ny����G���s���QN�t�m���8��G����%��J�6�@����G�c9����������B/�[u^&5�2�������:*�u`|�?(N<j�r�U$0�x����{�/G`kq�Q#������X������W*[�xT?��|�~Qk��>�\��)��8���K���1E�|�����p�\,�S|�������8�Q�3�S5�:�Rq�0g������A�B����~��N������o3�����O���=UR�q�Q�}}���w1;m{,������G������U�l�N=U������N���,����
��y������m�i������NxT��0>U���:���m��Z��G����V����)�o�����F������������GU4<�����5��>&��wk��]f|z\W���U��q�Q[/�^�{��$7�����[�W��G�����wC2<�
�����O���F���~��T�xTc���	�%���-o`�� �w�<����%�=���vn��"j���Gm��<��O)M<jP�]�D��&�6l���)���>{*r�������	� M<j����w��I~��������$����*v)����x��j[����u���P��4M<��~�;;����{x����=,Z�O��G����B��������X3Pk�������=�)�{?o���1���N]���7A��&��8����I'<*�k1������gm���P�H'<*�>����$��_j�^�m�&U6��f���S|��r�*r�g�?��w���J�T?�b|[������={�D-8M<��l��"�O���o���������a��1���5�F���QmP_��:�Q�{�&(�S�u��z!�[�1��)��j���3>����'r��N}([
��B[��J��-'Tqr���\�M���t���������e���1%�5�)9��^q��)>��y���]���]�������<j���$�m>�����R>9����w�6���T?e���E`'��G�O���U���?
�����:�Q�%�rS�3�Nx9����x�95f����|�i�Q�m���qq�������>US���\�,����������.|���:yY�3'����k]�`��&��i
D�M�
JU��T�r�H����?M�((�	��j���iy�q��d"Q%�O�R�Y�S���:�pU��&U��{���!0�d:Qy�I.��� k��dBQ�����y���9U30���|�-�Nj�DiRQ����0�$�c*�up�{�1��L,*
I��=,�q<��uS�*�����E�t&u�j���%�����J������:�&U�v^�w"��d�Q��M#ZMJ��$��w�2�(�7�f��il6I1���hT&/��w	*�0������N��\��Q���y
�E��L7��Mx�R��>f�Q�
S�?H�����28�v]����IG���?�F��3g�Q���kj*9\�*������q�z���x�����G�N���+m�O;�����-��5���b*a%�g��������I�;d7�i������������ZX�sT�]���j��H%U��R������8/J�0�~T-k��8��!g?�~T-T]�"&�M?���{����N}���dpt�;*�~����R7N�A���*���=U�m��������s�V6��2������j���������l]�����j���C#D��7;��D9��R��f�1p
��"����vyWn���0;�[���
d�Q5{�R���m6��.����_ugg��:�\���l��d��j>A��a^]?���e�a��/�����f4!�HMj�mM?��������$��~��jq?��l=�<�ogq��d�����Nqn��_��G�����%���l�Qm�!�)�~�^�l�Q�oz���j?L?��F}B�cA��g��jc�z��v�N�u��%U���L��1�;�~���|��
���~$�g��~����������bF��=��>O�(G�n�p%��M?���<fU����G5WxWB7�(;5��6����o[D�B6���y�R72�������^�KFl)��l�Q�oZz��u�<��j��B-=Q�����4���(S|�9����6b����70gw��x��**�������yQ\�9�����U�s����i��u\i��t�Y�~�i��9���
�Q�W�b�i��!%�������2���Z��o��]����#����Z��i������
���Z�������G�>�c�s�(����i�[��^�O��S���/T�\���G�t���u�2����tx������Yr�,/b�9�z�gfL����i��f,rB��:w�4��8H�[��z���wmR�]�j�K~}�Y`Z���6�����FQg���>$6�xQ��G=�I���_����u��=">E�O��e������'���Z��t���k���,:�i�����o�^c6<�'�3G;U���Q�v�S�0Q���G���8�34�����0��G�x6<��@}u��b�#u�
�7E-��:��G�!�-=�tj������i�+?f�Q.�����S���G9���� ��f��x%u����l>�
Z�U��2v�a�Qn����~m��|�����umqW�|����wQ����^J�������m>�It���E� ��r��
����T���G�A�������6������������f�Nba��e�(S?j�J�z��<X��������w�>��<����O7?�������?�������|yw�������y�������_�~��������p��������O?�=�|��������k��_�?�����_?�������nN�����X�����y�^���y���_n����~�����?�;v���'�������o��s��?��������7�&��������w�������"Af�m��2>�`�������o�}�����y>��(���s|�������i��������������������/�z����;>�����~����?���?�����������"������������[�HO��Ow�H2��������?��������������Q�|:����{�_�������2��~�_���_>>���|9<���?���8|�?o�}���������O7w����_����������'7x��o�o?>����/����������7w������-������~���������y|�����7����s����On�����z����x��������?�:n����?��������[��`[<�z�mYR�|�Y�v�y���_����~Y���
)�2�m^J��!�d�-���)J+���G<�R�oKt��C	�������������[���{(.�z���*&'�@�#+xy�v��A	��������(���N�.�r~�����%��9����&�1�R^>vW�-YF���%QCQ	�&�R;nHfT������=�����ga�r�&(d����G�E!�����-�{FWh�R��V�N��i��E�s���4��{�Yf�Q'
��.aR�t>�fZlD{��Z�E}N���MD�%a��S�T�(Q���^
�;P�r�kA���)�"�T;�.�#��T�ml5\o�JJ���uA�r������&G�[f%,h�K"��{���A�e;�lQRh��-����L�/����`)�"�]l=�����������Y�#��mQ��Z��������*�6�b=�U�}���k���8`�umL���e�,�V�����u�����F�6�S��oc��"�0��[�(��D�7a�HH��(�Y�E����or2c�-d��j�a�V�
W�v��Q��7�|�h�5���DI<'�De�,Z��@-�e�to�"������?�W��{�T�����.=�D�Tw�y�U����WQ��3�_�B,��p�V����Z<T;�!�����>�X��� �XK����3h��^m�s����Q����l��+E7�l��t9l���*�^J�C0�=H��b�a\�����eZ���_t�
�(�Am;fl��}�S��>�wb�h�S�o�!"�������
��Q�w�L�:��j��z)Z�[�#z(E�8[)��	`���/b�}0���������F�����.� ��'�3�3�^`�F3�i�z��/r��^6��$����McFg�N�R�:}gc�Ab���u�������Z'gE���rHiT�7(���"�������e����M���_d�O��u�U�Z�.;�<����c��B���s����O!��A�5����vU��9���'6|�_��5Nl"R9{M�+��%��Z��6������;��.��5����e$:/l�����e������2�����.�W�4}���z}���q1������t9I(`��x�y��ZVU�9�[V���O�E�g��=3����@��>�����x��zwJ�>Ic�A�]mz���c�O�,z���}�>c�N\���w�V�w���/_���w�w,0ZJ���w{�43�������&{8	�ma�@��M��!��Xt���yc�u�iN������M�2���0A��&���IG�B�Wxc�u����`KBu�����u?P	�A����/&�!"/ol���Q�.\C��xc��c�j}���Z�����l��A�p���u�p,�K/����L����v1�76Y��{��8s�&����=�����&{.�.�
��76�X�������d�p��s$N�����[G�����M�����	-u���nu,6�u�P��R�w�A����M�
����y�<A��K�C���4������q��TM�yc�����|AL�yc�u�{��R�f��B�fc�T��M�
&6�1|[���8�)�\�}eS����!���G���RI��&{��B?�Y�q����H�P�V����d�K���� �]�M����
�������1��������M��;��j
�SW����=56Y_W����o�]il�>o�[�H������!�������]��{Rw������] � �hol���q��]W����d����X~������_��������~-������M���X;�9J�s�&�Ke,��I�<�4�����`���&��c��(X�����!
|��h��M6t��7L6x�xc���!��A�z������~��������������*jl��Q���Rg��dc^6��t�[q^�Mv�y��~��*E@ol�i������N�
�&���e����S7<b��]T#����1M�}[ug��a�~0.T��z���{����jo������1NV����2� k��C�b�����r�
v�C,`�.	�����n+�[@-G�@{S72��fc������P1��p�{1��M�0n5�_���M�0U���2�V�a��n�QW�"�qG��b�Sbg�u��k�{��
�`����~�&o�SL�o[�O���
�@	��h^��zC����\����9��R�Dc������aP)���3�b\��c�[���ruC��c�R�Nzu�mz7=��K�E���PC���k(���?�[fm��nj��m�1�]L�p8e���M���lz7
S�[�A���nD[+�(/��b���%�V�
����n���]�<���f��*%���B�<��n	T~��P����������ln"��n�
��
���sL�0=,��Z�`��n�KH�/��+�``
�n�Cv��b"'�G��#��j�j?�N���i���������(��`xT��y�1�d��oxTiJ�� /������#�jz]];U�����R>����WPCq'�G�����������"Z���E+f0<��y(($R�C�aj\iSZ0`����5R
���(
�G��������n<��������G=����-i]�)�<�
[F�����GL'&��j[��$�:���mS�x�E��nX6���_�].v�}��"��&r�`xTi���`�r��T������{_����Q}(W�u
����G�;�k(���2�Z��1`�'�C��YH�����#^Y���j?�N+���R
�G=��]QJ���SS�j��Mq�.J=7Lu����~��_�m�9*�'+��0�
������T7l	��XsR���>j���~��?���L�S���G������e�0�
���T�P���Q�y*���4�{��Z����0&�sL��x^���<;��a�+~���`xT��T���j�~��i&�%�t�b{��}�-�zb.�?e\�����o��T}�<�i���D%>�]������.z��T7��J|��rb�/�����nu�v��������=/z���Q
j\�s8���������I��`xTO�����*��`x�92�������3Nf<����QO��_]C���d�T���q^���W�_]C��2�S��B��9�?mT��C��2��L���uw��Q=����Q�����J@�,W��Q�;��~L�[��Z�4���r���4����*��3��l�>H���������w��������N��]0<���/�AM��C���q}�k�\WT�G��B`
�/�m��q��������������*�0<�
��z�9
��Q���o�����Q����Zlh�N�kS%^��v��k�>T�����������6�te�k@�W�
�O;m���������O{����?�s�g�������>�}��7�kL;
�'����y��-�F|�b\���8:��wQy��QG<����U����o��JqG�}�j[��E-'ud[|
\]���y������w���G���o+����?�����+��hxT���6&b��f���-cm�]�?���O�s���:}���c�3>�L�9US�n����� ���G���~�=UtH~��+\�u�#�S������$��hxT���{��_���vyg�]D>
�:�J�����N9Y������~�S��������Q=%����'��bv��#�k��bxT����~�:4<�������x�0�t�]lq��Aa����1oP���~0��������-�� ��q�Q�0'�j(��O<*���qg[�xT�0��~K������1��O��[�%�%������\]q���������W�n�G��f�+�E�?��
�>���y��G�(����J�3V$�9a���$V�),~=��hx�"�ko1�P����S����-��G��F��\f\���X�����@���*E�hxTxn�?��Y����95z�0��+��9�r�������Q�f��`���Zp��Q1�]0#��������=W��q�G��8���[��'�^���e�(��*���Q������jS�lF���������#g#;I���Q.U�F��w��9���09f������<��=����FST��G��������V�av��R�������O��<2�E���4�k.�TlixTH�ck���1��Bg��6�"q^��~����
�&
�r�3�q�_����Q�"�>w"����'�v��UP����p�;s�JI<�
g�^���U�<���FP�W_������m���]Y�~L�8WUR����������X`8qr��BeB����js>j�$���T5VwT�����*�KUUC��Q�l�l=���hx�q�6(G�~��� ����i�=�s��'s��	�6���!���� E�
���i��]@&�f��Q����y��
�:��d�gg�]���x�)G�/j��3�9>��]�
�z:�8�8/���G�������w��i��c��Y���G����+e}���q��]<{����yS�`r�$f���Qq�����_G�
����g������Q�j\������������'G�G��|T���#��Z�������@���a���#��wA���S���(�k�������[%��S��ud�����*�����8f�W;��gg?�kg�����H�G�-j��*GN����
��Y�����)�P8{�h��Qi���<r\���{��>�}��%����u��z''��B'���G	~�dxTc�� BmK��&��R���+�L��7M~���]i�oU�4M��mg��Q+kD�����oM�'����W���E.&����Q�z��o'd2<*A�e�^����QO�kPF�as|%�����N�J�<�������0<�ivv���NR\Y)��h�8W��6o
��}�T�.��Qy�PZ�K�EM:�/�a��okxT�~���<�j
�7����|=n2<�l3����J�G�Txn��#��������5��"�0<��yy�A��9�dxT*�~%�w�4��o��~��a�����7�\�@��s|i�Q�R� ���\2<��B���s����L�����Cu���(��1+ZD}=�|���;!wiR�K�G��#����4�(�����%j9i���
�C�PU\8����\9���I��y����9P2!���qGu1��L	���n�<;��F���OE?]2<��Je`ZEpC%����3g��)��f]jS(��))q�i��]�������9m<�����L<*�
�}�zP2<�����#�X��G���y��^����|�UL+��a��%��:8���_�T��/>����Nx��$,�?&�����<��B�q��QO5X����L�G��]��,�-%R���-V��q�L+����z��v!zY��Q>m�XA�j?�_*z��y{��X����t����m>�O�[�@���Q�v�_O��2<�'�#�g3�4���m�\j���7�|T���
�_^����QGJH�'�:l>]��g�hQ��M�r�L������w��y��P�P�����A�m��0���>�F�Z�%%��B&��c������y��*�bQyS��k=H�:���/�LQXc����6�b����J�G��6��#���f����9���X{*F��8��9���M�!Q���*�1<*<�.5z�*75<*z�(6�F�:��Q�/D>��3"����?e���#�skxTh��b/���J�G�P�d<����Qa������Uk���
��W���Q���dO^R�z�yTO
��&�0;�LYmv������/��+^p2%��BN���J�>O<�m~:4Q�c�����w�&�T�u3>��A|ZE�S�xT���S�f��b���"c~����;�>uD]*�v�pjr	��lxT�[���0��V6<*&���SV��lxT���)�T�d��B��o�*��<��i��x��>9J��jc�.���S����������Q1m=����"���G�h�a�I�xTI�����!O���{�g��)	g���H����qa�xT��N�F������#;���F��~���1>b�A��d���q���
��]��W'^���lx���m��|�O
�Jq�='�����G��q�o+*�x����&�3�����_�Wz�)�
�:�yz;c\%Bo�i�	+5�D�z6<���2�sI��6<�l9P���~�s���u�l|}���S��$r�lxT���A�`Q3�������wyv6<*'��
�T/z{��Q�s���np�o+�7L�]^��d��r�E%�����G�P<m�*.4<*��kF,%�����c���4JM�l�Q����AS������p�s
���bv��oI;U=����2�l�oK-
�7U�CDg'��lxT#��O��axT�R�,�Z�b�5ms�K3f���Ur!�8���UF=h�����Q�b��;�YG�����*y��!�-j���#�\��R���|T�������R6<�&j�n�V�s�v�����BQ��G�A�t�+�����Qu���*G6<�y��R�# f��Qu�h�{�X���i6<�
}������B�s���Y/9���
�ji��Gw�K6<�
.����S�S�����r�i>�lxT%��N3���A�G�5��������Qu��������N'__�&��������j�8QO���9���������<��2�a����/4<�m����!������6~���B5o�
�j�����n������������l�Qm����C�
�G�Q����h�lx��]6���"�O���k;�����L~����<J���Q��D>z��:�����B�����G���jP�E�B����s��U
�MJ�c��V�����7��MO����:G	�u��:s1�4��O|}[�_�_�
�j=o<���Q5���7xi��5T~{������5�S�|}�}9���L��!_�k������G���Oi9s���_n�=~�|���ow?������������������||��������������n��|�{�����_�����o��Z�_?�|�p���7�>~��<���}|�pw����t����~�9�����/c�_�>�������������rs�������������w�<qb�#�������?��x��C������Iw��~��������w7���>�}���<��3~��������7�>���}����?�m|�������n�9R���������7�����^�������v��w_��������wo����?���ul��x���03~w���;w���a(h�r��#L�q���7�?����������x�/��/t��������+�<�����������������_;����7c?�������_?�}���������a����_��_��y���t�n���o����$�{���7�|��rs�������<��%~�{<�O7?|������1��?|y^�����a��O�:���������7����w?�=����c��������w���=��o��?�������P�I���U�CX�����;O������D]��#Y�hQm���e%o�(F��~�F�����{Y��:f[�KNR$`����!�w.�F��V/O���o�Z1u�=��%�e�z��DX_�P�{q�~�"��<����i�o�����b�����3�������As~72j�S�+����R���]|Z#g��~���@���.���G (D���hl�t��Mk���8��|3��WU�>?�K���(���e	��h</���T[bP���q�qK(A�oK����4��$�_`��V���?W�HRr ��k3bc���i����f�G&��
m���Q���f����Q�8E��{���y�w<��&���������6q�|���:�Y����x�(�_x��Z}:�^����,���XcE���D]//i���n46�J���b�����G���x�.�5��v���S
}�c��;R<�����rm	Ei�:./V>� ����q�c�@�hL��"\���=��.O����g�e�.
��<E�k���]�L��V�E0����_��Xp�
p��<�E.|�O�+�};�_`�c���Qw�%.���Q����Q��~�Xg�l��$JR�
����vb>O�]�G]G����-���XY�]��2�Xg��iYb#8RC>��(k�����>���X��[g�Z�u��y��%� d5�u������A^L��[m�����j��;G��Q1��k�9:S��"XE.@{���:��E!3�k/������V6�����P���:� ��v�n���>k^�*����f���uV�gx-U���E<��5E\E���V:>t`���b�Y3���<-v������]��x��c�+���'����Z��a(��������������F��t�m��l�x���������h��]����Ncr.�p	2+���Xg�K�L^	W��<#.�V,���D�c'Y�k_P��zG���h%�z��g;bB�T�q�T��%z���(��j�YW��!C��H�f�;3?n�$:a�����/@tQD\��Y"�������r.p�X����49�Df��mt�k7{_�g��������8���p���������8���,����S8��~�������,��+�C@�e�f����wb\?�����bp��$:F�Y�(�B�.����3jb����'���_$��~A����v�/Q�f���Ne�)��~>�"zp>����f�)�����v��w�m��%����:A"�G9J���u�D��^h��f����Z��%������`�I���2���oU��4�Y�����5U��Tc�������9v��H��77���e�����g��+����
�<����O��E��/���4e��J���2�����a|I����r��t������������r�N�����j���"Y����#������L����o����o���h=/��R���/�����(�QN�H�+G����(���AW�Jd��r?G6Q|����`�[��Fj/�a����m��eca�S�#pQ�b0;u����H�6�xt�����,�%�N�T���V�R�bvZ
�)�ti>�?g������`�t(� ��wQ`i0�����-{�tC
T�O����^V���������QN�ISw��A�~R��MR�ti"��6��F{������78��0��'�?�E�F���!�������y�s�R�av�za���Xd��F9����>}��~J�
�{�������QN
�1N�D[�O��f��c]��(������4�h�6���&�T9���H�1����*��QN7R�;����=�$��B8�j�"���m=l����]�N�0IO��
]��Ae��1Q��6�����*�����_l����Q��V�����Z�G5g?�����5p��r�7����3G
:�Mj�#��~�fHu#z�z���Pr(���(����:b)���
f�i������Ok�l�C�]�F9������n�m���.��I�$��~R�F����9T���r�Q����#��r�M#���������k������ o��~�w���*�QN? ����	A�E~R���[t����W�Oj��i���;�o��~\W���n@�6�(�w)�	v���I-:��W�7�?(*?����[G��$�����]<Q��W�aRw%�V�}Py��r�m���pQ�ORw��#�A�_�F9�3#���������FM�|Q�6�y�����>��tR�%�����>&���Z4���c����Rw�NwE~�J�a��������QP�y��C��]�S���I-Z�F����S����y�|�?���r'�R���K��}�u����Q��F�)ED���b�I-�c�~��Sk������J�w1j�J���X[�m�3U��gN�f�I-:X��U�4�~J���]2�9�}���(H��=������p}����mM���")����0�E����� ���Q��-PH������=�6��\/��`��#��+�9Q�
'�;����?�����\�yP�wb�;Lj�q}������)L���8��y���M�	
�j�AjO��9 �EY<���s�2��Mjb�`R�>3@.�c��.�����&J����F�Z4%���yQk��F��B
��^�s��E�,X��*�$�w1;�����U�X�Rwi�m��\P�"S���Vx�AU�1%�"���,D�Y�Rw1S���B����E�`�L�����������>����Q�W)�GZ����=�����D�E0j��6����u�0��b������Rw���y��J�ZC��9(� ��)u���`z��-�#v��0��3<�xRjU�sJ�0Lj�N9��@�!zYB�v�:iA���0��@]���$��Q5'����]���h
��+����k��Gh}���Kl>�F�
�k��Q�nxT��?/����]��j'�R��=���Ek+�����I�N�1)�(�����=U�a�M%�>@��$��Q��9�X��_��k0<�������O�=2�Fj���Z_0j�6�����P4e���##���pnUd���Q�k��m0<���<���S���G�������_����>�E�-U������Z�2G.���]ixT~�����V0j������^gc�G5O�v;/�!�(��_��cO���Y+�_��7<�=+�]��O
�jc��i$�D0<������C���L����OE�?Lj������'������kK��P~}R��~)�B�(���{�WR����&��3�|��jO��n��>I#����Q�g��mt�N
�j��d��F�����$)�U�mxT��W�I��	�Gu�y����],�����o��u�b�M;g�E�G���4e�)A>P��:����`�U�
�G���A�8U�I0<���-s�]��6
��6������Gy���%�����f�����{_
�)u��O��dP����T"�j���
6��TU0<�{�pw�*����(��5�gB�#����g�D%G����XTw��_{����
6�T3Xz�C\����S�j����+p�`�Q�����EU_��������/c�9�M��}JE��m8����|��z3E�<�M_�{���xTJ|��7��|T}V�9��rGE�WF7G�3g$P�Sr���������9 ���h�Q����g_�������g��'jl���m"��"|a���]g2z�D�3���N��9*�|����,,zi��6m>�������(������r��C1]4<���=����G���������2���8��ZI�S����G����>�a�����Q��>h�t��=h��(7�k����P�s��~~����n�"�������&��95$���`���;������~l�G��s[�7��A
�r��_����s>jcKq��+b\?�F��jc���<����kT���r~�G];+���������c^����Q����wI"o��G�L	��^`��4��Ro�	�~�������J4<���Iv��E��q�G���<��jV#���M�y�����G���3��q�G�95��|������|T++���]���>��&E�O�Q�_�5��?��F[>��A;�s>j\y���P��M�O:A:����d?c��~s�MIg��N����/��}����H����pP����QCVz������	��Q��Wr��U���Q>Sz�=�����(�(�B���I4<���Z����M����m���C"$���Q>�����|4<�i�u
��A� c�ky��5�T8P��Q�'��ps�]�Oz�Tc=H��G���c��C1�E������=���"���G�������e�G���`-G���$��S�P��}�e�Os[cm�|���hxTpxvCMZ��G��������8U��QG�����~�|T!�}�{jv:
�����}F���X��%j�J>gWZ{�p<�Ge>�E���G��R
Iy���9�|T����� �B����b���;y��
�r����+����������!�6�8q�N<j��&�I��q�Q�=����m>�8��-Y/�|4<*��yr�:4<*����s�Y��6��V��oVw���B>���DU��xT��5y&��Wls.�H�W������b�95T�W����r
�����������%[f����G��^���#�!�9wr�
�������}����e
��j�/���xgoua�6��r�5�BR-�|����y�"���O���Y��m>[|�9��|���c�s|u;��ME�B<�G�z��(	�8���6�i��>l�$�,�c6�=y�c��41�n��>9����:]�[~,�����k��$Q�L6e�y��b������r^LIT&��:"D���uqP����q�4�R��#�|T�q0�7�|�a��3g������|T�f���o`2<*;�[V�q�@����T)�-��i�G�m��O5�l>*;��&�y��4�����M������J5p�� 0�t�����\]�
���<(�����Jb�G�1|��bQKs>j�{`����K�G���,��$������Ho���U���W�axT;���G���+��4������^'����G���c'G�����Wr�B@����)�pS����u7__�1���^�"���M��C~�"f�S0|?��o�q��o;��1*��������i?Q�i������45�T�l
��x��\���R����>��Q�A�n$��y�dB|*b�dxT��N��*r�4��<~��R��S�v��Q_o��2����G`Aqe�4�}�/��U�0�i��(���.�&_�^�V z���@��=�J���wH��o���c��,��L	��@A���{���z+�.�AS��i�����yCQ��������
Q�L��/e� �s��"���V���:�}�x��
��Q���&__n��<��&�|������&�����F\�r#��*'�|}���p�V���=����B���HC��ooO�|}����sTk��y�S*��ok�P-j��]N�&��fc�yi��2�4T���xW��ajC�P����D�U�x��o��Qw���/�Z����	3<�
���g|��N<�:��)�j('���_
�!��T������Q��c&�?���n]���=�Sh�j`U���a��,�.	��2E������b��/�N
��h�@����;wdDdD����Ci�{�9G1S���j��kg����|}cla�i���i�|}c
���{P�1�Q�3�b�Q���u� �=8�&�@i��
x�j�������7F����F�~�������SK��o���Z��c�#���)��4�Q~�<@����L.�:������azQ�O��Wb.��5�\_��Cn���5����g�@�Am�K5�y����'��:k
 Fw����������D�7M�3k(�r�x�G��	�U�pT~������q�P�S�G��9��R���i��|��o�$
\R�3��[`���Q����3F�� ����Q�u���1����4q���a�nj�(�������H�s���&�	�KR���u�c[����;���^��+����5j���k�[f�G�q�@����B
��Q~�	�m_�$��u�Xa��z8j
�����x��s���9o��W{js(;?]�\��1�C�;+�����Qa�*���X!y|��G_H� ����Qq�`�}S�}���s�<?��U����x��)j;�����7N��Dm�(��
}��/�O;��#w��~.[?*d�����z���Qa@�a���T���������]}�����9/�i�P	Z�b_��]���^�j�~T����Y1����/�Rj��]��;�a�)�~9����������<b60O���9����.��s��=��$�A��Q����I��o|}!��Z�����G����1����0|�/u���,���G\�8�b�)�i��s�Tu���i�|��B}�l|}/����{0>*�����x�m�q���u\��f�G�������kg�G���.W���-
���:H�X1���2cs��� �G�J>�m�M��������Pu�l���sx�n�w�v�'M}B���������K9�������������
�����y���'���T�i���u)���{L|T�0x�!Q���Qi��c��R*�_����2��~�m�R�Zs)����5jl�Y]�������P\��hG-G����GU��#?��/�Q�e��)b�'�~T�	����tN�������^40�b6_��8#��5����������[�N��G�@�a�P��y�2��[��T���|T���	��l��0`������7L|��	�k�{.3�SKo�X5�'>�g]Zi^�p���b�|u�D-8����^�eQ/����Vsd�C����a{�W��n���-q�
'��kJ-��"���Q��IL����S?�H�����sQ>y���^���U�v���^�J^�4R�����'l����<>��-�;���.��Qa�~�k�Ea�������X���J�%�~T�jJ���4����f�Q]p!���j|����7�'>*����(����t��/A��5���P��O2��vE|������3|����������������w\#f{T��~�a���{�j?��vG�������U3}��T4�Q�m<�U|�~�kAYk�I�����5��=����o����{����������O?}������_��o�������n>}����7����|�o��x{��������v���������_n�O_�vz�������`�]�����7������}����t���o����?����9������a����o>}�v��/��]�}�:�9�t�o��s��?����������I�w���n�q{��������C������������|��������������������!�7���	�?�����B�������������?������������~���m�=������_����T�����g�;���Ci�>�=��~��\�l�+.��)��q���'�����=~}��?����H���w������:��q'�����~����N?�r8��O?���0\�?n�=>~~����������~�����_��/?�N������������������<��r��t���t���_���o/�������}�?�����O+�n��?s����'7w��y���7�����>������c�#�|�������o/���-��t��G((����~����(-9M>r�E{�������g��c���K�5�^�m��D���fW�K�#=i����u(6���������������{���?�o^N4��C}$�K,��E���_d����EV�4d^\�{b�+�p��U��0�`��\c�/M��&����
^�Iw�"f��6����QA`����C��U2�8�w&�HB!��<����Q.��m���V@>�6���=O^�_��#��h1�(��j5Q�z��8����5������.�6n���XbZ���~V1_;�R�^�E�@�h%6��gZ'p+Ep�O�����i%eK���a�P)�����(X������AQ����:vz���U�$u�"�d�y�`]B�}H�E�zE�d0�o�������x�����X�%dS�'-bB��S`�H}��A��)�/<
/E��>�T���LQV�f��{�\�����^='h���u���^uR
�[Z$5�,�� �%P�"�����M�`P�^P�E(3&���6��S�H[�S����g��>����SP��{��h��N�3�1�R$:��E%!�,��a}K������ ��-|m�{$������>0�KP�M����#��2�RM+�Es��a�H��=/I��75�����l�I2��I��%���(|g{�N�
f���Xke(���eo�Zo�K�"���,��z^f��UC�y��p�8���1�8E�`�mHE�;�)F�o�"@E���)� [Y���\��Yg��Z��.��u�Fz���x
���2�W�(/G�b�9x�!��'n�����wY)��+���Q`p4V��;�.��C������0����������Y�h��������?�P�"�=l������$z�TG"y�c�	����/[������28j�0�j�h5�)����.7t0px��L0�&��	��sj��u&�\f�:�����y
1.m�n0d����1���pc^h�0~y;'��e����"����;���A\���a�	���Q�����6�'-^�������8C"��$�
k9-q%��,������
��!N���Z��3�gb��E�5�
����uOS7l����Cay�����$u%S�6l~�C�0��U�6l=1�eLv1�
����BLOa��x�("|����
�	�*����������Y�D��v��aEl'�Z�
���Vy�.���a���U^>'~���w	�������v��Q#o���iL���U%o��g�s5W�o��-o������x�5l.S��%���h
�'�:���X���-���=��H?u
����s(�d�O]��x�%���?y�\!O1QjO-�o�r�*|�������:#;?��L�m\9�����Qo.Pw������'�<�x��l=�dt�iCi%�@����k��6�{��4��5L$��u������i��P<L�p��m(������%vV���B�����J^~�vnz>(!
������r��	�����a��7ut�u�_��:��W���q����B�I��xk&�v�3&W�z��{��G�2�l�O������?�����<��PR���p��e���-���
�{xgrkb�������]�������]�8ye�6����k����#UW���]�<ub��W9����L�������X��5��_�9�
_���O��R�
B������������]�?�u��W1j��J�W�����v^<�n��N�����(��~���M����Y�B�0���E��<�������u�>O��B=R������!x�w\U����:����s+����=������|�����+�Z�j?&���GImUQ��S����@�a��4�/��)��2��o�r��bO'n�'��l,�7�np��E���*����Q���|��<y�v�g�J�E�'n7d�.J�AT��n��c��~5�g��8����Xr�3���kn7&�/R���w�vw�0��������=<?1������n7nzq�Tz�nw��������{���lb��;������1
h���>g���Tn�U���N��[�w�y���=��X������O���9*p�NL x�>e�`��<L�u�����5d}��(;5�n��y��[:�s������j-�e�$ac����Xc�'��xd���6�m�{�l�#�!	�t��n7Tj�6�O������];1���n�X��J����n7Uj�U�=��x7�n��mU�m
�����u�w�7�n�T�o�9���'j(i�������^�'W�X)l�p�y�$��f��v��b����H
-�)�
��Sk�h�	��`���"m��"���t
��:bO^�sn%�0;w����a
�#[kJ�(e��xdK�vw����]��A���\�	��`<�u�)����.r�`<���;�t|���#�WP����w�`<�u�	�F�������V��k��'f5����!������t��-���z������V���,w��}W���]<8P�w9���f��n�c�������Ckv]�����G�����a����h�.�Z��)��o<�5P�,��s���5�Uu�K����xdK���NUl��Q�w��+�:����!g��_�E�S�G���� �wb�,X?�:r���_�����D��K[���^c�O#{���*�0�YS*����/�-��B1��G������h���Us�����7u^�G���z�gn�����4��l~]�����j��s wu�`��R��[=A��9���;���������:�����f���e}���Pk�?M��>��*j�!Mz�������!��v�q�(��91������}���u��|��U|��kX~:�E���_X�~T-��}��S��J�G��^��~���
��Y�����aO�'�,!M;=r�z�N�b_���>�"z�!���x�)�C�������}[����N+�5%��Z?��-6p
�U�}g�����G�������N�x_��������v���:���������J_��i>��Q���i_8r���:�>k��us��L;%���������h�
�E��2�Q�3F��g���~�s���i(�������t����S�O�>��Z?�&��n��������=�OV|���Qe�s^��U�������9?����%X?�6���?A����V3��C�B���&�t8�*O�~����6�
������9s���U���4�7��Z?�6��K�}N0��G���
�~W��6�i�y������S���n�4X?�)�~mO�b�h���-?�O��M;M���6�?��������8/m�S5��5���\��"Np��G�������h����nl>H�r�U+����/��_�ic��s���Quh����C�[�G�J��=vj�����g,�Xc������9��W�~T�������X?���>�o+�r�����!����
}����S��=�����<����$r�h�����)r~�F�n�����ra��M;M����
�7�40�O��^������vW9�������z�T�b��P�����k��Qe0����|���)}2�/j�)�~T�I��{����GE�`�������T���F/�Aq��6�s��To-�~��I�:�8�M�5�}�W�k�"����	n�[����������uuW�~��r�yA>&��q��<��[�D�����!��=M��N���;�|n�?-b�)�^���O�a�q����i F]��8I��0�EpA�K���74�@N���u�����Z.XE?>� ���]Qh�E#�+��]664QC���W\F<PkE�LD�G�If��������Kd OiLM1^�i�}`V����hl{y�����ZS��I�7�)@1�9i�?&�^&�o���ok�{���H! j�q2�m$�i��S��������j�%^p�m��=U�1I�\�&`����z��{C�e����v/�W�1�;��{�>G&�C��I��x;|r��3��<FQ��RW�	'���!G�Z�-9�&P4|T�i;��1���|��B
@�M�.Y4��<�U���R�\_4���z��}�_D�1�^)�N���Y�<n4�2�xp��C�hC-����XbE%���l�Z�������T�G�
S����U���ggW�rKc�;���k1��y�h4|%��9rU�;�����I�l=����k���������j ��Gn��s<�����~[�}&Q���W:��i�E�������|��!�?����qnA+��"�������rK�Z+*�h||55�t����F�W��jc\7*�#_s�>�3�����>��C�Ww�����`�y��h�|mh���;����]��g���T�I��I�W����	�N^>�1�Q3[� #�k�RS�(����=��{������s?�������UT�Q�Nc@���<��7���W_�-r�*�^��?u[�\���4���l9.�
�����-��Lq��f�t����b^[���1�����<���O���fr!y��g��n}����@�>ef��U��9rw�k4��:r�p-�1C������M�E_&O_��"����e�E��C�����S�s��Q}�����|[b�(W_U�\�V�.���?\&������7r�uO3g=��Ke
�8�����__t||�M��WF��}�]��V2��#�g��:]��d|}u���k~=���d|}5�-O�.��SJ��w\����=��d|}�������_2���Re�C>���������q�Q�+����QnK��b?��H��o��V.�-�1����q��!ac~��9y��a0��6���5_�$S����1^��G'���1��k���n����&��k�x���v!���ia�`cFs��OZ:�������&_���_g|Q��������(
�~T�����/��4���#K0c������Z���P�Rt���Q�S��%�����v�k�.%j[��Q�*0/w�f���1��Q"6L��������;�~T?�:�0�P;Y?�7OV�m)_h�(���6Eu�'_���k��.f����+�������0�>���,�:3����Q}������4��<g%�+��M��q��`~��/�9�����f2|�������>����<��!����Q�p�x��T�a�(���n������j�<'t>(�����#�w�.f�#|�Q@iIY�w[��4��%�G����SS���|}�������/�������_��+�	_�����G��x��<n�~T��9�_���G��������@��������>Y��G�c����Q
�Y�/��8�V*��d��^+m3yQ����A�{������?��������.>�����<��9��L:9�D-'>�����5/~*�NS����T.e�(W����K���d�(�8����#��5�����+���i�b�����jI|�trO�Nk�����k2|���<��1Rw�B"�3y��U1��u<�Q<����HT��(��n->��Z�]J)1����=��!����\�����`�(�D�|�W�o
���j�m��4��B����?��N~�-�
�[*-�����o�zZ��Q*b;����M���c��S</�>���]���U�5|�e������6���)��:���r��]��Upv%�G����n������!��#F���d�(�#�e���ok�(?0���x�c���3gYV=�#V������z����~>���F���S�G�\xG��RP5G�G�N���3��#>*8��;j�^������������\��Zl���0>*l\{w� �m6|�o�~��nv4>��F�p����#>����U?��=;>��MW��Q��d�G�H�h���b~,>*�z��'
,���
w���?��;6|T������Tw�l�(�7=����!>*����:k}J���tP�!fsF���v�����l��Qa��oX/1#�
R"�8��E�#>*$��4��d�������,k�;�e�����)@�c��	i�G�����s V:��'=��uOQ�����
5���mQ����__���l<�J�������Z��'f�������A�1����\��%�ZNu�l|}1����!#8v����@����'T�Rl?bTC����G6��A��r�H�x�������}�l|}�$xS�����l�����J�YQ����:2w�A���Ig���C{a�e�+���f�G�1���T�7��l|}90���P~l��A�qp��A�������\jO'��G������p���w�~��4[?�8��*��N�Ig�G���X�?u��%O��!��A|����*�5r�).�l|}y��+/m�]]|����#6Tjb�Zp6���R��u�������?%�������/1#��Ea���W
5B6nl1��'_�4xzF3_���5}��ww���������3�]������^��S��+�-�y���-���$��T��x�����@�Sr���t�����*��'/O����@���av������������Q;���^�������+�ms���8Df5O��Q:���u��|�	<$�������/��������/�����n����/F��1'82���Kq��A�5�<���#G�*�(O��J�s�=5��3�/��<�b?.��B&�u$�y����r%W���|}�<y������Qep!�kq��y�<��F/)\�cA����������N���Y���X��������[b��/��o����C������<W��9�__��'���'����q��f �m������\H��M��;�>�T�������/��R���v�O�����a��5����n*��v�q����w���kj��m�O�|}#�\�V9���2��q1/p�y������c�����������.j?&�$kl���9��<����U�>��JH�8�Fn�����a���)�c���s{�?Y�����;B�u����������7�>~�;=|�����O�|�������������������O�~=����/�?����?��;}��������vs�u�����������}�x{�p<Xs�������������_??~>]������c����7�y~>w����a����o>}�v��/��]�}�?+W]����\������pX�s����c�n��};����������O�mQ���[��s�e���w>�|:��rww�}�>~>���������N�Lz|�Q<�����<>�������_>������{�x?���O_~��?|�S}{������:v��t��������������C>�����w'���N������z��ps<���������k���u�/�N����_������?�~��0��O?���0��?n�=>~~����������~�����_��/?�N����'�������������<��r��t���t���_���o��������}�?�����O+�n���=~������o�����������O�n���~�������{�������{���T�h������~��Oo��;�o��k�Gi_�zSH�V��IM}_!v��[�����|���=D	K^F$���R��>��K���(���H����;	���"=�K�U�0�l�{|����\�@,����sq`(N��.�0j�m�6�T.n�}��._���"Mx������C^�v*e��������m^���>{y��������|������	������[���Xn��m���|��x�D]�8�zB=�<���Oq������z1T����/4�mPX�_DiD=����~�$t�y"�U�����Lg��G*#�6�?���M�^+��Q�4��~e��o�Ze=���{����v���<Z�I�j��w�Z�+d�q������C\U����V7���h��]��w�����A�3=w��/�����]��?w��x��S�-:��r��H=,*��#.�/?�����{�V�����&���}�9���#/h��N��%7;-����+��`y��m��x]�q�b����b�eP��Qq��]�+��Q�Q>B�F���Oc&
�����,*hFLz.���2E�n<z��@��[2���Z�,2y�J�k��~@�8������F0Y�STA�t�I�������s� �eLa/H�����K82^�@u*�V|~�Q�Z�@�)*6>R�Q�Z=8=�|��?�(U���#3���:_�)�<3�s
I�������q=�@��`F5k�d��K�_G�<�H}���I-j�%���]�����>�/�4v#�_��������
��>�0B�[�LV�R�$��]�p� ������E&R�IAz�6��#��%&��������^�HK)<#$MX�{��q5�o�����Y�}���:J5c-�lW�v������i��Dw��L�Q���V�q&��#E�/��2���?TB��GkZ��v�$���,�1QWVsJ��)E<�����~�NL�(u�:}�/��z	�2���5`�����h}RqX���hn�q��l
�`v�~8	Gx�_��l��7ZWyY�p@"���:��HVDyi������"�d�	7����F��_uF.�F3��W�3bT�e�;��jb��FK������b�����r�l�<�i�x�?ja�hF�N�JZoaZmF��8D�����;yCd�Y����c��LD�%����-�z��;�0������Y�ri����c�(	RN�=km�:�����3��U;u����]�6��E6����H����%�y���hi��E*1��.��H�8f/"���hM�J�$�4��E_�w"E�(Oj���n��$a~R����������~R�>Mi-����8��E�[e�GX�
M��z�m����5������������Z�Q�f�.��'�(�)#�lH���Z�����l��oz����qT�
���"�p��Y���Q����D`���j�7j��4�w��T���7j��4���:�71v��Z�,���B�qn�Z���Q���R�1S��wq�RkX.�#I������S������P�fy�����n��Z��tLg�k��]��
�p����_�%\�S�|���6�Q��A��~H�T_&��FM�y��z�=2c�e�:�io���9��&������|���f!��M��vR���+�oRw-�*9�r��m��z�������u������I�A�N�v������-{�'5�Qu�,��1�~i�������t\�+s)��h�yk)�G�F�y�)��J�Cs,�5�����P�vn=���Rk�'��[�[�1)�7�Y��	*o?�����?����R�)��r�z��q�X)=���}Xk��<h�/��TP_o��:XP&@�[�c�\jCA>�Rw��Yw����B�1�[�i�����2��]��S>�#}�����b%�<�XI�x�0�����R�R�Z4R��E���~�h����&5�9��?���Y�Q>��L=l��,g�J��6S��"m��I��g�C��*}mT��M���m2dj
�
y���K���my�����U��RNq��3F��M}t���x����M�R����Mp��nj�:���r�2+��� �U���)u7��������M���I#��D�P&�h�T7�U����
�]P��XiPN�k���qn��]���)E$���Z�)�X���jO��1m���E�K��%��S"��A9]i����`�~k����2Fe�uu���9�]�8R66�EGy	t�����m�SB�i�Q���tcBz�ut��������bl��C|�b��OjQH��H'�tR����a.OI�y�r���:�h�:��Z�Iys�s�g��������z�r�*����1����kjZ�O;����L��
��b���8���;�E)�H��}R�6�A7��v
*<�����Z4ogn�'U�avZ�II?)�.���8��E�=�5���l4�h�Z�A9},�u���N&��`��s�]�}?Lj��f�F�-A5�Z4D��5��^�c�Q��Q�]���=���Q��1���}%{&��o8s
5%E��Z�����^L��KjQ�b8��A�`���5
g�1R��I-:�^����{���wAlh�� �pA-ZH���\���Z�r���V=�����d����S�=2D�0����`��~����D���O�T��Q��
j��~�,�!�0Z��}�"f���vJ?F�V���
�1%�,l]��`��12�k��S����EC�i���}�h�]+��*V�j����Zpw�`���I�u��+�2j�8$����=[���I-:jl���ZCQ��j�L�FR���x���2(��U
��5�Z4?��e
�a)�a��9��\_$~��E!��Y�A�a��5��.�jU�av�(>j�Y���Q�&�I�^icF-]N��mr��E�86r)�O�}Us��g�~��4�h�g�B��{C0j��H1F:_/����ESeNWqb�$�h���������Mu��$�I��I-��pO������������&�Z��.V#����U��^��#�V�Y�l�������k�-�|[_�0�F-��SY}!lL���-cTh�k
q_�9�G������.�����j�c�����4z�CA�QF�G��s����jO�
g&0�PU^��J���[E7X?���X�8�Y�����k�P_�����{y��������$A������(���D�4X?��RJ2r�K�P���z���r�RP��G�1��=03QUc����yK����K�Rw.lg��f���~��*��������V�c��~P�^��G�1J��*���G��G�M����b�a�Z/��M�[��)uW8[�Kv�3g��^y^a;�w�F9����v�s^��/�ZNS56�G�Ah���^o����	��K�5J:�0�Q���?u���������'FN��6��D��o������z�,>m]a���������eOe���P}��������;��	��E��f?�m���QT��A�z����wQ��0Q=%�� ?�T^h����� �|��C�s�S��O��{E�*�'O��^�^4���Z�b����.B�+2��9��*F4��.�s wP��O�	�/�l9�X��i�fY0_��U���z�,>�?��N�>���q5�"��B�vZy�
gY^��h�(7�-$�Q8�h���������2
���e��c�L�1��,��*��������Z���
u�:��N]�i�~��[��=`Q��n�i���G|��2�i�}���"����*O���X��Ai��_^��Q-s
�'7����"�'��	7��vJ��
���D�G~�X/��E-'>������}����6��bf���\������<]����Q�og�s�r
���He��M�������K�y!P>���t��eQ��a��<����bv#>����=����0|Tj/W��"z���Q�c��r��IG�G���;�'	�[s��xB��3|T������D�G�M��w`5D?;>��5����ll��Z&k������g���9�sM9���G�!���M�>���&��a����Y�"6����=���B�v���W���:�6|2��U��D�G9�9KK,�$0�u��;����9��[�,����Q����U�`��^�|}��	��~��m�9�>'z�1��T�/���n��r�l1h�|��;a/z���?�~�w�kd���\�~�{jm/{
�4m1��S�*m3��X?�O�f�l�~��KO���������(Q��t�����hRwgi�E���7�E/:��������5Xay��U� ��A�>c����E������&u������XiRwn(����.���I����d�����y���s��"P|�sNz�o��ok�(_(c�b�M����y\��A� ��s�2������&u���2��_+g?�D���Z��gM�.�X9K�Y8�;�&u7�	 ;����W����>8�
?�����\h��u)�]L�����;�z�Gy�l���
"��['fD|�:��+s~�����������'w1�'>�wb��J�>���yfs��k����0;����qf�5l��%�BrD�^R4�;���+��G�G�
���FA�
r��(�Mj�+>*����F�u�5|Th�Xc-X����B+���bV!������0
}1�jl��:n���`&O������I.y�G���.>�a����`��8h��Y��41�
����p�F�z��i'.	�������B�����DRy����x�u?P_*F>*z��n{*z���Q�-������
udf�aZ���8s��J�����Swd�G��m6Ra����F��6p~]P�[?*���@�����d��9��{Z/��d��8(�5�P�_��Qc�����
��Q)��pc��R�jOmN�%H��MjW�K�5:gX!��Em+>*��C�gp�(
�����X��V����x�*���R�J���q�qF|�����}�s��X��~2|T��
���E�O����W�y~q�J��N!�\1/u�D����%9b������7��g��(r�d�(�7�8�5?��Ba���m��f?j��Y{q�������\�qI,�?����[���w�#���g��<�A���Gm��a��
�����#y��2k���P�~���`.����(<r
�_i�oa�a�)�)�T��p��C��g%�b�(��A��1'��R� �6�^t2|Tp�����/����{TPb.����>��P6f�(Ga����	n�d�(6�i�/T�a�t��V��\[�����!����r^��k���#%B_�wa����cd�9��UNg�(�Jd|?n�a�(���!������}#�������*��Q]������u:����b�(#r�p" i�����UnUSJ��Dz���T�O7_��V?mC�o�1�����Q>U�^�T�����/][CaF��G�#s��))�4�Q%�nI^I�+H��XC����kX~�6\��5�v��ja�
-M����G
��9n���Qa��i��rM�����tJ�"��y���|�#V�������q�F�>��d���
�-j�^�|'�G�8K�/u�f?��O;mb6��Qc[���d�I�����q���T�o���BC}�����is��B>Gq^f?����+>J�a��x}�L(�E�~���>���E�6�~T��c��R����bb?�5� ����Q1z��25 ��Y?*JE��8g����t���33�� �����B����WZ?*zr����"���Q1u�S����XJ��:��W;%�T����Fcg��2�Y?*v�9����
��J��3��6.bv�u��X�B�N��%�Gy���z�}N��
��2����P�P�X��u|e�lF�mU�;I��:vs}��lU7|T��*����\��Q�GN+���T�7|T����g��b.>*��P}2|Tq����o_�;�
�*�>*5���#VT=�������
�W�����r���&��rK�G�M�(��J�����C����M?*g�M�q��d���������kg�G��2��\��]�ND��8������J��{���b�gy6|TN���)Uq���U�h���`F}S9KTi��������W���o+��<�Q�o��]^������+����w�]Uj�S�B�����}�U���]����Q��u[���w��Q�|(��Qs���Q�����o����4�S% f+}�l��R*��{�l��Q�w���$]��q�~T��
��W��<����,Hm1���U��4�Xb�m�S?*n1����f�G�JJN5���u\_��H�|g�G�qG�}����B��_�U��l���;��0k��_�~Tu�a(��8������R����������*1��0�Vq��Qe���kg������H���w���:Ne��,����L��J-������i�7Q3����O�B�kP[Zp�����g��9[?�
���7�{T5�<���'f���S����j�|�+�
��Qu\����:M�l�QuP�C���Hq��U�������
�U��w�s��me�G�1��bV�������J��G����x6��Z��<$���M?�*2h��A����!�3"l���J&����OM?�F�o=9��lq6����X}!k�����G~:bh��__i�XQ�-E�0O��A��o�Z�8���W��z�>��5Z6�V��D� O�����q�O�I��������1w�������8# �����!w��Y|qn'__�J��l��5��6� ��D?;O������W��z��Q�m��u�����Zt����c���X��uq����������u��k�}"�1��__���x������7pZWu��6X6��6�{��o+|�����W�������k����(Uw0�������A�4 �������N}Q���������y����i!w}��C���Wk#Gkl*w0���<��@�a��w�<7o�}uG6��gX��R����5�oQ_����;>����8'�/�Y��~��6f���7�
S����if�n�&�c��5���l=��5��.c��*�����n��m

�%����U���`�*�j
�:���d�M?�!u��M �Nb@([C�
BX��Q�[$B�����0�_GP��!UI!��"b�5���,���E�UdkH���5����5�j`���E8�b
�
q��RTz����z����������n>�������y�{x������Oo�����������{�r������������/������o7��Zw����?}�������w��5w�_>�������o������������:�~�x3���Z������z:~���������;v���Y���t�o��s��?����a����o�M��{��t�����_oO�xj�}��|B=w��|������������������������s|��Oj�������??>|���p���7��_��}��������������>}��O���O�����{~�a�%�������}@n����	���)�xr�.�'�����=~}��?����8���w������:��q'�����~����N?�r8��O?���0��?n�=>~~����������~�����_��/?�N������������n�����<��r��t���t���_���o�������}�?�����O+�n��s����'7w��y���7�����>������c�#�|�������o/b���,�1]r�Y�1�~9��bxNV}Z����/��1�&&l��f��r��O��w�D�5����oue�H�i�b�6��^ND�7"�|�q���Y�&���IYH~e����aYA=���,�����Xf���/�fe;5V.q�\K�<{|�Y����]��Q��m��.���	?������veA�T�a����Z��gW�(���T�le���M\�D%q�+�Z������bR!)���V��OA�Q1�8�-z��-y!5mU��Q�*8R	t�Y�����f���n�����a�Y�������X��K!s"�Yj�����{���/��������%��{�c���<,+�*���
��5��:�����"J����WQD�8.(hK�����	���~�;!y-�x>E&�P���z-���N�����i�E�T��t���V��vd�O��������"�E��L��Mo��ADe��"�:Go���S�10�y��J,� 5(o�9�����s�U���N)45v��u���O�P�fZ�3���������_l�7Q����6����W0������B,���s����L�N�i�%D35�5}�g+���"E�i�>��S1aTw����&5S���^���(E�mf�m���k�,98��h�2�k�R@�������!_���l�"�-����{���W{1��M9���f��$�����I�W�E���b���OH�bm�����p��u*�����@�S��La�GQ	E�<�e�Y�I�/��&5�1�"����xN����Yg9|���\L,�h��W	�L\u'�����;^D\u
����;�%��|�y��y�J�D�t���;��^1�4ie�7�Wn(^?X����*\�
M��	E hZb/���D�\�E=� ��*JZ�@O�����j"��Rk���v~��F.z�}	���H��\un��aMl �z��
��w]Z'c/H"/�bj��w�-�/2�c<�/i��{*�mj��4�Uj
����!uN�#{�4���L���I#�6*R�
��T5���	��&���H���Q	"�b�H�=�������D������}Zgo��d}U#�uC��������3�L<Rq��r����-�>#{#�k|����pD���s�`���m=���%]u,���s��*6n�.�''^�.QLh��f�75e�0$Q�����;�x��h�S��7�
2��{�7�X����/�a?�++�[|�7oh����H�c/�v��FG���Y����������R������{�s5�y`OE��[����S�VuK�LC����jj�{����]p{V����c����w	B��{�kd��j��O���)�pB\\��s�h��P!��^Io��~���=���y��A:C�i� ������1����A���R�uK���.\���t����+x��%�}��m���_&{l�`��2�B�{c�
nEc��������A�5��� |�������x
��i���~��C���c��%3��t�7�X�D�s�R_Tcj�>������{���~��/��{c�
5����
3�X_7%1"Go���;*�����n)%���D�8��B�"���`xc��}��T&P���c��8�|� ����c�����Q�Q{��W:�m �0�%��o����N[}�Uo��g�_���H��c����!6���7�X?���`�/���d��dM�W;�7��PV*��Xc����{�("���P3$[*����_������R��������u���1c�
��`e�c!J��&{��K)�E0�zc�
�����o�)-c��������r
��C�be��}N4������)���5L�0����D��{l{0&BE���d�(7��8j���c�HH��RG��{\�����)5!o��i\uW[G��b8�{��P�����okj1����,�^�{lJ	q�����_��S����A�}k9�~�#�l]�����gT+�c�}X�)���Z13+}�����U[bT���Sy�d�uO�>��&{l�"s��W5���D��_E��O�������}_0��;����?T)�O���������r��!�������=v�_@��JQ�]&{l-�
�c�bO��a���h�u������N��z�"��=6e�A���aj�93?�����V.�x����]y�S1��3��w��k���o��r)U��6T���a��dS3�%�5�R�Q����f����P�{������Xj�g�����G�
����dS3�-��&��	_h�������j�fXY��2�qn9�5�NzU�C��:Z��Qe%���qC'��������ma��nL��t����#���k(������uL�����P��\rY�P�$��k����|�	?�Uk�,�A������:]Y����������Zb}�d���S3l�r
���7S3<��)�*
����S9�,�n���jM����[�f��!F����4��a���,,a���X��N�(���S����G��1�wY&���=b�b�2�1J��`��k�?E���`��3j����]}�n���zo��E�:�G�A(�=E��|����P2]bC��S����}�Re	��h"�������5:l]!�������`� be�~ToT6)n�cU 6���z�"sqk�n"�����c��,qn��~|���\�kN����YMX�av��m�<���GuO����L���Q}���k��:?f��^���]zUk�����>���Z?��`�zkz?�N���A�����=u��BU X?�x��;������z�g�P������S[E��Y���5������v��~X?�g�*��q��Z?��#��W���)�4����56'�s��QGDf�u�������TW�?mK���Z�m���.�)��s������+�.
j���a�����+���`��~�W� ��9qG����*���(��~T����}g����cr1r��Q��[g��
F���:��icb&X?�����11��u�u�M���]f������_�p���z��-���i�G�%�9�.*O�~T��1�jO����~K?&�b�L�y�g�^�Re�}�}�M���e�����qN1<���`O�/\�dE�����>k4�?��;
\�~�`��>j�k�G�?(_h����]0�j���Q���8'����j���:U����O=�3j[M}�:�i��R��������z�������i�wa�A(��:�t��������Ow��(1_��O���}���_^��Q=��tb%<����u�=�
?f��#�mwS�}�P����W��_�?��Okl������Hg���P,&m���9`c�_Z�������5f~�jJ�U(X?�g���]
�����:��G�c�1���?�rK�S�<����HP���C�J�G�y^p�D_=��������}�����kN'�������[�L����?�[��W��}����� Y�{�G��;��m)�gv:��p-V�{C�~�w�}.��h��V��:U7E��n���~�%�/�M�`1r��������9��Gwq�g�=>5s��}�5���gq���k��D�.�i�w��Y����N��p������s$�08/����:���/
���i(����A��h����:m�OQ�����e�Y�~����K��� ��N����.f����zK[�����:�����{~]|�0��~���*��0�~�\�5a�����^7��GU������e�����%f&��Ge��1��M-����%��Sq���(��o{���.�Qu���]8�����f���s��3�����!XS��G
�j�+Y�e��Bb��E�f?�sn���������>����<�?f?�ms����h��:�K��b��x��:���kl���}?�>P�5�/�~��[�����=�_W����������E?�;>r)Q��i��1q?P�U�������;(��f~�~�n�����*[]�6���s?j��s�56t�����t����~]�1�t�2�	:�Q�sN	���:�~�����Ouo>�~T�[^��������C5�z|��x��*�S����g?j���^������5�L����z'q���Vs���w���^�������"����b?������"z�q��Z�]_(��\�O��za=�X�������q����[}qN���2�)���_Wk\�M=g7��6V��:b��{��x�2�>�@���5�?���}O�/�����������u���f�������Z0{8��=�Q�m56��UM�����\���E�N;m�w |u��~Tx�|�T����������%/<O1�M�09r��E5/�mb�5N5���^��1k��N45�28W~)�*:�hj��G*-P�^>�3�T=~��P�M��d�|u(����g'uG65������Qc� �S����l�\�e}u�����Y�xk}u��Wzi��������1J����Y�&fX�������3��
�f�16N1�^�m7R�����K[���ac�����wxe�F�W�*�s�����}L1��������db�-�*��SS����F|���qxK����6�$�������:���&)r�d|}m����B�mEoo|}e���P1V5�d|}������&���M;-<���b+���j�b��<#�Krf�����^�}$gv�I�A���\Nr�Ok�s�kO�p���4"�S��	�Ur��n"8����1��;�G['c�Zc�mg�5���|P�BO�o���`�M���}���L�����u�(r�4��z���\7��������$���uS{*Cm{���cU>G�������E� �{*�Q����|�	>�AC��@��c��zX�����ym��L���p�5�(+��1����� ���>��mQ�</��4U�B���C|���L����>"��Z�Xz{�����3����x�$���O�K��w1��^W��������S�	\�N~)1��L���B?����%S:�d��R�A�avx#'v��d�O�����_�~����M@���T��9P�����%����.^����L��H?��*j[�D���B�vr�=�~���^k��:�~����7��t�/'�T�s������Q�svc[C��%S�:v}�;\�tq0��5��c&�6�
'�L���:c���)50k��_'\�L
�L#����D�2��o�O�'G%�5��FM�_�c��� T�%X�4�nO/��v�^��e�P=m�[�_�`Y�1�:��I��T��Pc��(H�)��<�t�i����K�)X/�b��%��:����G��J&U���[���k���6N{����M&
���FG������*�{��`�s�?
�6u�a��������g���<T�T�;��_.�S�~��A�[�G�1�]I���B��k�B^U��B"�oQ���sL���W_���%������m�-������{�+;���?�2Q�g��A�;ecS'j����9���m�3?m���i��4��<\�8s�e|}>�����8����^��Tg��Q�~�znQ�/�_������FUS2|��r�S�m��b|}g�
ThPCQ>��Q~����zL�9�N]&�4�9��C2|����s�>'p���Q���b�FD��JS4j(�cOQ?Uu�G�Q�vj�b�'M��'��eO�s$���Qn���vZ��T���Q�n�O�|L�a��5��nX�>�WOC�Jd|}>o{�YZ��L}�i��qN��$�G��1tUg$�;r�����q�����F?ic/�l|}�W�����l�(�6�~L�i6|�������6������?���f�G�@����N�R���B��4y���gg�G��a��	P�6��O�P:z�����JM��"r�l|}�q���~+�����H�����5���A�s���~T$�1���4���/<Q�,�A?�rl���
�|}
�/����Q�v�M�G���h��N��o�9����Qj_�9�E�>��O�)K����5__H��k�U�bF1>*��~���+�������C��>*l��>G����/T�+[����y�G�M�_J(_�G�����#__x*,{J]��N�9�o���y�G5���:�^�x���g9s)�]����1�����7|T���Q���v�����������%N;���9��M6|T�m��]�1>j��]�},���Q!8���������
C�s�A�g��__�P��@�R�`����'��k{�b���b	�S������<�L6}u����@��q*w0���
����+j9M;e��e�	�?5������$uo��Q����������/���~���okv�q6�J��n�G��\5�������M�b8����
�]�O�����QyH��z'��N��������Z��{��x��<fzW�n��}�l��<���+x��A6|�q���z���>*�M��3�b�9>�d�U=����.���X�-��������)}���l��A<�=E�!�����r!/\��ug�L�z�E��U\�\E��)�a|}�1���uR|��Q�e�?���#r:��+�zk�9�_�~TI�&5�62[?������7�j�����Rq^�<n�~TM����A�
��~�(��.��![?*�mO;�>��Z?�!����1��Q5l��X/�]�N=�����4������+�(f{���Z���������U"??�m��__i�����4Lb�~T����q��M�����c�j}�KI�~T)38���S���QmHI�8�B���#1FA��o��J���Ze��$���b��
�X�5�?����HU�l���������)���;=[?�m��+���S�������������e��j������D^8��=��5 Do>[?��Nf�o�����:�_��+]�<���������s�������U�1y%9��q�������2����4����z����AK��ps������/w��o���|������?=��x���������|}w�������y�����������o��_�������n����?�r{�����Oo��k���>|���y��_?���������?��x�u�����f<���N_/���t��x������yw����3'���������?��x��
s�?~|sl����o������z{���D2���������`;���w>�|:��rww�}�>~������������)��Z8��*��??>|���p���7��_�������=>�����aP?}�������������������a���Z��w���sG�YO�Sr�y����8&�����=?�����7���|�|��;�������]Y��2�d��/���������_?r���7c?�G�������o����w~>��������������������o�������p�����_n����<�n�����[������~>�����/���<|���i������v���8�����?o�����?���������,u��o��{���E8����&.��q�.�iy�p��t��Q���V��/V�����
g��z���q����K��GT0����������h+E���x
�]�=S�����H��8��"E����4�����R����{��������6������{��}^�"$�G_^����1||��\~�����U��=�c���^ ��
M�F��>�z%�o����A�o>�c�<�p���J���&��l�eP���8V��������V2�Z�B�v<��nZ"���&��C����FLppY���N(����2���	��,�^4��O���)�����K��%��j��:tW0>0�M5�zr��/b���������-�"��l;+x6�|dK��[c	1���-����9K&��b!���/m�x����r���RH��q�D����s�g�>��/����U�s��������"���b�#=E��`�a����������6(0�����-���Q)D�T��H2|�7	s0tU�`���k��NjP�������|��&T���'�{�'��hF%������S�T��~^bT�@�����L�l��|�.d��+����2���OAN��7���"�#pb�f�#S�.CRl�D����@���&�R�\s��7������%�Tm���q<����/+������%�:F�]������1�*>�Xb�)�#'U��y��H��A�(�*�[����!POa��1q��.!�O�B��'DQ�\�,����f��h4�o4�����	�[&<�����q��h�H�J�kD��6����*�K�m�����N.+Q���������H��L��+�S�����P�N������A���uv����D�z2�w" �^�I��IvB�w�;��W|n%��8b#.op2D�$�_���>=��x~��N���h�v����������",~��Oj��K��I��MS���0!��	�m������M�f)\a_��o5�&dr����$�V�1���0^�(K	$�
j/,�zH��CT�3��(��8�\K,a�3�C8�\������2n�=A��F�y�)�`���m1���M�^g��4~���������F�x�;��l�����g����keqC4z�>���AE�W'�l�RWLn1�6�ek&��#Y��lo.��_Ic��~��0���mt��L�&�k^�i�Q������. ���Q�FfN�#�Kt��{�R�w�j�t����Wx?oP^��-��A�'���s��U�
�0(�K����oP^7Xg�����rA5��;���<���H�1R�t\��x����0�]�����$���=Sm?�f(�%ob�
���F1Z%O��u������9�N��X�v�QwAw�
�{�9����"�Ay��$�@������]��
��
�{N��&�
��
���\s�znE����,Y���N
u����CJ�fQPx���A�
�BW�~X�w+�f/�u1R����{�%n�C~[���h�l�k�7(�k���A��0�L��=#�����n���������jf�A���okP^�)i��*��bP^7d�W��F�5?�e�fc[�@�u����3V�ps����������Y����}�4��c�Ay}&��u�E���I�A�����8y��zOLOVk��>&E�� `c�����#TSHaz���F�*R��&�������-�\����9��O���ZK=�9�j�]��Ay}����������e�A��(�����n �?pn�����5q��	z|���n�_7!�
��=)��d9Rd�)"���`����!2?m�Gyo
��m��4�=���Ck�utW���a�V����($�<��v��D0�'5BUfC����/�aP�0�?@W�;���i
� /l�a�L�7(o(�i����^S3����F���7�xC��U�7(�����yk7E����"[>��i���@3� ��Nq����Ij
��D�zC�V}r_'��'
|�W1�zN)���6�g�F����z�zx^���I-;�Rk�����em'?PW�Z�S����NGxA��N�����������j�y�.x����O}[�������(k[�{�-�9���z��|j����$
���OqPu��qzV�9k?%O��F�v����)=�Ay�
�7(o�)�@��d��Ay�F�K�
��;��O�<���x��^�u?*z�^���"�i.U�4(�q�%��gMI��AySk��+��S��AycN�>����>����-�C�+
��|g|��T�9���5(M�����AyS�'���$oP��2��5�^At��Ays���+� 'h�Ay�q@���S��AyK"Uf�?uBN"X?����JYq���5�����J��9^���e�'�b�<q=��&��#��f�����Q�d��d��`��������G0j��6J$��b�!X?�DG*3�+Y�`���x�+rK/f�����Nx���R�p���Ja��6�E.�U0�0�c}%���*e���
H�~��]2���oP�aT3Gb�o�yP�~T�n8���~,�l�
9Le[]����j�h���/�����jy����e���H
b�BbZ?���l�
�U�%X?���=�$��(<*s�����������+u���#���Dr��b�.��Q�+1(M^G3���i��N���G��	a?6��F�T���q�aR�t��T3W������v�EM��)�I���/�~T��?/�bO�~X?�{�ls���sF-���6�jH���x���HZ<���w1��1.�wi�;������D� ��f��������I�v�I�E����jCz:i���Z?�pP�����K�NIJ
��r�G������B��4���nZ�z�������1�?���G������W�j ���X����e��<6����BV2H&6?����8�����av�x�`NC;��h4K����������c��)"�����4������F��:���BB
�[�D�!9�/���xTmc�E^��G2;�xn��1����$�� K�lQ<�
�,Ai���%�?���b9��Q5e\SGC����"�����;��Q���s�{K���xT�N�n��K!}9���_���w��RH2;������$��������p��N�C[����OE���:� v�f����iy�{�?]0�,�:��lv�0v@�Ld�E����4�{���noQ<�����������y��Q������PT>��#�[���������xT��B\�)�a���E8s82��A����=����OI�j#7�g��`'R��o�?��&�dQ<��b����@��Q�����#�<[��-�v��+���j�T`_0�%��xT[0O|���j�4.�P?%=�R->���z[ �G� ����)�b�\l�0)���H1��Of�N�xT���9Z��0i��#)2����tL�N�/xn;��G��������4�S���eMY�m�(<�0������xTS��\s �G����8;�P��i�?��Y<�����k�y%9/&-;�T������&-���=���5i�����B�T��6�0;.F�K0i�1UW�����\P<�y�p2����j#�N��G#�Vpf�e���g�>b�����ep��-p���g�iK��QB�=��},��A���3;E.���g���F<��Y,��Q1�3��Eo�����|&��xT��X���2�*x��c�w��1��S�{���$�7;������^��xT�M_��~��xTmK
b\a>�[]*aL�w%�A��iX��*#k*v�/u:�����Q=opx�A��|�X�������9�����|��A�[�.���&�� v�����r���)�	Z�R�
R�~��}�7����������C�O�b���G��6�PHL���ox�B��i�)U#r��>�?%qS�3s
�G�Y&i����6x��c\��b���/��J���<����i�1�K.��G0;-��[b��S0^�
�y�
%�|���{X|��������<��'=5a�G�<�[�5%>�����eM	����}#xC������)9/�G	�l.�Bx�!��.w�S�i���q�1������������{_p,�/��Q�����zHf�������p�G��N���55;]��
,�4<J�R�BL�����O#��8��� ����E���z��Q���P����[��<��_�}R�	<j�o�:.9�<j�Ax�[7<�/}9K��i������0K���
U���l=�NC�h���IOo�v����r��XJ��K���%=����Q:<[Of5��xT���}����zL�8��-������H}=58���Zp(�����W�����,y6�S�.�F�� >-�.ex�:���#���Ag�1�G�
���lVw0<j��@���,��4<*b��Z3 �axTt�`6fx�[l� Zs4<*��c�Ax�����1�D[g5X����<���l��^�b���$l������A�G��m�cc����?��Wn�(�u|�i����vXF�>��M�_���{����������6����b�G
W��Gc5��j^z{"��I�A0<j��?�}�|���[�P��IT����\�Kd�
����\�[24&:����:�����hx�,��K���}��G
M7�A�^8���^����o1|������X4<jh����1�O��'�Aj�c��}�L����.��KC���������� o��2zz��o��QKo ���{$���w�axTZ�(�rGEo�4�a�t��Zj}�W��!���s����Q0������[���2V|�1b�G������#ec�K�����"v�g�����<j��Q���O3�&G�`CC�����wH����Rw�����1<��sB6�F�Rm�3X�J�-a�����K�{����9[�a�3���9!py�W���	�>����=��>��e_�>.*U��$�A���}�������Xa��������<�+7x��5R��q��/����&�q��.y6����M]j�����<*��^k�qI�b��Q�
Dll�G����O:*������'<�h��~��������Qu��Zz�H�e���>7ew��U���A�g
�4��{�����
�����W'�ax�(������7x�G����w4n�(�1�[������	ao�{l�}�?���)ri���o�W�}������	��J^F��Q���:����q���l���QCz+�����N����{�~~��G���%�b���Q����G��}��R�X
���?��>����gX���8��,v��Qk����������x8��2?j���:���ex�k��_'�g,�~����;����B.�l��K�
?
��2��0�nx��59�k�j9�G
�a� cq��U�����������B����:?j�����/�q!�����&�P��`Iq��Zj���`u��d�_�>�����4�� >�n�P[��bx�[������ox����[g}J�n��������n�Q��%�`���3w��L����Qa����&�h�����h,o0<j����N���QCR����
�Je�q��g�����,�f��I�Fl���Y_x���6u����:�,��Z��{,)=������&���R�]l��q5~��9����-?
yI��H�0i��Z��Ko ��
����&&/g�`<��S2<��:��n�I�����)�I�W2~T��*h��^�lu������"v���d����3��z.O��HO^����>�vAll������"5��7}�?��f6f�����X����;`�K�C�i���@���
?j��{[�e�M]�Gg�`i�G-5i�+��s�O������[<
cm����A�(7��`������"��+�S�X����9�����e��G������I�(����`�a&�i��Q�J7�|C�^��U<��e�L^��>l~T
��0�]	T_;)��~���{^�?U<��1��W���]�x��F���N���y��d���L�D�`�	�
9:�C���o���$�������G�-&}}��G-����R��l~T�>G�I��rC*���RwH�G��_{��H�
��G-�I�u9xb�6?j�-��-��#}��i]��T�yk��G���\�L���Q�����-�������S�q�-�ry9�0��;[�(��,��������u��|G9�#���S�N�9V����j��/<���O&��x�k��4�zdq��Q>7�k7�]��%)��%7'�������m����gw��Q~�������1��d��a������v�P+��9�d�	��Q>aM�A������
�Y��I�(/�������<��xTwA������B��d�n����'R?M�G�1�v�1�o]S��W��9����2^A��Q���
��#��&��|sP�������Qp�.�i xC*�V��pn3��b�)�=Z��~�[��:���6�f�&��d����_�J#>��G�e�'�])�*�]Y�l�+��P<�	jR������b�>�����J�C���8rkx^�]�x�<��������P<�������>��5��W���>�������=2�<�	�
t%�x������Q�������aM�G��|��?@���B��$ ����;�oQ;m�o�vZ�&)�3������B���h��m���[W<J�]�E�OxT�0h�v��0=�bq��Q=������705�O���3��}*�=��/��=����`�"')����	!�'��i]��1���J��&��|D��Ao _S���(�����>.�.����v����?�~�z���������������\<\]�\�}������q�/���?|������a�����u�t������������=��n���_��O��z{��������w�����OO���>w����>�^�a�~����������
�OG�������;��9�������!����}��wW�w����_����x,��o�,��c���������������n��x�����F�����������*u��o��_��w��������������?s�t8�7����������C����C~�U,��s�����z�?;/��4Fg��b?Ia�|r��v��������xy���p��������>>�����������/��m��{�s7��������(�vy��t�����?�q�?����������q�;�o��h���?����\}�?�a��~�������~��x����������������g�^?<?ywy�i�k�����\�}�����o���77����?������?����a��_niquf����zfM������56=gi��l1�-_���)���j~D��^�oxy��������{?�y�P���Qoh�G�)Y�a���������~
n���s��#�!�������o�R�S����R�\�>�
i�
���>q�����z��;<B�[�0��G�3�i�������B��0���5����	�i�BL��I���{��5g�AqXH#H��-���Gd��H����<���q��9U�z���-F�l���-��:�b^�D���hG�>�7�����#�J�vc�a�n'��?"x�l�����3���@!/��[�k��`���O�{(cR��f�a4
u��V�����Z%j�m.(P�u�a(��GkA�r��s9�s��I���u������

S��3���@���F�������H����q�r|�R5�6;Yg��
��#���:G������!s���!�j��#��*��vQ�������V��"�bQ��
���V�T��TsF3�!�`��/d�S=H�15��l���+�I#t-B���i�wV�g�����2���u����m�m�����
�	]���XN�Y`�� U���N�Y}
�[���D��!I0oj�am���p��!
��W��"�xx-�D�t-Z�M�a�2��Z��G�
�"�%*�^��{����l��e�������gt��r�0�����h���uS�K��(�Y�C��"nf���:�h�m��Y$|����1��m,��E��}�N�-0�x}-�Zg��<��In���Yv�.�<B���>���L�&G3�
�@D4���Zg]6�`p@�S�s���=��Hz�s9�!�M�3�u��gb� Y�N ���
���R�:G+L��zW�T�:r"8>��Yd�s��`"L���	��k�Y�%P�:���\�����>b�G�S�3/!
,'c���
W��\��"lS�f_��*$�$�?���D0D�������L@�.^?�'�<�� t����s��9����>2��Z��<�|)�V�N���($8�������J>��N��kA0����4�T�Q��^�w��k�E)wV�NA�rC��?���#�����\!�:����L�^����Y+�@tQ��5m��X&t��,s��C	�l8c���M��-�	���M����k�Iu,�%gl���$~��C���)����ODh�p@
n�N�3��i��������=r��{��4�n��x�����B[��#Lk�]�O���F<Wh�Rn�.m�c��ne��y��|#����(�m�@%a��wj�E��A���;���.6��B�����-�P���+ntc�+c���8� Y�^m��h^��:Z~�9�`���BGm�Y�yD�$��Q�>�.��x��h�RR+�5�{k=����p��yQ��8�����{�������o!�	�R�	��fW��S�����U
��B��������/�bHG���-��j�W�>O������xE��2~p������+��|�\�!=��~C��Pq�D"����M���0j�W��sK[;�2���W(��
?We)�y������?�}(u�	��n`��@���7�A��hd^��������
j�ip���8�}��i�?��u3.���W��RkX�B�HD��+��zN�
��3�f���Hg��`����b!%�R�n������V����`�vajcJ�tCJtn��X~"���MP��;sF�\}�r$?�J��#���e@Y��R7��?�Q]�=�5��Z��z�*%��=5�K���F�,)`��;J�D{�u]���J���h _�� �nB��+�BZ��Q7+J�"��	O��M�jMBZ.{��+��@�T}2;�H5[�0���������SV�����B��\���J�t5��NKH�!����~^@��K$�|o��1����|���9�m�B>�$�Q7s�q��tV�P)Qq(7�H�l�+u��1�-z�W��Y�I*�����A����&�����F���YP���YG�Q7}������
J�ta�Z�:��yE�F=|����C!� ^a��"t	al��\��P7#���
�AF����/��oQ;u��%v`���t�8g[���x��$p"R�����P���	������[�nJ��C����W����5���7{����2���}��}�Q7K�xg�t&�o����`�6��=W��AFi�����)�^.���g���c��Rg�P;-��{"�ru�n��Xg��Q��x����HG����R7������d]�J��1]n��BGC M���
i��!\KllC����u�>C�}�)���Y�o����0��X;�o&-�������7����0(s��Q)Q�(�W�e�!���NQ��a��t6�J��AA���}O�JQ)QM��B���Q)� h�zEX�P���(��we!u)qf�
e��b��xTp(S�q\�Y|���B�'1���hpr��0���
	m�.#L^��D�D0�}�B�[Q)Q��n7�����J���8a��.$����`�^�Xw ��R�a�#�������t�������TJt�����]I�c�R�C���5O���R��hTx���z��h��\��T��Q)���<K���H�J���#
`B0`Q)���5�}acE�Dc����6NATJ4
x|��R�k�J�]�9�/POf�����P����~�1?�R�cV��f���OY�������h�W����@�C�D��T��32J����xT�([W 7u��)*%�
�-t�����r�A����J����~)(#Lj9���rvpW��F���Q��H�q2?"*%��4�:�A�>Nv�k�ZN�^&�/�G��r������������E��+��\��=�d��'���H��(�C���`��s�xTn8i�!����N�[���$�D��\1'�5���/�G���x�^�����[����s�v!�G�p|���t�(U�2��lG0`Q<������:R���J���D$�D��R1���SC���Q��q�������0y��`t��d��)U��Qn��4S<���}^�Y[�JD��Q=���%����/Q<����k�����.���5��.%�GU�|?'-C�t�xTu��?�-;��GU�|�����*-@���:��D��:R�v�>X
E������N���tQ<�:�ar�8�����tC��AzGE������X�!�2Q<��e$�:���*
su<s��R)��Q�p�1��"*%Z�1���g�a����=\S����Q%-k
y�C�bv�|�$�x��+��6�����qr�)UGk�����!�G����v���"�N�xT�(��g�������\��a,��v5-�W����}*U��2�*P[W<����-��8��+�G��	��{�?e~]��:&��s�Q	^)�G��������+��(��� k�xT���5���A�G����8���u������#����)���}�Q<���s��OpuQ<���\������}���8���f�������s�G�1�{��	��?b��G�Q���e��jD�����6(Ue����������i#6�&>�Yx�������������,1.���
��T�[poI/~��vA���=�����c����<;�h�����6�n�tr��ZN�;�����a'o����0�%�R��{�3`�"l=��.w��a�7���cCx�o�(��cQ6�N�����#;(U=���5e�!�7;]F
/g�� 1����5%1nP<��Y����H�X���	X��t����X3�<��a��Q5��%�c>H��q�>��/���f��[W<����1�$A��.#m��c~]��c��=��A��:B�t��I__P<��)�sN��G%�GB��T]��������T�}aawC0������B0;�����6��G����b�����b�o������>��A�������������%��X&6-�o��������;�GP<�����J��A���3�@��Yl�xT����z0~e��|�B�����v�#>����G�Rp�-�*D�E�����P/$=F!�?��.q2{���8Bm]bc�GU��
 R����x�1G��>���C�{{��n`�dC��t���a|�������>�MC2��X�g��-��Q�bpvo�/T<����rd�f�S�z-~�����f�_�{��F|�u�;�
8�m��6x�rgC�@H�2d��~�����������\�K�T����F�+fq�
���@'�M�Ra��%��~�A���Q�C�����W�8�Mvlo��
�~K��0l-(�Q���d�C���F!�z7*�6�.-\������QRq�;�''6�B�(���F�,Q<*����&3���|���SG=}{GE�UT�����$'���1}l���,}��a�z(Rr��1]"�P�('�f��-��06�na9{�Y�N���$���L}�q�o�g���K(�\���duP<�-��<������WsFE�2�N2���G���,?�� l�Q5�
������x���0F�3�P<���c�������R��z��u3/3��f������1���4?�%�X5�?��;6����w����=T-���:����x��w���&q%�n�(�Q��b�^��Q�%�5f��_����Q~��r���Zt�)rEa=���G��<-x����d���#�
��Q>#�?���������3�:�xTH�84BjJ�)�o�	�<f��>��������2��Hr��x�t���u>����y�3�����G�A�������������2�s�p��Q>e��@~;���w��xL�{��n�6���8���s���}(�G9e���2����G��b\|F�Z���z���`�$���GI���6�� ��x�/���G?F�E��1-o��#9����x��E�t{X},���o�*�G����xg�����Q����L`7*��@�q���D��|�
>#��A����:��L�7*%{{0b�����O�dU�t���Q=C=���?
��#�P3����U<J�*�l�����ZA-�8��8����0=����xT��2������xT���K��E����9hf�Q?�G��=F
xI��=��Qq�x/�[��GIiP�J&u�->�}����~4^4�������r��6�!*%��B�u"5��xT�b)��f�G��s ����0����v9��f���x��t�[��3;M�V�1�<��<J��(x^*��;*�����F��hz}�c~���|a2;E�m�N^3������|�c���QR�k�we&xeT<j��3�+�|��Q����g�������L�/*����s�bK���{�?�g`���Q�!wm]�8����B�{.��S<*��T��h��3Q*��V�E���Q����?uo����G������@�R1��D�?f}��":yQ����=*�`3[S��z.�{�G!�V,�.1�������xTl���)r�=L�'�������Q����A��'*=�����j�G���6s�[y��ox�Gm�
zl���e���zJ`��������'A�b:���
m������b�G
��������Q����b��}L�z���,w{""Q�QQ��A�����4x�����j�i�>X�+������_t&�w��9��Q�P[������l��cq��Qi�����p���xT����3��NT~T�=��uj`n����G�!�3�i�{�6��C>t^��/�����I]�W�b\�G��������x��n-��i�F��������N�A�G��_Y��������|�L�=h������e�������&���3=qZ�r%�d��C���.�3H�G��J��}:lM�-h��5G�P��Q%`,����QI�Q�a���,,[&�G���C�8��&)u��������Q%.��
=y$K�G���@0�u�G����<�}�����yo��L�����Uhx����?�ijTA>��V��3��z�c��*����lo�N3�������I���h��<��L?����"L�vz7����� �A�H&���2���1���������~���t~T�8�p�������y|����������Qn�]�����_��Q�%��>G[&��\@���z}���6��g���T!1LR<��'=�i��������p4T�S���32�a~L�('K�T�sS6�,)�b��H},)�"�4���I���"������I�(/�W.�JHPR<�5�uY��j�i��V`�a��_�	�
������|�H{�R�~)���	��Nx����3�2��^����>�8/�m���G�8!���D�#�����_�{��J6?JD�u;�s�x�K���Y6��'����
<��P�`k��G
j���3Xd������<���T�(�Kj�]��'�l~��$���CIi�/�x��I�����4�	
w%��I�G�Q���^�s$}l���1�`��|z6�-)�}!��p~���l~���a/m$\��x�w�BO����G��O�o���Nx��o��C�{��������<3��Bj�)o��$�������Oz��a=�/)��-�B8�oH����Yi�#g��j�M��_^��%������I`�6��f�
�Y�#�"~��Qu�Z���4~���f_����_W<J"�p^A$u�T6��8[b�L��I�(�Q[�����
?
���w%���QO>�?���M�a�~^�}���:��Q��Z��Qr7(%k�8s)�����!�
�8�/,v��Q�\�n(�H�G�������l_��u�`8L�.)%CR`�� c�N�Z�i�s��A���~T���e��i��x�rU���).Tk/)]"����T�?]�KlI�������
p�{����oy��W*?*5�����@'<*��uXtfyC��T�����B}��\��u��p�3���@���Ns-�Xfum�U�)S-��=�o�$���Z+�{�f��+��B�0�l>.�.����v����?�~�z���������������\<\]�\�}������q�/���?|������a�����u�t������������=��n���_��O��z{��������w�����OO���>w����>�^�a�~����������
�OG��"�:�������������(����E_�������o������gMO��^���aG"�������������n��x���/�{w/����/I�=W�����]?~�z������w����_��������0^����/���?���^���n�4�n�<���g'�������l�]+K�9_z���������<=<^��<�����������<��1n�?������}�������p��b���8��]^==�~�����|���q@��/���|�����Q����O��k?W_��}��?���w��_?<^�#>�����{w����0������O�]�}F�����;�w��v�����������������Gu������>}�8���Z�'�(�#���?�� P��E�k��b�L�'��	��<!��|{�2�'4:�������)�M������������pS<:�]���J�z��*��~E��K�Y.����Z=-���M��4��=��{��}�s�?�������/(�����HR�
bk�7g��\I�=]FP�`�=�z�!����m
5=��)%4�Y��#b�HF�+#4����8���l�����o�)<�����:?���H�I�����#R�����o!6uQoa;
,��-��L��d�%���G�z'l&��-d������+�^r�Gx��Fb�
����64#�[�3U�})����,�t/x��$���f�����g��N4��!g?�5��Zg�P���!&���vQ2�T�&��	�8#���*`�<�
�c%����ZgB��s$=���a]<�,�j�=z���M���-j�Cq���	k�	��xW�o�:=z-�)�IM�u�q-��KLK���{�xn*��:K����I��0{I
 �L�E���Z�-ga,�M��N$�P�=��]�#"��d]���L��|��*��Qf�j������O�Y����.��:Yo��C�t.�AY9��)E-����P��u^Y�%��H�d��m�j�
�b�������d��j��3;�fDI1Y����y^�N��lu��C �`�d��^����$3�Z�D4��H��w���/O	�S�-b|��J�������%��HY�s��gO*I2����8>�&��ZW��N==�dY��6h;u�LBi�����P��tJ��h���4
nK?���1������3w��-'�����=����n�' =��y>o�"`������n�uX������y�?!�tS�Zv��
�N=���-���_�r�����7;YN�p�l��1-E|���t����j7{s(�Mo�4���<���b<���3����a��;���-��
H/�GT\���{�o&.��E��.�v���Q6(�B�wLY������Q����]@��5�U��Z�� �����t�R�v���?�i���8���a�)h�|���E�#Da����!O�i$*d^S�����P1/����(F`�]���%5��x7���[N����y�G���G��?���1�[�r��S�L�[�����'��b\�D���k���IFr+�����iE�3[��/�Yu"V�w�6Z�T��<�N�4.av������h��<�G���f�W���O�j��!��F�"�����9�I���75�����sB�X��Q+�]rL
�+{���a�Xe�+{�A����a�X��M�{�5wP���DM�{��[�����(�xE��8�������G
�X0Q��a���R�`�@\�7��(�?����9^�� [���S5Q�*<�80h�������:�kx�+��yA��xE�Z��/�
aNy�����������	�����<C��\�G�k�}���$�Z5dn�D�>X��#�6��q��1co���L��}0;�;da<		��I�=T�=H4�Nj5�ud�0�����b>$_� �`�}�*����R��,�A3�9��`���?E������������
*���n�F
[*���+}-E��Vj�B0�[P�������so��P'&@����X�����D�t������\����(�|��t�N����Q�K��[�&2cP���E�L>]Y���co��y	�-C�}2���k��O�R����Ff
,��XK���C-a�P{��z2V�G&Y|���7�fk�NY�a�M�k�q���W��[��pG�����7�� �m��8A��HJ�^��~`�pnA	�(_zU�C�k��;0j��U��������=���'��ll#�_P%�����3���7����p�%�%������(���,�T��_&*4����b��8��W����D{P�LC��I�9eoJ��_8��)M{co��

>�4�zeo�G 
���:�M�!�?w�Q�����'[.>���M���y���^�����T�_��0�����8�>�R����bz��{��nL���,�>��)Y��#����7� �'�Z�����z�������v~�������]���Dkoj���T(T%$�Z���0z\��2�2�3g��g���/��	����e�
G"�z{���<<����T�Q���b��%��NNe��x p�W5��VU����xU��L��I��X{U�1 s{��c�H��v:�V��z`9����[�e@=�2TM4�qr�L��JU

���"���!����L�x�dQ5��H��C�����-�j�C*�����VTMtH��B<L�',cQ<�_�8�
9]TM���\�=�M
U�RP��a.��CUo3N�[��I�@TMtHO��B�@�D�D�4P$-�#�	��j��	�D�_w$^��Rp���=�b���h����
�����xT�=<�D�����(�JT��;��Qbj���<��ho;/�G��@=��=�-E�D��&E��������"�u:�|���f��>p�$��nW\�	��^�HmKTM�����1*	�Q<��Awi~�s����[��3���&��vy��P�i?���r
�� �p$U�;	u�E��t�]�Y�Yw��%�&Z��e��<����Q%:������*�IP;-��lG�D�����"9����(U�@�"g|��&ZJ��-����E�D�HSe~�9����C������=G�xD�DK��0CM���NkY�m#1���hm��a�S��n�|E����p����3t�]�
�X��[*�+UM��)�w/����y���������~K��hP�P�u����h
3�<��[�vU<���1j��[NvZ�@2��[K)Uk���bm�����g��X���&��%�,`���Nf�=���3�����63p|%�����k����Q-"N������(��`���z�1�/�G������>�j��9N���:��V<�
�����L�@�jA@�m�)�J2;E�}a#�OQ<�����]S��j�_���3�TI6;
������xT����sG**y������8����Q-�t*�u;d��E��B����Qm���C=��T��i��A�����(*��2S�/�I���
(�{Pjc:2���g��{��/TT���
���-��_��|�D�hQT�H�@�a�����h�����0�(F�K��Mo��eB�EOfYVC1*T�
�F���+����L��.�U���o�mf9����p����`9/J�*c����1.�� ub�A�(����!�E��E�q"}�b�������F��jvZ�)`k��\���������!EE�j���A���C��<����J��c�y�4�(/����N7���(1���	5!}���(�M�} ���}�F����{X��5nT(�DH�-&�a�(A~��L�C���_zG����sJ����4�)��d��6���P2�>8�>g$�f�oI�s0~T\xZ8E��/��Q�B��g��`�{�G�1�z�I|������2����j+'���Q�Y�����'�G��0��|a�xvP~���O'k �G���a��c����:���/�����^�y��FD����z&���{DO�a�i���l�JPi�2���n@A��D�T[����{�>���7_�����d����������?���g'9M0~Tup^��b�a���j�xy��L���
�#W�Az��M���vt#{+v�/\@Xz�����l�0���a3�n��+�3��?8�*�C/��Ic�%>�i��G���)���NUi����b3�x���'�h�������#��V�������L�b6f����$6!/(�%���0��^[4�R%2�]i����/��mL�(=��"w��c�����g���GU��a`�9�����c #�� 	IzX���F���/�Y%�I0������ju�����Q���]���`��1x�s(���E��+�Q8EMHm<��^���|�7
�x�Rp=�~!u�`�����c���4~T)���x����Lg�#����?(?J���2�R�G��c�mb�~P���P��X*�Zp��v���,�t��t��Wk���tJP<�����}�lo-�oh���W��k��f�v�1(�\�{���6T��:��5e���J|MP���L����kc�4�����)���s�&HOMP<��?��`vj��g����#��!ox�w�>*�1���:�l��Q�l��!g���4�1�����z0��vu��A��p�n�,4��
��(?�����+J|�M�[�`q���!?�_'8��m������0���!� �t�����%�������������^4��4^W~���+�)���]�G���P��`�A�Q=L�	�8�7�����\��<�LY:(?�-�`�������S�u�"��*?���kXOf�T�Q>6�X�c��b������:��e��v:T(�=�'3;��O���qab��Gy���k�d=��Giy��cw���z��1L@���a���S��/�pg�����-��l=�����(�w�[�+�����0�4
���i�g8���<�NA>2�?������
���6��hz}
1��*��EgvZ�}y��Gg��G���d�V�3�~O�g��c��L�� ��6�j}Q�Q����4��3��eMQk������|��?�����)r��)��������@��@����(Ia���@�����*������%#�<;}���D�Gy_���|���RT~����=r����?-K<�����?���
����Q�Q�/;��G.1������`=�G�G�����16dC�Q�d���/���%�+z�;*?J*�8W��������>���b�����@r����Q����B��f�
u�j�����?*%%"gk[$����
	�K�>6!��Q�]P�p O��Q�Qq�S�u7�X�Ec�sy�O�5.QW�l���#��=�){��NC,�XS"v��(m�gc�B��Q�(I�N
��;�G�AO�'|&�&�G�G�������}��t����/��u�G
#C�:�n�3���8&k������Q�Q=k�X�4�Bb����BL�g��-���
��*��,�V<*.<���_���"�
��m~L�QiH��k
uG���QR2��d��c�a��+�)L(�Ds'*?j$c�u��q��Q�
r����i�E���(5�u���`����O�.p$H7*?��z�}�������9O�`�����Qi��,��e������8�'^cT~T����:��AT<*���v^�5��p����i�E�G�X!)KyR����
��+���M������w����G������;��G���G�x�������|��g���c�G�!3������xT��x���F��Rnhc	�������f���\9��G��R�#�!���)����Cq�}cq��Q�V����gvg+�z���po����Dn�o�����Ju�XS68�^_.��LX�@����d�_��*U`h��"���6��Gu��P�q��*Uu3��,�W<�TXt.���j*���z�-,.T<���K�Y.�xTO	AK-�U`���QG�(�^��e=����b���u�N�xTM��F�D ��Q����Bl������:]�eo'z���g��D���p����xTr�!�a:WQ��6������Xy�����c�3h��#*�$5�x�N
;��G�TK�tYHoOl�������?*��������j0N��}a�dU��ewC��UAj[I��:���3�'��>��Q-,"�Q� )��<��}9���3�N�����:LR<�.u���B���xTs����M�+�
����B��'����qAG`����3;]u7���mR<�-u�E�����Q-��<h��Q��G���Az���Q�a�zv�z0_R<�f�
D���n&������;��t{B����-��������{?)�F�M���a��j=���u;��)���F���xT�	�D��$f���s$�N�G��{���0�!��xTs8m��ZNR<�5�9f��]�[����a=k�o+)���(�Sb:I��:����@�NbR<�������%()����sx��}Q<������t�����$���[4���.�%)�Fo ����%��Zj�B����a:h8���H�I���"�K������xT+�O��s�JzzS�{_���4;���W�~���������~�3X<��G��-� J��W�}8/���%����G���j��������t�"�����C��G������u���������#���NW
D��H7�^_q�+�Q�����S�Q�h�[L�o@���?%5�dz}u�W�`���T�e��7z}��?�Z{F2��>j�4R<��6�r������^_rcK����L��,5%�-	G3�^_�?Z���^��O9�I&�^_^�:��� �^_��PH�#e���w�w������6����e�����J��dz}
q�%�e����U��}��	^��ju��u	�A�T�������1���/����J�Y['u��x�q������
e�OQ��:��&����q�}��)9������2?{��Ca����=�^n��r�{�^A�
����	��&�Cj�I��R�u�G�0�����$���c&������J���0�N�*a5G��;j��sk��/������C&�ER���;���0?���F�'����l=�Nk@]�B��������M<�h"�z}e�i>/��!\��z}%,U�������+���.}�d_L�|����f
�fv�}��$=����&�1��1]��z}���y�1�/��W���
����T������"�T�/�gn�u�3������#� ��!�T���+	������+5�<p�fn�����������n��������������~}�{|��x������������w��w���O�����������.�YwO������������c��6��������������}��m~�p����t���q7�����ev���������������t�L�1-n�w��s���������?�����������m�����|'����zY���F=���������fwuw�Y�����{6����E�����������������������/~�����_��������0^����/���?���^�+��?�b�b�\r:�<�?;/nt����JLRv=�����v��������xy���p�w������>>�����������/��m��{�s���������D�vy��t�����?�q�?���������q�;�o��i���?����$\}�?�a��~�������~��x����������������g�^?<?ywy�i�m�����\�}�����o���77����?��}���?����a��_.������	^B����gFL���	���2�A��gZ�~��������?�}D�}�w9�<!�Y�;
���K�!�����/�#��$9���D��/�tw>�����#"�L.�G��) }�S���������;Z�k�FMq��2��^}��
-��6?�L�X��k�Pi��s������S�K�D=|���=��y�%L���<(�}�"s\��QI�MA� ��b�@��l��i�������~��%��G�YR�S��2���.S�����
&~0���x�s��iA��f��u�i��J-��f�:i�	�
V��<M�|hc"b9N�|s6g��3�]m ���P�
��5dP��*��%$��)dS�:��=��D6�O����X�������U�<T�#�~������oI�L5Ik�y���2`�e*IZ���l(c�$��v�����dGN�{86��1�XR8f��"Q30-bM�J�{���#�;f���LA��:d�CQTr�i����`G�&�����wH�����*DO�2e�1�Ok�<+gZ�Aa��7�/���i�>dM�h�z���
�����V��N��#E�
�T|��E��5,���0�y�3��8)�u��>�����HzR�xE��z�NgDO*D�L�K�Gk��o�I�&>:�fS����Cp&������9���j#�31�Q�L������'�g��#�o��mv��C����8��������x���JUG���^�@ET�Tt��%��\�Y��$�G���@x<Y��G���&��*����_��A�*8Z��?�r2bV�����E0��7{�(�������w5b��L�!]:�����V@�
���w-,�n��R6���:�y�����&_8@����@z_��`+	�G��Qg���)��J�T�_i�0���f��#���ib
�7� @��D�����&�;�Z�h�(�^��R=w-�!n&�9T8/�vH��=-EQ_`!Bt����h`�6{�������]BoU6g�rT[��D���u.��pS	�D��V�nr-+t�rX�xIS��Z*��<U��.gh�m(6@*���t�A�pC-
��U����e��n����hD�VP�u�0Q�A�8+���T�p:��������m4C�L`�P�~��������������uz��:I|��MP������������h�3�r&[���9`���!=^��.���N���^��nH5���M���|�6���9�����7����B�/�+���jg��x�o���EBR���M7�}f�E��C���M7z������+��h>5��2S���l���z�oz�G�E|�/�':�2�����W��O�\�_F��7=����oQ=�1�����H��W�����]f�}Q;M��9��@z���7]D���O4J��7��4����P����%��/&��������?>��R�����c^W=��j���|��a}�^��~��_t�It����
�eN��z�o7Z;�������i���p7P�W��~\���B���v���t��{@J��q��M7�y�3�6����e>�S�6��e���G�z����i��@
p�-6?�ax�����m�]E�E����
�;����F�}��M?F1�]���/��(�Q�\ ���M�P3s������jN��K�}Q���s0�4*�G��@��@��|�{u_�{������C�i�Sl/ ��^��~P9��� H�W��+����v�z��xD;�y$���������S[W�f�D�Ng3�|����pIdk��MA-r�X�,�+���[bjJz���7eH%��>�jY;��7%!�B<F���7�8��*��L{�+���r7��0r����:K	zPX���7e���58��_���)C��[r���)�-����}��Ge�/��A��oJBNl���t��7���\���M����A~���+3��n��@����W������3PO��b���=�4�;J��a�AA�z����.��)c�u8��"���7G���Q�����7���Z�;��
�������xV�S=Q�	��d��X�z��*�.v�o��a��-�[��W�UOT2j�-s�}�������#��s#?�_�	J�UOT2�
�o�~]�DGE�9�a���W�)�E;�y����'+��,����B��e��Fq�-��<�mg�s�un���w���0�:�g����y_�.���UO4dA[�X;��RQ�X��T�����P*
s�l�${�8T�f-a�U��UOt��s��j��DI�����\f���� u������Y�+s����YMZ�D�%���������Q������%;��'�2+��17U<*6|�|xOf����&��K�6=aM��G��u��P��u������mv���Q<*��(�Z�.���h�	��
j���u��r������z�������3�:��J9�����<�W.�G�e�t:�"���`��y=P����QY*�#�m���(�3�t��1�c�xTn8���R#
�xT�I��+��B����Q�/�bp78�#��Q%a�<k��oak�u=P��8�9S<*W�#_o >Y�*9�n6�./_�*#d��c������Qeh=��<��d^�(U���0'�E&1�(UW
������QuhM��f?���3T�v��=@��`|�xT���������Qu��]����(���������X��4��~�(ulj?��^��(��[���3��9���G�Z �C[vG)UC@]B�_�\Q<��8���6M��������D����������1����p�����o���#+���)������4�F����,g�������z�!A���b���hC��Z��	(�'qN��)x�*U�z�������h[���Yo��<[LOt9��6;�C���\��{�4���D�Ogm��<MO�/!���<��(�G���X-�,�':��`c��	�/�'Z�eX�A���D�e���������':����g�}1=�A�����i����6����4��������cjp�	�P����/D��P_��D���y�xR_��`�>�n`q�������=���/����{�R�j���t�g�>A\�6��1�SBB�����o�O
�?p�,��D�O�&h���C�4��O�}h���e�b($�9�������`���}&uK1
�
9�	*
��gX�������'H�TIP=�E�������*�?�����H�U"
����A������O���\�`c�[b���8��aO[Sm�#��3�h,����P9��_(�(�
I��[Kd��(������q���P�����Y-G�P���3WY��Q�m�������hs
�s�w4F�%j����/@'��a��5����u�j��&�AY�P��.�Zd���mf��J��b�����}!�w�|N�Q��!�gIl^�������X���� Wx��%g�'�/{���9�	r����>C�4�,���C�}1z���/�=W�PTO�����YL��`�()���^�L�#8�S��Z������{?/�e������0����2��z����R���v
��8��+I�
a��B\���q��3�Au��1.�B2~TYz���D�
��Q.�3�����o}��z�>#k��N1.D�[bk�x�+K���9#v��zuH�T�M'ye�F5]��Ay,�s����x�CM:����GE���a>H�(q�"�\	�;o�~�7�9�c�V����W��Lj��QgZ#7��!��^
���$,����|���7��Cq;b��G��pW
��$�
�G�J��A��`|A�(7R;��!!�P��Q�'�y'����c��YN��>���G-|�������,|$���0~�����gs�����L�b:v�+u�4��xg����Np^h��_H^��p6]����r��Q~P.��G���=��O�����)�3�� ������Q"y%.�{�?���<�7'�Ks1��l_��	�F�&���G���g���`�(�p� W�D�,?J�o�5e��`�(�������n0~T�~`����U[D������5Z0�5Gvg?J������4Y��G^�s��qC2�I�^���>�j�dv�����I-'?j�hb����G�\O~���b\�����-��55_B^4��V�U2��G���}�G��_��-�S��\?�iF<�/�Gy'�(z����B^#�B���5���gb)���l<�6�k���A�Q���X����b!o�}8��O3��U_�Y}5U�y1~��h�����l]�Q��+����	����� ���6������b1��Q������?�=��0�������f���7�k�G-�J�S��l�Q�;�
��-j���M�`j����u��-�g@����|�p���xtM�NG�1K��`� �G9��\�L$���<������n��v-�L�	<oP~�D��#(2���0Z�g
�<��
������+��H�Q�V?����Pbu�Ge���>�q���|A�	�����~�
1�'
�A�Q����E�C����9g����G�V�>j���+(�|�4���{N�Qa����)����A�QC�� ��}����P5"XNh�����g�7���5$|�c>��<C���x�3h���XT~T��@Nm=
��������5%�~T~TH��C@�1�-AmL0nu ���������L|atf�8K�����Q���P5���bcQ�Q2�����~�-�Ok�8c~6�@��!�z��F���xT?0���D�(*?j�E^4��"��xT��+�c���7;Mx����5U<*��>�yI>�#����rWF���G
3�o?��G
�;�
��"9rT~Tw�WOs?n#}JQ�Q)��@�'�)E����J��y�/*GK��3&�/}f��G��iaL�&���e����h&G�4Z0�)���t�S������L���C��A��4���}�~��
SC�!���*����������:4D@�sur�l��2��C���[��Tb��u���2������������/�}��b��v���x��,v��O?���.���n������9���Ep
��H��h#��)��BN	�
��/N�0�1��F~�e �dw�N�j��v������Js����$��E���$���s��(�� (k�L�`��N�jC:���y6�c����������6���Et����i�R����������8��m�,\
�_2���q���o u�����o���������P�a�}�f�9�y�X���QgB�Q_g��
���P-	�I/�r�6S�����F?�c�ZX��&�s�s�J���T�7�`��p^��s�����������~��r������
=Ft&��������%`Zl�c4~T��;-�@��c6�I�����[��� ������|�1)��Dzz���F�8�PS"��h����iYpn�/���*rF����fFT��[�g��������AnZ��p�5�'�}�YUD�6?*-���6���5����H0�����Z*���V�e���r�>A_;
�h�(�����g���YQ�`���D�G�����$�[�6-��#����zl�Q��;���O:*�����{������a��<�Bx��&F��~:��Xm<����g�}�Y�!��5�J����Q���~K��"�����������%�M���j]�(�6�Y=��Fy�w@^A`y��Qn�C2j��g�?����`�M�����5�m�z�#�zE��m�%�\�����t�����lom��D��by���<gw�@�5��(�:F�?"��H��Z'm:�-_��d��J���~��l~�K�\0���3����"��s5������%n��E�������<�R������U+��@�,�g����p�`(-����Q�-sy@������8P�9���Q
��ZB�����Q��G����D�??��f��!�iR<�g������[��Q��3 ���^NR<���q=p�����b�����0��G���1�b{���s������I�����A� �Y%����=�p�F�'��Z\jl���C���:�e�Ca�asy�2�������Q�p��	�dT�����{�3uH��d�'�s�P��h!%�G�eN"�������\7�M?F4�����}!�[29)?���
����o���O������Qm����#�%N6?*.=��3���*?�	�<@^&��d���Zj
zH�l~Ti��m����^�@�5�N��������k��as��V��������������"�^��5z������������������pV�C�9{����|S�m5�G%�G�q��[�}�G���m['}lI�Q�:���:.�5&�G�%.\���z����&�U�eL!a�N	R�$$�P��()A�'A	!(^d"h�� 5�f����I�����AT�+IJ�rrQ@��jF�>#H$�O���@P����f��2���,K&4�4���rSR��w��H�$���)We�	���F����&�%%H�"8�d
&��� P������)���!v�%e+�f|�
r��H^YIgl_,�w
���v�
�%J�:J<K���%H�osp)X�$vj�e/�����	������L����s���T#H��I2NIc_2���w��p @r2��6��
!�$ �d\�����*A�6��������"+�a�KF��e(�gC����'����R5�iCaI,(�3W�����I!+) ���`'k�IJ��i}H�d2@*�RP�+��;) �GC�#(dkj��|��Qp�%�
HIY��x����T-�ZzBHe�b)��bA��
H��DrF�W��rR@J����"+�Ma
�������\+KQ	��X��������8,NV@�7��xni�OF�Z��3@�M��S��D���z���?].�P[;}<\�=\^=^����������v����Ow�O?���x���������������_��i��������������?������aw�ywus��{�/V��W�����������O������������}>����}�������tys�����W}������v��;��9��������0���}��wW�w����_����f8�N�e�~~�������~����]����_��v��1��x�_�-��{@y�J���������������{����/_����p��������������k��G_��������h�<�����������>�\YvN�w����G��?����xy���p�7������>�[��O����A~<|���_�>��6�_��q�~������~9��{}W�������c�����3�{�y$�������������_n�n�����/�����2�F_���d������7�<��>���]��u��m��m?��7�g������/���_�����������?���o����o����'�_�����?,������������c������=f������)��s��w��O��OO��~���i�����~������o���q�~���������������������%y|8�����_���_/.���p�J����n/��?����~���'��S|�)��_/O�?���/�w=D������~9����>~�O�������~����������tq�i�y�e��K��w��.�M�����2����=�R�G�z?>�������|���c�o��_��������M��o����}�������x�_����!������?���O~�r�����_���~�������k����O��@���|��������x����sZ��R�������������O��r���c�'�������?�������_��q���/���Y�w����o��b���_������w��+��5���
��>f���
?�s��S�SDKT��l���
R����-��8�:]�����k��1c���������/<��c��/��?f�s��������,�9�����������������������_8b��|�p|�?��t:����v�����������$�~x��?�����)~�?�������������t��}K�=��O���0��[�������	=�?�aE���q1�����G���/�������������o�����_�����7c?FB�&]]]}�3?��������������?<�R�?~���p�o��|�����#|���p������7�����#g�����ow����yx��i�������?������������������#*��O���RG
��_��'|u�������2T��2�_�X�����J�/.,2�	c{�_�7�m����H�*K��X_L�|+���$�v�BZ�:� ��.���F���D^:	��[�W�k1���B#��k�� A���Q���5�:X�@
4��(�|+���rU��Kyf�0�y�?����1�h�P+WYP?�a�4�|��s�e�a�=�~�����,s�e`5��};�<�Y�Kg���1c|^��R��y���������?F:�//��>�kq��1�����z��}��n@�~U��<��+k������ $n��0}�\����&'���S��������dLc(	�i�-���*�?�
K������d�j_���Q��)Lp�/���8�M}���������8����X�Yi�PQ���p����g+�u�<�^@S��(��g,[����e�)K
���9{�
]�J��yQ)�2��YpW�c����+��s�GX����O�
����p�e��3����-Qs#��ld���@�C3�O�1�7�@���;8I8'(����G��'�Q��H������J����"���IJ�������Id��2�zdQ�"�*�c�q�r
�S�	HD��vR�W���:7N%u����o��H(���xv9-�)�i�b��v�c\�"`�1+�[1������x��B�����~�3�����=[gb�+{'z��Yg��.@/5�d���;=��k�'�R��L[	��1���@�=����C�o�N��1��������{�h?*h��SpXM�=�OF��������.�vbN��y��Mx�N5cT
/P�`	�m�Gm�,]h71�Z&1
�[������ZO<#E�L9��Qd�.YP����Pq	�����?��}�kaY��G�a�Nb��SL��BHV'����2o�N/Tz�OAr��9������=1P�<�/���|��x~E7R���<���GS9nKlj��3�|z��SF�Q{c���NA�7>�##�� 4�����|U���Gm��2������:��@���]��{��	@�w"\������ell\���J�C�/b
�@F��(�dS�x�X���,��B�q�F�%� �{\��!�.��h=���8>%�j��-:^�@�)�]#��CT�"����������}R�D��dE?��v!:/og?�;O*�FQ�z��O�������o.�L�#}����f��E|����$����o?��M���3������=�R/��w�yz�G��]�����^AG�����i�����*)l�,�Q��u2�~J���_Y5q��8�j)�KN��zg.����!��
�3����'�����+�3mF��$e�����@HcL�:����H���������q�y��P���f�C.9\��s����t��U��������xK�����q���A�Q���(C�3}��z��P6����3gR�u��vZ�h",�gR���$Y�8�`v:��} ���8�'��s����S~}J�-Mq�}Wk�?}b�^|!5�kk���$R�daF-��F������a�i#� j�Y�Lz�#u����	����c�jD
T��N�#%�j��D�Ao��>�u��$��zIG��Oy���T��������M�-�`�HK"l��I�g��q��S�������|�5�z��;A�(������(�������/��`"�����R���v��o;����K(zt��Z>������h���z��)H���I-_�)%SE��Oj��y^H)�~Ry���,&�5�w1������QQ���[�{��������=0�"O�Q&u� 1<�ez���#n�[�A���ic<�(�$u����e��rTH�����
�a�����La��IEO�O&�Z7z6�N����L�v�WPV����D��<b��N&�H���xUa�S�x�0Wy` �������c�s�(���7&�G��F�yTb��<\���3T��1y��I�trT��1yx�1�PfC���I-�)�IS����<\hD������L�J���$�N��Lh{=CK������)�/xnEg���,|����R��sO�W�QdoL�42��ua��#{� ���9&�<E�:���5&�#K%#Q"��8���#:R�������G����+�0��#)��/4&?�u/J�GQ���Z~H�#�A�J}���1f��������Z���f�������=�&�$�c2y�i=��1�����u�y|����N&�RIAL�KA��'�G�$1)���������\Z#(?fLa��V���=�aL�g%!�0*��L.��*Q.H�����sB�]�����������>�<[�E��"���4Q���k�~�����$���{���S���.W����qX
�����K�����Q�����}�;r*A�,���H�1Ld]Ja��+�����2Lj��?�:Y�`R�n��a?0�$F����R��PSjB�#�i��1b5�L�x����E*d�mg|����9ap�N�v70�1��[%2dF��)��������T�!�i��y}�BX��l���������"�R��.%�-�Q��A�u�%.
,Q����{�/aT�?��\ u�;[������[�	;�f=�`R��nL����ok��GD�13����Tf�c����V� ��C�u������5j�#�A�A��$���Q��F?�(�,���Q�����.^F-�=�����E�.�i�>0�D-G���Q��N[��`�F-K"��[��l���R.�r\�G�v�H����b���t�������Pw�Q�}�������d��r1��3j�0|a]�-�B��f�1�������7�Z>��x��� �@����F�@>�qR����9P����c�=b/r�`��q(�6������Q�����i�m�:n0j�C��E����s?j���&S,l��Qq(��~=������t�O�f�s�Q�'������|�y�o�2����Z?j`Rhc�u���k��e\(j!O;u�S��G�X?�X���"����N{��>��
�<�}�x��P���G%��0g �l�G��'|2k�*v�~Td��sT0fec��J�>�b,��~v�~T���X���(��������}�~T�vZ���b>:X?*�������
�j�~Tq���Y8'j���Q���*f�����Y>��<��-c~�Ge�QO���P����Q�0�5����9�Z?����������%�G���SX?*WJ�U�IC`v��7T���N�UF�~[�AN����O��������Q�t��+f7d�o�����:[��o�T�m��:����j?�����3W�{u��u�0�K�/T��l�G���|[���|�>�9��:n�~T�u9se���:���G�#�Y��,1����<�i�T�B@�X�k<�i����
N�s��z�������;��Qu�K.���.f�OW�������X?�����v���o��6D��]��m����z�B�	���j��S��9�NS�?-��N���u<m3N����j��Ve�s3���in�S�bN`)��������R{Z�0�/�E�X��Q�y�3�?�y��N=�/}u/l,Z?�{���P��^�+�����������h���Z�~d�9A����V����J7Z?�?A����OV��m
��W���~�X��N{l�A>Y�(F�G�1��/>�b��~T������N��������W��.U�z�~T�+�����x��Q�JP8/�_DM)Z?��6��VPkD�S�J��N}[�G=bW���<J���������s�uO���~T����u�(�=6[�i�~TK�K�Y��2Z?�E�;b�D�0w~���������Q=p��F"�y�s�����7�0���A�'jl��Q�W����;����s�����Z�~T����{]����`fY���b��4�����/�~T��.w���F�G�}rd�-���Q=E��s�����c����w���&�*��������zb?���D=(Z?���y�o{*���Q��J_��P������+���:��_����}�o����io<s�~��h���)
^�j�-�o���#Q<c\��hv: 9��_D����y�������Q����8/�'��G��_</��:M;��9<������:l���J�|�������O|����Oc��XST��l�3��j�J�G���g/s[^�*F�G��v�s���p�~T/G��/~�[?�����9e������9!�����Q�����,�=���{��Q�X�q��x��Q�o��[����X��N�vn�+g��Q�~���Q�u�Xf|��/�K�^t,��O��o����E�G�+����~C,����>�
*��~T�[��=}�h���]���~T�G��~�]�y\/z���Q=�-�����2�t�c���n�3�������n��6z��1���b��~�#w��\]�9�GwT�_Gl)0���Q}Sf\��t�������zP��a��W�����:�������Q����Z&���q2�zv�3.�����6��.�-G�Q<���zfo~��*.l�N��dX?��RH����=��?�[�_�j�m�S�����c���K���8Y�oc�vZ���:������"��q��������3��L��7D�G�%��s���>�(��r E����O^������v"c��������r�|��}�Y���S�9U����nu:~���}���Wg^�����J������X���gXY�T>(�~���K��E-8��Ge�
�Gu1������U^������KE�;��A:�G�B���HJg�����t��4�Qi���	;M��z��n��>���I��wDf��KK|����9&��+.�*P�\(�'���ckV�HTQ�M���S�B&��x���e�~AO��~T2��T:���n���O��W292=����a�����=�t]��Zp2��RR�&UhD�"__	��
��9~�X���7.$���,��d|}����+	.�d|}5�����:��d|}�y��oS�Q�u��Wj���<LQ�%��Wz [1�ac2�>���zI�M����Xm��,p|���j"�$�����L��Ws����<���j"'�#���������<�/�Q������_�>��.b�4���&J��&��4��g�A�OQNq�i������l��+��f*H��3�'��e�Rw�������A�S��{���]�w!�����j����wP:=S��'o{un���d	��(b�8M�6��A���Wz���E�"M�H4�Y�,������'����Fu���?�x��l���Oa�8��������;�|�b�?__iu���='j�i�A���~�"WO&���r�lyv�zP�F�`�i�� T����&�~1��v���q3$��j���:�lQSJ�	�F\��
��d�P5o�-8�d�q�
U�?�!���i�B�F[GS�y1]�����y#0i
C��s,����20EaS7�����4T������J��*m���]��F��Pm���ZP����Z������S����=U���>�l�[���L �������I������5 �}�DT�|��T�;5���z^[�\�D�ZZ�c�x��9T�1U��C�,>��1��:���G	���NT%���"'��a�PT�8�)��dJQ�)�\����������
���������BOI��'����\�����u:S�*����\���E�������t5��I�/$~_� ���'g���_L1���6}�sj?�N��gA?�DBM3��^h��a�2��R�y�qG����������Y|vV5z�������y�������f%�{&��-������Jd�L��.f{R�v�i��j��&j��U\i�G���/�)	M��Q��N��Q��i�G
�:�-�C�����Mw<FJg$O��c�s >���f��"������f��S���.��<����D�p�7��5�.�)����?m��z��M?��������K6�����w�5������c��Z��'g�GuWy^��'z�y�G������H���rn���{�{d�G��B��#��I�����~��A\(r�<�Q�����w�N�Y��I�2�S�����4�*�`�sX���(�������jCWy%��������gS����5����v�N�����������m������Y���.r�<��"�l
p*>�f]j�/�}r��<��v]/�)���u���l�z��Q�gb�+�I����Ur�~`�J�~e�G9w�Q���D�1��GwT����vK��Q�56G�Q�g�G9W�����>�~T�tw=� a��r�>��su�<��b�l.5��:���r
�r"��b�8[?��N�C�<�W�����(���9�N�z�S�l�l6|�������J�w��Q.��yvQv�f|����u�\�������g7�}��~�PwF|�\]�1���<
�p�����G�k���[��v���������G�����5r*v�~T��^#�	E�6��G7��������1�O�����z<������c��5��Vw��G
�c��Q?��l��^7J�DuW����O�9���y�7�����VI�~T�:�vW�1u#�s�{?�zP.���kl:Ej�3=�M��1�x�G�V�}S1���~T!J'���F)u�?��'�0��Q.��+����e��>����V� �G�����W����r�|�>�,\6|�J��� ����3���YZ�*���<���
�-E'>��1tp�cO�3|�������*G�3���5�5'T��l�(w$�9C�O�������+/�sI>��I�����w�G�M���'�l����q�RKO�?f?�IJ������S?*���zIA�Z�3���X}B����~T%���>Q��6��M7�s�A|�GQ ���5ug>�a�o��P35��QnP�wC�\����7�{����9�N1�k���2���H=4��+�c�Gub�;����'>���28��;���z|����V����|K���
W5X�G�N�A�L��������b���/��$�����
�\7�������G��{8/?G1|T�|�����z����|����������7?�~z����O_~�r���'��o�|~{��������}�t�������������������������|���������no��k���>����~��_?^�������������<�~���z<��k�>�/0��������?���cn�=r��C:�;O���������
������I7wo����~s�����V"����uE������}���pz��������~yX���|s|���G&�������>�����$���o�����7������9���/����~����?���?����k~�FS:�v������O����>
���|r�zW�pr����������|�x�;���?���^X��e����_�����z|���|9������x.���o�|�xuu����|���>����?~��t������N��'�������������O7�Ow�N7�������xw�px��O?��v��~�������V>]��~���_��\�}��������?�|�ps�������K���������:�?�Eh!��d��*/�|d����i�#e^9�2�~����a�o��im��!?w�������)�pP?���5�R������;���:$�`�}9���c�,�K��l�&�[�"3_�:����s�Ga���,x���82��I���h����k�2"5<V����E=��!�2
���`r�u,���)� y	�i���v ^#��Q�'E��lj�&/�<$q�uJ5���}�e�����-�)���
��������H�I�H����/RQ��K��4�z��(��I4���V������Sz)s����R�Hm�'.�0-���i������u����W����.���j0p%�b(��"E�t�
[�Q�[����j��(�p�|�R�y	�����+�1���0QH���G�:�'��Ey!(6q�C��"V6������F��cEE���dLg���D|2A�y���x4�oq���@�l���w��z�K�h;O�� �.��"+6�>?��vR�V������u/�;��������p�N������Y�{Q2d�}]%i?��>/�6��v��Yg����N	�/��� jY�Q �rh��%���s��x�"���
{`v�	������
QX�>��.l�����UM�'���.g��|�<fw������8e��`������������:�)o3�0�9�z�"���X~�q���0��E&0��>8l'GPhb{���wLb��F)^���#?6Iq�
Wb�"\N����N�S��z�	�+����<�H�|T���EJ=�o�Q�d�{�W4
�[��~a��]�����	�)�~C���=��*��O1������fy;
�[���@���ep���Q2fE����m��d�x�:���~V��*����-��`%���Ay�@��v�P4�A������+Y�B\'��Z���L �;	 M�8�/c��~K�p�H��6n�����q�oc���@�G�C�RHU�������G=��&����S��&�78N}����m��<f��E�
�[�T�2���9��n�*�������!p<k|/��3�.+�xF�D'v�g�M:g_v9�mu����2^��>'�+�
��	����p|wK���q���(b����"��ps4:���D�PA��"I���	�L�N��
���4��C�HJ��c�	�mx�oTe�	���oe,*���C�sp
�f��%]��x�>
V����������0R5�������^�Y,����O����[��&� ���I����A�'hwp)�C�"�F"�[H��zT�v�v�C��1V�1A�cPk���Z���Q�0���<{?Af��23�(o����E�xU����{T;�i6$����D�kBm��?���S�
Y��IJ���	����*�q[7QC�	��n(o��n��b�C�����s���P�'h�nw��~��2A�>�FC��,_}�C��s�������s���,J,
l�'hw��a���{?NPD
#l	�x5tCCsT2:Vv:A�-CT���A$,�D
��8����
����:����S��D
����D�jvr����w0�N�9��?�sA�q^X�~�D
�l��`�����|�)29?A�u%�y�!Z��D
������KR����z)TzI���{�+�5��L����j�����+��1��Ds������$��7QC?45�����k���AT��1�	�hF{5�mm���^�B��Xi�� )��7QC�("LpFR#0&j������Q�@&j�[��!��X�M���.|�A*�3Q���x}<�}�����7tEd<f��G&��@�]����a(	we���E��M�0���z�����L;�����E���	��������S5<�]L	��9o��0�C�����b��0��+HyCU-o���3�m#�{5<nS$5�����7�nb��yi��A���v��A/b�
�3��d��:�����������u>q^��p1���y����^}@�E�{��v��^my�h�u�i��h�;�=��9@��C�i9�pq
�h��	�-F1D��h7���?�����vc��6�����az��;_w�S6f��G�\Y�(��\�@���V�}��A�h��v��V;����=5�n��o��Cj
���!����]�N3��/�q�@�13Nn��T�9�NC��S�r�;�@��E�[������vc����@y���C����@��S��F�mC�-�9�&G�<�/Q�
���G�P!P� �h7�a�
�� �:��v����Jq�����+��Pv��>�i�*��_�1|����v�]lx��A��������xAbL�0wTMP>��a��N�����7Q����{}��5,cF�A�����`��y�P�{���)\D1�� ����9�0Q�2j�}����=}���2������=��$o��=��<��Ri�C�8/��3�l)�����N��7;}�uO�h��z��#���G���7x���T�tN��s?*UV��;Z��
Qx�G����RDG�o�4F��dW�R��?e��9@�D����A�/�1�.���'�G-�a��>����A$�W�q�G�z���`KA����:�3�`~+�����SZ��}
�[v����~��}g�(�}I���G�������Z��Z?*�;
v��"ml���X��T!��Y��J�������]�}�0��^c�~T����8Y������g|��^c�����Q1D��@�D?;X?j0�_��f����7�R���Ix�Gg�1N.���g�~T�)�� �R1����g���F�D��UB����E��B��i�</$�{���J����x^�s��H�SA��D
6X?�����W�����`��Y���WqP��i�O�p��_�U��c<&��!������~i�vZ=���7}���������1G������G�u:�bI�N�5,������4��O� ,M�[0�S���$,s�0OG�OQ2���;�@O�W�5ORaS�0s>�STH����=�":R>�pO9Q4���M�P�>
�%��I�*�c"���-����'�A�(�yE,e����r�H������m9Y,z���O�G� `?�D(��	x�HS���\�����Ww�����Y���1��c�
A����0!P>���J��n�DF�����N7�r��jlS�p�����U�=E
�X�>)�����&��]�Ir?l�t��\�s�a"�*�<�h��U�*=m"�����0�P��~���P��D6s�?n"��
�ao(�!@a���� p����bx�2P��Y����r��>'����'"�e@5<z8E>G������&&��� ������m�X������3����^�`��Iv������pQ5nL;F3��Q5l�f�����D��B��Rw�5��waL'�K����������p����o���i���T`������	������0E
C�(*gX�y�S��9�u�:I���Q)��wi�'G7��KqE�����JnEE#�#N|Tr�n�a��5,�y� E��a�r$�x�8E
G{�_Z#�zr4|T���$�3E�'>*n�
�;*����_3U"�q�������`}]�KMb��H�T������i��SdI�<������n���8�~�����
�����S�O�`�$jlq��Z� ��������m�K�C�~��z�Ce����*�R�L�0���v�b�\�|+��$���F��2�B��V�Qq�������+����Q:����I4|T�9V��-1���(�K"���Nq#G��:���E#�k��/�\]��b�8>
y�B�bO��a�� R���NQC�aFc\�F��� 2����S�0��!���n�$
��5�8�Tb
��1"|�B��G#�k���>v6>���.�������L10|�(��8�����S���I�7 �k�N1AQ_������s0�Kr
��TQ�u���8��Q�%�Q�X@u�NQ��@�G���/Lg��M6��1��k�\��'Q������_7��|���:<��1���,)6�����t�n ~�{j�{m�����	4E
�����0����Q���q�x�7�{?���":b^*Z?��y��lVM��[?����T�0q��D;����������� f��5|*�\�_����~To�;
�{��Q�	"}>���b��S��t��[�O=��Ge�.<a������hK��y����2y&*�9b#�,NQ����vn��G���V���!Z?�����ym1����&xrX?�����3�*��~T�[��	�b������W*>�8�Q��}m����a����#���e�j��L��`e��Pgn�
r��� �)�����X���U����4���+�};E
�Z�{�y_s �>jH�P��u"�M�:�����NQC��7E-X�sS�0lk�{Du�OQ���](J������v0�LpW*[���!`���SN�����qD�CD=��CY)��lqkjO�Ns�8k%X�a�(��[#�[�Q��:>m���T|j�(W6N��M��)j8������S��X�b�����������A\�uDq��@� ���N
���B�1Uc��m��^��)[7|�ac�.�����mrK|��
����y&�G�e��])b�d�(��m��n����QG&���>��qN��rm#�������Q���pG��K���s�>��0�������\��A�]$�.�B��>;>��Q�����&?y{B�/$3��1�G�#�����(�/�G���?8k^���Q>o����S�G�@\A���	[���F�1�c�y�d���D�<�
"�H~��H�0�*�X*>���7r���b��P<����G�����
������!������
���<;>*���g!�����B�l�[���p'��,n^�_����+�n��5�&~���Ig��Q�	���:������/��mQ�L���0y{������y�d��8���.������B��3 o���%�Gk���oQ�N����y�roO���F�FCO��}2|��.��i�������bj��A.��3|�#��87����iK����f������_N�>*�1���">u����7����������������d�G�R��C~'j(i����������=5�i���9�f�O���N�����Q��
��3'��i������W����t����E��)O\t�T�])���Q�y���x1���/Ck���J�d|}y�I��P��������W�>���l2��\3����:e���7�h��S�J��wd�����1{���/�
��>��cK���� ^Y����R��������j$�G;���O�<2����f<�cN���������?U�����(Q�]X�R�xf��Se�hB' �Y�d|}�m�Ub���5��m,�cFp�$��+#ov�>Y=�����g���|J���
�A��q����+�z|�c�[��o|}%l|(���z�Egr�;+����J�8��X���)���h�Q��Q������V�S�xLq�$��K7v]j�GS������;��E������O
p����������?�}X?����RY��y{�f�Cr�S*�)�P�G��k�F����|��#�}1�b���C������Pu�G�!
��/�����]i��Z#��R�� �����h)�k���J�~TM�2)�6)n�d����~�X|�v���z���8+^�d��:��]���|�X��N�c��o�U]��Q5;pv��^(��������s��Ug��Q�4���^)[?���}r���h�.�)<F�ni����MYJ~�����WG�m����0;me��O�%[?��H����O�~T��/$�\��tpA�gy���l��6����x�������*�}���5�R��~Ts��)�G��.[?���%W�u���i������X?�
�[�����t�~��,\��.]����Qm���.���b��O�v�_�g�G5����������q}���,\�~�q�#�)�O�s���p�N]B�~��Xhc��R�av:$��>������j'���"v���j#-[�z^m��9[?�Q�>^���O)[?�
�������#�\�v�7��q����@%5� �]f|Z��!����Q
\7�]'�wi�����e����v�<J����j��{w���G5�m�Z�N���o�_��+d���)���_������[�8�b�8���|�~L�R��j���Y�������B�R"����jOcqr?g9�f�92�H���B�~T�ty���<9���B�@�!j(��Q-����c���i���9�?���~T�G:T.���_���n��P����z��}'>�n��6Z1�J���H��RKo��U�m�(�*��mWwC��~������)[?����x�y�������_�?�y�~�o/���cy���"P�<����'}��S8��������0��Zc���w6�>e���>s�{�Y�l��V�Q�Z3�*��~T�f��wy�ik�y7l����8/e��[��k[?�
��~��x1�����W~��C����A#v�>��g�2���<�|���Y?�
��u?'�<��Q�s��5������_��b?��[�����R�([?�?�.��(fzs�y�[V���q����E���%���T!o�V���<�Q#�]�b��W\Y��QyP��}���DQ����:�
����F�N���jb��LJ�=O��A�
�0p�*d|}%S_�c����z�|}�7��r��7__9!rT�_J������xpR��0�����}��{Q_���:v�!��Hpf������b~Lay���s<$>��]&o��pV5�6��\{��*n��'�����{��y�<��R�~���;���
z�;/mS66���k=�-92�~.z��+�����0~��-��b�(�����K�s�������5.�������>����gn����l|}�il���w��\�����������N_������Oo~������/?����������w�������O������=}��������~}�u����7��O=��p{s�p<Xsg����������������|<����������/���y~>w����a?��~�������?�=v���#��\;�;O���������8�����o�M��{��t������nN~,��m����u��4����}���pz��������~���'��7�'8�=����c;����}x����I������_�o{������r?������y�O���:6��t����.<������P�ve�������
8��3�__>?\����������;��_�za��W9�?���z{�������~�m����nN?��;��t����/>����q,������������������7���>�N?|��p�������x:��879��q���'�����w������������>^~���S�:��_�3.��e%>�w�	n��ZS����������z|���|9���?���0n��_���������?�����~\����/��������������o�/�7���7��xz�����������7������������ow����yx��i�����qm?������������������n���~����|������wWg���`=��?K�����'@E\}�r	M3d(�u������V$P9���zR$���@�'I���$P>��&��(�/9z�~f�3
�y0R����nE����t�v���;_�x
��m��y$��Kdh�iAQ���/���:�%�/"j���8c
�����N��;��5��3��F6Z��5�U-Jc*�5��-�z�r���KL(
����).}��G�E�M�b���h='1�a,�e����E���bFR��++1E >���Q\z��[���'E�&����U�P\����&K�vi������d�J��O%��(��h%�M>#��j����p������^)�D[%VU�^���X7�Jq>S*9En��u��,��u��FL\z��
\Y�4�{�h�������#�P��Y��^��s�����)B�H��u�=��4�GQ�5���~[�I#q
�,��j&�������tA2`|���'����2q��/_DA0�:���Q��Y$��������Y��4�����vF2%LPf�
�fb����-���/�i�r���C\��	�%�w����t��7�A��Tq����41�a$�%z|�Q�[��S�A���q�{$vQ���Y7A�Y5k�Dzp �����V(g�@5��G����75�16iOP
T�����#���CT��������������/���+5:�z��N:��0^��S	���e2 ��"&����k�JB�$�a�w���`,�(�e�2���2�W����*��%��c&��mV�uff O����p�e�	����.gR����^�	�wzv�q�������k��D��N���g��$����[�8f5�hUN�aG��_(�:��~�:�G5���D�v�.�v�I_�\�gD@&�������]0dM������	aL��F�M�_��Mw�4���BZ��h��Evp��hC4�{
X��,�����Z�"���X��s�6A�#4B��&hZ��r�"Y fl��8"��:D�m�3�y�Nd�����g�a��l��X�X[K��RaZ�wN��Zy���HK&��#�y��l����+5hC�$����e��
`�wj��68�B�/DQu�:�Oc��m�.Q�%`c3=T�#���lj��_N�$�cC3}�w�i����sf��L�v�v�l�62S�g��(J)�O?%.9�c�, ��$.k��HK,�Lo��or�K9J��g����fQ�>����]*� j
�>C`���&�cJ	��	��h��)q���W�B?%.[��(���cJ]Q��{����I\��2�#]�H���1hf�wQ���G�p��\v��s�FA��������������"�\~��F�	R�h����RW�2�l��o��#��t{����}��,��N!u�����o���D��[�&�Hk.��:HG�)x��1�����e;/GEP����#+M�U�g.L��ei'i�v>oR������6R0NH�!nP��3��M�QQ@������{
���]���
�|�B�5��%�_
��~X/��y^��U��A�����������t��lH~�
�}��c�����;��v����x��:�)����3���S��Y�~���z������z�)��J+�MNM��x�p����]xn��`n7�a�.��b�
�=�������Q�v����N��.�����v
*� �;|����Nk�T)�7�R$�~����|�A�k�� vY~�����slPec&�R��:�XQ��pQ`��4������Mj���H��A�ew��@�7��� ��9��7���7����#,I���A��`����
\��I�@['5��o
�}d��2��]i�GY����H�f�%W>s a��hj�0^�������eu��N��f���n�t�I���~����$h��A�]����$�0� �~ KWI�����
��a�<��W�
�F�q��G��)o�������Q��S�rP�u6&h#�Y���f�w�������)����/+z�����~�d��c�u�n���?�*����:J]5�a����So[~�xL�9�p{�AU���*�Fo���gJ;e�G�sk��^=`��n�������1P
^H��)q�<�_�?T��O��P}!���=��O����M������&����B���K\~G�8+3Ja�I��� �i�3;m��aD�����F����E{�O����z1����[���Ywxe}��P��za��T��C
�>�0���O��A���s��E/��(�]�|!k�������8s�� S�;~��\�S�I��)q9�����2���(������](=�����O����J��p���$i��To0J�#�N.VE~�R8�J)V�Ae�R��M�k�Q��F)�\���:/�(��hb��9u����_e�@���f0J�P��_+��R����m�DF��e0J�c�dz��]�NC������i0J��[6R@V�������T6�f$�p���e���a���i��8�
j
��!��B��~aS��y���<�R�y����f�bH,L��\@���:������{=����[���"�h��b?�������_x�/��a��D���l���Z�������C�~=����8/S�r�r�=������0�iBL�8�(��$�J���t�������B�D�t����R�Z���{P�6J��!�pz[8_g?�l0J�T;h�+j�J�#X?jhl�>0]D�0L��L�z��&"�~��-�wA~$��X�v�(�.�����,	T�
1n���$�����G�:]0J�XI[��!�A�L�2S"�1�gJ\�^@��I��w���
��{|�~�~T��9R2���`��<(�!/GYj�&�V*���Y'������l�c��Tl�&� e�*�%m����3�7E���C���&���0�������y�~�?��R+�W�������\�����|S��m�[�&�aJ\z��V�|�w1�S*�g������Q�b��Oi���R�4p0�Sn���cR�b
C������RTd�����!���Py���~��H
��*�pv��_�����;aKb?�T�j
�8Y���a���u~���W�	~���4kJ��&�)l���1��T�#�r�}�t����E���*G�C�?���6'�6#<Z�G�����D�s�J����*y������JA�Q:\g�Y/,��X?������>���
r�������O�����,�}B������@��CB��Vw��W�'�3J�
�K����&�p!��H=Lg��+��N���������]P?�>h��<���=�����L�L���3��[_��7��Z��(����um���O���]�)��B�D�!QWW�@�}E�1�q��D�K
�Rx��K����aR
�t�_������R�2�w�����Q��u�Y��2)��F��9i����(��;1� �}�J��Q��Uli��Z6��Y����j�s�3�I���	�z*s-v�F�R��j-l����9a�����=��{
��������~�y�\Ns}��9�����`_��q��Z%��3W�W
�R�yq����?N|T�f�Ys1����7�	l]�Q��q8��p����Cyo��� fG�?��pF���@"Z?���-����kH�1.�A���
�1��c�����I�N��D2|�a���vE�.���z��� �W3��O�i�K���5&>�l��3��F�G�Hj�
W ��&�X3h����0���0b����qV�av�+�g&�6�(s��{Us���Qn�c/��E���e�?)$,�~L��������t ]Q�z�~���s���|����:pkQ��E�G��2l��C��Y?���E���}�9']�YZ|[u�'>j�d���E�$>�g�k}��n�����x A'>��
cE\��.sNz��D�P��8��B��q8���~����D���q�i�|!�OE
6N|T�f�I������B6�#�Q}�h�{���*��h�{=������F#�����s�*��ALgyT#��E�0i��G��/=��=����J��
����u#��C%n��I*f������q�BE�i�i��A$P�p���:|r��v%_�d��/�qP>���}�hc��N
��/��GN=���j��qug[?����9��e�y�M]������D���o�����F*�l����Y#�Y'��j�4P&�8����2���onc1gn��J��"e��y���=E��xL��2��H�Y�U�\��_8{N�8KY?��@�X��}X?��H���s�=�RW�9��I3;x �A��P3��N�iflY8���0;�a�h�N'>j��\�_f5�i�+����������r��C��L���
�j�*o0|�a
����KE'��7���X���1�����&p8q��B�rS����������A��z��������yT3;u��>rq�f��F_xS�[E�n���)��@�+�d�G��X�$�M������S���7�����#�oqr���D�,�s��������Q�1y&�Zg��O�4}i;/���D����{��B����Gy�ic�W*|T<�GEb93���>�r��6U��\}=1���sTM|Tm��&&@�����v�Qb
�[�����*(�I4|��}��~Qt���:���-j}]�N�����c%��'>�8�����f�m�$��#��d�(��8�sF������g�Yk�&�G������g����{�^�&7�������^R2|�������l������t�������N;�`7\���M�����.�f�K:�G��q�1w�&>jPN��3�PkL��X.����U2|�|}�s���|��u����k���!�3���}����0����Sr��sk�(��Z��J�����nk��'�����{�v�3��W
o�"p��s��Q��m~�="�N�6[����.Ma��*�i�����5����G&o��1�G��;|(U�Ri��r��#�8(Y?*��2����vj��P21�����Z?��R����f��������c�Jk��Q�iTh�S�=��E�~T�5�VX�v:�Q��m����~��L@^��X�.�.� �����1�.��<�o����T1��@��������K�3�Q�;�|.M�>G|%��Y�|}cD�d*�����4��+k[�����w���{�����7v$��z��G�$��D������:�J�K��a��rr��@Q�����e�x����d�(�29qW*�������95���r��������2v �������
�>�)9����|}q��a��6��F~����&__*���*�M)��i��.���|�����L��U`�����:�a��]����r����4�Q{l��Oec����RD{���~C������6���������P���Ie��n<�e�h:U��|}�b�b���l�����
}�"�/��QG���	k��_��q�����H��D�{�����~�w�s}[O\��:���1�DO<�~T���!�� �~�i���Z������������Q�4�9���Z�~����:f��q�bQ1�wn� �.��GU�:��Y������8T���~�c��P�MP��������Q��_������+m������D5%������q���/�r?�Nc�L^d=H�����+'u�nB��*^�|}�6��{���&_����s2��b��P�i#~_�d�G��g9���|a�~T�i�C
V��������g�jO4�1V��Z��y7���U]��Q�l�_�7x����J��o�!u�l|}C8k�9�LM�~TO���w�������
}1/��y������Z�+/�~������t.:J�}�|}��y���KA�f�)�a�f��/���o�����!�;"������_1���C�/y��
��~i
U3���
Ot�~PwE����������������r��|$�bV2>*G>��'�����\�*�O���R�jR (O��JT�������'OGFf���!�@��Vw�����b�'��Ts�:_E���k���64�I���o
)���pq��f���5@^�
�y��V�	b �<R�?�J��gCjp	����_��	�*�X��]\��Ra��)��-�8y6���9�x���*L�H�E�"��n��:��<R-3��0�7[C��`/�:��!U���������Y����:v��kH�L���)��lH%6��m���q6N3�j0,�D� ��O+����J� �5��l"����
�S{�.�G��PM�������
�]��0�/�R����0���0K�
�^�"�j��T6�9��@��(�������	?��M��������Q^mf#�;���M��4T	dkH��>��P�
P�!�b��T`8R=l�4����) 5pNh����S��5�������$����	H5�a�u��g�m�!{�s@'������HP��?�3��}!����2�������$Y��fH����o��E!7O��9(]Q�UI�����	������TbQiD]��}c�BE�{���h6�I�7�8W�[Z�CP�����Y�����q'@j���!�������L�q`�ROZ��k�(���H
.�������5 5�V/H�*���>LKQa��S@��RTly��$�'	�h|d#�kC_'j[?�hZ���Tc����p-O���E��macS@�E���W���� �k�C��lH��������������������I�9�y�'@*���B��o��T!!��\C�y�
"#�2�~Qw�lH��ic8/bh3��� ����Y�'@*��N�yi�� ����DAIp��c����6�T��y����ZNUu�) U
�]T�
y�*cm~�".s�v�9�H�k1����R(��V���>	Q��Dl�|����6�OBU��x6��c�w�F�>1�h8�) ��a[�@���Q��w���>�~�;=|�����O�?}�����_�����>�����o�?���v�����>�7�rs�������/�~�������������>����������`�������7��������~���t����7������_��y|������~>��r������z{����G���J�g��=������?�1E�o?�96��������o���9���	�[��n�N}��zs{w�p{�����������������d���	����������}x����I������������o��r|��_���!����o�x�����O������8���t��%?����w�?�}8�Q-J�1h��N�_�����������Q><N���s���_/���2�d��/����~=>���������o�~<O����_�|�����g~>�����������|:��|xt��?~����`o��|���������O���~~xcK��y8����n��t?~�����O+����
ws��/�w��������o^��n>|���O���R����_��o��]�]�����[U������#�,��4$��5����_N�F�-J���7��C����SW����H�A��?EZ���������<zFY�����Eh����=��^���4_���HG`�<���/.��?HX�dy�U�������g�o/�v�j��<��������/�XjK!�G3W�I��H�j�E�
l�N�����J��rX:i]=F@����dR�(�+�����	[$�-+1n{�H�p>��j��	'R���s1&�M�Y]*��i��AM�a�Y����%���_?�����T@��0��7*$���:��lO�pq���K���+��������y��vv�E'�uBiqW�Q�����X���*x��$���#�a��a'O����J*G�����,�u���Q���H4�L+g�`fC�;����uf�q6��8:�����)�$}��H�|��)&7����)�r����iE�#�@Q|?S�����N	E]��`��������)E�F�H!�����N�'�`����~'�K���E��1R)���9c/jPj�sr����G�F��a�9&y�j����)@C�����D����^��C�t�3���c�q.�����^/y���o�:�z�h��Xk��������2w�h Oj���z��
����SvRXt�TD��3~O�G�5�f�����2�I;��pm��{a���5��%���|k ����b�\q��C[D�f������"�x�����3�3�]<���U�u8�/�(6N���r��%��9M"��M~HHnLt��\��3���)�t$���I_D�j�mH�`,�)��I6�xF���i��(y�<U<����d��R
�w�{<;��/[����I�B
U��7���
MK�=l}��D=�k2\�k���V}��s�Z����<�/�V�6��L����0p�h~�S�H�%;�;��zBg;�����(��*�w�l{�&Y���-Q%�#>�~5No���WJ�QJW��Y��M-���V3�&��@SL"�1�,��N�:2/?��v_I��8���]��ak��I�21�`"�=0��\�N0��7���:��>���r/^}����l����D�j�=�ML�b������s�]�4��^����!BK�S7���$_Z"�a	?�dk�!�Z���~���E�G�P�M���������6��n�r����E��nX-9�$N�ws�'n�5��	�to������(8�36���#W��~��m��RU�	��n�:�52L�3�'��P��P1U��}��G�NE@����nX6E@�:Vol�.4oLj?�����bP��	�i��(k�]�N����LK���d��S�x^D]�[��U����:��?:�>�m]g|����T8q��������lj�.�	�����T��U+�
~��m���b���D��~O	G�Rz�7���UR�-�a���1��dS���ik%�mX�|���6�M0�*��I�y�����T7��+�	��������u��.J�Ou�@P�����m��~�J<��U�S��n�6�z����O:r���51�
C�Pq##���g,H:�*>�9&�'5�����j�����#$g��L��(�_`d�l���J��~0�	$?�
�2��1�����aHT������O�8�2�������d��l���j��?c�-���fV���4��P�S�:/�Mvw�K6����d���>L)Q���M��
P�:&X�'8bS~!��:/�Mv�V�@	���O6�!p����
��z�_O|�.S�x+�R]H���w]d���W�����	�R�����:�����y?�d��7le5�]��1�7���ebO���LD`�����n8�k�����7��#�6��5��p�����������]�.qQ������|���!���{�o���?�h�����1'SmI��yc�����@�I�/�
!e��yn�w�l���CE��0�>���r��VLa��nX66{�� �?c���a|!��76Y?�7@�&G�����W+�)�g��}S8��$~���@��/F���l!A
�*.4u��IrC2&���M���m ��j[��N�:��#�	\#���� �s��2�d���<�����lH�oD[��?��pcSm��u����el9�d����:���
�����R��
����N?&�a��w��Xa�Q�P�{����r}����&[6�9�UMi��DFI�W��d���A���"Z{~���z����;x7����aS�d��<�@�(�~��u��9P�Q�6x7T*�6�Q����n8T8��s[�@@06��}!�#��ip���@d���X;��a�
���.������������9��'�+���}a06���T���qa06�P���R�N=��u*�4�~C�l�C1D[�i	�l����F���d�m�L���z�g;L(�I���o�����V�rx�S7r~�.��y#���J��"jl��QG6DEQ�/]�0��dS"�w�]���L6v�Q
�A��!��Q�c��]����b�T�+�?���dS
 /��w�����J��Xcn*��`d��Q�l[CLn�G��1���y#�M�L��� �C���j��EL�L6��;�����X|02�c
��W�d/,��Qy�A�/�8�^I#�����%*�������S�r���L�l���>�����fOu�is��ds� ���y�'�������rZ�����:�e���T�
F&[r�UI��������
��XY|�c���5�U2��wC���g;-C�7j�u]��F&[F�n����1jL��22�:���;�,}��]�}���m�zWV����Y?�f���
N�������Y��^��F&[k�<��X;X?��l_�#�]�}�����T�kX?��2�1���
E�~Ty��K|:�"�g��q����1�G�N���R!��U�<�jg_�F&[G�q���>����N�� �*�p<�U��������������i9QOF&�b��Rxg��C�~T=r��:�l�����e���d��v�:I��5��Z?����R*a��M�G�!d��q7�wy����
D(�rv�~T?u�.�N�>���� `]�\�wQ��lO��
���S�G��i� �tb�:X?��G�X1Lu�`����{a��Z?������A�Z�G��%���l�X��t�O�v�������]@H���������a�����B�~�#?���e����_�av:�m�?
�_�����an�@0A���G=�}����(X?�9��?�Z�����\_6A������ cY�}u��[?�G
����&P+��Q�I�i���:�n��>�V
��f���/�yQ1L�v���h�n�~T�T���C�=������O^c~E����9aY�{:b
�S�2��C�\�G�#�G@������zfm�,�G���i,����<��Q�:�=u8/������W.���I[?��� �.�V~�>����\7JH+Z?�'������q�NI$] R�Do>Z?��(����Wk��F�(���J�~T$���s�����Gz����:�$���V3@��E�������!>��h��>J���c\���i	����GW<D��z�6!�c]J�!Y?�8��a�mE\�����[}r�0��<j�;x������3��wQ����Q9P��6 ��Lo�~T
�k]s9^������5P���S
�6'���H�fK�/]eqg�����+��u���S��I�cY�V���^B������Q����m�b ���Q�����G�G5�Ho���ar�t��#Wo��>�t�+����|k�<���+�b�*b�h��6��`+�~(?&��p�i�1����2�^"6���s(�a���X����0Z�1G��sB1�'>����c
by�y��@��@U���O|�K���'^D��p��S��[��[�`)� z'q��/�<�S$�S�(l,�F����{Gh�J�����3|Y:�lUw��Fg����K����2���7�
y&��lsq������V�����j�xd��J):�i��x1��U���������}L�I&��O
��~����&�������Jr$kO|T��N6�{���K�O��1������i�.�u�q��R�"fU�bF��]$�|PQ�������W:R��5�N�4���B�!������������������Q��M��!f��1��^xn��E�0_;�Bb���������>��9g��sL��^/�QY��������.�u�pkt|}0CXE:<�Qn�tr��5�?e����L����rm��G}]��Q����)	#�y��|.���"�Q�������''�U-g���&������c�q��`���6E��;�jR�/v%�_4b���&�	e��3_��#>���
;5j��0��~�:������F�&�P�7d�u�k�X{��
�������6�4n�A��e7>9�:/S�0r��7�b��X?��
���)��I��x7D�b�8�Q����IB����Q`��1�Q���7��r�7�����`��T�CG���a���.��5N��1����0���/q����
rf$U?�����WweU��)nX)�L����������<������~�P\|��a�������1��~����|}�o����������}���;�y�d�(7�-�1���vn�;j����N���f��m�����d�(�����?��%7���:�oK��[?��N,1�k>*Y?�-�u
�9�Y�d�(w��� G���I��~J;E-X�M�������@~�������QX9�0{^�}X?��c��v������*^h�� .����>n 7�l�-��+���w�%k��C����/@�7���;e�Z�k���c�1\��s�����u����u��z}����Bo+���'�X��Ep���Q�y��P�A����r��p�#���2yk����B2~�:&.�������������um����G;����-?�
;�:���9l?��z�����v
�~�y7�]L��)��LPs'0N��X�:�B��j�y��wu��D�U2~�w�k�X����Q~P��w��C�$�G�JjDP�U�M���B���5�D���<���i���\���F
%�3~TGh@�B���ii<oq��9���k�D���T.��;���|]}[�E�D��j�z}!�M�u��e�(?�`$��A�����B"��pj�?�%��SKM��%�G=jD@S������t�G������P;��<[���4�}�_���v��u��\/��U1f�(�����u�31���R|(
�d���3����(tH���|Zq��n��V&_S�A��a�*w0~�����	��������x�	�s�������������i��������B�Q~\������p�B9������+���6(9�eA���v2c��7������_�ax���]����1��z��x`��]���/���dxT���Cc}]���Q=�s�^xv��P}��d_��)���2�a��XDm+U�e��s����}JE`8����6���]��Ou�OW]����&���:��:���U��Tg�T�'Q~��W2��>�x%qd��G�i�x��w���D���3J��4���j��M�5��0<��l�j>���M�u�����
��c�8��"w�nQ��o8��H�.j�������iqZ�M����0���8M�.b_os?�������~a�x���[����S����;�����H�4*x|:j��|�x���
����tf�b��m����t�Q.o}}�1e�;��'����z�9G����z�����i����y���4�����E�@u�0~����'j�A����Q�Xm�������c}�{�57����{�E���'�#���MP^�y�Q��C��n��?�T
��X]�������j�/#z��|�������,���8-�sJ_
QC��U�]:� ��(�����3j��U|���{�P�U��������9-���[�[?{j^�K�����F�&��B�)O������k_�<��}}5���u{r6<��7�g��
�����������N��Qi��g�B����:>��	5������9�����������<B��Q���?�"����:�d���y��.�0�E<;�Zp>����;����=�a��5���x���Q/��8+��?��G�����V}�y�Q���<�>#j>&n��;�7A�/��������1���.k�&�}�Ke����<[qu�@Eh3��G�F����A���G�A������ox�w�ub8��8?��@>!{D�?������pQg���B 6O?Qs��G7�m�zQ���Q�9bI�?�z�x�X���w_����F�g}J�]&��r��Q_��l?e�n�B�]&?*owS�br�����T��XOg�R����*_�x�������0O<�R��SWRp���G��?=y���
���C_���JW2O<�l�N�7�=9�����j"�&5$Z����5�<��aK��sY��y��f�:!�R��y�G��}9M�r��G��
����5�>_6�AQ�/9�~��Ws*�M�����A[=:�T}�2�}�^'��xQ�����K��a�g��������G�����������N]���e���5%�W�\{�G�~:x����[�G������^����T��S�^��f�G�i�w�E�M��J}�LDQ?���F��~)��'O��QwX����S�G�A;_��G�S�����,:�3���B�X/����3�Q�%v�Q����~�lz}a���{�������������]<�Q�)��/~y�&z���Qn���=G<b{���	�A���+I�
�i 5�c/ndI�A�v��/7��T�j�l���P%�� �����W.M�/86��N���\,^`���l�0�T��4*�f�l�TD������*Q�Rm7���/��	�������8�&�
=�<���j"������g�S��Pb�yH
�I8pUdHe�M�E6UP6@�W�Fz&	�.O�'?���2^�}6�x���������	�9WH��l�?�?���n�]����z{�������/��~���������_��o�������7����������������/_?����������n��z}w�������������;�������><��/W������t��w7��������<������a�����>�~�����Y���(�_��0�����\�����rC
�?~~sL�������\�]}�>������~L�>f��"����������������w�e��Q��������2�:��O��������$���o��������O7?�������F(����������x����-?����i�^����}hC<��|8�c��x�D��|�9����-?�~=|���;���cm���w���~�0�����������=>���O�;��������{�?��?<|y�������t}w76����_����N���������?���~=��������������������n����!>\�����O7o���s���������c�9~������������������������~�1�q�|������o���Zx����������a|������#�[�D�hizq�y�Oy�� ��1T�E���Or�gC��9:��p��,����r-��_Z}����H�|
��|.���s���W�N�5%�y�)���=�HZ�(�Yjw��A����!��������w|�D����q$��uQ�������s+�w}-�TH
9���xn��1���2l���(�����--��|T�)����B��m�G��6L�m<��V�c��%����=�>Z^�G�����m����\e���q���C3z���2�~b���!"u��O�=EA�R MIY�Y7{e�����+W��!��{m4f-D�=�
����k���nz���v|9�M���n�zi.����!��������HC\(c��������j����9�|����,,..�~SyP�?�������(� ��}I��\u�>Gg���B�ZIZt���F�nR
�6D��N-�X�s�`x>�\/������,�}�X�|%O��QG����q'����dD������4i�h!
��")��n�V����Y(S���]��,/�bb{gd[�GU�����D�BO������E�"�N��n]���{�G�})f�Ege�&	o��l�Yx�x��D��ftf��[t*j��N��/"��m����N�LlO�+N�-.T��=�O�B�)T��Eg�<S��%,kV��� ���
����rpk��#�I{��	IoZ�@[��2���`u��m�.GQ=*Z����_=�V��H��1Rm�e��u���_~�}ka!g��L�Y��
5���XtB�d�b)������l���@�����pL�L}�2��4zM���h����b���2����M�_���l������q|��!�!�\�T��6X����CP���j$�	����||G3����3��tp���{�4>�b�P�Q<�E'\nv���1ro�G�H����u�-'m���QGY�*|��ES�kOa��ZH�g��D0&��Q���u�77Fg�����5Vo���~�6��g���{�D �����mO����_���dwLQ��E�f��zD8��S�@a{gr$�RPU��L>oi�����GQ�����b;GD����l�`7C�)�52��n�� ��Y�\^������JL*/��vJ���1e�V|�K��/��n�	��r-!x3y�a;��EqO�4���[�o��S��~�x�e�s�y7���TOJ	�_o4�>�@k��F����l)��������O�q�����vzy�x����;�&� 
��h��u����M�����o���z�X��3Qp��4^�9��G���O�h����TI�{�����Y/�K-�~��E��v�Bp9��4���
z��(m��WoH���.�����$�%����4�-s�z�B��yO��r��EE�O���lS
��4��7����X7���o�">�����qL���������s��.�m�����?�8����,�l�EP�����iXsB��������������#�R��"�������:�����$�9�����l0(��������]&�����wJ]�1l?u��u�($Q��x�F��F�q�M8)��W���}��u��9(M+�go�R��5 � U��q��2������a�x]����E��g6�D0vY����c	��z�1/��sT}�����I�}J/���
W�C��������,�����.Vk.����:��K���I7�:�)�$�a~�x=m�_+�����c;Z�1�[e��'�wX8�K�zh��6������������p�7�����`j}�Z��NP-Eq�G����9�9�%1d�`G��^&�w��]��{Q�����$�zJ^�}l�x;i�[����6�.0��Jb����f�E;,u�L���m!���A���h������;��93/�o�\ER��h�~t��gjAA��F�=�9�3�gQ�SV��Mb
kN����;�g��0��E���,N)E�_'�����{2�i���N���<�23�^�����j����'A����u��:c#���x]���?�lQ�F�=���*�gP���h�Gx����|�W?i���A��N����C��"���4o4^_�2�NY�������}�J���E���F7)"$
��k��MO�-������u�6!@h���N�����we�9������J�QE��d���J{G�W{��x}�MHg�S����=v#�!m�O����v��#�o,��Y�5��N������^��!�'���M��`�>edD(�T.5Y��gT���w1o�{2�&����77�����~�x�i�?�.���X�}��Xc��;��x�h�XY��5X��Nof
�������m^6���yq���
C���9�.�`��q(h�gCd�C�,N]�|j[E4!�g<�x�����!�
�lcv����"��`6�C�
��N�^��`6��@�2/�G0�����9��/d����+����x�8��q�3[����*��|��m0��G��2�
/�e����"�-�@����p�x��"�>�1h1�������T��d'��`6���������0��lt�9�{T_0��tlk�V��^�g��0���[RN`��deS��|C����
fsX\��.���T��9Ns
P���S'���de���7��?��+j��������i>����*���y������VG�����DM:��l��Q�<GYj9��7b�fc��~�R�m�c0Y��� T����Z��c��l�+��wS/���Q�1�_��R�1UF�����=Y�c����=�m+�sN�[��--�~[���nxTn�k|,w�G�1��i��L����k-U
�0������G��fY.����	q�)���5>��������^�>r�"���l�g
����w1<�����5�`��5:~[�XzQ�	&+[kE����LV�6�.��S��[�����tq0<�9Z���},�w�8�V.}��r:�9lFI�s���������G^�����de)S�wa�A����7������m��$����� �*�:���*G�������&��"����5�� ���=�e�1�}Q��G����~�%�z���1,N���@����m�9�p*+g�>�>��U�?��9m]��#�okxT�������Q��V��S��u������;�MV�E��Ef�T.U�~�����Q�
�G�!����<�.�1��:��%!�Ug��QmP�[z�%�_���VX��C�.�z<_���G=H�aqZ�6��U�oxT���ei=��c�8
�r�y���N/��X��G�M��$���h��SZ�L8U30<������]�|��]�K�]��_��Q�VV���5�`xT��5�V��cq���l�%"��g0<��/�iW�`���oxV�^)����V*�d`�N���i����������u{y>�w�qJ�������t�[��`����q9���sN���G{s�����Q���5��{���>�4r�@/��K�3N�-� y�g�)���'����Q�.�}A��W�`����[�:�T���Q�������X��G�D��^�����Q�n���)��
�j���=�N��D��Z��
��.�\tg�>� �
]�G�����wpT�"��T�.�c��]9�v1�E�gts?e��;��g4<�����R^���8-��e`JP��s���b;oE��<�����=9�y�j�r\�fdx���{����EG���������l0���(ZIl���D��jeoO��Aw���}�W������^�m/Tk�����w��J~����h%Q��h���^�����o�������']���	��3��TV{�Uc/;J1����<�g�g�ZN4���c ��u=q���C�������{����=���u7����_��X��T���:��/����Q-4���W���i�UG�x�<H��F�{��m!q��������K|`�������=��S�ZT��c�|��ZbE���i��Hlv6jS>		���J��t�F�->����Zp4~T%�z)�T?��{�����^��F<S��xX��cQ��d��}�
*��*�\<�������'�q��p������4��t����^Qg�I���_������
=�p_�$��?L|�q����V������v��D�a�����P_WR�q��=��.�������P����<q*�������S���9�)�Y�|%��i=yq�������I������2���(�8�Q�pN�I�>N~��������j/,g:��E��E|�_w=S��^5���
QSFI(E���)2�=�r�w11��l�}Zy^��q��\���������_��d�q�������z������ �h�E>�>�����G9���]���;�p��������7��������S�o����Q1��H����[��@K`�S��w�l9�}��._���C��1�o��������J4e������*���Ow#�Q�o<�6_�}����9��Q�mZ&T�T��v���s�7����G��2���C�l��������|U�G�k���u�GW�S����m����oSg�Q+��r�qj���4tj�K�;���u����0����T���]����6T4���7qQ�+�zn4���7Y��X�c&������kU��T�+[���&blJ�
��t1wPu��k���|����&���v���Z�}S�+[~�Z/l
+0��Z�|=���s�~�V���b]h��^_��!�B��W���7����~*�bi���U�a?+���$��k�=�b��
�6�^_;�K
$�W���(�������/z���|uj	��dz}mp��w�,���,z}��,��i�����^�Fq�S:����GmX$�P6�G��Z��9%���u�����o�"��X2<�=]��wA� ��i���-O����L=G}����S��X�in�c��GyG�S�V����Q>D�Qz���8u��<��cVk?�8u�w1`��������eN���o;���Z�.��������\%���O:�s.������N����Y�(p4���0����1�}i�b���$��8I`����V������&�o��Qn�tp]^���j�;z�)�������������LS�/���������"s:��
^2~��l���ZN�6?�3�3����^�d�(?Z���}LU?���9����X��L\����}�G�i��{&����wq\s|�����]@�u���h2~�/�U�������z�����d�(?R���V��������z��_��^_������Hi���q����.S��Q�	�mWw�G�����p�$+���B"��a/�����om��xR1f�(�#�p��r<3~T��+���_�aq��Bh�)�t����������Q�o�id�_}��L�{�F���O���c���'?���`��!>��?��~�X��!�|��Q~���9M�9��O�z�����fHS�o��`��S=��S��u�M�s�~�^:zX��W?*�t�x�*N��}�wAO^}���Q!���XPu����P��sK1���B.�GQJ����z��Z�L��G����y}��Q��G��5�0�������\�Zj�����L���y���f��@��z�����KP���Q������_j�6�����]����Q�Q��!S��i�Q�\���qFM����:����n2<*��7�P�:����Rf���T��GEO]�FWb��%�GE�:���K��
����S^yi��E���ylr��"�����wA���N���1sj�
�#?��5Y����Q�w�z���S2~�������V��L��gv�z��s�^�KZ{M�i�q����8U^��Q�T�c��|�d���q#�����`���7��������z}�����R�Z�/�z6~T����s�>�l����Z�9���Qi��V������8���:�n�i�����l��x�4�-��Wf��|��K����D__6<*e�O7m9�����"����������=��
sF�E������p����'g��r��L�u|�lxT��UyF��2?*�L��_�D
%U���b���~6~T�1VQ/t�;.U5�������QePr�����]��Q�T�A��B�+U�d����s�
���w��0��
����b�����$j�y���]o|Sq����W���c(=�<�����QwjNM��X���r�F�/��^��/��'�Z���c��5i�e���8j�-�}L�A����H��1<���>fxTq
����� x�9N��m�9S�y��
�����%r�lxT��|u�������W����E����Q��nY*8�*>�j��oJ�1q��S�/y��{!�s����*�����sj�R��5\z��e?�N�/b>���g���O'0�<��b�8��S�g��^_��o��K�
�*��L�?������7M���m���7d������3���\�iV����4�5>28�j2<��D�:���dxTm[��~����^��'���C�r��Q-l��Z�]�^_.�"�zi�(U[��c���c����!�=Y��y��
������%1F�������9����/Dn��S������r:�]��?j��u���.�
�j������E-8O��^�+I4�e��^_��dj �;��Qml�����2��J@^��������Wh� �Q�9���8����1a3����:�L�g�����u�����8k�c��R����7����1�Fw�z}�u���������t�����z}�������=�S���<��T����W
�ujv�9�8=.������O���
�>V��`xT
��JG O�>�
5f�nq6<*���Wn����U�q]^y�G"I��l�Q��J>��M����MS`|������<��?��;�y�Z�D�_r;�C!'��,������/>��wP�2�Q��=�^��Z���Q}�"]��,��9�������N��x6~Tk�,�^�>��Q}H������i��o���M������u���{�\����Ou�*��<�Q��o-	�|6<��@��#�O������AO��q��F+�����z���������7_oO���~w����/��<��p{��������|{������o���{w�o��p}��������~w����1����_��N_;��|s}{<Xsg�������������_7_��������������x�w��:};`>���������������1���Cv������\�����r�X�?�9&�������?���>^����D4��������)�(F��������|z��������|�8��b66�7�'8�w��~�/��~�������'��~���_�n>~���W�?���������r�����/��=������0�����Pw����I�9�H�����W���tr��?��=|���;��������w���~�0�����������=>���O��w���7c>��J������/o����w����������������t������N��7��������������N�_�O����v����p},�w��n>�~�?�������OW�F�?�a�����^}����������w�c?������{�����g���C:���0B\���L�F8��U�?A��������}���d�q����
?�ha���7<���
�|~�'!�������*s�8�}|�|���	u��Zm&��z�A)�~���!��vv\
�P��y��^@���<9�����>����*T����3�bY�2���:�����xN���R+kk��@=���C�5�����������J\�8� �"��c����F
*�}�<�PL\�'�RUEk�7f�`-.[���-o�z(�k���Cl�`=IiE��^�Oy\��k����7�G���E�S��?���Jf�Xf�IZ3�|����t�!K�e�gJ�G�����T�,�CT��"(�(�~��k	�oj#&�Y��99�
�qK��nk� .�W�4����s�"J��H�~�5����st����>%/���T��PG�T�U�8��&�R�F����h)_7>�����E�P��L-�X%c�YS�9��_���AvX���Pb1�[��|���^v�NO�<O�.L��|��B�Nu;[3Q��G�U)"�������,/��ON��\�@/�/L'�!o/+;�!��"g{����z�����hM����4P4<����
�p 
u�3���3�����;�f�E������(k�E@'�US-.�2��z��n��G�F�U����r��k��sJ�J��d�B^�LqtWO�z���5;�
W*�X�j���'�k�]���l������_~
S��q�n�xb;����rg
_�5�X�]����i/��I�����/!�#Mi��"��	��x
�
{�2!�\������"�J���dF����Z	(�Xt�-�����~Md�D~�3U��Sc4vbq�k�$F���]�r��;Ma�X��V`�*��	���%
���M_�xz3*"E1y�6��!��*Z#��;3�(���b�������D�M[����5.��F�������W�C�[���Y�w�<���!4�.�e��k-\f����4��6�"�ZAI�NU��p�Sq:�tm��ik�l�Oa{�O�k�����9!��Z�>����������_��_����h���$���"SO4���@?B��M�|('@��;q�h�po*KE���b����O�e&
t+2��GUO1�D;%�p�Wr��$��
���`��������	�����#�W��Gn�����O���/�Q��O��n�/�����g:���7�D�#����o���[
o�M���6�J5���(1uD��]����5����@����#�=�&���
�~����kh��XS�����k��������G
��_�������mZ��uU?uD]C�}XJG�r�C��#x�2>:j)��E�V����u���wIB��x����x��9�z�������5g�M���n����e���?�P��?���g$�FT��!H�V�}�����O��X�r�������n��+j��x�.xj,5�y�u;uD�c|9��{7�l�$��z����J;��Q����6]��n�j��������<���h����q*���#:�q����`��}�Hxy��7����Q�'�N��O�a�
}F�$���x���Gb�"��o��>K/����So�MW�(�iRy��6����~'u���a��#���oBi��#��u������6]/�.[$��x�.l�����#�#Z9�������k�7�/p���B�3�M7��(z���6}���uj��~to�M�b�x�/*��v}�$�)j�����<����f�x�m�R�c�[��/uY#Eu��~t�g��_��Vi��<�Sr.���E��o���K�������]����"N������ ���c��w�/�}Ej>�������:�������.s�o?uD}N���*;��#Z�u�q6��7����/�+�b�o���:�J�o����k_��x�m�����	�]l?-�k����SGt��Ag��"�1���@�������m��Bj��D�m�J*5b/�O����m�&	M�����OW����!�SGt�}�T��x��Rw���^�/x�m@��\���X�q�s=��o�7j�0>dm���4C���N�b�:���^�in�}�x��T�)��Ww��#��7���MG��M���E�{z�
�ck�5q6���}���>�<������|}�2V5���=��g��i:���J���!z���z�x�d�^��#���150�so3��]
��������.0��w�OQG}y��z��NQ������Oo:�1n��"N������f.������KQ���v�m-?�e���ID�������5��+���#:$W��HM���#���qk�|�}Q�#J��T������������J�Hq���B�\��H��s��C�j=_�u-���tD�����Q�DgX0����+P�az��9c��k�
=������������c��w�`:�5�1�k3-��h��c�o0�<(��h��q
}� ��`:�y����u�Dm+���R/����]=����j�|`���`:�q�
�u��"�����l�z|]�X0<*
��u/�Y���tD�A8�-�� ��`xT����S�	E},��h����wQ�a�i��-�l�I���o��;���`xTj�Q7��]LG4�x�v�+��t�)���V�I2<*
��-�E�b�����]����0]�q�T����������j��W��%[�cQjN��kW��������0��������?��`��^�Z0��*�:���*��:��,��������*4Q�1���Y�D�Jsm�97�����]p�w�0��a�����1��\e���7��&�����o�%7����>q�,��s�xN�G��Kw�0�����Ft��5gL�>h��B�����a����&Uk��9�����#���Tu��)��k����%I�0��!��	I�Vs:}��V��}N1�$<O�e?��'#�Z�v^G����C����OA�q�
���I��B����3_���#��E�
�z������m��U��y��l����S�xTl��HKjO.7m�k�����G=]��9��bl����Fq��^�0}�2������.B��i���]����T8���w�����M��������^y����3<�� �����e��[�)�()C3������j>�Y�s�d���G(#/TCP�au���,r���G���=q�:�&5Z��c����
����%vY��ScF��-2�pr��au~����d�n�
U���J�-�(F+�J�Qb>��M7_n��T��(��,��u���
��^I�Q�c���E>�g�����G������b3��������
���7��d*�:�xT��AC��Q	F���{���7���/��XQix(-9]\�����F���.���sj��6�/R�TP0bT�>������^h������D���'5���C#�S�V�?�ul��6�7U�u0r�#�i�O�;Du�������]7!�)�I-E�E=��Q��c�����n�i�x�W�o�d������z�S�/����;:c�E� 9��f���Y����N�N��Q57�w�������� ��NS9?��^���(E&�?���z���2~T;��������g����s.+u)?�MB�z��T~y�F�GK��������Z���������]'�m�6�wy���Y�
�\�}(q��\&�����/8N~�/8�\]M^��zX/�i)�0�S�����)��8�
u�=�@M`k��Q�y����L�O:?�������s��v4��6�>���/�Rq�����`�.�@��Q��k�J��]���{P����u��ka���/U7!�I�_���i�+�|4~Tk�\��;��S��k�1���G��'�Y��D��q���&��=������ECa��j�O���6�~���|L����^����L������W��
��O)�Rc�z}9�$�Z�l�C�R���i�u3�1�OE|���qDr�y��b�{�:�����|�d�����n�:+'5h�����)��N<*R��Q"S�LD����������p�I�=���K��R��������/�������k��^4��D=9N~r�1����L~�;�u><1q��U3�;�g1���'��T�1��X6�u&����w�q����=�4�z��i�yf�#'�����v����)BOM�,1�>��S�ZpPwB����Z����o��������!�����z�|eP�y�I���qV2��Z���������&z���G�H>P!�O���Mkb�3�du�����k�,)�{T��i��5����3<��[��{�)��������x��$_�dh�pN�y;5��C��d��M��7�����&�*_��y2����lx�pv�w����c�����s�Z��	�S���?��FS���:�o�s_~���I�%�u�5Wg]j�.���(i4q�X��s(��h�|���t{�&r��\f�#� ���k7���8U��	�����CbU��ES��i�,b��!���(W��	��A���F_/�{���&S�"}�3>�[���S������M�2}�3#P�RS��g�1NEJ4~�{j�]�1j3�1��?.�|���1f~�y'd]J��G�G�V�1�i��:��s�v�=hq����5����D���v�����d�(WbE	�Q�t��~����p����t7~��4"���������\�^�J����cy��������Q������9�c���Rk}�����d����@4�Q�1���VO�j��7$����g�����0��f__���z�/����Q.Ur�MP���g�v���������Q����k�� �����a��A.%����=�1>*�?����v�}j1�9�8u�����jl��Q~\�P3��.r�dx��k1O&�X~��{��=��O+M�������)��S��:��Q���^_b<���?��z�h��R�1��
�5��_^
������Y��i�����d�N��^�K�<=����:�Q||��������������G�
7��fSg�����
������S�G���)g�r^��Y_�����&���V�Q�gg�?��\
�Q_w�O��V�#�qF��oz}��[�=����^_ ��{r�X���A
Z�-4�<w2~T����LD�sJ�w����(j���Q�G�Jv�9����������I�xT��������L�/8r�;9���`���#y�����7~��t[����.��w~���V}�O���F�1��u��������?��@�M�T^hz}�e~[z
�5M�>�)���v�����
L����d����PWu�dxT���s��72��[���(��dxT,��8#^����:���f�U�lxT�����_sj��0���c_����Q�O���� �����N��V�#�2y'x%y
�H�G�P�m�'+m�dxTt��F]I�h��#���D������t�P��LDP2~T(GZ��
P�R��d���
x|��������>s�����x'�������}��Q���if@I�/i��z����������4Q��f�k�^_@�1�>�S�k?*�Px60N�s?
��P��aMS�o�}����U���^��>b�ZH">��RB�V�AN�*$���9��)��hYc3~T���$����&?*����?��������b������G�����%x����M�
�(�R�O[M\��b{������0z(�|�z}�3N��)��dz}qX�CkN�(����$Wu>4�n�L����������G%��s1�~�����;�1�^_����?&�����
f�����%��Qah����:�dxTH��n����O�G�����@=H������G����c��G��G���o{�}�^x�Ua*�`_�{��?n��b���.�L"�cN;�b{�[�L���+��+`, �a�@�*�l�}�o�}���j���v;����N��}a;�i$!�Jy
�=��\H��'a6@���)
"a�~^��Fr���	��Q0L��"1Y6@*��	����6O���bp��^]6@*
a�e#���(:�)��{��+��&�`_��uCE1')��)��(2S�)+a�l���qCm�UcX�:�������H�������N�R���D��3S�o���}"��`_���)=�q�K�e����E�g6@*-v���+��9N��Z�H*H^�����p�� _6��2��U��B����:���9-�EG���h��
u�HG3���C��RG����RX��. �;���:��
����d�.����1��\y�����)�Vq����
�*��w�u��5g�T���hd�P+�����i��U�l������ P��H� x&�g@*�9�(���IO��m��
�����6xN��-8o�h�H����w�9�����[�]p�:�H����}����
�j������hg�ZKh*K#��]D���}��B�)�zy�cD{6n���7.�b� ������P�s��9 ����B�.�H�!��/�����c�!�(�
 ��6��k�'<��W �6���W�a�T��YY���h�cx�a/,Es`.3N3���>6��1���)
�-bL����f��(��u[f�r_/�-U.e�T}������$> ��T1�p6���l�T�B���C�'��>���CC�������x�����
qr�^(���Hc�	>w���i"?R���\;/$��'��H�� *����H�����<Y������f=_�f��Z�c�)���w������b���cTU�|��{��[�����s�������E�Dn3N;�~��x)�� ����zV���T�-�������������P��
��:�
��=�����w)�`����M~�����
�KW5G�z�	f���EN�,N�~h��j?}���l1��tM4f�z"��X��9f�r��A��
����l@C�S9n�q�;�s*���Hs���;ru�4@�o
B�>/�l�T���z`c6@���yfcY�4@�e��K"������]�~�z���t����w�_>}�r����������������W�on?������w'����w�O_�~8���w��_�c�>|����������7�����5w�_�?�]_}x��_��u������O�n����?<�]��yw!��|����N��W�??~����,\x�V^�?��=���x���`����o�I��}��t���������<=�������|,@����������������?&�������`�9>�����q���_���ys�����I�������_�n>~���7�?����������r�����/���?^�G�����q2~u��� �=��|p����#�;N�PN�����N�������������Q�}9>���{�_����<��;���K~������:������~3��~,�\�x����������n�����_����N�����k����o�����o>}�z��t���t���o�ol�����yw��������c�?�|{�tu�aD�����\�~����������_�|}�?�����-�����_�~x{�(?�g�[fR�������I}l�a!��5���H��>5���!0��(:��!L����4�YMR���!b]���{i$\����s�j�C�����>��h���C�u�"�W��S��q>C��1W��8�}�~�L�?�l�6zY^����~���>��eR��Q3-U�#�TV��x9�P(�Cs��f���������pKCd/���4Y��B�H&�����>���8��K\BM���}4�[�B���ZJ���2����"O��A�FU��L��:%��1����������h3>h��`@��cnBC�9:K�����-��)������i�fd"���od���X�����%N��
�4i�����5OJN��=��/�G�Mg������E���
��P:�s.<�]
W��������+5)��83���X��N=��+���LI�ay�~td%/2�3R����g,:�D��U
Yt:h�xjy)a�%���_+bO�3��VN�iFg��`�5��!��s�9�>_��0�����\��F��Eg�9D�hB�u��kt��J4b��FhWPo[���i��gr�hJ�����!�Y,Bk��y��Q�8�^!�t���#��^��L2/lO�~��T BMPyA���7��H
�r(��j�in9�u����l�ydJ�E"m���������i�W����9�Z��;�v���+t�Lz�-�w��K�gt�9aB$�&<�|/p��;1��������E[���6�E(	)�������Ac��!;�;�)=���0�:�f�ka�	�C����>���b7��G��v�L-"����	�Vj=��7ZV/-�".�&7Z�\���H��8Mm���\�E���hm[rA%L��_d;IPC���e�`i���Mi����Z���r\��hu�2��4�g�tF�_�Lc���@��<�7>F��	��h�<��+�Md�����p������39�^Y�F��C�
g��d���h�<��M+&0zE�N�11���nt,�mp��������
VX[N����~U|h�d�4hq$���Q�<�����s(�ZSZ��m!=�(���2�3:S������G5a�60���%SG1�o���F�H��YtR������t����Jr������"LUZB����3Ux��'�b��Y����	�ow�d�'�	�����N� �JI���I���YT�x �e���;&���O�_�,L��`,z��k�qBIs���,��P���%K}�i��(��h� ��gw��.�����<��S�imB����]o����PLo�Q��U�p��� �h�"�tJ���v9����7��>��.���X7�����,2��Y�9�Gf���e�)���r�B��O��c�bU���
?:�YJ��`�zoR��]��������.lE"��BZ�OI��ia�����0��f!BIs5����� e����7����
�L�������0>(�_�s�5C�r�@&�Xs��.���
�V���iq�6�l\��H���
�k�����8���J$-��b��wi�}��T?��h�=.����n�))�:\i!�~g��m>��	�������`�s�ok��#�|����3N	lmf�������&'y� ��~Z����p��,�����G�*�OYA�#1%E=X�\PkZ����CmT��xcp��H�S�������2�d��w�8��q��w�8-T��4��S�18}���dP�o{&y���(��pLR�S�r��P{�18����6�%5F���+����"����p���3k��9L�6�Jc���J"w0��d-u��2O6�DLX`���?-��2������cp>JVC������������>���,�2-P3*O�HS#d�����5�a�##�-mT�mNW�\��&�j����#N��@�W�����tJ���H`~Z���wy��7�q��sP�[�0���s�g������R���z	\/l(�b�cv�)m*���$E�1(�;�h�u�)�c6{��LR�o�����j��3N���FaM���O������F�����lY������2�^)r�}�?���C��SR�t��������w���a��$E���RZ=�^
o�0Hr��D��B����S���S�������SRt�.��Qx���0�]�91/Tc�)�A	�2�r�8�u�h.�g���u�k-{!���h��SR��VC5w %5��$EU)�)5?%Es��0s�n���������^)�%�$E���U���Z�}�i��E���g�:*$fJ��=yZ�U��6$��U�P�))�W���u+�=?%E�c���X0I�P��|0_u�`w��R~�s*�#����w��?D?l����!�����k?����L��4�yr���eE�wU/�(j�l��zr0E����}Q�SQt�l�9�0�{e0E�0z���8��|	SQ���ln*��)����]x��X0E�#C���9D�>�������C��RnSQ4Ri��>E�D�����Q�t�P�
�(�x�a?E=Y`��LQt����\T��)��!���
R&^��a*�J(h��T�1EG�o��5�� �F�8��Q���i�~��kM)J��`��1���o����(���EEQ/�B������K�?I��0-���_�f�U3<�h
M�yy����GAl�,���iq��xuoP��`xTK�V�-��~&�+�eY_���&��V�_����aZ�����6eg���k��`�WEm<���bV��N%�Q����Fyz��6���s�}�U������K���s�V�T6��`�6lXaG�=H�����B�j�k�����f���n�=F��L<�%��qS5���<vB,I�9��|��<m7T�B0<��
[#�C������{]J�1�(����=Q�
�G��h�F���hc;��@�^{���Q�X>��o{����L<�m���,z��$<���j����]�����Jq7
�(�w;i���7L<*mk��lP�e�Km-�i�N��4�G;�f]
\L�/a�Q��+�u>�����{�[_NY�SU�
�G�k��U|�����u~�9�~�P��S���.����q����Z�����f������W�e����X�����<�n������������O�f�V�N&b�E����*�]���G�A��h��������@i�8��0���ZN��#�������K{r��0YP����K$}���Q����I0�B�q���P��Pg_������ z7����Z�.����4<��?���B0�7E�{U�v�Q[M�xe��0��H��x�O����&��'2s��,� ������a�����&nz��k�j�U�X��R������ ���G������S�����b[#
^�a��a�����@��5<���y�+���z��Q>'$����t0<���--����!��.����5����Q�n���}9�������J�f������:��?���1�c�aR�������*������m�r\��'5t.��Y<G4<������u���#N<�	R�P�T��8��FG��)��8��aHr�6�t��Q>QMx���$jq:���~���m	���GEOD�>w%���]��$��hx�w{?�8��G�a�.��Y�@q�Q��>9���3N<�S��v��24udw�8��E���F#
����������0O�<E?L4<�A�������{C4<*�������&N��B�)<�����t:�5��v��iw�--�d��G=�|���s���D��F�7�������r�=F�=$���P�Wo�%/��]vyr���3<*��w��E>��.
�18��
E�X��R=��	=5]�/���4��u`8�^;��]�zG+�@A����l�r�.^���p7,���_���I4<jHRb�O�
G�h��0�����`�9'z��t�K�O+j}^`���T���J�"_��G�2�55�t���.��[�|��Q�&��jc�-���rq�����W2����es/�����w�=��w��GeW�Q6D>��O7�O�=�RS4<*��u��.�fLs?���P�P�Q�G��9B7
B�*U\�+m|?*?���1<���z1<��N*]��
�*us����{e4~T�.����9gxTi��-z�����G��
{
�@8�H��l�����P��h���YO.�wp�6���+N������Q5o�NmuT����>i��k��M�sL~��6��U���GE��k_�(�2����R���2�P�p��tQ���Q�eh��b�
W�����#/���V��8���r<�}�"NM�����"O�	�"N~�����~�XRc��~"gu��c�$_�-@*�G@���G��z!y�I�����#UX�����Yz4D��Zo�uBoO�V4Y�V��|R�Nq��F���]�7���8�Q�����JB�)����E-��m�|=R����v���Y��.�_Yk���:j�J�+��/����A�� ����k���"	� �>_O�����U%�n}��|�����W��.V�#���G��.��c�����?d���(�z�{}�&B4��(z�J�F�'�&������#����S��%je9��"N
�r���_��d��(��+q�,��<�T_��U����B���%P�2���.��x&���XZ�N�c�������B30�\_/
���*c����=$���C2<��>���}*y{������5ih����dx���*4f���3;��	w�������&��\��Cyer2<�5�5G�A���s�m�>�A���:�>T�V����G�9?�`�%M<��y����^�q����[��rJS�o������k?���9.��D��{�x���D�C2�������c1fx�#�����w�������C}L�o���~n�p6�&�^_����G)Nb2<��}=5�����~����iq���G��^'�RA�L����	�&��4��:�`�^����7M<*G�MQ
rNg��*6��K5Q�O����cD�s�v��L���~a������PSR�8�G��.��)�dx�+�wB��4�$��B�0qrx���Q~�����t7��Gub|�cK�~�&;�?����J���k�U�=;�<h��r��b�	~e2<*������2�>�L4D����c��[?n|]�b����������$��B
[�"��E�1�Q�n��\�x2<��M��K1�f����x��{�4�4�9p�JW,��B����]���f?�6�a�3N����|�O����<Ya����cN���=��!����������&��B!��9�}=�~���-�K�^��g�x���^2<*�2y��'�����1X�T�i3N�^IzG�6�[r��$X��y�I���@���'����/h����&�����]���������\����.c�={��P�G�}}[+8�J_*���.��Q����Q!�~#���]��Q���E�Z'�G�����\/�],N�u�\��"t����b�����r�3~T��j��������y��b��?���H
�^��p���
=h<>QO�����s\u&�|3���O�R�dNQ��f�9E�����"k����=�����g�}L�P�,�lz��#�S���Q��v����S�r����Qeh����\/��M��Ao������dxT�k_0��Kg�t�j����J����2*[���r;��Q~���7PVu:3�j������sX��N��WjA�i�7���\����y���yQ��$3��ys�F�V�i:G��o�yScX�>��I��f1���4b�����3N+-�x�Py�t��+wv�9���N8��Z�.>5f�8�T�i3).����#O��XO��������u��"�@y�G��s	ZYE�'���7���[=����������.��l�Q�z"nZH�g���*���s�W z���G�����5'�ty�G����E��d��j�W��*];�w�xT,�� y��]�ju3�e���	��G��cwBq�e?�����L�5i���Gx�2�6��=��9�����Q�d`|t����"O<�m�^Xs��1O��X�'� �y�G�M��Kp6��G������}��M��#e���8��<������.I�����\a��6X�����z��i������OK��E�,��l�Q=�9x�Qs�������&��9����)5�����G7�[�m	|?O������	������K���y+b}����8e|��2����=	N���8���9���p6��6dM��=��3*.��E
�(��r�8}[k/-z���e�����E����|1����XO�I��bx��;�����A�A���J���q�G �pc}���O��?�%��5�$zr���e>�C���O��#��q��kNv�jq���������a��=$Qh��4��s�y��+��O������?0�������G@������k���]��<������6�����4����T�c�G�!�}��D�.g�����9�������6m9�b�,:��GEjd���9��_7Ku��G"�^_����_��W�y��c�����G5�j��/�{��G�-�r/��q��G�~{/��w����5������B�G���������2�4u��[�}��(�$���A,Z����7<�����?�������k�1&?�o������]�3N=c�~'��2��25�:��,j���Q}XX_�YUxC6<������*����J��8'���
���%n������J�%�PT�`�G9x�Pkn���m����r��z.����q��Q�;�a=�UP~��|���w9.+�{@�����yu��@�	�=��.
9gU6@��b��bH"�
�:� �I$H�B�	�G4?i�!��$H
OM$�SS�b�Z�&& b���@<EDD��`�+e�g��x���B�P�����I��m��<����
5��D-u)4�>W��G
P+O�T9rD$��U�:
�p�|�	^4K�I��y#H!�Rkn��v4�����wW������|�=�������O_�\��������/����~����������y���������������������Ww�X�_~��;}����������`�����Ow�W������|y�r:�����oc�wW�y�������|����N��W�??~����,\x4*p��X����{.�����?��	���o�I��}��t���������<=�������'Oj�onno�o�>������1y7_��{[7�7�'8���8����P�������p���7��O7?���k�����������|��v}��������?�uLDI�4~��S��+��w�����lw������:j�:�����_�����G����:������.���2�d��/����_������/G^��������q�������o��w�����<�������;���??.�������z��������������������n����!>\��������_�����t��i�������Oru���W�~�����������?�:�����}����V���n\p����.�"��'���}\�ZC�������`�:�W�j�c�:�����������'�I!iqY"���<�GZU���B]E��e5eN �x/]w�>����x���]qb.���}�<��o�Rr��:�/�����,Z�c(����}q��u��V��1��T����c��h�:��~�g��!ks�ud��Iy�?Ghr�K���.� ���Qx���BY>��	t�,�b����#D�yyD�R8�YI�<��>#����<�������k~u�LPMs/Z��Qx���bY��'(��g��V������Y���3��[����g���OuF_"��<�m��<��K_���:����Y���M��)x��c�E�#��5���u.x��P���S	z�w{��K��`�[�|1��nuy���U�%�&���,��]����#{��J�����_��J������D��P���l��I�.%.f}�O���S�E�����lO��{Q���������D�d�(��)j��o-:�|
,v�1��m��
%��`���'A��W2�D������OS(�o��V�=.d������v��J�?Yt*Fy�9)��l�h�g#�j|�������=C�/�� T�#�oT��#���:�ftf��A�2������V%:�W_���)�����Ck'��@�>Q<L�s��J�H�
c�y�%U��-�kt�?�B�ciG��T���`��.U=�y.:���{��c�z�P�)1x�)��;���t-��gp���N3�O�h�a�5���p���������!���k��q{�\��1�����mBF4�/b����p4�8��;�*��\R`�z��apQ�����!6'Vj�X%�G|`�����+� ��Sq4�	D�GRCXt6&{�A�&�w�uq��`�i�:ib���bFg��&@�,�F�l%�Xyk�CX�G����+�����H�*(Q�9��Al��(�!�do�[n��L��NWy������s��{a9�duW�6����?#u���\�|����Y+��={+�i3�)�����2Sa4���Gf|/������O����T��>��=�>RcP�p�dw�%Z�����uvw��K$�}6��������>��E>��^����Y7)^�Z�d7&g	O���l.��An#��z'��}��x��h�'�n�����D���n��}�<��������s�3cS���q(=���EQ�x�-mG�~����n��29���*]b�f�<���%�{�q�pl�+�#�,���
�CFn������B��<�����R�Zp�x���?�N�
�O]��S�}�J�����n�v��E���'���^{j`��b<��z����S&����o}��{�1uES`��Cy<x?yG���Og����}-{�g����hs�}�x�mH��KI�jc���9,��	�:T?y�����XWXTF��q��c��Cp���q����Z�������1N9�
�-3�����,�(o8R�yu�����<���������"�������CqY����+:4�V]/����;��+����>�X�� 8!~�8Ke��E:��tE���w���'�a��~r�E��7<�7������SW4r �/�|T���oT�E��7H�{��.Q{A���<y�0�:��]��h������Z��<N�'��O?y�a�;A����O]�q�`��_N�����q�`J@��,���=[��:o'��o9u�T�k�R���<=��4��w.(���!��q�����"t4�������e���U������"�)�����~�.�����tE]�w }�j
�<�H�N-_��y�}�"Sy	�	2��gN�����������!�.��j�0�RZ�>O:G
�.h�	*������|��$�*�'�s\1��5�t$��q�	���%W��}����x�^LW���9�y�z
��h�����REW?}���l��M#U��3'�^���*?�>w�w�:�2�f���w"N���MW��X2�K�
���3g����"����|*�-�y���MW������V�;��N�
�r����b<N�����R��z�
1���@���8��$SS�@��S�q�T�]"!�.�;�)�.1�1��1����Ly�+O�I�3�t$[���[��������6�+uy�3�t�G�>��'�Z��8C���Qo>oIo>w!�����A���.�F���������R������8��w_{�r�q���m����8���p��T1f4N\����������.lTP���a�|�6_�������7���������s�r�"�;�w���D:)�RB#�O�;O��m_����~��
����7g�q�����G���m�;Y9�A�����w������'��{����c]�m=���T5����7W{~�%�J$���m��I��3��?�80��6�:rY���DFFF��`>wa0~W]s��^�����;Ru�g�`>w~�����&�N���X��������k��j�,F��|��]��9H�O�����3�^������y}o�q���I�o��X�������9�{��Jg$L��!����^�(����{�uP���-N��Yk:�~<���y�R�.T���m����E �M���}�y�B�3D����8����������2
��v��:����.?h�C#��a~7�v�B�q��%�`����bA��`q:��8-�K���g>w��%=bT���]���j��z��|���_�&0o�*���]l�l�h�����t{���^N�>w�\�%�-��<��r�u����e����x�8���n>w!���5�S�,�#R�M�@x��f>wG��\��������.[x��+���QC�i��i��Tg�`>w>����z)F���+�-Z��,A�=����>.���g�4��3�oq*r���;����)��`>wq���n�X�<*&����Yc0���9+���:��M���
�(/���t�$���~���+����r�l/z}��Qi���87(����g[���o{!�<*��5W��	/l�C�}O������@i�
�9�jK�G��_�Ki��|�yT>���}/�
��QG�G���EO)��h�
^y�A�/6�*�sk}�m=�`>w%p���T�l����W����>a�yT]�����n���y�����wj��8,����%����r��{T�,���yTv���{[|�<�(q��Z��.�06����\�Z������8������s�0�Q�g`X���U�8�
��82�E��y�(E0�f/G��9��
1��z��`$�2,�V��r�K�'!�1e���Y}��>}�bv8��oO��SW4l���e3�`�(7�s�tD-�r�1�� ���4���$�~�Q���!l��2q}�}K��
�i�y���z�����>w����H�|?�yT���N)������_q������X���6�	`z�)�<�5��\�j�&%�U��V�w�����p(�	B�\i�(?�"���s�:��<j(�!N=����G=�^/��3LY��'
FRs�`�(Wb�'���������OF����a���L���V�����(�u>KUq:�Q�}��R��U�b�����/��]����\��������-�^4j:q������w�\/B#f���W�=j[/���r}�X=�����9��[|P]E��h�(�9���R?������������r��n�' �<��c���-�R2>,�)_�[�a���G��y���g��'������ra�y��}�cXs��m��cN����F?�S��8k,���<�5���,��x6�����WE��DV�r6�|*�@��Q~XvcDit�>,N��g=�>����s����%8mu�t��F�>�5��R���Q��D�G�q�]�)E�T|�<������S�,6�t+����1�Q.wA�����6�:�'�<�eR�a�(#��MH=�����gS����\���H�f��R�3��s��E����*������*���l�e�s��g�4�6�
���/)�u�yTx�]���?e�3N����
e�8�Q.�#����6�-���$fqJ��M��$=�c<�E��~�Yp����wZ��x��B�������o��z�q����5��F�G�a�{;�E&�y�v�H�������|�T�"�<�����S���s���
x� ��1MJ���QuT�Ri��9�i�Rqj��8��.��}�97���sS�c�6�:N����:G�<*�P����	%��g�&�.�U�*��<*��2���[*�P�G
�`�B��U�a��X�q�>(�<*z����	������)guh"��:��D���lj���2�/�m�4�Q%���E��2�R�X`����D�G�1�B�!N�������Xz(�<f���b�luP�h��<,��k�w���R������s���mU����z�����{���D�/�&_r�|�U�yTm�����v����n@�.��d�����^b��������W"���9�C�>wu�}z����b��W�:���\8�Qu�O�������j���a��xU��8_��"a�[���yT���L^Ug�)����"�Q�R���*u^��E�������c\q��g��=��gI�?���6��^���:H����>��m���8���=���}����^<��&����~� b}��=C��}ZcL�����x��~���;W����RU���I�u��� �F�.L�������zR��q��
��s�Q���l�����M��)�74w�=*s6��1������G/����5f�.��N���ke��Q�;?�8�������4�9���~m�l�_O���{�����������'�zJ&��Q}@���������G������Yh��^_Z��,��E��?���>�[�fk��Q��M]x���ye��(��>5"�?G�z}�5���>Ms5�p[��������NY%q�Z8�3HS�oS�k�L��1��G��oJ������zY��F������[�u��*�M����x���I6�rC�
�j����z}~��'@)����Wis���k���l�R'�n�����Q��C��0+��G�Qkc&�>���pv��^�<VE���<*m���4��|
�>��-q�k��l�B.<�R[N� �G���]P�M��������1�V�I6�zM��m����Q>�z��hw�Yc�z})��P'�Z;M��Ao^��i�%ea��l��{�1`Y��`O��|�]��n���|�Y��}��c2~���kwpV�Z/6��n�Sr�w6�����������^��
��q`������6�05r��y�o<u����}�D(9`���3H��G<.8�E�S��4s��L�}��Q�5X�Gr�^i���$����c�c���94"�w�����W�Gy�!�<�
>�p�{�g������z�+��<����
�RA�B�G�V�>��s�d�(�6E����'�G��k�PZ_����|n[�����S���
���A�t�,N7-Fb7���y���,kgB�/L6��c^��1`X���J�
���8��V9H$�G����<����6�
�xj�e�w���X�a~[��"M�>X�����������F^�����C)�
�[�G?*:�[�o���?*$�=�!I��`z}�o{6��U`���Gu���9kn������t�Y,��������4��Z�.�v�Y�<��l�P��i����E@�*���7�-��<?*�
t��s��dz}n@�p��F���M~T��A=61kLs�����' M�>�s�z��/M�>W�SB��~=M������Yy����Y�m�>��&?�n<=���?*P'{eU�S�G�����[�=���������M^c��������H��
����E�%�G�������Ypx���B.������>��	������>�R��o�mX����O�w�{�2[����k�*����Q1D�)�}D�����7�q��Gu�����D��O�n���s��Dhbo������{T��l����h����3�M�/>�T.���Makk��a��C.b�����plot��z}�4���u�����
y����:_������s�{��Y,?*���@NVs�<�Q�p���X�����y��r!�f����3��'�����<�����|"�`;��:9?��c�u��.�Ay����<�)��l���^�x�m�<�m3q�pD�#�y��hb�IO?�N����
wV�����q9���gz}���J���s�6-y���8����#��#_L��3��T1�t�zq*�yT�p�	86�]�|?p�������G�M�9?&���Gmx������g���z��Q`�r��O��w���Q�n���2G�R?��O�m_g�j>��<�(7��@/Nu�3
�n���a<�@��CP�e���
������?�Q���Ns��l�(?dn�w��R�2�Q�*{�����(��G
I��� fS��i�Sj7z���ZN���m=�c�>^���%�}Ys���e�G��if�.�����1$
1�j�t��(C/���V�s���c�EUe���^�3�.pl����h�c���z��q:h��^pz��y�������T�t�M%d��i3�H�
�h6�^|�KE��`��������-aP��@��@����DU���K��J��B�}Q���T��Y���]���b@����v3���X���1f���M� 5H�/��{����J�M���m��'l+t
�������|�<��z.�k!4��L�)�)��X(�{��c��A�U��\'uK���Z6�T)G��!1Q`�$H�������*�m��0�,P��.�����U�"d#H��'1F-��?#HU��6����9�r��\V��L�T
$�\��`_n0K��� �c%�1���c��QW�S��|j�6�r����U��H��L����� �6!EGCQ�����m"�B]��'�n:6@����)��8-�P8	R~�k@�I�wd#H��H�������a��7C�R2N�J{�9(�:�R}`�z���$���:��z
��h$O������H*R�t���LtWM�)��)8N�b��y
��^�-0��N��Vk�x"��l E!�
�.��$H
�S�K.|�������p���������O?}������_o�����������7���������O��?�����|�x�������;�u��������_O>�\�>7�����������������7_��������~\���������:��_`����������o�����x��L|,������\����������~|w�����NW��������We������O�jc�����y���|����������������	���������c6���<|���p���w������t������������>��/���/�����3?��rl���Z���#j�~w����a�~l�%�w��5����3?���������V��+�V���������<=�;���K~���/�g�t���#o\���x#������������;?����FJ���������tw��)�����o���#s}�t}��������������?��K|�~8����n~��z7~������+��n?�4s����'W���u���wo����?_�������=����_�~|�}z����Y��H�r)�b�{yv,��_��+�o��}�����o����+���lc��:���F?��$:�z9�aUG��K��:������I�X��%�Q����h�������^����sn���n�1�z��e�wa=
��Zrk3��U��K�_�EYNd~�?�W����G��$4�,aQ���O�"��PB8��������.�}��aI��^�>�%��2�8�kR"/����@x\�"���}��+��@���#�����
1��8���Q����"��
ED����I�P_�����O�����ps��(��6����X��@��r,�~a`_;��@	+�����G3����.Z�I=Dv�^�����.�0T!���e���~4z�I���||u��N���_��d{�@���6%�v����O�����Eg��i���E������)<��E��}�\IQ[t�8Dg%H\"�K^IAR7���>tv��PZ�g�_N�h��$�m�=�a.��,�Z^��&�y�#�:��L�Xy���^��`��o�RtJS�
T�
D+��Egw��B��V��e�����rP����d-RnM��.|a�^O|F�=��*�uZt?�f	��x�������i���Xhm�Mc�bj�����V*@b"�dY��/o\��������-:)�(����Cm�J�
�e3��M�.�5�53k��H�������K�.e�@5n�wS+�o����.���uZt�~i�f��������v��	�(J>P���|1�C��3w168E���P104E����.��J���C��G���Z��8�f�Z�J��]Eh��D6$E����r����U��P�(�$Pftf8�i�%FQ��^.f-q�6���N�����Q��h�j�p�4��.� >F���&�s=5����V������,w�ux�74��%J�8�T1�!/�Y��'j"��C�Fy'My��+�1<!����|�e���*r������=�W�
����H�k�.W��91�Vi7���R��u��.���b����Do��F��Mfp���e���
���%,�7 ���t���@�9AA����l�W��7�8�b�e��`���>e���7A�B!�\P�x�7�^������t�
-�v�H��65��*O�\#�88����.�%,w�&�T&>�QM�09"��A3���h>iE�(���I���6�`J����b��3��v�=��y2R�a	���Z���8�{7)<�Y�y\�W?�
�Vm����!�6�5���8w���##���M��c�W=�����,|7�1�������
��7)���"��s�l��Uh�5���bW�F��e�����qSJv�/J�E�����t F��0$P��3)��G�!���O�Y$�r�����H���w�i'�#��<���*�'u7l��8C'���SJ�%��X��	���l��E%���!Rw!-�6�qo�]7T�/�����.u��N�J�8uv�o��z�b�'uw(�"��N�	��$����B�Z�����s�O����YR��q�,���m�����E�����l����F�w���^(��u��5l������aa���dFp�������6Q�q����\����o�s��������Z�!�6��P���kPBaFl���g���(m��0)�!K�R3A�b2�����jV�jg>�eJ��Mz�s���b�����K�!�&����0m���,o>M��c�4�oR��UJ��}�T?�d�%�Jw�Z����u��)�C�/SJ�S���T�06`�����6�j�N)��<����y2#:jd��okR�n������y������ G�k�M�� X�m��:����j���,1?�d]�-2�T��)%��<�����Uy��u���2���	��MJ�
7��~[���������X��>��7)Y7�#���e)������7�X�,S��CB��M({SJ��-r@"��I�zGi��Y�eR��o���;�����I<{�v�*>LJ���v�����d]-��#	�QoR��e~[�a�9�l��������d��d�FOVT$�N]cZ4��0���>�|��D����c&%{�>�k�g������qG�u����x��uw1�6�7���R�������@�@��11f������(Y�$$n���m����z!����l��3����}L�C�)��@��)%;\`�����b�&%������^�S���
.r�8�\�z1)�0\�!���.������.��u�5)��V���.k�p��4)�8�C��#p����O)��nW����z���8��4`���{swxO!>�/tj��R��;�)�
}oR�CS�s� �����C;�}~%���l������@���l����n��D�0��� @�4��U���vJ�"'{Q��M�TH���]�����B5��1e-�~J�f�t
�>���I���x�^��3��Bk��w��z	&%�D���"������g
#��`R�!F��b�\E^SJ�l����^0��I�]m�:b��g�8G*��M$j��-���U�N�[��M��+�kT�s^��I���P;T|/����d�p�_��r�:���0��l�k�nX�c��=;��l�����^���1����������/���k2���T��)}(�I�����)%;��u�v��D|���Z��We*/���Qa����<J��Y����X'�Ycx�G�q��r�>�8���
C��QR��N)��I
S�G�
���:��@�9r��F�+���o�������d��7����5*� �k4��	��RP?�J�DU��yTH�s�UuL�����m����5���Q�m�$#�d�����������9mu���LJ6�?�������O��A����N
gR����@GE��R�~;W?&�@��d�&E��7�YA�y���i�u���imj�,�������Chs�kCJ�����Bt[���(�AaJ�����m��0�N~��-=�t��"��2:iU/zJa2��r��<�[U�N�� 3�A���O���R��8*�lU���E�f��0YOn�����
�&���mL������`Y��wj��
��������F�	�%���Y�����7/���3�S	T-n���:o�J��L��'���d?u��<kmU�M�S�$*���o��?��S���)#@��� P���n���Z{���U�=�dd1F<���@=)c������X��U�
&�,������V�P�U��P��&P+&cF)��G��$i�����I�n6y�R�c2���'p[�����%SB�suug��+	�Qj�a����'@��gl��=
=�"fZ�������5���6�}��<%�E=L%��QNh3/0��Q56���V1�F��e��������
T��9�C	��H�u�sB���d;U�����t��b$.�,3��O^T�,I�bb�MbT��S�[U�Mf�3,yT;9��Q5nj����`o�>9�>2'��Tk��Qm8�]�c��>�Q���������>���W@���������c�V)�Y�T�u�X8��FQ;�������������x�^JYrD�GUX��8E-���u��*�sL��'?���7JqD�G�1�n�Q�F�G��i]G���������a���S?��:�Q�s~c�J%�'?���|"F�G��^Zy'���l4~T��=G�#��z������s����&?j�9��q
Q'���8�A�[�}����Nv���G'?j����\��;�im80$+���3�8�
��!�y_hF�G�H;��W}
����@�����a��9��E� N~����RSl�8�Q�Q����&b�d�z�jK��p����;��!�����agO	8e��d�o|�@	0q
�G�������'?*P��.8E���G��/��t��g�����r����l������z����W�8�t�5*�y��O�k�����&?�&���g����8�
�yi��D��<�
(�:��A�������0��5��M3N��7�5�9�r[5������������z]���	�=���J$(?������o���7]�A�������;��6����'?�{����em9�Q������1���<�����_��6���l�3r3�8�QC�d���w!�s1O_�t_�"'O~T��(�+��q��J��p[�J�5[�Z+w�^�l����Qw����������	�e�W�-�������K�P6�q���v�{�D������p���mu�����~���2y'�����j:�G�F�:yA��������`]�^hD������o��R������%���T�����y~!_]�M'?�dr�8�V{��G
���} (�W4~�O}������Z4~THgBZ�{��5>��]�3��X'��V�
�9'����8=�K����.�a8w|��~�R�Y&�/D`Y;�okx���%��+7'?*��������
��b���	B ?*��z
r��>?*^4��X/*�?*�D�� �'?��3��0h�������;EM�����#��>�Rb���|�a��(p9�M�ia|@	^a���G
��O�s�8�Qa���fZq����Gm����:�b�R�R`j�?�V�
X����������c��y��Q�Er���Wx��g��@���:{L~05o	������*�Q������(��GA����~2~T������L���&�*L^2~T�����w��o �q�;aNF���C2~T������'�*q
��@E|��1kL��J-����|d�N_�4'|�~��0?*��k �{%�o��|�<9V*>����i������:?*�_]�z�����]�FD�Fqh��Ger�*mW�}X�>��g�;��d���3yI��*�x2~��]��o�������#o�RWA������3�i����g�4�Qi�����r�q�������]$�G�������%�G���^�>������J�����}�Y�x��2�A������g�yT���� ��d��
��5"
}�d���c��)�z2~T)�<>�}N�d�G��q����x1J6���R�g�������k��i���J���[&�G����(n�IwB\�%Nk#����w��#������wZ��ub.�lUsg��w�D]�^�Q�5:t����RK-?�������b��lU�;]�[�����n��:�� Q��4��Z7��>e�d���s2z(^�����+=��w����Q�����E��E2~���k3����'�G��P[���OY�yTm�R+K��vi�y���'l��F�k4�z]�KSu���j'��,��������yT�=�k^o�v0���]��EE��lq�:��t^�����jo\��9Y��K��=����!z)�8�����P�i�q������%�G5�Z�������S���X���Qm���K��U�a���"��j�:���S�o�G��/��bz}>y��l=z�O��=�Q+�o���5��i"w��-����z���A���9P2~T�������v������
�<�2	4~T���qv���J�wi�5Do+�y���a�J>�XsS����00$E��S���L���$�yT��t�c����=��{����!�������>�j��s��9kD_[i"�:q}�\Zsq���5�|�CBL�����yTdO�w���Q�&��{� ���9�?�m�uh�1�JS���^����@6�
�_��:=�}L���_�
�]�cT��iY��$����QO��p)N�0XNm�L$j�b>Wf3�<��F�
����3�y��Cks�7�<��
����>a�yT2��2�6��.s�+��sQ���i��ncW��s�}�5�=6�G�����O4TU���QO���Ec�&p���Q�8?�9P�
��|Z�s���njo���ciO��Q�<*�<�5�i0c����������q��)e�G��		<M��+��q�8'�bL]��R~�����0�<*4je1���4����QQ����t�yT��%5�p��dw���iB� ���������'���^��O�w �G�S�G�B���&�sv6~T�|���5�U���Gy:��,X����QG�B]�o�����Q�G<��o�;d��M�k�/����>�4��@{C6~�q��tP�^N6��\rX��Z�+�|������ ���G���u�K��l���
y'��]�l��6xI�3�N��:�0u&*\j=���*7����m��~R��l���,{��)x8*���6�Z�*�W6~T���	~�������(�������������me�?��c��o������j��=��T>��QCn���$z}y�Gmk�>��3%��q$�%��������e�~f�E�O���������'�����J!o�w���4�T�����?����QC�g}�F�kX>M��z[M�����<d���?���Q-�F}jf�g�z(���C=�<�Q�&��?��T���4QC�:Y�Qi���y�������P�}�&�_9�|�z���U������h��n���}�l���VM�t�����U�m������3N7���Y����V��z�B\�X�}��=���^��Qn�L���w:�M��P��g�z}��S���^_�z}���5���zS�ohU�9���b���9�!�����c(O~T��o�OV�����t���>'����=y����| ���6�:J\r�g����GA����M������g����Q-o���q���Gub��Y��Y�Y�nz����<���g�����ye6��v$ej� N�9���z��2�����1�Q}��q��P�t�M;��_�;��=��M�<;O����V'gD�cS��vr�1+h�Yf�n���E�>��G�M��{�7�^_s<�z���'Fn3�F��#k)��L�>������V���y�QY������f��5���XB-[b����fB�L��5,���pJ�v�&��7�7HR�d��-�q��xRM�)��b���� �3���	m�@���z���y�E��L���E�YQ]�@�B��DuH6��>�g��C��	����Cqu
;H=sea%�-�@�%�ip�Des?��7�z�H^��2R���U$��1�pwu{�����������?�~�����O��<�><���������W�on;�����w?���<^�};}������]�~uw\����/�w����>|���}8n�����������������o�<~9�������������q?O�u�?��������������������?>&��{?�7����������xa�������t}�������wW�]��zz�D�}u�O���nnon�>�>|������n�<���x����Op�����7�����<|���p���w���/�����O?������E?}���_�\�?\��%�?��?�3�.�q|�^��h�����X���������w��5�?���g���������V����V���������<=�;���K~���/�g�t���#y\���x#������������;?����F^���������tw��)����o���#}}�t}��������������?��K|�~82���n~��z7~������+��n?�\s����'W���u���wo����?_������������_�~|��~���%?i��4��J��{�a��1������~��<��+��2CR�{~���N��P:������z��Q7��K������$����3FO��<s�7���b���{u��Om}y�Z����U{�D�m}���?�k�����?��.�����������y�k�G�����&���(G}����S�L��A0�8x9���!�b�x�
�n2����>\A��]�\{��
�2S�K�(��
�)�!N���8���'t�K_�/�s�2�}�=������T��uB�0`��]�Eg�P��tpP�3:C���g�0�����lQ>4�p�-���������<��7(��i�������a.��e��3d���r��n�e����DZ%�%�Pz�ApQ�k[��y%zl�Y�����0�Ei�<]+�C��.^?*�6�R����= ����a-��y�K�"���A-j ��)Ek��7�B�v'��1���H3��g"�����4T��7�x	���,��"�/�|a ��:�/M�$�{��>�M� u4+�o-CX����h�u
�{�
���cx��
�ql���Q���CtFE��]������2S�_����C@�j����=x7��L�=��
�rUc�����z�PR���1g.v����Dg���]��_.1d����>)dF����c��XY��4��	bRC@��-��=�b_�R�W���;���3DE
��$��J����N��) !��e�����\���#U���:	L4�+��P(%1���e�Si��db����*>�R�H[:�8q�e��:��bHe@�ZM�p�VD�z�GwX#�#����Q�	"%���<s=d}�*�T��1�� ]��H'�����0u��s����g;;7��YP���{�������������%Zc��FL
4|���N��D����;������_O���0��h�W��Yt�Z�~__ffuX��M�����8�!|�VY���d}A#�,
��s�6�T������a���%D?AC��"2G98f�������/r�h��m�,wrE+N!�y�H<���S��>������Q�
.����#o��g4R,x�'K����]4��2s�><,���a��_L�����K�Y�e?�
E{�
�Q���?�6��6�EyzB?�������
�0�y/I�%��a$���OW�Uo��=o�s���v���������L�����D,���S[�����+�7����4KU
���u��>I�������^�c1�1-Y7�4���P�E?�
����A�����d����rh�������}���������ivxp��O$&��d]���"�W���i���X�X�.����fl������H�'	�h�����a���`�Oh�z���n� H�&��y���c�Y�Zsaj!d�{�Dn���-���K�����i��|p����7-YW����rB[�Oo��6f^���7-�#V������i�;��;�y����d�������"���CN~�gM�Y�i��a!�/�By�O}�v��8����mL�'j�]�VW�|�����Z]�-
"�;5(�����������p�����m�~z�I!bu�8V��m��x��['��p�^���"s�i������&N
>�|J-&j�)�oZ��dz��������������T���i��D��-�
.�����qo����t���0����WL�n�/����ktu����������d]�����I�MK�?[.���
5����5�E�I}���~B>u��N���G�o+~z�����R z��6|�n��*���" �g�"���i����?-
��3-Y��{3&u��Z�e���l)���6t[��}_>K����A?@�����w�5u����7o����>G������%e������x�6�R�j��D�Oo�A�^k��s�����%����q�G��d��v;����+MK���0���"����d��s�W��	y�6��w���R+T���m7=h��X������n�������
��WA����ak��������l���v�o��m���F���MK6m�e�������d��,��56�W�nMK6
�����S��i�&W#�����1�y����/��RZ���8��c,�&�7-�����%���7-�#c���2-����5�g�:��d�s9�|��z��d����5���*��i�����G]�������lvz��	t�:u7%���("��d���Y���A n�i�f����G�����ds(���7����gZ����F�����m�c<#��X0��ua��'I����6l��#�!z���dc��uO�"Lo�����zLi���M}�
���8R�0/�!]��#��q��0oC��8w��"�����X/��Y��`Z�)Q3�9���1�����_����yT��z��FE,���|��l��l��G���az�����B��m��Q��Sy����^�����(�Y��QG���Q�E.����Qi���K{e��0�
����]+��0�
��{�@����������=�<*%<���s�0�
�sv�\��X�yT�-�����^l�6}o��$<k��6�j)��*�C�yT��voT�m_��l����A��cz6��*�N�1�GUOo�����Z*Lo��e�<��5�g=�*r�g�`���x�OcT�5�G�@O�g�yT����g�����0�
�+P�^�=���ru�0u�^���6<bi�����yqA�j<������a��-��Cq"-Ns��S�SQ��6������C�~�����?��'�J�G���[����L�d�G5�R�=��O�=�/q�F����!z���Q���-�a��]]czp��g�9J�����Z���$�����G=i���>P���x0o�J��%t��������#z�h��`��V�[����+��h�5,N{��'z���
k�i�Hh"N����.�i,���k��)=�8�4�
�c�yz1	g����}�|+X!azY�5�p�W^�azn>k%�1�<�������}��Q}���9(��G��`���;�zD��z��Q�r�^���T}j���6�������<��T�7@�[�����)2����a�4�m�#��n���3�Qe��>a�^����Z�82�z1�6�j}��]��O�:q
��G�1N����6�j�l��T��4�s�*�3���K�o�~����G=is_��S
6�j�q�D��*�l�:��%�y��H�3N����?T>�yTw�zAk*N�����)�E���������R�{��C��O������\�UFJ[���B�O�U�f�J�%�A��Q�J�� �J�u�DU��5�,V�^i���DL�7���y�XQu@Q���^����E�H�O/ay
��E.E@�s�`��:����+����QG|T>���}������z�:g7*
����:�	���U�w�J�$�J����"�i�&S=�G�ci��������8%�q������s�0�L���U�����T���*�~������UJHT�Y�\8�h�����A-�&����|J��M�Ap����*�/����G��������U/\Z�:��~�g|x�����
���NjT�B�O��=*S)@�S���S�g�S�b�����I��Yt4i��^�x�o���3o��=
}�*���������k��G���a=��r���DT]�c��G\���M}��lV�]a�������P�0�i�����%j�8�
��J1������W����J��D��S�����>,N��� 0�J�.No�a	�=�c���^�j��Y��E�G�(��L��7��^�������L��a��1��x���0�������^��H"wV��NoC`%��s���4�y�H�h��T�p�mX�oF;
���������M<����0o�J����H4�������4���4�z��{z���2E�6�"��T4~Tk2.�u&���px�\���j�OoC���0��������n��V��b���uj��D�0&�W�%�z
���Z�g�{����q:����w��Wf�I�S}��Mx	�bf��Q�<���"f�1��L�*�P�E|�)���
�}��qz;�h���0��Hu������"D���6�v<[=��a��o�/�-��G�������9(�|z���z��z�}��n�7�	M����5��UP��e�L���e��X���%2�AQ[yoG���a���9[
�No�H�l�>��%E�G����y>j!+��a��E�'�����0�w��A�FE�{�-�uC�{�������<���
�6�r~��&vT���i����R��D�����ho��6�:� �.
�@b����k
�7�Q�}X�z��{6No�#��`���2=�#5"�W6�
������^�Y`���6t��Qz�}����m5.bL��:��\����Mo�#@��N��_��gZ��	u&4~�s����1����?�x�MW��T��im�b���^��a�tx��K�4�Yt�"}��e���E���J���@�������p���>��*����7|��k�rR���6t�P��T�>�Q���G.���9����@���V_���a��60�����G�?�N�/�"��u����o�\_��q��W3�im8,N��E�������S�~!�3��0�<���pi�'�KJ��r��/f��O��r�X�^������r��-'�^_�z}e��mo������������g���{	]�cMpW����������C�M����n����"���Q~<���EyKe�`��#[���I���W�����e��N�"��^�3��B-�/?���E�-�����Ou��W5]�z}�S��Z{j�L���x�y=?�=�&����Xs����j����7�2�^_J��cL����7���}�wJ�����\�[.D��k2~�����y���IS��(/P[j��X�z}�����X�����^_J��mz9*?*�D�Q���0?��@m9j��\h�(?����k�}������P{P����B�t�#j�d�����x��_��5~Th�.��}1�H���n���]��b��0F�+G���*'?���Fm�tB�+?��,:�
2��|���# �ti��m\
j�U��N��
cY5"���j)�G��
�hf�kL}�����g����Q�j�R�G�����+~��
A�������a��-W�3H��
��'�Y�Z���
�����
�C��zq\�T�W�t�LTr��m����Q�5�L���>�g�zj���R����Q~��)P1IS��a�oK���F�o���a��U�Z'�G
�F�p�^�����#��k�(��>g��co��G����.�����c2?*��=
X8/���Q�o�B~���&�G�!�����6-�d��8�r���^pV���Q)R��"2>�}���o��2��C��q��~k��8F������|�3Q��X��r�>5~Tc�u����t�����H	�`](0��Q�	�%2����Sg��N��'+�[2~�m�f�>��m���R ���.
;��uD,���� �����!��t"�����7@�%
|P2~Tj��J����$�G����B�<�Q2~T��=���*m�d��6-�=G"?*�Z��A��������_�)���Y��Q9zj3�}~T�z}�(����}?�U�yT��:h�CQ�1�������tS:h����s���wQ�B�����zf��{2�����N�����Hml~�(!�����7�j�x����^_.�����������U��#�0������Y�=z�j)����po����5����V^`����++�p�S���}�n��>�k=%�
�L��������0�5��2��5�X��5�M�������Y�,:�<���*�q������j`�^:x����QGI������N���wd>xQ�p������|XW0uE� �^_)�ysdi�l������g�l���+���=��X�6�*����,�
��Q��M?�hQ�g�G�5��F�I�\\c��{%f�<���??�X9����	��l����~�_j�?���2�&?[������(�s���-�<�Q�����Z����8����=*?�)���I^���6~T��g��Sk��Q�7���GV���Qe�>�k���e�G�&p[�"�s���K�/O@]X9?������%����u�0k�<`QKe�G��1��SbG3����3�&�/��Qex����'���Qip���}/��l���*
o9{��l���77���"8x��Qu��a��9����*�.��g1�>^�4��g0z��K�'���{�F��l��c�mz��W����[��[�����*C���9X�����*����S����p����G�������j�8���&?*�_XxQ�������s_��}�2?�8���sM�/��*i��u��C�����jl\s�H<]6~T��z`6.?*o��@�����U��	>�����J���G/G�6e�G���>���(?�
�.�i��l��:���g����b��Z�����Q�z��h�M=fI��:?������#Di�f�G�}��&�:�?�x�D��P�(�G��PPgBai����(��@F�S�G��7.`y[�0~T��w�t�D�/�I������b��Q�e����9f�G��k�G�R���\/�N-N���z�b������!��'�/��Q-��gSu&�g�40�BSE��r�8��qJ���u�GUON"��&�1u{2�[bYT�n����>�XWgu�G��5w���z����P�j�������<�l��:`�����?���}g��b��Qo����<��Z-��w�����Wr��h�0Sg������%�
[�����s1d���gz}��U���z����*}����G��5A*��B�*�������0��*8�
�k��1��a(��R%o�6�J|0A��7�;�g�}���r�hg#HK�S��@iuv� #��H�R�cj��4�V����&
RY~�n�B�O�(��;������P#��wW��Wn�����~����O_�\��������O���?>���p�������|x�z�������������������Ww��n��r}w�������������;�>�]_}|��\�����������\��k|�����X������?�?^}�����_?o������q����<?��O>�7�������%]�~�v������o����^��������>uK�Byws{�ps����������w�����.���Op��p����},����y�����$�������~�_����o��~|��ww#�~�����|�����Kz���gQ<,���({��.<��s�H�%�tW\��cg��s����~��z���;n�����n��;����^��������������r|�O�|9�������0R�?�><>~y����������n��������o?�Nw�����������9R��O��>}�z}���p������;�����#��|������w��<|���������7�Oru��_W�~|����p�������\��|��g�����g���J-��x9+���|�����o!�|��$T�FQ����������^��VN��C�\��?��4��zWpI��_"��eO�/qT���K��KGQ0��!�T��B;��k�������Mj�����)Wj���8*x!]��>����������:R��q�'�H��r�q?��?��8���i���~�� �Oe%���������^������`�4�����1���@7���a����#��W:.���]S��66��s��Q�8
���;�M/������2�+ah�`�A�Y�T���ujc������*+�9��� �;�����'����P����(����.n'2��D���eS�����#���r�<����mj}�F���i����md�6l�'�0'���Q���5��I$+a8k�l�cl�4�����W�����������v�z�JZ*t�0�&��)kb�:1�+i������A.�`!!�D\���$:@)Z[t��5�)�.��o1�x���)��lg�?����6�*l�y�~����������kdj��ihI�.1%�W����jwQ=�%T��i��	lC�5�E-�V?�,��	�h�vi��*g�,6%��I)���lg���Y��y�Z:5��S���`�,a����w��>O$��&TV�����,Y�*L'&��v�g�Z�6t##�(%�Fysj]����B���+8P�����i�����*�I_-�V��1�$��p"+YZ����rX�@8��E��������"�\�(�(Tv�j��X����%���	����&�b���r
���A*<�)S"JCT��)X��Td�	�(pf�"H�O������D�dp����i������rM�J�a��O�(�h�f]�G]J7,Es>�Ru��P��[�Pj��|1�=�8��IG�	�(4d� _(� �Q��i�RwW��Q�������61Uf}�?�(
QuQ}��.�g����X/������x��=�v!��&�"S}|s,(P��e-�$<��xBYp�������;� �A&�5���^_f��x���a&-@����8�B�S`I9q���_D�@�D�����2��M��b�A�N]���w��,�N����e��'W\������.e-��`���
q�!�7�D8z���I�g�	�+�8zQl��qX�N8�7�Y�y�Nn�K���y�ZY�p#�[o�����y���;�'��y��3��J��q�}��Iz[�OM�!��j3��0���Q�;�J��1=�9�_��8��q�S&-�\�"���<��\�h�Dqr��qxT�\/��Q�?3���B���ez������8��gzb0����G�n���&9��Z�l�m1&6'�g:
��L��z�yR
[����.���NGl�p>���U�������z��t%�F��R�\��2���a����k����M�Zu�.l��r���OwltG�Zx�#=��_�nQMo�������(J�M�zN�����7o���8�4J�[�%���5��E���a��14�>g��^	Ov�(�7MY7�?���G���MS����k�g����)���z�t���MS��H�b��E'�OM�cK��7��[���c��>������MS�o���T�o�����k��A�����b���aqZ�I��K�j��u5m�����MS��j��]�\����7MY7��u�<�����)����E�� ������8�����7M�c���8�� �X�4e���x
�N�7MY�;�5�E�OM�#}"db�}��l��	��:GMM�@]������7MY_�v��W�aqZ;�-�b16=l
g 4����4e���Ql���7MY7����RY���a��.��o��-��7MY��]C��i�{u���*c�4e�oK�6�c�����)�=����'�O���6���%
��7MY���^��C�PLS��u�2�J��
Bg�����>����<��=����Q�)�n{r��o����,
�cb�5MY�������5l�6ak� �F�MMS�����<G��������U[���������\X�y���5��z1MY7�%��b�MS�
x��u�NR�T���;�djc�}�4e���Z5�u6�;5MY����P�O����oC�O��j��q88�8{��"���}?1'c�B/��������A���|�*=up�
j�7M�'o��}�+^�MMS��_<��>���1T�[���^3$o���:����&�U�MS��h��n��m���h�v���$����;����CQ��i�����
j�7MY�<Y��('��)���L��W�57=����*�MS���>�?�9��lp��-fZQ�.�i��!=�/��*��azf�{����f>���[>U������?��#�G0M��,��)=B����q3}�tV�,�4e}�[C.��czrm~�����!��l(~��^��
�)����P�+6T0M����5�<�8{����V���@����N0M��E�2���>��cX�_��Q��`�a�"����K���`��S��Aw#�=*��a)
�:��� ��a��,1����4��u�Y���0�i�>?�}�z1��0�����
Uk�8�1��B���C0��0���wJ�J1W�q�<�p�=�`�16��fIQ2���k������D����1>*g|�>,N]��s�����0���NA�Q�azf�r�S��0=����Ny�Sy�<c��-�k�^i�C���=*��<=k��)=E|�<*��?
x�$z��Q���5���`���X�7���vX�yT�� z.��x�yT�{6{[��l5��x�����K����o�}l�$�J���}������x�T���Qqh���`�O������9V<�^��Q)�����U�-���b�	�q(�7��0G�>��)���R�}=#Wz>��G�yT~�x���b�l�j�<�pn��a�t�Li��mm�}�������,���r��A�$�S
6�:���kx\C��6�*�}����:�<����nI\�<d�8+�1A,	6�*�{T����e��<����}u��yT�<{T�_�z�6���~�����>=�q�Y�e#e���8R�x�/�\i��W�����B�G�g���}�_]�
���s��<������JX��{�{��
6�z��[��xS5���r^e�wy�t�yTI��l�M���yT���Y�,s��?�}�����,��R�C#p[��Q5��Y�78U'�<�:��`�e���Q�t��=���`���b�,��SY\���Z��/b��y������+�g�G����,������yT���U������Q5o�t��k��Qm���gy���kX���=��}�`��#�G�9~[1�6���m�����S�G�����9�B�?�<��<LA�*�<����eQ���q�j�|� �O�yT����� �����)����^�zn���6m��D<��6���[���_�X/6��.��U��p���<�5��za/G��6���3e}������Z�����K�"����b� ��x�w%N~T#��,��$w��Fz"���N���������E6?����)B_[�������^i���W�?��U"1���Y�a���R$�/.��c1	LM4~T�<�6����h��Vb����G�����N��+=?��c�9�>Q�E�G�@_@��+�K�����-�j��8��'���b�G?����&�R��Q-Q>g��g�h��zlc$dc-j�h���:c�h��L2t�z��Q"<��q�3�t�5�X?�G��?G|�P�2~�Q����-��h��c�Wp������{A�m���g1������T>���1��-��J���4lR�a��h4~T�T�p�}f!���r#o�}mqn���j���E��G�G5�a�q6U6��Q-o<`����$N~�8B�K�0���zf�s������zM �SX@D���c��
<-1��&��<m$����KES�k=@����Cp$b���K�sV�A�g�}r�7^��h��J�M/=���i��]����|���������V">��^��),0�����x|�����m����`���w1�i	�x����m�P��Xk����I:����VG�G�����xD��D�O~�����,I���qXU��5�%v�	��MG��MU���)�5��)|��Z/g|-������J�3���X�k�Ou]�?�&���������R�y�s���N��z����Y�:����0^�q�$��� QM~T)��v�0Q�����S�^I%�N���3����)��X&�4��|���R&��=��9��oM�����N]�G�_���u��M�������B��7(?�h�|=��z3�M���MW������|���L/=q�/�����K��������o^�q�������,|"�N~T��s�(�:��Qn`iq
px���������	j����"�/���^N�<��o�����U�X_��R��&���%���@�����
9���+~C�y����F18u
��N�D����'�@_o�Js��u�<����b��~r����E�z�S��(����B)�O���{�lUgB�G�LL
��
�'?����y�cb�'?j���R� ��iq�2��U�:L����C�<�r�;5�����@]J���_J���~�j~�Gk����Q`&�����:�X/��m�}����	m��u!�K|}�&7���z(���%M~�co��;��6?�������?���4c��)�(����Qn��.���g�|:,�/�*��e�yTk����^�������>��b�S
��:*�->P�yu3�n�g�"�0��Q�n���)���QG
�z,��V�Sgb��m�
�Yf�n|u�R����Q��r�������Q�%`�;j� t����i������.L����c���H�;u��8
C�h}���pb�?�����j��������AK1�M����3N=����CC5Lx[
��uC'Q�%�G��0��'pjv�����0�Ep������f'��e������,�R[r����<GU�����l�G�!����#�R�S�G9��/�gY���(&�G�Q[���.z���Q���������Q~���B,�����:���\sB�6?��M���E����^_����\�%M~Tj���
O'���Q��?��H*N���9z
�����R`��
�y����|��ME/8M~��`!�R���
�r����O����B'��m8������Q�Pr�$
�F2~TL5]�����m5D��,����A��r�r�^��8������q��!�#�8m�vj0�X7~T�59����&?�R+�Q�Q�q���b��IT8�d��<�sm����x��4�0k�+��m�����$��+�1�G�!p�>T�3��=��oB�7?*z�M�EUd����R5�k1&����Q����`�@]�%N��R[�MX/N�����Bf������N��Q��8�\�sS�,Sg��o��_��b��8���o�E�/?*>��.�`�C��K��g�����*�?j��� �����(g��gOI��G�����x&���Q��������9�<*�
,~�<Ja������i�|1�����:���:(K+b��Q!r����������Kg$��a��J. 5wd�����������:{?j$v�z(�N�yT�j����<1R���!'3>���$�G�B�R����5,NsO���������A
�5����q�<j����.Z��x�d���[�>����l�7M�Z��T�c��{[��6j�X7~T��U��	�A�l��,]�cApW����#5�����8%���g��/��O�.�>To��QyH����P�E��6��CNd]����z�V�jTq��mm�Ok^�Y����eW�X�%�Om�KB��b>�E�6�J�l�:$���Q���|~��I�O\�%N���=zW�E����������\e�G�!���l��-�^_8���E��K�f���Z&Q��;���Y*u������r��������~�L��Ps���<�;�o���{(i�����T��Q��������8���i�yT{C��>TN�~�S�sT���jd�G��i�r��0���[���}y�m���_}�3=^������6���3�����w�yT�[
��Z�6��.��B�5�y�yT��^N >H���<��-�?T.�yT�+��ZU=�����
���>�,����]��Z�6��)D���E��<������*�lu����\D�.�<���0����l�m����V�|���e�6���8����p�yT�	����D/'�<���5>0��B�#���o����4�C�6�:N<�QS%�\h�����]�_��\e�G�����>U�a��4�/���<�e�G�aU��uH��o��V2�i�.����6��.^��x���k��i�[���S�a��V:u{��S:F��Q-���lz������s��]��b��6`OK-U2�A���}�����F���X�yTk<�Pw�	=�������[1��g �G�Z6-�_D_;�<�
94f�S���Qu�@V�����om����G-%4���z >����T.4���7_�e&������Im����A��l�����#�6|r.���O��b���U��}xph��o���{��p<��bf���ek���z���1	Q��2����y<6)eT�� U�`�������� x��0A�S.��S�E,#HUO�x��ZUS�Ru�#�������u�S�@,s�@�l�Y�*@� U
N=]��lRu���)j�������$��>��`^R��`x�]�r�8=2c�m�J��8%��qZT�]Mh��FE����:�����,)!@�����6�d��Cn�MR�G��	q��2������
�*���@*��\�
��K#H���:��j���O�g>�����8�(�����e u����.$��D	2���)HV#`�%���Y>-�9�C�}#HY�1�W$�����!��!"R�a�R
���n�& �� ��Z����� U"c���^i�z���,(b���n��#�#Q<L5�����{�j���TzD h�l.���j���[��<>��n��><�|�==|�����O��~�������������|~w������o��������������o�/_?���������k�>~����������7����5w��>|�������~������/��?�������xw5���S9�����f�O���W�?;~���[���$��k��?��9�����?������/�������?���~�>����7�?����z
����nnon�>�>|������n�<���}b����5�#G�<���������'��|�������>���;��������o��w����������-�����������y���1[9�W\�C�]):���������������/������k��z�:O�N����_������?�~�����?���a,�^}x|������������X��������~>���??���������r,�����|�����t����c��z�J�l����x!`��c���4ta��}.|�h��o�d�Yd�U,J����*V��O�zY<cx!���]{��+�Z����|�e�xw}|-oN?��z��n����7��|��}7����_��������?�z�������������:�������}��,���
g�O�
���(���+�WC��:/
��(R����j��G�w=����o�qbt����T�������%��h�+���Kt����=����M�~;<F�O�<.Q��q���ms��8��	�u\&��p��
�����/c\�b��ir.�	�?�����8��K\)��zZ'g���P9�:qx4���#�g���r��S}Y�F!Q_Pxe>U���R�RxE���NZ\D'.�#��)�. �(��G�J��H_>�J�$�m&MZ\��x���%�5�RCAO����A*�Y$�(����M�3���)��`�h���>��Jz����>�:�a�4�f3�J��4I4�x,�KU�O�Y�e�E������^*�Zx��&�l9�����[5�M���U�d\�<�����HK���B������pl���/������/������������U��a'o3����J*����o<	VM<�N�C0(\�����h��7b�9�a�B��tS!�c�*��������7c-(��Df��AW>QL����)�C�
5"l�s�����Q:9�iNw�]�,w�M�\	�;����7B94� �B��/�ZiF����#�e5��t�G���V��8���,n���).�4.8��!��Gk�����]X�r�k�K�H����VH�����0��c9�fr}�%f�2�A����B�����M@��gq@��i�Yc}-�������W���~,z�O������(�N��0:1�$�M���+*��|���uh���8�����~
!�D�����D�7�I���3.�����A���Eb�QzN�U�O�[��^L}��^�|��A&�^v'�Y>�C�|��%�q�W�Z<��c�!�mLG�rv����R
@oCjUl�d��
?oG�"nM�� 3wVfp����d�yMJ����/u�����"�i�����/��Idp����kX�w��N�D���(���&`���B�3x�E���E'�������5a�������6���2��5�kn��od�47 ��A0���"3C�X��kd�B���:;��E���L<�E����.��SEC*��w���%��2���-o���V�N-w}k>�N��M���V2�������ob��S��}-�|0��HZ(�r��rt`"��d-��l*�C(�b�V�����}$Pj��g�����mpC!ET[���Z�T#��F����lw�>�/s;���J	���Ipo�v}�#������� ��K�%Y��l�7W4!�(�9������:<_�{7���^G�H���]���I��7g�7�*���$:^�������!G��rY
=�o���>����5�}X������yS��S���!����n@�k�:�q��LG�w�kY��17�`��Y��������+wU6��yR���^Lx����J�~���Q�ycn:���
U�$-����::2����{C���r����h�>���W�
d�
���J�.��������0�R5�C���0��N���q�%�SI��y���DA6��%��>9]�����2q�_���17������`:���|:����Gq������tT8��7@�������*����s1�e>�3NS_�����S��a/_Z���lcn:@[��N�WMY����o�6�2����v!����
|�s�{��u|��Og�#�_�AI���t���cGcSQ��T���q���t�;N�T�FM' \o�M?�x�TM�O��)�
�(���������~�l���^�W�cn���xQA\)ycn��������q	o���p��M�Y������5��ko���+��p6U�U���~9C��������}�T�c�����������&eP���DChPvoTiS��)��Q�4��8�J���_�������h��6ug1{�MI�W���]B���3%��g����A�$���U��$���~����5�8=N]J	j"��D����Jo��y����h���S�� *��$:����-�D����DCe]����j)S
�YT���3%����p~qB����hLtSh�����bJ�a���Ky]����$��Uq��1fJ��w*"�%\��T}:��P��:���[�� ~{S
�o���+����h����!(G[�f�z*E�^�����M5��JE���h����t��7%���@�P�+�oJ���9Q�6�YoJ�q�@1���z����� ��Y����D�m�3���F|��$zd)8/7�a����8-T���'�SI4Q�A��������2��61��MI�x��
=z�OMI4d��6%s�Y��h��kJ�T
zS��U�B�g?�D�������4oJ�����a>.��`J�q���Q���4L%�J����S��$���"'E���`J�9P
����BeJ�y|/�� S�nLI4W�������0���=c����U��D�Pw^��*:b�/L%�Q�^TYr���$Z�Jt
IxQS����-{�J�����x[1��+L%�����mo���D�)Z��J���T-t���l#���DKf�c}�^M?��g�
����z0<�d�s�yL}/SI�Hux/�)���0�D{}����#���0<�A�t]S8C8A<�$Z�C����E����(RW<��cQ���������r����h�Z>�����h��k��E�LI4���C�P�����` �j�T6S�nxT�������bq�9B�������0�r
�"��)��B�����g1%�R+�+pu'����Q����X����V\#���y{�r?SIt��u�����V0%��t�3DA�R����$���R�����G0<�c�U�}'��a*�n.��B%V}��G�����k���o���:���^��(��)��c���X_X�u��J�\�0�Y,��J�Y���>gx��z��B�T�����h-CU�����jx���\^S�?���y���������Z�������
���%j���U
cx�Q���=;��%/�����8�*���Q����G�>��QgJ��0����>L0<�~����_��>� Zu|�w+��<�)���Gu2<�9:1Q1����`xT��q�5U|{����V���|*�aq�JbZ�1y&4<��J�m*��e0<��*�k*������<��h�/�z�������D(3N=�d��[e�S������ 0<��Rd�� �&���G=�<��1&������g�@���
u�)]`����`xT��{)k.l*��v�+T�V�2�����L(��:�i���V;��e0<���4���M�?���51b=��mxTTk)'+u�`xT#P�F=&���f>����^T}jx�Qqo�{Q������4�T�����8�<�.��K�aq:Z��������|Z���J:U[�\������1�����9
��z��G���w�(���v5���[%��j���v��7<�=�,]z�b^*U3���?����8m���/��
}�ie.\���^D��G�.��.p��g>�t �5�;M0<�
����q����i���6���;�b�8�g�R���n���<�=[I�u�t�~������n���������A4<��Q�~�>�Stg�~�5���kL��#���!W�f��+�p"F7�}��l�(Q[F����n���Eg������.~s�_
�j��}��4�������d���OSFo��"�o�����5��`�F?�R����R`Z�����i����<G��O����g>e_{�nE������M�������N����,��t��i��PK	y���_�����4���Q2���7��e�K!��y
w�hxT��5� �O'�"��������K�J.}��:���h:{y����he��fB{iS����Q���5ZZ�J��Y��/:N���=�e�%����U�f�A�����)��W<�AJ��������r~�M�B	��d�TNiT#S�0E�H������X��{.d��y�k�U"���V�t6�I��a���G���P�Ss/nj4t_U5���=����
�-NB� ����$�F2>�U�&���9�=j����f�~��5��?((�������{�|�Y��	����>d� �����+=P���{�������I�ZGS�+�����2��S�r��*�����6y2��R��S���8#Jv#��Orb�-N	�q�hr�UMw��������zL����_,�Z{�����B�5�{�)�=�(��w;U"�&�\(�u����=#�'��8�����u��R|�q=0�(����W�Wn���hb|-&��NJS;N5�v��P�C�
L+�_{���n�������H��|)}�x&�G�-�������w	i����zLI>�)��I}�85���0K�r��&��F[�n���ES�k���K�E��,�c{z�E�����*���j_j=f�2m�Tj1e�=�(��T��v���.s&O]cj��MJ�b�3Nq�D��MlK���]����kVg�)������k�|}���2��D�c3���
�#��-���Zo\SpE����D_��q�|�z(���F��x/��&����z�+����J_Gv�~9c$�t��
J����l*N�N_�\�	����ili��}.m�8���$t�X��55��vl��uz&�%�V_/�N��u���g1=�FOj�D�GS���@���A��[��M�=�(���i���#�1!Moz}}�?U�E� �^_�m�
��T��'��������@�����W;�n^���L��o�1��}qK��W��@U��:���4���-�&�4�j�S��(�����E�������AB�-4����i��D����Z�t����dz}�R.t���x2�����,q�:H��%��k}��2{}j=,N#km�-�!�^���]�[��R�O��=�kK�9X������-�-E���r~����!L<��S�j5���n����-�P�V�gz}�~gM�^N2�����t���y>�������K2��#��7��H9�M����/�
J�(M�����w���y���Q�=�!v2<�
_k�����'���g�l���������8��De�3��F�n�c���������l0� �S�qZ�O��cS�/:�c�#�z�����K���;$�G����I-�X4��j��/��y}������^���1~��Gh�Q?Y��3�>�Y��|��Q�z}!Q;�� q�O��:�@��vh3����Q�o���fq�H��:�����T|�����cf�3��z}�����9�G�X0�����5L��x^�gB��HS����z^C�B�G���;��m	
�4�(����{Di����������Fa����������\��wK�D]�t%k��Zl��!�|�z��z��<7��J�wOT/���Q���v�QQ�b��Q�7pV;�S��?�G]8�RJ��z�F��Q�����CZi�c�@����Q���Y��>n=�4��J��hC=���B2~T��U���nA� �G�m���L��+��QG9V�A�YZuV�z}��|�Y�����L/����I����Bg�%��K�����0��1R��Y"��|/Q�0��:*Xh4��1+����]7g1u&�s��j^���3N�[k8�9�9K�����*�5�OE�?M��J-�V��P�b:h��0�����4~��.�)�}�O���������R{���|��3�'1c��^���[k:r#��B2~��=���~��0m�����B
�d�����������N�����-��5�������^��tC��������r������S�/U�zh�g�z}���y�8�-�J�G
1h�u�Y�oHgz}�q�����1�GU�-��U����|�gc�=���7j�5>"�	"���������k�z���d�+7����4O������J�9f7����������8
��T�Jf�G�����_�����:*������S�o�����3xv6~T�	5�Gqg���r�f(u�fW6~��O���8g+��l�(?�TQ��QbI��QG]�f��z�����
�S�5Ls[��Q��Q��B�J��l��4l��Xw�����y?Q�l�L��������\��E��0}�1�x�7������9j{��+��
��p{%�C�����
�����+��-�����\������E�������7@O���l��0j����U9��Q���z��B�B���r}����<#�0����GA����E�xT�����������>����U����8a � �X��>]��ME�[f����@�������x6<�
~�2��qjb�%�9�����l�1U���E��&����1c������aq3�r�_�>L�x�����r�3~T��3h��ur��Q?j���L��Q^z���������jc�"�^D=O��a/�Gg�l��^1�������g��8��w6~T�gzqn(jo0~T���>����F��Q�a�����"N
�r�*��>��>f>m�|!z��O���\���%0-�L����L<��.�oy�Q�}���T�[�G����!f���:0���\��Y�r��Q�5���3����8?����-��U����Q�R[���%�q����7�����(s�ms�9H|/�G���!N��S����4���[�e��U�m�W^���(����[����G�B��N+pun(s^�s��oBS�������^��h�^7~����=
���c��GyG���g�5�gs}��)���G�
�rc��5������u����PU�`x�K��8Ge�c�3N��>b��<fx���pi��������c�5��c�G�q�8����a���k����d��������&��j�����}$�^��@�x�#U{Y�����G��Z��ly
��p��n9����G�
����\S�������X7<���g��IVy���0��p���kL����R'�O�����=��v������i�q�k�z(���q�"@� �����J���n41���U�C=�Q�WU�3��w��E`���Q�'�b�*���Qex=��j�VU�?��1�u��q�Ukj���V��} �7?�������p�������|���������o�oN?������/�|�������/^}~{����������t���_��������O�������oWw��n�|���������n�o��k��������z��o?^���������zws�y\�����q?oN�Q�����f?����\}��������p��A?�cW:�;�����7�����p�?���X����_OW���������45R���oK���be�����������no��-�������������G����X?���������������?=�������t���_���
�����������w7���W������u,F9>��{-���A8x�}�_��ue�����8������_�������������7t���������y|��������������NG����7v�_���������������=����?<���p�������O�B}���������
�������������^��;���������o��t�������������=�����P��_�������_�W�~y��������~t��W�+�������������-��~�����?��j������z������_���g��������������Nw�6������?�r�����?��������������o>���K���?6�7�n~��t7~������W>Ihl[�O�2������]}���������w�f?���Q�|������w����o�z�8�5���X~|+���6,r���"�����J���2���tp�$�l}�����4��^;�D�E��9�*O��Jj��Mr��<]���.l����9��R�,r,�_/����j�P=��}�_�R���0�����"T������<�I4Q��wC|����<��]"t^��F�vw�"�v%#B8]O�BO��L�Batmg��i�Fr\�%Ln@>��������~���F8�!:���Cly����21��c����lwT^1&��2_�F	R��e;	����m�a��W0p���sX	.k���j�9������mS�YO�a-�1Qy6x(P�G�
��M��o�yYk��z�x!�!m�}��p������9t#���t!Bc��6�E��'O��J�S�KI�%����*��)��8,C�Y%`5��6l��I��Uf�����RroZ�
%THS*�SD�{��g����z�5���>	�i�gF���%L��U��D���������z��HB�y�'`�P�������KH9��1���#��*�=s,l���@H:�$���ST<6���^��EQ����z�F�D�x�����A=����~��o�y#��9�����=����q����b*.1E]��� �-(�l��4���Y�ZXt���l�wRp��]�M��S�j:���a��?lEjx|�e�-��$ �	s��y�q4X������X�T*[n����&p)�����L�>�8������F�0$ �2w�u~~���:j��T��.�b�}�>%�r1�d�4�����S��Yw:� �U��:�3l��A��O��5��M��R�/��9J�8�	Y)S�C�3^�Zb�`���a��J��N}��i��L[�d���w�eS�rN��|� -ZRm����L-zks�����IE1����l���c���]�����6])�
L`���9���m�;/��6��3���&�����M�8(��SM��{�����W��Mma8���%f����"�ck1[w�T���3�
���Jo"tSW����es3g��m�_�$ h�65��	 G��&4��}��& D�lf�
M��.�K:xg��[��}���OUbL��������Ec�>����Y�#�`U�/�;����dkx��������Z��y�o�Q+A{���z���	��-!���L�m������LO�7�p�7��Ro�mW�6���#�����l����j��'rk�Y[����������q���l�p�[�ZE�����c,�\0v����J=�B>�����d+���� Z�������}YS��85��q���g\�.�����9�>5E]����5W���wk�Q��;:�E$uo�m7�T�M���pE���3�=Q�^����<g����[�o��������j�a���5�f�7�i�p1���7�#>��v���7,N�#���j~�������������D����i8�P��;�3���i�\S6"E��G��N�������E��OqC��
H�W�#Z�����#N�^������KNF.-Q'?�s���B����O7�ab
#��h�4S��SG�}����>��W���t�B��}C=�U-ez�!%��?]t����	��wt'?�����64E�*����|���F�7=a�w�[b�jM-�������|/���r�p������V��`K]�t[�]�z
�!^�0��	�aA�j�`��8�?
����KK�u���/=������D����@�4�����7=��s�{A|�f�7�vpZ���$�a������M�J/�����e�����|��kX���wt�����c�
�A�:u&4=��?A�A���k��� �>p6���`��1t���5��+{�o� �����>y��CB�]ZS9>g��8�0c�a�~k�������X/3�V��j��r�����t��{z�������S�S]c�
v���^�
���h��/�����F��G]���*q
���y���gdu����kP�^`��`�����pBG�;�=�l�;���)�Ch#{�o�Z�?*�l�� �o�����b��������O��o����aMY��0�)mZ��Q}�m������M�x�o�����,&f}���s��k��"F��!Py������''����y>��C"b����$h4W���5,NGk���gV������({�j4��zP��bZ��X7=�2|��}]�������	�a����u�,Oq�K���� ��t�qK�{�O�����'�G*{��oiz�y���k�}N�<{�.%�>�)��}<�iZI��+kK1�MO����,�c�2��^��	�����W81LO����5w��#U��T[���Y����Q�9~s���w������z<@�����x/y}/��S��G�z���{)�l�������Q�G�����F�I]�)Nk��?
��^�t������^Y]����az��U�s<�(Z��Q�Q���[����!��SpV���j�>WX�St���#|�\�yLg�����q�������Q�%�X\c�)���Q�Qs�D���
�'��0�����3#��=����,�c��5}�\�x���?V�� |��Z�^
��E��j��*�����j���{���z��]�te��iq
��@]�i�Z3N+4���x�*�h��z�}K/�b�����/U��"����>{��-�z�c��xY)��>
�G����_�QU
cxT��5�_���55<�gj���GXc0<����C���Q}�����^��I0<�����\�����^����1��a�A8�;���Gu�Y�P	<;��O��#�^�S����-���9*�C���������^s2�T����zb�a�u��
�G�Q���)��*�����u!����G��1�V�`��
�G�a+�/~/BG/��.����"��`xT�o�n������:*�mMQ�)����5��w���<�)��,]�[��z��1G>��9������������d�
�1����B��������J�=��������Z�#�|��Oq���~�\�=eC��iE���B������8��Q�)���Q
������3<��m�C-��>{(���gA-��e����c���&q0<���uN�P��M�c��O�o�Uc�`�tY���U��8g �[#A��Z�.���z���>�H������j��^��=��Y���AU@��U��a�1���j���z0&Ti�cM1�_�(~0*Te�����P-N[�������Is�$��P�K�8��B���u�C���w�]����P������S�8�:o�o�b�{i���A���!�C�����"����iL�y�����m����A�1��}YE2}���#��tVy���������mMb��/�L����QG�O�X�W��^LO�HA���<��7�����O,����Q=X�=@bF�&;jP��,����Y������=J���G�@_���g��(�(���'*��G=(�@��P1����q\�$Tf|<c�Y��L �#+� g�R�n�5F���UKF�Xu���IGg$>��-wJ�����u�6|%;�
b�.:��aA
�.����Zt�e������$p�hx�X���qNI��������W��	������{	/�_�)�����/Tz�qJ�
{�u���y>F��k�������9��5P5]�/����m�<��V���G�N�z�	,)N~T	�Wr�[�Q1�|��O���$���)�������D-Mb����5�������A�\g�Q�F��M���*���Q�8r�c&p�hx�����<]3�z�/�A����eh��`�-��q*�����P�R�����QF��/���Z�i���g�8E|�����zI<GqfS���oY�p� ������}h���,z�q�[z���\%��	����r���������������"N�����Hr��N���ly���#p�hx��[nr4B-N���x����o���(�/������e��{%���i�B���[.}�x�o�y�A,C�|G����&/u�����2�W@������eO��9*��t�[��	f NU3<�o3$u�����GyW6�:}jD�O������������>�^�w����7���^�?]4<�o�
=��"b}�[�F�w�F��i�<u&�"�V�I�<���>�����V4<���\�_�5��G�H��S!L���G�T����A`'��(���s=����G�a����>����(_����}�?��c�q�^�L��/�wr���P�������h��)�y4<*�B?6��T����7uB�G=�X��}�b��?�:�MK���t���zLQ�N�BtY������
��|/��NY��y����T�����1��	b]��S��;j�Q�D�/S��1�^��+�8�-�%d^��T	SO=�M��=i����}sJ�����:���C���}���)�Y�Y��q�[����j�6~��Y������-�V��Q�$��0~����,<��55��V�b_J��������6^�Z��3�1�F
�(������(E����`u�5~T(����Y��Q>lZ&��Wx���B��b������>���R}���9�h���8�B]�(��x�G���s�^�����h-/�_-Q�G����k���c�+�������IF�������)�0�d����g�{Curr3N7� ��E
���O��7r4�IrS���-N�>��z(3��-���H��:j����8Uj��G�R�CB��������<�qvC�\%�G�1���:�(�G%������������0<���=��������	���ZJi�%�G�Aa[���^/��d��8d	V
��	�~2~T�����|��0=�N�|����J��/�� ��[�G
�P�GQ^O�G�	�v@E��0�}���C�K�%�G�q�C|@PV��X�wB����Lo
3N���9>_K%��R�ks���udjD��r����Jc�2\��(�����������~a
���6�
�\�3=�3@�M�~$�G
1W���Y]�t&�L����4��d���������b�(?*m<>���?*���1���[�G�J]�MWA�-���R�~u������5]�x�Wua�q�i���!����Qy��[�F��|��=d^������a�������A�x2~T*��y]�I�4��F�[���J2<*�����@�	�I���
8�CS7!��h4UPU�������)R���Q%;��+�M]����Q9��Vi�)p�dx�3�A�����J�v��R�����SjeUph��fH�G�g����+����rs��TbZ���)NK���-�[�n'?�Q���69����������
�G5?5Dd����P����U�
����#�}�b����9�X���z2<�V��K��(7��8���r��TM7�Q�g���3r���I�G�1��r3xI�/��jC��3�Qb&/�"�0��J3#��7�4U�g�3a9��o<`�M����Q=l1�|���oxT�����s�x��k�������
�j�����gD���:{[O�r�z��/��Iu�iI���^8%��kc.�]Z��������L����Qm���K��^ixTw~������0m�ie|������>�o�R|(M�dxT���hF?Yy��v���!G}��G�M��}~���
e�q��gR�e�Is��z����&�}�}�l��e�Q�\�F����&5t�/j0+��4�Qy��[�4
�!q��8
�pfb�5��'������a��Q�^NG���'��Q�o���Y(\=�3���R8�V��'�G=�������9��;����3���Fw�=0��x�y�Q�{��H����>����~r3h�����[�)'X����Y���*�z�xT�c�������G��gw���oS�xT�t�����K�x����I]^���3�(����VT�Y�Vj�u��7��G�G��eMq���lxT�x/�%����g�nXzJ��������\fX�BK�sy�Q�������\�����8w�9�,�X��QC�	���g�
�
��s�q�D
�
�
~�_���2�6<*z�kB,�r�{�p��B?O<��@��@�Y&�]JLK{�?*p����������QqP�����P�v�GE�}�A���c����9��'���?���o��������q����c�G��2{�����D�x���[c�s�^����l�-^�`�5�X6<*���.OV�t�Q���R��R���Qc����UN�s^*8�t����
�r���:������K����y�$�R9�y)�Sz�$17�
�����m��,��(��=�{�����G�A[�[����������A�<{�����6��=��������-�0���vi6<*E��7�8���
�J�f9�-����}\��f�r:;����~U{��Q1o�NN�8��<����i�����'�7��Xt�xTd���6�}���88#k|@���^_�x�����l����<�Pr�<�������r�>g��W����Ge�����"���7��o3bv#O��!e���<g����������No6<*=.��^P[�=���8���o_���T�O��
���G�@��
�Y������W\�lxT��=s��g��r��%��f&��Q��n���
�:N������X����P�U���Q%w�����������-X�cS>g������|�b��3U����8���"u,����t6<��m��l'f��Qe�����?J��d���}P��gB��Au�i��pfS�t�G�J��9/%����X��,I�/�����i_��tG��Qe��1S��1��G��9_�w�U.4<���,��T�U[�No]�KS���Q�n82}F�����#*Q�gQ���t����R`W� ���#�6��U?����4QU6/_�GPxC�s(���<�T}jxTN��k�6����if����<���5�|����H�q���:���L
�5����G�@��.��(}������wKC��L��!��5�G��5���n?_����t{�������O�?}����/_n����_���W��^}�����;o�?��9�W�r}�������/�vw����q��/��;}������������;��������=���W����������\�~���j���c�>�_`���������?���c��=���#��������_}s<���9��?�:�������_���~�>����9^���oK�������_�����\}8��t{{�m�n>>���m#}u�����c��������������$������?~������_���x�o����`����_�W��_����G ����0������$���uW\9N'���m��:������������V><��[���?��?_�����������o��r����|9r���_������Wo�|�����o�����n��?�������t�����O���'�������������O��O���O���|��.����HxoN?��z��n����7��|��}7R������ru��oW_|�����������?.u�?_��?��������[�v|5u9 ��ps^��Q4=�+�|E{6���V�_'w��+��+��!�� ��2��Tp}�=
Q��D�kW$
���K��It������<
������g�P�bT���
y���vq\�V���Vc��:,���u�O�5���D��p~�4 �g��4�+�e���N�p�}j+cVov��AC��Q[��=�����`��i��V����
������ �%��L��8���D�$2�O{�H���K�����6��cv��(-����U�T:0d�i�"�1�����dBD�M[��n����)��6)E� %-i�������4KQ.Cf��)���Q��Xt���J�_�]��F���v8O�������Z�� 4����A�-g�rn��J���%���ob���{*�:���Q�M)|?=H�F"�sb(��hk��]��HJ��rg_��#�)��$K�A�HdWJ�Oodx?-��:|�����	�Z���
�7���rt&%�j��*=<'q���	�6W��Q�Y�8�rg����oD�L,:#�I|�t��
������$1U`"�-u|�4kP�����qk/�o�����t�hL�I��sJ�s�X��,�Va�=.�"�[t�m��mX�����=J�V)��rg�|�TYW�4�X��H���3��wF'0��f�-w�yA_1��Z��;�c�Eq����#�0����������q�LaxOw1p��od����N���)�������J|�r��g�-��c1�Tft6�q�D��������K
��z�9���F8�-N�rg	�w��Ua�-�.8�/��b�Y�VwBH=��	.�P�(��Y���zz1a&,��I��1b+Hx
{^s><��TO�b�s��pbOE�q��l�z�A��v�����@���v���K�*q*2��g����6�;<��1��m����lu+������x�=^�KI9 ��a��:��tJ����dh1:�h�����]�3.�k�Y��� ��KUT|��p^��4��}��0y��@�!
_>�:l.�K�����N�-���
�%� Y{���9�*����<�{6/+1c�ft:>��z>.���1T��p7{��������$���q��MJ~��o���R�N�wx�P2��6�'���h�L���i�7�23�7��G{�������8����
��
�2��'��Z���� XD18���a�|%4��7s�^=zJ�!�h ��a���XE��������j=,D���C�,��
�O��E{�inX���������a��w�`���{7������v�:�L4�VH��F����x���7��!w\4�UNo�]���`�
b��Os�������(d��w�&���Pd3o�]��9=�D��Os�!�!���
���n��c� �{#�:�?��>�d�9���^]#L�Y����^{#�>\���������E#�,�F��w��$�]+3P?�
[)a3���?#�R�dM���I�����x�<����a(\Sp��n��{�� �u�� x#���1��G|a�y�o�xiMp�'y��v9N���7����[�A�[��F�
!S����y7�Nq��A~��F�
^��P�vo��0�� b3a>���"�7#�^,N�&���H�������V��x��1��i3)��I=��w]��u�BV5��w���c���~�F�������$b��y�7�A~�yql�F��mA�l��F�
��(�BE�z#��7�R�~�w�&���u�R?���d���R�F�u�"����t��#�`����bF�
�4���C���wC�D�cL�G�q��/4�y��P�����T��w���X�1���a�)G������-���$x�5�f��$��=o������j�7�n(4&lh� 5�I���9�Q���inXHv��B�o���X�7�=���7�n��*��1� Z��L�y.$��>���hG������#��G���kP�U��e��FQ(���l�y7v��5����(4�n,��0L�=��8e��E�z#����{�$
b�7�n���a�zX����@j����0|tQ�b�U�?��{�:�:�(f��w���8�2������!������w��Ll��)Sco����/��24�F�����g	$V��a��4twV�>kA��F�I�B9 �
�o��8x��5h�+�t��wc+4:a�P���w����>8E��c�u�M���������F�G�N�Tx#��-���B��x#������1��a����
RE�s{#���y���E�����6�>M}�q�7�n��df��{!��������x
U�y�l�����3����i\I!��#��N���N�7E;XkS�C����C�m����������sC
|uF2��r���������ZQKQ@����`b��m����q&��Z�b]����Q�9
�/�a����O�f(����&&�k�����T01�:��0���a01��7���
�)1�pnn��tBxL|���
s���0i�0�`xT�e[�*�����P)Q1#LL���x�S���J'�R7<�^L�����#B�+U���R0'��(e0<�
���N�A��(���5^�
��C��a�y0<��M��`
�GO�o��g��c���Yh��0���V����y|Tq��Gb����Y�`xT�<��N����#&jd
:)���k�']p6u
�G���g�8�b���V���LG�����V
hPK9q~	�G5��M���`xT{�.^��0�L���>`�<��9����4�
��%���k@T��+M����Q�`|�}��nxT��^kmU��]a�����vH3N]d����j������r
�����z�A[���U�_��Q��x�@Skjq���v�>�����C8��E� ���7�|���g�:b�����:����n��*�;���V1�*�������}�n���Gu�	��d�s��Q�s��`��	|?������zM�����k����bq:F��g�0���>|�0�1fq9SxFV�axT���J��e-ex��y�[�D6�G+��>7HH���6��)\��e���8��_D*3N��PT���B��>�Sc^}/e�S
[2������O3��cS���t��}��J�.Ls�a��FB����nxT�i��7(3�`xT�~��0jT���QG�k����+�<�'
J����b��[����Fa2�:�m�q9vjM'n�9�
]���B�������K���-�G�
k����ZS��\'��i���Am���g���Z0<���YZ��2�
m��z�u�\e�C1<������f"���{!���&0���J��$�C�[�C���C|��b���������8����\���1��T������u�
=6%���cLp�c0)��v0<������Q=G��\��uB�N�`'5*����
�{!�r�������G�G���kT>�8W��f��Q%~������F����:���})e*
����hXD���������w���G�L�����.��8�
�Q����{��D7��7cB�8+r~tsNz3j$7A�~E��|����-����inX�c�[� �����h��/5o��a�}t��������an�j�E7?�jC9�QM���3s�#��Y��2>w�s�4���F�"D�;a��{i����w����^V��in�����)Y�"����h�'���87�in�w�f(����hxTp�����E�������9�G�s">&?�����|[Em
���3$8Pg�hxT�M��{���G'n���#!zlq��g$^�1u6/5��0Y�y��^���������!�m�����TsN��>��'a

�
��<���p�GUU�\��$8���0R<�[p�E�"u����|/b�2<���^wE#�8�OiD�:�{���(��?�=J�PD��|���hH�r��Qa�7l&�J~����y\5�8�F��b^U����<�hxT<���:�O
����I�t����H��Gy���}�����t��T�b�����T�U�aqZ9���c��o�<����rx��?�77�Q��Am������L[�<&����Q������w'?j@����l�+N~���}��)	�|�?�a5���y4<*��"�C��L��8������L���s��w��P� S���z�Do�����(7�/���� �3����raUj�e��"���@*0�x�����">�M��8�P�����>�/�v�r�E.4<��MW��}�)��,N���s��5�2u&���T�����[������)E���w��V�����z�6���	-�h�|m�����4�Z����2��&���������E��*_����������)��*e�zbv#�.��Cw�`��#���yT��}1�M��')JC�|��1��z��D-��77��FS0���~��|��xb�E�����G|�XS�EG��k�x$j�.|b���Q�����c�Gn���1�?m�/�3��PT���O����������GEy�J�.cg"}��j��B3#N<������/���8�(�i����r��Q.{^��'�z(�G�����e�,�����4'�/�c}����t7�|a��/��,��R�QS���q�y�TOi�Q�H�K?���&D����Ao�r��,�^4�v�����dx�;^����:�v�J�'?[]���l��c�����M���,I��'�������Pj�i����s�s
[KS��7������������*��<`�uex�Q�S��� ��i�Q�%��o?��d�(ws(�^O���}��x�OE��C�r�C�Q��(��Y�	�x�K��B��S��S��RJ�9M���s����&f���Q�������A2<�7���`�:yi�Q)4bZ����Z�xT#��o���A:��*�9>��Y��G%o:h�K�G�9�V����ax�h�uM������������������ua�����0�t����X��4��J���eJ�i��5���J���^{��c
JS���G��K+�Ri�QC�	�Oj�\8���/��"$�t���
7%�'p�d�O�����&�a�-�1�ii��5�j�>����u�����?������E�o���j������J���5'SKM^�p�1
/�[UKM����\�hG��t6/��l��,z)��)q��}N���G��~�N�0gOS�o����+����4����c�zL��U�{��Ok�5�E7�g��8���h����r���u�p���5�����,�5��G���Kb��ax���[�4�p��z}Cnf���u�0~T��{f!]�����:pdphT��
�K+��N�n$�G
�,j��k����Q1Rw��i@�)%�G%�Y���m����8-��JU{T��R����Vy�L|�p�K/��L��J����B�;�=��Q�n:5�Q��e�������XWXR2~� �������B���CI�z9������Qy�q��cS~-��Q��N.r���O��J�{��@����QG�u�����o�������XRN���J�6���T4�Q��BB������j��p�o���J��w����v��u��R�tj������*�}�J������{�fr�S����r��C%_��'��J��*�F'�t���J�fFE�^����6G_��sb�*?��L=������3*�k����fi�������k`>H� s�*f�9��3��FU�'���T
c�Q�T�J������G�c�_��<��I���sT�����	"?*]������R��d�Qe��=|�2(6<��Dww���<��G�A-�h������G��7~��T�
�*9��g�*0�l�Q��!��"	<;�T���W+�l�Qm����t���G�V���������jO4���r�5<��z�/�{��G'�m��9��l�C����������a)K�k�0�l�Qm�+���[99?�=��,���V����z�?���"��'<j�32>����?�
��|�Y�����a������u�,�9�#0�D}*�+��8=�e��%�����doq:d������T�[��m&o��P�1]�W��A�gdq����>��V�i�8���������1�q�P�*�g����5��,N���L�P�4X�(�]�S���`qz����P��#�:�#\�������������~X]����� ���}.�8��^���{�������KQ�0Z������S�n�������O1��c�����E��d�����g���^�ju��8�2zb�����c�G^���A��X����-�>���:��~aN����	}:�������fiq�K�{y��bk<���<&b,�\_�W�����d�4l1F.�8�d�R.����������4�1�����sM� ���O����+J�w��Qu�w��8���4
����<��u&�T���g��QK�3r~��Wc�&�[P�X�|Z2����8��O�v
�Q���ax������o��T���Q����8�K��Q�oB�����r�8m�y�}\U�����sy�����Qn����wPg1��\��0}4�5��4�{&-��2�t�Xq�H���?�x�z1���_��O+�/��+�z�����
Grr$�5,N���@���Ff��\���z|.O~T��<.b��=j��J�C;fY��a��G�G���Y0w!8V��Q�HBx��jf3?�Q�a�x��u���P���$H����� S��$H�� ��e��'Aj7��0����$FG~��Mu
;���f�zI"W�d ����,y������kzF��IVl��R5����K�]&�fj��:��j<�����BH1O�>�y
��n��shLahB
*e���X;��E�>��8����SM�6�'�\��H�1�
�)���0@������`i�T�ya�Q|/S�ohoa�AQ�6#H��9�Uc��3@��Mz�U5�����v,P����q��^� �z/V��Vq�a�����{��/�G^�������Wo�o>�����v�����O�������/?���������Wnn=����OwoN��_�\�}=}������]�vuw\����_��N��|z�����������������w������o>~�x:��w7�����}�����T�������~>��������?�=V�����}�2g��9����x�������W�"]���z���������?<�������������k|��nno�o�>��~�����x7�_V���W�+8��#q�#���C�vs��������?�����������?��������>|���������O�/�w�:�c��������}l=�;�{�C�q�r�8"E����]����������|���;n������?w��?���u����'�~������?�����~|5��~|��z������_�3oN�ww�#���?���oN������w����~9�����?��������������o>���K���?>�7�n~��t7~������W>]���{��/��\�~����_����_�p}�o���KY��?��_��{}���m��W��q��u�I�������m��%���	���Ur�.�C�%V �Jq�o;ux9w����z'�������:��sv�"�X��Rr��.��
�u�O}z���qZ,��E}�m�yHR-WX�p������
��"s���R9�+���6�4mW�u��&a�k���:f>t�^T�_E�=�"�AB��k�(���(q$7���/Q�����M~�h�!Xa�/�����4�����'�5��Xt6�1�J�!�n�L�SDJEYe�9��"���U�j�R#g�<gU�%��������T��|#8�)F���x����q��c�|mm4�/+_��m�	�������6>P3"M�.���t)�Tt�����>�h����	���FC&�^r^'����H�pZ���D�������f������&�Bu�&������R�w�G�)�_6���Rda��]c��1
��%5k����X6!�"����uq�M��-.�g\����O^�s����3�(�qf&2�I5�?{����b���a�5���V-;��k�����j9m��!��#rR�i9�&TG!C5�c�9|,���mC5<��9��_B���������j�O�2l��Q���;;1)�Z*���;����hT����N��.���s�n@e�SC��;�����
���5nq��X=3R#�S-������R�6�������# �"�i�����f-�����kh��C�;kd���@X���v�����O<=n�Z��Rwq&��Z���5�T�&y��b��(s(�%�G��R���]$	��E$>����L"PA��Si����$>(
%�3����O�p���e�O�_@GR�C�[�D����|���4��� u��m+�r��:w�L�@�
�2��m���L�f����B0\'~>�W�������E9�	m.��msg��%�~��0��*�R�*<�=����a��H�g���;����9���!�<d�.���[�r�� 4�����U�P����l����h��g����mR�%�7A�R9������ZLQ���f�X������N��N��lr��=�N��]�"`'���o���nC]�U�x#s�3&�s���|�O9�\6�k4�����r�C�2k�M��n��^H������)'6i��N����O9�H��N�:��{7��;���BP�ac������x~s�fo�z��0()J:�}��@�PJo��Vor��m$���y�o������)?��*�K�3Ob4������2>h�#FB���>X�B6�}�����r�q�rDK[��~��
��u��r^b��O9����^�S?B��O9QL���[��79Q��)�"F���G�8`0�"��79Q7���?PH
���r�q�����
w�� )��=�E��~���-X'�L^�����R\��Zqr�&'��$4$���m7fo�iW�����{�����^�����h�-G�G�1}or����*����ASN4���R���79Q�%'3;�bM��������v�79Q_�gY'��T|�SN4~�������vn�uyf=�D�7{;�6�o�oN=���#s!i`��39�����]�����r��S.�E�
SN4l���[�bR���h�I�/�/�n��h�,A!WG��D�#+d��5�ar��R����2'O9�V1!�
�B�&'��,Q[�S�79�8 \��fpLN���6\�S��LN4nR��-k�W����Pf�����MN�	�����For�!n6�����8u���U�D���h(��
ua�A~����a���������f��*�T]��D�b4�w�kU#V�-�YH����Dc�D|�\�����Z��	/�������B��}������>W����r�������f�&'�y���^��F�c�,_��Q�.LNtP���?�T������j)��sF�%�>8m��be�)�A�x���49�3c���&'#����x����8��1���g19�1OB���������Dc�,iqS�C��DC	�4&�G@p��Dct8Q�]My��i�=F8�^��r���yf��x~��b�`�5u*���h�?���b�39��+����r�w�&{[b���^��)':��
E'�����f��AENv���MN4o��JywL�6���/��UP�����B9�M�[4�}�q�Z���E�`��.��U�=����a��G1>�*���]�������=��8��k�3�����Z���4�:�{s� >P�dUK{���^X�gy��<F���=��s��Q�iy�B6�+��7�K������~k�v�Q������Y"Y���8{����(Y%�!���DI0{�2rP�x�����%W������G��Qk�����Z ����m�����(U�ie�!+�*��v����Z��8=B,���,��qfV����8����g�`�v�D`�=z'�S���%�K�k*�
�GUO;�/�G0<�J�����L0<����>pR������w��GA��sT0<�A�g��R'?X��k�FB�Qb�C�Z\��4W���^)p�`�v��C���0��T��,�+�y?u��X�k*�����G��[���j�Vl%�%&uC�qJu������Y�G��&�5�����e��G�@�^����G5����[�G�DK����� ���Q�����a=�4��G���������Q}8����w�
���G�k����E������;��YT.4<�{��x���Gu�sv�M���j���B��81fxT��k�{���c�G�V�[/X�-N��eMQ������>+��,��D=�`xT��-��UdxTo�1�2����@�����[��RH���j�[-E�u
��G��eM������	������
�G�!��/��8G��z�����u��{-�������Q}H^�K������g>��_�as���:��-N��D� ����b]���Q�=k|,���c���8������:���^�u��E�=���_������z!nZ@�tb�)���}'	<;�]�]�S�������(��Os_��
��`xTO[��'��`xT���1���'<�xZm������t����>'�}��:���8m��-�>��D)��V�bq:l��G����������k�\hx�Q��?V0������Q}8��K�C�,���>���zx����]g�6�M������k�{���e�)g�
&��P�u�S�������:���w�^xV�s�w����"{l�G����������i?�#]��:g��|���������Q}����V���Q���N�g �������\����Q����=������y����:gu�G\���ta����P.��]��Y��Y�:H=��O�cj�X�9�`xT	����}�y�'�X���}���q=x"���������M�����4q��{��1�}��-��T?����2�Z�	�:rP�����!<�Q��rv��\s�����z��	5�hxTNw���]ri4<�ao�|��hx����Z{����X>��B�^�w�3�n�}^C�����^����-��hx�C���J5��|��
b]*2�����>�s�o���7�S�������}?��|sbo�~�S������?���i���|u��};7�\�D���Ky�o���"�E���(wqo�q�Q�mb�&����2����B%��<Gm��t^����q��-�s�{����daM�Em�Y>���+��x|����������%������}�
^A4<���a'����%�8���<G����������D��y���9�����G=���Y`|q�Q%l=�b*�F������,�*�/d�B>�������_D|L<j�u��avC�=����^��)b=�8��Y,��v8���v&D?H��1�8%x�����g}~�qYk�w�-�Z`���!�������oN��Ox����\��s�q�Q=sV�~W�K���X�bo=�8���n/�G��8����S����*y�S������������������9�>��i���N^o�\'US�\;t����Q��G��n'U#�P���Y����Q�}p�@=K�����CQ����FO�;yLI�;7���	�s��1���xv"0�8�(��/�������G��}����w[f>�[|�y�	7�8�����J��'�
{[���c���������G���Z.~/b�#N<���\���p�Xf��m�d�	G"N<���������e�����RbF1�e�B�>��>�3<��K�N��#����z(<{�}������l�Ou��x��>����u���a;�Q�2����>�u�^&�����V\�x�Gq���}�z�?-���^��?���7l
���n���6l����L<�%����O��'U|a��E�����Q�����_���c��[�n����-��O������gxT��P;()�v����W�_��8���������O��7���j��Gry�G9U��y�
�y��u�����k�����D�G���ON���3<�8��K������Q-{����oBO)����#�'��b���[����4�y��k�����u�N���y�������.��Y�������C
�|=�j��	�:
��|�c_�����HOx�Q�m
���d��%��;���D�������h��e�!���uU�b��\����dz}5������z
1������P�����jd1��L���BY_��gQ''���a�=�gQ�d>Ou�z��|�"������������S		�6PHV���Y=��w��)8�E��4����eC�3H��)E�GD|��dnOu�}��3�J�.�^_����"����aM��TC�z��Z�[��Si��f�������O�n�/����J��i���k��vz>a�h����q��>�As�����7g�O����3����f�T]q6�*������DS�n(�4��z=����t~��t�\J�If�T=����TQ'����
��Y���?��?�������t*p����r,Nf�t������lo��O��i��v�����c_��t���?r8��j[i���,%����U�|�w�> �`�����E��U$�U�>�r{�����+l6��[���:_�T��
�}9Y�:R 8�1���Ns�~���>�f�!��f']A�]�b�����uJ�
TiX���G�I���Hlc���c6���6�FvX�NPm�QV�9f��E:k��}�z�">��T)���J��f3��������Y7�Z�������p����fx�N��v�������P-����B5"M��V���7����%�����v:{BE�1��	Q��P5g�c`�Q���+T����'K_{������wP��Y_(����[
�I��P5���'v	�}a��9�m=+��P���%)���]l?��{!��Q������1�=W>�u�j�bN�=Y�n$k�J�S��T����%~�p�R{�l�3���O���2Y��6�t����6�����qF1��ll��r����]�|�&Q�p��^l���sv�j[���Z��Vz�lcY����'�l��8���:���?s8��d��Jk�#��RZ�d��Z��XQ��f������o����d�ME~.Y��6Z(�u��I�8��]T�S�����}�~Q���94�)A��5�j���
�d�s*�u��|�-�sX�c����V#�=h����{j���kM�z.\��C���%�>�9��K';]��g���1]�KbO1��r���F��J�q�������>�N8;G�L�q�O��Q�9�r�.l�|K�G���v�1�b��yT)`����c�f���5ic�yec��:V:j;X�^�N�����w��u��r���������?*ogTx���-���a�M�d�G�g��}L�`��5��k\��pD�4���:����)j�O�-����qW�K���jA�c��&���Q����������
���G�� [>��F��2F/���Q�W�}���:#f�G��B���:�$xy���J�9u<o�s��f�=�5�l��u���U?�<�G���8�����-u����`NUwp�G������j���Qc>�=��O'��y����o}��'�>�m\��5�E�T6^���O�z����<�G�{�:Fa������Q�����������N��E�_(������<�u("��M�F,��pGV����|f�tg
����?*������3^�o�M4�n���f������h�Td����V-E���|��5b?U}������M��}�������g�������=�:�L�7vG��/�*y�����= ��g���X�`�V�'��?jH���
�E�r�v���wS�����6pG��M����|&���NI�]d�G���n�jN������XS#���QO����\Q6f�(�,M^�S�
���>�Wr�i�A�������_��sZ��m�(7��V���A���Q>�3��Q"�M��6��R]����\&[�~��3����.���������Q~�i�1G���������>gQ�����|�k�5�Bg�M�F�W���DMo6}�dRs>T�l���I�@.I��������l����e����M��\�|��?*l}F��T9�O�kS����2���9�����7}�hi��]m��z�l�(?Z�6�~8"����O;��;���9����G��}a���
#���������N�bl�.������g������=��Qa�}��{����?*n=���Xp����z����9'8y�����p7U|�l��p�%����\����IdB�9�����Tf�����]L�F���u�"_�M5�x��|���Qq���}���S��G���]��
��������?��W����F�C�4g^��m���-f�j�2������G*�C����?j�Q��w	"��-S�9�8�W6f�����E����a����jT�/�>j4���Av������JC�CD�a,��q�|T�<��|�y�l���m�����>�85��������j�Y�B��z�s6Z��K{��K=�_�~���psw{z������/���^��������/����}y������������pw���������������~�����������������>~���}8�������������z�����_Ogzs�m�����j<����B~;`>��������/�����1�������'���y~��G?����(������t}��������W�]������6e�c���t���������������������:~x����;>���S|���]����q������$~��wR�>�����������~<�/_�~���{���������:&d@�������#I�������G�c[/9�x:�����������=~{��?����+���w������8O/�N����_������?�~�����/?���0V���>>>~}�������t}?����/���������u����=V����������������t���o�l�O����p���������<|���<�����0��_ru��W�~�����������������k����O�����q?��CG���
��*TC��|���#?��K�x;v!��1B���� A�uf.�!��uF�a(kT��e��������qR���8{
�G��(&?j_�
�M����Q��s�����n���cLqY�6D�t����-xu��t������1b�d�G��u��x<�"�w#���/�Y��Kh�=��'������<})�kR>���n(���u�u/��n�0��G3��1�R�^�'��d|	,�L�������p�W
k�E~���%�x�q=A��j��R1r�[�"�����0���hz7$�7}�@�-u��
g��%��D�A[x�"Se�Q]E�N� �W8��bfZ����f�O�z��u���J���r�Y�Q�H�o�I�2�bcE���K��������}�A�&���O�L
ZF0+���y��)_"$�E�������|T��Q�V��>SJ��`9���t�xY]��&�4@��
�i��,�^�y3���������*�i�eV9��r(u�Yg�+��DBl�z�#�!J��m��_����d���6���p�LZZ���Y���;;j�xI�����gn|�)i�����53�g�My����F
;k�TbZ'W�GJW�(y<���������{��������,�Z��3U������k��wp���U�����R�D�q�P�/v����4d�$�4)��d�����P���a�B9���9P��)��d�5�1B�hz���]�Q��r��b����%R�������{g�~{��)~�u���i=KK:�_����;n|,���/���L��WQ�r&���FQDA��<k��ml�y�N	���F�f��l��}�f 2�S��C���Wq[����T���U0���SA�A�Tx��1��
�tJ�8��1"�����:�#����3U����JfQ��$�S��6%b�S�*�)���
�]��n��750M��L�Y���T��3�f������Be�x�3�C���8�M�������qgoS~�s�0,�@lS%�7�|�B�D������"��{j������'D�t��a����"~�����!�C�t��]s�k�s���3��8GD�K��s�S�\dhLL��;;����Q����7��"E\uM�Y���! ��Yg&��U��)&��P��
!�n�B7~��D����m�����L��Tr��;(�I�Rc����E��gJ�V�|�B1��E[�(2�7*G�O%gO$��O����J��m���]����3�n��0�s�Jy����b�����CH�.*l�O%g&���v�(��JN��dIjod��,��0�2[2��n��y��dod�^�7*\����so���*��O%�0�u�`�<���S�9�g��C�/�J�[��O����#�K �N��#=N��S�Y6�C�K=�):���A$5����J��U���K� �Trk�Y�8�gJ�@%	A�����uvB��P	��O%ggw���_�z�d��

w?T�Z��LR1Y(��������2]��FI���K��D>�Be��Lz�����Etw��M���=�EP�|��i�/������s?�T�3)�~*9+]����M�y|�R;�Kb�����Aq�����������K�RUg�%�zc�n''��������2���z���L���A�{�~��F,��C��Tr�H����*n�	�O%������6+��7%�.�B$2D���-��
f$81������r����0;m�����EF���������qop���JN��:L�.bO6%��T�H;�6O�q����G�^�'��REUI�RcL;�r��UES���f�$�9���v�OyoJ,oJN_��&�"�����lJ�@��x����s��y��S�����+z�7%g(�.�@�
���O%��X�6�9U��Tr�5��+J�Z�S�Y7���"����>��4������s4�[m�T�����t[����p
�9�Nx��_�0%�q�����jJN�6���,��������L�Ep���O*�xiN���L�y|e�c�?�f���x��"�|=�O��EsxSr>�����"�����yO<�~�huq2}:vFPk���>m*����(2���<v�?��$u2%���wUr6*���7%g%����@��0���KcH������z�9��./v�m#6
;5%g��U�W���bD�:��(�;���f*�AoQ)g?��)���u�����3��3�m���}��
{2��"8xSr��{��H�de�}*����A�)����L$�Vt���D�O%g/P��Bz�kb����pa�������)9G�����e�=�%�/v�k�z�	c��V0�hv�s>��P�K>*�B=�b9�
/��c�4P��W������Xs�Z���_�Q)v.�Xs^����E� B������
����hc�}.�$���NS��VNE� 8��L�sE.��;P�|�hOC'UA=��4����8�����|T�#��5��t���|�qv8�+|)'
J��E� I����WZov�U� 79�#���_�1������K>�8)�dt!����)��/��Q,,UFz|����&4�������j�|�1�,ZB"������Q������s�1^�����"o���l��:��kW���E�����F������G����u�!�/bl��Q5l�����g����s����`<HP#��Q��i]}�&��`d��#m�����������=���5T�G�y+�#���Z
���j2�h����2j��:+�,Z[J������T��b�����;/����Qu�av*l��Qm���.���e/v�\@��r"�,U	��WE*
F��MU�o�{�x#�����1�S���%r/��E�
������)�yc��j�����*���Qm4w]m�$���������E�P>��E�h�~����|)#�>�����"�
��Qm�a�o�:`/����Q�mq�Y�Sk��Q����R3�D�c�W�qC�A��j�I��8�"�,�
sk7��Qs:;�7�1pW�`��V��Y.>�c�i�\/��)�y�v�K*��~����q��������Q-�|�����f�[���.",���o{QS,�;�=D
Z(s?�������<a�|T{.y��A(�����hnryS���Q�p7���q�Y>�
��j	~��-��^.���>W��������.��j��6�v�[>��k�w �Z>��X�]����:�S����?y��c��F������1
u�i�Xs��Z>���.?�9�P�~�*�>��eX>�8�xVrNE�Q�|T�
w���'���M;��>���]�i�$��.��m�x��c��D�$���2���RB�,����?H���<�O.i��4�g
m����o�V�����Z,�{a����c��1�m?U���Qu�9�_W�N��s�m������>���w�g���G�Z�ks_��`��'}����M�.����y��N��=X>��
�)���3����o�-l,����Qm�q�>���&���nwu���2Z>���z���n���r?�w����~z�}�{��nK�1�4;������]��v�?��EMMt����gCP�r��"'�}Q;-���;\�����Ewv�3f��XW�1��}>��Y�|Tk����c�O�~��������F?���x!�T����v�n�����������j����n1�!����Q���ic�M�C�|T�o����hY��:l�1����s����1?d�h��6j�.�����?������w	�N�v��^��e�������.�����
U��F���BxL\rII�9�������
�!�����Z�N�
�j���!���66Yf�H��e�}�SU|�|�3���D�P�,�`����p��3C�,Q�MU��{����E4}T�����R��q������c"�
�W���>�s��e�����)
��."�
�W
��z���4N�^
�����(�f��8���{����@�k�D(v��D�"tQ������w�J*�!&��6�x3�F���a�JLzc���&d��O��wQ�a��!����S�����?���5���?��a�{��(�U4��q��a�+�b���� qC��{4�q{%��E�0N_��>�\j�0_Z�~i�(j����
��X�!����=7HYl��C�3)|�Va}2D�4N�s
6}��'�o43
���������L�R��F�+ec#���=P4_������e�"������YD������8]QwS��U�hc�����3_��$�����l�?�F3 _���,���T)��p���w9C�uO�}:c�����_A�<P�s?���C�����z�U���CPg����@�+�%�=�N;�vZ����|�����(���|5v�c�jC�h��t�:�������:�c`������=7�^��?�����Z����
�t��Rk�CP��a|�>��u>"5�j�	�+�rSz�8	}�`���C�uW����E.:NF�/��������q7��knR�
��<������{�HY�=Y�n���!]0�*�����c�����V����"���������ic��V���i��:A�VD.:���B����okv:��+��R����qG.��(�����7J���d�������������s?M^_:���]�9�d���n[�-5��9&����C����&�����B"'T�	���5�3�m���m,����X��o:_���e�q��	M@��>�}�.�*9����/�0r1��k-��f,X���O;�d�@�E�B2^_�<r����t�����XPv:y}�U.~[��I��6�
l�uk��V:�l	���Y>�9O�2wJ#���S�����t����-=�C����$�#"��c��O�m�)���{T��>�q7u����g��O�5�	9F55i����.��N.�` &�G9W����](Fo�������1��b�i��FE�.D� �>j�%�����L�rC=.YHJ��L������ l��Q>R/���D]p2}���{�`$�G���bdH����|���&�Mq�P<���U�A����|=i����W\�d�(?��z��Dq�N��N�����V�������Y�*R�v�1C?�g����c�p[s��4}��^��!KM�[&�G�C���Ba���r���d�=h���o\/`����d�����kN�oS����c+�Sa���7�8o_W��L��f���B1���r�-����/���Q�8��p�H;���|�M����<������M�����L7����;$�G�!A�>��^a��:�>�.��$x(i�����C����'����1���L�����A�}N�������.�]�Q2}����]�D�k'�G9pX���}N��q%��_���Yy����k��ji7y}mc�y�Z������D4�r�n:y}�����1�NGJ(^C�*�������
��*M^���X���������=9� ����Qa�sl�9��I����z ��T��d�(>���5N��W���A�/���29�����.�AC���.��jN'�����<��I���{���^%�e���6&��.�9LF{���:�b�9�?��w1�����3^��V�QcL^����8b?5}Tl�����B/j�����������:�d����M@������Q1o��H��z�;�(`�q��N^���6��k��Q���k�E�kL����z>c���L��i�g7�oP����b���w������h��V;�#rI��Q18�c
�������5��-P���8hic�����b��Qi�"�u�:�����J�����N}>�;�S����}h���5����(D�!�>*v2v��"��l��4�I�}�Ao*�ty��Z���E����FS�������'�/thW�#�Q�����K�s��6��X���D�L�y�E�X6}�1�_�{��S�G����K�E<�d�^L�\A�����N���i��!���%�>j4�����dQ�M�����x�����J����D���V���J�s?E=���e�G��du��z����a�1��*�T6}Tn>LE,��v���WJ%k�l91�����D;��@�.��Q%RU�P=�-�s�>V7-����e�Jr>���-U:}����R]�'�/os��b�/���*�V��c��(����K�}]����j��=
|u�M^_b?�����=��Quh������b���6���X>�
	�����15�y�G�	w1'|�<y}�.�Mk����
L%���h�;a�|Tm)�=��V�������L�9��M^_��=hg��L^�g/��|��Q��������my����������3��k�|T�d�:���>y}�e���S/1���`���>������s�RV�BS{�����R9�;�l8��1���*FLE�A��7�
�S0UD\;[>���o��g5���Q�d�r�������
}]/��)NM�����klL1���������qX���j�d!��-r�y����������~?l��f��I�������WS>���E�	7������Kn�l[�n'��pQ�m�k��<y}���6&���d�G���8���a,UG��_Z�^�����+�� ��E��&�o|����&����t_�8��/5y}��l���_�������Uw���K����n�|L^_��>xM�����K}�S��b�L^��������&��0���T�b��j��<+��N�4!OX��@�����m���������;��4�������x��.��������wd�	���7ZH������������Tk��Q������<O^�;>��p�,�sL�d��=�W��2y}[�����c���Dx�N��>O^_f�d�(������V��i\�����<y}���2+K��������e�����+���D��7O^_��}�$������QkM>�be������o��6���{����8��J�@&5��^&�/2��s\������������������?�~�|�����_o�������o�����v������'��o����O_�>?�����W��X��_��?�����������`��������W�������|}�z:�����oc�O��W�y>��q��v>�|�o�����/_�����c�?=q��K�����{.?��x���(������t}��������W�]���l2������??�?���y���r�xw{{�c�n����O�w�'8�:��<�^��O��y�|��p?���?��>�����������~<�/_�~���{�������/�uL�0���qq}�}��>�~8�O����B��}���]����k�����=\������mn��;��_�za���q'����������O?�rX�������xk��W�������p�����?�������������2:�������k����o�v�tw��t{�p������w6����c�|8�t������g>�|{�tu�i���?�?�������?�{���p�������?u�^���������g��c:����Z<���Gl~_�[����� ��RXp������#�������������!�J����~>D|U���L��2����
QF1��#������e&F2G��?Ng�En��U�5�rE�����}^��ut�����{+��E��'�K�G�D��%?����?|�5et��=��6{Y+D)t���6�/��������|�c���%��y9���UT���aU���yQ�wm%Ax�����*��>���6��_��D��t�{�uT/��i�%	/xGg�t��B���T��%�C\Ur��,7��f%�/x�]������F��@q�0���9^�f,�2��!^v����!�F��}����{,�@c�1
�.�������B6��j�gT���D��E�\z
F�C((�1K$[����w�1��6�����Y<������L�c&��R�'����BpZ1�bjL,)qK�GUx��<'���T^J���b�� ��EP����5��&�=���i���B&hD�c)o4/�H�w�6 �
Y�����<������d�I,�a3���RI��b2�
�	y\��`.��J�n������'a�H#1o(�KJ�g{g�?*�dJh��&S�e��;�Q+���#K]��6�(RH3S}Vt�O�������8�	V�����1I\k��A�#��AZ����������F:}��f���+E�0p�����2#o�I��
��*e��L���������]��+�AsF�
V��T	��E��Ta��m�M��(�H��5�h+�j��
��w�	mkC�q �k��"x���g<��Q�������
o	Ib�RF�>�(���3�h{��./�]K��Y�h��5���bC�vG��s�#e��
�P$Z� ��r�y�<�p�7�z��\���������_Z�
�l��W��T��h��id�E���X�m;S��U�C����#�I�S<���N���H,�H?��:�����8�5����G���h����v+ZWj;�QF�P����kd��m�Ch/��=%E���[1�hDY�9H��$�U����nf����__��C�>�<���k���C`�E�{C?
�2�h����TOq����������[�����qc_?S��;#�bC�!�Hx�.�PQM����7^���+��}e�e�	_7-���A8�t�������w���! �s������.���O��X��G-vC��An�����x7�D4�R�k�)
���V�@���-5��F����n�*-�TQ�Q{C��A��AWG��D���\lB��
)���FFxK��)�x�o�^{wf���C���K�R�w��q���\�7�h��s���5�7	��,������R�VF�<d\M��D����"mL������M���0��H��!V)�e����}P���w���N7�'��Q��~"E�� z_���I8��G�X��):�3�^��F�������U\��D��F�
%���gH���9"���N����uD��X�7	�a��8?����0�gk�
&���$�~���@�[���I8� �����h-�'R�D���Bl�Xs&�t�prW�%Qj/�H�A=Yq�8_������
�;)��$��e���.�j�H����zm*rA~"E=a��L���p"E�z�}�������>�-��L��K�|pqa�&��#�1�'�z������q�8o��(��DV+3	gj�3�vA�Ai�(yn,����I8�����D�W��I8���Nc��
�$�a(�lbX���p����"kOL���6��^��&��������"N�M�F��
D|��=��_��]M.����O���������2	��%�D�&U#eN������j����u�2��$��{�p��!x���?��h����r�H�A���@T���S����du�7	��D��A]�1�S_���%l�$�!��7��Q��<�#$%D$�4��dS��5x�����y�p����b/,��p�m���x�F�):���E2?����@b}���'R��/wd����3�d���$^��I8� r��&�q�O�H����h��V�a�����K��j��M��s|����������e-�Hiz�p��Ih�.����.�yR�����P�"?��C~�N�(��&����w��0	gtm��(�~�D���1h
��M��l����1�?��.�����M��nx2b����H�qF������'6^��`�7$��H���~!��O6	gz�����3P�a<����3/r�$�i�����Z�&�L-a��Ft�zC�m�ib��x�p��#���%��pc�uN+�sN�_L�94��TQ�,�&����J-����0;��k��"��M�90�����[�p��� ��DL)R4�t�y_�[��-�O5�K���}���z�G�H��"�d��j�O;%����0;}�Z/���n0�h����+IV�H��VH��)���[����{e0�h.r�J��������\-D����|���[V��q�`H�Rl�z���GC����]g���`H�)���]�|C0�hik�:���}.R4��9eD��C�f�!gq�S�`H���'���8����g����cR��B;uo�������m��D��NC|]�C	�����b��b�bC�l����wa�������Ei\/��A��Q�o��
��@H�G���'ox!%V�|T�	�G��{��b���������<a�HQ�{T���f���R����!L�hh��tb}�sLTc��Sb��}X>��
O���
&R�y�c���2L�h��q��P��G�V�����$|gH�Jd[���p"Ew
#M����~Ca/��`����&��N�)�J�s�^)�b��Qm�d���w1�`�������%�����k��X�`�����%*��a"E['n)b?E���Q�E�
��@��Guw��+(�~PX�`����V�D�����m�N��<���1^����P��.",�]&^9`NE6X>��r��c�y��y;��[��`��6r��J��:�0��1�D��:�&R�f���������Q	U�����|�a��<�bK�T���9���A�\��<�K��`���T�b_/��L��G��R��T<��z�5SF�7�Sj?5�Sa�������b&�����X��OL�T�Zs���w�SEB0���@�E���-��:nM���'���I�jZ����-r��>LU��U-c�_��&�*�c�j���)>���JO0��DLU�k9O��O���;���|L;
�s���^M���'{�:%�L)T
�f�w5�f���n��^J�}C�O^����TR�`j�'��Z��u���)�
[����_��P5������
�t0AT�<���|���*=r��T��$Q�oc��M������u� g�D��DQ��
X�����X�{
���E�Q�zY.'P��tQ-l���?��]�0�F���Sj��(�)���8_D��`������u�:	�o0mT��9 ����O;���x��)��3�Q�oZ���>&�:���8�uk�����wa�Bx��D�G[���X��
=P���)\f�p����:n�
U��.�K4}T(�xq�f��i���(�|�>���J��|����S�u'����m,N}��>���EM^tS����Q�/�e���{q_B����������J~������W�i4}T%�|��P�v���Z��c{Qw�>jCe9��U�����"�y�r(�f4}Tk��M�%�Rq����+hWDL:N}�v�9�N��1�3���+���G�NB��R�-�#X��s	�bcT�
;
�N]��R?�����c��X������k�3�QU�����>_/��
��{�������f����l]�9�u�?}�����v��`}�����r���5);�|�+lu�Y�#rZ�`{}�3���Wq�h�(7$J��a>D]_�|�1��u����0�i��E���"^-u��Fm���N-�F�~�?�����/r���h���c���k��}�/��SL��w������G������C{:����S��blE�c��k#�/��Eh�c��������|)�G��iE��lH�����2�d5�<�I�#�C��b�v����F��}�8�6�>� �~��N?:���1�G���}]���V�����y�H@-��S5bJ���P������q���C�A����0����"�
���G\�!�YD�3�Y���7��,��qb���!��T���<���A�!�Q���������
p�>n��~<�Q{.r���Q�qK�j&O����:��^>��O'�/�:�����y;�Qa�$6B��v�?w�\���b��3����B�)�c��Q���15�*��>j�0���9�D�N�>kH:��Qh4����@��9�����Q~k�E�{u(qR�Z'j� P����r����^�k+fo�S��`OV�X�~��m;c��9L������?&��q���������u�M{�}�!/����|�\���uW7}�wl��Pu���Q��B�|�*4��s�Q�V�K����������$����Q~�M��@�R�9F�G���_m�zT�-�G�!1���:-ef�u�$�;���6���V����>f�(��+��ZQ�P7;e��S�^����O�8���7}T����G����
`���(�]���~:4����|\�G�6�����4}�����6Z��N#�Jnc��m4}��
5h�E'q�'�G9�6��Zc�D�0���f���e"�n������&Q��������2D�V�����Bd����w��d���7��}�x���
����5��%�>*�?m~[��M��������L���7�B�M~��b�
\� b���Q�3��1�Z/����^uZ���>��=2�
��c��Q�o�yp&T�x�S��D�����2����������%�G
W�A�$b[��Q15�?��m2}Th��ulQ������VW/�[����Qq���:X�[qK��=\��%�I������}�S�=;�>*�M��z\��La����5�\E�1�����W��Y~�E7�w�&Q��Ma��7��'�K�9�G��}�vjWTK���F�;�����%�G�X�3@���;$�Ge�z~j#���-����\��w�|������C�=���r���*��^h#��������Y�N�|Tq�uN��������r��*�@�}2}T���+[��y2}T�4�"'����Q9�����!���Q�KG;�Y�l��Q�2"��P������4+w�~��t����16����G������S�����i
��L��X�i����4�"�LUk�|j���b���yo��-q�|T�����],U�-\�?����,�G:��)���Qe�����z�[���O����]Lo�6��('j���j�~�F>�gb���6/^����c����w���3��Q5o�w�M��}�2���k9�����Qepz�5?H�����Je���!�|�b��q�@[��Pw�G�#�m{��a����1��`�|m�G�B���m�]��Q�x}>�T~�;=n^��/Y>�
9����8+�?f��v8 �@)tZ��Qu��;��'F2^_�����(��-���%S����t���N��we���jcj����UwS�G���^� �m_��xRr��M����E��6��.����8�|vX��,s�i��Zs�V���T#�d�������*;�EE��b��,j��l���������4�uY����G��Vb�O��]�6u|�@#����M�iTP��T��5j�kYT��4�Q�i*z��+�cv5s�.[{6����Q����(����(��;A���b�S��kd���bS��V�]���g��Q9o�J��k��Qm�3.�����>*mzvV�e���V�����\R>�X���/�m������"�O����3��|�D}���P��b/�F;���b������0�>�8+��
�R����>j�m�O��qNM��kEO��^�>*��Q���~�Y{.:����[���A�c�L��]S*"&�M������T���G���	c�|v���jd.�s*���g�id
	r���a���#��Vh��50��� v!��l�(W<�r
y[�9����:u'J���>�9�/,�O@���v�=����\�����f{o���Tv�1�;����3}T���wP��M���X���2f�8+����(�*�d��#O}���T��l�������a'4�y����S:_�S�3k����>n�f�C��s����hvz�����"b[��Q������jN�>�2�����r�s��p�Q���e�P:k��j�N��r�s����dS{P���X�m����y��Fo�0���Yi�(#�1�.D�-�>�pa�m�FB��g�G9��4u�I�������^L�i�����_hh����Q���H�J��f�ia��	�`1f�G���K�1Q/�-��zA�4r8"7�S;?.������g��B��Q�(�#�������E���?����eewD�[�/��xlc�;�e�8�[������c__}����-�>��>qf;�,��$��Q�y�:j��5��Q���_�u��%g;�������v�|���}�X�����G���>LU{���z��d������(�7=2�y�l�(�#r|��W}4����3zk�����B[������`\��.f�(�[�����s�������+O}T���q�sL}Td��L���S�G����qo(�Nh�(_#�6��:�|v�|��N�zmhx���x}���O����S�G��V�v����M}T&��M�Q�S�*�S���& �����uZ{�7y%8�u^�7T$�U� [B���)��E[9����s\���G����0���l)W���AU�T;�P)��&�6�)��ph\����������!��aR���S��q\�TP�Matd��" D���T�0��K��gB���������A�����ct"A�gBj�3����	�_>H��uS�~��������,DE�R.��@�l�c3�2l���D6���	��������T���v^��I��)��]4g�L��>�JG��h��@�.RK@����2�pu�������������N�|��z�����������������W_nn;~���������������w���������c�����^����z�������x����������O�����?o�>~=�������1������<N�/u>�|�o�����/_�����c�?=5(���~��=��p��On(����w�$]�~�~������o��??�sSf�c��|L�������y���r�xw{{�c�n��>N��T
�����On(=�}$��7��N��~����������������o�< 
#41Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#40)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

On 2023-03-21 01:25:11 +0300, Alexander Korotkov wrote:

I'm going to push patchset v15 if no objections.

Just saw that this went in - didn't catch up with the thread before,
unfortunately. At the very least I'd like to see some more work on cleaning up
the lazy tuple slot stuff. It's replete with unnecessary multiple-evaluation
hazards - I realize that there's some of those already, but I don't think we
should go further down that route. As far as I can tell there's no need for
any of this to be macros.

From a8b4e8a7b27815e013ea07b8cc9ac68541a9ac07 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Tue, 21 Mar 2023 00:34:15 +0300
Subject: [PATCH 1/2] Evade extra table_tuple_fetch_row_version() in
ExecUpdate()/ExecDelete()

When we lock tuple using table_tuple_lock() then we at the same time fetch
the locked tuple to the slot. In this case we can skip extra
table_tuple_fetch_row_version() thank to we've already fetched the 'old' tuple
and nobody can change it concurrently since it's locked.

Discussion: /messages/by-id/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg@mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
---
src/backend/executor/nodeModifyTable.c | 48 +++++++++++++++++++-------
1 file changed, 35 insertions(+), 13 deletions(-)

diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 3a673895082..93ebfdbb0d8 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1559,6 +1559,22 @@ ldelete:
{
case TM_Ok:
Assert(context->tmfd.traversed);
+
+							/*
+							 * Save locked tuple for further processing of
+							 * RETURNING clause.
+							 */
+							if (processReturning &&
+								resultRelInfo->ri_projectReturning &&
+								!resultRelInfo->ri_FdwRoutine)
+							{
+								TupleTableSlot *returningSlot;
+
+								returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+								ExecCopySlot(returningSlot, inputslot);
+								ExecMaterializeSlot(returningSlot);
+							}
+
epqslot = EvalPlanQual(context->epqstate,
resultRelationDesc,
resultRelInfo->ri_RangeTableIndex,

This seems a bit byzantine. We use inputslot = EvalPlanQualSlot(...) to make
EvalPlanQual() a bit cheaper, because that avoids a slot copy inside
EvalPlanQual(). But now we copy and materialize that slot anyway - and we do
so even if EPQ fails. And we afaics also do it when epqreturnslot is set, in
which case we'll afaics never use the copied slot.

Read the next paragraph below before replying to the above - I don't think
this is right for other reasons:

@@ -1673,12 +1689,17 @@ ldelete:
}
else
{
+			/*
+			 * Tuple can be already fetched to the returning slot in case
+			 * we've previously locked it.  Fetch the tuple only if the slot
+			 * is empty.
+			 */
slot = ExecGetReturningSlot(estate, resultRelInfo);
if (oldtuple != NULL)
{
ExecForceStoreHeapTuple(oldtuple, slot, false);
}
-			else
+			else if (TupIsNull(slot))
{
if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
SnapshotAny, slot))

I don't think this is correct as-is - what if ExecDelete() is called with some
older tuple in the returning slot? If we don't enter the TM_Updated path, it
won't get updated, and we'll return the wrong tuple. It certainly looks
possible to me - consider what happens if a first tuple enter the TM_Updated
path but then fails EvalPlanQual(). If a second tuple is deleted without
entering the TM_Updated path, the wrong tuple will be used for RETURNING.

<plays around with isolationtester>

Yes, indeed. The attached isolationtest breaks with 764da7710bf.

I think it's entirely sensible to avoid the tuple fetching in ExecDelete(),
but it needs a bit less localized work. Instead of using the presence of a
tuple in the returning slot, ExecDelete() should track whether it already has
fetched the deleted tuple.

Or alternatively, do the work to avoid refetching the tuple for the much more
common case of not needing EPQ at all.

I guess this really is part of my issue with this change - it optimizes the
rare case, while not addressing the same inefficiency in the common case.

@@ -299,14 +305,46 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
static TM_Result
heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					TM_FailureData *tmfd, bool changingPart,
+					LazyTupleTableSlot *lockedSlot)
{
+	TM_Result	result;
+
/*
* Currently Deleting of index tuples are handled at vacuum, in case if
* the storage itself is cleaning the dead tuples by itself, it is the
* time to call the index tuple deletion also.
*/
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, wait,
+						 tmfd, changingPart);
+
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
+	 * lock held retry of delete should succeed even if there are more
+	 * concurrent update attempts.
+	 */
+	if (result == TM_Updated && lockedSlot)
+	{
+		TupleTableSlot *evalSlot;
+
+		Assert(wait);
+
+		evalSlot = LAZY_TTS_EVAL(lockedSlot);
+		result = heapam_tuple_lock_internal(relation, tid, snapshot,
+											evalSlot, cid, LockTupleExclusive,
+											LockWaitBlock,
+											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+											tmfd, true);

Oh, huh? As I mentioned before, the unconditional use of LockWaitBlock means
the wait parameter is ignored.

I'm frankly getting annoyed here.

+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` argument to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+						   Snapshot snapshot, TupleTableSlot *slot,
+						   CommandId cid, LockTupleMode mode,
+						   LockWaitPolicy wait_policy, uint8 flags,
+						   TM_FailureData *tmfd, bool updated)

Why is the new parameter named 'updated'?

{
BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
TM_Result result;
- Buffer buffer;
+ Buffer buffer = InvalidBuffer;
HeapTuple tuple = &bslot->base.tupdata;
bool follow_updates;

@@ -374,16 +455,26 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,

tuple_lock_retry:
tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	if (!updated)
+		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+								 follow_updates, &buffer, tmfd);
+	else
+		result = TM_Updated;
if (result == TM_Updated &&
(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
{
-		/* Should not encounter speculative tuple on recheck */
-		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+		if (!updated)
+		{
+			/* Should not encounter speculative tuple on recheck */
+			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));

Hm, why is it ok to encounter speculative tuples in the updated case? Oh, I
guess you got failures because slot doesn't point anywhere at this point.

-		ReleaseBuffer(buffer);
+			ReleaseBuffer(buffer);
+		}
+		else
+		{
+			updated = false;
+		}

if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
{

Which means this is completely bogus now?

HeapTuple tuple = &bslot->base.tupdata;

In the first iteration this just points to the newly created slot. Which
doesn't have a tuple stored in it. So the above checks some uninitialized
memory.

Giving up at this point.

This doesn't seem ready to have been committed.

Greetings,

Andres Freund

Attachments:

0001-epq-delete-returning-spec-test.patchtext/x-diff; charset=us-asciiDownload
From 45e727dd4265baf338c641dd1460ed222be1a68a Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Wed, 22 Mar 2023 16:47:09 -0700
Subject: [PATCH] epq-delete-returning spec test

Author:
Reviewed-by:
Discussion: https://postgr.es/m/
Backpatch:
---
 .../isolation/expected/eval-plan-qual2.out    | 37 +++++++++++++++++++
 src/test/isolation/isolation_schedule         |  1 +
 src/test/isolation/specs/eval-plan-qual2.spec | 25 +++++++++++++
 3 files changed, 63 insertions(+)
 create mode 100644 src/test/isolation/expected/eval-plan-qual2.out
 create mode 100644 src/test/isolation/specs/eval-plan-qual2.spec

diff --git a/src/test/isolation/expected/eval-plan-qual2.out b/src/test/isolation/expected/eval-plan-qual2.out
new file mode 100644
index 00000000000..66ffdde3279
--- /dev/null
+++ b/src/test/isolation/expected/eval-plan-qual2.out
@@ -0,0 +1,37 @@
+Parsed test spec with 3 sessions
+
+starting permutation: read_u wx2 wb1 c2 c1 read_u read
+step read_u: SELECT * FROM accounts
+accountid|balance|balance2
+---------+-------+--------
+checking |    600|    1200
+savings  |    600|    1200
+(2 rows)
+
+step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
+balance
+-------
+   1050
+(1 row)
+
+step wb1: DELETE FROM accounts WHERE balance = 600 RETURNING *; <waiting ...>
+step c2: COMMIT;
+step wb1: <... completed>
+accountid|balance|balance2
+---------+-------+--------
+savings  |    600|    1200
+(1 row)
+
+step c1: COMMIT;
+step read_u: SELECT * FROM accounts
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
+step read: SELECT * FROM accounts ORDER BY accountid;
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule
index 4fc56ae99c9..029f7da674f 100644
--- a/src/test/isolation/isolation_schedule
+++ b/src/test/isolation/isolation_schedule
@@ -1,3 +1,4 @@
+test: eval-plan-qual2
 test: read-only-anomaly
 test: read-only-anomaly-2
 test: read-only-anomaly-3
diff --git a/src/test/isolation/specs/eval-plan-qual2.spec b/src/test/isolation/specs/eval-plan-qual2.spec
new file mode 100644
index 00000000000..4dae3193ca0
--- /dev/null
+++ b/src/test/isolation/specs/eval-plan-qual2.spec
@@ -0,0 +1,25 @@
+setup
+{
+ CREATE TABLE accounts (accountid text PRIMARY KEY, balance numeric not null,
+   balance2 numeric GENERATED ALWAYS AS (balance * 2) STORED);
+ INSERT INTO accounts VALUES ('checking', 600), ('savings', 600);
+}
+
+
+session s1
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step wb1	{ DELETE FROM accounts WHERE balance = 600 RETURNING *; }
+step c1		{ COMMIT; }
+
+session s2
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step wx2	{ UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; }
+step c2	{ COMMIT; }
+
+session s3
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step read	{ SELECT * FROM accounts ORDER BY accountid; }
+step read_u	{ SELECT * FROM accounts }
+
+
+permutation read_u wx2 wb1 c2 c1 read_u read
-- 
2.38.0

#42Alexander Korotkov
aekorotkov@gmail.com
In reply to: Andres Freund (#41)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi!

On Thu, Mar 23, 2023 at 3:30 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-21 01:25:11 +0300, Alexander Korotkov wrote:

I'm going to push patchset v15 if no objections.

Just saw that this went in - didn't catch up with the thread before,
unfortunately. At the very least I'd like to see some more work on cleaning up
the lazy tuple slot stuff. It's replete with unnecessary multiple-evaluation
hazards - I realize that there's some of those already, but I don't think we
should go further down that route. As far as I can tell there's no need for
any of this to be macros.

Thank you for taking a look at this, even post-commit. Regarding
marcos, do you think inline functions would be good instead?

From a8b4e8a7b27815e013ea07b8cc9ac68541a9ac07 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Tue, 21 Mar 2023 00:34:15 +0300
Subject: [PATCH 1/2] Evade extra table_tuple_fetch_row_version() in
ExecUpdate()/ExecDelete()

When we lock tuple using table_tuple_lock() then we at the same time fetch
the locked tuple to the slot. In this case we can skip extra
table_tuple_fetch_row_version() thank to we've already fetched the 'old' tuple
and nobody can change it concurrently since it's locked.

Discussion: /messages/by-id/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg@mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
---
src/backend/executor/nodeModifyTable.c | 48 +++++++++++++++++++-------
1 file changed, 35 insertions(+), 13 deletions(-)

diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 3a673895082..93ebfdbb0d8 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1559,6 +1559,22 @@ ldelete:
{
case TM_Ok:
Assert(context->tmfd.traversed);
+
+                                                     /*
+                                                      * Save locked tuple for further processing of
+                                                      * RETURNING clause.
+                                                      */
+                                                     if (processReturning &&
+                                                             resultRelInfo->ri_projectReturning &&
+                                                             !resultRelInfo->ri_FdwRoutine)
+                                                     {
+                                                             TupleTableSlot *returningSlot;
+
+                                                             returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+                                                             ExecCopySlot(returningSlot, inputslot);
+                                                             ExecMaterializeSlot(returningSlot);
+                                                     }
+
epqslot = EvalPlanQual(context->epqstate,
resultRelationDesc,
resultRelInfo->ri_RangeTableIndex,

This seems a bit byzantine. We use inputslot = EvalPlanQualSlot(...) to make
EvalPlanQual() a bit cheaper, because that avoids a slot copy inside
EvalPlanQual(). But now we copy and materialize that slot anyway - and we do
so even if EPQ fails. And we afaics also do it when epqreturnslot is set, in
which case we'll afaics never use the copied slot.

Yes, I agree that there is a redundancy we could avoid.

Read the next paragraph below before replying to the above - I don't think
this is right for other reasons:

@@ -1673,12 +1689,17 @@ ldelete:
}
else
{
+                     /*
+                      * Tuple can be already fetched to the returning slot in case
+                      * we've previously locked it.  Fetch the tuple only if the slot
+                      * is empty.
+                      */
slot = ExecGetReturningSlot(estate, resultRelInfo);
if (oldtuple != NULL)
{
ExecForceStoreHeapTuple(oldtuple, slot, false);
}
-                     else
+                     else if (TupIsNull(slot))
{
if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
SnapshotAny, slot))

I don't think this is correct as-is - what if ExecDelete() is called with some
older tuple in the returning slot? If we don't enter the TM_Updated path, it
won't get updated, and we'll return the wrong tuple. It certainly looks
possible to me - consider what happens if a first tuple enter the TM_Updated
path but then fails EvalPlanQual(). If a second tuple is deleted without
entering the TM_Updated path, the wrong tuple will be used for RETURNING.

<plays around with isolationtester>

Yes, indeed. The attached isolationtest breaks with 764da7710bf.

Thank you for cathing this! This is definitely a bug.

I think it's entirely sensible to avoid the tuple fetching in ExecDelete(),
but it needs a bit less localized work. Instead of using the presence of a
tuple in the returning slot, ExecDelete() should track whether it already has
fetched the deleted tuple.

Or alternatively, do the work to avoid refetching the tuple for the much more
common case of not needing EPQ at all.

I guess this really is part of my issue with this change - it optimizes the
rare case, while not addressing the same inefficiency in the common case.

I'm going to fix this for ExecDelete(). Avoiding refetching the tuple
in more common case is something I'm definitely very interested in.
But I would leave it for the future.

@@ -299,14 +305,46 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
static TM_Result
heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
Snapshot snapshot, Snapshot crosscheck, bool wait,
-                                     TM_FailureData *tmfd, bool changingPart)
+                                     TM_FailureData *tmfd, bool changingPart,
+                                     LazyTupleTableSlot *lockedSlot)
{
+     TM_Result       result;
+
/*
* Currently Deleting of index tuples are handled at vacuum, in case if
* the storage itself is cleaning the dead tuples by itself, it is the
* time to call the index tuple deletion also.
*/
-     return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+     result = heap_delete(relation, tid, cid, crosscheck, wait,
+                                              tmfd, changingPart);
+
+     /*
+      * If the tuple has been concurrently updated, then get the lock on it.
+      * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
+      * lock held retry of delete should succeed even if there are more
+      * concurrent update attempts.
+      */
+     if (result == TM_Updated && lockedSlot)
+     {
+             TupleTableSlot *evalSlot;
+
+             Assert(wait);
+
+             evalSlot = LAZY_TTS_EVAL(lockedSlot);
+             result = heapam_tuple_lock_internal(relation, tid, snapshot,
+                                                                                     evalSlot, cid, LockTupleExclusive,
+                                                                                     LockWaitBlock,
+                                                                                     TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+                                                                                     tmfd, true);

Oh, huh? As I mentioned before, the unconditional use of LockWaitBlock means
the wait parameter is ignored.

I'm frankly getting annoyed here.

lockedSlot shoudln't be provided when wait == false. The assertion
above expresses this intention. However, the code lacking of comment
directly expressing this idea.

And sorry for getting you annoyed. The relevant comment should be
already there.

+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` argument to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+                                                Snapshot snapshot, TupleTableSlot *slot,
+                                                CommandId cid, LockTupleMode mode,
+                                                LockWaitPolicy wait_policy, uint8 flags,
+                                                TM_FailureData *tmfd, bool updated)

Why is the new parameter named 'updated'?

To indicate that we know that we're locking the updated tuple.
Probably not descriptive enough.

{
BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
TM_Result       result;
-     Buffer          buffer;
+     Buffer          buffer = InvalidBuffer;
HeapTuple       tuple = &bslot->base.tupdata;
bool            follow_updates;

@@ -374,16 +455,26 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,

tuple_lock_retry:
tuple->t_self = *tid;
-     result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-                                                      follow_updates, &buffer, tmfd);
+     if (!updated)
+             result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
+                                                              follow_updates, &buffer, tmfd);
+     else
+             result = TM_Updated;
if (result == TM_Updated &&
(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
{
-             /* Should not encounter speculative tuple on recheck */
-             Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
+             if (!updated)
+             {
+                     /* Should not encounter speculative tuple on recheck */
+                     Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));

Hm, why is it ok to encounter speculative tuples in the updated case? Oh, I
guess you got failures because slot doesn't point anywhere at this point.

Yes, given that tuple is not accessible, this assert can't work. I've
a couple ideas on how to replace it.
1) As I get the primary point of of this assertion is to be sure that
tmfd->ctid really points us to a correct tuple (while speculative
token doesn't do). So, for the 'updated' case we can check tmfd->ctid
directly (or even for both cases?). However, I can't find the
relevant macro for this, probably
2) We can check that we don't return TM_Updated from heap_update() and
heap_delete(), when old tuple is speculative token.

-             ReleaseBuffer(buffer);
+                     ReleaseBuffer(buffer);
+             }
+             else
+             {
+                     updated = false;
+             }

if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
{

Which means this is completely bogus now?

HeapTuple tuple = &bslot->base.tupdata;

In the first iteration this just points to the newly created slot. Which
doesn't have a tuple stored in it. So the above checks some uninitialized
memory.

No, this is not so. tuple->t_self is unconditionally assigned few
lines before. So, it can't be uninitialized memory given that *tid is
initialized.

I seriously doubt this patch could pass the tests if that comparison
would use uninitialized memory.

Giving up at this point.

This doesn't seem ready to have been committed.

Yep, that could be better. Given, that item pointer comparison
doesn't really use uninitialized memory, probably not as bad as you
thought at the first glance.

I'm going to post a patch to address the issues you've raised in next 24h.

------
Regards,
Alexander Korotkov

#43Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#42)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

On 2023-03-23 18:08:36 +0300, Alexander Korotkov wrote:

On Thu, Mar 23, 2023 at 3:30 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-21 01:25:11 +0300, Alexander Korotkov wrote:

I'm going to push patchset v15 if no objections.

Just saw that this went in - didn't catch up with the thread before,
unfortunately. At the very least I'd like to see some more work on cleaning up
the lazy tuple slot stuff. It's replete with unnecessary multiple-evaluation
hazards - I realize that there's some of those already, but I don't think we
should go further down that route. As far as I can tell there's no need for
any of this to be macros.

Thank you for taking a look at this, even post-commit. Regarding
marcos, do you think inline functions would be good instead?

Yes.

I think it's entirely sensible to avoid the tuple fetching in ExecDelete(),
but it needs a bit less localized work. Instead of using the presence of a
tuple in the returning slot, ExecDelete() should track whether it already has
fetched the deleted tuple.

Or alternatively, do the work to avoid refetching the tuple for the much more
common case of not needing EPQ at all.

I guess this really is part of my issue with this change - it optimizes the
rare case, while not addressing the same inefficiency in the common case.

I'm going to fix this for ExecDelete(). Avoiding refetching the tuple
in more common case is something I'm definitely very interested in.
But I would leave it for the future.

It doesn't seem like a good plan to start with the rare and then address the
common case. The solution for the common case might solve the rare case as
well. One way to make to fix the common case would be to return a tuple
suitable for returning computation as part of the input plan - which would
also fix the EPQ case, since we could just use the EPQ output. Of course there
are complications like triggers, but they seem like they could be dealt with.

@@ -299,14 +305,46 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
static TM_Result
heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
Snapshot snapshot, Snapshot crosscheck, bool wait,
-                                     TM_FailureData *tmfd, bool changingPart)
+                                     TM_FailureData *tmfd, bool changingPart,
+                                     LazyTupleTableSlot *lockedSlot)
{
+     TM_Result       result;
+
/*
* Currently Deleting of index tuples are handled at vacuum, in case if
* the storage itself is cleaning the dead tuples by itself, it is the
* time to call the index tuple deletion also.
*/
-     return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+     result = heap_delete(relation, tid, cid, crosscheck, wait,
+                                              tmfd, changingPart);
+
+     /*
+      * If the tuple has been concurrently updated, then get the lock on it.
+      * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
+      * lock held retry of delete should succeed even if there are more
+      * concurrent update attempts.
+      */
+     if (result == TM_Updated && lockedSlot)
+     {
+             TupleTableSlot *evalSlot;
+
+             Assert(wait);
+
+             evalSlot = LAZY_TTS_EVAL(lockedSlot);
+             result = heapam_tuple_lock_internal(relation, tid, snapshot,
+                                                                                     evalSlot, cid, LockTupleExclusive,
+                                                                                     LockWaitBlock,
+                                                                                     TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+                                                                                     tmfd, true);

Oh, huh? As I mentioned before, the unconditional use of LockWaitBlock means
the wait parameter is ignored.

I'm frankly getting annoyed here.

lockedSlot shoudln't be provided when wait == false. The assertion
above expresses this intention. However, the code lacking of comment
directly expressing this idea.

I don't think a comment here is going to fix things. You can't expect somebody
trying to use tableam to look into the guts of a heapam function to understand
the API constraints to this degree. And there's afaict no comments in tableam
that indicate any of this.

I also just don't see why this is a sensible constraint? Why should this only
work if wait == false?

+/*
+ * This routine does the work for heapam_tuple_lock(), but also support
+ * `updated` argument to re-use the work done by heapam_tuple_update() or
+ * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
+ */
+static TM_Result
+heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
+                                                Snapshot snapshot, TupleTableSlot *slot,
+                                                CommandId cid, LockTupleMode mode,
+                                                LockWaitPolicy wait_policy, uint8 flags,
+                                                TM_FailureData *tmfd, bool updated)

Why is the new parameter named 'updated'?

To indicate that we know that we're locking the updated tuple.
Probably not descriptive enough.

Given it's used for deletions, I'd say so.

-             ReleaseBuffer(buffer);
+                     ReleaseBuffer(buffer);
+             }
+             else
+             {
+                     updated = false;
+             }

if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
{

Which means this is completely bogus now?

HeapTuple tuple = &bslot->base.tupdata;

In the first iteration this just points to the newly created slot. Which
doesn't have a tuple stored in it. So the above checks some uninitialized
memory.

No, this is not so. tuple->t_self is unconditionally assigned few
lines before. So, it can't be uninitialized memory given that *tid is
initialized.

Ugh. This means you're basically leaving uninitialized / not initialized state
in the other portions of the tuple/slot, without even documenting that. The
code was ugly starting out, but this certainly makes it worse.

There's also no comment explaining that tmfd suddenly is load-bearing *input*
into heapam_tuple_lock_internal(), whereas previously it was purely an output
parameter - and is documented as such:
* Output parameters:
* *slot: contains the target tuple
* *tmfd: filled in failure cases (see below)

This is an *awful* API.

I seriously doubt this patch could pass the tests if that comparison
would use uninitialized memory.

IDK about that - it's hard to exercise this code in the regression tests, and
plenty things are zero initialized, which often makes things appear to work in
the first iteration.

Giving up at this point.

This doesn't seem ready to have been committed.

Yep, that could be better. Given, that item pointer comparison
doesn't really use uninitialized memory, probably not as bad as you
thought at the first glance.

The details of how it's bad maybe differ slightly, but looking at it a bit
longer I also found new things. So I don't really think it's better than what
I though it was.

Greetings,

Andres Freund

#44Andres Freund
andres@anarazel.de
In reply to: Andres Freund (#43)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

An off-list conversation veered on-topic again. Reposting for posterity:

On 2023-03-23 23:24:19 +0300, Alexander Korotkov wrote:

On Thu, Mar 23, 2023 at 8:06 PM Andres Freund <andres@anarazel.de> wrote:

I seriously doubt that solving this at the tuple locking level is the right
thing. If we want to avoid refetching tuples, why don't we add a parameter to
delete/update to generally put the old tuple version into a slot, not just as
an optimization for a subsequent lock_tuple()? Then we could remove all
refetching tuples for triggers. It'd also provide the basis for adding support
for referencing the OLD version in RETURNING, which'd be quite powerful.

I spent some time thinking on this. Does our attempt to update/delete
tuple imply that we've already fetched the old tuple version?

Yes, but somewhat "far away", below the ExecProcNode() in ExecModifyTable(). I
don't think we can rely on that. The old tuple is just identified via a junk
attribute (c.f. "For UPDATE/DELETE/MERGE, fetch the row identity info for the
tuple..."). The NEW tuple is computed in the target list of the source query.
It's possible that for some simpler cases we could figure out that the
returned slot is the "old" tuple, but it'd be hard to make that work.

Alternatively we could evaluate returning as part of the source query
plan. While that'd work nicely for the EPQ cases (the EPQ evaluation would
compute the new values), it could not be relied upon for before triggers.

It might or might not be a win to try to do so - if you have a selective
query, ferrying around the entire source tuple might cost more than it
saves.

We needed that at least to do initial qual check and calculation of the new
tuple (for update case).

The NEW tuple is computed in the source query, as I mentioned, I don't think
we easily can get access to the source row in the general case.

We currently may not have the old tuple at hand at the time we do
table_tuple_update()/table_tuple_delete(). But that seems to be just and
issue of our executor code. Do it worth to make table AM fetch the old
*unmodified* tuple given that we've already fetched it for sure?

Not unconditionally (e.g. if you neither have triggers, nor RETURNING, there's
not much point, unless the query is simple enough that we could make it
free). But in the other cases it seems beneficial. The caller would reliably
know whether they want the source tuple to be fetched, or not.

We could make it so that iff we already have the "old" tuple in the slot,
it'll not be put in there "again", but if it's not the right row version, it
is.

We could use the same approach to make the "happy path" in update/delete
cheaper. If the source tuple is provided, heap_delete(), heap_update() won't
need to do a ReadBuffer(), they could just IncrBufferRefCount(). That'd be a
quite substantial win.

Greetings,

Andres Freund

#45Alexander Korotkov
aekorotkov@gmail.com
In reply to: Andres Freund (#44)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi!

On Fri, Mar 24, 2023 at 3:39 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-23 23:24:19 +0300, Alexander Korotkov wrote:

On Thu, Mar 23, 2023 at 8:06 PM Andres Freund <andres@anarazel.de> wrote:

I seriously doubt that solving this at the tuple locking level is the right
thing. If we want to avoid refetching tuples, why don't we add a parameter to
delete/update to generally put the old tuple version into a slot, not just as
an optimization for a subsequent lock_tuple()? Then we could remove all
refetching tuples for triggers. It'd also provide the basis for adding support
for referencing the OLD version in RETURNING, which'd be quite powerful.

After some thoughts, I think I like idea of fetching old tuple version
in update/delete. Everything that evades extra tuple fetching and do
more of related work in a single table AM call, makes table AM API
more flexible.

I'm working on patch implementing this. I'm going to post it later today.

------
Regards,
Alexander Korotkov

#46Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#45)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Andres,

On Mon, Mar 27, 2023 at 1:49 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Fri, Mar 24, 2023 at 3:39 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-23 23:24:19 +0300, Alexander Korotkov wrote:

On Thu, Mar 23, 2023 at 8:06 PM Andres Freund <andres@anarazel.de> wrote:

I seriously doubt that solving this at the tuple locking level is the right
thing. If we want to avoid refetching tuples, why don't we add a parameter to
delete/update to generally put the old tuple version into a slot, not just as
an optimization for a subsequent lock_tuple()? Then we could remove all
refetching tuples for triggers. It'd also provide the basis for adding support
for referencing the OLD version in RETURNING, which'd be quite powerful.

After some thoughts, I think I like idea of fetching old tuple version
in update/delete. Everything that evades extra tuple fetching and do
more of related work in a single table AM call, makes table AM API
more flexible.

I'm working on patch implementing this. I'm going to post it later today.

Here is the patchset. I'm continue to work on comments and refactoring.

My quick question is why do we need ri_TrigOldSlot for triggers?
Can't we just pass the old tuple for after row trigger in
ri_oldTupleSlot?

Also, I wonder if we really need a LazyTupleSlot. It allows to evade
extra tuple slot allocation. But as I get in the end the tuple slot
allocation is just a single palloc. I bet the effect would be
invisible in the benchmarks.

------
Regards,
Alexander Korotkov

Attachments:

0001-Improve-lazy-tuple-slot-v1.patchapplication/octet-stream; name=0001-Improve-lazy-tuple-slot-v1.patchDownload
From 185a6c8ee89aecb49b61b35da3c3c5562a558bd8 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Mon, 27 Mar 2023 15:05:25 +0300
Subject: [PATCH 1/2] Improve lazy tuple slot

This commit implements two improvements to lazy tuple slot implementation.
 * Replace macros with inline function to prevent multiple evaluation of the
   argument.
 * Introdue a new lazy tuple slot constructor on the base of existing normal
   slot, not a callback.

Reported-by: Andres Freund
Discussion: https://postgr.es/m/20230323003003.plgaxjqahjgkuxrk%40awork3.anarazel.de
---
 src/backend/access/heap/heapam_handler.c |  4 +-
 src/backend/executor/nodeModifyTable.c   |  4 +-
 src/include/executor/tuptable.h          | 57 +++++++++++++++++-------
 3 files changed, 45 insertions(+), 20 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 9e690074e94..2bddf562c2f 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -330,7 +330,7 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 
 		Assert(wait);
 
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
+		evalSlot = LazyTupleTableSlotEval(lockedSlot);
 		result = heapam_tuple_lock_internal(relation, tid, snapshot,
 											evalSlot, cid, LockTupleExclusive,
 											LockWaitBlock,
@@ -403,7 +403,7 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 
 		Assert(wait);
 
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
+		evalSlot = LazyTupleTableSlotEval(lockedSlot);
 		result = heapam_tuple_lock_internal(relation, otid, snapshot,
 											evalSlot, cid, *lockmode,
 											LockWaitBlock,
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index e3503756818..2f6c97a8404 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1365,7 +1365,7 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 
 	if (lockUpdated)
 	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
 		lazyEPQSlotPtr = &lazyEPQSlot;
 	}
 	else
@@ -2101,7 +2101,7 @@ lreplace:
 	 */
 	if (lockUpdated)
 	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
 		lazyEPQSlotPtr = &lazyEPQSlot;
 	}
 	else
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index c61734a15d4..30729f7a076 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -307,9 +307,11 @@ typedef struct MinimalTupleTableSlot
  * likely will reain undemanded.  Preallocating such slot would be a waste of
  * resources in the  majority of cases.  Lazy slot is aimed to resolve this
  * problem.  It is basically a promise to allocate the slot once it's needed.
- * Once callee needs the slot, it could get it using LAZY_TTS_EVAL(lazySlot)
- * macro.
+ * Once callee needs the slot, it could get it using
+ * LazyTupleTableSlotEval(lazySlot) function.
  */
+typedef TupleTableSlot *(*LazyTupleTableSlotCallback) (void *arg);
+
 typedef struct
 {
 	TupleTableSlot *slot;		/* cached slot or NULL if not yet allocated */
@@ -318,25 +320,48 @@ typedef struct
 } LazyTupleTableSlot;
 
 /*
- * A constructor for the lazy slot.
+ * Initialize LazyTupleTableSlot with callback and argument.
+ */
+static inline void
+MakeLazyTupleTableSlotWithCallback(LazyTupleTableSlot *lazySlot,
+								   LazyTupleTableSlotCallback callback,
+								   void *arg)
+{
+	lazySlot->slot = NULL;
+	lazySlot->getSlot = callback;
+	lazySlot->getSlotArg = arg;
+}
+
+/*
+ * Initialize LazyTupleTableSlot with existing slot.
  */
-#define MAKE_LAZY_TTS(lazySlot, callback, arg) \
-	do { \
-		(lazySlot)->slot = NULL; \
-		(lazySlot)->getSlot = callback; \
-		(lazySlot)->getSlotArg = arg; \
-	} while (false)
+static inline void
+MakeLazyTupleTableSlotWithSlot(LazyTupleTableSlot *lazySlot,
+							   TupleTableSlot *slot)
+{
+	lazySlot->slot = slot;
+	lazySlot->getSlot = NULL;
+	lazySlot->getSlotArg = NULL;
+}
 
 /*
- * Macro for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
+ * Function for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
  * Cached version is used if present.  Use the callback otherwise.
  */
-#define LAZY_TTS_EVAL(lazySlot) \
-	((lazySlot) ? \
-		((lazySlot)->slot ? \
-			(lazySlot)->slot : \
-			((lazySlot)->slot = (lazySlot)->getSlot((lazySlot)->getSlotArg))) : \
-		NULL)
+static inline TupleTableSlot *
+LazyTupleTableSlotEval(LazyTupleTableSlot *lazySlot)
+{
+	if (!lazySlot)
+		return NULL;
+
+	if (!lazySlot->slot)
+	{
+		Assert(lazySlot->getSlot);
+		lazySlot->slot = lazySlot->getSlot(lazySlot->getSlotArg);
+	}
+	Assert(lazySlot->slot);
+	return lazySlot->slot;
+}
 
 /* in executor/execTuples.c */
 extern TupleTableSlot *MakeTupleTableSlot(TupleDesc tupleDesc,
-- 
2.37.1 (Apple Git-137.1)

0002-Revise-changes-for-tuple_update-and-tuple_delete-v1.patchapplication/octet-stream; name=0002-Revise-changes-for-tuple_update-and-tuple_delete-v1.patchDownload
From caef25c19ed8b9bc9ddd3bd1107c1a40d02d49e1 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Tue, 28 Mar 2023 18:04:15 +0300
Subject: [PATCH 2/2] Revise changes for tuple_update() and tuple_delete()

11470f544e allowed locking updated tuples in tuple_update() and tuple_delete().

This commit improves the things in the following ways.
 * tuple_update() and tuple_delete() can now fetch the old tuple version not
   only after lock, but also after successful UPDATE/DELETE.  That allows to
   evade tuple re-fetching in more general case.
 * Avoid tuple re-fetching for triggers.
 * Improve code API for heap_lock_tuple.  Automatically detect prefetched in
   slot.
---
 src/backend/access/heap/heapam.c         | 194 +++++++++++++----
 src/backend/access/heap/heapam_handler.c | 131 +++++-------
 src/backend/access/table/tableam.c       |  34 ++-
 src/backend/commands/trigger.c           |  31 +--
 src/backend/executor/execReplication.c   |  15 +-
 src/backend/executor/nodeModifyTable.c   | 258 ++++++++++++++++-------
 src/include/access/heapam.h              |  19 +-
 src/include/access/tableam.h             |  71 +++++--
 8 files changed, 484 insertions(+), 269 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 8abc101c8cb..985b95cf1aa 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2449,10 +2449,11 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 }
 
 /*
- *	heap_delete - delete a tuple
+ *	heap_delete - delete a tuple, optionally fetching it into a slot
  *
  * See table_tuple_delete() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2461,8 +2462,9 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
  */
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
-			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			CommandId cid, Snapshot crosscheck, int options,
+			TM_FailureData *tmfd, bool changingPart,
+			LazyTupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2540,7 +2542,7 @@ l1:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to delete invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -2676,7 +2678,30 @@ l1:
 			tmfd->cmax = HeapTupleHeaderGetCmax(tp.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+			bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = tp;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   &bslot->base.base,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(tp.t_self), LockTupleExclusive);
 		if (vmbuffer != InvalidBuffer)
@@ -2850,8 +2875,24 @@ l1:
 	 */
 	CacheInvalidateHeapTuple(relation, &tp, NULL);
 
-	/* Now we can release the buffer */
-	ReleaseBuffer(buffer);
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+		bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+
+		bslot->base.tupdata = tp;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   &bslot->base.base,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
 
 	/*
 	 * Release the lmgr tuple lock, if we had it.
@@ -2884,7 +2925,7 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 &tmfd, false /* changingPart */ , NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2911,10 +2952,11 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 }
 
 /*
- *	heap_update - replace a tuple
+ *	heap_update - replace a tuple, optionally fetching it into a slot
  *
  * See table_tuple_update() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2923,9 +2965,9 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  */
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
-			CommandId cid, Snapshot crosscheck, bool wait,
+			CommandId cid, Snapshot crosscheck, int options,
 			TM_FailureData *tmfd, LockTupleMode *lockmode,
-			TU_UpdateIndexes *update_indexes)
+			TU_UpdateIndexes *update_indexes, LazyTupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3102,7 +3144,7 @@ l2:
 	result = HeapTupleSatisfiesUpdate(&oldtup, cid, buffer);
 
 	/* see below about the "no wait" case */
-	Assert(result != TM_BeingModified || wait);
+	Assert(result != TM_BeingModified || (options & TABLE_MODIFY_WAIT));
 
 	if (result == TM_Invisible)
 	{
@@ -3111,7 +3153,7 @@ l2:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to update invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -3313,7 +3355,30 @@ l2:
 			tmfd->cmax = HeapTupleHeaderGetCmax(oldtup.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+			bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = oldtup;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   &bslot->base.base,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(oldtup.t_self), *lockmode);
 		if (vmbuffer != InvalidBuffer)
@@ -3791,7 +3856,26 @@ l2:
 	/* Now we can release the buffer(s) */
 	if (newbuf != buffer)
 		ReleaseBuffer(newbuf);
-	ReleaseBuffer(buffer);
+
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+		bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+
+		bslot->base.tupdata = oldtup;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   &bslot->base.base,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
+
 	if (BufferIsValid(vmbuffer_new))
 		ReleaseBuffer(vmbuffer_new);
 	if (BufferIsValid(vmbuffer))
@@ -4000,7 +4084,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, &lockmode, update_indexes);
+						 &tmfd, &lockmode, update_indexes, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4079,15 +4163,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  * See README.tuplock for a thorough explanation of this mechanism.
  */
 TM_Result
-heap_lock_tuple(Relation relation, HeapTuple tuple,
+heap_lock_tuple(Relation relation, ItemPointer tid, TupleTableSlot *slot,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				bool follow_updates, TM_FailureData *tmfd)
 {
 	TM_Result	result;
-	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
+	Buffer		buffer;
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 	TransactionId xid,
@@ -4099,8 +4182,24 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	bool		skip_tuple_lock = false;
 	bool		have_tuple_lock = false;
 	bool		cleared_all_frozen = false;
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	HeapTuple	tuple = &bslot->base.tupdata;
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	/*
+	 * If slot already contains the relevant tuple, re-use the buffer in slot.
+	 */
+	if (TTS_EMPTY(slot) ||
+		slot->tts_tableOid != relation->rd_id ||
+		ItemPointerCompare(&slot->tts_tid, tid) != 0 ||
+		!BufferIsValid(bslot->buffer))
+	{
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	}
+	else
+	{
+		buffer = bslot->buffer;
+		IncrBufferRefCount(buffer);
+	}
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4109,21 +4208,22 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
+	tuple->t_self = *tid;
 	tuple->t_data = (HeapTupleHeader) PageGetItem(page, lp);
 	tuple->t_len = ItemIdGetLength(lp);
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4152,7 +4252,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4304,12 +4404,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4344,7 +4444,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4372,7 +4472,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4384,7 +4484,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4412,7 +4512,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4434,7 +4534,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4459,7 +4559,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4485,7 +4585,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4525,7 +4625,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4551,12 +4651,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4578,7 +4678,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4637,9 +4737,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4702,7 +4802,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4722,7 +4822,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4743,7 +4843,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4761,6 +4861,8 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 2bddf562c2f..9686ecc3cde 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,12 +45,6 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
-static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-											Snapshot snapshot, TupleTableSlot *slot,
-											CommandId cid, LockTupleMode mode,
-											LockWaitPolicy wait_policy, uint8 flags,
-											TM_FailureData *tmfd, bool updated);
-
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -304,9 +298,9 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
-					Snapshot snapshot, Snapshot crosscheck, bool wait,
+					Snapshot snapshot, Snapshot crosscheck, int options,
 					TM_FailureData *tmfd, bool changingPart,
-					LazyTupleTableSlot *lockedSlot)
+					LazyTupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 
@@ -315,33 +309,31 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	result = heap_delete(relation, tid, cid, crosscheck, wait,
-						 tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, options,
+						 tmfd, changingPart, oldSlot);
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of delete should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do this if caller asked for that by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option 'oldSlot'.)  With the lock held retry
+	 * of the delete should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
 		TupleTableSlot *evalSlot;
 
-		Assert(wait);
-
-		evalSlot = LazyTupleTableSlotEval(lockedSlot);
+		evalSlot = LazyTupleTableSlotEval(oldSlot);
 		result = heapam_tuple_lock_internal(relation, tid, snapshot,
 											evalSlot, cid, LockTupleExclusive,
-											LockWaitBlock,
+											(options & TABLE_MODIFY_WAIT) ?
+											LockWaitBlock :
+											LockWaitSkip,
 											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+											tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -351,9 +343,9 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-					bool wait, TM_FailureData *tmfd,
+					int options, TM_FailureData *tmfd,
 					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
-					LazyTupleTableSlot *lockedSlot)
+					LazyTupleTableSlot *oldSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -363,8 +355,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode, update_indexes);
+	result = heap_update(relation, otid, tuple, cid, crosscheck, options,
+						 tmfd, lockmode, update_indexes, oldSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -373,8 +365,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	 * Note: heap_update returns the tid (location) of the new tuple in the
 	 * t_self field.
 	 *
-	 * If the update is not HOT, we must update all indexes. If the update
-	 * is HOT, it could be that we updated summarized columns, so we either
+	 * If the update is not HOT, we must update all indexes. If the update is
+	 * HOT, it could be that we updated summarized columns, so we either
 	 * update only summarized indexes, or none at all.
 	 */
 	if (result != TM_Ok)
@@ -393,28 +385,28 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of update should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do this if caller asked for that by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option 'oldSlot'.)  With the lock held retry
+	 * of the update should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
 		TupleTableSlot *evalSlot;
 
-		Assert(wait);
+		Assert(options & TABLE_MODIFY_WAIT);
+		evalSlot = LazyTupleTableSlotEval(oldSlot);
 
-		evalSlot = LazyTupleTableSlotEval(lockedSlot);
 		result = heapam_tuple_lock_internal(relation, otid, snapshot,
 											evalSlot, cid, *lockmode,
-											LockWaitBlock,
+											(options & TABLE_MODIFY_WAIT) ?
+											LockWaitBlock :
+											LockWaitSkip,
 											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+											tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -425,22 +417,6 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
-{
-	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid,
-									  mode, wait_policy, flags, tmfd, false);
-}
-
-/*
- * This routine does the work for heapam_tuple_lock(), but also support
- * `updated` argument to re-use the work done by heapam_tuple_update() or
- * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
- */
-static TM_Result
-heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-						   Snapshot snapshot, TupleTableSlot *slot,
-						   CommandId cid, LockTupleMode mode,
-						   LockWaitPolicy wait_policy, uint8 flags,
-						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
@@ -454,27 +430,14 @@ heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
 	Assert(TTS_IS_BUFFERTUPLE(slot));
 
 tuple_lock_retry:
-	tuple->t_self = *tid;
-	if (!updated)
-		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-								 follow_updates, &buffer, tmfd);
-	else
-		result = TM_Updated;
+	result = heap_lock_tuple(relation, tid, slot, cid, mode, wait_policy,
+							 follow_updates, tmfd);
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		if (!updated)
-		{
-			/* Should not encounter speculative tuple on recheck */
-			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-			ReleaseBuffer(buffer);
-		}
-		else
-		{
-			updated = false;
-		}
+		/* Should not encounter speculative tuple on recheck */
+		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
@@ -505,6 +468,8 @@ tuple_lock_retry:
 				tuple->t_self = *tid;
 				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
 				{
+					ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 					/*
 					 * If xmin isn't what we're expecting, the slot must have
 					 * been recycled and reused for an unrelated tuple.  This
@@ -518,7 +483,7 @@ tuple_lock_retry:
 					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
 											 priorXmax))
 					{
-						ReleaseBuffer(buffer);
+						ExecClearTuple(slot);
 						return TM_Deleted;
 					}
 
@@ -538,7 +503,7 @@ tuple_lock_retry:
 					 */
 					if (TransactionIdIsValid(SnapshotDirty.xmax))
 					{
-						ReleaseBuffer(buffer);
+						ExecClearTuple(slot);
 						switch (wait_policy)
 						{
 							case LockWaitBlock:
@@ -584,16 +549,19 @@ tuple_lock_retry:
 						 * above.
 						 */
 						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
 						return TM_SelfModified;
 					}
 
 					/*
 					 * This is a live tuple, so try to lock it again.
 					 */
-					ReleaseBuffer(buffer);
 					goto tuple_lock_retry;
 				}
+				else
+				{
+					if (BufferIsValid(buffer))
+						ReleaseBuffer(buffer);
+				}
 
 				/*
 				 * If the referenced slot was actually empty, the latest
@@ -602,7 +570,7 @@ tuple_lock_retry:
 				 */
 				if (tuple->t_data == NULL)
 				{
-					Assert(!BufferIsValid(buffer));
+					ExecClearTuple(slot);
 					return TM_Deleted;
 				}
 
@@ -612,7 +580,7 @@ tuple_lock_retry:
 				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
 										 priorXmax))
 				{
-					ReleaseBuffer(buffer);
+					ExecClearTuple(slot);
 					return TM_Deleted;
 				}
 
@@ -633,7 +601,7 @@ tuple_lock_retry:
 				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
 				{
 					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
+					ExecClearTuple(slot);
 					return TM_Deleted;
 				}
 
@@ -641,13 +609,13 @@ tuple_lock_retry:
 				*tid = tuple->t_data->t_ctid;
 				/* updated row should have xmin matching this xmax */
 				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
 				/* loop back to fetch next in chain */
 			}
 		}
 		else
 		{
 			/* tuple was deleted, so give up */
+			ExecClearTuple(slot);
 			return TM_Deleted;
 		}
 	}
@@ -655,9 +623,6 @@ tuple_lock_retry:
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
 	return result;
 }
 
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index 2a1a6ced3c7..223ab8e8f63 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -297,17 +297,28 @@ simple_table_tuple_insert(Relation rel, TupleTableSlot *slot)
  * via ereport().
  */
 void
-simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
+simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+	LazyTupleTableSlot *lazyOldSlot = NULL,
+				lazyOldSlotData;
+
+	if (oldSlot)
+	{
+		lazyOldSlot = &lazyOldSlotData;
+		MakeLazyTupleTableSlotWithSlot(lazyOldSlot, oldSlot);
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+	}
 
 	result = table_tuple_delete(rel, tid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, false /* changingPart */ ,
-								NULL);
+								lazyOldSlot);
 
 	switch (result)
 	{
@@ -346,18 +357,29 @@ void
 simple_table_tuple_update(Relation rel, ItemPointer otid,
 						  TupleTableSlot *slot,
 						  Snapshot snapshot,
-						  TU_UpdateIndexes *update_indexes)
+						  TU_UpdateIndexes *update_indexes,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
 	LockTupleMode lockmode;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+	LazyTupleTableSlot *lazyOldSlot = NULL,
+				lazyOldSlotData;
+
+	if (oldSlot)
+	{
+		lazyOldSlot = &lazyOldSlotData;
+		MakeLazyTupleTableSlotWithSlot(lazyOldSlot, oldSlot);
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+	}
 
 	result = table_tuple_update(rel, otid, slot,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, &lockmode, update_indexes,
-								NULL);
+								lazyOldSlot);
 
 	switch (result)
 	{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 0f2de7e2e01..fd693b6779f 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2796,18 +2796,9 @@ ExecARDeleteTriggers(EState *estate,
 	{
 		TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
 
-		Assert(HeapTupleIsValid(fdw_trigtuple) ^ ItemPointerIsValid(tupleid));
-		if (fdw_trigtuple == NULL)
-			GetTupleForTrigger(estate,
-							   NULL,
-							   relinfo,
-							   tupleid,
-							   LockTupleExclusive,
-							   slot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else
+		Assert(!ItemPointerIsValid(tupleid) || !TTS_EMPTY(slot) || fdw_trigtuple != NULL);
+
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, slot, false);
 
 		AfterTriggerSaveEvent(estate, relinfo, NULL, NULL,
@@ -3119,19 +3110,11 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 		tupsrc = src_partinfo ? src_partinfo : relinfo;
 		oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
 
-		if (fdw_trigtuple == NULL && ItemPointerIsValid(tupleid))
-			GetTupleForTrigger(estate,
-							   NULL,
-							   tupsrc,
-							   tupleid,
-							   LockTupleExclusive,
-							   oldslot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else if (fdw_trigtuple != NULL)
+		Assert(!ItemPointerIsValid(tupleid) || !TTS_EMPTY(oldslot) || fdw_trigtuple != NULL);
+
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false);
-		else
+		else if (!ItemPointerIsValid(tupleid))
 			ExecClearTuple(oldslot);
 
 		AfterTriggerSaveEvent(estate, relinfo,
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index 9dd71684615..774f59717bb 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -545,6 +545,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 	{
 		List	   *recheckIndexes = NIL;
 		TU_UpdateIndexes update_indexes;
+		TupleTableSlot *oldSlot = NULL;
 
 		/* Compute stored generated columns */
 		if (rel->rd_att->constr &&
@@ -558,8 +559,12 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		if (rel->rd_rel->relispartition)
 			ExecPartitionCheck(resultRelInfo, slot, estate, true);
 
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_update_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		simple_table_tuple_update(rel, tid, slot, estate->es_snapshot,
-								  &update_indexes);
+								  &update_indexes, oldSlot);
 
 		if (resultRelInfo->ri_NumIndices > 0 && (update_indexes != TU_None))
 			recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
@@ -604,8 +609,14 @@ ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
 
 	if (!skip_tuple)
 	{
+		TupleTableSlot *oldSlot = NULL;
+
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_delete_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		/* OK, delete the tuple */
-		simple_table_tuple_delete(rel, tid, estate->es_snapshot);
+		simple_table_tuple_delete(rel, tid, estate->es_snapshot, oldSlot);
 
 		/* AFTER ROW DELETE Triggers */
 		ExecARDeleteTriggers(estate, resultRelInfo,
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 2f6c97a8404..3f21283c031 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -111,7 +111,7 @@ typedef struct UpdateContext
 {
 	bool		updated;		/* did UPDATE actually occur? */
 	bool		crossPartUpdate;	/* was it a cross-partition update? */
-	TU_UpdateIndexes updateIndexes;	/* Which index updates are required? */
+	TU_UpdateIndexes updateIndexes; /* Which index updates are required? */
 
 	/*
 	 * Lock mode to acquire on the latest tuple version before performing
@@ -1356,30 +1356,19 @@ GetEPQSlot(void *arg)
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart, bool lockUpdated)
+			  ItemPointer tupleid, bool changingPart, int options,
+			  LazyTupleTableSlot *oldSlot)
 {
 	EState	   *estate = context->estate;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
-	if (lockUpdated)
-	{
-		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
-							  true /* wait for commit */ ,
+							  options /* wait for commit */ ,
 							  &context->tmfd,
 							  changingPart,
-							  lazyEPQSlotPtr);
+							  oldSlot);
 }
 
 /*
@@ -1425,6 +1414,35 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 						 ar_delete_trig_tcs, changingPart);
 }
 
+/*
+ * Check if DELETE needs to save the old tuple into ri_TrigOldSlot.
+ */
+static bool
+ExecDeleteNeedsOldTupleForTrigger(ModifyTableContext *context,
+								  ResultRelInfo *relinfo,
+								  bool changingPart)
+{
+	TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
+	TransitionCaptureState *transition_capture = context->mtstate->mt_transition_capture;
+
+	if ((trigdesc && trigdesc->trig_delete_after_row) ||
+		(transition_capture && transition_capture->tcs_delete_old_table))
+		return true;
+
+	if (changingPart)
+	{
+		TriggerDesc *rootTrigdesc = relinfo->ri_TrigDesc;
+
+		if ((rootTrigdesc && rootTrigdesc->trig_update_after_row) ||
+			(transition_capture &&
+			 (transition_capture->tcs_update_old_table ||
+			  transition_capture->tcs_update_new_table)))
+			return true;
+	}
+
+	return false;
+}
+
 /* ----------------------------------------------------------------
  *		ExecDelete
  *
@@ -1514,6 +1532,35 @@ ExecDelete(ModifyTableContext *context,
 	}
 	else
 	{
+		GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
+		LazyTupleTableSlot oldSlot;
+		int			options = TABLE_MODIFY_WAIT;
+
+		/* Initialize the slot to store old tuple */
+		if (ExecDeleteNeedsOldTupleForTrigger(context, resultRelInfo, changingPart))
+		{
+			TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+			ExecClearTuple(triggerOldSlot);
+			MakeLazyTupleTableSlotWithSlot(&oldSlot, triggerOldSlot);
+			options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+		}
+		else if (processReturning &&
+				 resultRelInfo->ri_projectReturning &&
+				 !resultRelInfo->ri_FdwRoutine)
+		{
+			MakeLazyTupleTableSlotWithSlot(&oldSlot,
+										   ExecGetReturningSlot(estate, resultRelInfo));
+			options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+		}
+		else if (!IsolationUsesXactSnapshot())
+		{
+			MakeLazyTupleTableSlotWithCallback(&oldSlot, GetEPQSlot, &slotArg);
+		}
+
+		if (!IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * delete the tuple
 		 *
@@ -1525,7 +1572,7 @@ ExecDelete(ModifyTableContext *context,
 		 */
 ldelete:
 		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
-							   !IsolationUsesXactSnapshot());
+							   options, &oldSlot);
 
 		switch (result)
 		{
@@ -1565,47 +1612,53 @@ ldelete:
 				return NULL;
 
 			case TM_Ok:
+				if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+				{
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(&oldSlot);
+
+					ExecMaterializeSlot(oldSlotEval);
+					if (processReturning &&
+						resultRelInfo->ri_projectReturning &&
+						!resultRelInfo->ri_FdwRoutine)
+					{
+						TupleTableSlot *returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+
+						if (returningSlot != oldSlotEval)
+							ExecCopySlot(returningSlot, oldSlotEval);
+					}
+				}
 				break;
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(&oldSlot);
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
 
-					/*
-					 * ExecDeleteAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
-					 */
-					EvalPlanQualBegin(context->epqstate);
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
 					/*
 					 * Save locked table for further processing for RETURNING
 					 * clause.
 					 */
+					ExecMaterializeSlot(oldSlotEval);
 					if (processReturning &&
 						resultRelInfo->ri_projectReturning &&
 						!resultRelInfo->ri_FdwRoutine)
 					{
-						TupleTableSlot *returningSlot;
+						TupleTableSlot *returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
 
-						returningSlot = ExecGetReturningSlot(estate,
-															 resultRelInfo);
-						ExecCopySlot(returningSlot, inputslot);
-						ExecMaterializeSlot(returningSlot);
+						if (returningSlot != oldSlotEval)
+							ExecCopySlot(returningSlot, oldSlotEval);
 					}
 
 					Assert(context->tmfd.traversed);
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlotEval);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
@@ -1682,12 +1735,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else if (TupIsNull(slot))
-			{
-				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
-												   SnapshotAny, slot))
-					elog(ERROR, "failed to fetch deleted tuple for DELETE RETURNING");
-			}
+			Assert(!TupIsNull(slot));
 		}
 
 		rslot = ExecProcessReturning(resultRelInfo, slot, context->planSlot);
@@ -1965,15 +2013,13 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, bool lockUpdated, UpdateContext *updateCxt)
+			  bool canSetTag, int options, LazyTupleTableSlot *oldSlot,
+			  UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2099,23 +2145,14 @@ lreplace:
 	 * for referential integrity updates in transaction-snapshot mode
 	 * transactions.
 	 */
-	if (lockUpdated)
-	{
-		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	result = table_tuple_update(resultRelationDesc, tupleid, slot,
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
-								true /* wait for commit */ ,
+								options /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
 								&updateCxt->updateIndexes,
-								lazyEPQSlotPtr);
+								oldSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2239,6 +2276,34 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 						 tupleid, NULL, newslot, NIL, NULL, true);
 }
 
+/*
+ * Check if UPDATE needs to save the old tuple into ri_TrigOldSlot.
+ */
+static bool
+ExecUpdateNeedsOldTupleForTrigger(ModifyTableContext *context,
+								  ResultRelInfo *relinfo)
+{
+	TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
+	TransitionCaptureState *transition_capture;
+
+	transition_capture = context->mtstate->mt_transition_capture;
+	if ((trigdesc && trigdesc->trig_update_after_row) ||
+		(transition_capture && transition_capture->tcs_delete_old_table))
+		return true;
+
+	if (context->mtstate->operation == CMD_INSERT)
+		transition_capture = context->mtstate->mt_oc_transition_capture;
+
+	if (transition_capture &&
+		(transition_capture->tcs_update_old_table ||
+		 transition_capture->tcs_update_new_table))
+	{
+		return true;
+	}
+
+	return false;
+}
+
 /* ----------------------------------------------------------------
  *		ExecUpdate
  *
@@ -2322,6 +2387,34 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		LazyTupleTableSlot oldSlotData,
+				   *oldSlot = NULL;
+		int			options = TABLE_MODIFY_WAIT;
+
+		/* Initialize the slot to store old tuple */
+		if (ExecUpdateNeedsOldTupleForTrigger(context, resultRelInfo))
+		{
+			TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+			ExecClearTuple(triggerOldSlot);
+			oldSlot = &oldSlotData;
+			MakeLazyTupleTableSlotWithSlot(oldSlot, triggerOldSlot);
+			options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+		}
+		else if (!locked)
+		{
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			oldSlot = &oldSlotData;
+			MakeLazyTupleTableSlotWithSlot(oldSlot,
+										   resultRelInfo->ri_oldTupleSlot);
+		}
+
+		if (!locked && !IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * If we generate a new candidate tuple after EvalPlanQual testing, we
 		 * must loop back here to try again.  (We don't need to redo triggers,
@@ -2331,8 +2424,7 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, !IsolationUsesXactSnapshot(),
-							   &updateCxt);
+							   canSetTag, options, oldSlot, &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2379,50 +2471,44 @@ redo_act:
 				return NULL;
 
 			case TM_Ok:
+				/* Materialize the tuple for trigger */
+				if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+				{
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(oldSlot);
+
+					ExecMaterializeSlot(oldSlotEval);
+				}
 				break;
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(oldSlot);
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
 					Assert(!locked);
+					Assert(context->tmfd.traversed);
 
-					/*
-					 * ExecUpdateAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
-					 */
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
+					ExecMaterializeSlot(oldSlotEval);
 
-					/* Make sure ri_oldTupleSlot is initialized. */
 					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
 						ExecInitUpdateProjection(context->mtstate,
 												 resultRelInfo);
-
-					/*
-					 * Save the locked tuple for further calculation of the
-					 * new tuple.
-					 */
-					oldSlot = resultRelInfo->ri_oldTupleSlot;
-					ExecCopySlot(oldSlot, inputslot);
-					ExecMaterializeSlot(oldSlot);
-					Assert(context->tmfd.traversed);
+					if (oldSlotEval != resultRelInfo->ri_oldTupleSlot)
+						ExecCopySlot(resultRelInfo->ri_oldTupleSlot, oldSlotEval);
 
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlotEval);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
 					slot = ExecGetUpdateNewTuple(resultRelInfo,
-												 epqslot, oldSlot);
+												 epqslot, oldSlotEval);
 					goto redo_act;
 				}
 
@@ -2776,6 +2862,7 @@ ExecMergeMatched(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	bool		isNull;
 	EPQState   *epqstate = &mtstate->mt_epqstate;
 	ListCell   *l;
+	int			options = TABLE_MODIFY_WAIT;
 
 	/*
 	 * If there are no WHEN MATCHED actions, we are done.
@@ -2803,7 +2890,6 @@ lmerge_matched:
 	 * EvalPlanQual returns us a new tuple, which may not be visible to our
 	 * MVCC snapshot.
 	 */
-
 	if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
 									   tupleid,
 									   SnapshotAny,
@@ -2868,9 +2954,18 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, false, &updateCxt);
+									   newslot, false, options, NULL,
+									   &updateCxt);
 				if (result == TM_Ok && updateCxt.updated)
 				{
+					if (ExecUpdateNeedsOldTupleForTrigger(context, resultRelInfo))
+					{
+						TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+						ExecCopySlot(triggerOldSlot, resultRelInfo->ri_oldTupleSlot);
+						ExecMaterializeSlot(triggerOldSlot);
+					}
+
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
 									   tupleid, NULL, newslot);
 					mtstate->mt_merge_updated += 1;
@@ -2887,9 +2982,16 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecDeleteAct(context, resultRelInfo, tupleid,
-									   false, false);
+									   false, options, NULL);
 				if (result == TM_Ok)
 				{
+					if (ExecDeleteNeedsOldTupleForTrigger(context, resultRelInfo, false))
+					{
+						TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+						ExecCopySlot(triggerOldSlot, resultRelInfo->ri_oldTupleSlot);
+						ExecMaterializeSlot(triggerOldSlot);
+					}
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
 									   false);
 					mtstate->mt_merge_deleted += 1;
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index faf50265191..79cc528506d 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -242,19 +242,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  int ntuples, CommandId cid, int options,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
-							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 CommandId cid, Snapshot crosscheck, int options,
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 LazyTupleTableSlot *oldSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
-							 CommandId cid, Snapshot crosscheck, bool wait,
+							 CommandId cid, Snapshot crosscheck, int options,
 							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
-							 TU_UpdateIndexes *update_indexes);
-extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
-								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+							 TU_UpdateIndexes *update_indexes,
+							 LazyTupleTableSlot *oldSlot);
+extern TM_Result heap_lock_tuple(Relation relation, ItemPointer tid,
+								 TupleTableSlot *slot,
+								 CommandId cid, LockTupleMode mode,
+								 LockWaitPolicy wait_policy, bool follow_updates,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 7159365e652..445e5ba595a 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -259,6 +259,11 @@ typedef struct TM_IndexDeleteOp
 /* Follow update chain and lock latest version of tuple */
 #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION		(1 << 1)
 
+/* "options" flag bits for table_tuple_update and table_tuple_delete */
+#define TABLE_MODIFY_WAIT			0x0001
+#define TABLE_MODIFY_FETCH_OLD_TUPLE 0x0002
+#define TABLE_MODIFY_LOCK_UPDATED	0x0004
+
 
 /* Typedef for callback function for table_index_build_scan */
 typedef void (*IndexBuildCallback) (Relation index,
@@ -528,10 +533,10 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 bool changingPart,
-								 LazyTupleTableSlot *lockedSlot);
+								 LazyTupleTableSlot *oldSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -540,11 +545,11 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
 								 TU_UpdateIndexes *update_indexes,
-								 LazyTupleTableSlot *lockedSlot);
+								 LazyTupleTableSlot *oldSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1459,7 +1464,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple (or lock last tuple version if lockedSlot is given).
+ * Delete a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1470,36 +1475,46 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	cid - delete command ID (used for visibility test, and stored into
  *		cmax if successful)
  *	crosscheck - if not InvalidSnapshot, also check tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options - true if should wait for any conflicting update to commit/abort
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
- *	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - lazy slot to save the deleted or locked tuple. Can be
+ *		NULL if none of TABLE_MODIFY_FETCH_OLD_TUPLE or
+ *		TABLE_MODIFY_LOCK_UPDATED is specified.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
  *
+ * When TABLE_MODIFY_WAIT option is given, waits for any conflicting update to
+ * commit/abort.
+ *
+ * When TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ * fetched into oldSlot when the update is successful.
+ *
+ * When TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is concurrently
+ * updated, then the last tuple version is locked and fetched into oldSlot.
+ *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax, and, if possible, and, if possible, t_cmax.  See comments for
  * struct TM_FailureData for additional info.
  */
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
-				   Snapshot snapshot, Snapshot crosscheck, bool wait,
+				   Snapshot snapshot, Snapshot crosscheck, int options,
 				   TM_FailureData *tmfd, bool changingPart,
-				   LazyTupleTableSlot *lockedSlot)
+				   LazyTupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart,
-										 lockedSlot);
+										 options, tmfd, changingPart,
+										 oldSlot);
 }
 
 /*
- * Update a tuple (or lock last tuple version if lockedSlot is given).
+ * Update a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1511,19 +1526,29 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	cid - update command ID (used for visibility test, and stored into
  *		cmax/cmin if successful)
  *	crosscheck - if not InvalidSnapshot, also check old tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options - true if should wait for any conflicting update to commit/abort
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- * 	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - lazy slot to save the deleted or locked tuple. Can be
+ *		NULL if none of TABLE_MODIFY_FETCH_OLD_TUPLE or
+ *		TABLE_MODIFY_LOCK_UPDATED is specified.
 
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
  *
+ * When TABLE_MODIFY_WAIT option is given, waits for any conflicting update to
+ * commit/abort.
+ *
+ * When TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ * fetched into oldSlot when the update is successful.
+ *
+ * When TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is concurrently
+ * updated, then the last tuple version is locked and fetched into oldSlot.
+ *
  * On success, the slot's tts_tid and tts_tableOid are updated to match the new
  * stored tuple; in particular, slot->tts_tid is set to the TID where the
  * new tuple was inserted, and its HEAP_ONLY_TUPLE flag is set iff a HOT
@@ -1537,15 +1562,15 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
+				   int options, TM_FailureData *tmfd, LockTupleMode *lockmode,
 				   TU_UpdateIndexes *update_indexes,
-				   LazyTupleTableSlot *lockedSlot)
+				   LazyTupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
-										 wait, tmfd,
+										 options, tmfd,
 										 lockmode, update_indexes,
-										 lockedSlot);
+										 oldSlot);
 }
 
 /*
@@ -2061,10 +2086,12 @@ table_scan_sample_next_tuple(TableScanDesc scan,
 
 extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot);
 extern void simple_table_tuple_delete(Relation rel, ItemPointer tid,
-									  Snapshot snapshot);
+									  Snapshot snapshot,
+									  TupleTableSlot *oldSlot);
 extern void simple_table_tuple_update(Relation rel, ItemPointer otid,
 									  TupleTableSlot *slot, Snapshot snapshot,
-									  TU_UpdateIndexes *update_indexes);
+									  TU_UpdateIndexes *update_indexes,
+									  TupleTableSlot *oldSlot);
 
 
 /* ----------------------------------------------------------------------------
-- 
2.37.1 (Apple Git-137.1)

#47Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#46)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Wed, Mar 29, 2023 at 8:34 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Mar 27, 2023 at 1:49 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Fri, Mar 24, 2023 at 3:39 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-23 23:24:19 +0300, Alexander Korotkov wrote:

On Thu, Mar 23, 2023 at 8:06 PM Andres Freund <andres@anarazel.de> wrote:

I seriously doubt that solving this at the tuple locking level is the right
thing. If we want to avoid refetching tuples, why don't we add a parameter to
delete/update to generally put the old tuple version into a slot, not just as
an optimization for a subsequent lock_tuple()? Then we could remove all
refetching tuples for triggers. It'd also provide the basis for adding support
for referencing the OLD version in RETURNING, which'd be quite powerful.

After some thoughts, I think I like idea of fetching old tuple version
in update/delete. Everything that evades extra tuple fetching and do
more of related work in a single table AM call, makes table AM API
more flexible.

I'm working on patch implementing this. I'm going to post it later today.

Here is the patchset. I'm continue to work on comments and refactoring.

My quick question is why do we need ri_TrigOldSlot for triggers?
Can't we just pass the old tuple for after row trigger in
ri_oldTupleSlot?

Also, I wonder if we really need a LazyTupleSlot. It allows to evade
extra tuple slot allocation. But as I get in the end the tuple slot
allocation is just a single palloc. I bet the effect would be
invisible in the benchmarks.

Sorry, previous patches don't even compile. The fixed version is attached.
I'm going to post significantly revised patchset soon.

------
Regards,
Alexander Korotkov

Attachments:

0001-Improve-lazy-tuple-slot-v2.patchapplication/octet-stream; name=0001-Improve-lazy-tuple-slot-v2.patchDownload
From 185a6c8ee89aecb49b61b35da3c3c5562a558bd8 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Mon, 27 Mar 2023 15:05:25 +0300
Subject: [PATCH 1/2] Improve lazy tuple slot

This commit implements two improvements to lazy tuple slot implementation.
 * Replace macros with inline function to prevent multiple evaluation of the
   argument.
 * Introdue a new lazy tuple slot constructor on the base of existing normal
   slot, not a callback.

Reported-by: Andres Freund
Discussion: https://postgr.es/m/20230323003003.plgaxjqahjgkuxrk%40awork3.anarazel.de
---
 src/backend/access/heap/heapam_handler.c |  4 +-
 src/backend/executor/nodeModifyTable.c   |  4 +-
 src/include/executor/tuptable.h          | 57 +++++++++++++++++-------
 3 files changed, 45 insertions(+), 20 deletions(-)

diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 9e690074e94..2bddf562c2f 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -330,7 +330,7 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 
 		Assert(wait);
 
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
+		evalSlot = LazyTupleTableSlotEval(lockedSlot);
 		result = heapam_tuple_lock_internal(relation, tid, snapshot,
 											evalSlot, cid, LockTupleExclusive,
 											LockWaitBlock,
@@ -403,7 +403,7 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 
 		Assert(wait);
 
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
+		evalSlot = LazyTupleTableSlotEval(lockedSlot);
 		result = heapam_tuple_lock_internal(relation, otid, snapshot,
 											evalSlot, cid, *lockmode,
 											LockWaitBlock,
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index e3503756818..2f6c97a8404 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1365,7 +1365,7 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 
 	if (lockUpdated)
 	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
 		lazyEPQSlotPtr = &lazyEPQSlot;
 	}
 	else
@@ -2101,7 +2101,7 @@ lreplace:
 	 */
 	if (lockUpdated)
 	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
+		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
 		lazyEPQSlotPtr = &lazyEPQSlot;
 	}
 	else
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index c61734a15d4..30729f7a076 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -307,9 +307,11 @@ typedef struct MinimalTupleTableSlot
  * likely will reain undemanded.  Preallocating such slot would be a waste of
  * resources in the  majority of cases.  Lazy slot is aimed to resolve this
  * problem.  It is basically a promise to allocate the slot once it's needed.
- * Once callee needs the slot, it could get it using LAZY_TTS_EVAL(lazySlot)
- * macro.
+ * Once callee needs the slot, it could get it using
+ * LazyTupleTableSlotEval(lazySlot) function.
  */
+typedef TupleTableSlot *(*LazyTupleTableSlotCallback) (void *arg);
+
 typedef struct
 {
 	TupleTableSlot *slot;		/* cached slot or NULL if not yet allocated */
@@ -318,25 +320,48 @@ typedef struct
 } LazyTupleTableSlot;
 
 /*
- * A constructor for the lazy slot.
+ * Initialize LazyTupleTableSlot with callback and argument.
+ */
+static inline void
+MakeLazyTupleTableSlotWithCallback(LazyTupleTableSlot *lazySlot,
+								   LazyTupleTableSlotCallback callback,
+								   void *arg)
+{
+	lazySlot->slot = NULL;
+	lazySlot->getSlot = callback;
+	lazySlot->getSlotArg = arg;
+}
+
+/*
+ * Initialize LazyTupleTableSlot with existing slot.
  */
-#define MAKE_LAZY_TTS(lazySlot, callback, arg) \
-	do { \
-		(lazySlot)->slot = NULL; \
-		(lazySlot)->getSlot = callback; \
-		(lazySlot)->getSlotArg = arg; \
-	} while (false)
+static inline void
+MakeLazyTupleTableSlotWithSlot(LazyTupleTableSlot *lazySlot,
+							   TupleTableSlot *slot)
+{
+	lazySlot->slot = slot;
+	lazySlot->getSlot = NULL;
+	lazySlot->getSlotArg = NULL;
+}
 
 /*
- * Macro for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
+ * Function for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
  * Cached version is used if present.  Use the callback otherwise.
  */
-#define LAZY_TTS_EVAL(lazySlot) \
-	((lazySlot) ? \
-		((lazySlot)->slot ? \
-			(lazySlot)->slot : \
-			((lazySlot)->slot = (lazySlot)->getSlot((lazySlot)->getSlotArg))) : \
-		NULL)
+static inline TupleTableSlot *
+LazyTupleTableSlotEval(LazyTupleTableSlot *lazySlot)
+{
+	if (!lazySlot)
+		return NULL;
+
+	if (!lazySlot->slot)
+	{
+		Assert(lazySlot->getSlot);
+		lazySlot->slot = lazySlot->getSlot(lazySlot->getSlotArg);
+	}
+	Assert(lazySlot->slot);
+	return lazySlot->slot;
+}
 
 /* in executor/execTuples.c */
 extern TupleTableSlot *MakeTupleTableSlot(TupleDesc tupleDesc,
-- 
2.37.1 (Apple Git-137.1)

0002-Revise-changes-for-tuple_update-and-tuple_delete-v2.patchapplication/octet-stream; name=0002-Revise-changes-for-tuple_update-and-tuple_delete-v2.patchDownload
From 336eef9960d31ee546e8ffc9b8bbf24596a659f6 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Tue, 28 Mar 2023 18:04:15 +0300
Subject: [PATCH 2/2] Revise changes for tuple_update() and tuple_delete()

11470f544e allowed locking updated tuples in tuple_update() and tuple_delete().

This commit improves the things in the following ways.
 * tuple_update() and tuple_delete() can now fetch the old tuple version not
   only after lock, but also after successful UPDATE/DELETE.  That allows to
   evade tuple re-fetching in more general case.
 * Avoid tuple re-fetching for triggers.
 * Improve code API for heap_lock_tuple.  Automatically detect prefetched in
   slot.
---
 src/backend/access/heap/heapam.c         | 194 +++++++++++++----
 src/backend/access/heap/heapam_handler.c | 147 ++++++-------
 src/backend/access/table/tableam.c       |  34 ++-
 src/backend/commands/trigger.c           |  31 +--
 src/backend/executor/execReplication.c   |  15 +-
 src/backend/executor/nodeModifyTable.c   | 258 ++++++++++++++++-------
 src/include/access/heapam.h              |  19 +-
 src/include/access/tableam.h             |  71 +++++--
 8 files changed, 495 insertions(+), 274 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 8abc101c8cb..05b57a6ec04 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2449,10 +2449,11 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 }
 
 /*
- *	heap_delete - delete a tuple
+ *	heap_delete - delete a tuple, optionally fetching it into a slot
  *
  * See table_tuple_delete() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2461,8 +2462,9 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
  */
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
-			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			CommandId cid, Snapshot crosscheck, int options,
+			TM_FailureData *tmfd, bool changingPart,
+			LazyTupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2540,7 +2542,7 @@ l1:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to delete invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -2676,7 +2678,30 @@ l1:
 			tmfd->cmax = HeapTupleHeaderGetCmax(tp.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+			Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = tp;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   &bslot->base.base,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(tp.t_self), LockTupleExclusive);
 		if (vmbuffer != InvalidBuffer)
@@ -2850,8 +2875,24 @@ l1:
 	 */
 	CacheInvalidateHeapTuple(relation, &tp, NULL);
 
-	/* Now we can release the buffer */
-	ReleaseBuffer(buffer);
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+		Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+
+		bslot->base.tupdata = tp;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   &bslot->base.base,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
 
 	/*
 	 * Release the lmgr tuple lock, if we had it.
@@ -2884,7 +2925,7 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 &tmfd, false /* changingPart */ , NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2911,10 +2952,11 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 }
 
 /*
- *	heap_update - replace a tuple
+ *	heap_update - replace a tuple, optionally fetching it into a slot
  *
  * See table_tuple_update() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2923,9 +2965,9 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  */
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
-			CommandId cid, Snapshot crosscheck, bool wait,
+			CommandId cid, Snapshot crosscheck, int options,
 			TM_FailureData *tmfd, LockTupleMode *lockmode,
-			TU_UpdateIndexes *update_indexes)
+			TU_UpdateIndexes *update_indexes, LazyTupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3102,7 +3144,7 @@ l2:
 	result = HeapTupleSatisfiesUpdate(&oldtup, cid, buffer);
 
 	/* see below about the "no wait" case */
-	Assert(result != TM_BeingModified || wait);
+	Assert(result != TM_BeingModified || (options & TABLE_MODIFY_WAIT));
 
 	if (result == TM_Invisible)
 	{
@@ -3111,7 +3153,7 @@ l2:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to update invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -3313,7 +3355,30 @@ l2:
 			tmfd->cmax = HeapTupleHeaderGetCmax(oldtup.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+			Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = oldtup;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   &bslot->base.base,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(oldtup.t_self), *lockmode);
 		if (vmbuffer != InvalidBuffer)
@@ -3791,7 +3856,26 @@ l2:
 	/* Now we can release the buffer(s) */
 	if (newbuf != buffer)
 		ReleaseBuffer(newbuf);
-	ReleaseBuffer(buffer);
+
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		bslot = (BufferHeapTupleTableSlot *) LazyTupleTableSlotEval(oldSlot);
+		Assert(TTS_IS_BUFFERTUPLE(&bslot->base.base));
+
+		bslot->base.tupdata = oldtup;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   &bslot->base.base,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
+
 	if (BufferIsValid(vmbuffer_new))
 		ReleaseBuffer(vmbuffer_new);
 	if (BufferIsValid(vmbuffer))
@@ -4000,7 +4084,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, &lockmode, update_indexes);
+						 &tmfd, &lockmode, update_indexes, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4079,15 +4163,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  * See README.tuplock for a thorough explanation of this mechanism.
  */
 TM_Result
-heap_lock_tuple(Relation relation, HeapTuple tuple,
+heap_lock_tuple(Relation relation, ItemPointer tid, TupleTableSlot *slot,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				bool follow_updates, TM_FailureData *tmfd)
 {
 	TM_Result	result;
-	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
+	Buffer		buffer;
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 	TransactionId xid,
@@ -4099,8 +4182,24 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	bool		skip_tuple_lock = false;
 	bool		have_tuple_lock = false;
 	bool		cleared_all_frozen = false;
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	HeapTuple	tuple = &bslot->base.tupdata;
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	/*
+	 * If slot already contains the relevant tuple, re-use the buffer in slot.
+	 */
+	if (TTS_EMPTY(slot) ||
+		slot->tts_tableOid != relation->rd_id ||
+		ItemPointerCompare(&slot->tts_tid, tid) != 0 ||
+		!BufferIsValid(bslot->buffer))
+	{
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	}
+	else
+	{
+		buffer = bslot->buffer;
+		IncrBufferRefCount(buffer);
+	}
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4109,21 +4208,22 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
+	tuple->t_self = *tid;
 	tuple->t_data = (HeapTupleHeader) PageGetItem(page, lp);
 	tuple->t_len = ItemIdGetLength(lp);
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4152,7 +4252,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4304,12 +4404,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4344,7 +4444,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4372,7 +4472,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4384,7 +4484,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4412,7 +4512,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4434,7 +4534,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4459,7 +4559,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4485,7 +4585,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4525,7 +4625,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4551,12 +4651,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4578,7 +4678,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4637,9 +4737,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4702,7 +4802,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4722,7 +4822,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4743,7 +4843,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4761,6 +4861,8 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 2bddf562c2f..7369140d5a9 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,11 +45,11 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
-static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-											Snapshot snapshot, TupleTableSlot *slot,
-											CommandId cid, LockTupleMode mode,
-											LockWaitPolicy wait_policy, uint8 flags,
-											TM_FailureData *tmfd, bool updated);
+static TM_Result heapam_tuple_lock(Relation relation, ItemPointer tid,
+								   Snapshot snapshot, TupleTableSlot *slot,
+								   CommandId cid, LockTupleMode mode,
+								   LockWaitPolicy wait_policy, uint8 flags,
+								   TM_FailureData *tmfd);
 
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
@@ -304,9 +304,9 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
-					Snapshot snapshot, Snapshot crosscheck, bool wait,
+					Snapshot snapshot, Snapshot crosscheck, int options,
 					TM_FailureData *tmfd, bool changingPart,
-					LazyTupleTableSlot *lockedSlot)
+					LazyTupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 
@@ -315,33 +315,31 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	result = heap_delete(relation, tid, cid, crosscheck, wait,
-						 tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, options,
+						 tmfd, changingPart, oldSlot);
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of delete should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do this if caller asked for that by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option 'oldSlot'.)  With the lock held retry
+	 * of the delete should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
 		TupleTableSlot *evalSlot;
 
-		Assert(wait);
-
-		evalSlot = LazyTupleTableSlotEval(lockedSlot);
-		result = heapam_tuple_lock_internal(relation, tid, snapshot,
-											evalSlot, cid, LockTupleExclusive,
-											LockWaitBlock,
-											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+		evalSlot = LazyTupleTableSlotEval(oldSlot);
+		result = heapam_tuple_lock(relation, tid, snapshot,
+								   evalSlot, cid, LockTupleExclusive,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -351,9 +349,9 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-					bool wait, TM_FailureData *tmfd,
+					int options, TM_FailureData *tmfd,
 					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
-					LazyTupleTableSlot *lockedSlot)
+					LazyTupleTableSlot *oldSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -363,8 +361,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode, update_indexes);
+	result = heap_update(relation, otid, tuple, cid, crosscheck, options,
+						 tmfd, lockmode, update_indexes, oldSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -373,8 +371,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	 * Note: heap_update returns the tid (location) of the new tuple in the
 	 * t_self field.
 	 *
-	 * If the update is not HOT, we must update all indexes. If the update
-	 * is HOT, it could be that we updated summarized columns, so we either
+	 * If the update is not HOT, we must update all indexes. If the update is
+	 * HOT, it could be that we updated summarized columns, so we either
 	 * update only summarized indexes, or none at all.
 	 */
 	if (result != TM_Ok)
@@ -393,28 +391,28 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of update should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do this if caller asked for that by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option 'oldSlot'.)  With the lock held retry
+	 * of the update should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
 		TupleTableSlot *evalSlot;
 
-		Assert(wait);
+		Assert(options & TABLE_MODIFY_WAIT);
+		evalSlot = LazyTupleTableSlotEval(oldSlot);
 
-		evalSlot = LazyTupleTableSlotEval(lockedSlot);
-		result = heapam_tuple_lock_internal(relation, otid, snapshot,
-											evalSlot, cid, *lockmode,
-											LockWaitBlock,
-											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+		result = heapam_tuple_lock(relation, otid, snapshot,
+								   evalSlot, cid, *lockmode,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -425,22 +423,6 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
-{
-	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid,
-									  mode, wait_policy, flags, tmfd, false);
-}
-
-/*
- * This routine does the work for heapam_tuple_lock(), but also support
- * `updated` argument to re-use the work done by heapam_tuple_update() or
- * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
- */
-static TM_Result
-heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-						   Snapshot snapshot, TupleTableSlot *slot,
-						   CommandId cid, LockTupleMode mode,
-						   LockWaitPolicy wait_policy, uint8 flags,
-						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
@@ -454,27 +436,14 @@ heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
 	Assert(TTS_IS_BUFFERTUPLE(slot));
 
 tuple_lock_retry:
-	tuple->t_self = *tid;
-	if (!updated)
-		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-								 follow_updates, &buffer, tmfd);
-	else
-		result = TM_Updated;
+	result = heap_lock_tuple(relation, tid, slot, cid, mode, wait_policy,
+							 follow_updates, tmfd);
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		if (!updated)
-		{
-			/* Should not encounter speculative tuple on recheck */
-			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-			ReleaseBuffer(buffer);
-		}
-		else
-		{
-			updated = false;
-		}
+		/* Should not encounter speculative tuple on recheck */
+		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
@@ -505,6 +474,8 @@ tuple_lock_retry:
 				tuple->t_self = *tid;
 				if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer, true))
 				{
+					ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 					/*
 					 * If xmin isn't what we're expecting, the slot must have
 					 * been recycled and reused for an unrelated tuple.  This
@@ -518,7 +489,7 @@ tuple_lock_retry:
 					if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
 											 priorXmax))
 					{
-						ReleaseBuffer(buffer);
+						ExecClearTuple(slot);
 						return TM_Deleted;
 					}
 
@@ -538,7 +509,7 @@ tuple_lock_retry:
 					 */
 					if (TransactionIdIsValid(SnapshotDirty.xmax))
 					{
-						ReleaseBuffer(buffer);
+						ExecClearTuple(slot);
 						switch (wait_policy)
 						{
 							case LockWaitBlock:
@@ -584,16 +555,19 @@ tuple_lock_retry:
 						 * above.
 						 */
 						tmfd->cmax = HeapTupleHeaderGetCmin(tuple->t_data);
-						ReleaseBuffer(buffer);
 						return TM_SelfModified;
 					}
 
 					/*
 					 * This is a live tuple, so try to lock it again.
 					 */
-					ReleaseBuffer(buffer);
 					goto tuple_lock_retry;
 				}
+				else
+				{
+					if (BufferIsValid(buffer))
+						ReleaseBuffer(buffer);
+				}
 
 				/*
 				 * If the referenced slot was actually empty, the latest
@@ -602,7 +576,7 @@ tuple_lock_retry:
 				 */
 				if (tuple->t_data == NULL)
 				{
-					Assert(!BufferIsValid(buffer));
+					ExecClearTuple(slot);
 					return TM_Deleted;
 				}
 
@@ -612,7 +586,7 @@ tuple_lock_retry:
 				if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data),
 										 priorXmax))
 				{
-					ReleaseBuffer(buffer);
+					ExecClearTuple(slot);
 					return TM_Deleted;
 				}
 
@@ -633,7 +607,7 @@ tuple_lock_retry:
 				if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
 				{
 					/* deleted, so forget about it */
-					ReleaseBuffer(buffer);
+					ExecClearTuple(slot);
 					return TM_Deleted;
 				}
 
@@ -641,13 +615,13 @@ tuple_lock_retry:
 				*tid = tuple->t_data->t_ctid;
 				/* updated row should have xmin matching this xmax */
 				priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data);
-				ReleaseBuffer(buffer);
 				/* loop back to fetch next in chain */
 			}
 		}
 		else
 		{
 			/* tuple was deleted, so give up */
+			ExecClearTuple(slot);
 			return TM_Deleted;
 		}
 	}
@@ -655,9 +629,6 @@ tuple_lock_retry:
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
 	return result;
 }
 
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index 2a1a6ced3c7..223ab8e8f63 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -297,17 +297,28 @@ simple_table_tuple_insert(Relation rel, TupleTableSlot *slot)
  * via ereport().
  */
 void
-simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
+simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+	LazyTupleTableSlot *lazyOldSlot = NULL,
+				lazyOldSlotData;
+
+	if (oldSlot)
+	{
+		lazyOldSlot = &lazyOldSlotData;
+		MakeLazyTupleTableSlotWithSlot(lazyOldSlot, oldSlot);
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+	}
 
 	result = table_tuple_delete(rel, tid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, false /* changingPart */ ,
-								NULL);
+								lazyOldSlot);
 
 	switch (result)
 	{
@@ -346,18 +357,29 @@ void
 simple_table_tuple_update(Relation rel, ItemPointer otid,
 						  TupleTableSlot *slot,
 						  Snapshot snapshot,
-						  TU_UpdateIndexes *update_indexes)
+						  TU_UpdateIndexes *update_indexes,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
 	LockTupleMode lockmode;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+	LazyTupleTableSlot *lazyOldSlot = NULL,
+				lazyOldSlotData;
+
+	if (oldSlot)
+	{
+		lazyOldSlot = &lazyOldSlotData;
+		MakeLazyTupleTableSlotWithSlot(lazyOldSlot, oldSlot);
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+	}
 
 	result = table_tuple_update(rel, otid, slot,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, &lockmode, update_indexes,
-								NULL);
+								lazyOldSlot);
 
 	switch (result)
 	{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 0f2de7e2e01..fd693b6779f 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2796,18 +2796,9 @@ ExecARDeleteTriggers(EState *estate,
 	{
 		TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
 
-		Assert(HeapTupleIsValid(fdw_trigtuple) ^ ItemPointerIsValid(tupleid));
-		if (fdw_trigtuple == NULL)
-			GetTupleForTrigger(estate,
-							   NULL,
-							   relinfo,
-							   tupleid,
-							   LockTupleExclusive,
-							   slot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else
+		Assert(!ItemPointerIsValid(tupleid) || !TTS_EMPTY(slot) || fdw_trigtuple != NULL);
+
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, slot, false);
 
 		AfterTriggerSaveEvent(estate, relinfo, NULL, NULL,
@@ -3119,19 +3110,11 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 		tupsrc = src_partinfo ? src_partinfo : relinfo;
 		oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
 
-		if (fdw_trigtuple == NULL && ItemPointerIsValid(tupleid))
-			GetTupleForTrigger(estate,
-							   NULL,
-							   tupsrc,
-							   tupleid,
-							   LockTupleExclusive,
-							   oldslot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else if (fdw_trigtuple != NULL)
+		Assert(!ItemPointerIsValid(tupleid) || !TTS_EMPTY(oldslot) || fdw_trigtuple != NULL);
+
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false);
-		else
+		else if (!ItemPointerIsValid(tupleid))
 			ExecClearTuple(oldslot);
 
 		AfterTriggerSaveEvent(estate, relinfo,
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index 9dd71684615..774f59717bb 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -545,6 +545,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 	{
 		List	   *recheckIndexes = NIL;
 		TU_UpdateIndexes update_indexes;
+		TupleTableSlot *oldSlot = NULL;
 
 		/* Compute stored generated columns */
 		if (rel->rd_att->constr &&
@@ -558,8 +559,12 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		if (rel->rd_rel->relispartition)
 			ExecPartitionCheck(resultRelInfo, slot, estate, true);
 
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_update_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		simple_table_tuple_update(rel, tid, slot, estate->es_snapshot,
-								  &update_indexes);
+								  &update_indexes, oldSlot);
 
 		if (resultRelInfo->ri_NumIndices > 0 && (update_indexes != TU_None))
 			recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
@@ -604,8 +609,14 @@ ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
 
 	if (!skip_tuple)
 	{
+		TupleTableSlot *oldSlot = NULL;
+
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_delete_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		/* OK, delete the tuple */
-		simple_table_tuple_delete(rel, tid, estate->es_snapshot);
+		simple_table_tuple_delete(rel, tid, estate->es_snapshot, oldSlot);
 
 		/* AFTER ROW DELETE Triggers */
 		ExecARDeleteTriggers(estate, resultRelInfo,
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 2f6c97a8404..3f21283c031 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -111,7 +111,7 @@ typedef struct UpdateContext
 {
 	bool		updated;		/* did UPDATE actually occur? */
 	bool		crossPartUpdate;	/* was it a cross-partition update? */
-	TU_UpdateIndexes updateIndexes;	/* Which index updates are required? */
+	TU_UpdateIndexes updateIndexes; /* Which index updates are required? */
 
 	/*
 	 * Lock mode to acquire on the latest tuple version before performing
@@ -1356,30 +1356,19 @@ GetEPQSlot(void *arg)
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart, bool lockUpdated)
+			  ItemPointer tupleid, bool changingPart, int options,
+			  LazyTupleTableSlot *oldSlot)
 {
 	EState	   *estate = context->estate;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
-	if (lockUpdated)
-	{
-		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
-							  true /* wait for commit */ ,
+							  options /* wait for commit */ ,
 							  &context->tmfd,
 							  changingPart,
-							  lazyEPQSlotPtr);
+							  oldSlot);
 }
 
 /*
@@ -1425,6 +1414,35 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 						 ar_delete_trig_tcs, changingPart);
 }
 
+/*
+ * Check if DELETE needs to save the old tuple into ri_TrigOldSlot.
+ */
+static bool
+ExecDeleteNeedsOldTupleForTrigger(ModifyTableContext *context,
+								  ResultRelInfo *relinfo,
+								  bool changingPart)
+{
+	TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
+	TransitionCaptureState *transition_capture = context->mtstate->mt_transition_capture;
+
+	if ((trigdesc && trigdesc->trig_delete_after_row) ||
+		(transition_capture && transition_capture->tcs_delete_old_table))
+		return true;
+
+	if (changingPart)
+	{
+		TriggerDesc *rootTrigdesc = relinfo->ri_TrigDesc;
+
+		if ((rootTrigdesc && rootTrigdesc->trig_update_after_row) ||
+			(transition_capture &&
+			 (transition_capture->tcs_update_old_table ||
+			  transition_capture->tcs_update_new_table)))
+			return true;
+	}
+
+	return false;
+}
+
 /* ----------------------------------------------------------------
  *		ExecDelete
  *
@@ -1514,6 +1532,35 @@ ExecDelete(ModifyTableContext *context,
 	}
 	else
 	{
+		GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
+		LazyTupleTableSlot oldSlot;
+		int			options = TABLE_MODIFY_WAIT;
+
+		/* Initialize the slot to store old tuple */
+		if (ExecDeleteNeedsOldTupleForTrigger(context, resultRelInfo, changingPart))
+		{
+			TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+			ExecClearTuple(triggerOldSlot);
+			MakeLazyTupleTableSlotWithSlot(&oldSlot, triggerOldSlot);
+			options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+		}
+		else if (processReturning &&
+				 resultRelInfo->ri_projectReturning &&
+				 !resultRelInfo->ri_FdwRoutine)
+		{
+			MakeLazyTupleTableSlotWithSlot(&oldSlot,
+										   ExecGetReturningSlot(estate, resultRelInfo));
+			options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+		}
+		else if (!IsolationUsesXactSnapshot())
+		{
+			MakeLazyTupleTableSlotWithCallback(&oldSlot, GetEPQSlot, &slotArg);
+		}
+
+		if (!IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * delete the tuple
 		 *
@@ -1525,7 +1572,7 @@ ExecDelete(ModifyTableContext *context,
 		 */
 ldelete:
 		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
-							   !IsolationUsesXactSnapshot());
+							   options, &oldSlot);
 
 		switch (result)
 		{
@@ -1565,47 +1612,53 @@ ldelete:
 				return NULL;
 
 			case TM_Ok:
+				if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+				{
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(&oldSlot);
+
+					ExecMaterializeSlot(oldSlotEval);
+					if (processReturning &&
+						resultRelInfo->ri_projectReturning &&
+						!resultRelInfo->ri_FdwRoutine)
+					{
+						TupleTableSlot *returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
+
+						if (returningSlot != oldSlotEval)
+							ExecCopySlot(returningSlot, oldSlotEval);
+					}
+				}
 				break;
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(&oldSlot);
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
 
-					/*
-					 * ExecDeleteAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
-					 */
-					EvalPlanQualBegin(context->epqstate);
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
 					/*
 					 * Save locked table for further processing for RETURNING
 					 * clause.
 					 */
+					ExecMaterializeSlot(oldSlotEval);
 					if (processReturning &&
 						resultRelInfo->ri_projectReturning &&
 						!resultRelInfo->ri_FdwRoutine)
 					{
-						TupleTableSlot *returningSlot;
+						TupleTableSlot *returningSlot = ExecGetReturningSlot(estate, resultRelInfo);
 
-						returningSlot = ExecGetReturningSlot(estate,
-															 resultRelInfo);
-						ExecCopySlot(returningSlot, inputslot);
-						ExecMaterializeSlot(returningSlot);
+						if (returningSlot != oldSlotEval)
+							ExecCopySlot(returningSlot, oldSlotEval);
 					}
 
 					Assert(context->tmfd.traversed);
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlotEval);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
@@ -1682,12 +1735,7 @@ ldelete:
 			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
 			}
-			else if (TupIsNull(slot))
-			{
-				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
-												   SnapshotAny, slot))
-					elog(ERROR, "failed to fetch deleted tuple for DELETE RETURNING");
-			}
+			Assert(!TupIsNull(slot));
 		}
 
 		rslot = ExecProcessReturning(resultRelInfo, slot, context->planSlot);
@@ -1965,15 +2013,13 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, bool lockUpdated, UpdateContext *updateCxt)
+			  bool canSetTag, int options, LazyTupleTableSlot *oldSlot,
+			  UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2099,23 +2145,14 @@ lreplace:
 	 * for referential integrity updates in transaction-snapshot mode
 	 * transactions.
 	 */
-	if (lockUpdated)
-	{
-		MakeLazyTupleTableSlotWithCallback(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	result = table_tuple_update(resultRelationDesc, tupleid, slot,
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
-								true /* wait for commit */ ,
+								options /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
 								&updateCxt->updateIndexes,
-								lazyEPQSlotPtr);
+								oldSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2239,6 +2276,34 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 						 tupleid, NULL, newslot, NIL, NULL, true);
 }
 
+/*
+ * Check if UPDATE needs to save the old tuple into ri_TrigOldSlot.
+ */
+static bool
+ExecUpdateNeedsOldTupleForTrigger(ModifyTableContext *context,
+								  ResultRelInfo *relinfo)
+{
+	TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
+	TransitionCaptureState *transition_capture;
+
+	transition_capture = context->mtstate->mt_transition_capture;
+	if ((trigdesc && trigdesc->trig_update_after_row) ||
+		(transition_capture && transition_capture->tcs_delete_old_table))
+		return true;
+
+	if (context->mtstate->operation == CMD_INSERT)
+		transition_capture = context->mtstate->mt_oc_transition_capture;
+
+	if (transition_capture &&
+		(transition_capture->tcs_update_old_table ||
+		 transition_capture->tcs_update_new_table))
+	{
+		return true;
+	}
+
+	return false;
+}
+
 /* ----------------------------------------------------------------
  *		ExecUpdate
  *
@@ -2322,6 +2387,34 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		LazyTupleTableSlot oldSlotData,
+				   *oldSlot = NULL;
+		int			options = TABLE_MODIFY_WAIT;
+
+		/* Initialize the slot to store old tuple */
+		if (ExecUpdateNeedsOldTupleForTrigger(context, resultRelInfo))
+		{
+			TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+			ExecClearTuple(triggerOldSlot);
+			oldSlot = &oldSlotData;
+			MakeLazyTupleTableSlotWithSlot(oldSlot, triggerOldSlot);
+			options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
+		}
+		else if (!locked)
+		{
+			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+				ExecInitUpdateProjection(context->mtstate,
+										 resultRelInfo);
+
+			oldSlot = &oldSlotData;
+			MakeLazyTupleTableSlotWithSlot(oldSlot,
+										   resultRelInfo->ri_oldTupleSlot);
+		}
+
+		if (!locked && !IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * If we generate a new candidate tuple after EvalPlanQual testing, we
 		 * must loop back here to try again.  (We don't need to redo triggers,
@@ -2331,8 +2424,7 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, !IsolationUsesXactSnapshot(),
-							   &updateCxt);
+							   canSetTag, options, oldSlot, &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2379,50 +2471,44 @@ redo_act:
 				return NULL;
 
 			case TM_Ok:
+				/* Materialize the tuple for trigger */
+				if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+				{
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(oldSlot);
+
+					ExecMaterializeSlot(oldSlotEval);
+				}
 				break;
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
+					TupleTableSlot *oldSlotEval = LazyTupleTableSlotEval(oldSlot);
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
 					Assert(!locked);
+					Assert(context->tmfd.traversed);
 
-					/*
-					 * ExecUpdateAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
-					 */
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
+					ExecMaterializeSlot(oldSlotEval);
 
-					/* Make sure ri_oldTupleSlot is initialized. */
 					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
 						ExecInitUpdateProjection(context->mtstate,
 												 resultRelInfo);
-
-					/*
-					 * Save the locked tuple for further calculation of the
-					 * new tuple.
-					 */
-					oldSlot = resultRelInfo->ri_oldTupleSlot;
-					ExecCopySlot(oldSlot, inputslot);
-					ExecMaterializeSlot(oldSlot);
-					Assert(context->tmfd.traversed);
+					if (oldSlotEval != resultRelInfo->ri_oldTupleSlot)
+						ExecCopySlot(resultRelInfo->ri_oldTupleSlot, oldSlotEval);
 
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlotEval);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
 					slot = ExecGetUpdateNewTuple(resultRelInfo,
-												 epqslot, oldSlot);
+												 epqslot, oldSlotEval);
 					goto redo_act;
 				}
 
@@ -2776,6 +2862,7 @@ ExecMergeMatched(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	bool		isNull;
 	EPQState   *epqstate = &mtstate->mt_epqstate;
 	ListCell   *l;
+	int			options = TABLE_MODIFY_WAIT;
 
 	/*
 	 * If there are no WHEN MATCHED actions, we are done.
@@ -2803,7 +2890,6 @@ lmerge_matched:
 	 * EvalPlanQual returns us a new tuple, which may not be visible to our
 	 * MVCC snapshot.
 	 */
-
 	if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
 									   tupleid,
 									   SnapshotAny,
@@ -2868,9 +2954,18 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, false, &updateCxt);
+									   newslot, false, options, NULL,
+									   &updateCxt);
 				if (result == TM_Ok && updateCxt.updated)
 				{
+					if (ExecUpdateNeedsOldTupleForTrigger(context, resultRelInfo))
+					{
+						TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+						ExecCopySlot(triggerOldSlot, resultRelInfo->ri_oldTupleSlot);
+						ExecMaterializeSlot(triggerOldSlot);
+					}
+
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
 									   tupleid, NULL, newslot);
 					mtstate->mt_merge_updated += 1;
@@ -2887,9 +2982,16 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecDeleteAct(context, resultRelInfo, tupleid,
-									   false, false);
+									   false, options, NULL);
 				if (result == TM_Ok)
 				{
+					if (ExecDeleteNeedsOldTupleForTrigger(context, resultRelInfo, false))
+					{
+						TupleTableSlot *triggerOldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
+						ExecCopySlot(triggerOldSlot, resultRelInfo->ri_oldTupleSlot);
+						ExecMaterializeSlot(triggerOldSlot);
+					}
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
 									   false);
 					mtstate->mt_merge_deleted += 1;
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index faf50265191..79cc528506d 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -242,19 +242,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  int ntuples, CommandId cid, int options,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
-							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 CommandId cid, Snapshot crosscheck, int options,
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 LazyTupleTableSlot *oldSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
-							 CommandId cid, Snapshot crosscheck, bool wait,
+							 CommandId cid, Snapshot crosscheck, int options,
 							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
-							 TU_UpdateIndexes *update_indexes);
-extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
-								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+							 TU_UpdateIndexes *update_indexes,
+							 LazyTupleTableSlot *oldSlot);
+extern TM_Result heap_lock_tuple(Relation relation, ItemPointer tid,
+								 TupleTableSlot *slot,
+								 CommandId cid, LockTupleMode mode,
+								 LockWaitPolicy wait_policy, bool follow_updates,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 7159365e652..445e5ba595a 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -259,6 +259,11 @@ typedef struct TM_IndexDeleteOp
 /* Follow update chain and lock latest version of tuple */
 #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION		(1 << 1)
 
+/* "options" flag bits for table_tuple_update and table_tuple_delete */
+#define TABLE_MODIFY_WAIT			0x0001
+#define TABLE_MODIFY_FETCH_OLD_TUPLE 0x0002
+#define TABLE_MODIFY_LOCK_UPDATED	0x0004
+
 
 /* Typedef for callback function for table_index_build_scan */
 typedef void (*IndexBuildCallback) (Relation index,
@@ -528,10 +533,10 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 bool changingPart,
-								 LazyTupleTableSlot *lockedSlot);
+								 LazyTupleTableSlot *oldSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -540,11 +545,11 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
 								 TU_UpdateIndexes *update_indexes,
-								 LazyTupleTableSlot *lockedSlot);
+								 LazyTupleTableSlot *oldSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1459,7 +1464,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple (or lock last tuple version if lockedSlot is given).
+ * Delete a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1470,36 +1475,46 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	cid - delete command ID (used for visibility test, and stored into
  *		cmax if successful)
  *	crosscheck - if not InvalidSnapshot, also check tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options - true if should wait for any conflicting update to commit/abort
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
- *	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - lazy slot to save the deleted or locked tuple. Can be
+ *		NULL if none of TABLE_MODIFY_FETCH_OLD_TUPLE or
+ *		TABLE_MODIFY_LOCK_UPDATED is specified.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
  *
+ * When TABLE_MODIFY_WAIT option is given, waits for any conflicting update to
+ * commit/abort.
+ *
+ * When TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ * fetched into oldSlot when the update is successful.
+ *
+ * When TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is concurrently
+ * updated, then the last tuple version is locked and fetched into oldSlot.
+ *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax, and, if possible, and, if possible, t_cmax.  See comments for
  * struct TM_FailureData for additional info.
  */
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
-				   Snapshot snapshot, Snapshot crosscheck, bool wait,
+				   Snapshot snapshot, Snapshot crosscheck, int options,
 				   TM_FailureData *tmfd, bool changingPart,
-				   LazyTupleTableSlot *lockedSlot)
+				   LazyTupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart,
-										 lockedSlot);
+										 options, tmfd, changingPart,
+										 oldSlot);
 }
 
 /*
- * Update a tuple (or lock last tuple version if lockedSlot is given).
+ * Update a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1511,19 +1526,29 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	cid - update command ID (used for visibility test, and stored into
  *		cmax/cmin if successful)
  *	crosscheck - if not InvalidSnapshot, also check old tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options - true if should wait for any conflicting update to commit/abort
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- * 	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - lazy slot to save the deleted or locked tuple. Can be
+ *		NULL if none of TABLE_MODIFY_FETCH_OLD_TUPLE or
+ *		TABLE_MODIFY_LOCK_UPDATED is specified.
 
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
  *
+ * When TABLE_MODIFY_WAIT option is given, waits for any conflicting update to
+ * commit/abort.
+ *
+ * When TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ * fetched into oldSlot when the update is successful.
+ *
+ * When TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is concurrently
+ * updated, then the last tuple version is locked and fetched into oldSlot.
+ *
  * On success, the slot's tts_tid and tts_tableOid are updated to match the new
  * stored tuple; in particular, slot->tts_tid is set to the TID where the
  * new tuple was inserted, and its HEAP_ONLY_TUPLE flag is set iff a HOT
@@ -1537,15 +1562,15 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
+				   int options, TM_FailureData *tmfd, LockTupleMode *lockmode,
 				   TU_UpdateIndexes *update_indexes,
-				   LazyTupleTableSlot *lockedSlot)
+				   LazyTupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
-										 wait, tmfd,
+										 options, tmfd,
 										 lockmode, update_indexes,
-										 lockedSlot);
+										 oldSlot);
 }
 
 /*
@@ -2061,10 +2086,12 @@ table_scan_sample_next_tuple(TableScanDesc scan,
 
 extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot);
 extern void simple_table_tuple_delete(Relation rel, ItemPointer tid,
-									  Snapshot snapshot);
+									  Snapshot snapshot,
+									  TupleTableSlot *oldSlot);
 extern void simple_table_tuple_update(Relation rel, ItemPointer otid,
 									  TupleTableSlot *slot, Snapshot snapshot,
-									  TU_UpdateIndexes *update_indexes);
+									  TU_UpdateIndexes *update_indexes,
+									  TupleTableSlot *oldSlot);
 
 
 /* ----------------------------------------------------------------------------
-- 
2.37.1 (Apple Git-137.1)

#48Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#47)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

On 2023-03-31 16:57:41 +0300, Alexander Korotkov wrote:

On Wed, Mar 29, 2023 at 8:34 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Mar 27, 2023 at 1:49 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Fri, Mar 24, 2023 at 3:39 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-23 23:24:19 +0300, Alexander Korotkov wrote:

On Thu, Mar 23, 2023 at 8:06 PM Andres Freund <andres@anarazel.de> wrote:

I seriously doubt that solving this at the tuple locking level is the right
thing. If we want to avoid refetching tuples, why don't we add a parameter to
delete/update to generally put the old tuple version into a slot, not just as
an optimization for a subsequent lock_tuple()? Then we could remove all
refetching tuples for triggers. It'd also provide the basis for adding support
for referencing the OLD version in RETURNING, which'd be quite powerful.

After some thoughts, I think I like idea of fetching old tuple version
in update/delete. Everything that evades extra tuple fetching and do
more of related work in a single table AM call, makes table AM API
more flexible.

I'm working on patch implementing this. I'm going to post it later today.

Here is the patchset. I'm continue to work on comments and refactoring.

My quick question is why do we need ri_TrigOldSlot for triggers?
Can't we just pass the old tuple for after row trigger in
ri_oldTupleSlot?

Also, I wonder if we really need a LazyTupleSlot. It allows to evade
extra tuple slot allocation. But as I get in the end the tuple slot
allocation is just a single palloc. I bet the effect would be
invisible in the benchmarks.

Sorry, previous patches don't even compile. The fixed version is attached.
I'm going to post significantly revised patchset soon.

Given that the in-tree state has been broken for a week, I think it probably
is time to revert the commits that already went in.

Greetings,

Andres Freund

#49Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Andres Freund (#48)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Andres!

On Sat, 1 Apr 2023, 09:21 Andres Freund, <andres@anarazel.de> wrote:

Given that the in-tree state has been broken for a week, I think it
probably
is time to revert the commits that already went in.

It seems that although the patch addressing the issues is not a quick fix,
there is a big progress in it already. I propose to see it's status a week
later and if it is not ready then to revert existing. Hope there are no
other patches in the existing branch complained to suffer this.

Kind regards,
Pavel Borisov,
Supabase

Show quoted text
#50Alexander Korotkov
aekorotkov@gmail.com
In reply to: Andres Freund (#48)
1 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

.Hi!

On Sat, Apr 1, 2023 at 8:21 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-31 16:57:41 +0300, Alexander Korotkov wrote:

On Wed, Mar 29, 2023 at 8:34 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Mon, Mar 27, 2023 at 1:49 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Fri, Mar 24, 2023 at 3:39 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-03-23 23:24:19 +0300, Alexander Korotkov wrote:

On Thu, Mar 23, 2023 at 8:06 PM Andres Freund <andres@anarazel.de> wrote:

I seriously doubt that solving this at the tuple locking level is the right
thing. If we want to avoid refetching tuples, why don't we add a parameter to
delete/update to generally put the old tuple version into a slot, not just as
an optimization for a subsequent lock_tuple()? Then we could remove all
refetching tuples for triggers. It'd also provide the basis for adding support
for referencing the OLD version in RETURNING, which'd be quite powerful.

After some thoughts, I think I like idea of fetching old tuple version
in update/delete. Everything that evades extra tuple fetching and do
more of related work in a single table AM call, makes table AM API
more flexible.

I'm working on patch implementing this. I'm going to post it later today.

Here is the patchset. I'm continue to work on comments and refactoring.

My quick question is why do we need ri_TrigOldSlot for triggers?
Can't we just pass the old tuple for after row trigger in
ri_oldTupleSlot?

Also, I wonder if we really need a LazyTupleSlot. It allows to evade
extra tuple slot allocation. But as I get in the end the tuple slot
allocation is just a single palloc. I bet the effect would be
invisible in the benchmarks.

Sorry, previous patches don't even compile. The fixed version is attached.
I'm going to post significantly revised patchset soon.

Given that the in-tree state has been broken for a week, I think it probably
is time to revert the commits that already went in.

The revised patch is attached. The most notable change is getting rid
of LazyTupleTableSlot. Also get rid of complex computations to detect
how to initialize LazyTupleTableSlot. Instead just pass the oldSlot
as an argument of ExecUpdate() and ExecDelete(). The price for this
is just preallocation of ri_oldTupleSlot before calling ExecDelete().
The slot allocation is quite cheap. After all wrappers it's
table_slot_callbacks(), which is very cheap, single palloc() and few
fields initialization. It doesn't seem reasonable to introduce an
infrastructure to evade this.

I think patch resolves all the major issues you've highlighted. Even
if there are some minor things missed, I'd prefer to push this rather
than reverting the whole work.

------
Regards,
Alexander Korotkov

Attachments:

0001-Revise-changes-in-764da7710b-and-11470f544e-v3.patchapplication/octet-stream; name=0001-Revise-changes-in-764da7710b-and-11470f544e-v3.patchDownload
From b930abb791f3242bb5d268b44aced0275ed467da Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Sun, 2 Apr 2023 03:26:35 +0300
Subject: [PATCH] Revise changes in 764da7710b and 11470f544e

The mentioned commits evade extra tuple re-fetching and allow locking last
versions of updated tuples in tuple_update() and tuple_delete().

This commit improves the things in the following ways.
 * tuple_update() and tuple_delete() can now fetch the old tuple version not
   only after lock, but also after successful UPDATE/DELETE.
 * Avoid tuple re-fetching in more general case including after row triggers.
 * Improve code API in heap_lock_tuple.  Automatically detect prefetched tuple
   in slot to avoid the extra work on reading the buffer.
 * Remove LazyTupleTableSlot.  It seems unreasonable complication for evading
   slot allocation, which is quite cheap.

Reported-by: Andres Freund
Discussion: https://postgr.es/m/20230323003003.plgaxjqahjgkuxrk%40awork3.anarazel.de
---
 src/backend/access/heap/heapam.c         | 201 +++++++++++++-----
 src/backend/access/heap/heapam_handler.c | 143 +++++--------
 src/backend/access/table/tableam.c       |  24 ++-
 src/backend/commands/trigger.c           |  59 ++----
 src/backend/executor/execReplication.c   |  19 +-
 src/backend/executor/nodeModifyTable.c   | 253 +++++++++--------------
 src/include/access/heapam.h              |  19 +-
 src/include/access/tableam.h             |  67 ++++--
 src/include/commands/trigger.h           |   4 +-
 src/include/executor/tuptable.h          |  38 ----
 src/tools/pgindent/typedefs.list         |   2 -
 11 files changed, 420 insertions(+), 409 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 8abc101c8cb..abb97e1b2ad 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2449,10 +2449,11 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 }
 
 /*
- *	heap_delete - delete a tuple
+ *	heap_delete - delete a tuple, optionally fetching it into a slot
  *
  * See table_tuple_delete() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2461,8 +2462,9 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
  */
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
-			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			CommandId cid, Snapshot crosscheck, int options,
+			TM_FailureData *tmfd, bool changingPart,
+			TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2540,7 +2542,7 @@ l1:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to delete invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -2676,7 +2678,30 @@ l1:
 			tmfd->cmax = HeapTupleHeaderGetCmax(tp.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resources on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = tp;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(tp.t_self), LockTupleExclusive);
 		if (vmbuffer != InvalidBuffer)
@@ -2850,8 +2875,24 @@ l1:
 	 */
 	CacheInvalidateHeapTuple(relation, &tp, NULL);
 
-	/* Now we can release the buffer */
-	ReleaseBuffer(buffer);
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = tp;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
 
 	/*
 	 * Release the lmgr tuple lock, if we had it.
@@ -2884,7 +2925,7 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 &tmfd, false /* changingPart */ , NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2911,10 +2952,11 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 }
 
 /*
- *	heap_update - replace a tuple
+ *	heap_update - replace a tuple, optionally fetching it into a slot
  *
  * See table_tuple_update() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2923,9 +2965,9 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  */
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
-			CommandId cid, Snapshot crosscheck, bool wait,
+			CommandId cid, Snapshot crosscheck, int options,
 			TM_FailureData *tmfd, LockTupleMode *lockmode,
-			TU_UpdateIndexes *update_indexes)
+			TU_UpdateIndexes *update_indexes, TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3102,7 +3144,7 @@ l2:
 	result = HeapTupleSatisfiesUpdate(&oldtup, cid, buffer);
 
 	/* see below about the "no wait" case */
-	Assert(result != TM_BeingModified || wait);
+	Assert(result != TM_BeingModified || (options & TABLE_MODIFY_WAIT));
 
 	if (result == TM_Invisible)
 	{
@@ -3111,7 +3153,7 @@ l2:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to update invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -3313,7 +3355,30 @@ l2:
 			tmfd->cmax = HeapTupleHeaderGetCmax(oldtup.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = oldtup;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(oldtup.t_self), *lockmode);
 		if (vmbuffer != InvalidBuffer)
@@ -3791,7 +3856,26 @@ l2:
 	/* Now we can release the buffer(s) */
 	if (newbuf != buffer)
 		ReleaseBuffer(newbuf);
-	ReleaseBuffer(buffer);
+
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = oldtup;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
+
 	if (BufferIsValid(vmbuffer_new))
 		ReleaseBuffer(vmbuffer_new);
 	if (BufferIsValid(vmbuffer))
@@ -4000,7 +4084,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
 						 true /* wait for commit */ ,
-						 &tmfd, &lockmode, update_indexes);
+						 &tmfd, &lockmode, update_indexes, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4063,12 +4147,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  *		tuples.
  *
  * Output parameters:
- *	*tuple: all fields filled in
- *	*buffer: set to buffer holding tuple (pinned but not locked at exit)
+ *	*slot: BufferHeapTupleTableSlot filled with tuple
  *	*tmfd: filled in failure cases (see below)
  *
  * Function results are the same as the ones for table_tuple_lock().
  *
+ * If *slot already contains the target tuple, it takes advantage on that by
+ * skipping the ReadBuffer() call.
+ *
  * In the failure cases other than TM_Invisible, the routine fills
  * *tmfd with the tuple's t_ctid, t_xmax (resolving a possible MultiXact,
  * if necessary), and t_cmax (the last only for TM_SelfModified,
@@ -4079,15 +4165,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  * See README.tuplock for a thorough explanation of this mechanism.
  */
 TM_Result
-heap_lock_tuple(Relation relation, HeapTuple tuple,
+heap_lock_tuple(Relation relation, ItemPointer tid, TupleTableSlot *slot,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				bool follow_updates, TM_FailureData *tmfd)
 {
 	TM_Result	result;
-	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
+	Buffer		buffer;
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 	TransactionId xid,
@@ -4099,8 +4184,24 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	bool		skip_tuple_lock = false;
 	bool		have_tuple_lock = false;
 	bool		cleared_all_frozen = false;
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	HeapTuple	tuple = &bslot->base.tupdata;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	/* Take advantage if slot already contains the relevant tuple  */
+	if (!TTS_EMPTY(slot) &&
+		slot->tts_tableOid == relation->rd_id &&
+		ItemPointerCompare(&slot->tts_tid, tid) == 0 &&
+		BufferIsValid(bslot->buffer))
+	{
+		buffer = bslot->buffer;
+		IncrBufferRefCount(buffer);
+	}
+	else
+	{
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	}
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4109,21 +4210,22 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
+	tuple->t_self = *tid;
 	tuple->t_data = (HeapTupleHeader) PageGetItem(page, lp);
 	tuple->t_len = ItemIdGetLength(lp);
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4152,7 +4254,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4304,12 +4406,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4344,7 +4446,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4372,7 +4474,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4384,7 +4486,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4412,7 +4514,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4434,7 +4536,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4459,7 +4561,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4485,7 +4587,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4525,7 +4627,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4551,12 +4653,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4578,7 +4680,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4637,9 +4739,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4702,7 +4804,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4722,7 +4824,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4743,7 +4845,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4761,6 +4863,9 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	/* Put the target tuple to the slot */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 9e690074e94..9e0ba9024ff 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,11 +45,11 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
-static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-											Snapshot snapshot, TupleTableSlot *slot,
-											CommandId cid, LockTupleMode mode,
-											LockWaitPolicy wait_policy, uint8 flags,
-											TM_FailureData *tmfd, bool updated);
+static TM_Result heapam_tuple_lock(Relation relation, ItemPointer tid,
+								   Snapshot snapshot, TupleTableSlot *slot,
+								   CommandId cid, LockTupleMode mode,
+								   LockWaitPolicy wait_policy, uint8 flags,
+								   TM_FailureData *tmfd);
 
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
@@ -304,9 +304,9 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
-					Snapshot snapshot, Snapshot crosscheck, bool wait,
+					Snapshot snapshot, Snapshot crosscheck, int options,
 					TM_FailureData *tmfd, bool changingPart,
-					LazyTupleTableSlot *lockedSlot)
+					TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 
@@ -315,33 +315,32 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	result = heap_delete(relation, tid, cid, crosscheck, wait,
-						 tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, options,
+						 tmfd, changingPart, oldSlot);
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of delete should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * delete should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
-		TupleTableSlot *evalSlot;
-
-		Assert(wait);
-
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
-		result = heapam_tuple_lock_internal(relation, tid, snapshot,
-											evalSlot, cid, LockTupleExclusive,
-											LockWaitBlock,
-											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_delete().
+		 */
+		result = heapam_tuple_lock(relation, tid, snapshot,
+								   oldSlot, cid, LockTupleExclusive,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -351,9 +350,9 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-					bool wait, TM_FailureData *tmfd,
+					int options, TM_FailureData *tmfd,
 					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
-					LazyTupleTableSlot *lockedSlot)
+					TupleTableSlot *oldSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -363,8 +362,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode, update_indexes);
+	result = heap_update(relation, otid, tuple, cid, crosscheck, options,
+						 tmfd, lockmode, update_indexes, oldSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -373,8 +372,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	 * Note: heap_update returns the tid (location) of the new tuple in the
 	 * t_self field.
 	 *
-	 * If the update is not HOT, we must update all indexes. If the update
-	 * is HOT, it could be that we updated summarized columns, so we either
+	 * If the update is not HOT, we must update all indexes. If the update is
+	 * HOT, it could be that we updated summarized columns, so we either
 	 * update only summarized indexes, or none at all.
 	 */
 	if (result != TM_Ok)
@@ -393,28 +392,27 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of update should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * update should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
-		TupleTableSlot *evalSlot;
-
-		Assert(wait);
-
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
-		result = heapam_tuple_lock_internal(relation, otid, snapshot,
-											evalSlot, cid, *lockmode,
-											LockWaitBlock,
-											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_update().
+		 */
+		result = heapam_tuple_lock(relation, otid, snapshot,
+								   oldSlot, cid, *lockmode,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -425,26 +423,9 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
-{
-	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid,
-									  mode, wait_policy, flags, tmfd, false);
-}
-
-/*
- * This routine does the work for heapam_tuple_lock(), but also support
- * `updated` argument to re-use the work done by heapam_tuple_update() or
- * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
- */
-static TM_Result
-heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-						   Snapshot snapshot, TupleTableSlot *slot,
-						   CommandId cid, LockTupleMode mode,
-						   LockWaitPolicy wait_policy, uint8 flags,
-						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer = InvalidBuffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
 
@@ -454,27 +435,14 @@ heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
 	Assert(TTS_IS_BUFFERTUPLE(slot));
 
 tuple_lock_retry:
-	tuple->t_self = *tid;
-	if (!updated)
-		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-								 follow_updates, &buffer, tmfd);
-	else
-		result = TM_Updated;
+	result = heap_lock_tuple(relation, tid, slot, cid, mode, wait_policy,
+							 follow_updates, tmfd);
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		if (!updated)
-		{
-			/* Should not encounter speculative tuple on recheck */
-			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-			ReleaseBuffer(buffer);
-		}
-		else
-		{
-			updated = false;
-		}
+		/* Should not encounter speculative tuple on recheck */
+		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
@@ -497,6 +465,8 @@ tuple_lock_retry:
 			InitDirtySnapshot(SnapshotDirty);
 			for (;;)
 			{
+				Buffer		buffer = InvalidBuffer;
+
 				if (ItemPointerIndicatesMovedPartitions(tid))
 					ereport(ERROR,
 							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
@@ -591,7 +561,7 @@ tuple_lock_retry:
 					/*
 					 * This is a live tuple, so try to lock it again.
 					 */
-					ReleaseBuffer(buffer);
+					ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
 					goto tuple_lock_retry;
 				}
 
@@ -602,7 +572,7 @@ tuple_lock_retry:
 				 */
 				if (tuple->t_data == NULL)
 				{
-					Assert(!BufferIsValid(buffer));
+					ReleaseBuffer(buffer);
 					return TM_Deleted;
 				}
 
@@ -655,9 +625,6 @@ tuple_lock_retry:
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
 	return result;
 }
 
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index 2a1a6ced3c7..0167a2fb1fc 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -297,17 +297,23 @@ simple_table_tuple_insert(Relation rel, TupleTableSlot *slot)
  * via ereport().
  */
 void
-simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
+simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_delete(rel, tid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, false /* changingPart */ ,
-								NULL);
+								oldSlot);
 
 	switch (result)
 	{
@@ -346,18 +352,24 @@ void
 simple_table_tuple_update(Relation rel, ItemPointer otid,
 						  TupleTableSlot *slot,
 						  Snapshot snapshot,
-						  TU_UpdateIndexes *update_indexes)
+						  TU_UpdateIndexes *update_indexes,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
 	LockTupleMode lockmode;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_update(rel, otid, slot,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, &lockmode, update_indexes,
-								NULL);
+								oldSlot);
 
 	switch (result)
 	{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 0f2de7e2e01..1c262c5db62 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2784,8 +2784,8 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate,
 void
 ExecARDeleteTriggers(EState *estate,
 					 ResultRelInfo *relinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *slot,
 					 TransitionCaptureState *transition_capture,
 					 bool is_crosspart_update)
 {
@@ -2794,20 +2794,11 @@ ExecARDeleteTriggers(EState *estate,
 	if ((trigdesc && trigdesc->trig_delete_after_row) ||
 		(transition_capture && transition_capture->tcs_delete_old_table))
 	{
-		TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
-
-		Assert(HeapTupleIsValid(fdw_trigtuple) ^ ItemPointerIsValid(tupleid));
-		if (fdw_trigtuple == NULL)
-			GetTupleForTrigger(estate,
-							   NULL,
-							   relinfo,
-							   tupleid,
-							   LockTupleExclusive,
-							   slot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else
+		/*
+		 * Put the FDW old tuple to the slot.  Otherwise, caller is expected
+		 * to have old tuple alredy fetched to the slot.
+		 */
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, slot, false);
 
 		AfterTriggerSaveEvent(estate, relinfo, NULL, NULL,
@@ -3080,18 +3071,17 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
  * Note: 'src_partinfo' and 'dst_partinfo', when non-NULL, refer to the source
  * and destination partitions, respectively, of a cross-partition update of
  * the root partitioned table mentioned in the query, given by 'relinfo'.
- * 'tupleid' in that case refers to the ctid of the "old" tuple in the source
- * partition, and 'newslot' contains the "new" tuple in the destination
- * partition.  This interface allows to support the requirements of
- * ExecCrossPartitionUpdateForeignKey(); is_crosspart_update must be true in
- * that case.
+ * 'oldslot' contains the "old" tuple in the source partition, and 'newslot'
+ * contains the "new" tuple in the destination partition.  This interface
+ * allows to support the requirements of ExecCrossPartitionUpdateForeignKey();
+ * is_crosspart_update must be true in that case.
  */
 void
 ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 					 ResultRelInfo *src_partinfo,
 					 ResultRelInfo *dst_partinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *oldslot,
 					 TupleTableSlot *newslot,
 					 List *recheckIndexes,
 					 TransitionCaptureState *transition_capture,
@@ -3110,29 +3100,18 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 		 * separately for DELETE and INSERT to capture transition table rows.
 		 * In such case, either old tuple or new tuple can be NULL.
 		 */
-		TupleTableSlot *oldslot;
-		ResultRelInfo *tupsrc;
-
 		Assert((src_partinfo != NULL && dst_partinfo != NULL) ||
 			   !is_crosspart_update);
 
-		tupsrc = src_partinfo ? src_partinfo : relinfo;
-		oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
-
-		if (fdw_trigtuple == NULL && ItemPointerIsValid(tupleid))
-			GetTupleForTrigger(estate,
-							   NULL,
-							   tupsrc,
-							   tupleid,
-							   LockTupleExclusive,
-							   oldslot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else if (fdw_trigtuple != NULL)
+		if (fdw_trigtuple != NULL)
+		{
+/*			if (!oldslot)
+			{
+				ResultRelInfo *tupsrc = src_partinfo ? src_partinfo : relinfo;
+				oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
+			}*/
 			ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false);
-		else
-			ExecClearTuple(oldslot);
+		}
 
 		AfterTriggerSaveEvent(estate, relinfo,
 							  src_partinfo, dst_partinfo,
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index 9dd71684615..31ff5cd9f41 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -545,6 +545,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 	{
 		List	   *recheckIndexes = NIL;
 		TU_UpdateIndexes update_indexes;
+		TupleTableSlot *oldSlot = NULL;
 
 		/* Compute stored generated columns */
 		if (rel->rd_att->constr &&
@@ -558,8 +559,12 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		if (rel->rd_rel->relispartition)
 			ExecPartitionCheck(resultRelInfo, slot, estate, true);
 
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_update_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		simple_table_tuple_update(rel, tid, slot, estate->es_snapshot,
-								  &update_indexes);
+								  &update_indexes, oldSlot);
 
 		if (resultRelInfo->ri_NumIndices > 0 && (update_indexes != TU_None))
 			recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
@@ -570,7 +575,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		/* AFTER ROW UPDATE Triggers */
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tid, NULL, slot,
+							 NULL, oldSlot, slot,
 							 recheckIndexes, NULL, false);
 
 		list_free(recheckIndexes);
@@ -604,12 +609,18 @@ ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
 
 	if (!skip_tuple)
 	{
+		TupleTableSlot *oldSlot = NULL;
+
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_delete_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		/* OK, delete the tuple */
-		simple_table_tuple_delete(rel, tid, estate->es_snapshot);
+		simple_table_tuple_delete(rel, tid, estate->es_snapshot, oldSlot);
 
 		/* AFTER ROW DELETE Triggers */
 		ExecARDeleteTriggers(estate, resultRelInfo,
-							 tid, NULL, NULL, false);
+							 NULL, oldSlot, NULL, false);
 	}
 }
 
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index e3503756818..fe2d710433a 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -111,7 +111,7 @@ typedef struct UpdateContext
 {
 	bool		updated;		/* did UPDATE actually occur? */
 	bool		crossPartUpdate;	/* was it a cross-partition update? */
-	TU_UpdateIndexes updateIndexes;	/* Which index updates are required? */
+	TU_UpdateIndexes updateIndexes; /* Which index updates are required? */
 
 	/*
 	 * Lock mode to acquire on the latest tuple version before performing
@@ -133,7 +133,7 @@ static void ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 											   ResultRelInfo *sourcePartInfo,
 											   ResultRelInfo *destPartInfo,
 											   ItemPointer tupleid,
-											   TupleTableSlot *oldslot,
+											   TupleTableSlot *oldSlot,
 											   TupleTableSlot *newslot);
 static bool ExecOnConflictUpdate(ModifyTableContext *context,
 								 ResultRelInfo *resultRelInfo,
@@ -570,6 +570,10 @@ ExecInitInsertProjection(ModifyTableState *mtstate,
 	resultRelInfo->ri_newTupleSlot =
 		table_slot_create(resultRelInfo->ri_RelationDesc,
 						  &estate->es_tupleTable);
+	if (node->onConflictAction == ONCONFLICT_UPDATE)
+		resultRelInfo->ri_oldTupleSlot =
+			table_slot_create(resultRelInfo->ri_RelationDesc,
+							  &estate->es_tupleTable);
 
 	/* Build ProjectionInfo if needed (it probably isn't). */
 	if (need_projection)
@@ -1160,7 +1164,7 @@ ExecInsert(ModifyTableContext *context,
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
 							 NULL,
-							 NULL,
+							 resultRelInfo->ri_oldTupleSlot,
 							 slot,
 							 NULL,
 							 mtstate->mt_transition_capture,
@@ -1324,62 +1328,28 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	return true;
 }
 
-/*
- * The implementation for LazyTupleTableSlot wrapper for EPQ slot to be passed
- * to table_tuple_update()/table_tuple_delete().
- */
-typedef struct
-{
-	EPQState   *epqstate;
-	ResultRelInfo *resultRelInfo;
-} GetEPQSlotArg;
-
-static TupleTableSlot *
-GetEPQSlot(void *arg)
-{
-	GetEPQSlotArg *slotArg = (GetEPQSlotArg *) arg;
-
-	return EvalPlanQualSlot(slotArg->epqstate,
-							slotArg->resultRelInfo->ri_RelationDesc,
-							slotArg->resultRelInfo->ri_RangeTableIndex);
-}
-
 /*
  * ExecDeleteAct -- subroutine for ExecDelete
  *
  * Actually delete the tuple from a plain table.
  *
- * If the 'lockUpdated' flag is set and the target tuple is updated, then
- * the latest version gets locked and fetched into the EPQ slot.
- *
  * Caller is in charge of doing EvalPlanQual as necessary
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart, bool lockUpdated)
+			  ItemPointer tupleid, bool changingPart, int options,
+			  TupleTableSlot *oldSlot)
 {
 	EState	   *estate = context->estate;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
-	if (lockUpdated)
-	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
-							  true /* wait for commit */ ,
+							  options /* wait for commit */ ,
 							  &context->tmfd,
 							  changingPart,
-							  lazyEPQSlotPtr);
+							  oldSlot);
 }
 
 /*
@@ -1391,7 +1361,8 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static void
 ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-				   ItemPointer tupleid, HeapTuple oldtuple, bool changingPart)
+				   ItemPointer tupleid, HeapTuple oldtuple,
+				   TupleTableSlot *slot, bool changingPart)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	EState	   *estate = context->estate;
@@ -1409,8 +1380,8 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	{
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tupleid, oldtuple,
-							 NULL, NULL, mtstate->mt_transition_capture,
+							 oldtuple,
+							 slot, NULL, NULL, mtstate->mt_transition_capture,
 							 false);
 
 		/*
@@ -1421,10 +1392,30 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 
 	/* AFTER ROW DELETE Triggers */
-	ExecARDeleteTriggers(estate, resultRelInfo, tupleid, oldtuple,
+	ExecARDeleteTriggers(estate, resultRelInfo, oldtuple, slot,
 						 ar_delete_trig_tcs, changingPart);
 }
 
+/*
+ * Initializes the tuple slot in a ResultRelInfo for DELETE action.
+ *
+ * We mark 'projectNewInfoValid' even though the projections themselves
+ * are not initialized here.
+ */
+static void
+ExecInitDeleteTupleSlot(ModifyTableState *mtstate,
+						ResultRelInfo *resultRelInfo)
+{
+	EState	   *estate = mtstate->ps.state;
+
+	Assert(!resultRelInfo->ri_projectNewInfoValid);
+
+	resultRelInfo->ri_oldTupleSlot =
+		table_slot_create(resultRelInfo->ri_RelationDesc,
+						  &estate->es_tupleTable);
+	resultRelInfo->ri_projectNewInfoValid = true;
+}
+
 /* ----------------------------------------------------------------
  *		ExecDelete
  *
@@ -1452,6 +1443,7 @@ ExecDelete(ModifyTableContext *context,
 		   ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid,
 		   HeapTuple oldtuple,
+		   TupleTableSlot *oldSlot,
 		   bool processReturning,
 		   bool changingPart,
 		   bool canSetTag,
@@ -1514,6 +1506,11 @@ ExecDelete(ModifyTableContext *context,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * delete the tuple
 		 *
@@ -1525,7 +1522,7 @@ ExecDelete(ModifyTableContext *context,
 		 */
 ldelete:
 		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
-							   !IsolationUsesXactSnapshot());
+							   options, oldSlot);
 
 		switch (result)
 		{
@@ -1569,7 +1566,6 @@ ldelete:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
 
 					if (IsolationUsesXactSnapshot())
@@ -1578,34 +1574,14 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * ExecDeleteAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
-					 */
-					EvalPlanQualBegin(context->epqstate);
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					/*
-					 * Save locked table for further processing for RETURNING
-					 * clause.
+					 * We need to do EPQ.  Thanks to TABLE_MODIFY_LOCK_UPDATED
+					 * option, the lastest tuple is already found and locked.
 					 */
-					if (processReturning &&
-						resultRelInfo->ri_projectReturning &&
-						!resultRelInfo->ri_FdwRoutine)
-					{
-						TupleTableSlot *returningSlot;
-
-						returningSlot = ExecGetReturningSlot(estate,
-															 resultRelInfo);
-						ExecCopySlot(returningSlot, inputslot);
-						ExecMaterializeSlot(returningSlot);
-					}
-
 					Assert(context->tmfd.traversed);
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlot);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
@@ -1654,7 +1630,8 @@ ldelete:
 	if (tupleDeleted)
 		*tupleDeleted = true;
 
-	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple, changingPart);
+	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple,
+					   oldSlot, changingPart);
 
 	/* Process RETURNING if present and if requested */
 	if (processReturning && resultRelInfo->ri_projectReturning)
@@ -1672,22 +1649,13 @@ ldelete:
 		}
 		else
 		{
-			/*
-			 * Tuple can be already fetched to the returning slot in case
-			 * we've previously locked it.  Fetch the tuple only if the slot
-			 * is empty.
-			 */
+			/* Copy old tuple to the returning slot */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
-			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
-			}
-			else if (TupIsNull(slot))
-			{
-				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
-												   SnapshotAny, slot))
-					elog(ERROR, "failed to fetch deleted tuple for DELETE RETURNING");
-			}
+			else
+				ExecCopySlot(slot, oldSlot);
+			Assert(!TupIsNull(slot));
 		}
 
 		rslot = ExecProcessReturning(resultRelInfo, slot, context->planSlot);
@@ -1786,12 +1754,16 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 		MemoryContextSwitchTo(oldcxt);
 	}
 
+	/* Make sure ri_oldTupleSlot is initialized. */
+	if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+		ExecInitUpdateProjection(mtstate, resultRelInfo);
+
 	/*
 	 * Row movement, part 1.  Delete the tuple, but skip RETURNING processing.
 	 * We want to return rows from INSERT.
 	 */
 	ExecDelete(context, resultRelInfo,
-			   tupleid, oldtuple,
+			   tupleid, oldtuple, resultRelInfo->ri_oldTupleSlot,
 			   false,			/* processReturning */
 			   true,			/* changingPart */
 			   false,			/* canSetTag */
@@ -1832,21 +1804,13 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 			return true;
 		else
 		{
-			/* Fetch the most recent version of old tuple. */
-			TupleTableSlot *oldSlot;
-
-			/* ... but first, make sure ri_oldTupleSlot is initialized. */
-			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-				ExecInitUpdateProjection(mtstate, resultRelInfo);
-			oldSlot = resultRelInfo->ri_oldTupleSlot;
-			if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
-											   tupleid,
-											   SnapshotAny,
-											   oldSlot))
-				elog(ERROR, "failed to fetch tuple being updated");
-			/* and project the new tuple to retry the UPDATE with */
+			/*
+			 * ExecDelete already fetches the most recent version of old tuple
+			 * to resultRelInfo->ri_RelationDesc.  So, just project the new
+			 * tuple to retry the UPDATE with.
+			 */
 			*retry_slot = ExecGetUpdateNewTuple(resultRelInfo, epqslot,
-												oldSlot);
+												resultRelInfo->ri_oldTupleSlot);
 			return false;
 		}
 	}
@@ -1965,15 +1929,13 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, bool lockUpdated, UpdateContext *updateCxt)
+			  bool canSetTag, int options, TupleTableSlot *oldSlot,
+			  UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2060,7 +2022,8 @@ lreplace:
 				ExecCrossPartitionUpdateForeignKey(context,
 												   resultRelInfo,
 												   insert_destrel,
-												   tupleid, slot,
+												   tupleid,
+												   resultRelInfo->ri_oldTupleSlot,
 												   inserted_tuple);
 
 			return TM_Ok;
@@ -2099,23 +2062,14 @@ lreplace:
 	 * for referential integrity updates in transaction-snapshot mode
 	 * transactions.
 	 */
-	if (lockUpdated)
-	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	result = table_tuple_update(resultRelationDesc, tupleid, slot,
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
-								true /* wait for commit */ ,
+								options /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
 								&updateCxt->updateIndexes,
-								lazyEPQSlotPtr);
+								oldSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2131,7 +2085,8 @@ lreplace:
 static void
 ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 				   ResultRelInfo *resultRelInfo, ItemPointer tupleid,
-				   HeapTuple oldtuple, TupleTableSlot *slot)
+				   HeapTuple oldtuple, TupleTableSlot *slot,
+				   TupleTableSlot *oldSlot)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	List	   *recheckIndexes = NIL;
@@ -2147,7 +2102,7 @@ ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 	/* AFTER ROW UPDATE Triggers */
 	ExecARUpdateTriggers(context->estate, resultRelInfo,
 						 NULL, NULL,
-						 tupleid, oldtuple, slot,
+						 oldtuple, oldSlot, slot,
 						 recheckIndexes,
 						 mtstate->operation == CMD_INSERT ?
 						 mtstate->mt_oc_transition_capture :
@@ -2236,7 +2191,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 	/* Perform the root table's triggers. */
 	ExecARUpdateTriggers(context->estate,
 						 rootRelInfo, sourcePartInfo, destPartInfo,
-						 tupleid, NULL, newslot, NIL, NULL, true);
+						 NULL, oldslot, newslot, NIL, NULL, true);
 }
 
 /* ----------------------------------------------------------------
@@ -2259,6 +2214,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
  *		no relevant triggers.
  *
  *		slot contains the new tuple value to be stored.
+ *		oldSlot is the slot to store the old tuple.
  *		planSlot is the output of the ModifyTable's subplan; we use it
  *		to access values from other input tables (for RETURNING),
  *		row-ID junk columns, etc.
@@ -2269,7 +2225,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag, bool locked)
+		   TupleTableSlot *oldSlot, bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2322,6 +2278,11 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!locked && !IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * If we generate a new candidate tuple after EvalPlanQual testing, we
 		 * must loop back here to try again.  (We don't need to redo triggers,
@@ -2331,8 +2292,7 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, !IsolationUsesXactSnapshot(),
-							   &updateCxt);
+							   canSetTag, options, oldSlot, &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2383,9 +2343,7 @@ redo_act:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
@@ -2394,35 +2352,20 @@ redo_act:
 					Assert(!locked);
 
 					/*
-					 * ExecUpdateAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
+					 * We need to do EPQ.  Thanks to TABLE_MODIFY_LOCK_UPDATED
+					 * option, the lastest tuple is already found and locked.
 					 */
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					/* Make sure ri_oldTupleSlot is initialized. */
-					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-						ExecInitUpdateProjection(context->mtstate,
-												 resultRelInfo);
-
-					/*
-					 * Save the locked tuple for further calculation of the
-					 * new tuple.
-					 */
-					oldSlot = resultRelInfo->ri_oldTupleSlot;
-					ExecCopySlot(oldSlot, inputslot);
-					ExecMaterializeSlot(oldSlot);
 					Assert(context->tmfd.traversed);
-
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlot);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
 					slot = ExecGetUpdateNewTuple(resultRelInfo,
-												 epqslot, oldSlot);
+												 epqslot,
+												 oldSlot);
 					goto redo_act;
 				}
 
@@ -2447,7 +2390,7 @@ redo_act:
 		(estate->es_processed)++;
 
 	ExecUpdateEpilogue(context, &updateCxt, resultRelInfo, tupleid, oldtuple,
-					   slot);
+					   slot, oldSlot);
 
 	/* Process RETURNING if present */
 	if (resultRelInfo->ri_projectReturning)
@@ -2665,6 +2608,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
+							existing,
 							canSetTag, true);
 
 	/*
@@ -2803,7 +2747,6 @@ lmerge_matched:
 	 * EvalPlanQual returns us a new tuple, which may not be visible to our
 	 * MVCC snapshot.
 	 */
-
 	if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
 									   tupleid,
 									   SnapshotAny,
@@ -2868,11 +2811,13 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, false, &updateCxt);
+									   newslot, false, TABLE_MODIFY_WAIT, NULL,
+									   &updateCxt);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
-									   tupleid, NULL, newslot);
+									   tupleid, NULL, newslot,
+									   resultRelInfo->ri_oldTupleSlot);
 					mtstate->mt_merge_updated += 1;
 				}
 				break;
@@ -2887,11 +2832,11 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecDeleteAct(context, resultRelInfo, tupleid,
-									   false, false);
+									   false, TABLE_MODIFY_WAIT, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
-									   false);
+									   resultRelInfo->ri_oldTupleSlot, false);
 					mtstate->mt_merge_deleted += 1;
 				}
 				break;
@@ -3793,12 +3738,18 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag, false);
+								  slot, resultRelInfo->ri_oldTupleSlot,
+								  node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
+				/* Initialize slot for DELETE to fetch the old tuple */
+				if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+					ExecInitDeleteTupleSlot(node, resultRelInfo);
+
 				slot = ExecDelete(&context, resultRelInfo, tupleid, oldtuple,
-								  true, false, node->canSetTag, NULL, NULL);
+								  resultRelInfo->ri_oldTupleSlot, true, false,
+								  node->canSetTag, NULL, NULL);
 				break;
 
 			case CMD_MERGE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index faf50265191..19bcbfeea23 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -242,19 +242,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  int ntuples, CommandId cid, int options,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
-							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 CommandId cid, Snapshot crosscheck, int options,
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 TupleTableSlot *oldSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
-							 CommandId cid, Snapshot crosscheck, bool wait,
+							 CommandId cid, Snapshot crosscheck, int options,
 							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
-							 TU_UpdateIndexes *update_indexes);
-extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
-								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+							 TU_UpdateIndexes *update_indexes,
+							 TupleTableSlot *oldSlot);
+extern TM_Result heap_lock_tuple(Relation relation, ItemPointer tid,
+								 TupleTableSlot *slot,
+								 CommandId cid, LockTupleMode mode,
+								 LockWaitPolicy wait_policy, bool follow_updates,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 7159365e652..01c2a95d890 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -259,6 +259,11 @@ typedef struct TM_IndexDeleteOp
 /* Follow update chain and lock latest version of tuple */
 #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION		(1 << 1)
 
+/* "options" flag bits for table_tuple_update and table_tuple_delete */
+#define TABLE_MODIFY_WAIT			0x0001
+#define TABLE_MODIFY_FETCH_OLD_TUPLE 0x0002
+#define TABLE_MODIFY_LOCK_UPDATED	0x0004
+
 
 /* Typedef for callback function for table_index_build_scan */
 typedef void (*IndexBuildCallback) (Relation index,
@@ -528,10 +533,10 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 bool changingPart,
-								 LazyTupleTableSlot *lockedSlot);
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -540,11 +545,11 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
 								 TU_UpdateIndexes *update_indexes,
-								 LazyTupleTableSlot *lockedSlot);
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1459,7 +1464,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple (or lock last tuple version if lockedSlot is given).
+ * Delete a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1470,13 +1475,21 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	cid - delete command ID (used for visibility test, and stored into
  *		cmax if successful)
  *	crosscheck - if not InvalidSnapshot, also check tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
- *	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1488,18 +1501,18 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  */
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
-				   Snapshot snapshot, Snapshot crosscheck, bool wait,
+				   Snapshot snapshot, Snapshot crosscheck, int options,
 				   TM_FailureData *tmfd, bool changingPart,
-				   LazyTupleTableSlot *lockedSlot)
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart,
-										 lockedSlot);
+										 options, tmfd, changingPart,
+										 oldSlot);
 }
 
 /*
- * Update a tuple (or lock last tuple version if lockedSlot is given).
+ * Update a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1511,14 +1524,22 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	cid - update command ID (used for visibility test, and stored into
  *		cmax/cmin if successful)
  *	crosscheck - if not InvalidSnapshot, also check old tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- * 	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
 
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1537,15 +1558,15 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
+				   int options, TM_FailureData *tmfd, LockTupleMode *lockmode,
 				   TU_UpdateIndexes *update_indexes,
-				   LazyTupleTableSlot *lockedSlot)
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
-										 wait, tmfd,
+										 options, tmfd,
 										 lockmode, update_indexes,
-										 lockedSlot);
+										 oldSlot);
 }
 
 /*
@@ -2061,10 +2082,12 @@ table_scan_sample_next_tuple(TableScanDesc scan,
 
 extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot);
 extern void simple_table_tuple_delete(Relation rel, ItemPointer tid,
-									  Snapshot snapshot);
+									  Snapshot snapshot,
+									  TupleTableSlot *oldSlot);
 extern void simple_table_tuple_update(Relation rel, ItemPointer otid,
 									  TupleTableSlot *slot, Snapshot snapshot,
-									  TU_UpdateIndexes *update_indexes);
+									  TU_UpdateIndexes *update_indexes,
+									  TupleTableSlot *oldSlot);
 
 
 /* ----------------------------------------------------------------------------
diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h
index 430e3ca7ddf..4903b4b7bc2 100644
--- a/src/include/commands/trigger.h
+++ b/src/include/commands/trigger.h
@@ -216,8 +216,8 @@ extern bool ExecBRDeleteTriggers(EState *estate,
 								 TM_FailureData *tmfd);
 extern void ExecARDeleteTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *slot,
 								 TransitionCaptureState *transition_capture,
 								 bool is_crosspart_update);
 extern bool ExecIRDeleteTriggers(EState *estate,
@@ -240,8 +240,8 @@ extern void ExecARUpdateTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
 								 ResultRelInfo *src_partinfo,
 								 ResultRelInfo *dst_partinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *oldslot,
 								 TupleTableSlot *newslot,
 								 List *recheckIndexes,
 								 TransitionCaptureState *transition_capture,
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index c61734a15d4..882be39f029 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -300,44 +300,6 @@ typedef struct MinimalTupleTableSlot
 #define TupIsNull(slot) \
 	((slot) == NULL || TTS_EMPTY(slot))
 
-/*----------
- * LazyTupleTableSlot -- a lazy version of TupleTableSlot.
- *
- * Sometimes caller might need to pass to the function a slot, which most
- * likely will reain undemanded.  Preallocating such slot would be a waste of
- * resources in the  majority of cases.  Lazy slot is aimed to resolve this
- * problem.  It is basically a promise to allocate the slot once it's needed.
- * Once callee needs the slot, it could get it using LAZY_TTS_EVAL(lazySlot)
- * macro.
- */
-typedef struct
-{
-	TupleTableSlot *slot;		/* cached slot or NULL if not yet allocated */
-	TupleTableSlot *(*getSlot) (void *arg); /* callback for slot allocation */
-	void	   *getSlotArg;		/* argument for the callback above */
-} LazyTupleTableSlot;
-
-/*
- * A constructor for the lazy slot.
- */
-#define MAKE_LAZY_TTS(lazySlot, callback, arg) \
-	do { \
-		(lazySlot)->slot = NULL; \
-		(lazySlot)->getSlot = callback; \
-		(lazySlot)->getSlotArg = arg; \
-	} while (false)
-
-/*
- * Macro for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
- * Cached version is used if present.  Use the callback otherwise.
- */
-#define LAZY_TTS_EVAL(lazySlot) \
-	((lazySlot) ? \
-		((lazySlot)->slot ? \
-			(lazySlot)->slot : \
-			((lazySlot)->slot = (lazySlot)->getSlot((lazySlot)->getSlotArg))) : \
-		NULL)
-
 /* in executor/execTuples.c */
 extern TupleTableSlot *MakeTupleTableSlot(TupleDesc tupleDesc,
 										  const TupleTableSlotOps *tts_ops);
diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list
index f5cd394b335..b331d8b1f37 100644
--- a/src/tools/pgindent/typedefs.list
+++ b/src/tools/pgindent/typedefs.list
@@ -955,7 +955,6 @@ GenerationPointer
 GenericCosts
 GenericXLogState
 GeqoPrivateData
-GetEPQSlotArg
 GetForeignJoinPaths_function
 GetForeignModifyBatchSize_function
 GetForeignPaths_function
@@ -1401,7 +1400,6 @@ LagTracker
 LargeObjectDesc
 LastAttnumInfo
 Latch
-LazyTupleTableSlot
 LerpFunc
 LexDescr
 LexemeEntry
-- 
2.37.1 (Apple Git-137.1)

#51Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#50)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi,

On 2023-04-02 03:37:19 +0300, Alexander Korotkov wrote:

On Sat, Apr 1, 2023 at 8:21 AM Andres Freund <andres@anarazel.de> wrote:

Given that the in-tree state has been broken for a week, I think it probably
is time to revert the commits that already went in.

The revised patch is attached. The most notable change is getting rid
of LazyTupleTableSlot. Also get rid of complex computations to detect
how to initialize LazyTupleTableSlot. Instead just pass the oldSlot
as an argument of ExecUpdate() and ExecDelete(). The price for this
is just preallocation of ri_oldTupleSlot before calling ExecDelete().
The slot allocation is quite cheap. After all wrappers it's
table_slot_callbacks(), which is very cheap, single palloc() and few
fields initialization. It doesn't seem reasonable to introduce an
infrastructure to evade this.

I think patch resolves all the major issues you've highlighted. Even
if there are some minor things missed, I'd prefer to push this rather
than reverting the whole work.

Shrug. You're designing new APIs, days before the feature freeze. This just
doesn't seem ready in time for 16. I certainly won't have time to look at it
sufficiently in the next 5 days.

Greetings,

Andres Freund

#52Alexander Korotkov
aekorotkov@gmail.com
In reply to: Andres Freund (#51)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Sun, Apr 2, 2023 at 3:47 AM Andres Freund <andres@anarazel.de> wrote:

On 2023-04-02 03:37:19 +0300, Alexander Korotkov wrote:

On Sat, Apr 1, 2023 at 8:21 AM Andres Freund <andres@anarazel.de> wrote:

Given that the in-tree state has been broken for a week, I think it probably
is time to revert the commits that already went in.

The revised patch is attached. The most notable change is getting rid
of LazyTupleTableSlot. Also get rid of complex computations to detect
how to initialize LazyTupleTableSlot. Instead just pass the oldSlot
as an argument of ExecUpdate() and ExecDelete(). The price for this
is just preallocation of ri_oldTupleSlot before calling ExecDelete().
The slot allocation is quite cheap. After all wrappers it's
table_slot_callbacks(), which is very cheap, single palloc() and few
fields initialization. It doesn't seem reasonable to introduce an
infrastructure to evade this.

I think patch resolves all the major issues you've highlighted. Even
if there are some minor things missed, I'd prefer to push this rather
than reverting the whole work.

Shrug. You're designing new APIs, days before the feature freeze. This just
doesn't seem ready in time for 16. I certainly won't have time to look at it
sufficiently in the next 5 days.

OK. Reverted.

------
Regards,
Alexander Korotkov

#53Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Andres Freund (#51)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Alexander!

On 2023-04-02 03:37:19 +0300, Alexander Korotkov wrote:

On Sat, Apr 1, 2023 at 8:21 AM Andres Freund <andres@anarazel.de> wrote:

Given that the in-tree state has been broken for a week, I think it probably
is time to revert the commits that already went in.

The revised patch is attached. The most notable change is getting rid
of LazyTupleTableSlot. Also get rid of complex computations to detect
how to initialize LazyTupleTableSlot. Instead just pass the oldSlot
as an argument of ExecUpdate() and ExecDelete(). The price for this
is just preallocation of ri_oldTupleSlot before calling ExecDelete().
The slot allocation is quite cheap. After all wrappers it's
table_slot_callbacks(), which is very cheap, single palloc() and few
fields initialization. It doesn't seem reasonable to introduce an
infrastructure to evade this.

I think patch resolves all the major issues you've highlighted. Even
if there are some minor things missed, I'd prefer to push this rather
than reverting the whole work.

I looked into the latest patch v3.
In my view, it addresses all the issues discussed in [1]/messages/by-id/CAPpHfdtwKb5UVXKkDQZYW8nQCODy0fY_S7mV5Z+cg7urL=zDEA@mail.gmail.com. Also, with
the pushing oldslot logic outside code becomes more transparent. I've
added some very minor modifications to the code and comments in patch
v4-0001. Also, I'm for committing Andres' isolation test. I've added
some minor revisions to make the test run routinely among the other
isolation tests. The test could also be made a part of the existing
eval-plan-qual.spec, but I have left it separate yet.

Also, I think that signatures of ExecUpdate() and ExecDelete()
functions, especially the last one are somewhat overloaded with
different status bool variables added by different authors on
different occasions. If they are combined into some kind of status
variable, it would be nice. But as this doesn't touch API, is not
related to the current update/delete optimization, it could be
modified anytime in the future as well.

The changes that indeed touch API are adding TupleTableSlot and
conversion of bool wait flag into now four-state options variable for
tuple_update(), tuple_delete(), heap_update(), heap_delete() and
heap_lock_tuple() and a couple of Exec*DeleteTriggers(). I think they
are justified.

One thing that is not clear to me is that we pass oldSlot into
simple_table_tuple_update() whereas as per the comment on this
function "concurrent updates of
the target tuple is not expected (for example, because we have a lock
on the relation associated with the tuple)". It seems not to break
anything but maybe this could be simplified.

Overall I think the patch is good enough.

Regards,
Pavel Borisov,
Supabase.

[1]: /messages/by-id/CAPpHfdtwKb5UVXKkDQZYW8nQCODy0fY_S7mV5Z+cg7urL=zDEA@mail.gmail.com

Attachments:

v4-0002-Add-EvalPlanQual-delete-returning-isolation-test.patchapplication/octet-stream; name=v4-0002-Add-EvalPlanQual-delete-returning-isolation-test.patchDownload
From ff5910b02873b2186c28d1078f53d0812624c5f4 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Wed, 22 Mar 2023 16:47:09 -0700
Subject: [PATCH v4 2/2] Add EvalPlanQual delete returning isolation test

Author: Andres Freund
Reviewed-by: Pavel Borisov
Discussion: https://www.postgresql.org/message-id/flat/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
---
 .../isolation/expected/eval-plan-qual-2.out   | 37 +++++++++++++++++++
 src/test/isolation/isolation_schedule         |  1 +
 .../isolation/specs/eval-plan-qual-2.spec     | 30 +++++++++++++++
 3 files changed, 68 insertions(+)
 create mode 100644 src/test/isolation/expected/eval-plan-qual-2.out
 create mode 100644 src/test/isolation/specs/eval-plan-qual-2.spec

diff --git a/src/test/isolation/expected/eval-plan-qual-2.out b/src/test/isolation/expected/eval-plan-qual-2.out
new file mode 100644
index 00000000000..117a3d3be8d
--- /dev/null
+++ b/src/test/isolation/expected/eval-plan-qual-2.out
@@ -0,0 +1,37 @@
+Parsed test spec with 3 sessions
+
+starting permutation: read_u wx2 wb1 c2 c1 read_u read
+step read_u: SELECT * FROM accounts;
+accountid|balance|balance2
+---------+-------+--------
+checking |    600|    1200
+savings  |    600|    1200
+(2 rows)
+
+step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
+balance
+-------
+   1050
+(1 row)
+
+step wb1: DELETE FROM accounts WHERE balance = 600 RETURNING *; <waiting ...>
+step c2: COMMIT;
+step wb1: <... completed>
+accountid|balance|balance2
+---------+-------+--------
+savings  |    600|    1200
+(1 row)
+
+step c1: COMMIT;
+step read_u: SELECT * FROM accounts;
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
+step read: SELECT * FROM accounts ORDER BY accountid;
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule
index 4fc56ae99c9..c75547529e6 100644
--- a/src/test/isolation/isolation_schedule
+++ b/src/test/isolation/isolation_schedule
@@ -36,6 +36,7 @@ test: fk-partitioned-2
 test: fk-snapshot
 test: subxid-overflow
 test: eval-plan-qual
+test: eval-plan-qual-2
 test: eval-plan-qual-trigger
 test: lock-update-delete
 test: lock-update-traversal
diff --git a/src/test/isolation/specs/eval-plan-qual-2.spec b/src/test/isolation/specs/eval-plan-qual-2.spec
new file mode 100644
index 00000000000..30447bef24a
--- /dev/null
+++ b/src/test/isolation/specs/eval-plan-qual-2.spec
@@ -0,0 +1,30 @@
+setup
+{
+ CREATE TABLE accounts (accountid text PRIMARY KEY, balance numeric not null,
+   balance2 numeric GENERATED ALWAYS AS (balance * 2) STORED);
+ INSERT INTO accounts VALUES ('checking', 600), ('savings', 600);
+}
+
+teardown
+{
+ DROP TABLE accounts;
+}
+
+session s1
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step wb1	{ DELETE FROM accounts WHERE balance = 600 RETURNING *; }
+step c1		{ COMMIT; }
+
+session s2
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step wx2	{ UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; }
+step c2	{ COMMIT; }
+
+session s3
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step read	{ SELECT * FROM accounts ORDER BY accountid; }
+step read_u	{ SELECT * FROM accounts; }
+
+teardown    { COMMIT; }
+
+permutation read_u wx2 wb1 c2 c1 read_u read
-- 
2.37.1 (Apple Git-137.1)

v4-0001-Revise-changes-in-764da7710b-and-11470f544e.patchapplication/octet-stream; name=v4-0001-Revise-changes-in-764da7710b-and-11470f544e.patchDownload
From b6cb833a6fd4d4e0c87d3e4e3fce30910eba874a Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Sun, 2 Apr 2023 03:26:35 +0300
Subject: [PATCH v4 1/2] Revise changes in 764da7710b and 11470f544e

The mentioned commits evade extra tuple re-fetching and allow locking last
versions of updated tuples in tuple_update() and tuple_delete().

This commit improves the things in the following ways.
 * tuple_update() and tuple_delete() can now fetch the old tuple version not
   only after lock, but also after successful UPDATE/DELETE.
 * Avoid tuple re-fetching in more general case including after row triggers.
 * Improve code API in heap_lock_tuple.  Automatically detect prefetched tuple
   in slot to avoid the extra work on reading the buffer.
 * Remove LazyTupleTableSlot.  It seems unreasonable complication for evading
   slot allocation, which is quite cheap.

Reported-by: Andres Freund
Discussion: https://postgr.es/m/20230323003003.plgaxjqahjgkuxrk%40awork3.anarazel.de
---
 src/backend/access/heap/heapam.c         | 205 +++++++++++++-----
 src/backend/access/heap/heapam_handler.c | 143 +++++--------
 src/backend/access/table/tableam.c       |  24 ++-
 src/backend/commands/trigger.c           |  55 ++---
 src/backend/executor/execReplication.c   |  19 +-
 src/backend/executor/nodeModifyTable.c   | 253 +++++++++--------------
 src/include/access/heapam.h              |  19 +-
 src/include/access/tableam.h             |  67 ++++--
 src/include/commands/trigger.h           |   4 +-
 src/include/executor/tuptable.h          |  38 ----
 src/tools/pgindent/typedefs.list         |   2 -
 11 files changed, 418 insertions(+), 411 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index f7d9ce59a47..3f1f23997fb 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2449,10 +2449,11 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 }
 
 /*
- *	heap_delete - delete a tuple
+ *	heap_delete - delete a tuple, optionally fetching it into a slot
  *
  * See table_tuple_delete() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2461,8 +2462,9 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
  */
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
-			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			CommandId cid, Snapshot crosscheck, int options,
+			TM_FailureData *tmfd, bool changingPart,
+			TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2540,7 +2542,7 @@ l1:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to delete invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -2676,7 +2678,30 @@ l1:
 			tmfd->cmax = HeapTupleHeaderGetCmax(tp.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resources on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = tp;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(tp.t_self), LockTupleExclusive);
 		if (vmbuffer != InvalidBuffer)
@@ -2850,8 +2875,24 @@ l1:
 	 */
 	CacheInvalidateHeapTuple(relation, &tp, NULL);
 
-	/* Now we can release the buffer */
-	ReleaseBuffer(buffer);
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = tp;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
 
 	/*
 	 * Release the lmgr tuple lock, if we had it.
@@ -2883,8 +2924,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, false /* changingPart */ , NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2911,10 +2952,11 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 }
 
 /*
- *	heap_update - replace a tuple
+ *	heap_update - replace a tuple, optionally fetching it into a slot
  *
  * See table_tuple_update() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2923,9 +2965,9 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  */
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
-			CommandId cid, Snapshot crosscheck, bool wait,
+			CommandId cid, Snapshot crosscheck, int options,
 			TM_FailureData *tmfd, LockTupleMode *lockmode,
-			TU_UpdateIndexes *update_indexes)
+			TU_UpdateIndexes *update_indexes, TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3102,7 +3144,7 @@ l2:
 	result = HeapTupleSatisfiesUpdate(&oldtup, cid, buffer);
 
 	/* see below about the "no wait" case */
-	Assert(result != TM_BeingModified || wait);
+	Assert(result != TM_BeingModified || (options & TABLE_MODIFY_WAIT));
 
 	if (result == TM_Invisible)
 	{
@@ -3111,7 +3153,7 @@ l2:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to update invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -3313,7 +3355,30 @@ l2:
 			tmfd->cmax = HeapTupleHeaderGetCmax(oldtup.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = oldtup;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(oldtup.t_self), *lockmode);
 		if (vmbuffer != InvalidBuffer)
@@ -3791,7 +3856,26 @@ l2:
 	/* Now we can release the buffer(s) */
 	if (newbuf != buffer)
 		ReleaseBuffer(newbuf);
-	ReleaseBuffer(buffer);
+
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = oldtup;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
+
 	if (BufferIsValid(vmbuffer_new))
 		ReleaseBuffer(vmbuffer_new);
 	if (BufferIsValid(vmbuffer))
@@ -3999,8 +4083,8 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, &lockmode, update_indexes);
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, &lockmode, update_indexes, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4063,12 +4147,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  *		tuples.
  *
  * Output parameters:
- *	*tuple: all fields filled in
- *	*buffer: set to buffer holding tuple (pinned but not locked at exit)
+ *	*slot: BufferHeapTupleTableSlot filled with tuple
  *	*tmfd: filled in failure cases (see below)
  *
  * Function results are the same as the ones for table_tuple_lock().
  *
+ * If *slot already contains the target tuple, it takes advantage on that by
+ * skipping the ReadBuffer() call.
+ *
  * In the failure cases other than TM_Invisible, the routine fills
  * *tmfd with the tuple's t_ctid, t_xmax (resolving a possible MultiXact,
  * if necessary), and t_cmax (the last only for TM_SelfModified,
@@ -4079,15 +4165,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  * See README.tuplock for a thorough explanation of this mechanism.
  */
 TM_Result
-heap_lock_tuple(Relation relation, HeapTuple tuple,
+heap_lock_tuple(Relation relation, ItemPointer tid, TupleTableSlot *slot,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				bool follow_updates, TM_FailureData *tmfd)
 {
 	TM_Result	result;
-	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
+	Buffer		buffer;
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 	TransactionId xid,
@@ -4099,8 +4184,24 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	bool		skip_tuple_lock = false;
 	bool		have_tuple_lock = false;
 	bool		cleared_all_frozen = false;
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	HeapTuple	tuple = &bslot->base.tupdata;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	/* Take advantage if slot already contains the relevant tuple  */
+	if (!TTS_EMPTY(slot) &&
+		slot->tts_tableOid == relation->rd_id &&
+		ItemPointerCompare(&slot->tts_tid, tid) == 0 &&
+		BufferIsValid(bslot->buffer))
+	{
+		buffer = bslot->buffer;
+		IncrBufferRefCount(buffer);
+	}
+	else
+	{
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	}
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4109,21 +4210,22 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
+	tuple->t_self = *tid;
 	tuple->t_data = (HeapTupleHeader) PageGetItem(page, lp);
 	tuple->t_len = ItemIdGetLength(lp);
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4152,7 +4254,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4304,12 +4406,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4344,7 +4446,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4372,7 +4474,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4384,7 +4486,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4412,7 +4514,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4434,7 +4536,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4459,7 +4561,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4485,7 +4587,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4525,7 +4627,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4551,12 +4653,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4578,7 +4680,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4637,9 +4739,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4702,7 +4804,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4722,7 +4824,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4743,7 +4845,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4761,6 +4863,9 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	/* Put the target tuple to the slot */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 97b5daee920..5781096203d 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,11 +45,11 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
-static TM_Result heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-											Snapshot snapshot, TupleTableSlot *slot,
-											CommandId cid, LockTupleMode mode,
-											LockWaitPolicy wait_policy, uint8 flags,
-											TM_FailureData *tmfd, bool updated);
+static TM_Result heapam_tuple_lock(Relation relation, ItemPointer tid,
+								   Snapshot snapshot, TupleTableSlot *slot,
+								   CommandId cid, LockTupleMode mode,
+								   LockWaitPolicy wait_policy, uint8 flags,
+								   TM_FailureData *tmfd);
 
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
@@ -304,9 +304,9 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
-					Snapshot snapshot, Snapshot crosscheck, bool wait,
+					Snapshot snapshot, Snapshot crosscheck, int options,
 					TM_FailureData *tmfd, bool changingPart,
-					LazyTupleTableSlot *lockedSlot)
+					TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 
@@ -315,33 +315,32 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	result = heap_delete(relation, tid, cid, crosscheck, wait,
-						 tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, options,
+						 tmfd, changingPart, oldSlot);
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of delete should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * delete should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
-		TupleTableSlot *evalSlot;
-
-		Assert(wait);
-
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
-		result = heapam_tuple_lock_internal(relation, tid, snapshot,
-											evalSlot, cid, LockTupleExclusive,
-											LockWaitBlock,
-											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_delete().
+		 */
+		result = heapam_tuple_lock(relation, tid, snapshot,
+								   oldSlot, cid, LockTupleExclusive,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -351,9 +350,9 @@ heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
 static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-					bool wait, TM_FailureData *tmfd,
+					int options, TM_FailureData *tmfd,
 					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
-					LazyTupleTableSlot *lockedSlot)
+					TupleTableSlot *oldSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -363,8 +362,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode, update_indexes);
+	result = heap_update(relation, otid, tuple, cid, crosscheck, options,
+						 tmfd, lockmode, update_indexes, oldSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -373,8 +372,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	 * Note: heap_update returns the tid (location) of the new tuple in the
 	 * t_self field.
 	 *
-	 * If the update is not HOT, we must update all indexes. If the update
-	 * is HOT, it could be that we updated summarized columns, so we either
+	 * If the update is not HOT, we must update all indexes. If the update is
+	 * HOT, it could be that we updated summarized columns, so we either
 	 * update only summarized indexes, or none at all.
 	 */
 	if (result != TM_Ok)
@@ -393,28 +392,27 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 
 	/*
 	 * If the tuple has been concurrently updated, then get the lock on it.
-	 * (Do this if caller asked for tat by providing a 'lockedSlot'.) With the
-	 * lock held retry of update should succeed even if there are more
-	 * concurrent update attempts.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * update should succeed even if there are more concurrent update
+	 * attempts.
 	 */
-	if (result == TM_Updated && lockedSlot)
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
 	{
-		TupleTableSlot *evalSlot;
-
-		Assert(wait);
-
-		evalSlot = LAZY_TTS_EVAL(lockedSlot);
-		result = heapam_tuple_lock_internal(relation, otid, snapshot,
-											evalSlot, cid, *lockmode,
-											LockWaitBlock,
-											TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											tmfd, true);
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_update().
+		 */
+		result = heapam_tuple_lock(relation, otid, snapshot,
+								   oldSlot, cid, *lockmode,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
 
 		if (result == TM_Ok)
-		{
-			tmfd->traversed = true;
 			return TM_Updated;
-		}
 	}
 
 	return result;
@@ -425,26 +423,9 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 				  TupleTableSlot *slot, CommandId cid, LockTupleMode mode,
 				  LockWaitPolicy wait_policy, uint8 flags,
 				  TM_FailureData *tmfd)
-{
-	return heapam_tuple_lock_internal(relation, tid, snapshot, slot, cid,
-									  mode, wait_policy, flags, tmfd, false);
-}
-
-/*
- * This routine does the work for heapam_tuple_lock(), but also support
- * `updated` argument to re-use the work done by heapam_tuple_update() or
- * heapam_tuple_delete() on figuring out that tuple was concurrently updated.
- */
-static TM_Result
-heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
-						   Snapshot snapshot, TupleTableSlot *slot,
-						   CommandId cid, LockTupleMode mode,
-						   LockWaitPolicy wait_policy, uint8 flags,
-						   TM_FailureData *tmfd, bool updated)
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer = InvalidBuffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
 
@@ -454,27 +435,14 @@ heapam_tuple_lock_internal(Relation relation, ItemPointer tid,
 	Assert(TTS_IS_BUFFERTUPLE(slot));
 
 tuple_lock_retry:
-	tuple->t_self = *tid;
-	if (!updated)
-		result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-								 follow_updates, &buffer, tmfd);
-	else
-		result = TM_Updated;
+	result = heap_lock_tuple(relation, tid, slot, cid, mode, wait_policy,
+							 follow_updates, tmfd);
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
 	{
-		if (!updated)
-		{
-			/* Should not encounter speculative tuple on recheck */
-			Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
-
-			ReleaseBuffer(buffer);
-		}
-		else
-		{
-			updated = false;
-		}
+		/* Should not encounter speculative tuple on recheck */
+		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
@@ -497,6 +465,8 @@ tuple_lock_retry:
 			InitDirtySnapshot(SnapshotDirty);
 			for (;;)
 			{
+				Buffer		buffer = InvalidBuffer;
+
 				if (ItemPointerIndicatesMovedPartitions(tid))
 					ereport(ERROR,
 							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
@@ -591,7 +561,7 @@ tuple_lock_retry:
 					/*
 					 * This is a live tuple, so try to lock it again.
 					 */
-					ReleaseBuffer(buffer);
+					ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
 					goto tuple_lock_retry;
 				}
 
@@ -602,7 +572,7 @@ tuple_lock_retry:
 				 */
 				if (tuple->t_data == NULL)
 				{
-					Assert(!BufferIsValid(buffer));
+					ReleaseBuffer(buffer);
 					return TM_Deleted;
 				}
 
@@ -655,9 +625,6 @@ tuple_lock_retry:
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
 	return result;
 }
 
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index 2a1a6ced3c7..0167a2fb1fc 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -297,17 +297,23 @@ simple_table_tuple_insert(Relation rel, TupleTableSlot *slot)
  * via ereport().
  */
 void
-simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
+simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_delete(rel, tid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, false /* changingPart */ ,
-								NULL);
+								oldSlot);
 
 	switch (result)
 	{
@@ -346,18 +352,24 @@ void
 simple_table_tuple_update(Relation rel, ItemPointer otid,
 						  TupleTableSlot *slot,
 						  Snapshot snapshot,
-						  TU_UpdateIndexes *update_indexes)
+						  TU_UpdateIndexes *update_indexes,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
 	LockTupleMode lockmode;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_update(rel, otid, slot,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
+								options,
 								&tmfd, &lockmode, update_indexes,
-								NULL);
+								oldSlot);
 
 	switch (result)
 	{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 0f2de7e2e01..5c4f8bae188 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2784,8 +2784,8 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate,
 void
 ExecARDeleteTriggers(EState *estate,
 					 ResultRelInfo *relinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *slot,
 					 TransitionCaptureState *transition_capture,
 					 bool is_crosspart_update)
 {
@@ -2794,20 +2794,11 @@ ExecARDeleteTriggers(EState *estate,
 	if ((trigdesc && trigdesc->trig_delete_after_row) ||
 		(transition_capture && transition_capture->tcs_delete_old_table))
 	{
-		TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
-
-		Assert(HeapTupleIsValid(fdw_trigtuple) ^ ItemPointerIsValid(tupleid));
-		if (fdw_trigtuple == NULL)
-			GetTupleForTrigger(estate,
-							   NULL,
-							   relinfo,
-							   tupleid,
-							   LockTupleExclusive,
-							   slot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else
+		/*
+		 * Put the FDW old tuple to the slot.  Otherwise, caller is expected
+		 * to have old tuple alredy fetched to the slot.
+		 */
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, slot, false);
 
 		AfterTriggerSaveEvent(estate, relinfo, NULL, NULL,
@@ -3080,18 +3071,17 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
  * Note: 'src_partinfo' and 'dst_partinfo', when non-NULL, refer to the source
  * and destination partitions, respectively, of a cross-partition update of
  * the root partitioned table mentioned in the query, given by 'relinfo'.
- * 'tupleid' in that case refers to the ctid of the "old" tuple in the source
- * partition, and 'newslot' contains the "new" tuple in the destination
- * partition.  This interface allows to support the requirements of
- * ExecCrossPartitionUpdateForeignKey(); is_crosspart_update must be true in
- * that case.
+ * 'oldslot' contains the "old" tuple in the source partition, and 'newslot'
+ * contains the "new" tuple in the destination partition.  This interface
+ * allows to support the requirements of ExecCrossPartitionUpdateForeignKey();
+ * is_crosspart_update must be true in that case.
  */
 void
 ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 					 ResultRelInfo *src_partinfo,
 					 ResultRelInfo *dst_partinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *oldslot,
 					 TupleTableSlot *newslot,
 					 List *recheckIndexes,
 					 TransitionCaptureState *transition_capture,
@@ -3110,29 +3100,14 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 		 * separately for DELETE and INSERT to capture transition table rows.
 		 * In such case, either old tuple or new tuple can be NULL.
 		 */
-		TupleTableSlot *oldslot;
-		ResultRelInfo *tupsrc;
-
 		Assert((src_partinfo != NULL && dst_partinfo != NULL) ||
 			   !is_crosspart_update);
 
-		tupsrc = src_partinfo ? src_partinfo : relinfo;
-		oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
-
-		if (fdw_trigtuple == NULL && ItemPointerIsValid(tupleid))
-			GetTupleForTrigger(estate,
-							   NULL,
-							   tupsrc,
-							   tupleid,
-							   LockTupleExclusive,
-							   oldslot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else if (fdw_trigtuple != NULL)
+		if (fdw_trigtuple != NULL)
+		{
+			Assert(oldslot);
 			ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false);
-		else
-			ExecClearTuple(oldslot);
+		}
 
 		AfterTriggerSaveEvent(estate, relinfo,
 							  src_partinfo, dst_partinfo,
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index 9dd71684615..31ff5cd9f41 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -545,6 +545,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 	{
 		List	   *recheckIndexes = NIL;
 		TU_UpdateIndexes update_indexes;
+		TupleTableSlot *oldSlot = NULL;
 
 		/* Compute stored generated columns */
 		if (rel->rd_att->constr &&
@@ -558,8 +559,12 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		if (rel->rd_rel->relispartition)
 			ExecPartitionCheck(resultRelInfo, slot, estate, true);
 
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_update_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		simple_table_tuple_update(rel, tid, slot, estate->es_snapshot,
-								  &update_indexes);
+								  &update_indexes, oldSlot);
 
 		if (resultRelInfo->ri_NumIndices > 0 && (update_indexes != TU_None))
 			recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
@@ -570,7 +575,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		/* AFTER ROW UPDATE Triggers */
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tid, NULL, slot,
+							 NULL, oldSlot, slot,
 							 recheckIndexes, NULL, false);
 
 		list_free(recheckIndexes);
@@ -604,12 +609,18 @@ ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
 
 	if (!skip_tuple)
 	{
+		TupleTableSlot *oldSlot = NULL;
+
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_delete_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		/* OK, delete the tuple */
-		simple_table_tuple_delete(rel, tid, estate->es_snapshot);
+		simple_table_tuple_delete(rel, tid, estate->es_snapshot, oldSlot);
 
 		/* AFTER ROW DELETE Triggers */
 		ExecARDeleteTriggers(estate, resultRelInfo,
-							 tid, NULL, NULL, false);
+							 NULL, oldSlot, NULL, false);
 	}
 }
 
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index e3503756818..de49e48bae6 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -111,7 +111,7 @@ typedef struct UpdateContext
 {
 	bool		updated;		/* did UPDATE actually occur? */
 	bool		crossPartUpdate;	/* was it a cross-partition update? */
-	TU_UpdateIndexes updateIndexes;	/* Which index updates are required? */
+	TU_UpdateIndexes updateIndexes; /* Which index updates are required? */
 
 	/*
 	 * Lock mode to acquire on the latest tuple version before performing
@@ -133,7 +133,7 @@ static void ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 											   ResultRelInfo *sourcePartInfo,
 											   ResultRelInfo *destPartInfo,
 											   ItemPointer tupleid,
-											   TupleTableSlot *oldslot,
+											   TupleTableSlot *oldSlot,
 											   TupleTableSlot *newslot);
 static bool ExecOnConflictUpdate(ModifyTableContext *context,
 								 ResultRelInfo *resultRelInfo,
@@ -570,6 +570,10 @@ ExecInitInsertProjection(ModifyTableState *mtstate,
 	resultRelInfo->ri_newTupleSlot =
 		table_slot_create(resultRelInfo->ri_RelationDesc,
 						  &estate->es_tupleTable);
+	if (node->onConflictAction == ONCONFLICT_UPDATE)
+		resultRelInfo->ri_oldTupleSlot =
+			table_slot_create(resultRelInfo->ri_RelationDesc,
+							  &estate->es_tupleTable);
 
 	/* Build ProjectionInfo if needed (it probably isn't). */
 	if (need_projection)
@@ -1160,7 +1164,7 @@ ExecInsert(ModifyTableContext *context,
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
 							 NULL,
-							 NULL,
+							 resultRelInfo->ri_oldTupleSlot,
 							 slot,
 							 NULL,
 							 mtstate->mt_transition_capture,
@@ -1324,62 +1328,28 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	return true;
 }
 
-/*
- * The implementation for LazyTupleTableSlot wrapper for EPQ slot to be passed
- * to table_tuple_update()/table_tuple_delete().
- */
-typedef struct
-{
-	EPQState   *epqstate;
-	ResultRelInfo *resultRelInfo;
-} GetEPQSlotArg;
-
-static TupleTableSlot *
-GetEPQSlot(void *arg)
-{
-	GetEPQSlotArg *slotArg = (GetEPQSlotArg *) arg;
-
-	return EvalPlanQualSlot(slotArg->epqstate,
-							slotArg->resultRelInfo->ri_RelationDesc,
-							slotArg->resultRelInfo->ri_RangeTableIndex);
-}
-
 /*
  * ExecDeleteAct -- subroutine for ExecDelete
  *
  * Actually delete the tuple from a plain table.
  *
- * If the 'lockUpdated' flag is set and the target tuple is updated, then
- * the latest version gets locked and fetched into the EPQ slot.
- *
  * Caller is in charge of doing EvalPlanQual as necessary
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart, bool lockUpdated)
+			  ItemPointer tupleid, bool changingPart, int options,
+			  TupleTableSlot *oldSlot)
 {
 	EState	   *estate = context->estate;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
-	if (lockUpdated)
-	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	return table_tuple_delete(resultRelInfo->ri_RelationDesc, tupleid,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
-							  true /* wait for commit */ ,
+							  options /* wait for commit */ ,
 							  &context->tmfd,
 							  changingPart,
-							  lazyEPQSlotPtr);
+							  oldSlot);
 }
 
 /*
@@ -1391,7 +1361,8 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static void
 ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-				   ItemPointer tupleid, HeapTuple oldtuple, bool changingPart)
+				   ItemPointer tupleid, HeapTuple oldtuple,
+				   TupleTableSlot *slot, bool changingPart)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	EState	   *estate = context->estate;
@@ -1409,8 +1380,8 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	{
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tupleid, oldtuple,
-							 NULL, NULL, mtstate->mt_transition_capture,
+							 oldtuple,
+							 slot, NULL, NULL, mtstate->mt_transition_capture,
 							 false);
 
 		/*
@@ -1421,10 +1392,30 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 
 	/* AFTER ROW DELETE Triggers */
-	ExecARDeleteTriggers(estate, resultRelInfo, tupleid, oldtuple,
+	ExecARDeleteTriggers(estate, resultRelInfo, oldtuple, slot,
 						 ar_delete_trig_tcs, changingPart);
 }
 
+/*
+ * Initializes the tuple slot in a ResultRelInfo for DELETE action.
+ *
+ * We mark 'projectNewInfoValid' even though the projections themselves
+ * are not initialized here.
+ */
+static void
+ExecInitDeleteTupleSlot(ModifyTableState *mtstate,
+						ResultRelInfo *resultRelInfo)
+{
+	EState	   *estate = mtstate->ps.state;
+
+	Assert(!resultRelInfo->ri_projectNewInfoValid);
+
+	resultRelInfo->ri_oldTupleSlot =
+		table_slot_create(resultRelInfo->ri_RelationDesc,
+						  &estate->es_tupleTable);
+	resultRelInfo->ri_projectNewInfoValid = true;
+}
+
 /* ----------------------------------------------------------------
  *		ExecDelete
  *
@@ -1452,6 +1443,7 @@ ExecDelete(ModifyTableContext *context,
 		   ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid,
 		   HeapTuple oldtuple,
+		   TupleTableSlot *oldSlot,
 		   bool processReturning,
 		   bool changingPart,
 		   bool canSetTag,
@@ -1514,6 +1506,11 @@ ExecDelete(ModifyTableContext *context,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * delete the tuple
 		 *
@@ -1525,7 +1522,7 @@ ExecDelete(ModifyTableContext *context,
 		 */
 ldelete:
 		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
-							   !IsolationUsesXactSnapshot());
+							   options, oldSlot);
 
 		switch (result)
 		{
@@ -1569,7 +1566,6 @@ ldelete:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
 
 					if (IsolationUsesXactSnapshot())
@@ -1578,34 +1574,14 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * ExecDeleteAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
-					 */
-					EvalPlanQualBegin(context->epqstate);
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					/*
-					 * Save locked table for further processing for RETURNING
-					 * clause.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					if (processReturning &&
-						resultRelInfo->ri_projectReturning &&
-						!resultRelInfo->ri_FdwRoutine)
-					{
-						TupleTableSlot *returningSlot;
-
-						returningSlot = ExecGetReturningSlot(estate,
-															 resultRelInfo);
-						ExecCopySlot(returningSlot, inputslot);
-						ExecMaterializeSlot(returningSlot);
-					}
-
 					Assert(context->tmfd.traversed);
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlot);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
@@ -1654,7 +1630,8 @@ ldelete:
 	if (tupleDeleted)
 		*tupleDeleted = true;
 
-	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple, changingPart);
+	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple,
+					   oldSlot, changingPart);
 
 	/* Process RETURNING if present and if requested */
 	if (processReturning && resultRelInfo->ri_projectReturning)
@@ -1672,22 +1649,13 @@ ldelete:
 		}
 		else
 		{
-			/*
-			 * Tuple can be already fetched to the returning slot in case
-			 * we've previously locked it.  Fetch the tuple only if the slot
-			 * is empty.
-			 */
+			/* Copy old tuple to the returning slot */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
-			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
-			}
-			else if (TupIsNull(slot))
-			{
-				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
-												   SnapshotAny, slot))
-					elog(ERROR, "failed to fetch deleted tuple for DELETE RETURNING");
-			}
+			else
+				ExecCopySlot(slot, oldSlot);
+			Assert(!TupIsNull(slot));
 		}
 
 		rslot = ExecProcessReturning(resultRelInfo, slot, context->planSlot);
@@ -1786,12 +1754,16 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 		MemoryContextSwitchTo(oldcxt);
 	}
 
+	/* Make sure ri_oldTupleSlot is initialized. */
+	if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+		ExecInitUpdateProjection(mtstate, resultRelInfo);
+
 	/*
 	 * Row movement, part 1.  Delete the tuple, but skip RETURNING processing.
 	 * We want to return rows from INSERT.
 	 */
 	ExecDelete(context, resultRelInfo,
-			   tupleid, oldtuple,
+			   tupleid, oldtuple, resultRelInfo->ri_oldTupleSlot,
 			   false,			/* processReturning */
 			   true,			/* changingPart */
 			   false,			/* canSetTag */
@@ -1832,21 +1804,13 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 			return true;
 		else
 		{
-			/* Fetch the most recent version of old tuple. */
-			TupleTableSlot *oldSlot;
-
-			/* ... but first, make sure ri_oldTupleSlot is initialized. */
-			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-				ExecInitUpdateProjection(mtstate, resultRelInfo);
-			oldSlot = resultRelInfo->ri_oldTupleSlot;
-			if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
-											   tupleid,
-											   SnapshotAny,
-											   oldSlot))
-				elog(ERROR, "failed to fetch tuple being updated");
-			/* and project the new tuple to retry the UPDATE with */
+			/*
+			 * ExecDelete already fetches the most recent version of old tuple
+			 * to resultRelInfo->ri_RelationDesc.  So, just project the new
+			 * tuple to retry the UPDATE with.
+			 */
 			*retry_slot = ExecGetUpdateNewTuple(resultRelInfo, epqslot,
-												oldSlot);
+												resultRelInfo->ri_oldTupleSlot);
 			return false;
 		}
 	}
@@ -1965,15 +1929,13 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, bool lockUpdated, UpdateContext *updateCxt)
+			  bool canSetTag, int options, TupleTableSlot *oldSlot,
+			  UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
 	bool		partition_constraint_failed;
 	TM_Result	result;
-	GetEPQSlotArg slotArg = {context->epqstate, resultRelInfo};
-	LazyTupleTableSlot lazyEPQSlot,
-			   *lazyEPQSlotPtr;
 
 	updateCxt->crossPartUpdate = false;
 
@@ -2060,7 +2022,8 @@ lreplace:
 				ExecCrossPartitionUpdateForeignKey(context,
 												   resultRelInfo,
 												   insert_destrel,
-												   tupleid, slot,
+												   tupleid,
+												   resultRelInfo->ri_oldTupleSlot,
 												   inserted_tuple);
 
 			return TM_Ok;
@@ -2099,23 +2062,14 @@ lreplace:
 	 * for referential integrity updates in transaction-snapshot mode
 	 * transactions.
 	 */
-	if (lockUpdated)
-	{
-		MAKE_LAZY_TTS(&lazyEPQSlot, GetEPQSlot, &slotArg);
-		lazyEPQSlotPtr = &lazyEPQSlot;
-	}
-	else
-	{
-		lazyEPQSlotPtr = NULL;
-	}
 	result = table_tuple_update(resultRelationDesc, tupleid, slot,
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
-								true /* wait for commit */ ,
+								options /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
 								&updateCxt->updateIndexes,
-								lazyEPQSlotPtr);
+								oldSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2131,7 +2085,8 @@ lreplace:
 static void
 ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 				   ResultRelInfo *resultRelInfo, ItemPointer tupleid,
-				   HeapTuple oldtuple, TupleTableSlot *slot)
+				   HeapTuple oldtuple, TupleTableSlot *slot,
+				   TupleTableSlot *oldSlot)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	List	   *recheckIndexes = NIL;
@@ -2147,7 +2102,7 @@ ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 	/* AFTER ROW UPDATE Triggers */
 	ExecARUpdateTriggers(context->estate, resultRelInfo,
 						 NULL, NULL,
-						 tupleid, oldtuple, slot,
+						 oldtuple, oldSlot, slot,
 						 recheckIndexes,
 						 mtstate->operation == CMD_INSERT ?
 						 mtstate->mt_oc_transition_capture :
@@ -2236,7 +2191,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 	/* Perform the root table's triggers. */
 	ExecARUpdateTriggers(context->estate,
 						 rootRelInfo, sourcePartInfo, destPartInfo,
-						 tupleid, NULL, newslot, NIL, NULL, true);
+						 NULL, oldslot, newslot, NIL, NULL, true);
 }
 
 /* ----------------------------------------------------------------
@@ -2259,6 +2214,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
  *		no relevant triggers.
  *
  *		slot contains the new tuple value to be stored.
+ *		oldSlot is the slot to store the old tuple.
  *		planSlot is the output of the ModifyTable's subplan; we use it
  *		to access values from other input tables (for RETURNING),
  *		row-ID junk columns, etc.
@@ -2269,7 +2225,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag, bool locked)
+		   TupleTableSlot *oldSlot, bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2322,6 +2278,11 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!locked && !IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * If we generate a new candidate tuple after EvalPlanQual testing, we
 		 * must loop back here to try again.  (We don't need to redo triggers,
@@ -2331,8 +2292,7 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, !IsolationUsesXactSnapshot(),
-							   &updateCxt);
+							   canSetTag, options, oldSlot, &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2383,9 +2343,7 @@ redo_act:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
@@ -2394,35 +2352,20 @@ redo_act:
 					Assert(!locked);
 
 					/*
-					 * ExecUpdateAct() has already locked the old tuple for
-					 * us. Now we need to copy it to the right slot.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					/* Make sure ri_oldTupleSlot is initialized. */
-					if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-						ExecInitUpdateProjection(context->mtstate,
-												 resultRelInfo);
-
-					/*
-					 * Save the locked tuple for further calculation of the
-					 * new tuple.
-					 */
-					oldSlot = resultRelInfo->ri_oldTupleSlot;
-					ExecCopySlot(oldSlot, inputslot);
-					ExecMaterializeSlot(oldSlot);
 					Assert(context->tmfd.traversed);
-
 					epqslot = EvalPlanQual(context->epqstate,
 										   resultRelationDesc,
 										   resultRelInfo->ri_RangeTableIndex,
-										   inputslot);
+										   oldSlot);
 					if (TupIsNull(epqslot))
 						/* Tuple not passing quals anymore, exiting... */
 						return NULL;
 					slot = ExecGetUpdateNewTuple(resultRelInfo,
-												 epqslot, oldSlot);
+												 epqslot,
+												 oldSlot);
 					goto redo_act;
 				}
 
@@ -2447,7 +2390,7 @@ redo_act:
 		(estate->es_processed)++;
 
 	ExecUpdateEpilogue(context, &updateCxt, resultRelInfo, tupleid, oldtuple,
-					   slot);
+					   slot, oldSlot);
 
 	/* Process RETURNING if present */
 	if (resultRelInfo->ri_projectReturning)
@@ -2665,6 +2608,7 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
+							existing,
 							canSetTag, true);
 
 	/*
@@ -2803,7 +2747,6 @@ lmerge_matched:
 	 * EvalPlanQual returns us a new tuple, which may not be visible to our
 	 * MVCC snapshot.
 	 */
-
 	if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
 									   tupleid,
 									   SnapshotAny,
@@ -2868,11 +2811,13 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, false, &updateCxt);
+									   newslot, false, TABLE_MODIFY_WAIT, NULL,
+									   &updateCxt);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
-									   tupleid, NULL, newslot);
+									   tupleid, NULL, newslot,
+									   resultRelInfo->ri_oldTupleSlot);
 					mtstate->mt_merge_updated += 1;
 				}
 				break;
@@ -2887,11 +2832,11 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecDeleteAct(context, resultRelInfo, tupleid,
-									   false, false);
+									   false, TABLE_MODIFY_WAIT, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
-									   false);
+									   resultRelInfo->ri_oldTupleSlot, false);
 					mtstate->mt_merge_deleted += 1;
 				}
 				break;
@@ -3793,12 +3738,18 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag, false);
+								  slot, resultRelInfo->ri_oldTupleSlot,
+								  node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
+				/* Initialize slot for DELETE to fetch the old tuple */
+				if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+					ExecInitDeleteTupleSlot(node, resultRelInfo);
+
 				slot = ExecDelete(&context, resultRelInfo, tupleid, oldtuple,
-								  true, false, node->canSetTag, NULL, NULL);
+								  resultRelInfo->ri_oldTupleSlot, true, false,
+								  node->canSetTag, NULL, NULL);
 				break;
 
 			case CMD_MERGE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index faf50265191..19bcbfeea23 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -242,19 +242,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  int ntuples, CommandId cid, int options,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
-							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 CommandId cid, Snapshot crosscheck, int options,
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 TupleTableSlot *oldSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
-							 CommandId cid, Snapshot crosscheck, bool wait,
+							 CommandId cid, Snapshot crosscheck, int options,
 							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
-							 TU_UpdateIndexes *update_indexes);
-extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
-								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+							 TU_UpdateIndexes *update_indexes,
+							 TupleTableSlot *oldSlot);
+extern TM_Result heap_lock_tuple(Relation relation, ItemPointer tid,
+								 TupleTableSlot *slot,
+								 CommandId cid, LockTupleMode mode,
+								 LockWaitPolicy wait_policy, bool follow_updates,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 7159365e652..01c2a95d890 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -259,6 +259,11 @@ typedef struct TM_IndexDeleteOp
 /* Follow update chain and lock latest version of tuple */
 #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION		(1 << 1)
 
+/* "options" flag bits for table_tuple_update and table_tuple_delete */
+#define TABLE_MODIFY_WAIT			0x0001
+#define TABLE_MODIFY_FETCH_OLD_TUPLE 0x0002
+#define TABLE_MODIFY_LOCK_UPDATED	0x0004
+
 
 /* Typedef for callback function for table_index_build_scan */
 typedef void (*IndexBuildCallback) (Relation index,
@@ -528,10 +533,10 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 bool changingPart,
-								 LazyTupleTableSlot *lockedSlot);
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -540,11 +545,11 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
 								 TU_UpdateIndexes *update_indexes,
-								 LazyTupleTableSlot *lockedSlot);
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1459,7 +1464,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple (or lock last tuple version if lockedSlot is given).
+ * Delete a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1470,13 +1475,21 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	cid - delete command ID (used for visibility test, and stored into
  *		cmax if successful)
  *	crosscheck - if not InvalidSnapshot, also check tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
- *	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1488,18 +1501,18 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  */
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
-				   Snapshot snapshot, Snapshot crosscheck, bool wait,
+				   Snapshot snapshot, Snapshot crosscheck, int options,
 				   TM_FailureData *tmfd, bool changingPart,
-				   LazyTupleTableSlot *lockedSlot)
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart,
-										 lockedSlot);
+										 options, tmfd, changingPart,
+										 oldSlot);
 }
 
 /*
- * Update a tuple (or lock last tuple version if lockedSlot is given).
+ * Update a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1511,14 +1524,22 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	cid - update command ID (used for visibility test, and stored into
  *		cmax/cmin if successful)
  *	crosscheck - if not InvalidSnapshot, also check old tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- * 	lockedSlot - lazy slot to save the locked tuple if should lock the last
- *		row version during the concurrent update. NULL if not needed.
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
 
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1537,15 +1558,15 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
+				   int options, TM_FailureData *tmfd, LockTupleMode *lockmode,
 				   TU_UpdateIndexes *update_indexes,
-				   LazyTupleTableSlot *lockedSlot)
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
-										 wait, tmfd,
+										 options, tmfd,
 										 lockmode, update_indexes,
-										 lockedSlot);
+										 oldSlot);
 }
 
 /*
@@ -2061,10 +2082,12 @@ table_scan_sample_next_tuple(TableScanDesc scan,
 
 extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot);
 extern void simple_table_tuple_delete(Relation rel, ItemPointer tid,
-									  Snapshot snapshot);
+									  Snapshot snapshot,
+									  TupleTableSlot *oldSlot);
 extern void simple_table_tuple_update(Relation rel, ItemPointer otid,
 									  TupleTableSlot *slot, Snapshot snapshot,
-									  TU_UpdateIndexes *update_indexes);
+									  TU_UpdateIndexes *update_indexes,
+									  TupleTableSlot *oldSlot);
 
 
 /* ----------------------------------------------------------------------------
diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h
index 430e3ca7ddf..4903b4b7bc2 100644
--- a/src/include/commands/trigger.h
+++ b/src/include/commands/trigger.h
@@ -216,8 +216,8 @@ extern bool ExecBRDeleteTriggers(EState *estate,
 								 TM_FailureData *tmfd);
 extern void ExecARDeleteTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *slot,
 								 TransitionCaptureState *transition_capture,
 								 bool is_crosspart_update);
 extern bool ExecIRDeleteTriggers(EState *estate,
@@ -240,8 +240,8 @@ extern void ExecARUpdateTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
 								 ResultRelInfo *src_partinfo,
 								 ResultRelInfo *dst_partinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *oldslot,
 								 TupleTableSlot *newslot,
 								 List *recheckIndexes,
 								 TransitionCaptureState *transition_capture,
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index 2e13ecc3ffe..ff64b7cb98f 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -300,44 +300,6 @@ typedef struct MinimalTupleTableSlot
 #define TupIsNull(slot) \
 	((slot) == NULL || TTS_EMPTY(slot))
 
-/*----------
- * LazyTupleTableSlot -- a lazy version of TupleTableSlot.
- *
- * Sometimes caller might need to pass to the function a slot, which most
- * likely will reain undemanded.  Preallocating such slot would be a waste of
- * resources in the  majority of cases.  Lazy slot is aimed to resolve this
- * problem.  It is basically a promise to allocate the slot once it's needed.
- * Once callee needs the slot, it could get it using LAZY_TTS_EVAL(lazySlot)
- * macro.
- */
-typedef struct
-{
-	TupleTableSlot *slot;		/* cached slot or NULL if not yet allocated */
-	TupleTableSlot *(*getSlot) (void *arg); /* callback for slot allocation */
-	void	   *getSlotArg;		/* argument for the callback above */
-} LazyTupleTableSlot;
-
-/*
- * A constructor for the lazy slot.
- */
-#define MAKE_LAZY_TTS(lazySlot, callback, arg) \
-	do { \
-		(lazySlot)->slot = NULL; \
-		(lazySlot)->getSlot = callback; \
-		(lazySlot)->getSlotArg = arg; \
-	} while (false)
-
-/*
- * Macro for lazy slot evaluation.  NULL lazy slot evaluates to NULL slot.
- * Cached version is used if present.  Use the callback otherwise.
- */
-#define LAZY_TTS_EVAL(lazySlot) \
-	((lazySlot) ? \
-		((lazySlot)->slot ? \
-			(lazySlot)->slot : \
-			((lazySlot)->slot = (lazySlot)->getSlot((lazySlot)->getSlotArg))) : \
-		NULL)
-
 /* in executor/execTuples.c */
 extern TupleTableSlot *MakeTupleTableSlot(TupleDesc tupleDesc,
 										  const TupleTableSlotOps *tts_ops);
diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list
index b97174d1607..5c0410869f7 100644
--- a/src/tools/pgindent/typedefs.list
+++ b/src/tools/pgindent/typedefs.list
@@ -956,7 +956,6 @@ GenerationPointer
 GenericCosts
 GenericXLogState
 GeqoPrivateData
-GetEPQSlotArg
 GetForeignJoinPaths_function
 GetForeignModifyBatchSize_function
 GetForeignPaths_function
@@ -1402,7 +1401,6 @@ LagTracker
 LargeObjectDesc
 LastAttnumInfo
 Latch
-LazyTupleTableSlot
 LerpFunc
 LexDescr
 LexemeEntry
-- 
2.37.1 (Apple Git-137.1)

#54Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Pavel Borisov (#53)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Upon Alexander reverting patches v15 from master, I've rebased what
was correction patches v4 in a message above on a fresh master
(together with patches v15). The resulting patch v16 is attached.

Pavel.

Attachments:

v16-0002-Add-EvalPlanQual-delete-returning-isolation-test.patchapplication/octet-stream; name=v16-0002-Add-EvalPlanQual-delete-returning-isolation-test.patchDownload
From 2c5f0ec0d58fa1465d8101d50f35f65aefa7c274 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Wed, 22 Mar 2023 16:47:09 -0700
Subject: [PATCH v16 2/2] Add EvalPlanQual delete returning isolation test

Author: Andres Freund
Reviewed-by: Pavel Borisov
Discussion: https://www.postgresql.org/message-id/flat/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
---
 .../isolation/expected/eval-plan-qual-2.out   | 37 +++++++++++++++++++
 src/test/isolation/isolation_schedule         |  1 +
 .../isolation/specs/eval-plan-qual-2.spec     | 30 +++++++++++++++
 3 files changed, 68 insertions(+)
 create mode 100644 src/test/isolation/expected/eval-plan-qual-2.out
 create mode 100644 src/test/isolation/specs/eval-plan-qual-2.spec

diff --git a/src/test/isolation/expected/eval-plan-qual-2.out b/src/test/isolation/expected/eval-plan-qual-2.out
new file mode 100644
index 00000000000..117a3d3be8d
--- /dev/null
+++ b/src/test/isolation/expected/eval-plan-qual-2.out
@@ -0,0 +1,37 @@
+Parsed test spec with 3 sessions
+
+starting permutation: read_u wx2 wb1 c2 c1 read_u read
+step read_u: SELECT * FROM accounts;
+accountid|balance|balance2
+---------+-------+--------
+checking |    600|    1200
+savings  |    600|    1200
+(2 rows)
+
+step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
+balance
+-------
+   1050
+(1 row)
+
+step wb1: DELETE FROM accounts WHERE balance = 600 RETURNING *; <waiting ...>
+step c2: COMMIT;
+step wb1: <... completed>
+accountid|balance|balance2
+---------+-------+--------
+savings  |    600|    1200
+(1 row)
+
+step c1: COMMIT;
+step read_u: SELECT * FROM accounts;
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
+step read: SELECT * FROM accounts ORDER BY accountid;
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule
index 4fc56ae99c9..c75547529e6 100644
--- a/src/test/isolation/isolation_schedule
+++ b/src/test/isolation/isolation_schedule
@@ -36,6 +36,7 @@ test: fk-partitioned-2
 test: fk-snapshot
 test: subxid-overflow
 test: eval-plan-qual
+test: eval-plan-qual-2
 test: eval-plan-qual-trigger
 test: lock-update-delete
 test: lock-update-traversal
diff --git a/src/test/isolation/specs/eval-plan-qual-2.spec b/src/test/isolation/specs/eval-plan-qual-2.spec
new file mode 100644
index 00000000000..30447bef24a
--- /dev/null
+++ b/src/test/isolation/specs/eval-plan-qual-2.spec
@@ -0,0 +1,30 @@
+setup
+{
+ CREATE TABLE accounts (accountid text PRIMARY KEY, balance numeric not null,
+   balance2 numeric GENERATED ALWAYS AS (balance * 2) STORED);
+ INSERT INTO accounts VALUES ('checking', 600), ('savings', 600);
+}
+
+teardown
+{
+ DROP TABLE accounts;
+}
+
+session s1
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step wb1	{ DELETE FROM accounts WHERE balance = 600 RETURNING *; }
+step c1		{ COMMIT; }
+
+session s2
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step wx2	{ UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; }
+step c2	{ COMMIT; }
+
+session s3
+setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
+step read	{ SELECT * FROM accounts ORDER BY accountid; }
+step read_u	{ SELECT * FROM accounts; }
+
+teardown    { COMMIT; }
+
+permutation read_u wx2 wb1 c2 c1 read_u read
-- 
2.37.1 (Apple Git-137.1)

v16-0001-Allow-locking-updated-tuples-in-tuple_update-and.patchapplication/octet-stream; name=v16-0001-Allow-locking-updated-tuples-in-tuple_update-and.patchDownload
From ebc81277e26798d5452187869b84a4aeb0ea3043 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 23 Mar 2023 00:12:00 +0300
Subject: [PATCH v16 1/2] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
---
 src/backend/access/heap/heapam.c         | 205 ++++++++++----
 src/backend/access/heap/heapam_handler.c |  98 +++++--
 src/backend/access/table/tableam.c       |  26 +-
 src/backend/commands/trigger.c           |  55 +---
 src/backend/executor/execReplication.c   |  19 +-
 src/backend/executor/nodeModifyTable.c   | 335 +++++++++--------------
 src/include/access/heapam.h              |  19 +-
 src/include/access/tableam.h             |  69 +++--
 src/include/commands/trigger.h           |   4 +-
 9 files changed, 479 insertions(+), 351 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index f7d9ce59a47..3f1f23997fb 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2449,10 +2449,11 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 }
 
 /*
- *	heap_delete - delete a tuple
+ *	heap_delete - delete a tuple, optionally fetching it into a slot
  *
  * See table_tuple_delete() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2461,8 +2462,9 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
  */
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
-			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			CommandId cid, Snapshot crosscheck, int options,
+			TM_FailureData *tmfd, bool changingPart,
+			TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2540,7 +2542,7 @@ l1:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to delete invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -2676,7 +2678,30 @@ l1:
 			tmfd->cmax = HeapTupleHeaderGetCmax(tp.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resources on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = tp;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(tp.t_self), LockTupleExclusive);
 		if (vmbuffer != InvalidBuffer)
@@ -2850,8 +2875,24 @@ l1:
 	 */
 	CacheInvalidateHeapTuple(relation, &tp, NULL);
 
-	/* Now we can release the buffer */
-	ReleaseBuffer(buffer);
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = tp;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
 
 	/*
 	 * Release the lmgr tuple lock, if we had it.
@@ -2883,8 +2924,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, false /* changingPart */ , NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2911,10 +2952,11 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 }
 
 /*
- *	heap_update - replace a tuple
+ *	heap_update - replace a tuple, optionally fetching it into a slot
  *
  * See table_tuple_update() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2923,9 +2965,9 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  */
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
-			CommandId cid, Snapshot crosscheck, bool wait,
+			CommandId cid, Snapshot crosscheck, int options,
 			TM_FailureData *tmfd, LockTupleMode *lockmode,
-			TU_UpdateIndexes *update_indexes)
+			TU_UpdateIndexes *update_indexes, TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3102,7 +3144,7 @@ l2:
 	result = HeapTupleSatisfiesUpdate(&oldtup, cid, buffer);
 
 	/* see below about the "no wait" case */
-	Assert(result != TM_BeingModified || wait);
+	Assert(result != TM_BeingModified || (options & TABLE_MODIFY_WAIT));
 
 	if (result == TM_Invisible)
 	{
@@ -3111,7 +3153,7 @@ l2:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to update invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -3313,7 +3355,30 @@ l2:
 			tmfd->cmax = HeapTupleHeaderGetCmax(oldtup.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = oldtup;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(oldtup.t_self), *lockmode);
 		if (vmbuffer != InvalidBuffer)
@@ -3791,7 +3856,26 @@ l2:
 	/* Now we can release the buffer(s) */
 	if (newbuf != buffer)
 		ReleaseBuffer(newbuf);
-	ReleaseBuffer(buffer);
+
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = oldtup;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
+
 	if (BufferIsValid(vmbuffer_new))
 		ReleaseBuffer(vmbuffer_new);
 	if (BufferIsValid(vmbuffer))
@@ -3999,8 +4083,8 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, &lockmode, update_indexes);
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, &lockmode, update_indexes, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4063,12 +4147,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  *		tuples.
  *
  * Output parameters:
- *	*tuple: all fields filled in
- *	*buffer: set to buffer holding tuple (pinned but not locked at exit)
+ *	*slot: BufferHeapTupleTableSlot filled with tuple
  *	*tmfd: filled in failure cases (see below)
  *
  * Function results are the same as the ones for table_tuple_lock().
  *
+ * If *slot already contains the target tuple, it takes advantage on that by
+ * skipping the ReadBuffer() call.
+ *
  * In the failure cases other than TM_Invisible, the routine fills
  * *tmfd with the tuple's t_ctid, t_xmax (resolving a possible MultiXact,
  * if necessary), and t_cmax (the last only for TM_SelfModified,
@@ -4079,15 +4165,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  * See README.tuplock for a thorough explanation of this mechanism.
  */
 TM_Result
-heap_lock_tuple(Relation relation, HeapTuple tuple,
+heap_lock_tuple(Relation relation, ItemPointer tid, TupleTableSlot *slot,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				bool follow_updates, TM_FailureData *tmfd)
 {
 	TM_Result	result;
-	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
+	Buffer		buffer;
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 	TransactionId xid,
@@ -4099,8 +4184,24 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	bool		skip_tuple_lock = false;
 	bool		have_tuple_lock = false;
 	bool		cleared_all_frozen = false;
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	HeapTuple	tuple = &bslot->base.tupdata;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	/* Take advantage if slot already contains the relevant tuple  */
+	if (!TTS_EMPTY(slot) &&
+		slot->tts_tableOid == relation->rd_id &&
+		ItemPointerCompare(&slot->tts_tid, tid) == 0 &&
+		BufferIsValid(bslot->buffer))
+	{
+		buffer = bslot->buffer;
+		IncrBufferRefCount(buffer);
+	}
+	else
+	{
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	}
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4109,21 +4210,22 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
+	tuple->t_self = *tid;
 	tuple->t_data = (HeapTupleHeader) PageGetItem(page, lp);
 	tuple->t_len = ItemIdGetLength(lp);
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4152,7 +4254,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4304,12 +4406,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4344,7 +4446,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4372,7 +4474,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4384,7 +4486,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4412,7 +4514,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4434,7 +4536,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4459,7 +4561,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4485,7 +4587,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4525,7 +4627,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4551,12 +4653,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4578,7 +4680,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4637,9 +4739,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4702,7 +4804,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4722,7 +4824,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.locking_xid = xid;
@@ -4743,7 +4845,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4761,6 +4863,9 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	/* Put the target tuple to the slot */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index e2e35b71eaa..5781096203d 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,6 +45,12 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
+static TM_Result heapam_tuple_lock(Relation relation, ItemPointer tid,
+								   Snapshot snapshot, TupleTableSlot *slot,
+								   CommandId cid, LockTupleMode mode,
+								   LockWaitPolicy wait_policy, uint8 flags,
+								   TM_FailureData *tmfd);
+
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -298,23 +304,55 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
-					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					Snapshot snapshot, Snapshot crosscheck, int options,
+					TM_FailureData *tmfd, bool changingPart,
+					TupleTableSlot *oldSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, options,
+						 tmfd, changingPart, oldSlot);
+
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * delete should succeed even if there are more concurrent update
+	 * attempts.
+	 */
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
+	{
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_delete().
+		 */
+		result = heapam_tuple_lock(relation, tid, snapshot,
+								   oldSlot, cid, LockTupleExclusive,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
+
+		if (result == TM_Ok)
+			return TM_Updated;
+	}
+
+	return result;
 }
 
 
 static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes)
+					int options, TM_FailureData *tmfd,
+					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
+					TupleTableSlot *oldSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -324,8 +362,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode, update_indexes);
+	result = heap_update(relation, otid, tuple, cid, crosscheck, options,
+						 tmfd, lockmode, update_indexes, oldSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -334,8 +372,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	 * Note: heap_update returns the tid (location) of the new tuple in the
 	 * t_self field.
 	 *
-	 * If the update is not HOT, we must update all indexes. If the update
-	 * is HOT, it could be that we updated summarized columns, so we either
+	 * If the update is not HOT, we must update all indexes. If the update is
+	 * HOT, it could be that we updated summarized columns, so we either
 	 * update only summarized indexes, or none at all.
 	 */
 	if (result != TM_Ok)
@@ -352,6 +390,31 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * update should succeed even if there are more concurrent update
+	 * attempts.
+	 */
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
+	{
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_update().
+		 */
+		result = heapam_tuple_lock(relation, otid, snapshot,
+								   oldSlot, cid, *lockmode,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
+
+		if (result == TM_Ok)
+			return TM_Updated;
+	}
+
 	return result;
 }
 
@@ -363,7 +426,6 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
 
@@ -373,9 +435,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 	Assert(TTS_IS_BUFFERTUPLE(slot));
 
 tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	result = heap_lock_tuple(relation, tid, slot, cid, mode, wait_policy,
+							 follow_updates, tmfd);
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
@@ -383,8 +444,6 @@ tuple_lock_retry:
 		/* Should not encounter speculative tuple on recheck */
 		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
-		ReleaseBuffer(buffer);
-
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
 			SnapshotData SnapshotDirty;
@@ -406,6 +465,8 @@ tuple_lock_retry:
 			InitDirtySnapshot(SnapshotDirty);
 			for (;;)
 			{
+				Buffer		buffer = InvalidBuffer;
+
 				if (ItemPointerIndicatesMovedPartitions(tid))
 					ereport(ERROR,
 							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
@@ -500,7 +561,7 @@ tuple_lock_retry:
 					/*
 					 * This is a live tuple, so try to lock it again.
 					 */
-					ReleaseBuffer(buffer);
+					ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
 					goto tuple_lock_retry;
 				}
 
@@ -511,7 +572,7 @@ tuple_lock_retry:
 				 */
 				if (tuple->t_data == NULL)
 				{
-					Assert(!BufferIsValid(buffer));
+					ReleaseBuffer(buffer);
 					return TM_Deleted;
 				}
 
@@ -564,9 +625,6 @@ tuple_lock_retry:
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
 	return result;
 }
 
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index a5e6c92f35e..0167a2fb1fc 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -297,16 +297,23 @@ simple_table_tuple_insert(Relation rel, TupleTableSlot *slot)
  * via ereport().
  */
 void
-simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
+simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_delete(rel, tid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								options,
+								&tmfd, false /* changingPart */ ,
+								oldSlot);
 
 	switch (result)
 	{
@@ -345,17 +352,24 @@ void
 simple_table_tuple_update(Relation rel, ItemPointer otid,
 						  TupleTableSlot *slot,
 						  Snapshot snapshot,
-						  TU_UpdateIndexes *update_indexes)
+						  TU_UpdateIndexes *update_indexes,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
 	LockTupleMode lockmode;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_update(rel, otid, slot,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								options,
+								&tmfd, &lockmode, update_indexes,
+								oldSlot);
 
 	switch (result)
 	{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 0f2de7e2e01..5c4f8bae188 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2784,8 +2784,8 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate,
 void
 ExecARDeleteTriggers(EState *estate,
 					 ResultRelInfo *relinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *slot,
 					 TransitionCaptureState *transition_capture,
 					 bool is_crosspart_update)
 {
@@ -2794,20 +2794,11 @@ ExecARDeleteTriggers(EState *estate,
 	if ((trigdesc && trigdesc->trig_delete_after_row) ||
 		(transition_capture && transition_capture->tcs_delete_old_table))
 	{
-		TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
-
-		Assert(HeapTupleIsValid(fdw_trigtuple) ^ ItemPointerIsValid(tupleid));
-		if (fdw_trigtuple == NULL)
-			GetTupleForTrigger(estate,
-							   NULL,
-							   relinfo,
-							   tupleid,
-							   LockTupleExclusive,
-							   slot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else
+		/*
+		 * Put the FDW old tuple to the slot.  Otherwise, caller is expected
+		 * to have old tuple alredy fetched to the slot.
+		 */
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, slot, false);
 
 		AfterTriggerSaveEvent(estate, relinfo, NULL, NULL,
@@ -3080,18 +3071,17 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
  * Note: 'src_partinfo' and 'dst_partinfo', when non-NULL, refer to the source
  * and destination partitions, respectively, of a cross-partition update of
  * the root partitioned table mentioned in the query, given by 'relinfo'.
- * 'tupleid' in that case refers to the ctid of the "old" tuple in the source
- * partition, and 'newslot' contains the "new" tuple in the destination
- * partition.  This interface allows to support the requirements of
- * ExecCrossPartitionUpdateForeignKey(); is_crosspart_update must be true in
- * that case.
+ * 'oldslot' contains the "old" tuple in the source partition, and 'newslot'
+ * contains the "new" tuple in the destination partition.  This interface
+ * allows to support the requirements of ExecCrossPartitionUpdateForeignKey();
+ * is_crosspart_update must be true in that case.
  */
 void
 ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 					 ResultRelInfo *src_partinfo,
 					 ResultRelInfo *dst_partinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *oldslot,
 					 TupleTableSlot *newslot,
 					 List *recheckIndexes,
 					 TransitionCaptureState *transition_capture,
@@ -3110,29 +3100,14 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 		 * separately for DELETE and INSERT to capture transition table rows.
 		 * In such case, either old tuple or new tuple can be NULL.
 		 */
-		TupleTableSlot *oldslot;
-		ResultRelInfo *tupsrc;
-
 		Assert((src_partinfo != NULL && dst_partinfo != NULL) ||
 			   !is_crosspart_update);
 
-		tupsrc = src_partinfo ? src_partinfo : relinfo;
-		oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
-
-		if (fdw_trigtuple == NULL && ItemPointerIsValid(tupleid))
-			GetTupleForTrigger(estate,
-							   NULL,
-							   tupsrc,
-							   tupleid,
-							   LockTupleExclusive,
-							   oldslot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else if (fdw_trigtuple != NULL)
+		if (fdw_trigtuple != NULL)
+		{
+			Assert(oldslot);
 			ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false);
-		else
-			ExecClearTuple(oldslot);
+		}
 
 		AfterTriggerSaveEvent(estate, relinfo,
 							  src_partinfo, dst_partinfo,
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index 9dd71684615..31ff5cd9f41 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -545,6 +545,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 	{
 		List	   *recheckIndexes = NIL;
 		TU_UpdateIndexes update_indexes;
+		TupleTableSlot *oldSlot = NULL;
 
 		/* Compute stored generated columns */
 		if (rel->rd_att->constr &&
@@ -558,8 +559,12 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		if (rel->rd_rel->relispartition)
 			ExecPartitionCheck(resultRelInfo, slot, estate, true);
 
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_update_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		simple_table_tuple_update(rel, tid, slot, estate->es_snapshot,
-								  &update_indexes);
+								  &update_indexes, oldSlot);
 
 		if (resultRelInfo->ri_NumIndices > 0 && (update_indexes != TU_None))
 			recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
@@ -570,7 +575,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		/* AFTER ROW UPDATE Triggers */
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tid, NULL, slot,
+							 NULL, oldSlot, slot,
 							 recheckIndexes, NULL, false);
 
 		list_free(recheckIndexes);
@@ -604,12 +609,18 @@ ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
 
 	if (!skip_tuple)
 	{
+		TupleTableSlot *oldSlot = NULL;
+
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_delete_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		/* OK, delete the tuple */
-		simple_table_tuple_delete(rel, tid, estate->es_snapshot);
+		simple_table_tuple_delete(rel, tid, estate->es_snapshot, oldSlot);
 
 		/* AFTER ROW DELETE Triggers */
 		ExecARDeleteTriggers(estate, resultRelInfo,
-							 tid, NULL, NULL, false);
+							 NULL, oldSlot, NULL, false);
 	}
 }
 
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 3a673895082..de49e48bae6 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -111,7 +111,7 @@ typedef struct UpdateContext
 {
 	bool		updated;		/* did UPDATE actually occur? */
 	bool		crossPartUpdate;	/* was it a cross-partition update? */
-	TU_UpdateIndexes updateIndexes;	/* Which index updates are required? */
+	TU_UpdateIndexes updateIndexes; /* Which index updates are required? */
 
 	/*
 	 * Lock mode to acquire on the latest tuple version before performing
@@ -133,7 +133,7 @@ static void ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 											   ResultRelInfo *sourcePartInfo,
 											   ResultRelInfo *destPartInfo,
 											   ItemPointer tupleid,
-											   TupleTableSlot *oldslot,
+											   TupleTableSlot *oldSlot,
 											   TupleTableSlot *newslot);
 static bool ExecOnConflictUpdate(ModifyTableContext *context,
 								 ResultRelInfo *resultRelInfo,
@@ -570,6 +570,10 @@ ExecInitInsertProjection(ModifyTableState *mtstate,
 	resultRelInfo->ri_newTupleSlot =
 		table_slot_create(resultRelInfo->ri_RelationDesc,
 						  &estate->es_tupleTable);
+	if (node->onConflictAction == ONCONFLICT_UPDATE)
+		resultRelInfo->ri_oldTupleSlot =
+			table_slot_create(resultRelInfo->ri_RelationDesc,
+							  &estate->es_tupleTable);
 
 	/* Build ProjectionInfo if needed (it probably isn't). */
 	if (need_projection)
@@ -1160,7 +1164,7 @@ ExecInsert(ModifyTableContext *context,
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
 							 NULL,
-							 NULL,
+							 resultRelInfo->ri_oldTupleSlot,
 							 slot,
 							 NULL,
 							 mtstate->mt_transition_capture,
@@ -1333,7 +1337,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart, int options,
+			  TupleTableSlot *oldSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1341,9 +1346,10 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
-							  true /* wait for commit */ ,
+							  options /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  oldSlot);
 }
 
 /*
@@ -1355,7 +1361,8 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static void
 ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-				   ItemPointer tupleid, HeapTuple oldtuple, bool changingPart)
+				   ItemPointer tupleid, HeapTuple oldtuple,
+				   TupleTableSlot *slot, bool changingPart)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	EState	   *estate = context->estate;
@@ -1373,8 +1380,8 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	{
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tupleid, oldtuple,
-							 NULL, NULL, mtstate->mt_transition_capture,
+							 oldtuple,
+							 slot, NULL, NULL, mtstate->mt_transition_capture,
 							 false);
 
 		/*
@@ -1385,10 +1392,30 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 
 	/* AFTER ROW DELETE Triggers */
-	ExecARDeleteTriggers(estate, resultRelInfo, tupleid, oldtuple,
+	ExecARDeleteTriggers(estate, resultRelInfo, oldtuple, slot,
 						 ar_delete_trig_tcs, changingPart);
 }
 
+/*
+ * Initializes the tuple slot in a ResultRelInfo for DELETE action.
+ *
+ * We mark 'projectNewInfoValid' even though the projections themselves
+ * are not initialized here.
+ */
+static void
+ExecInitDeleteTupleSlot(ModifyTableState *mtstate,
+						ResultRelInfo *resultRelInfo)
+{
+	EState	   *estate = mtstate->ps.state;
+
+	Assert(!resultRelInfo->ri_projectNewInfoValid);
+
+	resultRelInfo->ri_oldTupleSlot =
+		table_slot_create(resultRelInfo->ri_RelationDesc,
+						  &estate->es_tupleTable);
+	resultRelInfo->ri_projectNewInfoValid = true;
+}
+
 /* ----------------------------------------------------------------
  *		ExecDelete
  *
@@ -1416,6 +1443,7 @@ ExecDelete(ModifyTableContext *context,
 		   ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid,
 		   HeapTuple oldtuple,
+		   TupleTableSlot *oldSlot,
 		   bool processReturning,
 		   bool changingPart,
 		   bool canSetTag,
@@ -1478,6 +1506,11 @@ ExecDelete(ModifyTableContext *context,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * delete the tuple
 		 *
@@ -1488,7 +1521,8 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   options, oldSlot);
 
 		switch (result)
 		{
@@ -1532,7 +1566,6 @@ ldelete:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
 
 					if (IsolationUsesXactSnapshot())
@@ -1541,87 +1574,29 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					EvalPlanQualBegin(context->epqstate);
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   oldSlot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1655,7 +1630,8 @@ ldelete:
 	if (tupleDeleted)
 		*tupleDeleted = true;
 
-	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple, changingPart);
+	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple,
+					   oldSlot, changingPart);
 
 	/* Process RETURNING if present and if requested */
 	if (processReturning && resultRelInfo->ri_projectReturning)
@@ -1673,17 +1649,13 @@ ldelete:
 		}
 		else
 		{
+			/* Copy old tuple to the returning slot */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
-			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
-			}
 			else
-			{
-				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
-												   SnapshotAny, slot))
-					elog(ERROR, "failed to fetch deleted tuple for DELETE RETURNING");
-			}
+				ExecCopySlot(slot, oldSlot);
+			Assert(!TupIsNull(slot));
 		}
 
 		rslot = ExecProcessReturning(resultRelInfo, slot, context->planSlot);
@@ -1782,12 +1754,16 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 		MemoryContextSwitchTo(oldcxt);
 	}
 
+	/* Make sure ri_oldTupleSlot is initialized. */
+	if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+		ExecInitUpdateProjection(mtstate, resultRelInfo);
+
 	/*
 	 * Row movement, part 1.  Delete the tuple, but skip RETURNING processing.
 	 * We want to return rows from INSERT.
 	 */
 	ExecDelete(context, resultRelInfo,
-			   tupleid, oldtuple,
+			   tupleid, oldtuple, resultRelInfo->ri_oldTupleSlot,
 			   false,			/* processReturning */
 			   true,			/* changingPart */
 			   false,			/* canSetTag */
@@ -1828,21 +1804,13 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 			return true;
 		else
 		{
-			/* Fetch the most recent version of old tuple. */
-			TupleTableSlot *oldSlot;
-
-			/* ... but first, make sure ri_oldTupleSlot is initialized. */
-			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-				ExecInitUpdateProjection(mtstate, resultRelInfo);
-			oldSlot = resultRelInfo->ri_oldTupleSlot;
-			if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
-											   tupleid,
-											   SnapshotAny,
-											   oldSlot))
-				elog(ERROR, "failed to fetch tuple being updated");
-			/* and project the new tuple to retry the UPDATE with */
+			/*
+			 * ExecDelete already fetches the most recent version of old tuple
+			 * to resultRelInfo->ri_RelationDesc.  So, just project the new
+			 * tuple to retry the UPDATE with.
+			 */
 			*retry_slot = ExecGetUpdateNewTuple(resultRelInfo, epqslot,
-												oldSlot);
+												resultRelInfo->ri_oldTupleSlot);
 			return false;
 		}
 	}
@@ -1961,7 +1929,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, int options, TupleTableSlot *oldSlot,
+			  UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2053,7 +2022,8 @@ lreplace:
 				ExecCrossPartitionUpdateForeignKey(context,
 												   resultRelInfo,
 												   insert_destrel,
-												   tupleid, slot,
+												   tupleid,
+												   resultRelInfo->ri_oldTupleSlot,
 												   inserted_tuple);
 
 			return TM_Ok;
@@ -2096,9 +2066,10 @@ lreplace:
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
-								true /* wait for commit */ ,
+								options /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								oldSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2114,7 +2085,8 @@ lreplace:
 static void
 ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 				   ResultRelInfo *resultRelInfo, ItemPointer tupleid,
-				   HeapTuple oldtuple, TupleTableSlot *slot)
+				   HeapTuple oldtuple, TupleTableSlot *slot,
+				   TupleTableSlot *oldSlot)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	List	   *recheckIndexes = NIL;
@@ -2130,7 +2102,7 @@ ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 	/* AFTER ROW UPDATE Triggers */
 	ExecARUpdateTriggers(context->estate, resultRelInfo,
 						 NULL, NULL,
-						 tupleid, oldtuple, slot,
+						 oldtuple, oldSlot, slot,
 						 recheckIndexes,
 						 mtstate->operation == CMD_INSERT ?
 						 mtstate->mt_oc_transition_capture :
@@ -2219,7 +2191,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 	/* Perform the root table's triggers. */
 	ExecARUpdateTriggers(context->estate,
 						 rootRelInfo, sourcePartInfo, destPartInfo,
-						 tupleid, NULL, newslot, NIL, NULL, true);
+						 NULL, oldslot, newslot, NIL, NULL, true);
 }
 
 /* ----------------------------------------------------------------
@@ -2242,6 +2214,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
  *		no relevant triggers.
  *
  *		slot contains the new tuple value to be stored.
+ *		oldSlot is the slot to store the old tuple.
  *		planSlot is the output of the ModifyTable's subplan; we use it
  *		to access values from other input tables (for RETURNING),
  *		row-ID junk columns, etc.
@@ -2252,7 +2225,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   TupleTableSlot *oldSlot, bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2305,6 +2278,11 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!locked && !IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * If we generate a new candidate tuple after EvalPlanQual testing, we
 		 * must loop back here to try again.  (We don't need to redo triggers,
@@ -2314,7 +2292,7 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, options, oldSlot, &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2365,88 +2343,30 @@ redo_act:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   oldSlot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot,
+												 oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2470,7 +2390,7 @@ redo_act:
 		(estate->es_processed)++;
 
 	ExecUpdateEpilogue(context, &updateCxt, resultRelInfo, tupleid, oldtuple,
-					   slot);
+					   slot, oldSlot);
 
 	/* Process RETURNING if present */
 	if (resultRelInfo->ri_projectReturning)
@@ -2688,7 +2608,8 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							existing,
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2826,7 +2747,6 @@ lmerge_matched:
 	 * EvalPlanQual returns us a new tuple, which may not be visible to our
 	 * MVCC snapshot.
 	 */
-
 	if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
 									   tupleid,
 									   SnapshotAny,
@@ -2891,11 +2811,13 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, &updateCxt);
+									   newslot, false, TABLE_MODIFY_WAIT, NULL,
+									   &updateCxt);
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
-									   tupleid, NULL, newslot);
+									   tupleid, NULL, newslot,
+									   resultRelInfo->ri_oldTupleSlot);
 					mtstate->mt_merge_updated += 1;
 				}
 				break;
@@ -2909,11 +2831,12 @@ lmerge_matched:
 						return true;	/* "do nothing" */
 					break;		/* concurrent update/delete */
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid,
+									   false, TABLE_MODIFY_WAIT, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
-									   false);
+									   resultRelInfo->ri_oldTupleSlot, false);
 					mtstate->mt_merge_deleted += 1;
 				}
 				break;
@@ -3815,12 +3738,18 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, resultRelInfo->ri_oldTupleSlot,
+								  node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
+				/* Initialize slot for DELETE to fetch the old tuple */
+				if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+					ExecInitDeleteTupleSlot(node, resultRelInfo);
+
 				slot = ExecDelete(&context, resultRelInfo, tupleid, oldtuple,
-								  true, false, node->canSetTag, NULL, NULL);
+								  resultRelInfo->ri_oldTupleSlot, true, false,
+								  node->canSetTag, NULL, NULL);
 				break;
 
 			case CMD_MERGE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index faf50265191..19bcbfeea23 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -242,19 +242,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  int ntuples, CommandId cid, int options,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
-							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 CommandId cid, Snapshot crosscheck, int options,
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 TupleTableSlot *oldSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
-							 CommandId cid, Snapshot crosscheck, bool wait,
+							 CommandId cid, Snapshot crosscheck, int options,
 							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
-							 TU_UpdateIndexes *update_indexes);
-extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
-								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+							 TU_UpdateIndexes *update_indexes,
+							 TupleTableSlot *oldSlot);
+extern TM_Result heap_lock_tuple(Relation relation, ItemPointer tid,
+								 TupleTableSlot *slot,
+								 CommandId cid, LockTupleMode mode,
+								 LockWaitPolicy wait_policy, bool follow_updates,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 50ae053f461..01c2a95d890 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -259,6 +259,11 @@ typedef struct TM_IndexDeleteOp
 /* Follow update chain and lock latest version of tuple */
 #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION		(1 << 1)
 
+/* "options" flag bits for table_tuple_update and table_tuple_delete */
+#define TABLE_MODIFY_WAIT			0x0001
+#define TABLE_MODIFY_FETCH_OLD_TUPLE 0x0002
+#define TABLE_MODIFY_LOCK_UPDATED	0x0004
+
 
 /* Typedef for callback function for table_index_build_scan */
 typedef void (*IndexBuildCallback) (Relation index,
@@ -528,9 +533,10 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -539,10 +545,11 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 TU_UpdateIndexes *update_indexes);
+								 TU_UpdateIndexes *update_indexes,
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1457,7 +1464,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple.
+ * Delete a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1468,11 +1475,21 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	cid - delete command ID (used for visibility test, and stored into
  *		cmax if successful)
  *	crosscheck - if not InvalidSnapshot, also check tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1484,16 +1501,18 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  */
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
-				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   Snapshot snapshot, Snapshot crosscheck, int options,
+				   TM_FailureData *tmfd, bool changingPart,
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 options, tmfd, changingPart,
+										 oldSlot);
 }
 
 /*
- * Update a tuple.
+ * Update a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1505,13 +1524,23 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	cid - update command ID (used for visibility test, and stored into
  *		cmax/cmin if successful)
  *	crosscheck - if not InvalidSnapshot, also check old tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1529,13 +1558,15 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   TU_UpdateIndexes *update_indexes)
+				   int options, TM_FailureData *tmfd, LockTupleMode *lockmode,
+				   TU_UpdateIndexes *update_indexes,
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
-										 wait, tmfd,
-										 lockmode, update_indexes);
+										 options, tmfd,
+										 lockmode, update_indexes,
+										 oldSlot);
 }
 
 /*
@@ -2051,10 +2082,12 @@ table_scan_sample_next_tuple(TableScanDesc scan,
 
 extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot);
 extern void simple_table_tuple_delete(Relation rel, ItemPointer tid,
-									  Snapshot snapshot);
+									  Snapshot snapshot,
+									  TupleTableSlot *oldSlot);
 extern void simple_table_tuple_update(Relation rel, ItemPointer otid,
 									  TupleTableSlot *slot, Snapshot snapshot,
-									  TU_UpdateIndexes *update_indexes);
+									  TU_UpdateIndexes *update_indexes,
+									  TupleTableSlot *oldSlot);
 
 
 /* ----------------------------------------------------------------------------
diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h
index 430e3ca7ddf..4903b4b7bc2 100644
--- a/src/include/commands/trigger.h
+++ b/src/include/commands/trigger.h
@@ -216,8 +216,8 @@ extern bool ExecBRDeleteTriggers(EState *estate,
 								 TM_FailureData *tmfd);
 extern void ExecARDeleteTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *slot,
 								 TransitionCaptureState *transition_capture,
 								 bool is_crosspart_update);
 extern bool ExecIRDeleteTriggers(EState *estate,
@@ -240,8 +240,8 @@ extern void ExecARUpdateTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
 								 ResultRelInfo *src_partinfo,
 								 ResultRelInfo *dst_partinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *oldslot,
 								 TupleTableSlot *newslot,
 								 List *recheckIndexes,
 								 TransitionCaptureState *transition_capture,
-- 
2.37.1 (Apple Git-137.1)

#55Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#54)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Mon, Apr 3, 2023 at 5:12 PM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

Upon Alexander reverting patches v15 from master, I've rebased what
was correction patches v4 in a message above on a fresh master
(together with patches v15). The resulting patch v16 is attached.

Pavel, thank you for you review, revisions and rebase.
We'll reconsider this once v17 is branched.

------
Regards,
Alexander Korotkov

#56Michael Paquier
michael@paquier.xyz
In reply to: Alexander Korotkov (#55)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Tue, Apr 04, 2023 at 01:25:46AM +0300, Alexander Korotkov wrote:

Pavel, thank you for you review, revisions and rebase.
We'll reconsider this once v17 is branched.

The patch was still in the current CF, so I have moved it to the next
one based on the latest updates.
--
Michael

#57Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Michael Paquier (#56)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, hackers!

You're designing new APIs, days before the feature freeze.

On Wed, 5 Apr 2023 at 06:54, Michael Paquier <michael@paquier.xyz> wrote:

On Tue, Apr 04, 2023 at 01:25:46AM +0300, Alexander Korotkov wrote:

Pavel, thank you for you review, revisions and rebase.
We'll reconsider this once v17 is branched.

I've looked through patches v16 once more and think they're good
enough, and previous issues are all addressed. I see that there is
nothing that blocks it from being committed except the last iteration
was days before v16 feature freeze.

Recently in another thread [1]/messages/by-id/CAPpHfdurb9ycV8udYqM=o0sPS66PJ4RCBM1g-bBpvzUfogY0EA@mail.gmail.com Alexander posted a new version of
patches v16 (as 0001 and 0002) In 0001 only indenation, comments, and
commit messages changed from v16 in this thread. In 0002 new test
eval-plan-qual-2 was integrated into the existing eval-plan-qual test.
For maintaining the most recent versions in this thread I'm attaching
them under v17. I suppose that we can commit these patches to v17 if
there are no objections or additional reviews.

[1]: /messages/by-id/CAPpHfdurb9ycV8udYqM=o0sPS66PJ4RCBM1g-bBpvzUfogY0EA@mail.gmail.com

Kind regards,
Pavel Borisov

Attachments:

v17-0002-Add-EvalPlanQual-delete-returning-isolation-test-v1.patchapplication/octet-stream; name=v17-0002-Add-EvalPlanQual-delete-returning-isolation-test-v1.patchDownload
From 539b9cc7063861b7989a676c20ed96d4f4048f6c Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Wed, 22 Mar 2023 16:47:09 -0700
Subject: [PATCH 02/12] Add EvalPlanQual delete returning isolation test

Author: Andres Freund
Reviewed-by: Pavel Borisov
Discussion: https://www.postgresql.org/message-id/flat/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
---
 .../isolation/expected/eval-plan-qual.out     | 30 +++++++++++++++++++
 src/test/isolation/specs/eval-plan-qual.spec  |  4 +++
 2 files changed, 34 insertions(+)

diff --git a/src/test/isolation/expected/eval-plan-qual.out b/src/test/isolation/expected/eval-plan-qual.out
index 73e0aeb50e7..0237271ceec 100644
--- a/src/test/isolation/expected/eval-plan-qual.out
+++ b/src/test/isolation/expected/eval-plan-qual.out
@@ -746,6 +746,36 @@ savings  |    600|    1200
 (2 rows)
 
 
+starting permutation: read wx2 wb1 c2 c1 read
+step read: SELECT * FROM accounts ORDER BY accountid;
+accountid|balance|balance2
+---------+-------+--------
+checking |    600|    1200
+savings  |    600|    1200
+(2 rows)
+
+step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
+balance
+-------
+   1050
+(1 row)
+
+step wb1: DELETE FROM accounts WHERE balance = 600 RETURNING *; <waiting ...>
+step c2: COMMIT;
+step wb1: <... completed>
+accountid|balance|balance2
+---------+-------+--------
+savings  |    600|    1200
+(1 row)
+
+step c1: COMMIT;
+step read: SELECT * FROM accounts ORDER BY accountid;
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
+
 starting permutation: upsert1 upsert2 c1 c2 read
 step upsert1: 
 	WITH upsert AS
diff --git a/src/test/isolation/specs/eval-plan-qual.spec b/src/test/isolation/specs/eval-plan-qual.spec
index 735c671734e..edd6d19df3a 100644
--- a/src/test/isolation/specs/eval-plan-qual.spec
+++ b/src/test/isolation/specs/eval-plan-qual.spec
@@ -76,6 +76,8 @@ setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
 step wx1	{ UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; }
 # wy1 then wy2 checks the case where quals pass then fail
 step wy1	{ UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance; }
+# wx2 then wb1 checks the case of re-fetching up-to-date values for DELETE ... RETURNING ...
+step wb1	{ DELETE FROM accounts WHERE balance = 600 RETURNING *; }
 
 step wxext1	{ UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; }
 step tocds1	{ UPDATE accounts SET accountid = 'cds' WHERE accountid = 'checking'; }
@@ -353,6 +355,8 @@ permutation wx1 delwcte c1 c2 read
 # test that a delete to a self-modified row throws error when
 # previously updated by a different cid
 permutation wx1 delwctefail c1 c2 read
+# test that a delete re-fetches up-to-date values for returning clause
+permutation read wx2 wb1 c2 c1 read
 
 permutation upsert1 upsert2 c1 c2 read
 permutation readp1 writep1 readp2 c1 c2
-- 
2.39.3 (Apple Git-145)

v17-0001-Allow-locking-updated-tuples-in-tuple_update-and--v1.patchapplication/octet-stream; name=v17-0001-Allow-locking-updated-tuples-in-tuple_update-and--v1.patchDownload
From 7d87dc017089fa6bb9db489a87cdaff413fce3c3 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu, 23 Mar 2023 00:12:00 +0300
Subject: [PATCH 01/12] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This patch eliminates step 2 by taking the lock during first
tuple_update()/tuple_delete() call.  Heap table access method saves some
efforts by checking the updated tuple once instead of twice.  Future
undo-based table access methods, which will start from the latest row version,
can immediately place a lock there.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
---
 src/backend/access/heap/heapam.c         | 205 ++++++++++----
 src/backend/access/heap/heapam_handler.c |  94 +++++--
 src/backend/access/table/tableam.c       |  26 +-
 src/backend/commands/trigger.c           |  55 +---
 src/backend/executor/execReplication.c   |  19 +-
 src/backend/executor/nodeModifyTable.c   | 333 +++++++++--------------
 src/include/access/heapam.h              |  19 +-
 src/include/access/tableam.h             |  69 +++--
 src/include/commands/trigger.h           |   4 +-
 9 files changed, 476 insertions(+), 348 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 14de8158d49..5baa2e632f5 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2503,10 +2503,11 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 }
 
 /*
- *	heap_delete - delete a tuple
+ *	heap_delete - delete a tuple, optionally fetching it into a slot
  *
  * See table_tuple_delete() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2515,8 +2516,9 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
  */
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
-			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			CommandId cid, Snapshot crosscheck, int options,
+			TM_FailureData *tmfd, bool changingPart,
+			TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2594,7 +2596,7 @@ l1:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to delete invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -2730,7 +2732,30 @@ l1:
 			tmfd->cmax = HeapTupleHeaderGetCmax(tp.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resources on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = tp;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(tp.t_self), LockTupleExclusive);
 		if (vmbuffer != InvalidBuffer)
@@ -2904,8 +2929,24 @@ l1:
 	 */
 	CacheInvalidateHeapTuple(relation, &tp, NULL);
 
-	/* Now we can release the buffer */
-	ReleaseBuffer(buffer);
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = tp;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
 
 	/*
 	 * Release the lmgr tuple lock, if we had it.
@@ -2937,8 +2978,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, false /* changingPart */ , NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2965,10 +3006,11 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 }
 
 /*
- *	heap_update - replace a tuple
+ *	heap_update - replace a tuple, optionally fetching it into a slot
  *
  * See table_tuple_update() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2977,9 +3019,9 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  */
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
-			CommandId cid, Snapshot crosscheck, bool wait,
+			CommandId cid, Snapshot crosscheck, int options,
 			TM_FailureData *tmfd, LockTupleMode *lockmode,
-			TU_UpdateIndexes *update_indexes)
+			TU_UpdateIndexes *update_indexes, TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3156,7 +3198,7 @@ l2:
 	result = HeapTupleSatisfiesUpdate(&oldtup, cid, buffer);
 
 	/* see below about the "no wait" case */
-	Assert(result != TM_BeingModified || wait);
+	Assert(result != TM_BeingModified || (options & TABLE_MODIFY_WAIT));
 
 	if (result == TM_Invisible)
 	{
@@ -3165,7 +3207,7 @@ l2:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to update invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -3367,7 +3409,30 @@ l2:
 			tmfd->cmax = HeapTupleHeaderGetCmax(oldtup.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = oldtup;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(oldtup.t_self), *lockmode);
 		if (vmbuffer != InvalidBuffer)
@@ -3846,7 +3911,26 @@ l2:
 	/* Now we can release the buffer(s) */
 	if (newbuf != buffer)
 		ReleaseBuffer(newbuf);
-	ReleaseBuffer(buffer);
+
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = oldtup;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
+
 	if (BufferIsValid(vmbuffer_new))
 		ReleaseBuffer(vmbuffer_new);
 	if (BufferIsValid(vmbuffer))
@@ -4054,8 +4138,8 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, &lockmode, update_indexes);
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, &lockmode, update_indexes, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4118,12 +4202,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  *		tuples.
  *
  * Output parameters:
- *	*tuple: all fields filled in
- *	*buffer: set to buffer holding tuple (pinned but not locked at exit)
+ *	*slot: BufferHeapTupleTableSlot filled with tuple
  *	*tmfd: filled in failure cases (see below)
  *
  * Function results are the same as the ones for table_tuple_lock().
  *
+ * If *slot already contains the target tuple, it takes advantage on that by
+ * skipping the ReadBuffer() call.
+ *
  * In the failure cases other than TM_Invisible, the routine fills
  * *tmfd with the tuple's t_ctid, t_xmax (resolving a possible MultiXact,
  * if necessary), and t_cmax (the last only for TM_SelfModified,
@@ -4134,15 +4220,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  * See README.tuplock for a thorough explanation of this mechanism.
  */
 TM_Result
-heap_lock_tuple(Relation relation, HeapTuple tuple,
+heap_lock_tuple(Relation relation, ItemPointer tid, TupleTableSlot *slot,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				bool follow_updates, TM_FailureData *tmfd)
 {
 	TM_Result	result;
-	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
+	Buffer		buffer;
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 	TransactionId xid,
@@ -4154,8 +4239,24 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	bool		skip_tuple_lock = false;
 	bool		have_tuple_lock = false;
 	bool		cleared_all_frozen = false;
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	HeapTuple	tuple = &bslot->base.tupdata;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	/* Take advantage if slot already contains the relevant tuple  */
+	if (!TTS_EMPTY(slot) &&
+		slot->tts_tableOid == relation->rd_id &&
+		ItemPointerCompare(&slot->tts_tid, tid) == 0 &&
+		BufferIsValid(bslot->buffer))
+	{
+		buffer = bslot->buffer;
+		IncrBufferRefCount(buffer);
+	}
+	else
+	{
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	}
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4164,21 +4265,22 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
+	tuple->t_self = *tid;
 	tuple->t_data = (HeapTupleHeader) PageGetItem(page, lp);
 	tuple->t_len = ItemIdGetLength(lp);
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4207,7 +4309,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4359,12 +4461,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4399,7 +4501,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4427,7 +4529,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4439,7 +4541,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4467,7 +4569,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4489,7 +4591,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4514,7 +4616,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4540,7 +4642,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4580,7 +4682,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4606,12 +4708,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4633,7 +4735,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4692,9 +4794,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4757,7 +4859,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4777,7 +4879,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.xmax = xid;
@@ -4798,7 +4900,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4816,6 +4918,9 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	/* Put the target tuple to the slot */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 7c28dafb728..f9bba734899 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,6 +45,12 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
+static TM_Result heapam_tuple_lock(Relation relation, ItemPointer tid,
+								   Snapshot snapshot, TupleTableSlot *slot,
+								   CommandId cid, LockTupleMode mode,
+								   LockWaitPolicy wait_policy, uint8 flags,
+								   TM_FailureData *tmfd);
+
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -298,23 +304,55 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
-					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					Snapshot snapshot, Snapshot crosscheck, int options,
+					TM_FailureData *tmfd, bool changingPart,
+					TupleTableSlot *oldSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, options,
+						 tmfd, changingPart, oldSlot);
+
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * delete should succeed even if there are more concurrent update
+	 * attempts.
+	 */
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
+	{
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_delete().
+		 */
+		result = heapam_tuple_lock(relation, tid, snapshot,
+								   oldSlot, cid, LockTupleExclusive,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
+
+		if (result == TM_Ok)
+			return TM_Updated;
+	}
+
+	return result;
 }
 
 
 static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes)
+					int options, TM_FailureData *tmfd,
+					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
+					TupleTableSlot *oldSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -324,8 +362,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode, update_indexes);
+	result = heap_update(relation, otid, tuple, cid, crosscheck, options,
+						 tmfd, lockmode, update_indexes, oldSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -352,6 +390,31 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * update should succeed even if there are more concurrent update
+	 * attempts.
+	 */
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
+	{
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_update().
+		 */
+		result = heapam_tuple_lock(relation, otid, snapshot,
+								   oldSlot, cid, *lockmode,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
+
+		if (result == TM_Ok)
+			return TM_Updated;
+	}
+
 	return result;
 }
 
@@ -363,7 +426,6 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
 
@@ -373,9 +435,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 	Assert(TTS_IS_BUFFERTUPLE(slot));
 
 tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	result = heap_lock_tuple(relation, tid, slot, cid, mode, wait_policy,
+							 follow_updates, tmfd);
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
@@ -383,8 +444,6 @@ tuple_lock_retry:
 		/* Should not encounter speculative tuple on recheck */
 		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
-		ReleaseBuffer(buffer);
-
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
 			SnapshotData SnapshotDirty;
@@ -406,6 +465,8 @@ tuple_lock_retry:
 			InitDirtySnapshot(SnapshotDirty);
 			for (;;)
 			{
+				Buffer		buffer = InvalidBuffer;
+
 				if (ItemPointerIndicatesMovedPartitions(tid))
 					ereport(ERROR,
 							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
@@ -500,7 +561,7 @@ tuple_lock_retry:
 					/*
 					 * This is a live tuple, so try to lock it again.
 					 */
-					ReleaseBuffer(buffer);
+					ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
 					goto tuple_lock_retry;
 				}
 
@@ -511,7 +572,7 @@ tuple_lock_retry:
 				 */
 				if (tuple->t_data == NULL)
 				{
-					Assert(!BufferIsValid(buffer));
+					ReleaseBuffer(buffer);
 					return TM_Deleted;
 				}
 
@@ -564,9 +625,6 @@ tuple_lock_retry:
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
 	return result;
 }
 
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index c6bdb7e1c68..bb18dacfe11 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -297,16 +297,23 @@ simple_table_tuple_insert(Relation rel, TupleTableSlot *slot)
  * via ereport().
  */
 void
-simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
+simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_delete(rel, tid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								options,
+								&tmfd, false /* changingPart */ ,
+								oldSlot);
 
 	switch (result)
 	{
@@ -345,17 +352,24 @@ void
 simple_table_tuple_update(Relation rel, ItemPointer otid,
 						  TupleTableSlot *slot,
 						  Snapshot snapshot,
-						  TU_UpdateIndexes *update_indexes)
+						  TU_UpdateIndexes *update_indexes,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
 	LockTupleMode lockmode;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_update(rel, otid, slot,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								options,
+								&tmfd, &lockmode, update_indexes,
+								oldSlot);
 
 	switch (result)
 	{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 52177759ab5..c7095751221 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2779,8 +2779,8 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate,
 void
 ExecARDeleteTriggers(EState *estate,
 					 ResultRelInfo *relinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *slot,
 					 TransitionCaptureState *transition_capture,
 					 bool is_crosspart_update)
 {
@@ -2789,20 +2789,11 @@ ExecARDeleteTriggers(EState *estate,
 	if ((trigdesc && trigdesc->trig_delete_after_row) ||
 		(transition_capture && transition_capture->tcs_delete_old_table))
 	{
-		TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
-
-		Assert(HeapTupleIsValid(fdw_trigtuple) ^ ItemPointerIsValid(tupleid));
-		if (fdw_trigtuple == NULL)
-			GetTupleForTrigger(estate,
-							   NULL,
-							   relinfo,
-							   tupleid,
-							   LockTupleExclusive,
-							   slot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else
+		/*
+		 * Put the FDW old tuple to the slot.  Otherwise, caller is expected
+		 * to have old tuple alredy fetched to the slot.
+		 */
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, slot, false);
 
 		AfterTriggerSaveEvent(estate, relinfo, NULL, NULL,
@@ -3075,18 +3066,17 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
  * Note: 'src_partinfo' and 'dst_partinfo', when non-NULL, refer to the source
  * and destination partitions, respectively, of a cross-partition update of
  * the root partitioned table mentioned in the query, given by 'relinfo'.
- * 'tupleid' in that case refers to the ctid of the "old" tuple in the source
- * partition, and 'newslot' contains the "new" tuple in the destination
- * partition.  This interface allows to support the requirements of
- * ExecCrossPartitionUpdateForeignKey(); is_crosspart_update must be true in
- * that case.
+ * 'oldslot' contains the "old" tuple in the source partition, and 'newslot'
+ * contains the "new" tuple in the destination partition.  This interface
+ * allows to support the requirements of ExecCrossPartitionUpdateForeignKey();
+ * is_crosspart_update must be true in that case.
  */
 void
 ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 					 ResultRelInfo *src_partinfo,
 					 ResultRelInfo *dst_partinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *oldslot,
 					 TupleTableSlot *newslot,
 					 List *recheckIndexes,
 					 TransitionCaptureState *transition_capture,
@@ -3105,29 +3095,14 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 		 * separately for DELETE and INSERT to capture transition table rows.
 		 * In such case, either old tuple or new tuple can be NULL.
 		 */
-		TupleTableSlot *oldslot;
-		ResultRelInfo *tupsrc;
-
 		Assert((src_partinfo != NULL && dst_partinfo != NULL) ||
 			   !is_crosspart_update);
 
-		tupsrc = src_partinfo ? src_partinfo : relinfo;
-		oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
-
-		if (fdw_trigtuple == NULL && ItemPointerIsValid(tupleid))
-			GetTupleForTrigger(estate,
-							   NULL,
-							   tupsrc,
-							   tupleid,
-							   LockTupleExclusive,
-							   oldslot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else if (fdw_trigtuple != NULL)
+		if (fdw_trigtuple != NULL)
+		{
+			Assert(oldslot);
 			ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false);
-		else
-			ExecClearTuple(oldslot);
+		}
 
 		AfterTriggerSaveEvent(estate, relinfo,
 							  src_partinfo, dst_partinfo,
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index 81f27042bc4..f39e1e55ea8 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -583,6 +583,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 	{
 		List	   *recheckIndexes = NIL;
 		TU_UpdateIndexes update_indexes;
+		TupleTableSlot *oldSlot = NULL;
 
 		/* Compute stored generated columns */
 		if (rel->rd_att->constr &&
@@ -596,8 +597,12 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		if (rel->rd_rel->relispartition)
 			ExecPartitionCheck(resultRelInfo, slot, estate, true);
 
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_update_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		simple_table_tuple_update(rel, tid, slot, estate->es_snapshot,
-								  &update_indexes);
+								  &update_indexes, oldSlot);
 
 		if (resultRelInfo->ri_NumIndices > 0 && (update_indexes != TU_None))
 			recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
@@ -608,7 +613,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		/* AFTER ROW UPDATE Triggers */
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tid, NULL, slot,
+							 NULL, oldSlot, slot,
 							 recheckIndexes, NULL, false);
 
 		list_free(recheckIndexes);
@@ -642,12 +647,18 @@ ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
 
 	if (!skip_tuple)
 	{
+		TupleTableSlot *oldSlot = NULL;
+
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_delete_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		/* OK, delete the tuple */
-		simple_table_tuple_delete(rel, tid, estate->es_snapshot);
+		simple_table_tuple_delete(rel, tid, estate->es_snapshot, oldSlot);
 
 		/* AFTER ROW DELETE Triggers */
 		ExecARDeleteTriggers(estate, resultRelInfo,
-							 tid, NULL, NULL, false);
+							 NULL, oldSlot, NULL, false);
 	}
 }
 
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index b16fbe9e22a..ab9530cbf94 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -133,7 +133,7 @@ static void ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 											   ResultRelInfo *sourcePartInfo,
 											   ResultRelInfo *destPartInfo,
 											   ItemPointer tupleid,
-											   TupleTableSlot *oldslot,
+											   TupleTableSlot *oldSlot,
 											   TupleTableSlot *newslot);
 static bool ExecOnConflictUpdate(ModifyTableContext *context,
 								 ResultRelInfo *resultRelInfo,
@@ -570,6 +570,10 @@ ExecInitInsertProjection(ModifyTableState *mtstate,
 	resultRelInfo->ri_newTupleSlot =
 		table_slot_create(resultRelInfo->ri_RelationDesc,
 						  &estate->es_tupleTable);
+	if (node->onConflictAction == ONCONFLICT_UPDATE)
+		resultRelInfo->ri_oldTupleSlot =
+			table_slot_create(resultRelInfo->ri_RelationDesc,
+							  &estate->es_tupleTable);
 
 	/* Build ProjectionInfo if needed (it probably isn't). */
 	if (need_projection)
@@ -1159,7 +1163,7 @@ ExecInsert(ModifyTableContext *context,
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
 							 NULL,
-							 NULL,
+							 resultRelInfo->ri_oldTupleSlot,
 							 slot,
 							 NULL,
 							 mtstate->mt_transition_capture,
@@ -1339,7 +1343,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart, int options,
+			  TupleTableSlot *oldSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1347,9 +1352,10 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
-							  true /* wait for commit */ ,
+							  options /* wait for commit */ ,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  oldSlot);
 }
 
 /*
@@ -1361,7 +1367,8 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static void
 ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-				   ItemPointer tupleid, HeapTuple oldtuple, bool changingPart)
+				   ItemPointer tupleid, HeapTuple oldtuple,
+				   TupleTableSlot *slot, bool changingPart)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	EState	   *estate = context->estate;
@@ -1379,8 +1386,8 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	{
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tupleid, oldtuple,
-							 NULL, NULL, mtstate->mt_transition_capture,
+							 oldtuple,
+							 slot, NULL, NULL, mtstate->mt_transition_capture,
 							 false);
 
 		/*
@@ -1391,10 +1398,30 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 
 	/* AFTER ROW DELETE Triggers */
-	ExecARDeleteTriggers(estate, resultRelInfo, tupleid, oldtuple,
+	ExecARDeleteTriggers(estate, resultRelInfo, oldtuple, slot,
 						 ar_delete_trig_tcs, changingPart);
 }
 
+/*
+ * Initializes the tuple slot in a ResultRelInfo for DELETE action.
+ *
+ * We mark 'projectNewInfoValid' even though the projections themselves
+ * are not initialized here.
+ */
+static void
+ExecInitDeleteTupleSlot(ModifyTableState *mtstate,
+						ResultRelInfo *resultRelInfo)
+{
+	EState	   *estate = mtstate->ps.state;
+
+	Assert(!resultRelInfo->ri_projectNewInfoValid);
+
+	resultRelInfo->ri_oldTupleSlot =
+		table_slot_create(resultRelInfo->ri_RelationDesc,
+						  &estate->es_tupleTable);
+	resultRelInfo->ri_projectNewInfoValid = true;
+}
+
 /* ----------------------------------------------------------------
  *		ExecDelete
  *
@@ -1422,6 +1449,7 @@ ExecDelete(ModifyTableContext *context,
 		   ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid,
 		   HeapTuple oldtuple,
+		   TupleTableSlot *oldSlot,
 		   bool processReturning,
 		   bool changingPart,
 		   bool canSetTag,
@@ -1484,6 +1512,11 @@ ExecDelete(ModifyTableContext *context,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * delete the tuple
 		 *
@@ -1494,7 +1527,8 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   options, oldSlot);
 
 		switch (result)
 		{
@@ -1538,7 +1572,6 @@ ldelete:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
 
 					if (IsolationUsesXactSnapshot())
@@ -1547,87 +1580,29 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					EvalPlanQualBegin(context->epqstate);
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   oldSlot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1661,7 +1636,8 @@ ldelete:
 	if (tupleDeleted)
 		*tupleDeleted = true;
 
-	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple, changingPart);
+	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple,
+					   oldSlot, changingPart);
 
 	/* Process RETURNING if present and if requested */
 	if (processReturning && resultRelInfo->ri_projectReturning)
@@ -1679,17 +1655,13 @@ ldelete:
 		}
 		else
 		{
+			/* Copy old tuple to the returning slot */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
-			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
-			}
 			else
-			{
-				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
-												   SnapshotAny, slot))
-					elog(ERROR, "failed to fetch deleted tuple for DELETE RETURNING");
-			}
+				ExecCopySlot(slot, oldSlot);
+			Assert(!TupIsNull(slot));
 		}
 
 		rslot = ExecProcessReturning(resultRelInfo, slot, context->planSlot);
@@ -1788,12 +1760,16 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 		MemoryContextSwitchTo(oldcxt);
 	}
 
+	/* Make sure ri_oldTupleSlot is initialized. */
+	if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+		ExecInitUpdateProjection(mtstate, resultRelInfo);
+
 	/*
 	 * Row movement, part 1.  Delete the tuple, but skip RETURNING processing.
 	 * We want to return rows from INSERT.
 	 */
 	ExecDelete(context, resultRelInfo,
-			   tupleid, oldtuple,
+			   tupleid, oldtuple, resultRelInfo->ri_oldTupleSlot,
 			   false,			/* processReturning */
 			   true,			/* changingPart */
 			   false,			/* canSetTag */
@@ -1834,21 +1810,13 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 			return true;
 		else
 		{
-			/* Fetch the most recent version of old tuple. */
-			TupleTableSlot *oldSlot;
-
-			/* ... but first, make sure ri_oldTupleSlot is initialized. */
-			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-				ExecInitUpdateProjection(mtstate, resultRelInfo);
-			oldSlot = resultRelInfo->ri_oldTupleSlot;
-			if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
-											   tupleid,
-											   SnapshotAny,
-											   oldSlot))
-				elog(ERROR, "failed to fetch tuple being updated");
-			/* and project the new tuple to retry the UPDATE with */
+			/*
+			 * ExecDelete already fetches the most recent version of old tuple
+			 * to resultRelInfo->ri_RelationDesc.  So, just project the new
+			 * tuple to retry the UPDATE with.
+			 */
 			*retry_slot = ExecGetUpdateNewTuple(resultRelInfo, epqslot,
-												oldSlot);
+												resultRelInfo->ri_oldTupleSlot);
 			return false;
 		}
 	}
@@ -1967,7 +1935,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, int options, TupleTableSlot *oldSlot,
+			  UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2059,7 +2028,8 @@ lreplace:
 				ExecCrossPartitionUpdateForeignKey(context,
 												   resultRelInfo,
 												   insert_destrel,
-												   tupleid, slot,
+												   tupleid,
+												   resultRelInfo->ri_oldTupleSlot,
 												   inserted_tuple);
 
 			return TM_Ok;
@@ -2102,9 +2072,10 @@ lreplace:
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
-								true /* wait for commit */ ,
+								options /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								oldSlot);
 	if (result == TM_Ok)
 		updateCxt->updated = true;
 
@@ -2120,7 +2091,8 @@ lreplace:
 static void
 ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 				   ResultRelInfo *resultRelInfo, ItemPointer tupleid,
-				   HeapTuple oldtuple, TupleTableSlot *slot)
+				   HeapTuple oldtuple, TupleTableSlot *slot,
+				   TupleTableSlot *oldSlot)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	List	   *recheckIndexes = NIL;
@@ -2136,7 +2108,7 @@ ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 	/* AFTER ROW UPDATE Triggers */
 	ExecARUpdateTriggers(context->estate, resultRelInfo,
 						 NULL, NULL,
-						 tupleid, oldtuple, slot,
+						 oldtuple, oldSlot, slot,
 						 recheckIndexes,
 						 mtstate->operation == CMD_INSERT ?
 						 mtstate->mt_oc_transition_capture :
@@ -2225,7 +2197,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 	/* Perform the root table's triggers. */
 	ExecARUpdateTriggers(context->estate,
 						 rootRelInfo, sourcePartInfo, destPartInfo,
-						 tupleid, NULL, newslot, NIL, NULL, true);
+						 NULL, oldslot, newslot, NIL, NULL, true);
 }
 
 /* ----------------------------------------------------------------
@@ -2248,6 +2220,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
  *		no relevant triggers.
  *
  *		slot contains the new tuple value to be stored.
+ *		oldSlot is the slot to store the old tuple.
  *		planSlot is the output of the ModifyTable's subplan; we use it
  *		to access values from other input tables (for RETURNING),
  *		row-ID junk columns, etc.
@@ -2258,7 +2231,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   TupleTableSlot *oldSlot, bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2311,6 +2284,11 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		if (!locked && !IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * If we generate a new candidate tuple after EvalPlanQual testing, we
 		 * must loop back here to try again.  (We don't need to redo triggers,
@@ -2320,7 +2298,7 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, options, oldSlot, &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2371,88 +2349,30 @@ redo_act:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
+					Assert(!locked);
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   oldSlot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot,
+												 oldSlot);
+					goto redo_act;
 				}
 
 				break;
@@ -2476,7 +2396,7 @@ redo_act:
 		(estate->es_processed)++;
 
 	ExecUpdateEpilogue(context, &updateCxt, resultRelInfo, tupleid, oldtuple,
-					   slot);
+					   slot, oldSlot);
 
 	/* Process RETURNING if present */
 	if (resultRelInfo->ri_projectReturning)
@@ -2694,7 +2614,8 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							existing,
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2832,7 +2753,6 @@ lmerge_matched:
 	 * EvalPlanQual returns us a new tuple, which may not be visible to our
 	 * MVCC snapshot.
 	 */
-
 	if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
 									   tupleid,
 									   SnapshotAny,
@@ -2898,7 +2818,8 @@ lmerge_matched:
 					break;		/* concurrent update/delete */
 				}
 				result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
-									   newslot, false, &updateCxt);
+									   newslot, false, TABLE_MODIFY_WAIT, NULL,
+									   &updateCxt);
 
 				/*
 				 * As in ExecUpdate(), if ExecUpdateAct() reports that a
@@ -2918,7 +2839,8 @@ lmerge_matched:
 				if (result == TM_Ok && updateCxt.updated)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
-									   tupleid, NULL, newslot);
+									   tupleid, NULL, newslot,
+									   resultRelInfo->ri_oldTupleSlot);
 					mtstate->mt_merge_updated += 1;
 				}
 				break;
@@ -2932,11 +2854,12 @@ lmerge_matched:
 						return true;	/* "do nothing" */
 					break;		/* concurrent update/delete */
 				}
-				result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
+				result = ExecDeleteAct(context, resultRelInfo, tupleid,
+									   false, TABLE_MODIFY_WAIT, NULL);
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
-									   false);
+									   resultRelInfo->ri_oldTupleSlot, false);
 					mtstate->mt_merge_deleted += 1;
 				}
 				break;
@@ -3838,12 +3761,18 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, resultRelInfo->ri_oldTupleSlot,
+								  node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
+				/* Initialize slot for DELETE to fetch the old tuple */
+				if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+					ExecInitDeleteTupleSlot(node, resultRelInfo);
+
 				slot = ExecDelete(&context, resultRelInfo, tupleid, oldtuple,
-								  true, false, node->canSetTag, NULL, NULL);
+								  resultRelInfo->ri_oldTupleSlot, true, false,
+								  node->canSetTag, NULL, NULL);
 				break;
 
 			case CMD_MERGE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index a2d7a0ea72f..e220839d73c 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -276,19 +276,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  int ntuples, CommandId cid, int options,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
-							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 CommandId cid, Snapshot crosscheck, int options,
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 TupleTableSlot *oldSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
-							 CommandId cid, Snapshot crosscheck, bool wait,
+							 CommandId cid, Snapshot crosscheck, int options,
 							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
-							 TU_UpdateIndexes *update_indexes);
-extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
-								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+							 TU_UpdateIndexes *update_indexes,
+							 TupleTableSlot *oldSlot);
+extern TM_Result heap_lock_tuple(Relation relation, ItemPointer tid,
+								 TupleTableSlot *slot,
+								 CommandId cid, LockTupleMode mode,
+								 LockWaitPolicy wait_policy, bool follow_updates,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index dbb709b56ce..774e8b66d4c 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -259,6 +259,11 @@ typedef struct TM_IndexDeleteOp
 /* Follow update chain and lock latest version of tuple */
 #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION		(1 << 1)
 
+/* "options" flag bits for table_tuple_update and table_tuple_delete */
+#define TABLE_MODIFY_WAIT			0x0001
+#define TABLE_MODIFY_FETCH_OLD_TUPLE 0x0002
+#define TABLE_MODIFY_LOCK_UPDATED	0x0004
+
 
 /* Typedef for callback function for table_index_build_scan */
 typedef void (*IndexBuildCallback) (Relation index,
@@ -528,9 +533,10 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -539,10 +545,11 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 TU_UpdateIndexes *update_indexes);
+								 TU_UpdateIndexes *update_indexes,
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1457,7 +1464,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple.
+ * Delete a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1468,11 +1475,21 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	cid - delete command ID (used for visibility test, and stored into
  *		cmax if successful)
  *	crosscheck - if not InvalidSnapshot, also check tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1484,16 +1501,18 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  */
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
-				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   Snapshot snapshot, Snapshot crosscheck, int options,
+				   TM_FailureData *tmfd, bool changingPart,
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 options, tmfd, changingPart,
+										 oldSlot);
 }
 
 /*
- * Update a tuple.
+ * Update a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1505,13 +1524,23 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	cid - update command ID (used for visibility test, and stored into
  *		cmax/cmin if successful)
  *	crosscheck - if not InvalidSnapshot, also check old tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1529,13 +1558,15 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   TU_UpdateIndexes *update_indexes)
+				   int options, TM_FailureData *tmfd, LockTupleMode *lockmode,
+				   TU_UpdateIndexes *update_indexes,
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
-										 wait, tmfd,
-										 lockmode, update_indexes);
+										 options, tmfd,
+										 lockmode, update_indexes,
+										 oldSlot);
 }
 
 /*
@@ -2051,10 +2082,12 @@ table_scan_sample_next_tuple(TableScanDesc scan,
 
 extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot);
 extern void simple_table_tuple_delete(Relation rel, ItemPointer tid,
-									  Snapshot snapshot);
+									  Snapshot snapshot,
+									  TupleTableSlot *oldSlot);
 extern void simple_table_tuple_update(Relation rel, ItemPointer otid,
 									  TupleTableSlot *slot, Snapshot snapshot,
-									  TU_UpdateIndexes *update_indexes);
+									  TU_UpdateIndexes *update_indexes,
+									  TupleTableSlot *oldSlot);
 
 
 /* ----------------------------------------------------------------------------
diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h
index 430e3ca7ddf..4903b4b7bc2 100644
--- a/src/include/commands/trigger.h
+++ b/src/include/commands/trigger.h
@@ -216,8 +216,8 @@ extern bool ExecBRDeleteTriggers(EState *estate,
 								 TM_FailureData *tmfd);
 extern void ExecARDeleteTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *slot,
 								 TransitionCaptureState *transition_capture,
 								 bool is_crosspart_update);
 extern bool ExecIRDeleteTriggers(EState *estate,
@@ -240,8 +240,8 @@ extern void ExecARUpdateTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
 								 ResultRelInfo *src_partinfo,
 								 ResultRelInfo *dst_partinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *oldslot,
 								 TupleTableSlot *newslot,
 								 List *recheckIndexes,
 								 TransitionCaptureState *transition_capture,
-- 
2.39.3 (Apple Git-145)

#58Alexander Korotkov
aekorotkov@gmail.com
In reply to: Pavel Borisov (#57)
2 attachment(s)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

Hi, Pavel!

On Tue, Nov 28, 2023 at 11:00 AM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

You're designing new APIs, days before the feature freeze.

On Wed, 5 Apr 2023 at 06:54, Michael Paquier <michael@paquier.xyz> wrote:

On Tue, Apr 04, 2023 at 01:25:46AM +0300, Alexander Korotkov wrote:

Pavel, thank you for you review, revisions and rebase.
We'll reconsider this once v17 is branched.

I've looked through patches v16 once more and think they're good
enough, and previous issues are all addressed. I see that there is
nothing that blocks it from being committed except the last iteration
was days before v16 feature freeze.

Recently in another thread [1] Alexander posted a new version of
patches v16 (as 0001 and 0002) In 0001 only indenation, comments, and
commit messages changed from v16 in this thread. In 0002 new test
eval-plan-qual-2 was integrated into the existing eval-plan-qual test.
For maintaining the most recent versions in this thread I'm attaching
them under v17. I suppose that we can commit these patches to v17 if
there are no objections or additional reviews.

[1] /messages/by-id/CAPpHfdurb9ycV8udYqM=o0sPS66PJ4RCBM1g-bBpvzUfogY0EA@mail.gmail.com

The new revision of patches is attached.

It has updated commit messages, new comments, and some variables were
renamed to be more consistent with surroundings.

I also think that all the design issues spoken before are resolved.
It would be nice to hear from Andres about this.

I'll continue rechecking these patches myself.

------
Regards,
Alexander Korotkov

Attachments:

v18-0001-Allow-locking-updated-tuples-in-tuple_update-and.patchapplication/octet-stream; name=v18-0001-Allow-locking-updated-tuples-in-tuple_update-and.patchDownload
From a7d74aa9ca4485e94ff2e4bad6f65facd3574015 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Tue, 19 Mar 2024 15:18:41 +0200
Subject: [PATCH v18 1/2] Allow locking updated tuples in tuple_update() and
 tuple_delete()

Currently, in read committed transaction isolation mode (default), we have the
following sequence of actions when tuple_update()/tuple_delete() finds
the tuple updated by the concurrent transaction.

1. Attempt to update/delete tuple with tuple_update()/tuple_delete(), which
   returns TM_Updated.
2. Lock tuple with tuple_lock().
3. Re-evaluate plan qual (recheck if we still need to update/delete and
   calculate the new tuple for update).
4. Second attempt to update/delete tuple with tuple_update()/tuple_delete().
   This attempt should be successful, since the tuple was previously locked.

This commit eliminates step 2 by taking the lock during the first
tuple_update()/tuple_delete() call.  The heap table access method saves some
effort by checking the updated tuple once instead of twice.  Future
undo-based table access methods, which will start from the latest row version,
can immediately place a lock there.

Also, this commit makes tuple_update()/tuple_delete() optionally save the old
tuple into the dedicated slot.  That saves efforts on re-fetching tuples in
certain cases.

The code in nodeModifyTable.c is simplified by removing the nested switch/case.

Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
---
 src/backend/access/heap/heapam.c         | 205 +++++++++----
 src/backend/access/heap/heapam_handler.c |  94 ++++--
 src/backend/access/table/tableam.c       |  26 +-
 src/backend/commands/trigger.c           |  55 +---
 src/backend/executor/execReplication.c   |  19 +-
 src/backend/executor/nodeModifyTable.c   | 353 ++++++++++-------------
 src/include/access/heapam.h              |  19 +-
 src/include/access/tableam.h             |  73 +++--
 src/include/commands/trigger.h           |   4 +-
 9 files changed, 502 insertions(+), 346 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 34bc60f625f..f6478f89e77 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2499,10 +2499,11 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
 }
 
 /*
- *	heap_delete - delete a tuple
+ *	heap_delete - delete a tuple, optionally fetching it into a slot
  *
  * See table_tuple_delete() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2511,8 +2512,9 @@ xmax_infomask_changed(uint16 new_infomask, uint16 old_infomask)
  */
 TM_Result
 heap_delete(Relation relation, ItemPointer tid,
-			CommandId cid, Snapshot crosscheck, bool wait,
-			TM_FailureData *tmfd, bool changingPart)
+			CommandId cid, Snapshot crosscheck, int options,
+			TM_FailureData *tmfd, bool changingPart,
+			TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -2590,7 +2592,7 @@ l1:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to delete invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -2731,7 +2733,30 @@ l1:
 			tmfd->cmax = HeapTupleHeaderGetCmax(tp.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resources on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = tp;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(tp.t_self), LockTupleExclusive);
 		if (vmbuffer != InvalidBuffer)
@@ -2905,8 +2930,24 @@ l1:
 	 */
 	CacheInvalidateHeapTuple(relation, &tp, NULL);
 
-	/* Now we can release the buffer */
-	ReleaseBuffer(buffer);
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = tp;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
 
 	/*
 	 * Release the lmgr tuple lock, if we had it.
@@ -2938,8 +2979,8 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 
 	result = heap_delete(relation, tid,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, false /* changingPart */ );
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, false /* changingPart */ , NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -2966,10 +3007,11 @@ simple_heap_delete(Relation relation, ItemPointer tid)
 }
 
 /*
- *	heap_update - replace a tuple
+ *	heap_update - replace a tuple, optionally fetching it into a slot
  *
  * See table_tuple_update() for an explanation of the parameters, except that
- * this routine directly takes a tuple rather than a slot.
+ * this routine directly takes a tuple rather than a slot.  Also, we don't
+ * place a lock on the tuple in this function, just fetch the existing version.
  *
  * In the failure cases, the routine fills *tmfd with the tuple's t_ctid,
  * t_xmax (resolving a possible MultiXact, if necessary), and t_cmax (the last
@@ -2978,9 +3020,9 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  */
 TM_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
-			CommandId cid, Snapshot crosscheck, bool wait,
+			CommandId cid, Snapshot crosscheck, int options,
 			TM_FailureData *tmfd, LockTupleMode *lockmode,
-			TU_UpdateIndexes *update_indexes)
+			TU_UpdateIndexes *update_indexes, TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TransactionId xid = GetCurrentTransactionId();
@@ -3157,7 +3199,7 @@ l2:
 	result = HeapTupleSatisfiesUpdate(&oldtup, cid, buffer);
 
 	/* see below about the "no wait" case */
-	Assert(result != TM_BeingModified || wait);
+	Assert(result != TM_BeingModified || (options & TABLE_MODIFY_WAIT));
 
 	if (result == TM_Invisible)
 	{
@@ -3166,7 +3208,7 @@ l2:
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
 				 errmsg("attempted to update invisible tuple")));
 	}
-	else if (result == TM_BeingModified && wait)
+	else if (result == TM_BeingModified && (options & TABLE_MODIFY_WAIT))
 	{
 		TransactionId xwait;
 		uint16		infomask;
@@ -3370,7 +3412,30 @@ l2:
 			tmfd->cmax = HeapTupleHeaderGetCmax(oldtup.t_data);
 		else
 			tmfd->cmax = InvalidCommandId;
-		UnlockReleaseBuffer(buffer);
+
+		/*
+		 * If we're asked to lock the updated tuple, we just fetch the
+		 * existing tuple.  That let's the caller save some resouces on
+		 * placing the lock.
+		 */
+		if (result == TM_Updated &&
+			(options & TABLE_MODIFY_LOCK_UPDATED))
+		{
+			BufferHeapTupleTableSlot *bslot;
+
+			Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+			bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+			LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
+			bslot->base.tupdata = oldtup;
+			ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+										   oldSlot,
+										   buffer);
+		}
+		else
+		{
+			UnlockReleaseBuffer(buffer);
+		}
 		if (have_tuple_lock)
 			UnlockTupleTuplock(relation, &(oldtup.t_self), *lockmode);
 		if (vmbuffer != InvalidBuffer)
@@ -3849,7 +3914,26 @@ l2:
 	/* Now we can release the buffer(s) */
 	if (newbuf != buffer)
 		ReleaseBuffer(newbuf);
-	ReleaseBuffer(buffer);
+
+	/* Fetch the old tuple version if we're asked for that. */
+	if (options & TABLE_MODIFY_FETCH_OLD_TUPLE)
+	{
+		BufferHeapTupleTableSlot *bslot;
+
+		Assert(TTS_IS_BUFFERTUPLE(oldSlot));
+		bslot = (BufferHeapTupleTableSlot *) oldSlot;
+
+		bslot->base.tupdata = oldtup;
+		ExecStorePinnedBufferHeapTuple(&bslot->base.tupdata,
+									   oldSlot,
+									   buffer);
+	}
+	else
+	{
+		/* Now we can release the buffer */
+		ReleaseBuffer(buffer);
+	}
+
 	if (BufferIsValid(vmbuffer_new))
 		ReleaseBuffer(vmbuffer_new);
 	if (BufferIsValid(vmbuffer))
@@ -4057,8 +4141,8 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 
 	result = heap_update(relation, otid, tup,
 						 GetCurrentCommandId(true), InvalidSnapshot,
-						 true /* wait for commit */ ,
-						 &tmfd, &lockmode, update_indexes);
+						 TABLE_MODIFY_WAIT /* wait for commit */ ,
+						 &tmfd, &lockmode, update_indexes, NULL);
 	switch (result)
 	{
 		case TM_SelfModified:
@@ -4121,12 +4205,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  *		tuples.
  *
  * Output parameters:
- *	*tuple: all fields filled in
- *	*buffer: set to buffer holding tuple (pinned but not locked at exit)
+ *	*slot: BufferHeapTupleTableSlot filled with tuple
  *	*tmfd: filled in failure cases (see below)
  *
  * Function results are the same as the ones for table_tuple_lock().
  *
+ * If *slot already contains the target tuple, it takes advantage on that by
+ * skipping the ReadBuffer() call.
+ *
  * In the failure cases other than TM_Invisible, the routine fills
  * *tmfd with the tuple's t_ctid, t_xmax (resolving a possible MultiXact,
  * if necessary), and t_cmax (the last only for TM_SelfModified,
@@ -4137,15 +4223,14 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
  * See README.tuplock for a thorough explanation of this mechanism.
  */
 TM_Result
-heap_lock_tuple(Relation relation, HeapTuple tuple,
+heap_lock_tuple(Relation relation, ItemPointer tid, TupleTableSlot *slot,
 				CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-				bool follow_updates,
-				Buffer *buffer, TM_FailureData *tmfd)
+				bool follow_updates, TM_FailureData *tmfd)
 {
 	TM_Result	result;
-	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	Page		page;
+	Buffer		buffer;
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 	TransactionId xid,
@@ -4157,8 +4242,24 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	bool		skip_tuple_lock = false;
 	bool		have_tuple_lock = false;
 	bool		cleared_all_frozen = false;
+	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
+	HeapTuple	tuple = &bslot->base.tupdata;
+
+	Assert(TTS_IS_BUFFERTUPLE(slot));
 
-	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	/* Take advantage if slot already contains the relevant tuple  */
+	if (!TTS_EMPTY(slot) &&
+		slot->tts_tableOid == relation->rd_id &&
+		ItemPointerCompare(&slot->tts_tid, tid) == 0 &&
+		BufferIsValid(bslot->buffer))
+	{
+		buffer = bslot->buffer;
+		IncrBufferRefCount(buffer);
+	}
+	else
+	{
+		buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
+	}
 	block = ItemPointerGetBlockNumber(tid);
 
 	/*
@@ -4167,21 +4268,22 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
 	 * in the middle of changing this, so we'll need to recheck after we have
 	 * the lock.
 	 */
-	if (PageIsAllVisible(BufferGetPage(*buffer)))
+	if (PageIsAllVisible(BufferGetPage(buffer)))
 		visibilitymap_pin(relation, block, &vmbuffer);
 
-	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+	LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
-	page = BufferGetPage(*buffer);
+	page = BufferGetPage(buffer);
 	lp = PageGetItemId(page, ItemPointerGetOffsetNumber(tid));
 	Assert(ItemIdIsNormal(lp));
 
+	tuple->t_self = *tid;
 	tuple->t_data = (HeapTupleHeader) PageGetItem(page, lp);
 	tuple->t_len = ItemIdGetLength(lp);
 	tuple->t_tableOid = RelationGetRelid(relation);
 
 l3:
-	result = HeapTupleSatisfiesUpdate(tuple, cid, *buffer);
+	result = HeapTupleSatisfiesUpdate(tuple, cid, buffer);
 
 	if (result == TM_Invisible)
 	{
@@ -4210,7 +4312,7 @@ l3:
 		infomask2 = tuple->t_data->t_infomask2;
 		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
 
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 		/*
 		 * If any subtransaction of the current top transaction already holds
@@ -4362,12 +4464,12 @@ l3:
 					{
 						result = res;
 						/* recovery code expects to have buffer lock held */
-						LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+						LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 						goto failed;
 					}
 				}
 
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4402,7 +4504,7 @@ l3:
 			if (HEAP_XMAX_IS_LOCKED_ONLY(infomask) &&
 				!HEAP_XMAX_IS_EXCL_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/*
 				 * Make sure it's still an appropriate lock, else start over.
@@ -4430,7 +4532,7 @@ l3:
 					 * No conflict, but if the xmax changed under us in the
 					 * meantime, start over.
 					 */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 						!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 											 xwait))
@@ -4442,7 +4544,7 @@ l3:
 			}
 			else if (HEAP_XMAX_IS_KEYSHR_LOCKED(infomask))
 			{
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 				/* if the xmax changed in the meantime, start over */
 				if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
@@ -4470,7 +4572,7 @@ l3:
 			TransactionIdIsCurrentTransactionId(xwait))
 		{
 			/* ... but if the xmax changed in the meantime, start over */
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			if (xmax_infomask_changed(tuple->t_data->t_infomask, infomask) ||
 				!TransactionIdEquals(HeapTupleHeaderGetRawXmax(tuple->t_data),
 									 xwait))
@@ -4492,7 +4594,7 @@ l3:
 		 */
 		if (require_sleep && (result == TM_Updated || result == TM_Deleted))
 		{
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 			goto failed;
 		}
 		else if (require_sleep)
@@ -4517,7 +4619,7 @@ l3:
 				 */
 				result = TM_WouldBlock;
 				/* recovery code expects to have buffer lock held */
-				LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+				LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 				goto failed;
 			}
 
@@ -4543,7 +4645,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4583,7 +4685,7 @@ l3:
 						{
 							result = TM_WouldBlock;
 							/* recovery code expects to have buffer lock held */
-							LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+							LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 							goto failed;
 						}
 						break;
@@ -4609,12 +4711,12 @@ l3:
 				{
 					result = res;
 					/* recovery code expects to have buffer lock held */
-					LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+					LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 					goto failed;
 				}
 			}
 
-			LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+			LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 
 			/*
 			 * xwait is done, but if xwait had just locked the tuple then some
@@ -4636,7 +4738,7 @@ l3:
 				 * don't check for this in the multixact case, because some
 				 * locker transactions might still be running.
 				 */
-				UpdateXmaxHintBits(tuple->t_data, *buffer, xwait);
+				UpdateXmaxHintBits(tuple->t_data, buffer, xwait);
 			}
 		}
 
@@ -4695,9 +4797,9 @@ failed:
 	 */
 	if (vmbuffer == InvalidBuffer && PageIsAllVisible(page))
 	{
-		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+		LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 		visibilitymap_pin(relation, block, &vmbuffer);
-		LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
+		LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
 		goto l3;
 	}
 
@@ -4760,7 +4862,7 @@ failed:
 		cleared_all_frozen = true;
 
 
-	MarkBufferDirty(*buffer);
+	MarkBufferDirty(buffer);
 
 	/*
 	 * XLOG stuff.  You might think that we don't need an XLOG record because
@@ -4780,7 +4882,7 @@ failed:
 		XLogRecPtr	recptr;
 
 		XLogBeginInsert();
-		XLogRegisterBuffer(0, *buffer, REGBUF_STANDARD);
+		XLogRegisterBuffer(0, buffer, REGBUF_STANDARD);
 
 		xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self);
 		xlrec.xmax = xid;
@@ -4801,7 +4903,7 @@ failed:
 	result = TM_Ok;
 
 out_locked:
-	LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
 
 out_unlocked:
 	if (BufferIsValid(vmbuffer))
@@ -4819,6 +4921,9 @@ out_unlocked:
 	if (have_tuple_lock)
 		UnlockTupleTuplock(relation, tid, mode);
 
+	/* Put the target tuple to the slot */
+	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
+
 	return result;
 }
 
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index 680a50bf8b1..7c7204a2422 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -45,6 +45,12 @@
 #include "utils/builtins.h"
 #include "utils/rel.h"
 
+static TM_Result heapam_tuple_lock(Relation relation, ItemPointer tid,
+								   Snapshot snapshot, TupleTableSlot *slot,
+								   CommandId cid, LockTupleMode mode,
+								   LockWaitPolicy wait_policy, uint8 flags,
+								   TM_FailureData *tmfd);
+
 static void reform_and_rewrite_tuple(HeapTuple tuple,
 									 Relation OldHeap, Relation NewHeap,
 									 Datum *values, bool *isnull, RewriteState rwstate);
@@ -298,23 +304,55 @@ heapam_tuple_complete_speculative(Relation relation, TupleTableSlot *slot,
 
 static TM_Result
 heapam_tuple_delete(Relation relation, ItemPointer tid, CommandId cid,
-					Snapshot snapshot, Snapshot crosscheck, bool wait,
-					TM_FailureData *tmfd, bool changingPart)
+					Snapshot snapshot, Snapshot crosscheck, int options,
+					TM_FailureData *tmfd, bool changingPart,
+					TupleTableSlot *oldSlot)
 {
+	TM_Result	result;
+
 	/*
 	 * Currently Deleting of index tuples are handled at vacuum, in case if
 	 * the storage itself is cleaning the dead tuples by itself, it is the
 	 * time to call the index tuple deletion also.
 	 */
-	return heap_delete(relation, tid, cid, crosscheck, wait, tmfd, changingPart);
+	result = heap_delete(relation, tid, cid, crosscheck, options,
+						 tmfd, changingPart, oldSlot);
+
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * delete should succeed even if there are more concurrent update
+	 * attempts.
+	 */
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
+	{
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_delete().
+		 */
+		result = heapam_tuple_lock(relation, tid, snapshot,
+								   oldSlot, cid, LockTupleExclusive,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
+
+		if (result == TM_Ok)
+			return TM_Updated;
+	}
+
+	return result;
 }
 
 
 static TM_Result
 heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 					CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-					bool wait, TM_FailureData *tmfd,
-					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes)
+					int options, TM_FailureData *tmfd,
+					LockTupleMode *lockmode, TU_UpdateIndexes *update_indexes,
+					TupleTableSlot *oldSlot)
 {
 	bool		shouldFree = true;
 	HeapTuple	tuple = ExecFetchSlotHeapTuple(slot, true, &shouldFree);
@@ -324,8 +362,8 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	result = heap_update(relation, otid, tuple, cid, crosscheck, wait,
-						 tmfd, lockmode, update_indexes);
+	result = heap_update(relation, otid, tuple, cid, crosscheck, options,
+						 tmfd, lockmode, update_indexes, oldSlot);
 	ItemPointerCopy(&tuple->t_self, &slot->tts_tid);
 
 	/*
@@ -352,6 +390,31 @@ heapam_tuple_update(Relation relation, ItemPointer otid, TupleTableSlot *slot,
 	if (shouldFree)
 		pfree(tuple);
 
+	/*
+	 * If the tuple has been concurrently updated, then get the lock on it.
+	 * (Do only if caller asked for this by setting the
+	 * TABLE_MODIFY_LOCK_UPDATED option)  With the lock held retry of the
+	 * update should succeed even if there are more concurrent update
+	 * attempts.
+	 */
+	if (result == TM_Updated && (options & TABLE_MODIFY_LOCK_UPDATED))
+	{
+		/*
+		 * heapam_tuple_lock() will take advantage of tuple loaded into
+		 * oldSlot by heap_update().
+		 */
+		result = heapam_tuple_lock(relation, otid, snapshot,
+								   oldSlot, cid, *lockmode,
+								   (options & TABLE_MODIFY_WAIT) ?
+								   LockWaitBlock :
+								   LockWaitSkip,
+								   TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
+								   tmfd);
+
+		if (result == TM_Ok)
+			return TM_Updated;
+	}
+
 	return result;
 }
 
@@ -363,7 +426,6 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 {
 	BufferHeapTupleTableSlot *bslot = (BufferHeapTupleTableSlot *) slot;
 	TM_Result	result;
-	Buffer		buffer;
 	HeapTuple	tuple = &bslot->base.tupdata;
 	bool		follow_updates;
 
@@ -373,9 +435,8 @@ heapam_tuple_lock(Relation relation, ItemPointer tid, Snapshot snapshot,
 	Assert(TTS_IS_BUFFERTUPLE(slot));
 
 tuple_lock_retry:
-	tuple->t_self = *tid;
-	result = heap_lock_tuple(relation, tuple, cid, mode, wait_policy,
-							 follow_updates, &buffer, tmfd);
+	result = heap_lock_tuple(relation, tid, slot, cid, mode, wait_policy,
+							 follow_updates, tmfd);
 
 	if (result == TM_Updated &&
 		(flags & TUPLE_LOCK_FLAG_FIND_LAST_VERSION))
@@ -383,8 +444,6 @@ tuple_lock_retry:
 		/* Should not encounter speculative tuple on recheck */
 		Assert(!HeapTupleHeaderIsSpeculative(tuple->t_data));
 
-		ReleaseBuffer(buffer);
-
 		if (!ItemPointerEquals(&tmfd->ctid, &tuple->t_self))
 		{
 			SnapshotData SnapshotDirty;
@@ -406,6 +465,8 @@ tuple_lock_retry:
 			InitDirtySnapshot(SnapshotDirty);
 			for (;;)
 			{
+				Buffer		buffer = InvalidBuffer;
+
 				if (ItemPointerIndicatesMovedPartitions(tid))
 					ereport(ERROR,
 							(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
@@ -500,7 +561,7 @@ tuple_lock_retry:
 					/*
 					 * This is a live tuple, so try to lock it again.
 					 */
-					ReleaseBuffer(buffer);
+					ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
 					goto tuple_lock_retry;
 				}
 
@@ -511,7 +572,7 @@ tuple_lock_retry:
 				 */
 				if (tuple->t_data == NULL)
 				{
-					Assert(!BufferIsValid(buffer));
+					ReleaseBuffer(buffer);
 					return TM_Deleted;
 				}
 
@@ -564,9 +625,6 @@ tuple_lock_retry:
 	slot->tts_tableOid = RelationGetRelid(relation);
 	tuple->t_tableOid = slot->tts_tableOid;
 
-	/* store in slot, transferring existing pin */
-	ExecStorePinnedBufferHeapTuple(tuple, slot, buffer);
-
 	return result;
 }
 
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index e57a0b7ea31..8d3675be959 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -287,16 +287,23 @@ simple_table_tuple_insert(Relation rel, TupleTableSlot *slot)
  * via ereport().
  */
 void
-simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot)
+simple_table_tuple_delete(Relation rel, ItemPointer tid, Snapshot snapshot,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_delete(rel, tid,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
-								&tmfd, false /* changingPart */ );
+								options,
+								&tmfd, false /* changingPart */ ,
+								oldSlot);
 
 	switch (result)
 	{
@@ -335,17 +342,24 @@ void
 simple_table_tuple_update(Relation rel, ItemPointer otid,
 						  TupleTableSlot *slot,
 						  Snapshot snapshot,
-						  TU_UpdateIndexes *update_indexes)
+						  TU_UpdateIndexes *update_indexes,
+						  TupleTableSlot *oldSlot)
 {
 	TM_Result	result;
 	TM_FailureData tmfd;
 	LockTupleMode lockmode;
+	int			options = TABLE_MODIFY_WAIT;	/* wait for commit */
+
+	/* Fetch old tuple if the relevant slot is provided */
+	if (oldSlot)
+		options |= TABLE_MODIFY_FETCH_OLD_TUPLE;
 
 	result = table_tuple_update(rel, otid, slot,
 								GetCurrentCommandId(true),
 								snapshot, InvalidSnapshot,
-								true /* wait for commit */ ,
-								&tmfd, &lockmode, update_indexes);
+								options,
+								&tmfd, &lockmode, update_indexes,
+								oldSlot);
 
 	switch (result)
 	{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 35eb7180f7e..3309b4ebd2d 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2773,8 +2773,8 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate,
 void
 ExecARDeleteTriggers(EState *estate,
 					 ResultRelInfo *relinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *slot,
 					 TransitionCaptureState *transition_capture,
 					 bool is_crosspart_update)
 {
@@ -2783,20 +2783,11 @@ ExecARDeleteTriggers(EState *estate,
 	if ((trigdesc && trigdesc->trig_delete_after_row) ||
 		(transition_capture && transition_capture->tcs_delete_old_table))
 	{
-		TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
-
-		Assert(HeapTupleIsValid(fdw_trigtuple) ^ ItemPointerIsValid(tupleid));
-		if (fdw_trigtuple == NULL)
-			GetTupleForTrigger(estate,
-							   NULL,
-							   relinfo,
-							   tupleid,
-							   LockTupleExclusive,
-							   slot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else
+		/*
+		 * Put the FDW old tuple to the slot.  Otherwise, caller is expected
+		 * to have old tuple alredy fetched to the slot.
+		 */
+		if (fdw_trigtuple != NULL)
 			ExecForceStoreHeapTuple(fdw_trigtuple, slot, false);
 
 		AfterTriggerSaveEvent(estate, relinfo, NULL, NULL,
@@ -3087,18 +3078,17 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
  * Note: 'src_partinfo' and 'dst_partinfo', when non-NULL, refer to the source
  * and destination partitions, respectively, of a cross-partition update of
  * the root partitioned table mentioned in the query, given by 'relinfo'.
- * 'tupleid' in that case refers to the ctid of the "old" tuple in the source
- * partition, and 'newslot' contains the "new" tuple in the destination
- * partition.  This interface allows to support the requirements of
- * ExecCrossPartitionUpdateForeignKey(); is_crosspart_update must be true in
- * that case.
+ * 'oldslot' contains the "old" tuple in the source partition, and 'newslot'
+ * contains the "new" tuple in the destination partition.  This interface
+ * allows to support the requirements of ExecCrossPartitionUpdateForeignKey();
+ * is_crosspart_update must be true in that case.
  */
 void
 ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 					 ResultRelInfo *src_partinfo,
 					 ResultRelInfo *dst_partinfo,
-					 ItemPointer tupleid,
 					 HeapTuple fdw_trigtuple,
+					 TupleTableSlot *oldslot,
 					 TupleTableSlot *newslot,
 					 List *recheckIndexes,
 					 TransitionCaptureState *transition_capture,
@@ -3117,29 +3107,14 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 		 * separately for DELETE and INSERT to capture transition table rows.
 		 * In such case, either old tuple or new tuple can be NULL.
 		 */
-		TupleTableSlot *oldslot;
-		ResultRelInfo *tupsrc;
-
 		Assert((src_partinfo != NULL && dst_partinfo != NULL) ||
 			   !is_crosspart_update);
 
-		tupsrc = src_partinfo ? src_partinfo : relinfo;
-		oldslot = ExecGetTriggerOldSlot(estate, tupsrc);
-
-		if (fdw_trigtuple == NULL && ItemPointerIsValid(tupleid))
-			GetTupleForTrigger(estate,
-							   NULL,
-							   tupsrc,
-							   tupleid,
-							   LockTupleExclusive,
-							   oldslot,
-							   NULL,
-							   NULL,
-							   NULL);
-		else if (fdw_trigtuple != NULL)
+		if (fdw_trigtuple != NULL)
+		{
+			Assert(oldslot);
 			ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false);
-		else
-			ExecClearTuple(oldslot);
+		}
 
 		AfterTriggerSaveEvent(estate, relinfo,
 							  src_partinfo, dst_partinfo,
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index d0a89cd5778..0cad843fb69 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -577,6 +577,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 	{
 		List	   *recheckIndexes = NIL;
 		TU_UpdateIndexes update_indexes;
+		TupleTableSlot *oldSlot = NULL;
 
 		/* Compute stored generated columns */
 		if (rel->rd_att->constr &&
@@ -590,8 +591,12 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		if (rel->rd_rel->relispartition)
 			ExecPartitionCheck(resultRelInfo, slot, estate, true);
 
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_update_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		simple_table_tuple_update(rel, tid, slot, estate->es_snapshot,
-								  &update_indexes);
+								  &update_indexes, oldSlot);
 
 		if (resultRelInfo->ri_NumIndices > 0 && (update_indexes != TU_None))
 			recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
@@ -602,7 +607,7 @@ ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
 		/* AFTER ROW UPDATE Triggers */
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tid, NULL, slot,
+							 NULL, oldSlot, slot,
 							 recheckIndexes, NULL, false);
 
 		list_free(recheckIndexes);
@@ -636,12 +641,18 @@ ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
 
 	if (!skip_tuple)
 	{
+		TupleTableSlot *oldSlot = NULL;
+
+		if (resultRelInfo->ri_TrigDesc &&
+			resultRelInfo->ri_TrigDesc->trig_delete_after_row)
+			oldSlot = ExecGetTriggerOldSlot(estate, resultRelInfo);
+
 		/* OK, delete the tuple */
-		simple_table_tuple_delete(rel, tid, estate->es_snapshot);
+		simple_table_tuple_delete(rel, tid, estate->es_snapshot, oldSlot);
 
 		/* AFTER ROW DELETE Triggers */
 		ExecARDeleteTriggers(estate, resultRelInfo,
-							 tid, NULL, NULL, false);
+							 NULL, oldSlot, NULL, false);
 	}
 }
 
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index 4abfe82f7fb..79257416426 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -566,6 +566,15 @@ ExecInitInsertProjection(ModifyTableState *mtstate,
 		table_slot_create(resultRelInfo->ri_RelationDesc,
 						  &estate->es_tupleTable);
 
+	/*
+	 * In the ON CONFLICT UPDATE case, we will also need a slot for the old
+	 * tuple to calculate the updated tuple on its base.
+	 */
+	if (node->onConflictAction == ONCONFLICT_UPDATE)
+		resultRelInfo->ri_oldTupleSlot =
+			table_slot_create(resultRelInfo->ri_RelationDesc,
+							  &estate->es_tupleTable);
+
 	/* Build ProjectionInfo if needed (it probably isn't). */
 	if (need_projection)
 	{
@@ -1154,7 +1163,7 @@ ExecInsert(ModifyTableContext *context,
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
 							 NULL,
-							 NULL,
+							 resultRelInfo->ri_oldTupleSlot,
 							 slot,
 							 NULL,
 							 mtstate->mt_transition_capture,
@@ -1334,7 +1343,8 @@ ExecDeletePrologue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  */
 static TM_Result
 ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-			  ItemPointer tupleid, bool changingPart)
+			  ItemPointer tupleid, bool changingPart, int options,
+			  TupleTableSlot *oldSlot)
 {
 	EState	   *estate = context->estate;
 
@@ -1342,9 +1352,10 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 							  estate->es_output_cid,
 							  estate->es_snapshot,
 							  estate->es_crosscheck_snapshot,
-							  true /* wait for commit */ ,
+							  options,
 							  &context->tmfd,
-							  changingPart);
+							  changingPart,
+							  oldSlot);
 }
 
 /*
@@ -1353,10 +1364,15 @@ ExecDeleteAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  * Closing steps of tuple deletion; this invokes AFTER FOR EACH ROW triggers,
  * including the UPDATE triggers if the deletion is being done as part of a
  * cross-partition tuple move.
+ *
+ * The old tuple is already fetched into ‘slot’ for regular tables.  For FDW,
+ * the old tuple is given as 'oldtuple' and is to be stored in 'slot' when
+ * needed.
  */
 static void
 ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
-				   ItemPointer tupleid, HeapTuple oldtuple, bool changingPart)
+				   ItemPointer tupleid, HeapTuple oldtuple,
+				   TupleTableSlot *slot, bool changingPart)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	EState	   *estate = context->estate;
@@ -1374,8 +1390,8 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	{
 		ExecARUpdateTriggers(estate, resultRelInfo,
 							 NULL, NULL,
-							 tupleid, oldtuple,
-							 NULL, NULL, mtstate->mt_transition_capture,
+							 oldtuple,
+							 slot, NULL, NULL, mtstate->mt_transition_capture,
 							 false);
 
 		/*
@@ -1386,10 +1402,30 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 
 	/* AFTER ROW DELETE Triggers */
-	ExecARDeleteTriggers(estate, resultRelInfo, tupleid, oldtuple,
+	ExecARDeleteTriggers(estate, resultRelInfo, oldtuple, slot,
 						 ar_delete_trig_tcs, changingPart);
 }
 
+/*
+ * Initializes the tuple slot in a ResultRelInfo for DELETE action.
+ *
+ * We mark 'projectNewInfoValid' even though the projections themselves
+ * are not initialized here.
+ */
+static void
+ExecInitDeleteTupleSlot(ModifyTableState *mtstate,
+						ResultRelInfo *resultRelInfo)
+{
+	EState	   *estate = mtstate->ps.state;
+
+	Assert(!resultRelInfo->ri_projectNewInfoValid);
+
+	resultRelInfo->ri_oldTupleSlot =
+		table_slot_create(resultRelInfo->ri_RelationDesc,
+						  &estate->es_tupleTable);
+	resultRelInfo->ri_projectNewInfoValid = true;
+}
+
 /* ----------------------------------------------------------------
  *		ExecDelete
  *
@@ -1409,7 +1445,8 @@ ExecDeleteEpilogue(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
  *		part of an UPDATE of partition-key, then the slot returned by
  *		EvalPlanQual() is passed back using output parameter epqreturnslot.
  *
- *		Returns RETURNING result if any, otherwise NULL.
+ *		Returns RETURNING result if any, otherwise NULL.  The deleted tuple
+ *		to be stored into oldslot independently that.
  * ----------------------------------------------------------------
  */
 static TupleTableSlot *
@@ -1417,6 +1454,7 @@ ExecDelete(ModifyTableContext *context,
 		   ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid,
 		   HeapTuple oldtuple,
+		   TupleTableSlot *oldslot,
 		   bool processReturning,
 		   bool changingPart,
 		   bool canSetTag,
@@ -1480,6 +1518,15 @@ ExecDelete(ModifyTableContext *context,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		/*
+		 * Specify that we need to lock and fetch the last tuple version for
+		 * EPQ on appropriate transaction isolation levels.
+		 */
+		if (!IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * delete the tuple
 		 *
@@ -1490,7 +1537,8 @@ ExecDelete(ModifyTableContext *context,
 		 * transaction-snapshot mode transactions.
 		 */
 ldelete:
-		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart);
+		result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart,
+							   options, oldslot);
 
 		if (tmresult)
 			*tmresult = result;
@@ -1537,7 +1585,6 @@ ldelete:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
 
 					if (IsolationUsesXactSnapshot())
@@ -1546,87 +1593,29 @@ ldelete:
 								 errmsg("could not serialize access due to concurrent update")));
 
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					EvalPlanQualBegin(context->epqstate);
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  LockTupleExclusive, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   oldslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
 
-					switch (result)
+					/*
+					 * If requested, skip delete and pass back the updated
+					 * row.
+					 */
+					if (epqreturnslot)
 					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/*
-							 * If requested, skip delete and pass back the
-							 * updated row.
-							 */
-							if (epqreturnslot)
-							{
-								*epqreturnslot = epqslot;
-								return NULL;
-							}
-							else
-								goto ldelete;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously updated by this
-							 * command, ignore the delete, otherwise error
-							 * out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_delete() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be deleted was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						default:
-
-							/*
-							 * TM_Invisible should be impossible because we're
-							 * waiting for updated row versions, and would
-							 * already have errored out if the first version
-							 * is invisible.
-							 *
-							 * TM_Updated should be impossible, because we're
-							 * locking the latest version via
-							 * TUPLE_LOCK_FLAG_FIND_LAST_VERSION.
-							 */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
+						*epqreturnslot = epqslot;
+						return NULL;
 					}
-
-					Assert(false);
-					break;
+					else
+						goto ldelete;
 				}
 
 			case TM_Deleted:
@@ -1660,7 +1649,8 @@ ldelete:
 	if (tupleDeleted)
 		*tupleDeleted = true;
 
-	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple, changingPart);
+	ExecDeleteEpilogue(context, resultRelInfo, tupleid, oldtuple,
+					   oldslot, changingPart);
 
 	/* Process RETURNING if present and if requested */
 	if (processReturning && resultRelInfo->ri_projectReturning)
@@ -1678,17 +1668,13 @@ ldelete:
 		}
 		else
 		{
+			/* Copy old tuple to the returning slot */
 			slot = ExecGetReturningSlot(estate, resultRelInfo);
 			if (oldtuple != NULL)
-			{
 				ExecForceStoreHeapTuple(oldtuple, slot, false);
-			}
 			else
-			{
-				if (!table_tuple_fetch_row_version(resultRelationDesc, tupleid,
-												   SnapshotAny, slot))
-					elog(ERROR, "failed to fetch deleted tuple for DELETE RETURNING");
-			}
+				ExecCopySlot(slot, oldslot);
+			Assert(!TupIsNull(slot));
 		}
 
 		rslot = ExecProcessReturning(resultRelInfo, slot, context->planSlot);
@@ -1788,12 +1774,19 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 		MemoryContextSwitchTo(oldcxt);
 	}
 
+	/*
+	 * Make sure ri_oldTupleSlot is initialized.  The old tuple is to be saved
+	 * there by ExecDelete() to save effort on further re-fetching.
+	 */
+	if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+		ExecInitUpdateProjection(mtstate, resultRelInfo);
+
 	/*
 	 * Row movement, part 1.  Delete the tuple, but skip RETURNING processing.
 	 * We want to return rows from INSERT.
 	 */
 	ExecDelete(context, resultRelInfo,
-			   tupleid, oldtuple,
+			   tupleid, oldtuple, resultRelInfo->ri_oldTupleSlot,
 			   false,			/* processReturning */
 			   true,			/* changingPart */
 			   false,			/* canSetTag */
@@ -1834,21 +1827,13 @@ ExecCrossPartitionUpdate(ModifyTableContext *context,
 			return true;
 		else
 		{
-			/* Fetch the most recent version of old tuple. */
-			TupleTableSlot *oldSlot;
-
-			/* ... but first, make sure ri_oldTupleSlot is initialized. */
-			if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-				ExecInitUpdateProjection(mtstate, resultRelInfo);
-			oldSlot = resultRelInfo->ri_oldTupleSlot;
-			if (!table_tuple_fetch_row_version(resultRelInfo->ri_RelationDesc,
-											   tupleid,
-											   SnapshotAny,
-											   oldSlot))
-				elog(ERROR, "failed to fetch tuple being updated");
-			/* and project the new tuple to retry the UPDATE with */
+			/*
+			 * ExecDelete already fetches the most recent version of old tuple
+			 * to resultRelInfo->ri_oldTupleSlot.  So, just project the new
+			 * tuple to retry the UPDATE with.
+			 */
 			*retry_slot = ExecGetUpdateNewTuple(resultRelInfo, epqslot,
-												oldSlot);
+												resultRelInfo->ri_oldTupleSlot);
 			return false;
 		}
 	}
@@ -1967,7 +1952,8 @@ ExecUpdatePrepareSlot(ResultRelInfo *resultRelInfo,
 static TM_Result
 ExecUpdateAct(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 			  ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-			  bool canSetTag, UpdateContext *updateCxt)
+			  bool canSetTag, int options, TupleTableSlot *oldSlot,
+			  UpdateContext *updateCxt)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2059,7 +2045,8 @@ lreplace:
 				ExecCrossPartitionUpdateForeignKey(context,
 												   resultRelInfo,
 												   insert_destrel,
-												   tupleid, slot,
+												   tupleid,
+												   resultRelInfo->ri_oldTupleSlot,
 												   inserted_tuple);
 
 			return TM_Ok;
@@ -2102,9 +2089,10 @@ lreplace:
 								estate->es_output_cid,
 								estate->es_snapshot,
 								estate->es_crosscheck_snapshot,
-								true /* wait for commit */ ,
+								options /* wait for commit */ ,
 								&context->tmfd, &updateCxt->lockmode,
-								&updateCxt->updateIndexes);
+								&updateCxt->updateIndexes,
+								oldSlot);
 
 	return result;
 }
@@ -2118,7 +2106,8 @@ lreplace:
 static void
 ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 				   ResultRelInfo *resultRelInfo, ItemPointer tupleid,
-				   HeapTuple oldtuple, TupleTableSlot *slot)
+				   HeapTuple oldtuple, TupleTableSlot *slot,
+				   TupleTableSlot *oldslot)
 {
 	ModifyTableState *mtstate = context->mtstate;
 	List	   *recheckIndexes = NIL;
@@ -2134,7 +2123,7 @@ ExecUpdateEpilogue(ModifyTableContext *context, UpdateContext *updateCxt,
 	/* AFTER ROW UPDATE Triggers */
 	ExecARUpdateTriggers(context->estate, resultRelInfo,
 						 NULL, NULL,
-						 tupleid, oldtuple, slot,
+						 oldtuple, oldslot, slot,
 						 recheckIndexes,
 						 mtstate->operation == CMD_INSERT ?
 						 mtstate->mt_oc_transition_capture :
@@ -2223,7 +2212,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 	/* Perform the root table's triggers. */
 	ExecARUpdateTriggers(context->estate,
 						 rootRelInfo, sourcePartInfo, destPartInfo,
-						 tupleid, NULL, newslot, NIL, NULL, true);
+						 NULL, oldslot, newslot, NIL, NULL, true);
 }
 
 /* ----------------------------------------------------------------
@@ -2246,6 +2235,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
  *		no relevant triggers.
  *
  *		slot contains the new tuple value to be stored.
+ *		oldslot is the slot to store the old tuple.
  *		planSlot is the output of the ModifyTable's subplan; we use it
  *		to access values from other input tables (for RETURNING),
  *		row-ID junk columns, etc.
@@ -2256,7 +2246,7 @@ ExecCrossPartitionUpdateForeignKey(ModifyTableContext *context,
 static TupleTableSlot *
 ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
-		   bool canSetTag)
+		   TupleTableSlot *oldslot, bool canSetTag, bool locked)
 {
 	EState	   *estate = context->estate;
 	Relation	resultRelationDesc = resultRelInfo->ri_RelationDesc;
@@ -2309,6 +2299,16 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 	}
 	else
 	{
+		int			options = TABLE_MODIFY_WAIT | TABLE_MODIFY_FETCH_OLD_TUPLE;
+
+		/*
+		 * Specify that we need to lock and fetch the last tuple version for
+		 * EPQ on appropriate transaction isolation levels if the tuple isn't
+		 * locked already.
+		 */
+		if (!locked && !IsolationUsesXactSnapshot())
+			options |= TABLE_MODIFY_LOCK_UPDATED;
+
 		/*
 		 * If we generate a new candidate tuple after EvalPlanQual testing, we
 		 * must loop back here to try again.  (We don't need to redo triggers,
@@ -2318,7 +2318,7 @@ ExecUpdate(ModifyTableContext *context, ResultRelInfo *resultRelInfo,
 		 */
 redo_act:
 		result = ExecUpdateAct(context, resultRelInfo, tupleid, oldtuple, slot,
-							   canSetTag, &updateCxt);
+							   canSetTag, options, oldslot, &updateCxt);
 
 		/*
 		 * If ExecUpdateAct reports that a cross-partition update was done,
@@ -2369,88 +2369,32 @@ redo_act:
 
 			case TM_Updated:
 				{
-					TupleTableSlot *inputslot;
 					TupleTableSlot *epqslot;
-					TupleTableSlot *oldSlot;
 
 					if (IsolationUsesXactSnapshot())
 						ereport(ERROR,
 								(errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
 								 errmsg("could not serialize access due to concurrent update")));
 
+					/* Shouldn't get there if the tuple was previously locked */
+					Assert(!locked);
+
 					/*
-					 * Already know that we're going to need to do EPQ, so
-					 * fetch tuple directly into the right slot.
+					 * We need to do EPQ. The latest tuple is already found
+					 * and locked as a result of TABLE_MODIFY_LOCK_UPDATED.
 					 */
-					inputslot = EvalPlanQualSlot(context->epqstate, resultRelationDesc,
-												 resultRelInfo->ri_RangeTableIndex);
-
-					result = table_tuple_lock(resultRelationDesc, tupleid,
-											  estate->es_snapshot,
-											  inputslot, estate->es_output_cid,
-											  updateCxt.lockmode, LockWaitBlock,
-											  TUPLE_LOCK_FLAG_FIND_LAST_VERSION,
-											  &context->tmfd);
-
-					switch (result)
-					{
-						case TM_Ok:
-							Assert(context->tmfd.traversed);
-
-							epqslot = EvalPlanQual(context->epqstate,
-												   resultRelationDesc,
-												   resultRelInfo->ri_RangeTableIndex,
-												   inputslot);
-							if (TupIsNull(epqslot))
-								/* Tuple not passing quals anymore, exiting... */
-								return NULL;
-
-							/* Make sure ri_oldTupleSlot is initialized. */
-							if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
-								ExecInitUpdateProjection(context->mtstate,
-														 resultRelInfo);
-
-							/* Fetch the most recent version of old tuple. */
-							oldSlot = resultRelInfo->ri_oldTupleSlot;
-							if (!table_tuple_fetch_row_version(resultRelationDesc,
-															   tupleid,
-															   SnapshotAny,
-															   oldSlot))
-								elog(ERROR, "failed to fetch tuple being updated");
-							slot = ExecGetUpdateNewTuple(resultRelInfo,
-														 epqslot, oldSlot);
-							goto redo_act;
-
-						case TM_Deleted:
-							/* tuple already deleted; nothing to do */
-							return NULL;
-
-						case TM_SelfModified:
-
-							/*
-							 * This can be reached when following an update
-							 * chain from a tuple updated by another session,
-							 * reaching a tuple that was already updated in
-							 * this transaction. If previously modified by
-							 * this command, ignore the redundant update,
-							 * otherwise error out.
-							 *
-							 * See also TM_SelfModified response to
-							 * table_tuple_update() above.
-							 */
-							if (context->tmfd.cmax != estate->es_output_cid)
-								ereport(ERROR,
-										(errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION),
-										 errmsg("tuple to be updated was already modified by an operation triggered by the current command"),
-										 errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows.")));
-							return NULL;
-
-						default:
-							/* see table_tuple_lock call in ExecDelete() */
-							elog(ERROR, "unexpected table_tuple_lock status: %u",
-								 result);
-							return NULL;
-					}
+					Assert(context->tmfd.traversed);
+					epqslot = EvalPlanQual(context->epqstate,
+										   resultRelationDesc,
+										   resultRelInfo->ri_RangeTableIndex,
+										   oldslot);
+					if (TupIsNull(epqslot))
+						/* Tuple not passing quals anymore, exiting... */
+						return NULL;
+					slot = ExecGetUpdateNewTuple(resultRelInfo,
+												 epqslot,
+												 oldslot);
+					goto redo_act;
 				}
 
 				break;
@@ -2474,7 +2418,7 @@ redo_act:
 		(estate->es_processed)++;
 
 	ExecUpdateEpilogue(context, &updateCxt, resultRelInfo, tupleid, oldtuple,
-					   slot);
+					   slot, oldslot);
 
 	/* Process RETURNING if present */
 	if (resultRelInfo->ri_projectReturning)
@@ -2692,7 +2636,8 @@ ExecOnConflictUpdate(ModifyTableContext *context,
 	*returning = ExecUpdate(context, resultRelInfo,
 							conflictTid, NULL,
 							resultRelInfo->ri_onConflict->oc_ProjSlot,
-							canSetTag);
+							existing,
+							canSetTag, true);
 
 	/*
 	 * Clear out existing tuple, as there might not be another conflict among
@@ -2934,6 +2879,7 @@ lmerge_matched:
 				{
 					result = ExecUpdateAct(context, resultRelInfo, tupleid,
 										   NULL, newslot, canSetTag,
+										   TABLE_MODIFY_WAIT, NULL,
 										   &updateCxt);
 
 					/*
@@ -2956,7 +2902,8 @@ lmerge_matched:
 				if (result == TM_Ok)
 				{
 					ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
-									   tupleid, NULL, newslot);
+									   tupleid, NULL, newslot,
+									   resultRelInfo->ri_oldTupleSlot);
 					mtstate->mt_merge_updated += 1;
 				}
 				break;
@@ -2987,12 +2934,12 @@ lmerge_matched:
 				}
 				else
 					result = ExecDeleteAct(context, resultRelInfo, tupleid,
-										   false);
+										   false, TABLE_MODIFY_WAIT, NULL);
 
 				if (result == TM_Ok)
 				{
 					ExecDeleteEpilogue(context, resultRelInfo, tupleid, NULL,
-									   false);
+									   resultRelInfo->ri_oldTupleSlot, false);
 					mtstate->mt_merge_deleted += 1;
 				}
 				break;
@@ -4006,12 +3953,18 @@ ExecModifyTable(PlanState *pstate)
 
 				/* Now apply the update. */
 				slot = ExecUpdate(&context, resultRelInfo, tupleid, oldtuple,
-								  slot, node->canSetTag);
+								  slot, resultRelInfo->ri_oldTupleSlot,
+								  node->canSetTag, false);
 				break;
 
 			case CMD_DELETE:
+				/* Initialize slot for DELETE to fetch the old tuple */
+				if (unlikely(!resultRelInfo->ri_projectNewInfoValid))
+					ExecInitDeleteTupleSlot(node, resultRelInfo);
+
 				slot = ExecDelete(&context, resultRelInfo, tupleid, oldtuple,
-								  true, false, node->canSetTag, NULL, NULL, NULL);
+								  resultRelInfo->ri_oldTupleSlot, true, false,
+								  node->canSetTag, NULL, NULL, NULL);
 				break;
 
 			case CMD_MERGE:
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 4b133f68593..45954b8003d 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -276,19 +276,22 @@ extern void heap_multi_insert(Relation relation, struct TupleTableSlot **slots,
 							  int ntuples, CommandId cid, int options,
 							  BulkInsertState bistate);
 extern TM_Result heap_delete(Relation relation, ItemPointer tid,
-							 CommandId cid, Snapshot crosscheck, bool wait,
-							 struct TM_FailureData *tmfd, bool changingPart);
+							 CommandId cid, Snapshot crosscheck, int options,
+							 struct TM_FailureData *tmfd, bool changingPart,
+							 TupleTableSlot *oldSlot);
 extern void heap_finish_speculative(Relation relation, ItemPointer tid);
 extern void heap_abort_speculative(Relation relation, ItemPointer tid);
 extern TM_Result heap_update(Relation relation, ItemPointer otid,
 							 HeapTuple newtup,
-							 CommandId cid, Snapshot crosscheck, bool wait,
+							 CommandId cid, Snapshot crosscheck, int options,
 							 struct TM_FailureData *tmfd, LockTupleMode *lockmode,
-							 TU_UpdateIndexes *update_indexes);
-extern TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
-								 CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy,
-								 bool follow_updates,
-								 Buffer *buffer, struct TM_FailureData *tmfd);
+							 TU_UpdateIndexes *update_indexes,
+							 TupleTableSlot *oldSlot);
+extern TM_Result heap_lock_tuple(Relation relation, ItemPointer tid,
+								 TupleTableSlot *slot,
+								 CommandId cid, LockTupleMode mode,
+								 LockWaitPolicy wait_policy, bool follow_updates,
+								 struct TM_FailureData *tmfd);
 
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_prepare_freeze_tuple(HeapTupleHeader tuple,
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index 8249b37bbf1..b35a22506c0 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -259,6 +259,15 @@ typedef struct TM_IndexDeleteOp
 /* Follow update chain and lock latest version of tuple */
 #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION		(1 << 1)
 
+/*
+ * "options" flag bits for table_tuple_update and table_tuple_delete,
+ * Wait for any conflicting update to commit/abort */
+#define TABLE_MODIFY_WAIT			0x0001
+/* Fetch the existing tuple into a dedicated slot */
+#define TABLE_MODIFY_FETCH_OLD_TUPLE 0x0002
+/* On concurrent update, follow the update chain and lock latest version of tuple */
+#define TABLE_MODIFY_LOCK_UPDATED	0x0004
+
 
 /* Typedef for callback function for table_index_build_scan */
 typedef void (*IndexBuildCallback) (Relation index,
@@ -528,9 +537,10 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
-								 bool changingPart);
+								 bool changingPart,
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_update() for reference about parameters */
 	TM_Result	(*tuple_update) (Relation rel,
@@ -539,10 +549,11 @@ typedef struct TableAmRoutine
 								 CommandId cid,
 								 Snapshot snapshot,
 								 Snapshot crosscheck,
-								 bool wait,
+								 int options,
 								 TM_FailureData *tmfd,
 								 LockTupleMode *lockmode,
-								 TU_UpdateIndexes *update_indexes);
+								 TU_UpdateIndexes *update_indexes,
+								 TupleTableSlot *oldSlot);
 
 	/* see table_tuple_lock() for reference about parameters */
 	TM_Result	(*tuple_lock) (Relation rel,
@@ -1452,7 +1463,7 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
 }
 
 /*
- * Delete a tuple.
+ * Delete a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_delete instead.
@@ -1463,11 +1474,21 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  *	cid - delete command ID (used for visibility test, and stored into
  *		cmax if successful)
  *	crosscheck - if not InvalidSnapshot, also check tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	changingPart - true iff the tuple is being moved to another partition
  *		table due to an update of the partition key. Otherwise, false.
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
  *
  * Normal, successful return value is TM_Ok, which means we did actually
  * delete it.  Failure return codes are TM_SelfModified, TM_Updated, and
@@ -1479,16 +1500,18 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots,
  */
 static inline TM_Result
 table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
-				   Snapshot snapshot, Snapshot crosscheck, bool wait,
-				   TM_FailureData *tmfd, bool changingPart)
+				   Snapshot snapshot, Snapshot crosscheck, int options,
+				   TM_FailureData *tmfd, bool changingPart,
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_delete(rel, tid, cid,
 										 snapshot, crosscheck,
-										 wait, tmfd, changingPart);
+										 options, tmfd, changingPart,
+										 oldSlot);
 }
 
 /*
- * Update a tuple.
+ * Update a tuple (and optionally lock the last tuple version).
  *
  * NB: do not call this directly unless you are prepared to deal with
  * concurrent-update conditions.  Use simple_table_tuple_update instead.
@@ -1500,13 +1523,23 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
  *	cid - update command ID (used for visibility test, and stored into
  *		cmax/cmin if successful)
  *	crosscheck - if not InvalidSnapshot, also check old tuple against this
- *	wait - true if should wait for any conflicting update to commit/abort
+ *	options:
+ *		If TABLE_MODIFY_WAIT, wait for any conflicting update to commit/abort.
+ *		If TABLE_MODIFY_FETCH_OLD_TUPLE option is given, the existing tuple is
+ *		fetched into oldSlot when the update is successful.
+ *		If TABLE_MODIFY_LOCK_UPDATED option is given and the tuple is
+ *		concurrently updated, then the last tuple version is locked and fetched
+ *		into oldSlot.
+ *
  * Output parameters:
  *	tmfd - filled in failure cases (see below)
  *	lockmode - filled with lock mode acquired on tuple
  *  update_indexes - in success cases this is set to true if new index entries
  *		are required for this tuple
- *
+ *	oldSlot - slot to save the deleted or locked tuple. Can be NULL if none of
+ *		TABLE_MODIFY_FETCH_OLD_TUPLE or TABLE_MODIFY_LOCK_UPDATED options
+ *		is specified.
+
  * Normal, successful return value is TM_Ok, which means we did actually
  * update it.  Failure return codes are TM_SelfModified, TM_Updated, and
  * TM_BeingModified (the last only possible if wait == false).
@@ -1524,13 +1557,15 @@ table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid,
 static inline TM_Result
 table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot,
 				   CommandId cid, Snapshot snapshot, Snapshot crosscheck,
-				   bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode,
-				   TU_UpdateIndexes *update_indexes)
+				   int options, TM_FailureData *tmfd, LockTupleMode *lockmode,
+				   TU_UpdateIndexes *update_indexes,
+				   TupleTableSlot *oldSlot)
 {
 	return rel->rd_tableam->tuple_update(rel, otid, slot,
 										 cid, snapshot, crosscheck,
-										 wait, tmfd,
-										 lockmode, update_indexes);
+										 options, tmfd,
+										 lockmode, update_indexes,
+										 oldSlot);
 }
 
 /*
@@ -2046,10 +2081,12 @@ table_scan_sample_next_tuple(TableScanDesc scan,
 
 extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot);
 extern void simple_table_tuple_delete(Relation rel, ItemPointer tid,
-									  Snapshot snapshot);
+									  Snapshot snapshot,
+									  TupleTableSlot *oldSlot);
 extern void simple_table_tuple_update(Relation rel, ItemPointer otid,
 									  TupleTableSlot *slot, Snapshot snapshot,
-									  TU_UpdateIndexes *update_indexes);
+									  TU_UpdateIndexes *update_indexes,
+									  TupleTableSlot *oldSlot);
 
 
 /* ----------------------------------------------------------------------------
diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h
index 8a5a9fe6422..cb968d03ecd 100644
--- a/src/include/commands/trigger.h
+++ b/src/include/commands/trigger.h
@@ -216,8 +216,8 @@ extern bool ExecBRDeleteTriggers(EState *estate,
 								 TM_FailureData *tmfd);
 extern void ExecARDeleteTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *slot,
 								 TransitionCaptureState *transition_capture,
 								 bool is_crosspart_update);
 extern bool ExecIRDeleteTriggers(EState *estate,
@@ -240,8 +240,8 @@ extern void ExecARUpdateTriggers(EState *estate,
 								 ResultRelInfo *relinfo,
 								 ResultRelInfo *src_partinfo,
 								 ResultRelInfo *dst_partinfo,
-								 ItemPointer tupleid,
 								 HeapTuple fdw_trigtuple,
+								 TupleTableSlot *oldslot,
 								 TupleTableSlot *newslot,
 								 List *recheckIndexes,
 								 TransitionCaptureState *transition_capture,
-- 
2.39.3 (Apple Git-145)

v18-0002-Add-EvalPlanQual-delete-returning-isolation-test.patchapplication/octet-stream; name=v18-0002-Add-EvalPlanQual-delete-returning-isolation-test.patchDownload
From ecec5757f7209da1c1933925eb8da7f8ec2788d0 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Wed, 22 Mar 2023 16:47:09 -0700
Subject: [PATCH v18 2/2] Add EvalPlanQual delete returning isolation test

Author: Andres Freund
Reviewed-by: Pavel Borisov
Discussion: https://www.postgresql.org/message-id/flat/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
---
 .../isolation/expected/eval-plan-qual.out     | 30 +++++++++++++++++++
 src/test/isolation/specs/eval-plan-qual.spec  |  4 +++
 2 files changed, 34 insertions(+)

diff --git a/src/test/isolation/expected/eval-plan-qual.out b/src/test/isolation/expected/eval-plan-qual.out
index 73e0aeb50e7..0237271ceec 100644
--- a/src/test/isolation/expected/eval-plan-qual.out
+++ b/src/test/isolation/expected/eval-plan-qual.out
@@ -746,6 +746,36 @@ savings  |    600|    1200
 (2 rows)
 
 
+starting permutation: read wx2 wb1 c2 c1 read
+step read: SELECT * FROM accounts ORDER BY accountid;
+accountid|balance|balance2
+---------+-------+--------
+checking |    600|    1200
+savings  |    600|    1200
+(2 rows)
+
+step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
+balance
+-------
+   1050
+(1 row)
+
+step wb1: DELETE FROM accounts WHERE balance = 600 RETURNING *; <waiting ...>
+step c2: COMMIT;
+step wb1: <... completed>
+accountid|balance|balance2
+---------+-------+--------
+savings  |    600|    1200
+(1 row)
+
+step c1: COMMIT;
+step read: SELECT * FROM accounts ORDER BY accountid;
+accountid|balance|balance2
+---------+-------+--------
+checking |   1050|    2100
+(1 row)
+
+
 starting permutation: upsert1 upsert2 c1 c2 read
 step upsert1: 
 	WITH upsert AS
diff --git a/src/test/isolation/specs/eval-plan-qual.spec b/src/test/isolation/specs/eval-plan-qual.spec
index 735c671734e..edd6d19df3a 100644
--- a/src/test/isolation/specs/eval-plan-qual.spec
+++ b/src/test/isolation/specs/eval-plan-qual.spec
@@ -76,6 +76,8 @@ setup		{ BEGIN ISOLATION LEVEL READ COMMITTED; }
 step wx1	{ UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; }
 # wy1 then wy2 checks the case where quals pass then fail
 step wy1	{ UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance; }
+# wx2 then wb1 checks the case of re-fetching up-to-date values for DELETE ... RETURNING ...
+step wb1	{ DELETE FROM accounts WHERE balance = 600 RETURNING *; }
 
 step wxext1	{ UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; }
 step tocds1	{ UPDATE accounts SET accountid = 'cds' WHERE accountid = 'checking'; }
@@ -353,6 +355,8 @@ permutation wx1 delwcte c1 c2 read
 # test that a delete to a self-modified row throws error when
 # previously updated by a different cid
 permutation wx1 delwctefail c1 c2 read
+# test that a delete re-fetches up-to-date values for returning clause
+permutation read wx2 wb1 c2 c1 read
 
 permutation upsert1 upsert2 c1 c2 read
 permutation readp1 writep1 readp2 c1 c2
-- 
2.39.3 (Apple Git-145)

#59Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alexander Korotkov (#58)
Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

On Tue, Mar 19, 2024 at 5:20 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:

On Tue, Nov 28, 2023 at 11:00 AM Pavel Borisov <pashkin.elfe@gmail.com> wrote:

You're designing new APIs, days before the feature freeze.

On Wed, 5 Apr 2023 at 06:54, Michael Paquier <michael@paquier.xyz> wrote:

On Tue, Apr 04, 2023 at 01:25:46AM +0300, Alexander Korotkov wrote:

Pavel, thank you for you review, revisions and rebase.
We'll reconsider this once v17 is branched.

I've looked through patches v16 once more and think they're good
enough, and previous issues are all addressed. I see that there is
nothing that blocks it from being committed except the last iteration
was days before v16 feature freeze.

Recently in another thread [1] Alexander posted a new version of
patches v16 (as 0001 and 0002) In 0001 only indenation, comments, and
commit messages changed from v16 in this thread. In 0002 new test
eval-plan-qual-2 was integrated into the existing eval-plan-qual test.
For maintaining the most recent versions in this thread I'm attaching
them under v17. I suppose that we can commit these patches to v17 if
there are no objections or additional reviews.

[1] /messages/by-id/CAPpHfdurb9ycV8udYqM=o0sPS66PJ4RCBM1g-bBpvzUfogY0EA@mail.gmail.com

The new revision of patches is attached.

It has updated commit messages, new comments, and some variables were
renamed to be more consistent with surroundings.

I also think that all the design issues spoken before are resolved.
It would be nice to hear from Andres about this.

I'll continue rechecking these patches myself.

I've re-read this thread. It still seems to me that the issues raised
before are addressed now. Fingers crossed, I'm going to push this if
there are no objections.

------
Regards,
Alexander Korotkov