--- a/emailcontacts/contactactionservice/inc/cfscactionutils.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailcontacts/contactactionservice/inc/cfscactionutils.h Wed Oct 13 14:11:15 2010 +0300
@@ -20,7 +20,9 @@
#define C_FSCACTIONUTILS_H
#include <e32base.h>
+//<cmail>
#include "mfscactionutils.h"
+//</cmail>
#include <RPbkViewResourceFile.h>
// FORWARD DECLARATIONS
@@ -236,6 +238,7 @@
*/
TPtrC GetFileDirL( const TDesC& aFilePath );
+ // Fix for EMZG-7M23KX
/**
* Find and add resource file to the list maintained by CCoeEnv.
* Resource file must be deleted (remove from the list) after usage.
@@ -243,26 +246,6 @@
*/
TInt FindAndAddResourceFileL();
- /**
- * Helper method that appends a specific field to a buffer of contact
- * data.
- * The method assumes that fsactionutils.rsc resource file has been
- * already added to CCoeEnv before being called.
- *
- * @param aContact Buffer to which the field data is appended.
- * @param aFieldResourceId Id of the field data (which is being added to
- * contact buffer.
- * @param aStoreContact Reference to the contact in Phonebook store
- * from which the field data that is added to
- * contact buffer is fetched.
- * @param aAddSpace Whether to add a whitespace before appending
- * the field data to contact buffer.
- */
- void AppendFieldToContactL( TDes& aContact,
- TInt aFieldResourceId,
- MVPbkStoreContact& aStoreContact,
- TBool aAddSpace = EFalse );
-
private:
// Private members
--- a/emailcontacts/contactactionservice/src/cfscactionutils.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailcontacts/contactactionservice/src/cfscactionutils.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -31,7 +31,9 @@
#include <centralrepository.h>
#include <CoreApplicationUIsSDKCRKeys.h>
#include <settingsinternalcrkeys.h>
+//<cmail> Header neither in Cmail nor in the platform
#include <crcseprofileregistry.h>
+//</cmail>
#include <NetworkHandlingDomainPSKeys.h>
#include <MVPbkStoreContact.h>
#include <MVPbkStoreContactFieldCollection.h>
@@ -40,8 +42,10 @@
#include <TVPbkFieldVersitProperty.h>
#include <MVPbkContactFieldData.h>
#include <MVPbkContactFieldTextData.h>
+//<cmail>
#include "fscactionplugincrkeys.h"
#include "fsccontactactionservicedefines.h"
+//</cmail>
#include <FscActionUtils.rsg>
#include <barsread.h>
#include <Pbk2ContactNameFormatterFactory.h>
@@ -52,8 +56,11 @@
#include <CVPbkFieldTypeSelector.h>
#include <CVPbkFieldFilter.h>
#include <commonphoneparser.h>
-#include <bautils.h>
+#include <bautils.h> // Fix for EMZG-7M23KX
+//<cmail> hardcoded paths removal
#include <data_caging_path_literals.hrh>
+//</cmail>
+
#include "cfscactionutils.h"
#include "cfsccontactaction.h"
#include "mfscreasoncallback.h"
@@ -80,11 +87,15 @@
const TUint32 KPoCDefaultSettings = 0x199;
const TInt KMaxLengthOfNumber = 100;
-const TInt KMaxLengthOfAddrData = 255;
-const TInt KMaxLengthOfName = 256; // same as max addr len + extra whitespace
+
+//Fix for: ECWG-7QYAVS
+const TInt KMaxLengthOfName = 100;
+//end for fix
_LIT( KSpace, " " );
+//<cmail> hard coded path removed
_LIT( KFscRscFileName, "fscactionutils.rsc" );
+//</cmail>
// ======== MEMBER FUNCTIONS ========
@@ -124,7 +135,9 @@
delete iRep;
if ( iRCSEProfileRegistry != NULL )
{
+ //<cmail>
delete iRCSEProfileRegistry;
+ //</cmail>
}
}
@@ -147,6 +160,7 @@
FUNC_LOG;
HBufC* noteText = NULL;
+ // Fix for EMZG-7M23KX
TInt offset = FindAndAddResourceFileL();
if ( aContactName )
@@ -175,6 +189,7 @@
FUNC_LOG;
HBufC* noteText = NULL;
+ // Fix for EMZG-7M23KX
TInt offset = FindAndAddResourceFileL();
noteText = StringLoader::LoadL( aNote, aCounter );
@@ -195,6 +210,7 @@
{
FUNC_LOG;
+ // Fix for EMZG-7M23KX
TInt offset = FindAndAddResourceFileL();
HBufC* noteText = NULL;
@@ -253,38 +269,102 @@
HBufC* CFscActionUtils::GetContactNameL( MVPbkStoreContact& aStoreContact )
{
FUNC_LOG;
-
- TBuf<KMaxLengthOfName> contactName;
+ HBufC* contactName = HBufC::NewLC( KMaxLengthOfName + 1 ); // one ' ' char
+ // Search for the contact name
+ // Fix for EMZG-7M23KX
TInt offset = FindAndAddResourceFileL();
- TInt err( KErrNone );
- TRAP( err, AppendFieldToContactL(
- contactName, R_FSC_FIRST_NAME_SELECTOR, aStoreContact ) );
- if ( err == KErrNone )
+ TResourceReader selectorReader;
+ CCoeEnv::Static()->CreateResourceReaderLC( selectorReader,
+ R_FSC_FIRST_NAME_SELECTOR );
+
+ CVPbkFieldTypeSelector* fieldTypeSelector = CVPbkFieldTypeSelector::NewL(
+ selectorReader, iContactManager.FieldTypes() );
+ CleanupStack::PopAndDestroy(); // selectorReader
+
+ CVPbkFieldFilter::TConfig config(
+ const_cast<MVPbkStoreContactFieldCollection&> (
+ aStoreContact.Fields() ), fieldTypeSelector, NULL );
+
+ CVPbkFieldFilter* fieldFilter = CVPbkFieldFilter::NewL( config );
+ TInt fieldCount = fieldFilter->FieldCount();
+ const MVPbkStoreContactField* field = NULL;
+ if ( fieldCount == 1 )
{
- TRAP( err, AppendFieldToContactL(
- contactName, R_FSC_LAST_NAME_SELECTOR, aStoreContact,
- ETrue ) );
- }
- if ( err == KErrNone && contactName.Length() <= 0 )
- {
- // If no first or last name was found, try to append company name
- TRAP_IGNORE( AppendFieldToContactL(
- contactName, R_FSC_COMPANY_NAME_SELECTOR, aStoreContact ) );
+ field = fieldFilter->FieldAtLC(0);
+ contactName->Des().Append(
+ MVPbkContactFieldTextData::Cast(
+ field->FieldData() ).Text() );
+ CleanupStack::PopAndDestroy();//field
}
- // If there was an error or the contact name is zero length, use
- // pre-defined unnamed string instead..
- if ( err != KErrNone || contactName.Length() <= 0 )
+ delete fieldFilter;
+ delete fieldTypeSelector;
+
+ // Search for the contact second name
+ CCoeEnv::Static()->CreateResourceReaderLC( selectorReader,
+ R_FSC_LAST_NAME_SELECTOR );
+ fieldTypeSelector = CVPbkFieldTypeSelector::NewL( selectorReader,
+ iContactManager.FieldTypes() );
+ CleanupStack::PopAndDestroy();//selectorReader
+ config.iFieldSelector = fieldTypeSelector;
+
+ fieldFilter = CVPbkFieldFilter::NewL( config );
+ fieldCount = fieldFilter->FieldCount();
+ if ( fieldCount == 1 )
{
+ field = fieldFilter->FieldAtLC(0);
+ if ( contactName->Des().Length() > 0 )
+ {
+ contactName->Des().Append( KSpace );
+ }
+ contactName->Des().Append(
+ MVPbkContactFieldTextData::Cast(
+ field->FieldData() ).Text() );
+ CleanupStack::PopAndDestroy();//field
+ }
+
+ // If first or second name hasn't been found -> find company name
+ if ( contactName->Des().Length() <= 0 )
+ {
+ delete fieldFilter;
+ delete fieldTypeSelector;
+
+ CCoeEnv::Static()->CreateResourceReaderLC( selectorReader,
+ R_FSC_COMPANY_NAME_SELECTOR );
+ fieldTypeSelector = CVPbkFieldTypeSelector::NewL( selectorReader,
+ iContactManager.FieldTypes() );
+ CleanupStack::PopAndDestroy();//selectorReader
+ config.iFieldSelector = fieldTypeSelector;
+
+ fieldFilter = CVPbkFieldFilter::NewL( config );
+ fieldCount = fieldFilter->FieldCount();
+ if ( fieldCount == 1 )
+ {
+ field = fieldFilter->FieldAtLC(0);
+ contactName->Des().Append(
+ MVPbkContactFieldTextData::Cast(
+ field->FieldData() ).Text() );
+ CleanupStack::PopAndDestroy();//field
+ }
+ }
+ // no first or second name, nor company name -> return "unnamed" string
+ if ( contactName->Des().Length() <= 0 )
+ {
+ //append (Unnamed)
HBufC* unnamed = StringLoader::LoadL( R_QTN_FS_UNNAMED );
- contactName.Zero();
- contactName.Append( *unnamed );
+ contactName->Des().Append( *unnamed );
delete unnamed;
}
+
+ delete fieldFilter;
+ delete fieldTypeSelector;
+ CleanupStack::Pop( contactName );
+
CCoeEnv::Static()->DeleteResourceFile( offset );
- return contactName.AllocL();
+
+ return contactName;
}
// ---------------------------------------------------------------------------
@@ -308,6 +388,7 @@
CFscFieldPropertyArray* fieldProperties =
CFscFieldPropertyArray::NewL( iContactManager.FieldTypes() );
+ // Fix for EMZG-7M23KX
TInt offset = FindAndAddResourceFileL();
// Create resource reader for new resource
@@ -359,6 +440,7 @@
{
defaultPrioritiesArray.Append( EVPbkDefaultTypeSms );
defaultPrioritiesArray.Append( EVPbkDefaultTypeMms );
+ // Fix for ELWG-7SPH5H
params.SetUseDefaultDirectly( ETrue );
break;
}
@@ -436,8 +518,10 @@
}
// Format phone number
+ //Fix for: MHOA-7SQF6T
CommonPhoneParser::ParsePhoneNumber( aNumber,
CommonPhoneParser::EPlainPhoneNumber );
+ //end for fix
}
// Destroy objects
@@ -485,8 +569,10 @@
}
// Format phone number
+ //Fix for: MHOA-7SQF6T
CommonPhoneParser::ParsePhoneNumber( aNumber,
CommonPhoneParser::EPlainPhoneNumber );
+ //end for fix
}
// Destroy objects
@@ -538,8 +624,10 @@
}
// Format phone number
+ //Fix for: MHOA-7SQF6T
CommonPhoneParser::ParsePhoneNumber( aVoipAddress,
CommonPhoneParser::EPlainPhoneNumber );
+ //end for fix
// Destroy objects
delete selectedField;
@@ -567,6 +655,7 @@
TInt ret = KErrNone;
// Search for conference number
+ // Fix for EMZG-7M23KX
TInt offset = FindAndAddResourceFileL();
TResourceReader selectorReader;
CCoeEnv::Static()->CreateResourceReaderLC( selectorReader,
@@ -736,7 +825,7 @@
}
// ---------------------------------------------------------------------------
-// CFscActionUtils::GetMessageAddressL
+// CFscActionUtils::GetEmailAddressL
// ---------------------------------------------------------------------------
//
TInt CFscActionUtils::GetMessageAddressL( MVPbkStoreContact& aStoreContact,
@@ -769,8 +858,7 @@
TPtrC msgAddress = MVPbkContactFieldTextData::Cast(
selectedField->FieldData() ).Text();
- if ( msgAddress.Length() &&
- msgAddress.Length() <= KMaxLengthOfAddrData )
+ if ( msgAddress.Length() )
{
aMsgAddress.Copy( msgAddress );
}
@@ -819,8 +907,7 @@
TPtrC emailAddress = MVPbkContactFieldTextData::Cast(
selectedField->FieldData() ).Text();
- if ( emailAddress.Length() &&
- emailAddress.Length() <= KMaxLengthOfAddrData )
+ if ( emailAddress.Length() )
{
aEmailAddress.Copy( emailAddress );
}
@@ -866,11 +953,13 @@
TBool available( EFalse );
// Search for the contact name
+ // Fix for EMZG-7M23KX
TInt offset = FindAndAddResourceFileL();
TResourceReader selectorReader;
CVPbkFieldTypeSelector* fieldTypeSelector = NULL;
CVPbkFieldFilter* fieldFilter = NULL;
+ TInt fieldCount = 0;
TInt selector = 0;
switch ( aContactNumberType )
@@ -936,16 +1025,15 @@
fieldTypeSelector = CVPbkFieldTypeSelector::NewL( selectorReader,
iContactManager.FieldTypes() );
CleanupStack::PopAndDestroy(); // selectorReader
- CleanupStack::PushL( fieldTypeSelector );
-
+
CVPbkFieldFilter::TConfig config(
const_cast<MVPbkStoreContactFieldCollection&> (
aStoreContact.Fields() ), fieldTypeSelector, NULL);
fieldFilter = CVPbkFieldFilter::NewL( config );
- CleanupStack::PushL( fieldFilter );
+ fieldCount = fieldFilter->FieldCount();
- if ( fieldFilter->FieldCount() )
+ if ( fieldCount )
{
if ( selector == R_FSC_CONF_NUMBER_SELECTOR )
{
@@ -954,7 +1042,7 @@
field = fieldFilter->FieldAtLC(0);
confNum.Append( MVPbkContactFieldTextData::Cast(
field->FieldData() ).Text() );
- CleanupStack::PopAndDestroy(); // field
+ CleanupStack::PopAndDestroy();//field
if ( CommonPhoneParser::IsValidPhoneNumber( confNum,
CommonPhoneParser::EContactCardNumber ) )
@@ -967,7 +1055,9 @@
available = ETrue;
}
}
- CleanupStack::PopAndDestroy( 2 ); // fieldFilter, fieldTypeSelector
+
+ delete fieldFilter;
+ delete fieldTypeSelector;
}
CCoeEnv::Static()->DeleteResourceFile( offset );
@@ -1043,7 +1133,7 @@
TInt err = cenRep->Get( KPoCDefaultSettings, settingsId );
if ( err == KErrNone )
{
- result = ( settingsId != KErrNotFound );
+ result = (settingsId != KErrNotFound );
}
delete cenRep;
}
@@ -1064,7 +1154,9 @@
{
RArray<TUint32> ids;
CleanupClosePushL( ids );
+ //<cmail>
iRCSEProfileRegistry->GetAllIdsL( ids );
+ //</cmail>
configured = ids.Count() > 0;
CleanupStack::PopAndDestroy( &ids );
}
@@ -1159,8 +1251,15 @@
if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) )
{
+ //<cmail>
TRAP_IGNORE( iRCSEProfileRegistry = CRCSEProfileRegistry::NewL() );
+ //</cmail>
}
+
+ //<cmail>
+ //iRCSEProfileRegistry = NULL;
+ //</cmail>
+
}
// ---------------------------------------------------------------------------
@@ -1192,6 +1291,7 @@
return fileName;
}
+// Fix for EMZG-7M23KX
// ---------------------------------------------------------------------------
// CFscActionUtils::FindAndAddResourceFileL
// ---------------------------------------------------------------------------
@@ -1199,10 +1299,14 @@
TInt CFscActionUtils::FindAndAddResourceFileL()
{
FUNC_LOG;
+ //<cmail> hardcoded removed
TFileName resourceFileName( KDC_RESOURCE_FILES_DIR );
- resourceFileName.Append( KFscRscFileName );
+ resourceFileName.Append(KFscRscFileName);
+ //</cmail>
BaflUtils::NearestLanguageFile( CCoeEnv::Static()->FsSession(), resourceFileName );
- return CCoeEnv::Static()->AddResourceFileL( resourceFileName );
+ TInt offset = CCoeEnv::Static()->AddResourceFileL( resourceFileName );
+
+ return offset;
}
// ---------------------------------------------------------------------------
// CFscActionUtils::CloseSelectDialogL
@@ -1217,58 +1321,6 @@
}
}
-// ---------------------------------------------------------------------------
-// CFscActionUtils::AppendFieldToContactL
-// ---------------------------------------------------------------------------
-//
-void CFscActionUtils::AppendFieldToContactL( TDes& aContact,
- TInt aFieldResourceId,
- MVPbkStoreContact& aStoreContact,
- TBool aAddSpace )
- {
- FUNC_LOG;
-
- TResourceReader selectorReader;
- CCoeEnv::Static()->CreateResourceReaderLC( selectorReader,
- aFieldResourceId );
-
- CVPbkFieldTypeSelector* fieldTypeSelector = CVPbkFieldTypeSelector::NewL(
- selectorReader, iContactManager.FieldTypes() );
- CleanupStack::PopAndDestroy(); // selectorReader
- CleanupStack::PushL( fieldTypeSelector );
-
- CVPbkFieldFilter::TConfig config(
- const_cast<MVPbkStoreContactFieldCollection&> (
- aStoreContact.Fields() ), fieldTypeSelector, NULL );
-
- CVPbkFieldFilter* fieldFilter = CVPbkFieldFilter::NewL( config );
- CleanupStack::PushL( fieldFilter );
- if ( fieldFilter->FieldCount() == 1 )
- {
- if ( aAddSpace && aContact.Length() > 0 )
- {
- if ( aContact.Length() < KMaxLengthOfName )
- {
- aContact.Append( KSpace );
- }
- else
- {
- User::Leave( KErrOverflow );
- }
- }
- MVPbkStoreContactField* field = fieldFilter->FieldAtLC( 0 );
- TPtrC castFieldText = MVPbkContactFieldTextData::Cast(
- field->FieldData() ).Text();
+// ======== GLOBAL FUNCTIONS ========
- if ( ( aContact.Length() + castFieldText.Length() ) > KMaxLengthOfName )
- {
- User::Leave( KErrOverflow );
- }
-
- aContact.Append( castFieldText );
- CleanupStack::PopAndDestroy( field );
- }
- CleanupStack::PopAndDestroy( 2 ); // fieldFilter, fieldTypeSelector
- }
-
--- a/emailservices/emailframework/commonlib/inc/mmrinfoobject.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailframework/commonlib/inc/mmrinfoobject.h Wed Oct 13 14:11:15 2010 +0300
@@ -78,8 +78,6 @@
EESMRInfoFieldRecurrence,
/** Priority field */
EESMRInfoFieldPriority,
- /** Privacy field */
- EESMRInfoFieldPrivacy
};
/** Definition for meeting request method */
@@ -93,21 +91,12 @@
EMRMethodResponse
};
- enum TResponse
- {
- EMrCmdResponseAccept,
- EMrCmdResponseTentative,
- EMrCmdResponseDecline
- };
-
- /** MFE Client Protocol indicates the sensitivity for a meeting request. */
- enum TCalSensitivity
- {
- EMRSensitivityNormal,
- EMRSensitivityPersonal,
- EMRSensitivityPrivate,
- EMRSensitivityConfidential
- };
+ enum TResponse
+ {
+ EMrCmdResponseAccept,
+ EMrCmdResponseTentative,
+ EMrCmdResponseDecline
+ };
public: // Destruction
@@ -335,20 +324,6 @@
* @exception KErrNotFound, if field cannot be fetched.
*/
virtual TUint PriorityL() const = 0;
-
- /**
- * Sets MR privacy.
- * @param aPrivacy MR privacy.
- * @exception System wide error code.
- */
- virtual void SetPrivacyL( TCalSensitivity aPrivacy ) = 0;
-
- /**
- * Fetches MR privacy.
- * @return MR privacy.
- * @exception KErrNotFound, if field cannot be fetched.
- */
- virtual TCalSensitivity PrivacyL() const = 0;
/**
* Fetches meeting request attachments.
--- a/emailservices/emailframework/commonlib/src/CFSMailMessagePart.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailframework/commonlib/src/CFSMailMessagePart.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -985,88 +985,99 @@
// -----------------------------------------------------------------------------
// CFSMailMessagePart::FindBodyPartL
// -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessagePart* CFSMailMessagePart::FindBodyPartL(const TDesC& aContentType)
-{
+EXPORT_C CFSMailMessagePart* CFSMailMessagePart::FindBodyPartL(
+ const TDesC& aContentType )
+ {
FUNC_LOG;
- TBuf<KMaxDataTypeLength> ptr;
- if ( iContentType )
- {
- ptr.Copy(iContentType->Des());
- TInt length = ptr.Locate(';');
- if(length >= 0)
- {
- ptr.SetLength(length);
- }
-
- if( !ptr.CompareF(aContentType) )
+ TBuf<KMaxDataTypeLength> ptr;
+ if ( iContentType )
+ {
+ ptr.Copy( iContentType->Des() );
+ TInt length = ptr.Locate(';');
+ if( length >= 0 )
+ {
+ ptr.SetLength( length );
+ }
+ if( !ptr.CompareF( aContentType ) )
+ {
+ return this;
+ }
+ }
+
+ CFSMailMessagePart* messagePart = NULL;
+ CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetMessageId() );
+ if( plugin )
{
- return this;
- }
- }
-
- CFSMailMessagePart* messagePart = NULL;
-
- if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
- {
- if(iReadMessageParts)
- {
- plugin->ChildPartsL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),iMessageParts);
- iReadMessageParts = EFalse;
- }
- if(iMessageParts.Count())
- {
- if( !ptr.CompareF(KFSMailContentTypeMultipartAlternative) )
+ if( iReadMessageParts )
{
- // multipart / alternative
- for(TInt i=0;i<iMessageParts.Count();i++)
- {
- ptr.Copy(iMessageParts[i]->GetContentType());
- TInt length = ptr.Locate(';');
- if(length >= 0)
- {
- ptr.SetLength(length);
- }
- if(!ptr.CompareF(aContentType) )
- {
- messagePart = iMessageParts[i];
- // remove part from table
- iMessageParts.Remove(i);
- break;
- }
- else if(!ptr.CompareF(KFSMailContentTypeMultipartRelated) ||
- !ptr.CompareF(KFSMailContentTypeMultipartMixed) ||
- !ptr.CompareF(KFSMailContentTypeMultipartAlternative) ||
- !ptr.CompareF(KFSMailContentTypeMultipartDigest) ||
- !ptr.CompareF(KFSMailContentTypeMultipartParallel))
- {
- // multipart, check child parts
- messagePart = iMessageParts[i];
- // remove part from table
- messagePart = messagePart->FindBodyPartL(aContentType);
- if(messagePart && messagePart->GetPartId() == iMessageParts[0]->GetPartId())
- {
- iMessageParts.Remove(i);
- }
- break;
- }
- }
+ plugin->ChildPartsL( GetMailBoxId(),
+ GetFolderId(),
+ GetMessageId(),
+ GetPartId(),
+ iMessageParts );
+ iReadMessageParts = EFalse;
}
- else
- {
- // all other cases
- messagePart = iMessageParts[0];
- // remove part from table
- messagePart = messagePart->FindBodyPartL(aContentType);
- if(messagePart && messagePart->GetPartId() == iMessageParts[0]->GetPartId())
- {
- iMessageParts.Remove(0);
- }
- }
+ if( iMessageParts.Count() )
+ {
+ if( !ptr.CompareF( KFSMailContentTypeMultipartAlternative ) )
+ {
+ // multipart / alternative
+ for( TInt i=0; i<iMessageParts.Count(); i++ )
+ {
+ ptr.Copy( iMessageParts[i]->GetContentType() );
+ TInt length = ptr.Locate(';');
+ if( length >= 0 )
+ {
+ ptr.SetLength( length );
+ }
+ if( !ptr.CompareF( aContentType ) )
+ {
+ messagePart = iMessageParts[i];
+ // remove part from table
+ iMessageParts.Remove( i );
+ break;
+ }
+ else if( !ptr.CompareF( KFSMailContentTypeMultipartRelated ) ||
+ !ptr.CompareF( KFSMailContentTypeMultipartMixed ) ||
+ !ptr.CompareF( KFSMailContentTypeMultipartAlternative ) ||
+ !ptr.CompareF( KFSMailContentTypeMultipartDigest ) ||
+ !ptr.CompareF( KFSMailContentTypeMultipartParallel ) )
+ {
+ // multipart, check child parts
+ messagePart = iMessageParts[i];
+ // remove part from table
+ messagePart =
+ messagePart->FindBodyPartL( aContentType );
+ if( messagePart && messagePart->GetPartId() ==
+ iMessageParts[i]->GetPartId() )
+ {
+ iMessageParts.Remove( i );
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ // all other cases
+ const TInt count = iMessageParts.Count();
+ for ( TInt i = 0; i < count && !messagePart; i++ )
+ {
+ messagePart = iMessageParts[i];
+ // remove part from table
+ messagePart = messagePart->FindBodyPartL( aContentType );
+ if( messagePart && messagePart->GetPartId() ==
+ iMessageParts[i]->GetPartId() )
+ {
+ iMessageParts.Remove( i );
+ }
+ }
+ }
+ }
}
- }
return messagePart;
-}
+ }
// -----------------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/data/126.svg Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,961 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="213.782px" height="95.631px" viewBox="0 0 213.782 95.631" enable-background="new 0 0 213.782 95.631"
+ xml:space="preserve">
+<pattern x="-489.349" y="466.902" width="69" height="69" patternUnits="userSpaceOnUse" id="Unnamed_Pattern" viewBox="2.125 -70.896 69 69" overflow="visible">
+ <g>
+ <polygon fill="none" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <polygon fill="#F7BC60" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <g>
+ <path fill="#FFFFFF" d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <path fill="#FFFFFF" d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C8.15-41.004,8.149-41.02,8.14-41.04"/>
+ <path fill="#FFFFFF" d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46
+ c-0.051,0.062-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C15.81-2.74,15.809-2.756,15.8-2.776"/>
+ <path fill="#FFFFFF" d="M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751
+ C8.15-2.74,8.149-2.756,8.14-2.776"/>
+ <path fill="#FFFFFF" d="M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46
+ C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751
+ C0.489-2.74,0.488-2.756,0.479-2.776"/>
+ </g>
+ </g>
+</pattern>
+<path fill="#0D8645" d="M2.669,17.858L0,31.401h15.733L2.772,94.403h28.398L49.274,0L2.669,17.858z M112.087,44.882
+ c4.238-6.235,6.277-12.229,6.088-17.982c-0.139-4.517-1.729-8.701-4.764-12.546c-3.035-3.838-7.235-6.867-12.611-9.083
+ c-5.375-2.217-11.333-3.325-17.892-3.325c-8.414,0-16.512,1.471-24.3,4.389l-0.077,0.318l-4.823,25.147
+ c2.433-1.181,4.515-2.118,6.235-2.805c3.294-1.319,6.967-1.976,11.015-1.976c4.615,0,8.08,0.928,10.39,2.767
+ c2.311,1.848,3.502,3.936,3.582,6.258c0.083,2.722-1.489,6.883-4.731,12.486c-3.238,5.602-43.728,45.873-43.728,45.873h79.182
+ l5.539-23.31H91.085C102.2,58.495,107.843,51.11,112.087,44.882z M213.77,61.401c-0.162-5.187-1.707-9.816-4.633-13.896
+ c-2.933-4.079-6.786-7.275-11.566-9.575c-4.78-2.307-9.763-3.46-14.951-3.46c-2.797,0-6.114,0.475-9.968,1.432L198.89,3.276h-30.95
+ l-18.646,19.341c-4.479,4.645-8.286,8.927-11.449,12.825c-3.155,3.906-5.666,7.427-7.536,10.556
+ c-1.87,3.136-3.283,6.273-4.237,9.409c-0.953,3.137-1.375,6.371-1.267,9.704c0.188,5.874,2.036,11.113,5.558,15.721
+ c3.51,4.606,8.475,8.226,14.897,10.85c6.416,2.639,13.782,3.95,22.114,3.95c7.705,0,14.521-1.018,20.447-3.054
+ c5.92-2.042,10.839-4.78,14.752-8.202c3.909-3.424,6.785-7.141,8.629-11.16C213.038,69.198,213.901,65.262,213.77,61.401z
+ M180.513,69.831c-1.693,2.473-3.826,4.291-6.414,5.451c-2.582,1.154-5.062,1.734-7.455,1.734c-3.59,0-6.568-0.958-8.936-2.888
+ c-2.375-1.923-3.604-4.418-3.701-7.487c-0.088-2.578,0.641-5.051,2.193-7.418c1.545-2.361,3.634-4.268,6.266-5.709
+ c2.627-1.447,5.424-2.171,8.387-2.171c3.19,0,5.969,0.89,8.332,2.661c2.364,1.771,3.593,4.012,3.677,6.733
+ C182.974,64.327,182.19,67.358,180.513,69.831z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/data/163.svg Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,965 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="192.942px" height="108.061px" viewBox="0 0 192.942 108.061" enable-background="new 0 0 192.942 108.061"
+ xml:space="preserve">
+<pattern x="-499.837" y="473.466" width="69" height="69" patternUnits="userSpaceOnUse" id="Unnamed_Pattern" viewBox="2.125 -70.896 69 69" overflow="visible">
+ <g>
+ <polygon fill="none" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <polygon fill="#F7BC60" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <g>
+ <path fill="#FFFFFF" d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <path fill="#FFFFFF" d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C8.15-41.004,8.149-41.02,8.14-41.04"/>
+ <path fill="#FFFFFF" d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46
+ c-0.051,0.062-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C15.81-2.74,15.809-2.756,15.8-2.776"/>
+ <path fill="#FFFFFF" d="M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751
+ C8.15-2.74,8.149-2.756,8.14-2.776"/>
+ <path fill="#FFFFFF" d="M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46
+ C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751
+ C0.489-2.74,0.488-2.756,0.479-2.776"/>
+ </g>
+ </g>
+</pattern>
+<path fill="#D81F26" d="M37.09,93.513c-0.889-0.526-1.438-2.55-1.438-5.395V0l-4.666,2.338L1.78,16.975L0,17.867v11.565L4.354,27.8
+ c6.822-2.558,9.043-3.162,9.739-3.3c0.085,0.261,0.198,0.787,0.198,1.738v61.117c0,3.153-0.585,5.396-1.605,6.147
+ c-0.344,0.242-2.168,1.174-8.56,1.174H0.904v11.302h48.275v-11.1l-3.087-0.13C39.054,94.453,37.358,93.667,37.09,93.513z
+ M92.652,37.237c-3.859,0-7.825,0.649-11.844,1.921c2.71-6.847,5.999-12.149,9.831-15.783c5.45-5.154,13.645-8.604,24.355-10.254
+ l2.731-0.419V1.858h-3.223c-11.817,0-21.472,1.608-28.697,4.781c-10.98,4.853-19.639,12.956-25.741,24.087
+ c-5.467,10.06-8.236,21.384-8.236,33.666c0,11.352,2.832,21.189,8.416,29.239c6.67,9.575,16.01,14.429,27.759,14.429
+ c10.639,0,19.276-3.995,25.672-11.875c5.773-7.127,8.698-15.956,8.698-26.242c0-8.771-2.556-16.343-7.601-22.514
+ C109.205,40.666,101.763,37.237,92.652,37.237z M97.993,88.979c-2.013,3.415-4.702,5.004-8.462,5.004
+ c-5.459,0-9.192-2.773-11.744-8.73c-2.035-4.788-3.07-11.133-3.07-18.848c0-3.32,0.355-6.533,1.017-9.587
+ c5.076-2.954,8.261-3.631,10.052-3.631c5.181,0,8.844,2.29,11.533,7.204c2.312,4.293,3.489,9.824,3.489,16.421
+ C100.806,81.707,99.86,85.803,97.993,88.979z M179.139,44.438c5.703-5.337,8.6-11.603,8.6-18.684c0-7.346-3.035-13.288-9.023-17.657
+ c-5.098-3.81-11.328-5.753-18.479-5.753c-17.769,0-28.906,9.243-33.108,27.472l-0.561,2.422l2.204,1.154L133,35.614l2.99,1.567
+ l1.43-3.059c2.971-6.362,5.233-9.113,6.607-10.301c2.213-1.921,5.492-2.892,9.756-2.892c3.957,0,7.145,0.93,9.748,2.842
+ c2.602,1.936,3.818,4.353,3.818,7.601c0,7-7.461,12.921-22.174,17.601l-2.246,0.715v10.368l3.425-0.216
+ c3.587-0.225,5.947-0.34,7.014-0.34c6.019,0,10.731,1.631,14.407,4.985c3.785,3.354,5.609,7.714,5.609,13.366
+ c0,4.186-1.217,7.626-3.721,10.516c-2.488,2.895-5.615,4.299-9.566,4.299c-4.26,0-8.006-1.291-11.458-3.945
+ c-6.04-4.643-8.366-5.283-9.979-5.283c-7.161,0-11.271,3.73-11.271,10.23c0,3.514,1.561,8.35,8.994,11.439
+ c3.904,1.594,8.307,2.397,13.098,2.397c11.576,0,21.541-3.063,29.611-9.104c9.188-6.855,13.848-16.195,13.848-27.764
+ C192.942,59.548,188.301,50.756,179.139,44.438z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/data/QQ.svg Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,963 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="282.533px" height="99.643px" viewBox="0 0 282.533 99.643" enable-background="new 0 0 282.533 99.643"
+ xml:space="preserve">
+<g>
+ <g opacity="0.55">
+ <g opacity="0">
+ <g>
+ <g>
+ <path fill="#010101" d="M281.864,2.678h-16.719V95h17.388V2.678H281.864z"/>
+ <path fill="#010101" d="M224.922,14.027c0,6.263,5.104,11.354,11.381,11.354c6.275,0,11.382-5.092,11.382-11.354
+ c0-6.258-5.105-11.35-11.382-11.35C230.024,2.678,224.922,7.77,224.922,14.027z"/>
+ <path fill="#010101" d="M123.752,13.468H97.023l-0.216,0.309c-0.753,1.069-23.869,26.392-33.312,36.712
+ C54.174,40.162,31.37,14.841,30.629,13.781l-0.2-0.286l-0.365-0.026H2.678v81.459l22.81,0.003c0,0,0.012-54.812,0.013-57.961
+ C36.617,48.58,62.026,75.174,62.829,76.257l0.536,0.722l0.789-0.722c0.811-1.088,26.421-27.693,37.613-39.299
+ c0.001,3.133,0.012,57.972,0.012,57.972l22.643-0.003v-7.621l-0.133-0.178c-6.802-9.188-10.398-20.098-10.398-31.55
+ c0-11.458,3.596-22.371,10.398-31.557l0.133-0.178V13.468H123.752z"/>
+ <path fill="#010101" d="M244.444,29.468h-16.816v65.517h17.487V29.468H244.444z"/>
+ </g>
+ </g>
+ <circle fill="#010101" cx="169.795" cy="54.062" r="45.581"/>
+ </g>
+ <g opacity="0.0195">
+ <g>
+ <polygon fill="#010101" points="281.735,2.55 265.021,2.55 265.021,94.873 282.406,94.873 282.406,2.55 "/>
+ <path fill="#010101" d="M224.794,13.899c0,6.263,5.104,11.354,11.381,11.354c6.275,0,11.381-5.092,11.381-11.354
+ c0-6.258-5.104-11.35-11.381-11.35C229.897,2.55,224.794,7.642,224.794,13.899z"/>
+ <path fill="#010101" d="M123.625,13.341H96.896L96.68,13.65c-0.753,1.069-23.869,26.391-33.312,36.71
+ c-9.321-10.325-32.125-35.646-32.866-36.706l-0.2-0.286l-0.365-0.026H2.55v81.458l22.811,0.003c0,0,0.012-54.812,0.013-57.961
+ C36.49,48.452,61.899,75.046,62.703,76.129l0.536,0.722l0.789-0.722c0.811-1.088,26.421-27.692,37.613-39.299
+ c0.001,3.133,0.012,57.972,0.012,57.972l22.642-0.003v-7.62L124.161,87c-6.802-9.188-10.398-20.098-10.398-31.55
+ c0-11.457,3.596-22.37,10.398-31.557l0.133-0.178V13.341H123.625z"/>
+ <polygon fill="#010101" points="244.317,29.34 227.501,29.34 227.501,94.856 244.988,94.856 244.988,29.34 "/>
+ </g>
+ <circle fill="#010101" cx="169.668" cy="53.934" r="45.581"/>
+ </g>
+ <g opacity="0.039">
+ <g>
+ <polygon fill="#010101" points="281.608,2.423 264.894,2.423 264.894,94.746 282.276,94.746 282.276,2.423 "/>
+ <path fill="#010101" d="M224.667,13.772c0,6.263,5.104,11.354,11.381,11.354c6.275,0,11.383-5.092,11.383-11.354
+ c0-6.258-5.106-11.35-11.383-11.35C229.771,2.423,224.667,7.515,224.667,13.772z"/>
+ <path fill="#010101" d="M123.497,13.213H96.769l-0.216,0.309C95.8,14.591,72.683,39.912,63.24,50.233
+ c-9.321-10.327-32.125-35.646-32.865-36.707l-0.2-0.288l-0.365-0.024H2.423v81.459l22.81,0.003c0,0,0.012-54.813,0.014-57.961
+ C36.363,48.325,61.772,74.92,62.575,76.003l0.536,0.722l0.789-0.722c0.811-1.088,26.421-27.693,37.613-39.299
+ c0.002,3.133,0.012,57.972,0.012,57.972l22.643-0.003v-7.621l-0.133-0.178c-6.803-9.188-10.398-20.098-10.398-31.552
+ c0-11.458,3.595-22.369,10.398-31.555l0.133-0.179V13.213H123.497z"/>
+ <polygon fill="#010101" points="244.188,29.213 227.373,29.213 227.373,94.729 244.858,94.729 244.858,29.213 "/>
+ </g>
+ <circle fill="#010101" cx="169.541" cy="53.807" r="45.581"/>
+ </g>
+ <g opacity="0.0586">
+ <g>
+ <polygon fill="#010101" points="281.479,2.295 264.767,2.295 264.767,94.618 282.149,94.618 282.149,2.295 "/>
+ <path fill="#010101" d="M224.539,13.645c0,6.261,5.104,11.354,11.382,11.354c6.273,0,11.38-5.094,11.38-11.354
+ c0-6.258-5.104-11.35-11.38-11.35C229.646,2.295,224.539,7.387,224.539,13.645z"/>
+ <path fill="#010101" d="M123.37,13.085H96.641l-0.216,0.309c-0.753,1.069-23.869,26.392-33.312,36.711
+ c-9.321-10.327-32.125-35.646-32.865-36.707l-0.201-0.288l-0.365-0.024H2.295v81.459l22.81,0.003c0,0,0.012-54.813,0.013-57.961
+ c11.116,11.609,36.525,38.206,37.328,39.289l0.536,0.722l0.789-0.722c0.811-1.088,26.421-27.692,37.613-39.299
+ c0.001,3.133,0.012,57.972,0.012,57.972l22.643-0.003v-7.621l-0.133-0.178c-6.802-9.188-10.398-20.097-10.398-31.552
+ c0-11.457,3.596-22.368,10.398-31.555l0.133-0.179V13.085H123.37z"/>
+ <polygon fill="#010101" points="244.062,29.085 227.246,29.085 227.246,94.602 244.731,94.602 244.731,29.085 "/>
+ </g>
+ <circle fill="#010101" cx="169.413" cy="53.679" r="45.581"/>
+ </g>
+ <g opacity="0.0781">
+ <g>
+ <polygon fill="#010101" points="281.354,2.167 264.64,2.167 264.64,94.49 282.022,94.49 282.022,2.167 "/>
+ <path fill="#010101" d="M224.412,13.518c0,6.261,5.104,11.354,11.381,11.354c6.274,0,11.381-5.094,11.381-11.354
+ c0-6.257-5.104-11.35-11.381-11.35C229.517,2.167,224.412,7.26,224.412,13.518z"/>
+ <path fill="#010101" d="M123.242,12.958H96.513l-0.216,0.308c-0.753,1.069-23.869,26.39-33.312,36.712
+ C53.664,39.65,30.86,14.331,30.119,13.271l-0.2-0.288l-0.364-0.024H2.168v81.459l22.81,0.003c0,0,0.012-54.813,0.014-57.962
+ c11.115,11.611,36.524,38.208,37.327,39.29l0.536,0.723l0.789-0.723c0.811-1.088,26.422-27.692,37.614-39.301
+ c0.001,3.135,0.011,57.975,0.011,57.975l22.643-0.003v-7.621l-0.133-0.178c-6.803-9.188-10.398-20.099-10.398-31.552
+ c0-11.458,3.595-22.371,10.398-31.556l0.133-0.178V12.958H123.242z"/>
+ <polygon fill="#010101" points="243.937,28.958 227.118,28.958 227.118,94.474 244.604,94.474 244.604,28.958 "/>
+ </g>
+ <circle fill="#010101" cx="169.285" cy="53.551" r="45.58"/>
+ </g>
+ <g opacity="0.0976">
+ <g>
+ <polygon fill="#010101" points="281.228,2.04 264.51,2.04 264.51,94.362 281.896,94.362 281.896,2.04 "/>
+ <path fill="#010101" d="M224.284,13.39c0,6.261,5.104,11.354,11.381,11.354c6.273,0,11.38-5.093,11.38-11.354
+ c0-6.258-5.104-11.35-11.38-11.35S224.284,7.132,224.284,13.39z"/>
+ <path fill="#010101" d="M123.114,12.831H96.386L96.17,13.14c-0.753,1.069-23.869,26.391-33.312,36.712
+ c-9.321-10.327-32.126-35.646-32.866-36.707l-0.2-0.288l-0.365-0.024H2.04V94.29l22.811,0.003c0,0,0.012-54.812,0.013-57.961
+ C35.979,47.941,61.389,74.537,62.191,75.62l0.536,0.722l0.789-0.722c0.811-1.09,26.421-27.693,37.613-39.301
+ c0.002,3.135,0.012,57.974,0.012,57.974l22.643-0.003v-7.621l-0.133-0.18c-6.802-9.188-10.398-20.096-10.398-31.55
+ c0-11.458,3.596-22.371,10.398-31.556l0.133-0.178V12.831H123.114z"/>
+ <polygon fill="#010101" points="243.81,28.831 226.991,28.831 226.991,94.347 244.479,94.347 244.479,28.831 "/>
+ </g>
+ <circle fill="#010101" cx="169.158" cy="53.424" r="45.581"/>
+ </g>
+ <g opacity="0.1171">
+ <g>
+ <polygon fill="#010101" points="281.101,1.913 264.383,1.913 264.383,94.234 281.769,94.234 281.769,1.913 "/>
+ <path fill="#010101" d="M224.157,13.263c0,6.26,5.104,11.354,11.381,11.354c6.273,0,11.38-5.094,11.38-11.354
+ c0-6.259-5.104-11.351-11.38-11.351C229.261,1.913,224.157,7.004,224.157,13.263z"/>
+ <path fill="#010101" d="M122.987,12.703H96.258l-0.216,0.308c-0.753,1.07-23.869,26.391-33.312,36.713
+ c-9.321-10.327-32.126-35.646-32.866-36.707l-0.2-0.287l-0.365-0.025H1.912v81.458l22.811,0.003c0,0,0.012-54.812,0.014-57.961
+ C35.853,47.814,61.262,74.409,62.065,75.49l0.537,0.724l0.788-0.724c0.812-1.088,26.422-27.69,37.613-39.299
+ c0.001,3.135,0.012,57.974,0.012,57.974l22.643-0.003v-7.62l-0.133-0.18c-6.803-9.188-10.398-20.096-10.398-31.551
+ c0-11.457,3.596-22.37,10.398-31.555l0.133-0.178V12.703H122.987z"/>
+ <polygon fill="#010101" points="243.683,28.703 226.863,28.703 226.863,94.219 244.351,94.219 244.351,28.703 "/>
+ </g>
+ <circle fill="#010101" cx="169.031" cy="53.296" r="45.581"/>
+ </g>
+ <g opacity="0.1367">
+ <g>
+ <polygon fill="#010101" points="280.972,1.785 264.255,1.785 264.255,94.107 281.642,94.107 281.642,1.785 "/>
+ <path fill="#010101" d="M224.028,13.135c0,6.261,5.104,11.353,11.382,11.353c6.274,0,11.381-5.092,11.381-11.353
+ c0-6.258-5.104-11.35-11.381-11.35S224.028,6.877,224.028,13.135z"/>
+ <path fill="#010101" d="M122.859,12.576H96.131l-0.216,0.309c-0.753,1.069-23.869,26.39-33.312,36.712
+ C53.282,39.27,30.478,13.95,29.737,12.89l-0.199-0.287l-0.365-0.024H1.785v81.458l22.81,0.004c0,0,0.012-54.813,0.013-57.961
+ c11.116,11.609,36.525,38.206,37.328,39.289l0.536,0.722l0.788-0.722c0.812-1.091,26.422-27.693,37.614-39.301
+ c0.001,3.135,0.012,57.974,0.012,57.974l22.642-0.004v-7.62l-0.133-0.18c-6.802-9.188-10.398-20.096-10.398-31.55
+ c0-11.458,3.596-22.371,10.398-31.556l0.133-0.178V12.576H122.859z"/>
+ <polygon fill="#010101" points="243.553,28.576 226.733,28.576 226.733,94.092 244.224,94.092 244.224,28.576 "/>
+ </g>
+ <path fill="#010101" d="M123.322,53.169c0,25.171,20.41,45.577,45.582,45.577c25.175,0,45.582-20.406,45.582-45.577
+ c0-25.175-20.406-45.581-45.582-45.581C143.729,7.588,123.322,27.995,123.322,53.169z"/>
+ </g>
+ <g opacity="0.1562">
+ <g>
+ <polygon fill="#010101" points="280.844,1.658 264.128,1.658 264.128,93.98 281.515,93.98 281.515,1.658 "/>
+ <path fill="#010101" d="M223.899,13.008c0,6.26,5.105,11.353,11.384,11.353c6.274,0,11.38-5.092,11.38-11.353
+ c0-6.258-5.104-11.35-11.38-11.35C229.006,1.658,223.899,6.75,223.899,13.008z"/>
+ <path fill="#010101" d="M122.732,12.447H96.003l-0.215,0.312c-0.753,1.068-23.87,26.389-33.313,36.711
+ c-9.32-10.327-32.125-35.647-32.866-36.707l-0.2-0.288l-0.365-0.026H1.658v81.459l22.81,0.005c0,0,0.012-54.812,0.013-57.963
+ C35.597,47.56,61.006,74.154,61.809,75.236l0.536,0.725l0.789-0.725c0.811-1.088,26.421-27.69,37.613-39.299
+ c0.001,3.133,0.012,57.974,0.012,57.974l22.643-0.005v-7.619l-0.133-0.18c-6.803-9.188-10.398-20.096-10.398-31.55
+ c0-11.457,3.596-22.37,10.398-31.555l0.133-0.179V12.447H122.732z"/>
+ <polygon fill="#010101" points="243.425,28.447 226.606,28.447 226.606,93.964 244.095,93.964 244.095,28.447 "/>
+ </g>
+ <circle fill="#010101" cx="168.774" cy="53.042" r="45.58"/>
+ </g>
+ <g opacity="0.1757">
+ <g>
+ <polygon fill="#010101" points="280.716,1.529 264,1.529 264,93.853 281.386,93.853 281.386,1.529 "/>
+ <path fill="#010101" d="M223.772,12.88c0,6.261,5.105,11.353,11.383,11.353c6.273,0,11.381-5.092,11.381-11.353
+ c0-6.258-5.104-11.353-11.381-11.353C228.879,1.529,223.772,6.622,223.772,12.88z"/>
+ <path fill="#010101" d="M122.604,12.32H95.876L95.66,12.63c-0.754,1.067-23.87,26.39-33.312,36.712
+ c-9.321-10.327-32.126-35.647-32.866-36.707l-0.2-0.287l-0.364-0.026H1.53V93.78l22.81,0.005c0,0,0.012-54.812,0.014-57.963
+ C35.47,47.433,60.879,74.026,61.682,75.108l0.536,0.725l0.788-0.725c0.812-1.087,26.422-27.69,37.613-39.298
+ c0.002,3.133,0.012,57.971,0.012,57.971l22.642-0.003v-7.618l-0.133-0.18c-6.803-9.188-10.398-20.096-10.398-31.55
+ c0-11.458,3.596-22.371,10.398-31.556l0.133-0.18V12.32H122.604z"/>
+ <polygon fill="#010101" points="243.298,28.32 226.479,28.32 226.479,93.836 243.967,93.836 243.967,28.32 "/>
+ </g>
+ <circle fill="#010101" cx="168.647" cy="52.914" r="45.581"/>
+ </g>
+ <g opacity="0.1952">
+ <g>
+ <polygon fill="#010101" points="280.589,1.402 263.872,1.402 263.872,93.725 281.258,93.725 281.258,1.402 "/>
+ <path fill="#010101" d="M223.646,12.752c0,6.261,5.104,11.353,11.381,11.353c6.274,0,11.381-5.092,11.381-11.353
+ c0-6.258-5.105-11.352-11.381-11.352C228.751,1.402,223.646,6.495,223.646,12.752z"/>
+ <path fill="#010101" d="M122.477,12.192H95.748l-0.216,0.311c-0.753,1.067-23.869,26.39-33.312,36.711
+ c-9.321-10.327-32.125-35.647-32.866-36.707l-0.2-0.287l-0.365-0.026H1.402V93.65l22.811,0.003c0,0,0.012-54.812,0.013-57.961
+ C35.342,47.305,60.751,73.898,61.554,74.98l0.537,0.725l0.789-0.725c0.811-1.087,26.421-27.689,37.613-39.298
+ c0.001,3.133,0.012,57.972,0.012,57.972l22.642-0.003V86.03l-0.133-0.178c-6.802-9.188-10.398-20.095-10.398-31.55
+ c0-11.457,3.596-22.37,10.398-31.555l0.133-0.18V12.192H122.477z"/>
+ <polygon fill="#010101" points="243.17,28.192 226.354,28.192 226.354,93.709 243.84,93.709 243.84,28.192 "/>
+ </g>
+ <circle fill="#010101" cx="168.521" cy="52.787" r="45.58"/>
+ </g>
+ <g opacity="0.2148">
+ <g>
+ <polygon fill="#010101" points="280.461,1.274 263.744,1.274 263.744,93.598 281.131,93.598 281.131,1.274 "/>
+ <path fill="#010101" d="M223.521,12.625c0,6.261,5.104,11.353,11.381,11.353c6.274,0,11.381-5.092,11.381-11.353
+ c0-6.258-5.104-11.352-11.381-11.352C228.624,1.274,223.521,6.367,223.521,12.625z"/>
+ <path fill="#010101" d="M122.35,12.065H95.621l-0.216,0.311c-0.752,1.067-23.869,26.39-33.312,36.711
+ c-9.321-10.327-32.125-35.647-32.866-36.707l-0.2-0.288l-0.365-0.026H1.275v81.458l22.81,0.003c0,0,0.011-54.812,0.013-57.961
+ c11.115,11.611,36.525,38.206,37.328,39.288l0.536,0.725l0.788-0.725c0.812-1.088,26.422-27.69,37.613-39.299
+ c0.002,3.133,0.012,57.972,0.012,57.972l22.642-0.003v-7.62l-0.133-0.178c-6.802-9.188-10.398-20.096-10.398-31.55
+ c0-11.458,3.596-22.371,10.398-31.556l0.133-0.18V12.065H122.35z"/>
+ <polygon fill="#010101" points="243.043,28.064 226.228,28.064 226.228,93.582 243.712,93.582 243.712,28.064 "/>
+ </g>
+ <circle fill="#010101" cx="168.394" cy="52.659" r="45.58"/>
+ </g>
+ <g opacity="0.2343">
+ <g>
+ <polygon fill="#010101" points="280.334,1.146 263.617,1.146 263.617,93.47 281.003,93.47 281.003,1.146 "/>
+ <path fill="#010101" d="M223.394,12.498c0,6.261,5.104,11.353,11.381,11.353c6.273,0,11.381-5.092,11.381-11.353
+ c0-6.26-5.105-11.352-11.381-11.352C228.496,1.146,223.394,6.239,223.394,12.498z"/>
+ <path fill="#010101" d="M122.222,11.938H95.493l-0.216,0.311c-0.753,1.067-23.869,26.39-33.312,36.712
+ C52.644,38.632,29.84,13.312,29.099,12.252L28.9,11.965l-0.365-0.026H1.147v81.458L23.958,93.4c0,0,0.011-54.812,0.013-57.962
+ C35.087,47.05,60.496,73.644,61.299,74.727l0.536,0.722l0.788-0.722c0.812-1.088,26.422-27.691,37.614-39.299
+ c0.001,3.133,0.012,57.972,0.012,57.972l22.642-0.004v-7.62l-0.133-0.178c-6.802-9.188-10.399-20.096-10.399-31.55
+ c0-11.457,3.597-22.371,10.399-31.556l0.133-0.18V11.938H122.222z"/>
+ <polygon fill="#010101" points="242.915,27.938 226.099,27.938 226.099,93.455 243.585,93.455 243.585,27.938 "/>
+ </g>
+ <circle fill="#010101" cx="168.267" cy="52.531" r="45.58"/>
+ </g>
+ <g opacity="0.2538">
+ <g>
+ <polygon fill="#010101" points="280.206,1.02 263.49,1.02 263.49,93.343 280.875,93.343 280.875,1.02 "/>
+ <path fill="#010101" d="M223.265,12.37c0,6.261,5.104,11.353,11.381,11.353c6.275,0,11.381-5.092,11.381-11.353
+ c0-6.26-5.105-11.352-11.381-11.352C228.369,1.019,223.265,6.111,223.265,12.37z"/>
+ <path fill="#010101" d="M122.094,11.81H95.365l-0.216,0.312c-0.753,1.066-23.869,26.39-33.312,36.711
+ c-9.321-10.326-32.125-35.647-32.865-36.706l-0.2-0.288l-0.365-0.026H1.02V93.27l22.81,0.003c0,0,0.012-54.812,0.014-57.961
+ C34.959,46.923,60.369,73.517,61.172,74.6l0.536,0.722l0.788-0.722c0.812-1.088,26.422-27.691,37.614-39.299
+ c0.001,3.133,0.012,57.972,0.012,57.972l22.643-0.003v-7.62l-0.133-0.178c-6.803-9.188-10.398-20.096-10.398-31.551
+ c0-11.457,3.596-22.37,10.398-31.557l0.133-0.179V11.81H122.094z"/>
+ <polygon fill="#010101" points="242.788,27.81 225.972,27.81 225.972,93.327 243.457,93.327 243.457,27.81 "/>
+ </g>
+ <circle fill="#010101" cx="168.14" cy="52.403" r="45.58"/>
+ </g>
+ <g opacity="0.2733">
+ <g>
+ <polygon fill="#010101" points="280.078,0.893 263.36,0.893 263.36,93.215 280.748,93.215 280.748,0.893 "/>
+ <path fill="#010101" d="M223.136,12.243c0,6.261,5.105,11.353,11.383,11.353c6.273,0,11.381-5.092,11.381-11.353
+ c0-6.26-5.105-11.352-11.381-11.352C228.241,0.893,223.136,5.984,223.136,12.243z"/>
+ <path fill="#010101" d="M121.967,11.683H95.238l-0.215,0.311c-0.753,1.067-23.87,26.39-33.312,36.712
+ C52.39,38.377,29.585,13.057,28.845,11.997l-0.199-0.287l-0.365-0.026H0.893v81.458l22.81,0.003c0,0,0.012-54.812,0.013-57.961
+ C34.832,46.796,60.241,73.39,61.044,74.472l0.536,0.723l0.788-0.723C63.18,73.384,88.79,46.78,99.982,35.174
+ c0.001,3.133,0.012,57.971,0.012,57.971l22.642-0.003v-7.62l-0.132-0.178c-6.803-9.188-10.399-20.096-10.399-31.55
+ c0-11.458,3.596-22.371,10.399-31.558l0.132-0.178V11.683H121.967z"/>
+ <polygon fill="#010101" points="242.66,27.683 225.843,27.683 225.843,93.2 243.33,93.2 243.33,27.683 "/>
+ </g>
+ <circle fill="#010101" cx="168.011" cy="52.275" r="45.58"/>
+ </g>
+ <g opacity="0.2929">
+ <g>
+ <polygon fill="#010101" points="279.951,0.765 263.233,0.765 263.233,93.088 280.621,93.088 280.621,0.765 "/>
+ <path fill="#010101" d="M223.009,12.114c0,6.263,5.105,11.354,11.383,11.354c6.273,0,11.379-5.092,11.379-11.354
+ c0-6.258-5.104-11.35-11.379-11.35C228.114,0.765,223.009,5.856,223.009,12.114z"/>
+ <path fill="#010101" d="M121.84,11.556H95.11l-0.216,0.308c-0.753,1.07-23.869,26.393-33.312,36.715
+ C52.262,38.25,29.457,12.93,28.717,11.87l-0.2-0.287l-0.365-0.026H0.765v81.458l22.811,0.003c0,0,0.012-54.812,0.013-57.961
+ c11.116,11.612,36.526,38.207,37.328,39.289l0.536,0.723l0.789-0.723c0.811-1.088,26.422-27.692,37.614-39.299
+ c0.001,3.133,0.012,57.972,0.012,57.972l22.643-0.003v-7.621l-0.133-0.178c-6.803-9.188-10.399-20.096-10.399-31.55
+ c0-11.457,3.597-22.37,10.399-31.557l0.133-0.178V11.556H121.84z"/>
+ <polygon fill="#010101" points="242.533,27.555 225.715,27.555 225.715,93.071 243.202,93.071 243.202,27.555 "/>
+ </g>
+ <circle fill="#010101" cx="167.883" cy="52.148" r="45.58"/>
+ </g>
+ <g opacity="0.3124">
+ <g>
+ <polygon fill="#010101" points="279.823,0.638 263.106,0.638 263.106,92.96 280.493,92.96 280.493,0.638 "/>
+ <path fill="#010101" d="M222.881,11.987c0,6.263,5.104,11.354,11.381,11.354c6.275,0,11.382-5.091,11.382-11.354
+ c0-6.258-5.105-11.35-11.382-11.35S222.881,5.729,222.881,11.987z"/>
+ <path fill="#010101" d="M121.712,11.428h-26.73l-0.215,0.309c-0.753,1.069-23.869,26.392-33.313,36.712
+ c-9.32-10.325-32.125-35.646-32.865-36.705l-0.2-0.288l-0.365-0.025H0.638v81.458l22.81,0.003c0,0,0.012-54.812,0.014-57.961
+ c11.115,11.61,36.524,38.204,37.327,39.286l0.536,0.723l0.788-0.723c0.811-1.088,26.421-27.692,37.614-39.298
+ c0.001,3.132,0.011,57.971,0.011,57.971l22.643-0.003v-7.62l-0.132-0.178c-6.803-9.188-10.399-20.096-10.399-31.55
+ c0-11.458,3.596-22.371,10.399-31.558l0.132-0.178V11.428H121.712z"/>
+ <polygon fill="#010101" points="242.405,27.427 225.588,27.427 225.588,92.943 243.075,92.943 243.075,27.427 "/>
+ </g>
+ <circle fill="#010101" cx="167.756" cy="52.021" r="45.58"/>
+ </g>
+ <g opacity="0.3319">
+ <g>
+ <polygon fill="#010101" points="279.696,0.51 262.979,0.51 262.979,92.833 280.365,92.833 280.365,0.51 "/>
+ <path fill="#010101" d="M222.754,11.859c0,6.263,5.104,11.354,11.381,11.354s11.382-5.091,11.382-11.354
+ c0-6.258-5.105-11.35-11.382-11.35S222.754,5.602,222.754,11.859z"/>
+ <path fill="#010101" d="M121.584,11.3H94.855l-0.216,0.309c-0.753,1.069-23.869,26.391-33.312,36.712
+ c-9.321-10.326-32.126-35.646-32.866-36.707l-0.2-0.286L27.896,11.3H0.51v81.458l22.81,0.004c0,0,0.012-54.812,0.013-57.961
+ c11.116,11.611,36.526,38.206,37.329,39.288l0.536,0.723l0.788-0.723C62.797,73,88.407,46.396,99.599,34.791
+ c0.002,3.133,0.012,57.972,0.012,57.972l22.643-0.004v-7.62l-0.132-0.178c-6.804-9.188-10.4-20.098-10.4-31.55
+ c0-11.457,3.596-22.371,10.4-31.557l0.132-0.178V11.3H121.584z"/>
+ <polygon fill="#010101" points="242.276,27.3 225.46,27.3 225.46,92.815 242.947,92.815 242.947,27.3 "/>
+ </g>
+ <circle fill="#010101" cx="167.628" cy="51.893" r="45.58"/>
+ </g>
+ <g opacity="0.3514">
+ <g>
+ <polygon fill="#010101" points="279.567,0.382 262.854,0.382 262.854,92.706 280.238,92.706 280.238,0.382 "/>
+ <path fill="#010101" d="M222.626,11.732c0,6.263,5.104,11.354,11.382,11.354c6.275,0,11.382-5.091,11.382-11.354
+ c0-6.258-5.105-11.351-11.382-11.351C227.729,0.382,222.626,5.475,222.626,11.732z"/>
+ <path fill="#010101" d="M121.457,11.173H94.728l-0.215,0.309c-0.753,1.069-23.87,26.392-33.312,36.712
+ C51.88,37.867,29.076,12.547,28.335,11.486l-0.2-0.288l-0.364-0.024H0.382v81.458l22.811,0.003c0,0,0.011-54.812,0.013-57.961
+ c11.116,11.612,36.525,38.206,37.328,39.288l0.536,0.723l0.788-0.723c0.811-1.088,26.422-27.693,37.613-39.299
+ c0.002,3.133,0.012,57.972,0.012,57.972l22.643-0.003v-7.62l-0.132-0.178c-6.803-9.188-10.399-20.098-10.399-31.55
+ c0-11.458,3.596-22.372,10.399-31.558l0.132-0.178V11.173H121.457z"/>
+ <polygon fill="#010101" points="242.149,27.172 225.333,27.172 225.333,92.688 242.817,92.688 242.817,27.172 "/>
+ </g>
+ <circle fill="#010101" cx="167.501" cy="51.766" r="45.58"/>
+ </g>
+ <g opacity="0.371">
+ <g>
+ <polygon fill="#010101" points="279.438,0.255 262.726,0.255 262.726,92.578 280.108,92.578 280.108,0.255 "/>
+ <path fill="#010101" d="M222.499,11.604c0,6.263,5.104,11.354,11.381,11.354c6.273,0,11.38-5.092,11.38-11.354
+ c0-6.258-5.104-11.35-11.38-11.35C227.604,0.255,222.499,5.347,222.499,11.604z"/>
+ <path fill="#010101" d="M121.33,11.046H94.6l-0.216,0.308c-0.753,1.069-23.869,26.392-33.312,36.712
+ C51.751,37.739,28.947,12.42,28.206,11.359l-0.2-0.287l-0.365-0.024H0.255v81.458l22.811,0.003c0,0,0.011-54.812,0.013-57.961
+ c11.116,11.612,36.525,38.206,37.328,39.288l0.536,0.723l0.788-0.723c0.812-1.088,26.422-27.692,37.614-39.298
+ c0.001,3.133,0.011,57.971,0.011,57.971l22.643-0.003v-7.62l-0.132-0.178c-6.803-9.188-10.399-20.098-10.399-31.552
+ c0-11.458,3.597-22.369,10.399-31.556l0.132-0.177V11.046H121.33z"/>
+ <polygon fill="#010101" points="242.022,27.045 225.206,27.045 225.206,92.561 242.69,92.561 242.69,27.045 "/>
+ </g>
+ <circle fill="#010101" cx="167.373" cy="51.638" r="45.58"/>
+ </g>
+ <g opacity="0.3905">
+ <g>
+ <polygon fill="#010101" points="279.312,0.127 262.599,0.127 262.599,92.45 279.981,92.45 279.981,0.127 "/>
+ <path fill="#010101" d="M222.371,11.478c0,6.261,5.104,11.354,11.381,11.354s11.381-5.093,11.381-11.354
+ c0-6.258-5.104-11.35-11.381-11.35C227.478,0.127,222.371,5.22,222.371,11.478z"/>
+ <path fill="#010101" d="M121.202,10.918H94.473l-0.215,0.309c-0.753,1.069-23.87,26.392-33.313,36.712
+ C51.624,37.611,28.82,12.292,28.079,11.231l-0.2-0.288l-0.364-0.024H0.127v81.458l22.81,0.002c0,0,0.012-54.812,0.014-57.96
+ c11.116,11.61,36.525,38.207,37.328,39.288l0.536,0.724l0.788-0.724c0.811-1.087,26.422-27.692,37.614-39.298
+ c0.002,3.133,0.012,57.971,0.012,57.971l22.643-0.002v-7.62l-0.132-0.179c-6.803-9.188-10.399-20.097-10.399-31.551
+ c0-11.458,3.596-22.372,10.399-31.556l0.132-0.178V10.918H121.202z"/>
+ <polygon fill="#010101" points="241.896,26.917 225.078,26.917 225.078,92.434 242.563,92.434 242.563,26.917 "/>
+ </g>
+ <circle fill="#010101" cx="167.246" cy="51.511" r="45.58"/>
+ </g>
+ <g opacity="0.41">
+ <g>
+ <g>
+ <path fill="#010101" d="M279.187,0H262.47v92.321h17.387V0H279.187z"/>
+ <path fill="#010101" d="M222.244,11.35c0,6.261,5.104,11.354,11.381,11.354s11.38-5.094,11.38-11.354
+ c0-6.258-5.104-11.35-11.38-11.35S222.244,5.092,222.244,11.35z"/>
+ <path fill="#010101" d="M121.074,10.791H94.345L94.129,11.1c-0.753,1.069-23.869,26.39-33.312,36.712
+ c-9.321-10.327-32.125-35.646-32.866-36.707l-0.2-0.288l-0.365-0.024H0V92.25l22.81,0.003c0,0,0.012-54.812,0.013-57.961
+ c11.116,11.61,36.525,38.206,37.328,39.288l0.536,0.723l0.788-0.723c0.811-1.089,26.422-27.692,37.614-39.3
+ c0.001,3.135,0.012,57.973,0.012,57.973l22.643-0.003v-7.62l-0.132-0.178c-6.803-9.188-10.399-20.098-10.399-31.552
+ c0-11.458,3.596-22.371,10.399-31.556l0.132-0.178V10.791H121.074z"/>
+ <path fill="#010101" d="M241.769,26.79H224.95v65.516h17.486V26.79H241.769z"/>
+ </g>
+ </g>
+ <circle fill="#010101" cx="167.118" cy="51.383" r="45.58"/>
+ </g>
+ </g>
+ <g>
+
+ <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-455.6226" y1="756.9163" x2="-455.6226" y2="815.8276" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)">
+ <stop offset="0" style="stop-color:#1582C6"/>
+ <stop offset="1" style="stop-color:#19B4E9"/>
+ </linearGradient>
+ <path fill="url(#SVGID_1_)" stroke="#1481C5" stroke-width="0.5" d="M263.146,91.652V0.669h16.041v90.981L263.146,91.652
+ L263.146,91.652z M233.625,22.033c-5.916,0-10.712-4.781-10.712-10.685c0-5.898,4.796-10.681,10.712-10.681
+ c5.92,0,10.711,4.78,10.711,10.681C244.336,17.252,239.545,22.033,233.625,22.033z M99.759,32.622
+ c0,0-38.356,39.756-38.837,40.583h-0.216c-0.482-0.827-38.552-40.583-38.552-40.583s-0.013,57.792-0.013,58.96
+ c-1.645,0-19.757-0.003-21.471-0.003c0-1.208,0-78.927,0-80.12c1.891,0,25.325,0,26.717,0
+ c0.471,0.836,33.405,37.324,33.405,37.324h0.043c0,0,33.386-36.488,33.858-37.324c1.393,0,24.49,0,26.381,0
+ c0,0.251,0,3.902,0,9.486c-6.615,8.933-10.532,19.98-10.532,31.953c0,11.969,3.917,23.018,10.532,31.947c0,3.99,0,6.522,0,6.731
+ c-1.714,0-19.657,0.003-21.304,0.003C99.771,90.414,99.759,32.622,99.759,32.622z M241.769,91.637H225.62V27.459h16.146v64.178
+ H241.769z"/>
+ </g>
+ <g>
+
+ <radialGradient id="SVGID_2_" cx="-428.8374" cy="794.6204" r="46.2922" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)" gradientUnits="userSpaceOnUse">
+ <stop offset="0.5281" style="stop-color:#FFFFFF"/>
+ <stop offset="1" style="stop-color:#DCDDDE"/>
+ </radialGradient>
+ <path fill="url(#SVGID_2_)" d="M213.007,51.147c0,25.569-20.729,46.292-46.295,46.292c-25.566,0-46.292-20.722-46.292-46.292
+ c0-25.564,20.727-46.289,46.292-46.289C192.276,4.858,213.007,25.582,213.007,51.147z"/>
+ <path fill="#DCDDDE" d="M170.87,79.783c-14.051,5.863-32.109,5.837-46.467-11.601c-0.089,0.094-0.361,0.209-0.225,0.538
+ c3.238,7.914,12.242,21.1,30.053,26.004c7.026,1.94,16.328,3.101,27.953-0.879c3.64-1.245,7.657-3.312,10.83-5.568
+ c4.053-2.89,6.6-5.821,7.409-6.713c1.577-1.729,2.755-5.487,0.991-9.135c-2.197-4.556-7.736-7.059-13.379-3.142
+ C182.899,72.836,178.25,76.809,170.87,79.783z"/>
+ <path fill="#EC2227" d="M170.792,81.27c-14.049,5.863-32.11,5.835-46.467-11.601c-0.089,0.094-0.355,0.212-0.225,0.538
+ c3.238,7.917,12.245,21.103,30.053,26.006c7.029,1.936,16.335,3.097,27.957-0.879c3.639-1.244,7.658-3.312,10.826-5.567
+ c4.061-2.893,6.603-5.826,7.412-6.711c1.574-1.733,2.752-5.491,0.994-9.138c-2.201-4.555-7.736-7.058-13.385-3.146
+ C182.822,74.321,178.175,78.294,170.792,81.27z"/>
+
+ <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-447.2651" y1="849.0911" x2="-448.8612" y2="834.0172" gradientTransform="matrix(0.9995 -0.0303 0.0303 0.9995 587.1084 -764.4071)">
+ <stop offset="0" style="stop-color:#FEE7DC"/>
+ <stop offset="0.03" style="stop-color:#FEE4D8"/>
+ <stop offset="0.2303" style="stop-color:#FCD3C1"/>
+ <stop offset="0.2598" style="stop-color:#FBCAB6"/>
+ <stop offset="0.4064" style="stop-color:#F79B80"/>
+ <stop offset="0.5483" style="stop-color:#F4795A"/>
+ <stop offset="0.682" style="stop-color:#F15B40"/>
+ <stop offset="0.8056" style="stop-color:#EF3F2F"/>
+ <stop offset="0.9153" style="stop-color:#EE2C28"/>
+ <stop offset="1" style="stop-color:#EC2227"/>
+ </linearGradient>
+ <path fill="url(#SVGID_3_)" d="M166.043,83.898c-16.665,4.375-28.682,0.737-41.269-13.309c-0.248-0.272-0.423-0.165-0.172,0.245
+ c3.347,5.521,12.066,18.474,31.297,23.916c6.074,1.729,17.438,1.588,26.994-2.146c2.987-1.166,7.03-3.088,9.604-5.075
+ c3.28-2.553,5.427-4.776,6.069-5.537c1.259-1.504,2.849-4.663,1.25-7.642c-1.995-3.724-8.021-5.678-12.592-2.22
+ C182.785,75.49,178.083,80.219,166.043,83.898z"/>
+
+ <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-470.7588" y1="834.8547" x2="-485.4976" y2="824.1115" gradientTransform="matrix(0.9995 -0.0303 0.0303 0.9995 587.1084 -764.4071)">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="0.2767" style="stop-color:#FBC6B2"/>
+ <stop offset="0.916" style="stop-color:#EF3F2F"/>
+ <stop offset="1" style="stop-color:#EC2227"/>
+ </linearGradient>
+ <path fill="url(#SVGID_4_)" d="M142.453,83.666c-5.999-2.123-11.646-5.96-16.805-11.723c-0.453-0.403-0.118,0.227-0.118,0.227
+ c5.236,6.354,10.955,10.304,16.96,12.438C142.481,84.301,142.458,83.974,142.453,83.666z"/>
+
+ <image overflow="visible" enable-background="new " width="208" height="72" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANAAAABICAYAAACHkXtaAAAACXBIWXMAAC8PAAAvDwGWT/AWAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADYlJREFUeNrsnctvG8cdx7+zJPWy
+nrYUpEEeRFIEaNLATg+9FXEPPfRY9NiDVKDHouCpZ117KJpD/wD2FAQFmhQNkKJNY7sIUsdxLMqS
+H5IsidSDevGxpPjenZn+ZpaUacWOZVvW8/e1B8tdLsV9ffj9/WZnZgEWi8VisVgsFovFOlnSWl/S
+9/Ve+3thPjws1qPBocnF71rH4cPEYj0dPOxALNZTgsMAsVgBMOdpMkjlfSoXnvTzDBDrtMMTfxpw
+GCAWu86Tu06CistHkHWq4aEyob9LSu0uE82q7PN8BFkMz+OA8X2tPc+UCXp9SfuSwWGdenDeewCe
+dmCkJGg8W1S9FpRGY4IAYnBYDM9DwfFlUMhpVK18v5QKE6pcvKQq23uCR/AhZp2WigJaBihFRQYr
+ST9Yt1oIXjtOQjjOmDP00uRev4dr4VgnFZ54CxwYcIy8OuB7NK+gzb9aCcLAFIoklPRceDIWeenN
+ySf5LnYg1qmAR3uNwGnMfK0MyncsRORGCQE9Fn7tncmn+T52INaJDdksLOZ/owJV2IKWDXIMByqT
+NkBRuBZ2IUQs8u7Fyaf9XgaIdRLgGaXJOJXoAyGblBYclUtT6FYnlshrKiWK4FScwBnv+NFPU8/6
+3RzCsY47OAaasQfgMf+VT06zaov2G0DJBbp64sL3k5QHxTt+8ovUfmwDA8Q6Ga7TDo/0INcXIZdn
+gEYdCFGgtZ2PU+4z3vXL36X2czsYINaJCdm0qYpWCnLpri26UgSqVaCzMy46Ose7fv7r1H5vCwPE
+OhkhG7mOWp2jnCcLtTQLXSsDkUhcFwtJeI14z2/GU89jmxgg1slxnbkJqGIOemsLoqsrLnp6xrt/
+9fvU89wuBoh1rF0H9QrkvZvwp65Cl4tQ5Qq0S/lOtTre98cPU897+xgg1rGrKNCm9QC5ji7lIae/
+gj/5JYVuecAJxVU2l0S9Hu//88epg9hGvg/EOmYhm7RNcHS5AHnzKvwbX8C/m4IY6o07Z3vH+w/A
+ddiBWMc2ZNNlFx5BozZXKOe5DbWxATmbiavN8vjw5ETqoLeXHYh15EM226LAuE6J4Ll6GY1/fQpF
+4Zsz2BfXhVJS9Iv48L8PHh52INZRAedPCNqvmTJoF6pmyGaa4BS2IDOrqH/0V3hXrkNVS0CnE3O6
+QvGzn3xVOMxtZwdiHQV4xnbAacJjmt+ocpbgyUEtz6L2wafwE9PQlRrQIWIQKn72s+uFw95+diDW
+kXEdbZrdaBUwVMoGec7tG+Q8l+HdnAc8LyY6QgkIkaB8p3AU9oMBYh2+6zQdB6Y1QTkfuE56HjK9
+hPrfLkPeWSK4/Bg04iOzU4WjtC8cwrEOPddR7hp0vRLM5infuTMBnd+Ev7AAuZiGrlnniQ/fmiwc
+tX1igFiHWkmg8gRPxYXaLkBvUci2kiJo7sG/tkCGQ64jZQJSJ44iPAwQ6+DDteY9HZVbpZyGwjav
+ZtuvyVs3aNkmZCoF75sk9EY5psuN+MjCrcJR3j8GiHXgruMvz1CesxkM7kGhmlxehJybgZ9cNfd8
+YjpXSRA8iaMODwPEOhhwWi0J/Dpkep6cZsMCpNdXod0cgZOEdz1FuU41Jrp1fPjGROG47C8DxHq+
+4JiJqWFTEnKV4MkTPNk1qJVF+PfmIGfXAKFj2q0mtFtPDB8D12kXV2Oz9gOebz+UamdEnCoa1z6l
+UG3DXm5qZQlycQGqsA3/BsHk1i9SqHbluO47A8TaX3BUa0ScBmQxAz/xX6CQCRalV+HPzMD7aplC
+uMbFkdmpK8f9GHAIx9ofcJrwaL9mG3/q/Drk9P+AUuE+OF9TzpOpmj9wrF2HHYi17+AEuU6N8ptV
+ND77CCq7TlcXhWyZDBpXZqHWts16JwYcBoj1zOCY/MYO1m7Cs8KGzXP8Ly/RdMtWUfupJXhfLh37
+PIcBYu1/qFbKAk7Yjrkml2bQ+Pxj6G0XgpaZTm6Ny3NQueqJBYdzINaTg9OER20uBm3X6OdX5rbQ
++PsHUOtp83gQ+IsZ6HL94vD1G1dOw7FiB2LtGRwTsvkLN+FEInbcNbk8R07zuR3Qw5/YovynatY8
+8a7DALGeApxJO2yUXX9zGfV/fAJVKUFEwvATWyc6z2GAWE8GTttNUJVPQ97+Grqz246Eo+7dRe3D
+L6DSLoVswlxBJ+J+DudArMfB8u3n57QBo01PUFMdbUa+qRQhyWXUwjT0dp7ynQbkEoF0bwFaNRK6
+XHHpA7GRuenJ035c2YFOBzR4GDjaq9EVELKXga6XgXoVciMFtbkKOTtlGt5ArWUhV9bg31pNqM2y
+S5DFKFSb5KPLAJ1qt9HVMrlLBqKj214GMpeGWl6AvHsT2gzQXqhTrpOBd3s9obfKgeMwOAzQaXQb
+OwC7cGATm8o2uU0VfnoeTjhsb3jKtRVymiT8qQnAN3XTXqJxNeXqTMV8hMFhgE5niGbdhsI0k9OI
+cCcUwaNSt6FqrfEH8kB2Hd7UJIVtOYjucEIt5F1dasTOXZtgaLgS4ZRB0+p/YyoETC1atQSdWbGD
+sJv3ZHrBdmCDNI8/LKLxxTVb0yYGugmcoquLjdjwrQSD8ywOtOsEJYQQBT5MR99pdmrSvAZUMWun
+MnWH3IdcZ2sVQkkoz6e8ZiOA5/Jd6Gw5gZBw6SqIjcxOMTj7BFD7vYGYgYhhOlRg8F2VAcZp4LcG
+58hDF7ds2zS1sQadz1q30bU69HYd/kqazrifkNNZV7t1e345v3m+Idz7ba9jdGITbfMM1EG7TDM8
+M6EZfD/oKm1AqhA4ZkSbO5TLlFz7q+jPmgfs0otQB1TZTfjfrLo6X2NoDjEHen/XfDtQDNOzOcxD
+obHdBUyLZ1ODZgZZL28HbdDS8zSt2P42KNGyRgP+hBmM0IXc2LRD5Dr9nQl/KuPqHENzoABp37N3
+oxHuAJRPv2AROk9OcLL27k4M1RPCsjssMw+RgrsBbc4DnQO9noKfvAPUy3SOfKhsCaLDCZ6Rs5aH
+f3PThGnmHLjmT0mG5nByIFXIjKpSNqrL5TFdcaPizCCcoRcgegZs3w8LlPNQoHYrTiW5exlBlTrB
+sLQeDtWusYcsC2Ax92fM1MBic5UqhWIbwSM93E06ziH4q8uU19DvUKUQjKPmSciZNLyJJES3gPNq
+X1zOFZI6Z1tCm4EIU3xZHyJALdX++ZdRyEYUPX00Ux8TvUNR0TtAMI0AA8Nwus+QS3U23Ql7AepR
+UB0rsB4ByeNhaT3XswWLaQng1ZuDC65D12vQW+tQVOyAHGubUBkKv/wifc5UAiC4ydmp4v70WrJZ
+CcDQHFWA2lX+w29HMTAQVduVMWfwbNR5JQpdqCL8g/Nwzg1DdHaRQ/UTUJFmyNf8s2LP92kfBdaB
+QfYYMB4PyW5nQdNZCBxdKdk8xcJSzADVku0KYBtulkuQS0kCityn4AbV0OsVO6i6ytYRivbHnZf7
+knYIqCCfYWCOG0AtuaM/GxVD/dHQa6+g8Z8bY5EfX4iG3nwDzlmCKNIF58VXgTP91pVEd08Q8pkW
+7529wWsjmlrAxBM3gtgLZM+isT0CdD9XbIVfJlc0+2P6zpCzmGplW1uWTRM4piUAuU2R4KDP2Gfg
+1Ku2FYBKUclRaBaqQG0SZDWffpC64nK+EDhMKGS6DMRHZiYZmJMAULsy598dDb11Lhp563XIFcqX
+iqVo6J3vQ5zthzNIeVM/5UyRiAVJ9A7a6lTR00vzvbZmSUQ6bBdg06dEdJ7Z6V//lHDtlw0Fk2a4
+hWa4tfM2Xfi6OR8AFIRkpsm/gUhoEdz9JyfRnmf7z+h8Lnhta8s8qA3KVWo0zRfIeehzNRkPXRhJ
+qmQRzbCMHeY0ANSurTd+OEoXXzT07gtwhnsQfu1VgqYX/t2VMREOR8UI5VFdHQi9+BItp1CPkmNn
+cMiGfjrkwOmi93sG7LyFy0wpHBQmJKQ8K2gIuetab5SDX/4gAWtCJ5p7JJoRZLOyYwfI5msDgoGk
+tdjWepXteGb2tXnPwJFL07q1nZVM1bFuJvsWMAIicJ1tcpKsBUTQ59Q2za+Qs5CjqGIRYigSF2fC
+SUgN/xYBZe7HSLSexsbAnHaAHu1SF0YRQTT0BsEy0IXwyy/Dn8+OwZNR0dcH5yWCprfDgiLOEXw9
+Pbba1hkYArrPkFudCTZRt+VTralHF7O5iC0kTuBmzQqNwMVCthZLOGJnN+29E5OT1Kt22g6Q3Nok
+IGoPQmq6MJs8pWRuXN5f3wBi/w7lNWrV9KORUIUCRH8oLvo6ksbJ/MlM4CiBqzEkDND+aOv1t0cR
+ElGEHYTfPkfgdMOhcE5l5ZjoDEUxSPNnKfzrIhfqILiaCXkLFAOEJkBsVbqFJhR0LTYVGaZ5fguw
+FjxmXdNhzFzw1cBllGuSde+B7VIWkmCZ2qhYKIKLX0CVTSinyF2aw9YOkKP0kaOQ+9jBNLhGjAE6
+bBmwxEAoKr7XQ4k05UqdBAaFd6LNXQw0puiQsPNyMU9upqMEJEQXhXph+gyBaW8PR2gZLddFAsEw
+2AzP7GiZbpCjmITdOsYu+VMZM3bz/UPkNEPDRhMqQYn9/DSDwjre/YGsmwlys5CBhoAx4HTQLnUF
+RdBrtUQgVNQja/bYMVgsFovFYh0//V+AAQDihMEoXhsR7wAAAABJRU5ErkJggg==" transform="matrix(0.2308 0 0 0.2267 142.4531 70.677)">
+ </image>
+
+ <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-488.7515" y1="882.5452" x2="-482.2811" y2="886.9171" gradientTransform="matrix(0.9913 -0.1317 0.1317 0.9913 559.8088 -868.9001)">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="0.3064" style="stop-color:#FAB69D"/>
+ <stop offset="0.6461" style="stop-color:#F37256"/>
+ <stop offset="0.8853" style="stop-color:#EF3F2F"/>
+ <stop offset="1" style="stop-color:#EC2227"/>
+ </linearGradient>
+ <path fill="url(#SVGID_5_)" d="M200.438,74.941c-0.985-3.312-4.947-6.74-10.166-4.258c0.043,0.562,0.076,0.949,0.16,1.493
+ c3.516-1.546,7.16-1.036,9.09,4.056L200.438,74.941z"/>
+ <g>
+ <path fill="#DCDDDE" d="M189.674,33.135c12.153,9.179,21.235,24.792,13.4,45.983c0.136,0.029,0.37,0.2,0.586-0.075
+ c4.629-6.188,12.051-21.21,7.31-39.066c-1.869-7.045-5.552-15.67-14.847-23.704c-2.911-2.511-6.722-4.938-10.271-6.543
+ c-4.539-2.05-8.355-2.767-9.533-3.018c-2.285-0.486-6.127,0.393-8.387,3.753c-2.828,4.19-2.197,10.229,4.023,13.139
+ C177.62,26.246,183.388,28.26,189.674,33.135z"/>
+ <path fill="#14B24B" d="M191.049,32.701c12.069,9.285,21.015,24.233,13.271,45.654c0.129,0.034,0.268,0.102,0.498-0.173
+ c3.619-4.194,11.867-20.414,7.283-38.31c-1.812-7.063-5.412-15.788-14.645-23.906c-2.889-2.529-6.575-4.835-10.109-6.467
+ c-3.764-1.742-7.328-2.727-9.295-2.966c-2.417-0.297-5.686-0.154-8.611,3.549c-2.885,3.646-2.073,10.275,4.162,13.118
+ C179.286,25.799,184.808,27.763,191.049,32.701z"/>
+ <path fill="#3DB54A" d="M190.853,32.605c12.067,9.284,21.032,24.957,13.049,46.087c0.129,0.029,0.355,0.204,0.582-0.068
+ c4.912-6.038,12.209-21.115,7.604-39.013c-1.818-7.059-5.436-15.71-14.666-23.812c-2.89-2.537-6.686-4.995-10.22-6.627
+ c-4.521-2.082-8.312-2.83-9.503-2.979c-2.314-0.283-6.137,0.235-8.422,3.578c-2.854,4.171-2.271,10.218,3.929,13.173
+ C178.842,25.634,184.592,27.689,190.853,32.605z"/>
+
+ <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-1049.2251" y1="-707.7434" x2="-1050.8213" y2="-722.8187" gradientTransform="matrix(-0.5235 -0.852 0.852 -0.5235 261.4265 -1235.7124)">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1214" style="stop-color:#DFF0E4"/>
+ <stop offset="0.2303" style="stop-color:#CDE8D4"/>
+ <stop offset="0.2598" style="stop-color:#C4E4CB"/>
+ <stop offset="0.4064" style="stop-color:#A0D3A0"/>
+ <stop offset="0.5483" style="stop-color:#83C882"/>
+ <stop offset="0.682" style="stop-color:#68BF67"/>
+ <stop offset="0.8056" style="stop-color:#54B954"/>
+ <stop offset="0.9153" style="stop-color:#43B64C"/>
+ <stop offset="1" style="stop-color:#3DB54A"/>
+ </linearGradient>
+ <path fill="url(#SVGID_6_)" d="M195.485,35.431c12.092,12.275,14.904,24.512,8.984,42.413c-0.111,0.354,0.067,0.455,0.303,0.029
+ c3.123-5.646,10.021-19.656,5.179-39.055c-1.521-6.123-7.298-15.909-15.289-22.344c-2.495-2.009-6.226-4.679-9.188-6.018
+ c-2.853-1.289-5.49-2.121-7.814-2.191c-1.951-0.055-5.455-0.253-7.249,2.613c-2.239,3.583-0.937,9.777,4.339,12.022
+ C179.867,25.083,186.308,26.815,195.485,35.431z"/>
+ <g>
+
+ <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-2421.2373" y1="211.4631" x2="-2435.9802" y2="200.7167" gradientTransform="matrix(-0.5155 -0.8568 0.8568 -0.5155 -1221.5558 -1908.9932)">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="0.2767" style="stop-color:#CFE7C9"/>
+ <stop offset="0.916" style="stop-color:#55B954"/>
+ <stop offset="1" style="stop-color:#3DB54A"/>
+ </linearGradient>
+ <path fill="url(#SVGID_7_)" d="M206.96,56.329c1.098,6.27,0.5,13.069-2.04,20.389c-0.136,0.594,0.261-0.008,0.261-0.008
+ c3.027-7.676,3.682-14.6,2.594-20.88C207.507,55.988,207.228,56.169,206.96,56.329z"/>
+
+ <image overflow="visible" enable-background="new " width="162" height="162" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAACiCAYAAADC8hYbAAAACXBIWXMAAC8PAAAvDwGWT/AWAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAEURJREFUeNrsnVmMXOlVx/+179Wb
+e1+q2m0745mMkhAhIQViMQ+Dx54MREGItykJCYmXQZoX3phCQrwgeACEFCnIlxcE0oACSowTkYxi
+mNEQnIxtPF57qe7qrl5qr1tVd7+X893uDg5j47a7q6qX85c+3e5x+aX8m3PO/3zn+64PLNYhkI+/
+AhaDyGIxiCwGkcViEFmHUZ69fMhxnBQ90o/9p5zH41nmr4/VNQkIaV1xfl5XbNu+QCvF3xCrGwBe
+eAKErghCsa5YlnnBtAwGktUxEN9zniEBo2VZjmEZV1SDYWS9uPz7KjA9Hnc5NjJejwPdNCTLtnOR
+YIjrR9aBRcS3aX1Aa2kvkVEswzQdRVeu1NTKhZpa4wjJ6i6QuyCKpRhthyB06mrjSqGxeeFReYGB
+ZD07uz4PkPTI4ufbOI//ufs0bQuGZcKi3xWjhZbRlFp6TbLh5L4w9gucsln7A/ExGDM7MD4VSKoT
+YRCQFq2mXodMi8CUmnpDUowaTMfKvTZ7iaFkvRiIewXy8eioi+hIT1lvYqtVoGeJINUl1VDI2Fi5
+Xz//2wwk68VA3Eu6fhKMZaWMYrtA6bqBtt52o6RiW5JmtXJvv5phIBnEfcP4mei4C6Jo7+zWjZql
+o0UAFpUSqmoVqkm/GzIBaRCMtlTXK7l3vvx7DCSDeCBA4skp23Ejo2YZUA2VjIyKilZDWa0TkBpF
+ynVUtU2pbalkbLy5P/ylP2AgGcTORMnHoRSGpq7JFBnrqCgNLDXmKVIW0CZQFcuQGuS2G0YFNuzc
+37z21wwlg9h5IMXabJdQaBaxqWxhRc5jg55FjcyNJUvrekUyyGl/ePk7DCSD2Ckgt2vJbSCplrQN
+LDc2cLeygE/rtzHfXEBJb6BBKVtFTHLgy31yWWIgGcROAOns/DlgOxZMy3KNzWJ9FfeqS3jUWsY9
+eQmrlMZbti05npAAkv6Wk7t96S8ZSgbx4J222xB3bHra0Gwdbb3lRslHBOUPNm/j0+YqylobbYqg
+JmwyNn5ayH166c8YSAaxc05btHvaRltEP/d5p7KEG5Uc1ihdr2l1bGotmI4t+TxeSac6koFkEDua
+tkUNKZPLbhB8hm1Cp9R9o7yAfyvex5YuYLQQJBhH/SGpqLdz33n9jxlIBrGzQFoEXV2tYatdxFpz
+C0vyBpqmQkvDmtqgpy4ZlLbXjVbuw4t/ykAyiJ1r/QiHbTkmSu0yAbnlRsiFxjoeNQqQCcglArWg
+tyTN0SXRi7x56a8YSAax860f3VKxJhew3FjFEkXJW401ctk1VM02apYqkR+XPC6Q32QgGcROA2lC
+IUMj67IL5Kq8jp808rRW6c8MRL0+qd/nl6imzH3/IkdIBrFDQG6nawu2Y5PDbpG5qSFHkXG+nkeD
+XHbNaCKvVlGilC3bqpuyr7/xLQaSQewMkKZluiDqtuZO/YhJ8YpaxoN6jowNpW8yOTmCVHMMyaAa
+kuDN/dflv2MgGcQDARJPctotXRxXaBGYTTT1JkpKEfdri7gjr2JDREmzKSKpNOgPSyt6LXfj8t8z
+kAxip6Kkg4Zad2cgxS6NIdo8zVXkm3nckldQJiDFjs6G0ZAUW5d0xyEg/4GBZBAPBMgsntiHtFBV
+ythqbSAv5ylVL6NJzrpFa1kpYd2QYTiWZDtG9oM3GEYGsYPRcRfIIsG40SxAs1QsyjksNAhKct3L
+WkmkbcmE5Z4+/OjSPzGQDGLnXbZo+Wy2VrFGEfJu7RH+u7GAqqGgbrUhW4oEx3Yd9seX/4WBZBA7
+DaRw1woWag+x0lhyjc3txiIetlfdulI0xIMeT/bbr7OZYRA7nLLFDo0m9qz1OhbJWefJyBTVLWwo
+mygZDbTEcK5tSqt6NfcRT4sziN0wNAoBKWt1PKzex31aRWULdTIyea2CNb0qeT3e7PVL/8wwMojd
+MTSiB1lXq7hTvo1Pq3dRUEuYb6+LXRpRN0r0MT5LwyB2Esj/hXH7PLaMYnsTG60CfkxQ3qw/QJui
+pmZrUsvWswwjg9jhdI3tnRkyLyaZFmFiykqRoNxCrrmMO/I8ClpFalL9yCcNGcSupGuxXVhVyy6M
+uqmhJI6+NpdwX1523XXLVDg6MojdA7JGNWOlXaYnLa2MOpmaVaob78pLFB1LUtCD7Puv864Mg9gF
+d23bDkqUngtyHqrVcnuQK/IK7smPUDdbUsVoSeSuOVUziN2Jjtt3QDaxTkDO1x6iSPVjWaviXjOH
+NVE72iqnagaxO2Zm21mryNUWsFh75E75FJQN3CczU7fa0mz4VPbPv/oXDCOD2Pno6MJoqu7tuIu1
+edyt3KO6cQ2y0RBnsqVVrcqpmkHsXu0ogBTT4RWlhFvFW7hfu4+yXiFXXUDJkCUvGZnrlxhGBrHj
+0XGnbiQYa2oFdXLW/771Y3xcuokqRccGGRmbAObIyCB2JTpu3xvecHdkxHmZ9eYaflK9g1v1h/R5
+Sxrw+rLffO0Kw8ggdh5G1VTcszJ1te5elyLrNWy217EgL2JT3ZLyWo3rRgaxe0am7jbASxQZS/Rz
+BTUyNCutPO4QkHm1xLsxDGJ3U3Wpte4eTahpNRSVTYJxFXd3+o2ydbL7jQxil42MaZvI1RbxqHIP
+Za2EErnre80V5LWi5MDJXrv4j8sMIqvj0XF7xnF7gmepNu+Ola23N/CAIuOWIUsNW81+8Ma3TxyM
+Xkalw/+nezx/uwNiTvzu8/qQDCXRFxrATGIW5/pfwnBkGGOhIfT7Y5mIN5C9cPVrJ+5Fmn5GpTsw
+7rwAaScyejAYGSQY+1CQQ+7BLfqQm58c1cmIux6/8t03T1TNyKm5x3WjuDBK9Brnqw+w0sjhVv0B
+PqndF6lKSp+gPWoG8ZDUjaLnKFo7C1Q3flL6Kdbaa+7d4OJzJwFGrhEPSd0Y9keQoFQ9k5zFXN8Z
+DIdHEPAGM2WjSTXjW8e+ZuSIeNgctd50twTF0O3HpRv44dZ/oqzXJQvOsa4ZGcRDBqPoNYpB281m
+AVu0Pir/FDeqd+kfypHGA4ljm6YZxEMaGUWfMV9fREUpo6pVkaeasarXJMexsn/yy8fvXTJcIx7S
+mnEkNoqZvtPoDw8h6AujP5BE0h/P2I6Tfff67x+7mpEj4uGLjBn8rL3jQLM05KoLeFC5h5w4Jahs
+oGa2pTtKIfvhpeNzOxmDeCRStYlyu4ibxRu4S/XizcYS5tsFCcfIwDCIRwLG7cP9W61191D/fxCQ
+PyA3XTdkyTkm094M4hGKjOLKZXH/TpWMzI+2PiY3fU+8Vljy2Gb2/V872vc2MohHLjI2kRepuSrO
+UJew0FzBQivvTu1cvfj+kYWRXfORctQexIJxTCdnMZVIYSDUj1OhAST80UzQ48/+6r/+RopBZHUN
+xmggjjMDL+GLI7+IWYJyLDyIsC/gtna+8t03Uwwiqysw0s8UGWMYig7j5cHP46W+z2EgkHTnGWPe
+4JGEkecRjxiMu3ONHo83HQ0QjJFhfH7wVcR8USzKS7gjL2QKepUiJ/6IQWR1BUaf15fuC/e7PsZ5
+7DOjWjn98vV3UkdpX5pT8xFP02I7UMA4mZzGTDKF2UQaQ6GBjLhs/nd/+DspBpHVDRgl8bOAMRFK
+YjQ2jqn4NKaiE4iTk7bhOTL1IoN4tJXbWQj5wmReRjCemCIYU0jHUggTjEfFvHCNeEzqRVEohvxh
+10k7jg3TMdwXXSqWllnTyofevHBEPEb1ovg9TDD2R4YwRmn6bN8cvpg8iy/FZ9PvknlhEFldhNGD
+iD+K8fgUJhMppGgNh4cy9E+dfet7v5ViEFldddKxYAIjsTF3K3AucRrxQDwTpnrx0rXfTDGIrK7C
+OBAeIhBnME3rHAE5FhzIRAjGi9e+kWIQWd2AURI/CxgHI6cwJlo65KTPJ+cwHhzMhDyBQ+ek2TUf
+T+V2Vnr3rp1032n3JjLdMqA6ZkZ3rEPlpBnEYxoVH2/riAEJByOQtQaaesO95iTuC6fbV99K/eiQ
+nHvh1HyCnPSIu/MygzStgC+UiVK9+NWrhyNFM4gnybxEhjCRnMZYbAJnY9OYCG2bl8NQLzKIJ8i8
+BHwBqhf7MRwbwzRFxVfic5gMDmUSvnCGQWR107y4Rw2GoyOYoDQtJnVeSZzG2chYutdRkUE8cfUi
+3Gb3WHySouI0ZmJT8HmDPR+OYNd8Ap20GKjtjwzAtHX3ZZYvaWU0DLmnk90cEU9ovSju00mGBylN
+j1FUnMHLiVnMRUZ7lqIZxBNcL0b84gDWKMYpTU9GJwhUf89SNKfmE52ive6Zl3F7GrIuU4quoG22
+e5KiOSKecPOye+ZlPDHhNrpfTZ7BK7Gp9Ne/392RMQaR60X3/u6hyAimk2m3pRPxRTKBLg9GMIhc
+L7r1omh0i5aOOCedik5iMNDf1UY314hcL+7Ui750PJjATCIF09LRthREvP40rn0j1Y33A3JEZBh/
+lqLdmyNio+6xVFEvRv2xrs0uckRkPZ6i07GAmNKZgGIqqOk1FLVKxujC7CJHRNZnRsb6wwOYiE9j
+Mjbt7kWfj06mO/3SIQaR9ZkULVo68VACo9ExTEQn4Hj9HZ9dZBBZT3TRYpD2VHQU/aEBTIVOubOL
+nXTRDCLrqVFR3KczHp9we4vnYjOYCg51bC+aQWQ9NSpGybiMknERFzsNhQZhOHbHoiKDyHqqcfF4
+vO72nzjrMhmd7OgQLYPI+n9TdMAXJBgHMB7bntCBx9eRqMggsp6ZosWOyyjVikPhU0hFRnGmA3OL
+DCJrT8ZFtHPEDWNTlKK9nsCBR0UGkbWnqLjbzpmkFP25eArnohMHGhUZRNZzRUX3KGpsCn5v8ECj
+IoPIer6oGBnGYGQIs9HxA42KDCJrL1Exi917FykqjkTHkKb0HPRFDiwqMois50rRYpr7VHSEasUp
+nI+ncT46lT6Iyz8ZRNZzp2gxzT2emMbMzsxi/ACiIoPIemHjIto54iba09Hx9OvXvp5iEFm9MS7i
+jm6KisJBx737i4oMIuvFo6LYcYmO4kxsBrORsX0NzzKIrH1Exe1jqGI6x+8N7atWZBBZ+64VxST3
+uXgKc5HxF+4rMoisfWl762/EddBBiogv2ldkEFn7Ss+7LxcaipzC2djUC++2MIisfaVnIfH+v3gw
+jsHgAEx4RETMMIisrkdFv9ePvtCAe9Aq6guD0jOnZlb3o6I4UhCliCga3GLb70XSM4PIOpCoKEyL
+eFe0mFcMeEPPbVoYRNaBREVhWiKBqJueT0cn8IX48/kVBpF1YIq69+YMYyQyTFEx/FzpmUFkHaBp
+CSIWSKKf3LN48eTzpGcGkXVg6dn7f0zLlxNznJpZvTMtpyIj7uVNA8GB9Jvf29td3Awi68BNS9Af
+QiIYQ9tW95yeGURWR0yLOO03J95SQCmaQWT1JD2HAxH3UvjR6DjC/sSeprcZRNaBp2dx62yYasWx
+6Bh0WHua3mYQWR2RGIQYDIvzz1OYDT97TpFBZHUkPQvT4vcFMUQw+nzPvhWCQWR1LD2LLb+x2Cjm
+YhN4WVxpxyCyeiF3ECIy4o6IRXwRBpHVu/QcDcS3m9uhofSvXP1aikFk9SA9ixtnAxgI97vN7aQv
+kmEQWT2RuPo46o9hIjSIV6OTnJpZvZHPI46c9qGfQIz540/9HL+Lj9XJOjFNqXo7IpJz1swWR0RW
+7+rESCDiXk9i2Gb63evvpBhEVk/kpfScDPa7LwzCU46aMoisrki8C7qPYIz74lwjsnpXJ8aCcUzE
+J9HU61wjsnpYJ/rFCb9+JAIJBpHVUzCpTky6554ZRFZP5Ta3g3H+IljdleM4b9NacnZkmIbT1ltX
+amopxd8Oq9swvuc8Js1UHFmrvceumdVTBX3hnFj8TbB6GRFFmn6bvxVWr+rED3YWQ8g63PLxV8Bi
+EFksBpF1mPQ/AgwAyHy1inElcOcAAAAASUVORK5CYII=" transform="matrix(0.2237 0 0 0.2237 171.7344 20.1204)">
+ </image>
+
+ <linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-2365.2178" y1="64.1174" x2="-2358.7446" y2="68.491" gradientTransform="matrix(-0.5999 -0.8 0.8 -0.5999 -1299.3911 -1833.6477)">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="0.3064" style="stop-color:#C0E0BA"/>
+ <stop offset="0.6461" style="stop-color:#84C77D"/>
+ <stop offset="0.8853" style="stop-color:#55B954"/>
+ <stop offset="1" style="stop-color:#3DB54A"/>
+ </linearGradient>
+ <path fill="url(#SVGID_8_)" d="M170.462,10.042c-2.441,2.479-3.515,7.613,1.275,10.952c0.474-0.313,0.801-0.533,1.236-0.873
+ c-3.105-2.309-4.469-5.733-0.914-9.917L170.462,10.042z"/>
+ </g>
+ </g>
+ <path opacity="0.7" fill="#DCDDDE" enable-background="new " d="M140.128,39.644c2.249-15.061,11.607-30.504,33.958-33.768
+ c-0.037-0.128,0.005-0.426-0.34-0.479c-7.647-1.101-24.394-0.432-37.806,12.281c-5.288,5.011-11.099,12.37-13.701,24.379
+ c-0.818,3.75-1.125,8.259-0.835,12.147c0.372,4.958,1.573,8.659,1.912,9.81c0.663,2.238,3.278,5.196,7.309,5.57
+ c5.034,0.479,10.034-2.973,9.611-9.822C139.849,53.53,138.855,47.502,140.128,39.644z"/>
+ <path fill="#FED401" d="M138.98,38.898c2.322-15.048,11.766-30.445,34.134-33.601c-0.039-0.128,0.005-0.429-0.344-0.478
+ c-7.64-1.14-24.393-0.557-37.867,12.089c-5.319,4.988-11.162,12.316-13.825,24.314c-0.832,3.745-1.165,8.256-0.892,12.145
+ c0.346,4.969,1.527,8.659,1.863,9.812c0.648,2.251,3.25,5.215,7.275,5.612c5.032,0.504,10.056-2.916,9.666-9.778
+ C138.641,52.779,137.673,46.752,138.98,38.898z"/>
+
+ <linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="575.7744" y1="-640.8005" x2="574.1783" y2="-655.8744" gradientTransform="matrix(-0.4953 0.8687 -0.8687 -0.4953 -144.0103 -791.5555)">
+ <stop offset="0" style="stop-color:#FEFDEB"/>
+ <stop offset="0.1214" style="stop-color:#FEFAD4"/>
+ <stop offset="0.2303" style="stop-color:#FEF8C3"/>
+ <stop offset="0.3575" style="stop-color:#FFEE9A"/>
+ <stop offset="0.5096" style="stop-color:#FFE475"/>
+ <stop offset="0.6548" style="stop-color:#FFDD4E"/>
+ <stop offset="0.789" style="stop-color:#FED82B"/>
+ <stop offset="0.9081" style="stop-color:#FED50A"/>
+ <stop offset="1" style="stop-color:#FED401"/>
+ </linearGradient>
+ <path fill="url(#SVGID_9_)" d="M139.221,33.475c4.948-16.502,14.323-24.855,32.868-28.268c0.366-0.081,0.366-0.285-0.123-0.285
+ c-6.451-0.026-22.052,0.664-36.731,14.232C130.601,23.442,124.8,33.213,123,43.308c-0.563,3.154-1.033,7.615-0.676,10.848
+ c0.465,4.132,1.238,7.113,1.561,8.068c0.617,1.854,2.493,4.854,5.863,5.05c4.224,0.235,9.028-3.887,8.458-9.593
+ C137.662,52.142,136.083,45.667,139.221,33.475z"/>
+
+ <linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-1254.458" y1="-1365.8396" x2="-1269.1941" y2="-1376.5809" gradientTransform="matrix(-0.5029 0.8644 -0.8644 -0.5029 -1659.8691 409.9428)">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="0.2767" style="stop-color:#FFF1C6"/>
+ <stop offset="0.916" style="stop-color:#FFD72B"/>
+ <stop offset="1" style="stop-color:#FED401"/>
+ </linearGradient>
+ <path fill="url(#SVGID_10_)" d="M151.856,13.291c4.976-3.972,11.221-6.731,18.834-8.065c0.586-0.167-0.131-0.22-0.131-0.22
+ c-8.156,1.083-14.535,3.85-19.521,7.819C151.301,12.977,151.591,13.133,151.856,13.291z"/>
+
+ <linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-1044.1606" y1="-1386.051" x2="-1037.689" y2="-1381.6782" gradientTransform="matrix(-0.4125 0.911 -0.911 -0.4125 -1556.1954 441.4846)">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="0.3064" style="stop-color:#FFEDB6"/>
+ <stop offset="0.6461" style="stop-color:#FEDF6E"/>
+ <stop offset="0.8853" style="stop-color:#FFD72B"/>
+ <stop offset="1" style="stop-color:#FED401"/>
+ </linearGradient>
+ <path fill="url(#SVGID_11_)" d="M128.595,67.117c3.334,0.911,8.34-0.635,8.994-6.378c-0.497-0.262-0.845-0.438-1.352-0.651
+ c-0.552,3.797-2.911,6.624-8.251,5.565L128.595,67.117z"/>
+
+ <image overflow="visible" enable-background="new " width="78" height="213" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAADVCAYAAAD5C8adAAAACXBIWXMAADAiAAAwIgGLu7R7AAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADp9JREFUeNrsnV1sXEcVx8/MnXvv
+3t3119obr732xkk2ttO6SdWSipRFRVVVCamV+lBqZJQXGgkkgoQEivKAEA99QIDEQ/vAA/QBJL6K
+RCvRlwgKSKgIqVAQFDu126QhaUs/QmlcO3vt3eHMzF3HcRJ7r7273nv3jDS2uut27V//52vmzFwA
+GjRoRGAwQnBtVP1/cQAnCXyPxXgK6fAKvrzEGKsSuFuMyuJvOYj+EeDd9zGezTCeVOAu41t/xPnu
+RoAEDsfKlWc5Y10jTGRmwMqeZLw/z5iLdNglfPsnOP+G8wyCe4/A4fAvfYUDSycheVeW29lpJhCa
+NZwHNFPG+JoYcf4Z5xcQ3D9rL4qOVdml01xCZQSYfR9j9h3M6pth1iBCS26EdhHnH3BeXv/viw4W
+nMeAH5PM+gaaZZEJZGh1bzTCZZx/wvlDVNubHR8c/Isn0RZ7HwKr7wnm7i9a6U8gtAHl02o/sohz
+LvBt30Jor3V0EPDn8il/bvDu8rlPP15+57vzqx+9KKurH0pZrcp14wrOn+I8QGFTQZt1U/7ZvdP+
+wrF5/9+fk6uLv0NoiwRt00Bw9pMp/9Wj0+VzD8777z0lV5f+jtCuELQtlTZ7cNo/95l5//LTcrU8
+K6uVjwja5tA8hNY/XZ6/Z7785ilpfBqZ5xbQHAPt9U/Nl9/9HprnS7Ky8hYy8wnaptDmeqbLr907
+X37nO3J1+a9onuTT6kg7Bo+U5z/+cvntJ+TqlRdkxVdKW2kotNhVDjq5BXeS2QNpnrwbmHsImOjH
+3NZan9z+GufXd5LYxqpy8M9/NgVW9iFwhp5g3pEi945gRbAHoYnan9oQaGrwGEFLACSOAU89ztyx
+PLex9mRd+I51Q92J89JOPy8WiludKyWqzmAJnNFT4B0q8eRRj9v7UBZd+AdyVYMqaGpB8tvqO6rt
+6k4/04pBBE1IliqBGDkFycMl5t3pWfZ+/Mt6mgYtDmlHAtOOB8oLx86U3/rm0sri74MI6tdSjyWc
+Z3A+gDNB+cZ10O46U37za0urV55HaG9gvraMzAjaraHNph/w56fOlC+eXPI/eEZWygu6Bq1WK8ip
+StBuDi4z7r86+Zx/4fiSf/lHWBm8oiuDAJpS2xzOh5sJLXIJsE475MoEWL0TLHXMY4nbgYshDAIe
+xgGVJOhgcFbNZgYCHi2luQlYuVDCJPfLkDhcYIlDwO0CRtAg7YC1CPokzgvN/F0iozh/LoVKS5Yk
+56fAHipZ3pTH7FGE1o3QLEo7bgnu7PC4v3DPc+VLX11a+eBXGAxeR7+2FPi11kfQSCgO/ZoN1Q9H
+weorMnfCw5IKa9A+VJmj/JqPPzKL8xmcf2mV0kT7m+iQDZX3p8AuPgbOvhxLHARVh+pySm8cs7fx
+y9M4f4nQ/tuq3ysCwSGbwy+fB9H7KCotw0UeWaVrwUCp7VWcL7QSWtsrTpuorIxj3Xk/uAcySm1M
+7NEmCsZEVS/HL3C+3erfrW0Vh9WBDasXpzD1eAzc23PcHQ9MNB3ka7ArJtrW4DQ0sKekXP6itLoe
+ZU4hw2xlol27bqJtbqqpHDp/9GtD2q8xdy9G0X7kZe+6ibYtOK02a3gcxOj9LHEEoWEUVQFBt1+t
+Qfv+bploW5pqzUSBJdCvTeXQt6HI0K9ZvWiiYtdSjwgormaig4+CPZLh7n5UW3a9ie6qX2tLcMZE
+h7SJgosmmjiAvIaDKMrbwq+1nakiNPw9xBAw7yjYB3uwQkClDQLj3cH/W/Y//PIbnM+3g9raSHGJ
+DDr/aZwnwR7KMwQHYjgICPqswTzOH29sJ+1ocP6sx4FlDmKiexxNNI8VAhYGw7qIx4Bwy+ZlMlWt
+tr4S2HdkQLUr2INBzqbPGShYP8f5VDupbdcV5891odqymKilj2MRn1eJrlrRZby3bU20PUyVpTJS
+5ErgfgwTXZWzjepeD51+AKsdB7oMbTj47qltkAMfRLV1H2dOHtW2z6x88ETbq22XfVw3+rZciWHO
+Bs4Yiiyn0w8GVtsGhF03VX92AtU2EPi2bF73r0UgIOyq4kyyuzyC9ed94N6Gvg39mgjUFgET3UVT
+FRkkhMmucxJEP6ptANWWiURA2GVwVh4z3Bmwh/Pg5PEfEZypR9Wb+nxou6ut5eBUNzhAbhLsqTTY
+mLOp6oCvqa128GwRIjBarLhEESx2GpyRIrj7AVS7qVprM43NCxChk3q8tWrLToJ1W1qKUdMJrjeV
+o6e21qYjDNXG4DTYmSJPjOm1NnWwNvBtkVJby8BptcmhSXAOpzEF0RUCY734TjTV1jrFse4icIlq
+w+9uAXkptdW2+qKntpaA02rjeyfBvQPVNhWs7PbVduMjqbbWBAelNrhyGokVldJ0/su9yPq2lihO
+nRcFtg992+1ptdXH9SLlgKlJIbpqa77ilNrYslYbQxM1auuKZN7WMsUZ3zaCvk1F0kP4SX2Bb4u+
+2pqtuDxU/zOD8sqDTnZNTRp8ZO3OoksE7ob/8h5PiuECBgRPVwliwGz3taidPpKm6s8NJUCMF8CZ
+8MA5YNbbrF7zcYypNvofQJPb6SOquJ4CSDiB5lnQJhoztTUFnDpnBVZqAsQwzn6P2QOxU1uTFOeg
+2j48AVZ3gTkjoNMQozb1plLchTgc3mi8j7MmPRAD6N8Knt65uqa25UBpyxCDwRttptLqKkj3kAe6
+0blb522B2mJjpk0w1XQBqosngKcLagNGtTKYpkCITVBouKnqoCD2TjBnHINCFnO3Xr10ZI79s1ip
+rcGKczEo+BgUMgVQrQzq2kR11ipmQaGh4EzTc98o8P6i5N2eXqRkWF6pi1IYqDZUdQ2sDzEajVJc
+DmDlERBDObCHgr3SnsAT6E7xZ6FNenfbDJyrWlFLmIZk9H6C2plXXUfQXp3ibRUc/FnXBqswAGK/
+A2JEt9czS5mpOrUMsVRboxSHZrr6CNhjaKb5YLEyWYumuhckbmrbMTgTFMS4BHG/tLozzFZm2mOS
+XnOgI3ZBoUGKE6i2FAaFQk7VpLqdQS9WxjcoNMjH7UG7TJeYNYhBIWvqUpas7ZfG1kx3BM4cIcoO
+gJVzQHUdCUx49cMj4pu7NcpU0UzfRzPN5EAdVFPXjumgwGNvpjsExzBZWylhvpYBbaKpYCUk/ma6
+bXCmj5clJSQsqZJdZaoanmpr0M9AWALzLAQgcNcPpAUlXSKoVi3Rr49Hrs/dIAJ9vLsQHBKY6Toz
+YA3mmYPRVKii3q6thESmj7f14KwifkkjsAng6rrYWj9Ih5jptsBp/2aPJYH3WKq8AtXWoP2b6Bgz
+3aaPwyhaeQujaRL9Wya44yhlriLrEDPdHjieUXdZzADvzut1N7U8bpLejho8nJl6+jlWknejmWLC
+K5SJJmpJb8f4t20oDpPeykIJquczIDxgdtZ0Vxq5dYx/20Zw0GeIZoB15YF1m5UQcydIR/m38OBU
+lQWoMDEGXCW9LAkxume+ieAS9yKnHoDknVBbf9NlVgc+F61uuejW1JWFSbWhoE7ESL39t5aGRL41
+tYnBgRWheu40sJWiWh7XS+Tcrokt0o3QzY+q6sESVjY4g9WZJroNcMKsfmAUlXrtLRmYKSNwm/o3
+EJPS6k+r1i2Vu+l902vPgeko/xZCcWo5JHGaiX1F5qrLotRKCO9Y/1Z/OsIndDEPlnpMU1LfZA8d
+bKb1g0seVUkcSHsvqBURxhK1vQUKDpv5N+mfNfmbLq/cWl8IgdtiFFnlAuZv6OdUYNAtDnbtvY4M
+DHWCc0z+plruRe/G+jTyZ7Ka5+PEFOguJDuH/k1dzl7blIlni2rjFKdqUpW3qXU3/b2zo2ld4Mwz
+Yl4qyNUFj0HVtDgwATS2VlwB4OoJkOWCgZYIyi4Ct4V8ujzVhs/4kKfaHEwLvnWdf4OYHDFqLDj3
+qIEkxvT+6bULjfWI3aGPxoHj/cH3tK4W4FqbQ0dH1K3BqeUjtVhpm6OTWn3k3+oApw97YLXgHTY3
+b0X/cazNj6r6CKX/SkEy2zNXMSbWmymB2+S9LKzOPYiuLGtaHHgQTQneVuAyIK+WGFcnPtyNPxr7
+5ugdgLPM9p+OqI7Zrb8mttg3R28fHMeigQ+b1V69jHTdj8a+OXr7UVWMg3oWlroPia11JNHYWnFW
+yhz4sMyhD0aBYWtw+tRM5R11PY1T63+TxKouxeWgcv4RCSynN2n0S4SuHnCY8folNNGMqU85mWmI
+PA5RSXOXJbOoaqgPHEKqXgWoYI4rV9bv2tPYUnFyFeGpXb8KUaofHDcbz7rH193o3zqquzwcOG2a
+TtCm6mxsd+io7vJw4PSj5pMa2k1+pKO6y8OVXGwIZ79plF7bnKHosDU4UTA7WvrJRbSPWr+p6joV
+TZULUlooxa2g37exxJJVIhRKcSJtrmlUTTacTDWEjwsuKBC9689q0dhScepuS32Al9QWsnLwTWGg
+E2FSW4jKwdUX54G+HNQmSqHzOPCIUBhwPDVllKb2HCiPq99Uqx/9A6pXzwOTLNjBp1Gnj7ODlRFF
+cQUkJcL1piMYHCwnKLkELZvXrzgv6Pft7DOpoYMDc9XufU/w4DFqzw+RAAuQ+rwWp42aUOlI7TQ0
+EQuZAFuBj6OSKyw4VWolg7cJXAgf55jKYS35JXj1gZOW8XGSgIVWHDOPKSa1hcrjRA+qTdQe50mj
+bnBrPb+ktpCmSsC2l45IUtv2wK1t0hC8kOBo8XKbPo4GgSNwBC7W4DY7VqlWAAaklLRTfUMaJ2Uf
+zi/hfEPeON7H+STOUSJ1c3hHcL4sbz7U60fIVGkQOAJH4AgcDQJH4NodnAQ6Wk6Kazq4dedSaZsw
+DDg6l9qEepVqVZJHa8GpLf4kqo4TuHDDPJjWfKcRwsd1vJ8jH0fgCByBI3A0CByBI3AEjsDRIHAE
+jsAROAJHg8AROAJH4GiEAqee9nY2mMuEq84hpUzgHMf5MM7ncM7hXKLNmu0DVNB+pl7rVCYsLEDQ
+z1zVN/J19EMbadCgEYnxfwEGAJ+pS7UDAfXIAAAAAElFTkSuQmCC" transform="matrix(0.2093 0 0 0.2254 135.6353 12.8235)">
+ </image>
+ <path fill="#0C5DAB" d="M182.604,47.795c0.104-3.243-0.301-9.307-4.272-13.396c-2.584-2.662-6.248-3.999-10.888-3.975
+ c-4.604-0.023-8.247,1.308-10.823,3.959c-3.976,4.101-4.375,10.232-4.267,13.529l0.131-0.364c-2.59,3.01-4.57,10.173-4.096,11.465
+ c0.131,0.36,0.411,0.444,0.523,0.46c1.607,0.246,3.025-0.314,4.352-1.736c0.144-0.146,0.199-0.186,0.204-0.189
+ c-0.026,0.016-0.131,0.058-0.254,0.024c-0.136-0.034-0.204-0.115-0.222-0.147c0.02,0.032,0.05,0.129,0.078,0.202
+ c0.188,0.513,1.656,3.284,2.072,3.923c0.099,0.164,0.11,0.222,0.11,0.228c-0.008-0.048,0.029-0.134,0.063-0.158
+ c0,0-0.055,0.038-0.239,0.074c-0.726,0.138-1.778,0.709-2.495,1.689c-0.604,0.808-0.544,1.535-0.396,1.993
+ c0.299,0.928,1.246,1.695,2.662,2.147c5.754,1.856,10.017,0.219,11.043-0.217c1.157-0.495,2.258-0.403,3.215,0.044
+ c1.312,0.62,6.129,1.844,11.256,0.047c1.293-0.449,2.16-1.169,2.433-2.011c0.192-0.606,0.073-1.234-0.34-1.81
+ c-0.743-1.048-1.56-1.634-2.726-1.932c-0.182-0.042-0.23-0.074-0.235-0.074c0.092,0.058,0.146,0.225,0.11,0.319
+ c0-0.005,0.018-0.042,0.088-0.136c0.469-0.656,1.845-3.4,2.02-3.812l0.037-0.09c0.037-0.091,0.1-0.251,0.137-0.295
+ c-0.021,0.02-0.095,0.086-0.218,0.092c-0.118,0.015-0.196-0.037-0.222-0.058c0.005,0.01,0.019,0.021,0.055,0.07
+ c0.792,1.146,3.031,2.432,4.602,1.771c0.188-0.078,0.43-0.259,0.539-0.688c0.516-1.927-2.129-8.656-4.147-11.288L182.604,47.795z
+ M185.69,58.465c-0.98,0.419-2.737-0.564-3.323-1.398c-0.235-0.343-0.509-0.49-0.804-0.461c-0.472,0.057-0.655,0.523-0.793,0.855
+ l-0.029,0.081c-0.18,0.408-1.518,3.06-1.901,3.604c-0.11,0.154-0.379,0.521-0.229,0.921c0.146,0.418,0.607,0.539,0.85,0.604
+ c0.938,0.243,1.535,0.669,2.143,1.517c0.217,0.313,0.279,0.599,0.19,0.882c-0.165,0.514-0.815,1.001-1.784,1.343
+ c-4.941,1.729-9.127,0.503-10.296,0.087l-0.05-0.018c-0.167-0.058-0.311-0.111-0.438-0.165c-0.227-0.084-0.436-0.165-0.726-0.246
+ c-0.005-0.005-0.406-0.136-1.091-0.136c-0.031,0-0.832,0.047-0.832,0.047l-0.096,0.013l-0.078,0.026
+ c-0.049,0.021-0.234,0.081-0.377,0.131c-0.459,0.154-0.596,0.204-0.688,0.261c-0.031,0.019-4.341,1.986-10.16,0.11
+ c-1.062-0.34-1.805-0.886-1.988-1.464c-0.104-0.338-0.029-0.686,0.242-1.046c0.521-0.717,1.325-1.186,1.846-1.284
+ c0.19-0.037,0.76-0.146,0.963-0.633c0.201-0.477-0.115-0.96-0.221-1.122c-0.393-0.594-1.814-3.318-1.951-3.695
+ c-0.117-0.312-0.25-0.657-0.633-0.733c-0.414-0.081-0.734,0.257-0.94,0.479c-1.095,1.169-2.146,1.608-3.416,1.412
+ c0.178,0.023,0.284,0.16,0.303,0.215c-0.267-0.864,1.459-7.584,3.899-10.414l0.131-0.155l-0.01-0.202
+ c-0.104-3.13,0.271-8.941,3.972-12.757c2.372-2.44,5.759-3.664,10.067-3.643c4.35-0.021,7.75,1.208,10.138,3.659
+ c3.696,3.802,4.073,9.543,3.97,12.621l-0.005,0.193l0.108,0.146c2.191,2.86,4.44,9.577,3.951,10.437
+ C185.61,58.522,185.646,58.488,185.69,58.465z"/>
+
+ <linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-428.0425" y1="774.1038" x2="-428.0425" y2="812.3459" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)">
+ <stop offset="0" style="stop-color:#0E82B4"/>
+ <stop offset="1" style="stop-color:#26B4E9"/>
+ </linearGradient>
+ <path fill="url(#SVGID_12_)" d="M182.079,47.779c0.084-2.67,0.246-16.908-14.637-16.824l0,0l0,0l0,0l0,0
+ c-14.877-0.084-14.653,14.266-14.562,16.938c-2.749,3.198-4.619,10.945-3.884,11.062c1.794,0.278,3.013-0.643,3.884-1.568
+ c0.479-0.516,0.526-0.374,0.693,0.078c0.156,0.429,1.59,3.164,2.006,3.803c0.354,0.539,0.249,0.815-0.398,0.941
+ c-0.652,0.123-1.57,0.669-2.178,1.488c-0.986,1.35-0.005,2.686,2.006,3.327c5.805,1.87,10.231,0.062,10.61-0.16
+ c0.094-0.062,0.819-0.282,0.989-0.353l0.799-0.053c0.615,0,0.945,0.121,0.945,0.121c0.431,0.112,0.664,0.23,1.137,0.4
+ c0.412,0.143,5.027,1.912,10.697-0.076c1.854-0.644,2.676-1.838,1.842-3.021c-0.641-0.902-1.327-1.438-2.436-1.724
+ c-0.547-0.146-0.638-0.285-0.33-0.713c0.43-0.597,1.784-3.28,1.957-3.711c0.168-0.398,0.334-0.915,0.711-0.374
+ c0.704,1.012,2.702,2.124,3.965,1.589C187.08,58.453,184.351,50.756,182.079,47.779z"/>
+
+ <linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="-425.1841" y1="779.8743" x2="-429.2039" y2="774.9681" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)">
+ <stop offset="0" style="stop-color:#0686B6"/>
+ <stop offset="0.0893" style="stop-color:#0789B8"/>
+ <stop offset="0.2469" style="stop-color:#0092BF"/>
+ <stop offset="0.4542" style="stop-color:#5FA5CB"/>
+ <stop offset="0.7034" style="stop-color:#A2C5DD"/>
+ <stop offset="0.9853" style="stop-color:#F7FAFC"/>
+ <stop offset="1" style="stop-color:#FFFFFF"/>
+ </linearGradient>
+ <path fill="url(#SVGID_13_)" d="M175.327,32.736c-1.865-1.185-5.202-1.654-5.202-1.654c-1.942-0.182-3.933-0.266-7.062,0.356
+ c-1.402,0.274-2.635,0.852-3.578,1.402c0.512,0.494,0.916,0.596,1.255,1.279c0.795-0.656,7.134-3.512,14.323-0.376L175.327,32.736
+ z"/>
+
+ <linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="-423.4355" y1="773.7659" x2="-408.2298" y2="802.4033" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)">
+ <stop offset="0" style="stop-color:#005F9E"/>
+ <stop offset="1" style="stop-color:#07A4D6"/>
+ </linearGradient>
+ <path fill="url(#SVGID_14_)" d="M185.803,58.994c0.497-1.493-2.351-8.651-4.378-10.91c0.09-2.571,0.35-16.18-12.888-17.111
+ c0,0-0.542-0.123,0.542-0.071c13.236,0.933,13.084,14.307,13,16.878c2.077,2.725,4.535,9.394,4.035,10.896L185.803,58.994z"/>
+
+ <radialGradient id="SVGID_15_" cx="-446.3354" cy="800.9836" r="24.8786" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:#06A3D5"/>
+ <stop offset="0.0843" style="stop-color:#0AA1D6"/>
+ <stop offset="1" style="stop-color:#FFFFFF"/>
+ </radialGradient>
+ <path fill="url(#SVGID_15_)" d="M159.5,32.834c-1.172,0.688-1.89,1.347-1.89,1.347c-0.334,0.335-1.92,1.556-3.322,4.849
+ c-1.668,3.902-1.404,8.852-1.404,8.852c-0.711,0.842-1.674,2.447-2.558,4.697c-0.888,2.249-1.365,4.893-1.365,4.893l0.301,0.047
+ c0.345-1.577,0.489-1.945,1.441-4.054c1.647-3.638,2.575-4.605,3.434-5.559c0.62-10.189,5.275-13.05,6.604-13.783
+ C160.481,33.386,160.017,33.331,159.5,32.834z"/>
+
+ <linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="-416.5127" y1="805.2375" x2="-416.5127" y2="805.2375" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)">
+ <stop offset="0" style="stop-color:#005F9E"/>
+ <stop offset="1" style="stop-color:#07A4D6"/>
+ </linearGradient>
+ <path fill="url(#SVGID_16_)" d="M179.038,61.766"/>
+
+ <image overflow="visible" opacity="0.6" enable-background="new " width="35" height="35" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAACXBIWXMAADerAAA3qwGYrfpiAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABLFJREFUeNrsl0lvHEUUx9+r6mU8
+k9gRsZvVlhwsIQEi3BA+wIUTYrlghQtC4sidG18AiRMC7lEuiYAbF/gCPrBIkBgJFDkoJpiYTGKb
+sWfprir+r7p6PHbseJvcXKNS1/TUdP3q/5Z6TXTSdm98mMnZlcVRS+4shvEeU9bQm3cuPF08NBiB
+wEUgzgNmFtex+x7k/MOuYfgdEy/efvfcoYGig6lBr1DZx3bys3PlHeuvzzvmdXA1qezDhYESz+Hy
+soAox30UrF02wJC1xOWNNcxoMnN+FDNF+6hSB8xoOQ8YzH0AGTlAKGOIDLTLcwDZG6T1AtVqG0OH
+QZtBfxEUp1SlCYBsUEPlcIteTqpXEHe6LQAtA+zu3x+/aoYKM3F5sY41H8fqj7DM88KUQGISLgwx
+IHS7S661SUUvvw7AX2KlWkcN7Wh/VegUD4Zd8A8BiTZ71F79j/TqvZaCKtDr7q0vLpihwjwqqhBU
+4aDKQBMLqQKKdHMyUKXbKVps1c+JdT+lJm8dJ+ntpcwMB1X6TjuoSm4BU9DmRlfMtOw2O9c63c2V
+5qUPzHFg1K7hzNzAsqNupypVJEkYI4KswHU6Y7S2+oRb35iov/V5o/HmZ2qoyjjFkmDuT89BJQcg
+Y8uUiyjLrE5mOYkmkYWvJ3H6x8h7V9pw9o5ibt++OGeHlvS2s4RcA1hGT6OIivoIsaFMW5Np5yZj
+1jPOuC5mLVGkr2Yffttc+fINO3SYvnIaMGlENZdQmxpESUIOZnPGZN3CZlpC3toVq3XaidTV9KPv
+75FS7e4nr9lD+8wDQZTAaDK1hGyjRslondIzDUrH6hRhzLha9F6jlnVq8WwR6dcjrV86PZKenf70
+B3UEZdgfwy74x7Y8oxS5BDDyq4DBbCpSCHdLMRzaikK5oRxJUVuXxY6yONKTcT1JeyPJj49d/L35
+z/vP2AMrw+EcwrnYj6Cq+zNJgADgr1qRhe/YWJNNsDf0CKrV6zU6DeUa9ZSSWpJRGp/H7+cwvzHx
+1U0+tM+4oIjbmfUCkACIM5NBdBmoA0U8YFz+T4Wj3UYyN5p2AIUfSVKQuqdzYJ+pigUJc7976aLW
+YGThHkVBpTgiB6eWq41KlYpa6n2LgmICZBW/IOXIbupEe8gFi1Ou/N6cEu/hCkwww469vyjltXPw
+MSsq6TIpeo+T+axK9WBK2RTGGZ4wGUrUzr4wUPlfPGoJQGfw0JHKZDb4tgq2U5VSasuC7IGd/90F
+GFalshhIkpzGVCnYbuyE2dVMN+em/sTCv2K4KuoM+g+7kIm9g3PficVUSHLedNU9FFr+u1fM/+eI
+SQ/qbECZdfRxRUptL0VteWTI06v6UxZzbts9gWVmqpKDfNQD3gL2dOBbc1O/YV/zcL81vWttjCBi
+2oIKi3sn976hvIms7APfeeD0l5E+bGjr0skWdVnpj6LKHkehGYvl/S6cDdFVApkd2/avL7xVO8t3
+RIMHUcd5iXvq66Vnq7eEwqFIZx7HQrEhuy0f2cEn85ZZlLw5WL6Dor3A9wX8d/6vdybXj/xGWbWp
+b0owLD5muMxIYiLDpT9VJgunSuUxCwCaX377yfWTF/mTdtIedvtfgAEAugj2r1p5g8YAAAAASUVO
+RK5CYII=" transform="matrix(0.1646 0 0 0.1714 176.5771 59.5842)">
+ </image>
+
+ <linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-411.6978" y1="801.0618" x2="-414.3592" y2="806.075" gradientTransform="matrix(1 0 0 1 595.5508 -743.4717)">
+ <stop offset="0" style="stop-color:#04A2D6"/>
+ <stop offset="0.0386" style="stop-color:#4AB6DF"/>
+ <stop offset="0.0786" style="stop-color:#8CCAE7"/>
+ <stop offset="0.1131" style="stop-color:#B6DCF0"/>
+ <stop offset="0.1405" style="stop-color:#CDE8F6"/>
+ <stop offset="0.1573" style="stop-color:#D7EDF9"/>
+ <stop offset="0.3956" style="stop-color:#A6D7EE"/>
+ <stop offset="0.9367" style="stop-color:#09AEDC"/>
+ <stop offset="1" style="stop-color:#07AADB"/>
+ </linearGradient>
+ <path opacity="0.9" fill="url(#SVGID_17_)" enable-background="new " d="M179.038,61.766c0,0-0.199,0.021-0.105-0.209
+ c0.058-0.134,0.135-0.257,0.211-0.374c0.137-0.249,0.284-0.494,0.426-0.743c0.195-0.343,0.38-0.685,0.564-1.02
+ c0.191-0.371,0.383-0.754,0.562-1.122c0.123-0.251,0.244-0.497,0.367-0.745c0.16-0.335,0.278-0.795,0.691-0.902
+ c0.298-0.081,0.62-0.008,0.91,0.073c0.271,0.083,0.521,0.212,0.77,0.368c0.137,0.084,0.271,0.173,0.414,0.265
+ c0.43,0.271,0.898,0.444,1.344,0.688c0.168,0.087,0.334,0.168,0.5,0.254c0.121,0.06,0.312,0.144,0.36,0.285
+ c0.065,0.201-0.013,0.259-0.122,0.353c-0.257,0.204-1.021,0.149-1.303,0.105c-0.283-0.05-1.378-0.322-2.338-1.263
+ c0,0-0.46-0.563-0.564-0.618c-0.098-0.06-0.271,0.021-0.412,0.361c-0.146,0.348-1.352,2.803-1.832,3.562
+ c0,0-0.162,0.319-0.27,0.458C179.099,61.672,179.134,61.755,179.038,61.766z"/>
+
+ <image overflow="visible" opacity="0.6" enable-background="new " width="35" height="35" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAACXBIWXMAADerAAA3qwGYrfpiAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABHlJREFUeNrslztvY0UUx8+Zmetr
+e6VYqyTegLiIIBRAKyRrGxREl5oKEDRAzxdAfAcqSjo6VqmQtmTrFDS7QlssEgglWYS9uyIPx/a1
+fWf4n5nxI5FDnFeXkY7Hvr4+87v/85gx0c2YPfgyP166/0cF0yKsOssxE3cwvWx99mb3WmHq9/+s
+kHMNvN1wRJnjWY55xzl6qIkeNT8/G0hdWJbCZmTdOixjrKhAxG6iifNGGaaNgqnh4a8LhodFB/aS
+MMMEjmR1xqRgOsIBLQPWhiXXiGG9BmWInlM+eML5oMUDwACIBcrZKA4yRkzudLSM13uwt6BQeuUw
+zS/fzvXeYUu3uy3VyXuqOyCVDwEkCrmgnocBDqsyXtZw6X3YnetQhtSwaNJR97E+7Pxjjrqken3S
+fQAhZJEnKEQ+ZGVyvIzr9eWfZqtzKZjdbz/Mqdls9f7daw2Puj0lIP2gDo9pjpXsCqxxmjrm0p0q
+7zV7On3s2nm9XNAbFYs60ooKo8gp9spMagzqMC+QzFetjIy/f/giV/vtg9LeQe7aHSoQKskdktyx
+J/InWCpAS5t/pVeqzK2PvjdWqerw8HBBV6uJLZdoiIoyvrIs2cT5x2WeBApst4G4Cpl2pA4uBXPn
+q01jra1ihSTvthedLdaw5CpEWJQ+YxEmB/OKzOjvuFojaYZhvhhM/esHBp20Snl/hQduDTCLafXW
+grZFVmhVo1JKKi1TKYFLHfKFWY1zZp4xF0z6zS+m3+1nbN3dwphVyJ4VStVsoklh4QSzM4aSSkoG
+obIl7Ebq/NvemTCr3/1q9vY7Wb/APjQcNpTmmlEJUckQQwUNEGM0sViSkC0bKtIEcHoSJoTMzbE3
+/y/Myo9PzQAglUppXTM3hoWpieoJytYAhCOEhMVKaPDeAdKmcCvfTYdIgPB5srvz/DDLm9vKdXu3
+EYp3VDl5N1VcK6GzKjiEOn5hG/sJKeUXYoRm3FuYohrxlYMFhrhNzAuDwlxgpe7ZNPnAKq4z8kAX
+zrsoRAm/AD4BTJqcV0egTARzAcTKPYrnOjqZ01QBzKtW83uc6Hp4GKgw1eLdqGWqACFQzldRqCB3
+gaPbacos4NkyLFRz8Q5fqvHM4kOgeCw5+fBMyjiA8rGyduPgMDoEDZBpxbwwUIPvQo26PL0HEucS
+DlFHmlrMCw82yhGfoDxWxM0+5+4DZAf1eHC+0oZjGxuXVIbD2ZLRallFecYgoUrcSKVRmE7UDUu6
+YTuDx9+2P339+VwwmiYaMo0cc1BdknTU6nnqO6Jju7SaUTH4lGM60GGmuWFCRcVYc0xOJ8rA2EUl
+ptqIVzEoxCe2JR0W6uDaI/h8CFV2z9+BRzkxir/kr44n/7ioEpVi6Sh/opuUMUcI2Au8/R229ewU
+kFNhoEQHjnfgt4KUWYLXqnOSM0EtOcVxzGE1VS3KA7Eo2ME9L9C15b/SDn6ztftJtnupP3Gv/Pzs
+NUzrVv6kUdhf/INHNSQntJg/MYSGqMIsZ5Wt7Y/PBrgZN+NmXMf4T4ABAGmkxtoTNkqqAAAAAElF
+TkSuQmCC" transform="matrix(0.1646 0 0 0.1714 152.6182 59.5842)">
+ </image>
+
+ <linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-2168.375" y1="800.9485" x2="-2171.0417" y2="805.9717" gradientTransform="matrix(-1 0 0 1 -2017.3857 -743.4717)">
+ <stop offset="0" style="stop-color:#04A2D6"/>
+ <stop offset="0.0386" style="stop-color:#4AB6DF"/>
+ <stop offset="0.0786" style="stop-color:#8CCAE7"/>
+ <stop offset="0.1131" style="stop-color:#B6DCF0"/>
+ <stop offset="0.1405" style="stop-color:#CDE8F6"/>
+ <stop offset="0.1573" style="stop-color:#D7EDF9"/>
+ <stop offset="0.3956" style="stop-color:#A6D7EE"/>
+ <stop offset="0.9367" style="stop-color:#09AEDC"/>
+ <stop offset="1" style="stop-color:#07AADB"/>
+ </linearGradient>
+ <path opacity="0.7" fill="url(#SVGID_18_)" enable-background="new " d="M155.909,61.643c0.074-0.036,0.018-0.136-0.006-0.191
+ c-0.055-0.133-0.139-0.258-0.207-0.381c-0.141-0.249-0.281-0.484-0.424-0.733c-0.192-0.343-0.385-0.687-0.563-1.021
+ c-0.199-0.374-0.385-0.753-0.569-1.125c-0.115-0.245-0.24-0.494-0.361-0.738c-0.156-0.336-0.281-0.802-0.689-0.907
+ c-0.298-0.078-0.623-0.003-0.913,0.073c-0.28,0.079-0.526,0.212-0.766,0.361c-0.142,0.087-0.28,0.183-0.416,0.271
+ c-0.291,0.186-0.595,0.354-0.902,0.508c-0.272,0.141-0.569,0.256-0.832,0.415c-0.141,0.098-0.288,0.212-0.358,0.372
+ c-0.043,0.104-0.086,0.314,0.052,0.384c0.295,0.146,1.088,0.05,1.375,0.008c0.276-0.052,1.224-0.191,2.247-1.244
+ c0,0,0.564-0.62,0.697-0.613c0.117,0.008,0.151,0.008,0.293,0.354c0.142,0.353,1.359,2.774,1.838,3.533
+ c0.072,0.115,0.142,0.229,0.203,0.354c0.052,0.086,0.129,0.213,0.168,0.3C155.791,61.662,155.858,61.667,155.909,61.643z"/>
+ <path fill="none" d="M153.581,66.35c-0.667-0.527-0.797-1.04,1.169-0.7c1.024,0.177,6.58,1.373,9.854,0.41
+ c0,0,2.08-0.471,2.662-0.53v0.938c-1.141,0.061-1.783,0.265-2.338,0.706C164.372,67.605,156.241,68.456,153.581,66.35z"/>
+
+ <image overflow="visible" enable-background="new " width="74" height="19" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAATCAYAAAA3UZtOAAAACXBIWXMAADOEAAAzhAGPDfkjAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABBxJREFUeNrsls9vE0cUx+fNOiSC
+SLUqDqEJKAcfcqp86S1SLSFVPfSASP8A/oT+KT3xF3ADJP4ES20lDj24l9IDEVGAKqFpu+DYWXtn
+5vF982O9iVKHmECryk963t2Z8ex7n/nOm1VqbnOb279gNK3zxv3dK7i04a3UxuJEp05EdKGxHcJ7
+u1vXt1PD2oPnPh7E0EIMvv/3rbXt/wKoVVy+g387CyjmML7el9rewXJ4V2DU2prwDgssotT/48cA
+1pjWaUP/VQS2XqdKyFafAMcRwmk2re8Ma79D/x0B9tnDF70EF9B++aigygZVmQZVEACRz9rVpMFn
+SfMC7RRFi8puRffbcfXB86fH5U45Yu/iXz2KC42rEbA7W2uD9wZFixpM2KvBQyJgEnd4kXDClf09
+HhzPLJtzQZpSPxDiMi6bTHrzxJAC/jUG7vGkLHj1rQclSv8OoO3PBGphQRcZJrisaU8TrRQsagKw
+pCRRlgspOMPKGjxIQ6U0rtjRRUECDUoqprCAqQBSjVg1KNgSHjcQzEaIW+bgAou7gfXdE2XpAO3x
+PwGbCqqRZQefX87uXWtQfuTUZuFUGxO3cPW6FS42pjFAQ46G0qssQZQB7BWYiKUdy1PURzWwXEGh
+ylVkQxrpaZoAi5A4TkLHamNQf5oQ718izR4e2o1zLCr8Df49/OG5Tj2xu0/eZH3jmkNHa80F/c1S
+pu68MdzaB60jy/69EJMawvuOVIFgRuAjwPByNYYPrbRx2MaxXe61rq18lcBEkb5P0zEIJM8ARDqp
+C/MkiOk/tf/LrUtlgifAPDTUNCxij617GgapA7Q92r29+tO5QdVtbNwnf49c51nfdg5wHTG3X5es
++qVThZ1EJ7cBGKsSMv8LsntlJrDSwuqoBDkYBOYgJiP1T+PnEgZkcOcXI/xJoGSA1PAHi/KHC6Vt
+Hk5qP17eg9BUiXEmllDnVc45IHVxK4Xd16lnX10985ScqXQcjuyVoeH2HyPXejmwTQTRQZ5tUZhh
+khykbdlE3ZeIfmidD1yCLmu13yE9ATsU5cFtLbAFeBaTH1fbfPK54VSA6PvxPGLlFYwFNCVzXjBC
+De/KMa6L9/QA61Agbd/89FzfXe99qj/5s1zENluHIlb6pZQkbl7KVAdTt+MqLqF0reN2RZISSNYF
+hYgLJFd7FpDWtwdl2qgmG9ul37gAXOAcsSpGinZwvwdAXsmAleM/3UJRbxxAgZna+fXL5v4H+TKf
+xX5+NV6UD1TreCUAUU2OX9MhWQEl24KPqcu4BGECrIxu6pCkzQWPoKAcAhTVkzlHHpTzYH7YnB3M
+Bwd10h7vlxlU1USiy/7rgcmDKCGjkDhVIOQAEFAeRKoxXlVBXWU1JoCSbQVIxpDK732xPFBzm9vc
+/m/2VoABANqTBwl+evcjAAAAAElFTkSuQmCC" transform="matrix(0.1946 0 0 0.1642 152.874 64.7522)">
+ </image>
+
+ <image overflow="visible" enable-background="new " width="65" height="14" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAAAOCAYAAABw+XH8AAAACXBIWXMAADOEAAAzhAGPDfkjAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAfBJREFUeNrsVr1OwzAQ9l0qVInu
+tAiVSjD0IRjYYKBMSKx9AB6AgQdgZOgD9AH4Wbuy8QAMDCkCiUphLxJI9NyznTRu4rQNlJ8hp1r2
+WWff3ffdORWikEKUwF8HsH71sspTKdKlwwaJxMgRsSSlUsqeJAiM1WFwvDn6NRA4oTWeyjmPtXk0
+lgsCnwkNedkFD+6Co/pHVgClvIluXA80cyQn4e7zqIbrEx7by64WQhQemWRHCZSk5pymWFUASADB
+P6W32WiXt2+/DEIjZFcxoS62mQMDhA1CZPOt/nRVg06K/XlhyspGuVIhAHjGRivmEh2FMQh49T7L
+Zykj8S2eKqF6yqMZehGaaYAKOHqJYmBSwS8iEYAuIKbusYDWbEe6xsDYIOqG8KWAM26P+9wgMOsX
+PO04WQIoG+eQChZjoITd467aSO5TooImd1v3kck48zFb8XCIHn7yssexBAii47dq/XngO0EAhA5P
+lxnl2mZkGxYVVWaoDBZj0mILbeaSFWEljo4mIBknOwE93giBMuWuNAagy/6eOP5e/6D6+mOfyPrN
+wG4V3S6SZNNLvO7MmnogK3KOMzkzMPXMW6UvwOfkhzB96py1BwT9WfQfD2tv/+Z/AoO1Zz+YMyVK
+lGR6L0rf6L3n1uIMF1JIIbllLMAANWOfEJzp3VsAAAAASUVORK5CYII=" transform="matrix(0.192 0 0 0.1886 168.541 64.3342)">
+ </image>
+
+ <image overflow="visible" enable-background="new " width="65" height="14" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAAAOCAYAAABw+XH8AAAACXBIWXMAADOEAAAzhAGPDfkjAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjxJREFUeNrsVztOAzEQtZ0UFFvQ
+EQgCiWyRDg5AQUlBA1yBjoaSI3AADkCNhCIBPVeAjmKREEogJQUUSMTDs9fe2I5DPtpEFAxajW02
+9ryPh8DYfzAeW6xdPh8TsZQTJpL6L3Nucj4nZGHX8KPmxLl+KkQD+0ruHXf+erj69BdIqMap4bvA
+tJ0jJU2VAqhIMdMiaMi454wr8bNrK1ft7oT1zoS4YSQkALqo1asKJqySUhFArAdFBc9Bc8dT5Crt
+jGXEFYg9PN8T1usSVxoh0euw3GrfIe2QexUcIC4mLsT4G5cb94LoXWpB+En7oP5QKgkrrc4mNr7A
+IVuKB6WkhO6ieN1XliLbzIIEETjK9hjUeo/0bsUy1+/k+XD1YWoSVGxcv93B/TvaymDCkpE3wqAY
+U5ytsRJvhFEg40ZsL0PAgFPN+QUxowipDmVH8CMhKUE+xV1vKtPLnkyREkm+I2whZB8UREOKVmD4
+CCJoBOCBWs1+Iv9sBvE+zK8WR+Ecy7WN224DvSHRABg7RWpinoKHxNhgwBWqJtJFx4+QY7jBAxy+
+75ORiT5oFWc48jHYLnvZr39OTUJwRRraCYYMXZ+0qutCU2YJo/J6QeCcDOd9sIJkgGYe6F8Bl9bE
+FRkgIukray8DN+SQx4IdCs5iaynGSagcc9R1mp0GjSv16FQ+MeiZNvH1m652CqkvFL7/XZ+Ha4Wr
+PEs76iq3OSRkaHKfZdY9hz/nv8daq7OEtBAsd6Hu1/9/NXOMHwEGAPHs9A6pZFCvAAAAAElFTkSu
+QmCC" transform="matrix(0.192 0 0 0.1886 153.5488 64.5032)">
+ </image>
+ <g>
+
+ <image overflow="visible" enable-background="new " width="73" height="18" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAASCAYAAAAXOvPoAAAACXBIWXMAADLAAAAywAEoZFrbAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA/ZJREFUeNrsl7tuE0EUhufMeteX
+EOGAAg4XxzQUNKQACYGQ0mGJJkiEljwCj5BHSAldaOiCQoXTISgpcE0VIEEJNwUQkJB4D/85M7ve
+GEJwAEPhkWbPXmf++c5lbGP6rd/6rUeNejnZkbmlS8Rcx6SNpavHF7LPqnMvLsHUfySO9zgf887f
+Qkd28Y3nk9WFfwoJcK7DTKHXIK6GSReN69lW831XrxJ9D8PscH83SLFzgmiZXp6s3v7jkI7dXT4M
+U3Fq2nLkjIkmYCb8rYrv+h71OoQz88ohBs04EUpOeot4JbZm+u2V6q3OT3PdzFObW1IoTArBxKwQ
+Jjq9xZ1gtrmFIIp7m+uiFwfVHVhjrCMjOlijydmdBOV+FYy/FCApFKy3gnkqGueUAbRbEflLoLgz
+PeQkF6jV6LVWQVlAimFbsU825hWO45u4Nd9VugHOaZgxDDEu3U1EZXihzAkUH7/ccYwTABLivi6w
+91wWYEfx3DOULHxXmNhYREwUBiYfOjDKC3DkcV4srvHEfDXcfL0Vz3xe35p/c/no+64iCaTHYW5g
+1DKhpxXTeiFq2qKyiw04U2RlLOSldEpqFztoUhiYu9y7krl1bDJZhwkY0ZRDRpVwOABI5ZC866AL
+7yCuTITnQ1FgQuLm6kZrZg0RtBOgn6cbkVT8B+TAjEknD4gCUjHkt5NkV1FveSEtKYZ+qJZA0khq
+bzkc+5oQZ4j6+yZhn6Rl5hVj23OTd1Qeeoq4PwgwRQiIcH8A10M43xdIxDhNoq2U02GbQ5FFDx48
+ebcxf+fcwfd7+p1UvfcyD1OQCeKcFUBjIgjequO8bjMi1UNYjIgrimgrKechsfNgBNGbuLkOenF7
+61VoVrhY53FKUpVsmk7yvaQtggIlhtJFl3IOjsxZxuL3CyBfl907ZEK8L98N52GtaXzc5EYxoOaX
+mJsnBsL1M4eijT/yY3L0/qs8YBR0IYAFQGOogQKoDn11EZzHkgq4KFhSIDkMLZ6TUC2KB60jtsWc
+TktYudXgcAtPs1nBkH/mzmUOhZRcwxZwkK4pJNcaZazjhNZpgTMUTHXAIsWo+fRDCxFE6xdGChtd
+bI57b6cero3qD0QJOYVkprDgqRAEI3JeFSuQBiBe3pF6Efq6IYU0TCGwLjbwICKMEZADKO9ZBc4p
+JIk6BWgphRZajczZLy0zi2gxgxi8FNDiyQPhs//mb8n5R2uj0FwTSAJCRCMVpgReSSE5jztADpaA
+lIWHSaRY2t4FEr4Nk8JL5KPLdbRZxM6spnSg0BbPDv8elJ7/Lbn2+NPhyHBlV0iyNdN2QIGPNOxC
+mrZJxFgPMyCtWisXR/Kr/b/h/fb/t28CDABtvESq2ArxYwAAAABJRU5ErkJggg==" transform="matrix(0.2005 0 0 0.1866 167.7021 64.7053)">
+ </image>
+
+ <image overflow="visible" enable-background="new " width="65" height="14" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAAAOCAYAAABw+XH8AAAACXBIWXMAADOEAAAzhAGPDfkjAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAn9JREFUeNrsV71uE0EQ3llFJyQQ
+SiwXx48iF6lRhESXHgqMjIREy+PwDFQ8AAGXrqhcRHkEZJCCEumILENBkcTyDt/s7e3tnhc5jhxD
+kZHGsze3tzffNz+2lboRRf9DEPf3j5/APIO2fGDMPrhZGHDlZ/+hDHyyFD+XLthywRVKokPYwY/X
+nZ9rISEFaoHsQHehd5pgjYda+71UQB0JobAKSNBakI6wfgcyPpy+2o6I2Lgm4HOgFkgGvSXh1iBq
+ReAeNLt1SIb4xG2ci6h+hu2ShNBHWD6GDqCrIeHhx5OnMG9Qirlzie04MCtoVIpKNSLDAfdijL2v
+dbMa4Kv2kcqwjohemoTO/rEFjf7MOQE67GHlyjgMehXDi+e85TtJU7LDqVK5TzRA27zHGcVSM6EC
+7gBb0LMg01V2DHM68AYxl5UUgXKWSRSLFHq1debSrMWnyw1lZ4AApd5icXDUzc+XrYQMB9+F3cRB
+Z7Cn6MscB2ccDCedyLhx/fvXoZYQXlA52u4pc0dzPJHaIJdVUhOtqUDMnxFAH899wd5i1M2nqXMX
+kTDEoSO8LXMp3cPre7DtoDxbrkqycGLrRH+bS5Q8JYiw09/5NdUFLNkm9g9PsKdAfBfYKnH3ScCD
+jK/P0+Cv9BW5/elkKwJcyh60h8ncdtn2pHCDhKuKVhyfEQC2pNuWpyFWkvUxLifYVXx7cW+6lh9L
+ETFsSUC1qB7aqM3zBLSaJErAMqxgL6KBzyou+fhiiGvJ9Di4PaElgF/rjyUMU0uKEaBEzTfYqpF2
+ClsO2oeOPVDDzR6JWgtZt5k+6ubTVX3zrE1QNbdlyDZm0W/or+8vH8xu/sX8Q/kjwABFitXc0+4c
+pQAAAABJRU5ErkJggg==" transform="matrix(0.192 0 0 0.1886 168.8301 64.4602)">
+ </image>
+ </g>
+ </g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/data/Sina.svg Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,998 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="342.748px" height="247.249px" viewBox="0 0 342.748 247.249" enable-background="new 0 0 342.748 247.249"
+ xml:space="preserve">
+<pattern x="-424.3" y="543.506" width="69" height="69" patternUnits="userSpaceOnUse" id="Unnamed_Pattern" viewBox="2.125 -70.896 69 69" overflow="visible">
+ <g>
+ <polygon fill="none" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <polygon fill="#F7BC60" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <g>
+ <path fill="#FFFFFF" d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <path fill="#FFFFFF" d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C8.15-41.004,8.149-41.02,8.14-41.04"/>
+ <path fill="#FFFFFF" d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46
+ c-0.051,0.062-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C15.81-2.74,15.809-2.756,15.8-2.776"/>
+ <path fill="#FFFFFF" d="M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751
+ C8.15-2.74,8.149-2.756,8.14-2.776"/>
+ <path fill="#FFFFFF" d="M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46
+ C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751
+ C0.489-2.74,0.488-2.756,0.479-2.776"/>
+ </g>
+ </g>
+</pattern>
+<g>
+ <path fill="#FFFFFF" d="M196.057,80.818c0,21.775-25.908,39.408-57.877,39.408c-31.947,0-57.855-17.632-57.855-39.408
+ c0-21.786,25.908-39.418,57.855-39.418C170.148,41.4,196.057,59.032,196.057,80.818z"/>
+</g>
+<path d="M51.265,138.916c3.449-1.113,7.471-1.664,12.012-1.664c5.477,0,10.612,0.97,15.56,2.402
+ c6.26,1.841,10.513,4.761,14.348,8.188l6.469-21.841c-3.02-1.345-7.35-2.612-13.037-3.802s-11.847-1.786-18.437-1.786
+ c-13.907,0-25.654,2.502-35.165,7.527c-9.543,5.024-15.439,11.328-17.676,18.921c-1.741,5.896-1.267,10.8,1.455,14.756
+ c2.678,3.935,7.769,6.865,15.229,8.728c2.7,0.694,5.808,1.278,9.257,1.808c3.427,0.474,6.127,0.915,8.122,1.333
+ c4.166,0.805,6.91,1.643,8.199,2.502c1.322,0.859,1.708,2.248,1.135,4.198c-0.639,2.116-2.468,3.747-5.443,4.827
+ c-3.009,1.113-7.295,1.652-12.838,1.652c-4.243,0-8.122-0.363-11.626-1.146c-3.471-0.761-6.523-1.708-9.157-2.767
+ c-3.042-1.223-5.234-2.479-6.865-3.416c-3.979-2.259-6.149-4.496-6.149-4.496L0,197.223c3.395,1.576,8.1,3.02,14.117,4.331
+ c5.995,1.312,12.938,1.961,20.784,1.961c14.205,0,26.106-2.479,35.76-7.482c9.665-4.97,15.692-11.56,18.106-19.659
+ c1.653-5.554,1.256-10.193-1.201-13.94c-2.468-3.714-7.174-6.402-14.106-8.133c-3.107-0.76-6.259-1.377-9.444-1.873
+ s-6.138-1.014-8.86-1.521c-4.948-0.969-7.989-1.95-9.125-2.941c-1.113-0.992-1.388-2.392-0.837-4.276
+ C45.799,141.627,47.816,140.073,51.265,138.916z"/>
+<g>
+ <path fill="#E33237" d="M227.894,23.052c-0.044-2.149-1.708-4.022-5.907-3.482c-6.898,0.805-14.667,5.411-19.935,9.455
+ c-4.354,3.339-7.692,5.676-11.229,4.298c-5.015-1.973,2.678-14.602,4.606-17.742c3.03-4.838,4.529-11.637-3.152-10.271
+ c-7.372,1.312-13.631,7.56-20.519,14.458c-3.108,3.108-6.811,8.552-10.987,9.257c-8.783,1.477-4.188-10.579-2.446-15.229
+ c2.7-7.251,4.11-13.025-0.077-13.653c-9.411-1.521-18.073,9.532-23.506,17.378c-3.052,4.386-9.003,17.434-15.406,13.61
+ c-2.821-1.675,0.353-10.546-1.014-14.524c-1.488-4.354-7.196-0.794-10.326,4.088c-2.733,4.309-4.309,8.111-6.237,12.772
+ c-1.036,2.513-3.361,10.777-7.417,9.532c-3.449-1.036-2.447-7.02-2.37-9.576c0.077-1.334,0.177-3.516-0.782-4.298
+ c-1.763-1.477-5.587,1.62-8.375,7.075c-3.714,7.218-6.854,16.938-7.273,17.709c-25.709,50.119,18.778,67.861,55.111,68.753
+ c40.024,0.992,103.521-20.519,88.115-67.53c-1.135-3.46-2.711-6.292-3.35-8.397c-1.201-3.901,2.766-8.034,7.107-13.489
+ C224.995,30.138,227.971,26.061,227.894,23.052z M191.957,79.64c-1.929,19.946-30.36,35.892-61.205,35.132
+ c-28.597-0.706-47.628-15.781-44.454-33.226c3.063-16.971,26.403-31.605,53.898-33.226
+ C169.719,46.568,193.842,60.299,191.957,79.64z"/>
+ <g>
+ <g>
+ <path d="M135.006,61.666c-13.059,0.716-24.806,11.075-26.668,23.384c-1.896,12.53,7.107,22.933,20.552,22.988
+ c13.93,0.044,26.823-10.932,28.289-24.277C158.644,70.702,148.527,60.938,135.006,61.666z M133.331,89.502
+ c-0.529,4.65-4.562,8.507-8.981,8.574c-4.309,0.055-7.339-3.593-6.755-8.133c0.584-4.496,4.463-8.265,8.728-8.441
+ C130.686,81.314,133.838,84.885,133.331,89.502z M138.069,82.405c-0.176,1.499-1.466,2.722-2.898,2.744
+ c-1.388,0.033-2.347-1.146-2.171-2.601c0.177-1.477,1.411-2.667,2.799-2.722C137.21,79.75,138.224,80.896,138.069,82.405z"/>
+ </g>
+ </g>
+</g>
+<path d="M225.579,202.313h-28.277l12.641-40.784c0.98-3.163,1.752-6.337,2.347-9.467c0.584-3.151,0.684-5.454,0.221-6.953
+ c-0.496-1.73-1.631-2.997-3.384-3.78c-1.807-0.771-4.474-1.189-8.033-1.189c-2.546,0-5.278,0.374-8.144,1.123
+ c-2.854,0.728-6.072,1.939-9.632,3.561l-17.731,57.49h-28.299l22.315-72.456c0,0,23.682-9.995,56.874-9.995
+ c9.455,0,20.376,2.446,24.211,7.384c3.824,4.948,4.243,12.32,1.257,22.128L225.579,202.313"/>
+<path d="M336.837,126.354c-5.797-4.386-16.717-6.568-32.752-6.568c-16.617,0-32.354,3.075-35.539,3.78l-5.929,19.064
+ c0,0,14.657-5.643,30.471-5.643c7.735,0,13.356,0.838,16.816,2.502s4.54,4.672,3.284,8.98l-9.5,31.507
+ c-2.688,1.664-5.609,3.02-8.815,4.044c-3.196,1.014-6.204,1.521-9.025,1.521c-3.56,0-6.095-0.199-7.647-0.673
+ c-1.532-0.43-2.756-1.124-3.703-2.038c-0.959-0.926-1.433-1.907-1.433-2.921c-0.022-1.036,0.177-2.369,0.694-3.978
+ c0.727-2.458,2.061-4.431,4-5.963c1.929-1.51,4.408-2.622,7.461-3.438c2.479-0.65,6.017-1.201,10.611-1.708
+ c1.621-0.177,3.053-0.287,4.541-0.397l4.386-14.877c-5.51,0.387-11.009,0.75-16.299,1.345c-7.956,0.87-14.898,2.337-20.729,4.463
+ c-5.885,2.083-10.811,4.938-14.745,8.552c-3.934,3.637-6.777,8.331-8.474,14.072c-2.116,7.152-1.047,13.015,3.218,17.654
+ c4.275,4.606,14.668,6.91,22.987,6.91c39.87,0,60.125-21.225,60.125-21.225l10.558-34.239
+ C344.177,137.648,342.667,130.772,336.837,126.354"/>
+<path d="M110.398,129.638c0,0,16.827,4.584,32.233,1.454c0,0-38.912,121.341-49.976,115.985
+ C92.656,247.077,84.027,244.763,110.398,129.638"/>
+</svg>
--- a/emailservices/emailframework/data/fsmailbrandmanager.rss Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailframework/data/fsmailbrandmanager.rss Wed Oct 13 14:11:15 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2001 - 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2001 - 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -25,6 +25,11 @@
#include <ovi_brand_graphics.mbg>
#include <aol_brand_graphics.mbg>
#include <mail_for_exchange_brand_graphics.mbg>
+#include <163_brand_graphics.mbg>
+#include <qq_brand_graphics.mbg>
+#include <sina_brand_graphics.mbg>
+#include <126_brand_graphics.mbg>
+#include <sohu_brand_graphics.mbg>
#include "mailbrandmanager.hrh"
#include "mailbrandmanager.rh"
@@ -284,6 +289,8 @@
BRAND_MATCH_STRING { text = "hotmail.nl"; },
BRAND_MATCH_STRING { text = "*.hotmail.es"; },
BRAND_MATCH_STRING { text = "hotmail.es"; },
+ BRAND_MATCH_STRING { text = "*.hotmail.com.hk"; },
+ BRAND_MATCH_STRING { text = "hotmail.com.hk"; },
BRAND_MATCH_STRING { text = "*.live.com"; },
BRAND_MATCH_STRING { text = "live.com"; },
BRAND_MATCH_STRING { text = "*.live.at"; },
@@ -424,6 +431,151 @@
{
BRANDABLE_COLOR { id = EFSMailboxNameColor; red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
};
+ },
+
+ BRAND {
+ // definition of 163 brand
+ graphics_file_path = APP_BITMAP_DIR"\\163_brand_graphics.mif";
+
+ brand_id_match_strings =
+ {
+ BRAND_MATCH_STRING { text = "widget_setup_chn_163"; },
+ BRAND_MATCH_STRING { text = "*.163.com"; },
+ BRAND_MATCH_STRING { text = "163.com"; }
+ };
+
+ graphics =
+ {
+ BRANDABLE_GRAPHIC { id = EFSMailboxIcon;
+ icon_id = EMbm163_brand_graphics163;
+ mask_id = EMbm163_brand_graphics163_mask; }
+ };
+
+ texts =
+ {
+ BRANDABLE_TEXT { id = EFSMailboxName; text = "163"; }
+ };
+
+ colors =
+ {
+ BRANDABLE_COLOR { id = EFSMailboxNameColor; red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
+ };
+ },
+
+ BRAND {
+ // definition of QQ brand
+ graphics_file_path = APP_BITMAP_DIR"\\qq_brand_graphics.mif";
+
+ brand_id_match_strings =
+ {
+ BRAND_MATCH_STRING { text = "widget_setup_chn_qq"; },
+ BRAND_MATCH_STRING { text = "*.qq.com"; },
+ BRAND_MATCH_STRING { text = "qq.com"; }
+ };
+
+ graphics =
+ {
+ BRANDABLE_GRAPHIC { id = EFSMailboxIcon;
+ icon_id = EMbmQq_brand_graphicsQq;
+ mask_id = EMbmQq_brand_graphicsQq_mask; }
+ };
+
+ texts =
+ {
+ BRANDABLE_TEXT { id = EFSMailboxName; text = "QQ"; }
+ };
+
+ colors =
+ {
+ BRANDABLE_COLOR { id = EFSMailboxNameColor; red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
+ };
+ },
+
+ BRAND {
+ // definition of Sina brand
+ graphics_file_path = APP_BITMAP_DIR"\\sina_brand_graphics.mif";
+
+ brand_id_match_strings =
+ {
+ BRAND_MATCH_STRING { text = "widget_setup_chn_sina"; },
+ BRAND_MATCH_STRING { text = "*.sina.com"; },
+ BRAND_MATCH_STRING { text = "sina.com"; }
+ };
+
+ graphics =
+ {
+ BRANDABLE_GRAPHIC { id = EFSMailboxIcon;
+ icon_id = EMbmSina_brand_graphicsSina;
+ mask_id = EMbmSina_brand_graphicsSina_mask; }
+ };
+
+ texts =
+ {
+ BRANDABLE_TEXT { id = EFSMailboxName; text = "Sina"; }
+ };
+
+ colors =
+ {
+ BRANDABLE_COLOR { id = EFSMailboxNameColor; red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
+ };
+ },
+
+ BRAND {
+ // definition of 126 brand
+ graphics_file_path = APP_BITMAP_DIR"\\126_brand_graphics.mif";
+
+ brand_id_match_strings =
+ {
+ BRAND_MATCH_STRING { text = "widget_setup_chn_126"; },
+ BRAND_MATCH_STRING { text = "*.126.com"; },
+ BRAND_MATCH_STRING { text = "126.com"; }
+ };
+
+ graphics =
+ {
+ BRANDABLE_GRAPHIC { id = EFSMailboxIcon;
+ icon_id = EMbm126_brand_graphics126;
+ mask_id = EMbm126_brand_graphics126_mask; }
+ };
+
+ texts =
+ {
+ BRANDABLE_TEXT { id = EFSMailboxName; text = "126"; }
+ };
+
+ colors =
+ {
+ BRANDABLE_COLOR { id = EFSMailboxNameColor; red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
+ };
+ },
+
+ BRAND {
+ // definition of Sohu brand
+ graphics_file_path = APP_BITMAP_DIR"\\sohu_brand_graphics.mif";
+
+ brand_id_match_strings =
+ {
+ BRAND_MATCH_STRING { text = "widget_setup_chn_sohu"; },
+ BRAND_MATCH_STRING { text = "*.sohu.com"; },
+ BRAND_MATCH_STRING { text = "sohu.com"; }
+ };
+
+ graphics =
+ {
+ BRANDABLE_GRAPHIC { id = EFSMailboxIcon;
+ icon_id = EMbmSohu_brand_graphicsSohu;
+ mask_id = EMbmSohu_brand_graphicsSohu_mask; }
+ };
+
+ texts =
+ {
+ BRANDABLE_TEXT { id = EFSMailboxName; text = "Sohu"; }
+ };
+
+ colors =
+ {
+ BRANDABLE_COLOR { id = EFSMailboxNameColor; red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
+ };
}
};
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/data/sohu.svg Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,1258 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="196.018px" height="144.25px" viewBox="0 0 196.018 144.25" enable-background="new 0 0 196.018 144.25"
+ xml:space="preserve">
+<pattern x="-189.399" y="595.39" width="69" height="69" patternUnits="userSpaceOnUse" id="Unnamed_Pattern" viewBox="2.125 -70.896 69 69" overflow="visible">
+ <g>
+ <polygon fill="none" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <polygon fill="#F7C454" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/>
+ <g>
+ <path fill="#FFFFFF" d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <path fill="#FFFFFF" d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128
+ c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C8.15-41.004,8.149-41.02,8.14-41.04"/>
+ <path fill="#FFFFFF" d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ </g>
+ </g>
+ <g>
+ <path fill="#FFFFFF" d="M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46
+ c-0.051,0.062-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ c-0.021,0.011-0.021-0.005-0.03-0.025"/>
+ <path fill="#FFFFFF" d="M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
+ c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
+ C15.81-2.74,15.809-2.756,15.8-2.776"/>
+ <path fill="#FFFFFF" d="M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46
+ c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587
+ c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
+ C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
+ c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751
+ C8.15-2.74,8.149-2.756,8.14-2.776"/>
+ <path fill="#FFFFFF" d="M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46
+ C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
+ c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631
+ C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45
+ c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419
+ c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
+ c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367
+ c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751
+ C0.489-2.74,0.488-2.756,0.479-2.776"/>
+ </g>
+ </g>
+</pattern>
+<g>
+ <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="7.272" y1="108.5132" x2="25.7081" y2="95.6041">
+ <stop offset="0" style="stop-color:#BBBBBB"/>
+ <stop offset="0.1726" style="stop-color:#BFBFBF"/>
+ <stop offset="0.3421" style="stop-color:#CBCBCB"/>
+ <stop offset="0.5104" style="stop-color:#DEDEDE"/>
+ <stop offset="0.677" style="stop-color:#FAFAFA"/>
+ <stop offset="0.7033" style="stop-color:#FFFFFF"/>
+ </linearGradient>
+ <polygon fill="url(#SVGID_1_)" points="3.266,86.499 18.933,125.167 29.933,111.833 15.599,81.167 "/>
+ <g opacity="0.85">
+ <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="15.2231" y1="94.4888" x2="31.3358" y2="92.2243">
+ <stop offset="0" style="stop-color:#BBBBBB"/>
+ <stop offset="0.137" style="stop-color:#C2C2C2"/>
+ <stop offset="0.3363" style="stop-color:#D5D5D5"/>
+ <stop offset="0.5727" style="stop-color:#F5F5F5"/>
+ <stop offset="0.6374" style="stop-color:#FFFFFF"/>
+ </linearGradient>
+ <polygon fill="url(#SVGID_2_)" points="11.194,64.761 19.903,127.788 35.03,118.507 24.258,59.261 "/>
+ </g>
+</g>
+<g>
+ <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="17.5537" y1="112.5913" x2="100.9198" y2="42.6389">
+ <stop offset="0" style="stop-color:#BBBBBB"/>
+ <stop offset="0.489" style="stop-color:#FFFFFF"/>
+ </linearGradient>
+ <path fill="url(#SVGID_3_)" d="M28.128,125.193c0,0,31.975-10.049,63.948-15.302L91.62,31.556c0,0-54.355,7.536-64.86,13.475
+ L28.128,125.193z"/>
+ <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="104.998" y1="70.2842" x2="160.204" y2="60.5499">
+ <stop offset="0.4011" style="stop-color:#FFFFFF"/>
+ <stop offset="0.6465" style="stop-color:#DCDCDC"/>
+ <stop offset="0.8656" style="stop-color:#C4C4C4"/>
+ <stop offset="1" style="stop-color:#BBBBBB"/>
+ </linearGradient>
+ <path fill="url(#SVGID_4_)" d="M153.797,24.216c0,0-34.258,3.653-47.047,5.709l4.34,74.91c0,0,32.201-3.426,44.534-3.426
+ L153.797,24.216z"/>
+</g>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="49.2998" y1="174.2046" x2="120.0036" y2="89.9431">
+ <stop offset="0" style="stop-color:#BBBBBB"/>
+ <stop offset="0.1891" style="stop-color:#C0C0C0"/>
+ <stop offset="0.4184" style="stop-color:#CFCFCF"/>
+ <stop offset="0.6676" style="stop-color:#E7E7E7"/>
+ <stop offset="0.8571" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<polygon fill="url(#SVGID_5_)" points="13.601,144.25 137.351,104.5 141.351,137 "/>
+<g>
+ <path fill="#010101" d="M91.564,104.408c-0.078-0.661,0.236-1.017,0.938-1.068c2.416-0.125,3.195,0.275,2.338,1.201
+ c-0.158,0.201-0.236,0.343-0.236,0.426L94.568,126.8c0.152,0.985-0.512,1.662-1.992,2.032c-0.703,0.303-1.053-0.011-1.051-0.94
+ L91.564,104.408z M99.751,103.725c-1.873,1.46-2.887,1.062-3.039-1.193c-0.076-1.254-0.777-2.218-2.1-2.896
+ c-0.391-0.179-0.584-0.311-0.584-0.396c0.391-0.328,1.324-0.508,2.807-0.539c1.17,0.114,2.064,0.408,2.689,0.879
+ C100.925,100.834,101,102.216,99.751,103.725z M100.798,106.568c-0.154-1.661,0.393-2.401,1.641-2.218
+ c1.949,0.049,3.041,0.347,3.273,0.894c0,0.17-0.119,0.361-0.352,0.575c-0.471,0.515-0.783,1.124-0.939,1.83
+ c-0.234,1.146-0.551,2.348-0.941,3.607c3.117,0.501,5.104,1.389,5.959,2.661c0.934,1.937,0.852,3.434-0.242,4.488
+ c-1.795,1.105-2.846,0.674-3.152-1.297c-0.076-2.692-1.008-4.376-2.799-5.046c-1.098,3.088-3.363,6.102-6.799,9.046
+ c-0.703,0.559-1.092,0.803-1.17,0.731c0-0.083,0.311-0.481,0.938-1.194C99.027,117.399,100.554,112.707,100.798,106.568z
+ M115.277,120.284c-0.004,1.606-0.475,2.966-1.412,4.078c-1.094,1.225-2.225,1.737-3.393,1.54
+ c-0.234-0.041-0.391-0.306-0.467-0.799c-0.232-0.971-0.895-1.604-1.984-1.903c-0.625-0.134-0.936-0.243-0.936-0.328
+ c0-0.083,0.352-0.194,1.053-0.329c2.574-0.494,3.744-1.183,3.512-2.07l0.035-21.071l-8.539,1.641
+ c-0.232,0.045-0.43-0.045-0.584-0.269c-0.078-0.153,0-0.254,0.234-0.299l7.486-1.438c0.156-0.029,0.469-0.471,0.938-1.322
+ c0.391-0.751,0.627-1.134,0.705-1.149c2.18,0.174,3.662,0.818,4.439,1.938c0,0.171-0.158,0.411-0.469,0.725
+ c-0.393,0.414-0.586,0.705-0.586,0.874L115.277,120.284z"/>
+ <path fill="#010101" d="M133.814,97.689l3.861-0.741c0.234-0.045,0.467-0.427,0.703-1.15c0.312-0.736,0.547-1.12,0.703-1.15
+ c1.713,0.179,3.115,0.925,4.207,2.237c0,0.086-0.117,0.234-0.354,0.449c-0.467,0.514-0.701,0.981-0.703,1.403l-0.018,10.917
+ c-0.158,0.792-0.939,1.365-2.344,1.719c-0.779,0.149-1.168-0.029-1.166-0.537v-0.889l-4.912,0.943l-0.008,3.808
+ c-0.158,1.725,0.893,2.325,3.154,1.806l2.223-0.427c2.809-0.539,4.564-2.355,5.271-5.453c0.156-0.875,0.312-1.413,0.471-1.613
+ c0.156-0.03,0.193,0.343,0.115,1.12c-0.08,1.623,0.346,2.811,1.281,3.561c0.543,0.402,0.582,0.987,0.113,1.754
+ c-1.096,1.734-3.436,2.986-7.023,3.761l-2.924,0.562c-2.418,0.465-4.018,0.518-4.795,0.159c-0.857-0.343-1.283-1.233-1.281-2.673
+ l0.01-5.711l-4.797,0.921l-0.004,2.793c-0.234,0.469-1.016,0.872-2.342,1.21c-0.625,0.12-0.936-0.115-0.934-0.708v-0.127
+ l0.027-15.867c0-0.677,0.623-0.923,1.873-0.74c0.934,0.159,1.635,0.193,2.104,0.104l4.094-0.786l0.01-5.967
+ c-0.154-0.562,0.273-0.855,1.289-0.881c1.793-0.346,2.689-0.264,2.689,0.244c-0.002,0.17-0.08,0.396-0.234,0.68
+ c-0.236,0.298-0.354,0.533-0.354,0.701L133.814,97.689z M125.605,111.829l4.795-0.921l0.01-5.713l-4.795,0.922L125.605,111.829z
+ M125.615,105.482l4.797-0.922l0.01-5.584l-3.393,0.65c-0.859,0.25-1.328,0.764-1.406,1.54L125.615,105.482z M133.792,110.383
+ l4.914-0.943l0.01-5.839l-4.914,0.943L133.792,110.383z M133.804,104.036l4.912-0.943l0.01-5.712l-4.912,0.943L133.804,104.036z"/>
+ <path fill="#010101" d="M156.404,97.863l1.059-0.203c0.064-0.013,0.193-0.169,0.387-0.471c0.32-0.523,0.609-0.812,0.867-0.861
+ c1.408,0.193,2.307,0.584,2.689,1.17c0,0.133-0.131,0.355-0.385,0.668c-0.258,0.248-0.387,0.405-0.387,0.471l-0.021,12.793
+ c-0.131,0.488-0.707,0.864-1.732,1.126c-0.578,0.11-0.865-0.032-0.863-0.429l0.002-1.289l-5.678,1.09l-0.002,1.785
+ c-0.066,0.409-0.643,0.719-1.732,0.928c-0.643,0.123-0.93-0.085-0.865-0.627l0.025-15.173c0-0.264,0.033-0.403,0.098-0.416
+ c0.127-0.089,0.287-0.12,0.48-0.093c0.963,0.082,1.762,0.192,2.404,0.332l1.154-0.221l0.006-3.967
+ c-0.062-0.648,0.16-0.988,0.674-1.022c1.477-0.217,2.244-0.198,2.309,0.053c0,0.133-0.064,0.277-0.191,0.434
+ c-0.193,0.302-0.291,0.618-0.291,0.948L156.404,97.863z M152.343,111.432l1.539-0.295l0.01-6.247l-1.539,0.295L152.343,111.432z
+ M152.355,104.688l1.539-0.295l0.008-5.554l-1.057,0.203c-0.385,0.008-0.547,0.238-0.482,0.688L152.355,104.688z M156.382,110.656
+ l1.637-0.314l0.012-6.347l-1.637,0.314L156.382,110.656z M156.394,103.813l1.637-0.314l0.01-5.454l-1.637,0.314L156.394,103.813z
+ M165.128,113.536c0,0.66-0.611,1.109-1.828,1.343c-0.707,0.268-1.025,0.063-0.961-0.608l0.033-20.032
+ c0.002-0.66,0.258-1.006,0.771-1.04c0.32,0.071,0.77,0.184,1.346,0.337c0.256,0.148,0.416,0.217,0.48,0.205l1.539-0.296
+ c0.062-0.012,0.193-0.202,0.387-0.569c0.191-0.434,0.385-0.702,0.578-0.806c1.602-0.043,2.756,0.363,3.459,1.218
+ c-0.064,0.146-0.225,0.342-0.482,0.59c-0.514,0.363-0.898,0.834-1.156,1.412c-0.129,0.355-0.451,1.144-0.965,2.365
+ c-0.902,2.092-1.352,3.201-1.352,3.334c0,0.066,0.193,0.16,0.576,0.285c1.986,0.677,3.139,1.91,3.457,3.698
+ c0.25,2.267-0.457,4.021-2.125,5.266c-1.154,0.752-1.893,0.859-2.213,0.326c0-0.065-0.033-0.192-0.096-0.379
+ c-0.062-0.912-0.543-1.383-1.441-1.408L165.128,113.536z M165.138,108.38c0.898-0.04,1.602-0.209,2.117-0.506
+ c0.641-0.386,0.93-1.434,0.871-3.142c-0.064-1.242-0.703-2.31-1.918-3.2l-0.193-0.161c0-0.132,0.098-0.845,0.293-2.139
+ c0.451-2.53,0.744-4.371,0.875-5.521l-1.539,0.296c-0.385,0.009-0.547,0.237-0.482,0.688L165.138,108.38z"/>
+ <path fill="#010101" d="M182.917,91.482c0.062-0.013,0.191-0.268,0.385-0.769c0.387-0.8,0.643-1.214,0.771-1.239
+ c0.449-0.086,1.25,0.356,2.402,1.324c0.064-0.276,0.16-0.658,0.291-1.146c0.064-0.541,0.129-0.949,0.193-1.227
+ c0-0.065,0.033-0.205,0.098-0.416c0.002-0.595,0.256-0.874,0.77-0.841c2.693,0.012,3.559,0.342,2.596,0.988
+ c-0.193,0.17-0.322,0.294-0.385,0.37c-0.258,0.315-0.516,0.762-0.771,1.339c-0.129,0.224-0.227,0.407-0.289,0.552l3.174-0.609
+ c0.062-0.013,0.256-0.38,0.578-1.104c0.387-0.801,0.643-1.246,0.773-1.338c0.447-0.086,1.184,0.402,2.209,1.459
+ c0.254,0.283,0.35,0.463,0.287,0.539c-0.129,0.159-0.418,0.279-0.867,0.365l-4.906,0.942c1.281,0.481,1.857,1.229,1.729,2.246
+ c-0.131,0.817-0.613,1.374-1.445,1.665c-0.836,0.096-1.219-0.261-1.152-1.067v-0.099c0.387-1.131,0.291-1.973-0.285-2.523
+ l-0.48,0.092c-0.578,0.972-1.35,1.945-2.312,2.924c-1.285,1.173-1.766,1.396-1.443,0.673c0.707-1.259,1.189-2.375,1.449-3.351
+ l-5.291,1.016c1.279,0.482,1.824,1.369,1.629,2.662c-0.131,0.686-0.516,1.09-1.156,1.213l-0.004,2.975
+ c0.062-0.012,0.256-0.213,0.576-0.606c0.58-0.771,0.965-1.176,1.158-1.213c0.191-0.103,0.607,0.081,1.248,0.553
+ c0.32,0.27,0.543,0.426,0.674,0.466l0.002-2.082c0.002-0.529,0.291-0.782,0.867-0.763c0.576-0.043,1.25-0.041,2.02,0.01
+ l3.078-0.591c0.064-0.013,0.193-0.17,0.385-0.472c0.322-0.522,0.547-0.798,0.676-0.823c1.602,0.155,2.562,0.533,2.883,1.132
+ c0,0.066-0.129,0.289-0.387,0.669l-0.289,0.354l-0.02,11.998c0,0.528-0.482,0.919-1.443,1.17c-1.092,0.342-1.605,0.209-1.539-0.398
+ l0.002-0.595l-3.465,0.665v0.793c-0.066,0.673-0.709,1.128-1.926,1.361c-0.578,0.177-0.865-0.031-0.865-0.627l0.012-6.545
+ c-0.451,0.682-1.029,1.057-1.734,1.126c-0.576,0.046-0.896-0.323-0.959-1.104c0.002-0.992-0.318-1.625-0.959-1.898l-0.014,8.43
+ c0.127,0.9-0.387,1.462-1.541,1.684c-0.834,0.358-1.219,0.069-1.152-0.869l0.01-5.553c-0.771,1.404-2.057,2.809-3.854,4.21
+ c-0.707,0.467-1.156,0.718-1.348,0.755c-0.131,0.024,0.031-0.171,0.482-0.589c2.375-3.165,3.951-6.409,4.727-9.731l-2.982,0.573
+ c-0.191,0.036-0.32-0.004-0.383-0.124c-0.064-0.12,0-0.199,0.193-0.236l3.174-0.609l0.004-3.272c0.002-0.528,0.387-0.8,1.156-0.817
+ c0.127-0.024,0.225-0.043,0.287-0.055c-0.318-0.201-0.35-0.691-0.092-1.469c0.32-0.723,0.291-1.213-0.094-1.47l-0.674,0.13
+ c-2.379,3.43-4.016,5.365-4.914,5.801c1.607-3.215,2.637-6.023,3.092-8.426c0-0.064,0.031-0.17,0.096-0.315
+ c-0.062-0.449,0.256-0.644,0.963-0.581c2.82-0.013,3.621,0.362,2.402,1.124c-0.191,0.171-0.322,0.294-0.387,0.372
+ c-0.191,0.234-0.416,0.576-0.674,1.021c-0.129,0.223-0.227,0.375-0.289,0.452L182.917,91.482z M181.458,101.18
+ c1.924-0.369,3.141-0.007,3.652,1.084l0.006-3.471l-3.656,0.701L181.458,101.18z M187.89,108.074l3.463-0.665l0.006-3.769
+ l-3.463,0.665L187.89,108.074z M187.904,99.942l-0.008,3.967l3.465-0.665l0.006-3.967L187.904,99.942z M188.679,95.828
+ c-0.576,0.046-0.834,0.293-0.77,0.743l-0.006,2.876l3.465-0.665l0.006-3.472L188.679,95.828z"/>
+</g>
+<g>
+ <polygon fill="#F4B51F" points="136.67,32.878 147.622,31.479 147.622,42.432 136.67,44.121 "/>
+ <polygon fill="none" stroke="#FFFFFF" points="136.67,32.878 147.622,31.479 147.622,42.432 136.67,44.121 "/>
+</g>
+<g>
+ <path fill="#D2A893" d="M114.776,74.643L78.72,81.236c0,0-1.683,1.895,0.982,2.175c2.104-0.28,35.144-6.523,35.144-6.523
+ L114.776,74.643z"/>
+ <path fill="#D2A893" d="M114.285,66.506L77.248,73.38c0,0-1.683,1.895,0.982,2.175c2.104-0.28,36.125-6.804,36.125-6.804
+ L114.285,66.506z"/>
+ <path fill="#D2A893" d="M113.513,56.966L75.284,63.98c0,0-1.683,1.895,0.982,2.175c2.104-0.28,37.317-6.944,37.317-6.944
+ L113.513,56.966z"/>
+</g>
+<g>
+ <polygon fill="#8B1D22" points="80.351,0 103.851,10.75 102.851,19.5 82.851,37.5 100.101,51.5 97.851,60.25 75.351,75
+ 93.851,91.5 90.36,101.378 13.351,142.75 53.263,94.986 36.351,86.75 36.351,79.5 61.101,52.5 45.601,42.5 46.601,35.75 "/>
+ <polygon fill="#D41B1C" points="80.351,0 103.851,10.75 78.601,34 100.101,51.5 69.851,72 93.851,91.5 13.351,142.75 56.851,90.75
+ 36.351,79.5 64.601,48.5 46.601,35.75 "/>
+ <path d="M57.101,90.25l-43.75,52.561l54.5-29.311l2.25-3.25l-3.25-3.25c0,0,5-6.25-2.25-2.5c0,0-5,2-3.25,0
+ c1.25-1.75,2.75-3.75,2.75-3.75l1.75-2.5l-3,1l-4.75,2l0.5-4L54.851,98C54.851,98,59.601,93.25,57.101,90.25z"/>
+</g>
+<g>
+ <path d="M5.237,46.749c-0.043,0.239-0.141,0.441-0.29,0.606c-0.164,0.122-0.342,0.347-0.535,0.674
+ c-0.089,0.154-0.268,0.287-0.536,0.396c-0.299,0.131-0.635,0.229-1.007,0.297c-0.388,0.008-0.717-0.087-0.986-0.285
+ c-0.105-0.104-0.233-0.243-0.383-0.416c-0.075-0.141-0.165-0.248-0.27-0.321c-0.044-0.115-0.061-0.221-0.045-0.315
+ c0-0.062-0.008-0.114-0.024-0.157c-0.091-0.354-0.105-0.613-0.046-0.778c0.177-0.355,0.355-0.557,0.535-0.604
+ c0.298-0.068,0.544,0.064,0.74,0.398c0.12,0.179,0.21,0.294,0.27,0.345c0.135,0.16,0.299,0.224,0.493,0.188
+ c0.149-0.042,0.298-0.146,0.447-0.312c0.104-0.126,0.186-0.249,0.245-0.367c0.03-0.145,0.074-0.313,0.133-0.509
+ s0.081-0.392,0.065-0.59c-0.061-0.312-0.1-0.799-0.117-1.458c-0.016-0.459,0.005-0.909,0.063-1.352
+ c-0.015-0.259-0.031-0.487-0.046-0.685c-0.151-0.127-0.345-0.224-0.583-0.288c-0.165,0.091-0.321,0.157-0.47,0.2
+ c-0.075,0.028-0.157,0.081-0.246,0.159c-0.104,0.08-0.201,0.175-0.29,0.283c-0.105,0.097-0.202,0.16-0.291,0.191
+ c-0.133,0.009-0.253,0.068-0.357,0.18c-0.18,0.14-0.358,0.257-0.537,0.351c-0.24,0.089-0.47,0.1-0.694,0.031
+ c-0.24-0.142-0.39-0.307-0.45-0.496c-0.061-0.235-0.018-0.513,0.132-0.833c0.178-0.293,0.476-0.524,0.893-0.691
+ c0.508-0.106,0.836-0.266,0.984-0.478c0.148-0.165,0.358-0.272,0.626-0.32c0.119-0.036,0.275-0.096,0.47-0.177
+ c0.164-0.215,0.298-0.408,0.401-0.581c0.163-0.337,0.312-0.664,0.445-0.98c-0.001-0.431-0.024-0.696-0.07-0.797
+ c-0.074-0.155-0.105-0.612-0.094-1.369c-0.12-0.193-0.254-0.348-0.404-0.459c-0.06-0.065-0.12-0.102-0.179-0.105
+ c-0.12,0.021-0.231,0.033-0.336,0.037c-0.238,0.026-0.432,0.085-0.582,0.174c-0.179,0.124-0.336,0.206-0.469,0.245
+ c-0.15,0.043-0.277,0.073-0.381,0.092c-0.283,0.189-0.589,0.283-0.917,0.28c-0.313-0.082-0.479-0.268-0.494-0.559
+ c-0.032-0.256,0.042-0.5,0.22-0.732c0.179-0.232,0.425-0.423,0.738-0.572c0.238-0.118,0.432-0.185,0.582-0.196
+ c0.179-0.002,0.343-0.023,0.492-0.065c0.149-0.073,0.298-0.1,0.448-0.081c0.164-0.014,0.313-0.062,0.448-0.149
+ c0.074-0.044,0.201-0.074,0.379-0.091c0.135-0.163,0.253-0.323,0.357-0.48c0.029-0.066,0.051-0.108,0.067-0.127
+ c-0.016-0.059-0.022-0.111-0.022-0.158c-0.061-0.188-0.099-0.336-0.114-0.441c0.014-0.188,0.013-0.38-0.002-0.577
+ c-0.077-0.542-0.063-1.037,0.041-1.487c0.059-0.38,0.207-0.645,0.446-0.796c0.282-0.204,0.566-0.24,0.851-0.106
+ c0.269,0.152,0.426,0.37,0.473,0.654c0.061,0.282,0.061,0.506,0.002,0.67c-0.015,0.157-0.015,0.326,0.002,0.509
+ c0.044,0.284,0.039,0.624-0.02,1.02c-0.059,0.165-0.081,0.323-0.065,0.474c0.029,0.041,0.067,0.089,0.112,0.143
+ c0.09,0.091,0.203,0.194,0.337,0.309c0.194-0.035,0.366-0.065,0.515-0.093c0.238-0.027,0.47,0.017,0.695,0.13
+ c0.254,0.124,0.382,0.348,0.383,0.671c0.016,0.274-0.133,0.517-0.445,0.727c-0.313,0.181-0.672,0.26-1.075,0.239
+ C5.805,35.062,5.73,35.138,5.67,35.21c-0.178,0.155-0.334,0.322-0.468,0.499c-0.044,0.209-0.096,0.479-0.154,0.813
+ c-0.074,0.307-0.087,0.664-0.041,1.07c0,0.047,0.007,0.1,0.023,0.158c0.03,0.026,0.067,0.065,0.112,0.119
+ c0.075,0.078,0.18,0.16,0.314,0.243c0.104-0.064,0.209-0.137,0.312-0.218c0.164-0.152,0.336-0.198,0.516-0.139
+ c0.194,0.073,0.299,0.231,0.314,0.475c0.001,0.247-0.088,0.502-0.266,0.764c-0.209,0.224-0.447,0.413-0.715,0.568
+ c-0.074,0.137-0.141,0.287-0.2,0.451c-0.074,0.076-0.12,0.168-0.133,0.279c0,0.123,0.008,0.261,0.023,0.411
+ c0.061,0.405,0.1,0.775,0.116,1.111c-0.014,0.265-0.028,0.545-0.042,0.84c0.016,0.26,0.031,0.511,0.047,0.754
+ c0.063,1.175,0.066,1.96,0.007,2.355C5.348,46.137,5.282,46.464,5.237,46.749z M12.605,39.255
+ c-0.433,0.202-0.702,0.189-0.807-0.039c-0.105-0.196-0.113-0.45-0.024-0.758c0.074-0.245,0.177-0.402,0.312-0.473
+ c0.135-0.055,0.275-0.143,0.425-0.261c0.074-0.075,0.163-0.122,0.268-0.141c-0.044-0.038-0.076-0.079-0.09-0.123
+ c-0.09-0.107-0.143-0.213-0.158-0.317c-0.149-0.144-0.336-0.248-0.561-0.315c-0.075,0.014-0.142,0.025-0.202,0.036
+ c-0.418,0.029-0.829,0.148-1.231,0.359c-0.357,0.188-0.723,0.261-1.097,0.22c-0.463-0.024-0.814-0.13-1.054-0.318
+ c-0.104-0.089-0.21-0.225-0.315-0.406c-0.12-0.256-0.159-0.557-0.115-0.903C8.001,35.484,8,35.2,7.955,34.961
+ c-0.046-0.254-0.061-0.505-0.047-0.754c0.029-0.221,0.036-0.423,0.021-0.604c-0.062-0.359-0.018-0.721,0.13-1.087
+ c0.133-0.285,0.312-0.472,0.536-0.559c0.358-0.079,0.613,0.014,0.763,0.279c0.135,0.207,0.204,0.456,0.205,0.749
+ c0.163-0.106,0.319-0.165,0.469-0.177c0.179-0.001,0.322-0.003,0.425-0.007c0.508-0.076,0.836-0.081,0.986-0.016
+ c0.179,0.03,0.276,0.136,0.292,0.317c-0.014,0.249-0.155,0.476-0.424,0.677c-0.178,0.202-0.446,0.365-0.804,0.491
+ c-0.194,0.065-0.343,0.116-0.448,0.15C9.969,34.468,9.85,34.497,9.7,34.509c-0.074-0.002-0.141,0.011-0.201,0.036l0.022,0.02
+ c0.001,0.2-0.006,0.378-0.02,0.535c-0.015,0.188,0.001,0.354,0.045,0.5c0.06,0.098,0.143,0.166,0.248,0.209
+ c0.134,0.038,0.335,0.009,0.604-0.085c0.343-0.2,0.717-0.329,1.12-0.386c0.074-0.014,0.141-0.025,0.202-0.036
+ c0.104-0.111,0.186-0.218,0.245-0.321c0.104-0.172,0.2-0.336,0.29-0.491c0-0.107,0.006-0.193,0.021-0.259
+ c0.013-0.295,0.02-0.704,0.018-1.228c-0.017-0.505-0.032-0.88-0.047-1.124c-0.062-0.235-0.1-0.49-0.115-0.765
+ c0.014-0.28,0.02-0.75,0.018-1.412c-0.032-0.627-0.048-1.078-0.048-1.355c-0.106-0.396-0.115-0.787-0.027-1.174
+ c0.119-0.329,0.341-0.554,0.67-0.674c0.433-0.078,0.746,0.034,0.941,0.339c0.15,0.357,0.182,0.715,0.094,1.068
+ c-0.104,0.404-0.163,0.823-0.176,1.257c-0.014,0.372-0.013,0.703,0.003,0.993c0.015,0.182,0.016,0.39,0.002,0.623
+ c-0.029,0.222-0.036,0.423-0.02,0.604c0.015,0.197,0.016,0.444,0.002,0.739c0.001,0.369,0.01,0.677,0.025,0.92
+ c0.031,0.411,0.04,0.786,0.027,1.128c0.104,0.089,0.224,0.198,0.358,0.328c0.105,0.104,0.247,0.194,0.427,0.27
+ c0.18-0.032,0.344-0.084,0.492-0.158c0.313-0.116,0.672-0.166,1.075-0.146c0.179,0.014,0.343-0.04,0.491-0.158
+ c0.21-0.161,0.357-0.372,0.446-0.635c0.045-0.224,0.073-0.506,0.087-0.848l-0.022,0.004c-0.179,0.017-0.32,0.042-0.426,0.077
+ c-0.104,0.034-0.223,0.032-0.357-0.006c-0.075-0.002-0.143,0.003-0.202,0.013c-0.312,0.042-0.635-0.009-0.963-0.15
+ c-0.299-0.085-0.456-0.202-0.472-0.354c0.014-0.188,0.141-0.372,0.379-0.554c0.357-0.249,0.633-0.383,0.827-0.402
+ c0.164-0.045,0.32-0.104,0.47-0.178c0.224-0.086,0.41-0.119,0.561-0.101c0.134,0.039,0.23,0.06,0.29,0.064
+ c0.016-0.064,0.029-0.129,0.045-0.193c0.012-0.788-0.123-1.303-0.408-1.545c-0.06-0.051-0.18-0.066-0.358-0.051
+ c-0.09,0.017-0.165,0.022-0.225,0.018c-0.074-0.002-0.133-0.007-0.179-0.014c-0.418,0.105-0.791,0.088-1.12-0.053
+ c-0.299-0.147-0.375-0.373-0.226-0.676c0.073-0.214,0.199-0.383,0.379-0.508c0.193-0.127,0.566-0.232,1.119-0.316
+ c0.104,0.013,0.231,0.035,0.381,0.07c0.209,0.069,0.344,0.131,0.403,0.182c0.06,0.066,0.143,0.112,0.247,0.14
+ c0.148-0.026,0.343,0.031,0.583,0.173c0.418,0.248,0.719,0.525,0.898,0.833c0.165,0.309,0.219,0.815,0.161,1.519
+ c0.002,0.478-0.02,0.89-0.062,1.236c0.003,0.893-0.025,1.507-0.084,1.841c-0.059,0.35-0.185,0.657-0.377,0.922
+ c-0.09,0.155-0.201,0.299-0.336,0.431c-0.104,0.081-0.253,0.192-0.446,0.335c-0.388,0.377-0.767,0.568-1.141,0.574
+ c-0.239,0.013-0.522,0.002-0.851-0.032c-0.27,0.003-0.561,0.062-0.874,0.181c-0.179,0.047-0.365,0.088-0.56,0.123
+ c-0.193,0.143-0.342,0.277-0.446,0.403c-0.043,0.224-0.118,0.414-0.222,0.571c0.089-0.016,0.187-0.025,0.292-0.028
+ c0.597,0.031,1.128,0.174,1.592,0.43c0.104,0.09,0.314,0.198,0.628,0.326c0.255,0.124,0.412,0.419,0.474,0.887
+ c0.092,0.707,0.085,1.216-0.018,1.528c-0.208,0.468-0.445,0.85-0.714,1.144c-0.208,0.208-0.387,0.463-0.535,0.767
+ c0.016,0.028,0.03,0.064,0.046,0.107c0.045,0.101,0.09,0.224,0.136,0.368c0.193,0.043,0.381,0.078,0.56,0.107
+ c0.359,0.044,0.68,0.141,0.964,0.289c0.254,0.14,0.546,0.188,0.875,0.144c0.343-0.046,0.589-0.037,0.738,0.029
+ c0.3,0.1,0.628,0.126,0.986,0.077c0.492-0.027,0.836,0.088,1.031,0.346c0.194,0.273,0.264,0.607,0.205,1.003
+ s-0.185,0.665-0.378,0.808c-0.224,0.209-0.59,0.368-1.096,0.475c-0.225,0.024-0.523,0.017-0.896-0.023
+ c-0.328-0.019-0.605-0.1-0.83-0.244c-0.149-0.098-0.299-0.162-0.448-0.197c-0.135-0.007-0.389-0.1-0.763-0.279
+ c-0.254-0.154-0.449-0.242-0.583-0.265c-0.209-0.039-0.434-0.138-0.673-0.295c-0.15-0.128-0.435-0.291-0.853-0.494
+ c-0.194,0.02-0.366,0.051-0.515,0.093c-0.224,0.055-0.411,0.104-0.56,0.146c-0.061,0.042-0.112,0.074-0.157,0.098
+ c-0.105,0.05-0.209,0.152-0.312,0.311c-0.268,0.294-0.521,0.518-0.76,0.668c-0.357,0.248-0.782,0.518-1.274,0.806
+ c-0.134,0.086-0.268,0.211-0.402,0.373c-0.328,0.26-0.738,0.464-1.229,0.614c-0.269,0.032-0.47,0.092-0.605,0.178
+ c-0.253,0.107-0.559,0.124-0.918,0.05c-0.299-0.224-0.494-0.45-0.584-0.681c-0.032-0.38,0.05-0.688,0.244-0.922
+ c0.297-0.162,0.521-0.225,0.671-0.19c0.253-0.062,0.604-0.154,1.051-0.281c0.343-0.077,0.604-0.209,0.783-0.395
+ c0.224-0.164,0.477-0.324,0.76-0.483c0.329-0.167,0.604-0.324,0.827-0.473c0.075-0.09,0.156-0.174,0.246-0.251
+ c0-0.108,0-0.192-0.001-0.255c-0.031-0.318-0.046-0.646-0.047-0.985c-0.345-0.276-0.607-0.538-0.788-0.783
+ c-0.09-0.168-0.277-0.327-0.561-0.477c-0.374-0.163-0.703-0.336-0.988-0.516c-0.209-0.132-0.344-0.292-0.404-0.482
+ c-0.03-0.133-0.039-0.231-0.023-0.295c0.044-0.102,0.111-0.183,0.201-0.245c0.208-0.099,0.403-0.142,0.582-0.128
+ c0.254,0.017,0.546,0.11,0.875,0.283c0.389,0.16,0.703,0.366,0.943,0.616c0.209,0.192,0.411,0.326,0.605,0.399
+ c0.299,0.131,0.546,0.279,0.741,0.444c0.12,0.148,0.277,0.235,0.471,0.262c0.06,0.021,0.097,0.036,0.113,0.05
+ c0.179-0.032,0.365-0.066,0.559-0.101c0.03-0.037,0.052-0.063,0.067-0.082c0.074-0.197,0.163-0.337,0.267-0.417
+ c0.118-0.083,0.298-0.339,0.535-0.767c0.118-0.222,0.207-0.453,0.267-0.694c0.044-0.224-0.047-0.439-0.271-0.646
+ C14.03,39.054,13.38,39.055,12.605,39.255z M10.153,28.789c0.223-0.071,0.492-0.034,0.806,0.109
+ c0.165,0.109,0.255,0.285,0.271,0.529c-0.014,0.295-0.118,0.584-0.311,0.864c-0.089,0.124-0.208,0.23-0.356,0.318
+ c-0.105,0.064-0.21,0.139-0.313,0.219c-0.075,0.059-0.142,0.103-0.202,0.128c-0.104,0.034-0.186,0.08-0.245,0.137
+ c-0.402,0.35-0.806,0.537-1.208,0.563c-0.357-0.028-0.545-0.141-0.561-0.339c-0.016-0.182,0.074-0.366,0.268-0.556
+ c0.327-0.29,0.498-0.506,0.512-0.647c0.03-0.065,0.075-0.112,0.134-0.139c0.074-0.091,0.134-0.171,0.178-0.24
+ c0.03-0.067,0.066-0.112,0.112-0.136c0.089-0.093,0.178-0.201,0.268-0.325C9.712,29.038,9.929,28.875,10.153,28.789z"/>
+ <path d="M28.924,36.394c0.031,0.287,0.024,0.512-0.021,0.674c-0.015,0.156-0.014,0.311,0.002,0.462
+ c0,0.139-0.021,0.281-0.065,0.428s-0.118,0.537-0.221,1.172c-0.059,0.364-0.116,0.837-0.174,1.418
+ c-0.029,0.19-0.097,0.363-0.201,0.521c-0.059,0.135-0.096,0.295-0.109,0.482c-0.089,0.323-0.268,0.718-0.534,1.183
+ c-0.089,0.185-0.155,0.312-0.201,0.382c-0.059,0.181-0.223,0.395-0.49,0.643c-0.46,0.514-0.856,0.77-1.185,0.768
+ c-0.224-0.052-0.366-0.219-0.427-0.501c-0.226-0.314-0.391-0.508-0.495-0.581c-0.12-0.071-0.21-0.178-0.27-0.321
+ c-0.09-0.169-0.226-0.314-0.405-0.436c-0.224-0.176-0.344-0.446-0.36-0.813c-0.075-0.279,0.006-0.51,0.244-0.691
+ c0.253-0.152,0.515-0.199,0.783-0.141c0.18,0.061,0.389,0.17,0.629,0.326c0.119,0.133,0.269,0.206,0.448,0.221
+ c0.299-0.008,0.582-0.182,0.85-0.523c0.104-0.126,0.178-0.286,0.223-0.479c0.028-0.158,0.036-0.36,0.021-0.604
+ c-0.03-0.195-0.039-0.37-0.023-0.527c-0.001-0.153-0.009-0.307-0.024-0.458c0.014-0.311,0.064-0.55,0.153-0.721
+ c0.06-0.134,0.09-0.231,0.089-0.293c0-0.062,0.007-0.125,0.022-0.188c0.044-0.085,0.06-0.157,0.044-0.216
+ c0.028-0.268,0.036-0.453,0.021-0.56c0-0.061,0.006-0.14,0.021-0.234c0-0.169-0.022-0.319-0.068-0.449
+ c-0.12-0.363-0.212-0.71-0.271-1.038c-0.016-0.012-0.031-0.017-0.046-0.015c-0.059,0.134-0.118,0.252-0.178,0.355
+ c-0.044,0.069-0.074,0.137-0.09,0.201c-0.029,0.128-0.072,0.229-0.132,0.301s-0.097,0.156-0.112,0.251
+ c-0.014,0.064-0.074,0.16-0.178,0.286c-0.06,0.058-0.097,0.142-0.11,0.251c-0.061,0.104-0.143,0.219-0.246,0.345
+ c-0.148,0.196-0.253,0.323-0.312,0.379c-0.119,0.068-0.275,0.243-0.469,0.524c-0.223,0.332-0.469,0.577-0.736,0.733
+ c-0.328,0.197-0.604,0.285-0.828,0.264c-0.284-0.011-0.501-0.148-0.651-0.414c-0.104-0.15-0.083-0.408,0.064-0.774
+ c0.164-0.307,0.402-0.558,0.715-0.753c0.537-0.373,0.894-0.676,1.072-0.908c0.045-0.054,0.112-0.12,0.201-0.198
+ c0.208-0.223,0.335-0.384,0.379-0.483c0.029-0.067,0.075-0.137,0.134-0.21c0.06-0.071,0.097-0.141,0.111-0.205
+ c0.074-0.12,0.134-0.208,0.179-0.263c0.074-0.12,0.163-0.268,0.267-0.44c0.09-0.139,0.156-0.244,0.201-0.313
+ c0.03-0.052,0.052-0.109,0.067-0.174c0.058-0.134,0.133-0.239,0.222-0.316c-0.001-0.123,0.007-0.241,0.022-0.352
+ c-0.031-0.071-0.046-0.13-0.046-0.176c-0.091-0.478-0.16-0.92-0.205-1.327c-0.105-0.042-0.188-0.066-0.248-0.071
+ c-0.133,0.133-0.298,0.27-0.491,0.412c-0.209,0.13-0.61,0.51-1.206,1.141c-0.356,0.342-0.744,0.48-1.163,0.417
+ c-0.269-0.06-0.412-0.257-0.427-0.594c-0.031-0.225,0.05-0.479,0.244-0.76c0.133-0.24,0.273-0.381,0.423-0.423
+ c0.299-0.161,0.522-0.332,0.671-0.514c0.208-0.19,0.425-0.36,0.648-0.509c0.193-0.111,0.364-0.234,0.513-0.37
+ c0.029-0.22,0.051-0.432,0.065-0.635c0-0.123,0-0.238-0.001-0.347c-0.149-0.188-0.314-0.367-0.494-0.535
+ c-0.329-0.233-0.614-0.514-0.854-0.84c-0.136-0.315-0.129-0.693,0.019-1.136c0.178-0.387,0.468-0.624,0.871-0.712
+ c0.373-0.112,0.694-0.009,0.964,0.312c0.226,0.283,0.391,0.577,0.496,0.881c0.09,0.216,0.203,0.426,0.337,0.634
+ c0.135-0.009,0.292-0.007,0.472,0.007c0.222-0.302,0.363-0.758,0.421-1.369c0.074-0.26,0.036-0.445-0.113-0.558
+ c-0.256-0.17-0.353-0.383-0.294-0.641c0.044-0.238,0.14-0.418,0.29-0.537c0.192-0.266,0.432-0.4,0.715-0.405
+ c0.209,0.054,0.389,0.191,0.539,0.411c0.255,0.247,0.435,0.669,0.542,1.266c0.104,0.29,0.113,0.566,0.024,0.828
+ c-0.089,0.093-0.126,0.215-0.11,0.366c0.001,0.153-0.111,0.397-0.334,0.729c-0.134,0.163-0.207,0.37-0.223,0.619
+ c-0.132,0.485-0.318,0.827-0.557,1.023c0.001,0.03,0.001,0.077,0.001,0.138c-0.029,0.13-0.043,0.294-0.043,0.494
+ c0.075,0.295,0.121,0.541,0.136,0.738c0.062,0.358,0.167,0.717,0.317,1.074c0.092,0.4,0.189,0.799,0.296,1.195
+ c0.106,0.536,0.153,1.251,0.141,2.146C28.841,35.939,28.879,36.155,28.924,36.394z M30.663,26.514
+ c0.237-0.196,0.492-0.265,0.761-0.205c0.045-0.008,0.097-0.01,0.157-0.006c0.148,0.02,0.38-0.029,0.693-0.146
+ c0.134-0.056,0.291-0.092,0.47-0.108c0.225-0.009,0.456-0.028,0.694-0.055c0.194-0.004,0.365-0.066,0.515-0.186
+ c0.164-0.091,0.321-0.142,0.47-0.154c0.149,0.005,0.433-0.131,0.85-0.406c0.238-0.166,0.478-0.278,0.716-0.337
+ c0.343-0.092,0.68-0.237,1.007-0.435c0.372-0.268,0.678-0.522,0.916-0.766c0.268-0.325,0.625-0.559,1.073-0.701
+ c0.312-0.071,0.612,0.061,0.896,0.395c0.104,0.149,0.136,0.353,0.092,0.606c-0.059,0.411-0.222,0.764-0.49,1.059
+ c-0.326,0.367-0.677,0.639-1.049,0.812c-0.434,0.201-0.769,0.3-1.007,0.297c-0.181,0.002-0.381,0.068-0.604,0.201
+ c-0.373,0.205-0.671,0.32-0.896,0.346c-0.254,0.029-0.566,0.147-0.939,0.353c-0.343,0.201-0.701,0.305-1.074,0.309
+ c-0.194,0.021-0.402,0.08-0.626,0.182c-0.194,0.082-0.358,0.127-0.492,0.136c-0.254,0.215-0.455,0.413-0.604,0.593
+ c-0.208,0.208-0.365,0.367-0.469,0.478c-0.074,0.06-0.156,0.128-0.245,0.206c-0.134,0.348-0.178,0.595-0.132,0.74
+ c0.091,0.461,0.144,0.783,0.159,0.965c0.001,0.446,0.1,0.799,0.295,1.056c0.226,0.468,0.347,0.985,0.362,1.552
+ c-0.072,0.245-0.08,0.501-0.02,0.768c0.121,0.548,0.116,0.949-0.018,1.205c-0.059,0.227-0.082,0.461-0.065,0.704
+ c0.075,0.341,0.047,0.662-0.086,0.963c-0.045,0.116-0.06,0.219-0.045,0.309c0.016,0.197-0.021,0.443-0.108,0.735
+ c-0.089,0.279-0.126,0.493-0.11,0.645c-0.029,0.159-0.052,0.294-0.066,0.404c-0.044,0.146-0.059,0.272-0.043,0.377
+ c0,0.139-0.029,0.291-0.088,0.456c-0.074,0.183-0.111,0.366-0.111,0.552c0.001,0.107-0.028,0.259-0.088,0.454
+ c-0.236,0.582-0.385,1.047-0.443,1.396c-0.104,0.297-0.252,0.562-0.446,0.797c-0.312,0.302-0.588,0.498-0.826,0.587
+ c-0.239,0.074-0.478,0.056-0.717-0.056c-0.209-0.132-0.345-0.308-0.405-0.528c-0.06-0.22-0.068-0.45-0.023-0.688
+ c0.059-0.242,0.133-0.448,0.222-0.617c0.118-0.176,0.267-0.402,0.446-0.682c0.252-0.322,0.385-0.585,0.399-0.788
+ c0.03-0.144,0.073-0.252,0.134-0.324c0.163-0.353,0.274-0.673,0.333-0.961c0.089-0.185,0.14-0.356,0.155-0.514
+ c0.043-0.562,0.183-1.142,0.42-1.739c0.148-0.335,0.177-0.663,0.087-0.986c0.014-0.248,0.028-0.428,0.042-0.539
+ c0.045-0.254,0.059-0.48,0.043-0.678c-0.076-0.37-0.092-0.707-0.048-1.008c0.014-0.311-0.033-0.856-0.14-1.639
+ c-0.062-0.466-0.189-0.806-0.384-1.017c-0.271-0.322-0.437-0.776-0.498-1.366c-0.077-0.619,0.019-1.214,0.286-1.785
+ C30.202,27.067,30.439,26.662,30.663,26.514z M35.348,34.616c-0.149,0.288-0.23,0.525-0.245,0.714c0,0.2-0.074,0.46-0.222,0.778
+ c-0.104,0.219-0.186,0.481-0.244,0.783c-0.059,0.334-0.162,0.708-0.31,1.119c-0.059,0.211-0.08,0.453-0.064,0.729
+ c0.061,0.437,0.212,0.725,0.45,0.866c0.209,0.132,0.427,0.178,0.65,0.138c0.209-0.069,0.41-0.151,0.604-0.247
+ c0.045-0.039,0.09-0.07,0.135-0.094c0.029-0.113,0.074-0.183,0.134-0.209c0.104-0.111,0.147-0.304,0.133-0.579
+ c-0.017-0.351-0.069-0.618-0.159-0.803c-0.136-0.283-0.212-0.501-0.227-0.653c0.014-0.155,0.073-0.274,0.178-0.355
+ c0.164-0.105,0.402-0.087,0.717,0.058c0.329,0.171,0.658,0.467,0.988,0.884c0.15,0.174,0.218,0.354,0.204,0.542
+ c-0.015,0.11,0.03,0.257,0.135,0.438c0.105,0.165,0.15,0.342,0.137,0.529c-0.015,0.157,0.009,0.284,0.068,0.381
+ c0.046,0.1,0.046,0.245,0.001,0.439c-0.044,0.192-0.118,0.321-0.223,0.386c-0.209,0.145-0.388,0.2-0.537,0.166
+ c-0.179-0.06-0.313-0.137-0.403-0.228c-0.09-0.077-0.165-0.141-0.225-0.191c-0.016-0.027-0.03-0.041-0.046-0.038
+ c-0.073,0.121-0.141,0.233-0.199,0.336c-0.283,0.39-0.648,0.68-1.095,0.867c-0.344,0.154-0.68,0.253-1.007,0.297
+ c-0.448,0.034-0.793-0.043-1.032-0.23c-0.269-0.214-0.479-0.491-0.63-0.835c-0.136-0.376-0.197-0.85-0.183-1.423
+ c0.027-0.698,0.159-1.261,0.397-1.688c0.178-0.387,0.355-0.903,0.532-1.552c0.177-0.726,0.377-1.323,0.599-1.794
+ c0.163-0.414,0.236-0.813,0.221-1.195c0.029-0.359-0.033-0.719-0.183-1.076c-0.24-0.512-0.369-1.005-0.387-1.479
+ c-0.075-0.541-0.024-0.942,0.153-1.206c0.193-0.281,0.433-0.478,0.716-0.591c0.387-0.13,0.657,0.052,0.808,0.549
+ c0.196,0.534,0.272,0.998,0.229,1.392c-0.04,1.332-0.112,2.27-0.215,2.812C35.569,33.976,35.451,34.396,35.348,34.616z
+ M39.318,29.489c-0.104,0.572-0.198,0.99-0.287,1.252c-0.074,0.184-0.118,0.354-0.133,0.51c-0.015,0.157-0.052,0.311-0.11,0.459
+ c-0.164,0.292-0.298,0.439-0.402,0.442c-0.148,0.026-0.321-0.174-0.517-0.602c-0.091-0.245-0.129-0.492-0.114-0.741
+ c0.029-0.237,0.013-0.441-0.048-0.616c-0.06-0.25-0.061-0.481-0.002-0.692c0.074-0.245,0.104-0.457,0.088-0.64
+ c-0.016-0.229,0.073-0.506,0.267-0.834c0.223-0.348,0.431-0.585,0.625-0.713c0.269-0.172,0.521-0.201,0.761-0.09
+ c0.344,0.139,0.517,0.331,0.518,0.577c0.016,0.274-0.097,0.571-0.334,0.892C39.48,28.936,39.376,29.201,39.318,29.489z
+ M38.926,32.934c0.18,0.476,0.339,1.147,0.477,2.017c0.091,0.631,0.362,1.413,0.813,2.35c0.345,0.692,0.789,1.314,1.328,1.864
+ c0.299,0.284,0.591,0.426,0.875,0.421c0.327-0.029,0.544,0.001,0.649,0.091c0.119,0.086,0.246,0.164,0.381,0.231
+ c0.09,0.077,0.188,0.229,0.293,0.457c0.12,0.271,0.062,0.574-0.176,0.908c-0.269,0.356-0.566,0.557-0.895,0.601
+ c-0.448,0.05-0.881-0.05-1.3-0.298c-0.419-0.188-0.815-0.485-1.19-0.896c-0.374-0.364-0.614-0.722-0.72-1.072
+ c-0.482-1.377-0.821-2.24-1.016-2.591c-0.196-0.396-0.288-0.88-0.274-1.452c-0.001-0.262-0.024-0.581-0.07-0.959
+ c-0.076-0.479-0.085-0.963-0.027-1.451c0.045-0.361,0.155-0.566,0.334-0.613C38.603,32.49,38.776,32.621,38.926,32.934z"/>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/group/126_brand_graphics.mk Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Make file email branding icons.
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\RESOURCE\APPS
+HEADERDIR=\epoc32\include
+ICONTARGETFILENAME=$(TARGETDIR)\126_brand_graphics.mif
+HEADERFILENAME=$(HEADERDIR)\126_brand_graphics.MBG
+SOURCEDIR=..\data
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) /H$(HEADERFILENAME) \
+ /c16,8 $(SOURCEDIR)\126.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(HEADERFILENAME)&& \
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/group/163_brand_graphics.mk Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Make file email branding icons.
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\RESOURCE\APPS
+HEADERDIR=\epoc32\include
+ICONTARGETFILENAME=$(TARGETDIR)\163_brand_graphics.mif
+HEADERFILENAME=$(HEADERDIR)\163_brand_graphics.MBG
+SOURCEDIR=..\data
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) /H$(HEADERFILENAME) \
+ /c16,8 $(SOURCEDIR)\163.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(HEADERFILENAME)&& \
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
\ No newline at end of file
--- a/emailservices/emailframework/group/bld.inf Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailframework/group/bld.inf Wed Oct 13 14:11:15 2010 +0300
@@ -85,3 +85,38 @@
OPTION SOURCEDIR ../data
OPTION SOURCES -c16,8 mail_for_exchange.svg
END
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE 163_brand_graphics.mif
+OPTION HEADERFILE 163_brand_graphics.mbg
+OPTION SOURCEDIR ../data
+OPTION SOURCES -c16,8 163.svg
+END
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE qq_brand_graphics.mif
+OPTION HEADERFILE qq_brand_graphics.mbg
+OPTION SOURCEDIR ../data
+OPTION SOURCES -c16,8 qq.svg
+END
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE sina_brand_graphics.mif
+OPTION HEADERFILE sina_brand_graphics.mbg
+OPTION SOURCEDIR ../data
+OPTION SOURCES -c16,8 sina.svg
+END
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE 126_brand_graphics.mif
+OPTION HEADERFILE 126_brand_graphics.mbg
+OPTION SOURCEDIR ../data
+OPTION SOURCES -c16,8 126.svg
+END
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE sohu_brand_graphics.mif
+OPTION HEADERFILE sohu_brand_graphics.mbg
+OPTION SOURCEDIR ../data
+OPTION SOURCES -c16,8 sohu.svg
+END
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/group/qq_brand_graphics.mk Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Make file email branding icons.
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\RESOURCE\APPS
+HEADERDIR=\epoc32\include
+ICONTARGETFILENAME=$(TARGETDIR)\qq_brand_graphics.mif
+HEADERFILENAME=$(HEADERDIR)\qq_brand_graphics.MBG
+SOURCEDIR=..\data
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) /H$(HEADERFILENAME) \
+ /c16,8 $(SOURCEDIR)\qq.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(HEADERFILENAME)&& \
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/group/sina_brand_graphics.mk Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Make file email branding icons.
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\RESOURCE\APPS
+HEADERDIR=\epoc32\include
+ICONTARGETFILENAME=$(TARGETDIR)\sina_brand_graphics.mif
+HEADERFILENAME=$(HEADERDIR)\sina_brand_graphics.MBG
+SOURCEDIR=..\data
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) /H$(HEADERFILENAME) \
+ /c16,8 $(SOURCEDIR)\sina.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(HEADERFILENAME)&& \
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/group/sohu_brand_graphics.mk Wed Oct 13 14:11:15 2010 +0300
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Make file email branding icons.
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\RESOURCE\APPS
+HEADERDIR=\epoc32\include
+ICONTARGETFILENAME=$(TARGETDIR)\sohu_brand_graphics.mif
+HEADERFILENAME=$(HEADERDIR)\sohu_brand_graphics.MBG
+SOURCEDIR=..\data
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) /H$(HEADERFILENAME) \
+ /c16,8 $(SOURCEDIR)\sohu.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(HEADERFILENAME)&& \
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
\ No newline at end of file
--- a/emailservices/emailframework/inc/emailversionnumbers.hrh Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailframework/inc/emailversionnumbers.hrh Wed Oct 13 14:11:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : Common email version number definitions
-* Version : %version: 10.1.7.1.1 %
+* Version : %version: 10.1.9 %
*
*/
--- a/emailservices/emailframework/rom/FSEmailFramework.iby Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailframework/rom/FSEmailFramework.iby Wed Oct 13 14:11:15 2010 +0300
@@ -41,6 +41,11 @@
data=DATAZ_\RESOURCE\APPS\aol_brand_graphics.mif APP_BITMAP_DIR\aol_brand_graphics.mif
data=DATAZ_\RESOURCE\APPS\microsoft_brand_graphics.mif APP_BITMAP_DIR\microsoft_brand_graphics.mif
data=DATAZ_\RESOURCE\APPS\mail_for_exchange_brand_graphics.mif APP_BITMAP_DIR\mail_for_exchange_brand_graphics.mif
+data=DATAZ_\RESOURCE\APPS\163_brand_graphics.mif APP_BITMAP_DIR\163_brand_graphics.mif
+data=DATAZ_\RESOURCE\APPS\qq_brand_graphics.mif APP_BITMAP_DIR\qq_brand_graphics.mif
+data=DATAZ_\RESOURCE\APPS\sina_brand_graphics.mif APP_BITMAP_DIR\sina_brand_graphics.mif
+data=DATAZ_\RESOURCE\APPS\126_brand_graphics.mif APP_BITMAP_DIR\126_brand_graphics.mif
+data=DATAZ_\RESOURCE\APPS\sohu_brand_graphics.mif APP_BITMAP_DIR\sohu_brand_graphics.mif
// ECOM_PLUGIN( CFSMailMockupPlugin.dll, CFSMailMockupPlugin.rsc)
--- a/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -409,7 +409,7 @@
CFSMailBrand* CFSMailBrandManagerImpl::FindMatchingBrandL( const TDesC& aBrandId )
{
FUNC_LOG;
- if( ( NULL != &aBrandId ) && aBrandId.Length() )
+ if( aBrandId.Length() )
{
TInt brandCount( iBrands->Count() );
for ( TInt i( 0 ); i < brandCount; i++ )
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpshandler.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpshandler.h Wed Oct 13 14:11:15 2010 +0300
@@ -186,6 +186,11 @@
*/
TInt GetUnreadCountL( TFSMailMsgId aMailbox);
+ /**
+ *
+ */
+ TInt GetWidgetSetupBrandIconVariant();
+
protected:
/**
* From CFSNotificationHandlerBase
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsifconsts.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsifconsts.h Wed Oct 13 14:11:15 2010 +0300
@@ -71,11 +71,19 @@
_LIT8(KKeySetupBrandIcon3, "key_setup_brand_icon_3");
_LIT(KContTypeSetupBrandIcon4, "ct_setup_brand_icon_4");
_LIT8(KKeySetupBrandIcon4, "key_setup_brand_icon_4");
+_LIT(KContTypeSetupBrandIcon5, "ct_setup_brand_icon_5");
+_LIT8(KKeySetupBrandIcon5, "key_setup_brand_icon_5");
-_LIT(KSetupBrand1, "ovi.com");
-_LIT(KSetupBrand2, "yahoo.com");
-_LIT(KSetupBrand3, "hotmail.com");
-_LIT(KSetupBrand4, "gmail.com");
+_LIT(KSetupBrand2, "ovi.com");
+_LIT(KSetupBrand3, "yahoo.com");
+_LIT(KSetupBrand4, "hotmail.com");
+_LIT(KSetupBrand5, "gmail.com");
+
+_LIT(KSetupBrandChn1, "widget_setup_chn_163");
+_LIT(KSetupBrandChn2, "widget_setup_chn_qq");
+_LIT(KSetupBrandChn3, "widget_setup_chn_sina");
+_LIT(KSetupBrandChn4, "widget_setup_chn_126");
+_LIT(KSetupBrandChn5, "widget_setup_chn_sohu");
_LIT(KContTypeBodyText, "ct_body_text_");
_LIT(KKeyBodyText, "key_body_text_");
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h Wed Oct 13 14:11:15 2010 +0300
@@ -210,7 +210,12 @@
*
*/
TBool BackupOrRestoreMode();
-
+
+ /**
+ *
+ */
+ TInt GetWidgetSetupBrandIconVariant();
+
protected:
/**
* From CActive
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailwidgetcenrepkeys.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailwidgetcenrepkeys.h Wed Oct 13 14:11:15 2010 +0300
@@ -48,4 +48,10 @@
// Key to store mailboxes where is new messages. Format: <mailbox1><mailbox2><mailbox3>...
const TUint32 KCMailMailboxesWithNewMail = 0x10000003;
+// Key to variate widget setup brand icons
+const TUint32 KCMailWidgetSetupVariant = 0x10000004;
+const TInt KWidgetSetupBrandNone = 0;
+const TInt KWidgetSetupBrandDefault = 1;
+const TInt KWidgetSetupBrandChina = 2;
+
#endif // CMAILWIDGETCENREPKEYS_H
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -43,8 +43,6 @@
#include "cmailpluginproxy.h"
#include "cmailhandlerpluginpanic.h"
-#include "fsemailserverpskeys.h"
-
using namespace EmailInterface;
// ---------------------------------------------------------
@@ -100,18 +98,6 @@
InitializeExternalAccountsL();
iSettings->StartObservingL( this );
-
- TInt err = RProperty::Define( KPSUidEmailServerCategory,
- KIntMailboxCount,
- RProperty::EInt );
- if ( err != KErrAlreadyExists && err != KErrNone )
- {
- User::LeaveIfError( err );
- }
-
- // set mailbox initial count
- TInt intCount = TotalIntMailboxCount();
- User::LeaveIfError( RProperty::Set( KPSUidEmailServerCategory, KIntMailboxCount, intCount ) );
}
// ---------------------------------------------------------
@@ -484,7 +470,7 @@
// Use localisation format when displaying also unread messages
// Arrays must be used when loc string contains indexed parameters
- CDesCArrayFlat* strings = new( ELeave) CDesCArrayFlat( 1 );
+ CDesCArrayFlat* strings = new CDesCArrayFlat( 1 );
CleanupStack::PushL( strings );
strings->AppendL( accountName ); // replace "%0U" with mailbox name
@@ -945,10 +931,6 @@
{
iLiwIf->AddWidgetToHomescreenL( aMailbox );
}
-
- // update total mailbox count.
- TInt intCount = TotalIntMailboxCount();
- User::LeaveIfError( RProperty::Set( KPSUidEmailServerCategory, KIntMailboxCount, intCount ) );
}
// ---------------------------------------------------------
@@ -998,9 +980,6 @@
break;
}
}
- // update total mailbox count.
- TInt intCount = TotalIntMailboxCount();
- User::LeaveIfError( RProperty::Set( KPSUidEmailServerCategory, KIntMailboxCount, intCount ) );
}
@@ -1824,6 +1803,17 @@
}
// ----------------------------------------------------------------------------
+// CMailCpsHandler::GetWidgetSetupBrandIconVariant()
+// Get widget setup brand icon variant
+// ----------------------------------------------------------------------------
+//
+TInt CMailCpsHandler::GetWidgetSetupBrandIconVariant()
+ {
+ FUNC_LOG;
+ return iSettings->GetWidgetSetupBrandIconVariant();
+ }
+
+// ----------------------------------------------------------------------------
// class CMailCpsUpdateHelper : public CTimer
// Used to limit the rate of updates to Homescreen widget
// ----------------------------------------------------------------------------
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -207,16 +207,11 @@
EMbmCmailhandlerpluginQgn_prop_cmail_new_mailbox_mask,
mailBoxId,
KNullDes);
-
- PublishImageL(
- iInstIdList[aInstance].iCid,
- KContTypeSetupBrandIcon1,
- KKeySetupBrandIcon1,
- EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
- EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
- mailBoxId,
- KSetupBrand1);
+
+ TInt widgetSetupVariant = iMailCpsHandler->GetWidgetSetupBrandIconVariant();
+ if ( widgetSetupVariant == KWidgetSetupBrandDefault )
+ {
PublishImageL(
iInstIdList[aInstance].iCid,
KContTypeSetupBrandIcon2,
@@ -243,6 +238,64 @@
EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
mailBoxId,
KSetupBrand4);
+
+ PublishImageL(
+ iInstIdList[aInstance].iCid,
+ KContTypeSetupBrandIcon5,
+ KKeySetupBrandIcon5,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrand5);
+ }
+ else if ( widgetSetupVariant == KWidgetSetupBrandChina )
+ {
+ PublishImageL(
+ iInstIdList[aInstance].iCid,
+ KContTypeSetupBrandIcon1,
+ KKeySetupBrandIcon1,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrandChn1);
+
+ PublishImageL(
+ iInstIdList[aInstance].iCid,
+ KContTypeSetupBrandIcon2,
+ KKeySetupBrandIcon2,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrandChn2);
+
+ PublishImageL(
+ iInstIdList[aInstance].iCid,
+ KContTypeSetupBrandIcon3,
+ KKeySetupBrandIcon3,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrandChn3);
+
+ PublishImageL(
+ iInstIdList[aInstance].iCid,
+ KContTypeSetupBrandIcon4,
+ KKeySetupBrandIcon4,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrandChn4);
+
+ PublishImageL(
+ iInstIdList[aInstance].iCid,
+ KContTypeSetupBrandIcon5,
+ KKeySetupBrandIcon5,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrandChn5);
+ }
+
iInstIdList[aInstance].iWizardPublished = ETrue;
CleanupStack::PopAndDestroy(setupEmail);
}
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -965,7 +965,7 @@
}
// ----------------------------------------------------------------------------
-// CMailCpsHandler::BackupOrRestoreMode()
+// CMailCpsSettings::BackupOrRestoreMode()
// Check if phone is in backup/restore mode
// ----------------------------------------------------------------------------
//
@@ -981,3 +981,18 @@
}
return backupOrRestore;
}
+
+// ----------------------------------------------------------------------------
+// CMailCpsSettings::GetWidgetSetupBrandIconVariant()
+// Get widget setup brand icon variant
+// ----------------------------------------------------------------------------
+//
+TInt CMailCpsSettings::GetWidgetSetupBrandIconVariant()
+ {
+ FUNC_LOG;
+
+ TInt ret(KWidgetSetupBrandDefault);
+ iCenRep->Get( KCMailWidgetSetupVariant, ret );
+
+ return ret;
+ }
\ No newline at end of file
--- a/emailservices/emailserver/cmailhandlerplugin/src/fsnotificationhandlerbaseimpl.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/fsnotificationhandlerbaseimpl.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -104,7 +104,11 @@
CFSMailFolder* parentFolder(
MailClient().GetFolderByUidL( aMailboxId, aParentFolderId ) );
- User::LeaveIfNull( parentFolder );
+ if ( !parentFolder )
+ {
+ // by some reason the folder could not be found..
+ return EFalse;
+ }
CleanupStack::PushL( parentFolder );
CFSMailMessage* newestMsg( NULL );
@@ -144,19 +148,20 @@
aParentFolderId,
aMsgIdList[index],
EFSMsgDataEnvelope ) );
- User::LeaveIfNull( currentMessage );
- const TTime dateOfCurrentMsg( currentMessage->GetDate() );
-
-
- const TBool msgIsUnread( MsgIsUnread( *currentMessage ) );
- delete currentMessage;
- currentMessage = NULL;
-
- if ( msgIsUnread &&
- ( dateOfCurrentMsg >= dateOfNewest ) )
+ if ( currentMessage )
{
- // At least one of the messages is unread and newest.
- return ETrue;
+ const TTime dateOfCurrentMsg( currentMessage->GetDate() );
+
+ const TBool msgIsUnread( MsgIsUnread( *currentMessage ) );
+ delete currentMessage;
+ currentMessage = NULL;
+
+ if ( msgIsUnread &&
+ ( dateOfCurrentMsg >= dateOfNewest ) )
+ {
+ // At least one of the messages is unread and newest.
+ return ETrue;
+ }
}
--index;
@@ -182,7 +187,7 @@
if ( aEvent != TFSEventMailboxDeleted )
{
CFSMailBox* mailBox( MailClient().GetMailBoxByUidL( aMailbox ) );
- if ( mailBox == NULL )
+ if ( !mailBox )
{
User::Leave( KErrArgument );
}
@@ -219,7 +224,7 @@
// in aParam2
TFSMailMsgId* parentFolderId( NULL );
parentFolderId = static_cast< TFSMailMsgId* >( aParam2 );
- if ( parentFolderId == NULL )
+ if ( !parentFolderId )
{
User::Leave( KErrArgument );
}
@@ -263,6 +268,8 @@
{
// process collected insert requests
RArray<TFSMailMsgId> msgIds;
+ CleanupClosePushL( msgIds );
+
TFSMailMsgId mailBoxId;
TFSMailMsgId parentFolderId;
for ( TInt i = 0; i< iNewInboxEntries.Count(); i++ )
@@ -299,6 +306,7 @@
}
// clear processed entries
msgIds.Reset();
+ CleanupStack::PopAndDestroy( &msgIds );
iNewInboxEntries.Reset();
}
@@ -323,7 +331,7 @@
// Resetting array of sort criteria already here because
// the iterator does not need it anymore.
- CleanupStack::PopAndDestroy(); // sorting
+ CleanupStack::PopAndDestroy( &sorting );
// CleanupStack::PushL doesn't work for M-class
CleanupDeletePushL( iterator );
@@ -342,7 +350,7 @@
CFSMailMessage* outcome = messages[0];
messages.Remove( 0 ); // remove from array to prevent destruction of element
messages.ResetAndDestroy();
- CleanupStack::PopAndDestroy(); // messages
+ CleanupStack::PopAndDestroy( &messages );
CleanupStack::PopAndDestroy( iterator );
return outcome;
}
@@ -392,6 +400,15 @@
iObserver.TimerExpiredL();
}
+TInt CNewMailNotificationTimer::RunError(TInt aError)
+ {
+ if( aError )
+ {
+ INFO_1( "CNewMailNotificationTimer::RunError( aError: %d )", aError );
+ }
+
+ return KErrNone;
+ }
void Panic( TCmailhandlerPanic aPanic )
{
--- a/emailservices/emailserver/group/bld.inf Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/group/bld.inf Wed Oct 13 14:11:15 2010 +0300
@@ -29,10 +29,9 @@
PRJ_EXPORTS
../inc/fsmailserverconst.hrh |../../../inc/fsmailserverconst.hrh
-../inc/fsmailserverconst.h |../../../inc/fsmailserverconst.h
-../inc/fsemailserverpskeys.h |../../../inc/fsemailserverpskeys.h
+../inc/fsmailserverconst.h |../../../inc/fsmailserverconst.h// <cmail>
-../cmailhandlerplugin/inc/cmailwidgetcenrepkeys.h |../../../inc/cmailwidgetcenrepkeys.h
+../cmailhandlerplugin/inc/cmailwidgetcenrepkeys.h |../../../inc/cmailwidgetcenrepkeys.h// </cmail>
../rom/fsmailserver.iby CORE_APP_LAYER_IBY_EXPORT_PATH(fsmailserver.iby)
../rom/fsmailserverresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(fsmailserverresources.iby)
../loc/fsmailserver.loc APP_LAYER_LOC_EXPORT_PATH(fsmailserver.loc)
--- a/emailservices/emailserver/inc/fsemailserverpskeys.h Wed Sep 15 11:52:37 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Domain Publish & Subscribe keys for emailserver
- *
- *
-*/
-
-
-#ifndef FSEMAILSERVERPSKEYS_H
-#define FSEMAILSERVERPSKEYS_H
-
-const TUid KPSUidEmailServerCategory = { 0x2001F40A }; // see KFSMailServerUid
-
-/**
- * Keeps amount of mailboxes that is registered in Email application
- */
-const TUint KIntMailboxCount = 0x00000001;
-
-
-#endif // FSEMAILSERVERPSKEYS_H
--- a/emailservices/emailserver/inc/fsnotificationhandlerbase.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/inc/fsnotificationhandlerbase.h Wed Oct 13 14:11:15 2010 +0300
@@ -87,6 +87,7 @@
// from base class CActive
virtual void DoCancel();
virtual void RunL();
+ virtual TInt RunError( TInt aError );
private:
--- a/emailservices/emailserver/inc/fsnotificationhandlermgrimpl.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/inc/fsnotificationhandlermgrimpl.h Wed Oct 13 14:11:15 2010 +0300
@@ -54,6 +54,23 @@
public MFSMailEventObserver
{
public:
+
+ enum TState
+ {
+ EPrepareInitialization,
+ EInitializeMailIconHandler,
+ EInitializeLedHandler,
+#ifndef __WINS__
+ ESoundHandler,
+#endif
+ EInitializeMtmHandler,
+ EInitializeOutofMemoryHandler,
+ EInitializeAuthenticationHandler,
+ EInitializeMessageQueryHandlerUid,
+ EWaitForPluginsReady,
+ EInitializeCMailCpsHandlerUid,
+ EFinish
+ };
//<cmail> aAppUi parameter no longer necessary
static CFSNotificationHandlerMgr* NewL( CFsEmailGlobalDialogsAppUi* aAppUi = NULL );
@@ -217,6 +234,10 @@
TFSMailMsgId iPreviousMailbox;
TFSMailMsgId iPreviousParentFolderId;
TFSFolderType iPreviousParentFolderType;
+
+ RTimer iTimer;
+
+ TState iState;
};
#endif // C_FSNOTIFICATIONHANDLERMGRIMPL_H
--- a/emailservices/emailserver/src/fsnotificationhandlermgrimpl.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailserver/src/fsnotificationhandlermgrimpl.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -38,6 +38,10 @@
static const TInt64 KMegaByte = 1048576;
+_LIT( KFSMailServerPanic, "FS mail server" );
+const TInt KUndefinedState = 1;
+const TTimeIntervalMicroSeconds32 KDelay = 5000000; // 5 seconds
+
// ======== MEMBER FUNCTIONS ========
@@ -64,9 +68,11 @@
FUNC_LOG;
// Performs the time consuming initialization asynchronously in RunL, in order
// to let the process startup finish quicker
+ iTimer.CreateLocal();
+ SetActive();
+ iState = EPrepareInitialization;
TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- SetActive();
+ User::RequestComplete( status, KErrNone );
}
// ---------------------------------------------------------------------------
@@ -76,48 +82,98 @@
void CFSNotificationHandlerMgr::RunL()
{
FUNC_LOG;
- // Create mail client
- iMailClient = CFSMailClient::NewL();
- if ( iMailClient == NULL )
+
+ TBool goToNextState = ETrue;
+
+ switch( iState )
{
- User::Leave( KErrNoMemory );
+ case EPrepareInitialization:
+ {
+ // Create mail client
+ iMailClient = CFSMailClient::NewL();
+ if ( iMailClient == NULL )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ // Once mail client is created ok, disk space needs to be checked
+ // and cleaned if necessary
+ CleanTempFilesIfNeededL();
+ break;
+ }
+ case EInitializeMailIconHandler:
+ {
+ CreateAndStoreHandlerL( KMailIconHandlerUid );
+ break;
+ }
+ case EInitializeLedHandler:
+ {
+ CreateAndStoreHandlerL( KLedHandlerUid );
+ break;
+ }
+#ifndef __WINS__
+ case ESoundHandler:
+ {
+ // Earlier RefreshData() was called for the soundhandler
+ // object after creation, but as it does not do anything
+ // it is not called anymore.
+ CreateAndStoreHandlerL( KSoundHandlerUid );
+ break;
+ }
+#endif
+ case EInitializeMtmHandler:
+ {
+ CreateAndStoreHandlerL( KMtmHandlerUid );
+ break;
+ }
+ case EInitializeOutofMemoryHandler:
+ {
+ CreateAndStoreHandlerL( KOutofMemoryHandlerUid );
+ break;
+ }
+ case EInitializeAuthenticationHandler:
+ {
+ CreateAndStoreHandlerL( KAuthenticationHandlerUid );
+ break;
+ }
+ case EInitializeMessageQueryHandlerUid:
+ {
+ CreateAndStoreHandlerL( KMessageQueryHandlerUid );
+ break;
+ }
+ case EWaitForPluginsReady:
+ {
+ if ( !iMailClient->AreAllPluginsLoaded() )
+ {
+ goToNextState = EFalse;
+ SetActive();
+ iTimer.After( iStatus, KDelay );
+ }
+ break;
+ }
+ case EInitializeCMailCpsHandlerUid:
+ {
+ CreateAndStoreHandlerL( KCMailCpsHandlerUid );
+ break;
+ }
+ case EFinish:
+ {
+ StartObservingL();
+ goToNextState = EFalse;
+ break;
+ }
+ default:
+ {
+ User::Panic( KFSMailServerPanic, KUndefinedState );
+ break;
+ }
}
-
- // Once mail client is created ok, disk space needs to be checked
- // and cleaned if necessary
- CleanTempFilesIfNeededL();
-
- //<cmail>
- // Notification handlers are created next.
- // Notice that if a handler cannot be created it does not mean
- // that the construction of the manager would be stopped. This
- // approach is chosen so that if something goes wrong with
- // construction of a handler it can safely leave and get
- // destroyed but does not interfere other handlers.
-
- CreateAndStoreHandlerL( KMailIconHandlerUid );
-
- CreateAndStoreHandlerL( KLedHandlerUid );
-
-#ifndef __WINS__
- CreateAndStoreHandlerL( KSoundHandlerUid );
- // Earlier RefreshData() was called for the soundhandler
- // object after creation, but as it does not do anything
- // it is not called anymore.
-#endif
-
- CreateAndStoreHandlerL( KMtmHandlerUid );
-
- CreateAndStoreHandlerL( KOutofMemoryHandlerUid );
-
- CreateAndStoreHandlerL( KAuthenticationHandlerUid );
-
- CreateAndStoreHandlerL( KMessageQueryHandlerUid );
-
- CreateAndStoreHandlerL( KCMailCpsHandlerUid );
- //</cmail>
-
- StartObservingL();
+ if ( goToNextState )
+ {
+ iState = TState( iState + 1 );
+ SetActive();
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete( status, KErrNone );
+ }
}
// ---------------------------------------------------------------------------
@@ -196,6 +252,8 @@
}
iAppUi = NULL;
+
+ iTimer.Close();
// Finished using ECom
// ECom used at least in CFSMailHSUpdateHandler
--- a/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF Wed Oct 13 14:11:15 2010 +0300
@@ -195,6 +195,4 @@
?CalendarFileName@CBasePlugin@@MBEABVTDesC16@@XZ @ 194 NONAME ; class TDesC16 const & CBasePlugin::CalendarFileName(void) const
?StartOp@CDelayedOp@@QAEXXZ @ 195 NONAME ; void CDelayedOp::StartOp(void)
?DeleteDelayedOpsManager@CBasePlugin@@QAEXXZ @ 196 NONAME ; void CBasePlugin::DeleteDelayedOpsManager(void)
- ?PrivacyL@CBaseMrInfoObject@@UBE?AW4TCalSensitivity@MMRInfoObject@@XZ @ 197 NONAME ; enum MMRInfoObject::TCalSensitivity CBaseMrInfoObject::PrivacyL(void) const
- ?SetPrivacyL@CBaseMrInfoObject@@UAEXW4TCalSensitivity@MMRInfoObject@@@Z @ 198 NONAME ; void CBaseMrInfoObject::SetPrivacyL(enum MMRInfoObject::TCalSensitivity)
--- a/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF Wed Oct 13 14:11:15 2010 +0300
@@ -299,8 +299,4 @@
_ZNK11CBasePlugin16CalendarFileNameEv @ 298 NONAME
_ZN10CDelayedOp7StartOpEv @ 299 NONAME
_ZN11CBasePlugin23DeleteDelayedOpsManagerEv @ 300 NONAME
- _ZN17CBaseMrInfoObject11SetPrivacyLEN13MMRInfoObject15TCalSensitivityE @ 301 NONAME
- _ZNK17CBaseMrInfoObject8PrivacyLEv @ 302 NONAME
- _ZThn4_N17CBaseMrInfoObject11SetPrivacyLEN13MMRInfoObject15TCalSensitivityE @ 303 NONAME
- _ZThn4_NK17CBaseMrInfoObject8PrivacyLEv @ 304 NONAME
--- a/emailservices/emailstore/base_plugin/inc/BaseMrInfoObject.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/BaseMrInfoObject.h Wed Oct 13 14:11:15 2010 +0300
@@ -303,11 +303,6 @@
TTime aRecId );
IMPORT_C TTime MRRecurrenceId() const;
-
- IMPORT_C void SetPrivacyL(
- TCalSensitivity aPrivacyL );
-
- IMPORT_C TCalSensitivity PrivacyL() const;
protected:
@@ -319,7 +314,7 @@
HBufC* iUid;
HBufC* iLocation;
HBufC* iSubject;
- HBufC* iDescription;
+ HBufC* iDescription;
TTime iCreationTime;
TTime iStartTime;
TTime iEndTime;
@@ -327,7 +322,6 @@
TTime iRecurrenceId;
TInt iSequenceNumber;
TUint iPriority;
- TCalSensitivity iPrivacy;
TMRMethod iMethod;
TResponse iResponse;
};
--- a/emailservices/emailstore/base_plugin/src/BaseMrInfoObject.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/BaseMrInfoObject.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -82,7 +82,6 @@
iSequenceNumber = aMrInfo.MRSequenceNumberL();
iPriority = aMrInfo.PriorityL();
- iPrivacy = aMrInfo.PrivacyL();
iOrganizer = CBaseMrAttendee::NewL( aMrInfo.MROrganizerL() );
@@ -1134,20 +1133,3 @@
}
} //ReplyToMeetingRequestL.
-
-/**
- *
- */
-EXPORT_C void CBaseMrInfoObject::SetPrivacyL( MMRInfoObject::TCalSensitivity aPrivacyL )
- {
- iPrivacy = aPrivacyL;
- }
-
-
-/**
- *
- */
-EXPORT_C MMRInfoObject::TCalSensitivity CBaseMrInfoObject::PrivacyL() const
- {
- return iPrivacy;
- }
--- a/emailservices/emailstore/base_plugin/src/basepluginmisc.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/basepluginmisc.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -204,9 +204,6 @@
criteria.AddResultPropertyL( KMsgStorePropertySize );
criteria.AddResultPropertyL( KMsgStorePropertyFrom );
criteria.AddResultPropertyL( KMsgStorePropertySubject );
- criteria.AddResultPropertyL( KMsgStorePropertyTo );
- criteria.AddResultPropertyL( KMsgStorePropertyCc );
- criteria.AddResultPropertyL( KMsgStorePropertyBcc );
/**@ figure the lifecycle mgmnt of the handler.*/
CSearchHandler* searchHandler = new (ELeave) CSearchHandler( aSearchObserver, *this, aMailBoxId );
--- a/emailservices/emailstore/base_plugin/src/baseplugintranslator.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/baseplugintranslator.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -496,14 +496,13 @@
TUint32 priority = aCalendar.PropertyValueUint32L( idx );
mmrInfo->SetPriorityL( priority );
}
-
- //privacy/sensitivity
- idx = 0;
+
+ /**@ privacy/sensitivity missing ? */
+ /*idx = 0;
if ( aCalendar.FindProperty( KMsgStorePropertyMrPrivate, idx ) )
{
- TUint32 privacy = aCalendar.PropertyValueUint32L( idx );
- mmrInfo->SetPrivacyL( static_cast<MMRInfoObject::TCalSensitivity>( privacy ) );
- }
+ TBool private = aCalendar.PropertyValueBoolL( idx );
+ }*/
//method.
idx = 0;
@@ -1026,9 +1025,12 @@
calendar->AddOrUpdatePropertyL(
KMsgStorePropertyMrPriority, static_cast<TUint32>( aSrc.PriorityL() ) );
- //privacy/sensitivity
- calendar->AddOrUpdatePropertyL(
- KMsgStorePropertyMrPrivate, static_cast<TUint32>( aSrc.PrivacyL() ) );
+ /**@ privacy/sensitivity missing ? */
+ /*idx = 0;
+ if ( aCalendar.FindProperty( KMsgStorePropertyMrPrivate, idx ) )
+ {
+ TBool private = aCalendar.PropertyValueBoolL( idx );
+ }*/
//recurrent count.
calendar->AddOrUpdatePropertyL(
Binary file emailuis/emailui/conf/freestyleemailui.confml has changed
Binary file emailuis/emailui/conf/freestyleemailui_2001E277.crml has changed
--- a/emailuis/emailui/data/FreestyleEmailUi.rss Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/data/FreestyleEmailUi.rss Wed Oct 13 14:11:15 2010 +0300
@@ -979,7 +979,7 @@
RESOURCE AVKON_VIEW r_fsemailui_mail_search_view
{
menubar = r_fsemailui_searchlist_menubar;
- cba = r_freestyle_emauil_ui_sk_options_back;
+ cba = r_freestyle_emauil_ui_sk_options_back__open;
}
RESOURCE AVKON_VIEW r_fsemailui_html_view
@@ -1210,7 +1210,7 @@
RESOURCE TBUF r_freestyle_email_ui_griditem_weather { buf=qtn_fsemail_griditem_weather; }
RESOURCE TBUF r_freestyle_email_ui_griditem_settings { buf=qtn_fse_launcher_settings; }
RESOURCE TBUF r_freestyle_email_ui_griditem_add_new_mailbox { buf=qtn_fse_launcher_add_new_mailbox; }
-RESOURCE TBUF r_freestyle_email_ui_griditem_help { buf=qtn_options_help; }
+RESOURCE TBUF r_freestyle_email_ui_griditem_help { buf=qtn_fse_launcher_help; }
// ITEM IN MAIL VIEWER
RESOURCE TBUF r_freestyle_email_ui_viewer_from { buf=qtn_fse_viewer_header_from; }
@@ -1580,7 +1580,6 @@
MENU_ITEM { command = EFsEmailUiCmdActionsForward; txt = qtn_fse_message_list_options_forward; },
MENU_ITEM { command = EFsEmailUiCmdMailActions; txt = qtn_cmail_message_list_options_actions; cascade=r_fsemailui_maillist_submenu_mail_actions;},
MENU_ITEM { command = EFsEmailUiCmdSync; txt = qtn_cmail_message_list_options_send_receive; },
- MENU_ITEM { command = EFsEmailUiCmdCancelSync; txt = qtn_fse_launcher_options_cancel_sync; },
MENU_ITEM { command = EFsEmailUiCmdMarkingMode; txt = qtn_fse_message_list_options_mark; },
MENU_ITEM { command = EFsEmailUiCmdSettings; txt = qtn_fse_message_list_options_settings; },
MENU_ITEM { command = EFsEmailUiCmdHelp; txt = qtn_options_help; },
--- a/emailuis/emailui/data/iconlist.txt Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/data/iconlist.txt Wed Oct 13 14:11:15 2010 +0300
@@ -195,5 +195,4 @@
-c16,8 qgn_indi_tb_show_bcc.svg
-c16,8 qgn_indi_tb_hide_bcc.svg
-c16,8 qgn_indi_tb_extension.svg
--c16,8 qgn_prop_checkbox_on.svg
--c16,8 qgn_prop_checkbox_off.svg
+-c16,8 cmail_marking_mode_bg.svg
--- a/emailuis/emailui/group/FreestyleEmailUi.mmp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/group/FreestyleEmailUi.mmp Wed Oct 13 14:11:15 2010 +0300
@@ -124,12 +124,6 @@
USERINCLUDE ../../../inc
USERINCLUDE ../../../ipsservices/inc
-// 9.11.2009: Temporary flagging SYMBIAN_ENABLE_SPLIT_HEADERS
-// Can be removed when header structure change is complete
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
-SYSTEMINCLUDE /epoc32/include/uikon
-#endif // SYMBIAN_ENABLE_SPLIT_HEADERS
-
START RESOURCE ../data/FreestyleEmailUi.rss
HEADER
TARGETPATH APP_RESOURCE_DIR
--- a/emailuis/emailui/inc/FreestyleEmailCenRepKeys.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailCenRepKeys.h Wed Oct 13 14:11:15 2010 +0300
@@ -90,11 +90,6 @@
// Values: 1 = hide, 0 = show.
const TUint32 KEmailHideFS205UIFeature = {0x0000FFFF};
const TUint32 KEmailHideFSHiLightUIFeature = {0x0000FFFF};
-// PS2 variation
-// one centrep key for every feature, 0 means disabled
-const TUint32 KEmailFeatureSplitScreen = {0x00001001};
-const TUint32 KMfEFeatureCertificateBasedAuthentication = {0x00001003};
-const TUint32 KMfEFeatureAdvancedSecurity = {0x00001004};
//
// TP Wizard repository in the central repository
--- a/emailuis/emailui/inc/FreestyleEmailUiAppui.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiAppui.h Wed Oct 13 14:11:15 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -502,9 +502,6 @@
// wouldn't have any visible effect.
void RunFakeSyncAnimL();
- // Sets text to navi pane
- void SetNaviPaneTextL( const TDesC& aText );
-
public: //from MFSMailEventObserver
/**
* Framework event message.
@@ -541,6 +538,14 @@
*/
void StopEndKeyCapture();
+ /**
+ * Accessor for navipane decorator object.
+ * @param aViewId: Caller identify itself by giving the view Id (see FreestyleEmailUiConstants.h)
+ * This is used for choosing correct decorator.
+ * @return instance of correct navidecorator. NULL if aView doesn't match.
+ */
+ CAknNavigationDecorator* NaviDecoratorL( const TUid aViewId );
+
public:
/**
@@ -609,6 +614,12 @@
// Send self to background.
void SendToBackground();
+ /*
+ * Called from ConstructL during start of application.
+ * Constructs navipane(s) that are used by different views.
+ */
+ void ConstructNaviPaneL();
+
// Create custom status pane indicators. (priority and followup)
void CreateStatusPaneIndicatorsL();
// Delete custom status pane indicators
@@ -785,7 +796,8 @@
CEUiExitGuardian* iExitGuardian;
// navipane decorator
- CAknNavigationDecorator* iNaviDecorator;
+ // (used at least in mail viewer)
+ CAknNavigationDecorator* iNaviDecorator2MailViewer;
// Resource file offset for message editor external resources
TInt iMsgEditorResourceOffset;
--- a/emailuis/emailui/inc/FreestyleEmailUiCLSListsHandler.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiCLSListsHandler.h Wed Oct 13 14:11:15 2010 +0300
@@ -162,8 +162,8 @@
*/
TBool ReadCLSInfoFromMRUListIndexL( MDesCArray& aTextArray,
CFSEmailUiClsItem& aClsItem,
- TInt aCurrentMatchIndex,
- TInt aPreviousMatchIndex );
+ const TInt aCurrentMatchIndex,
+ const TInt aPreviousMatchIndex );
/**
* Searches given cls item from the given list. If duplicate is found, it is returned.
--- a/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h Wed Oct 13 14:11:15 2010 +0300
@@ -259,13 +259,15 @@
* @param aObserver = observer to collect results
*/
void GetAddressesFromPhonebookL( MFSEmailUiContactHandlerObserver* aObserver );
-
+
+ // <cmail> video call
/**
* Enables/disables video call.
*
* @param aState ETrue for 'enable', EFalse for 'disable'
*/
void SetVideoCall( TBool aState );
+ // </cmail>
// from base class MFSEmailUiClsListsObserver
@@ -275,14 +277,18 @@
// from base class MVPbkSingleContactOperationObserver
void VPbkSingleContactOperationCompleteL(
- MVPbkContactOperationBase& aOperation, MVPbkStoreContact* aContact );
- void VPbkSingleContactOperationComplete(
- MVPbkContactOperationBase& aOperation, MVPbkStoreContact* aContact );
-
- void VPbkSingleContactOperationFailedL(
- MVPbkContactOperationBase& aOperation, TInt aError );
- void VPbkSingleContactOperationFailed(
- MVPbkContactOperationBase& aOperation, TInt aError );
+ MVPbkContactOperationBase& aOperation,
+ MVPbkStoreContact* aContact );
+
+
+ void VPbkSingleContactOperationComplete(
+ MVPbkContactOperationBase& aOperation,
+ MVPbkStoreContact* aContact );
+
+ void VPbkSingleContactOperationFailedL(
+ MVPbkContactOperationBase& aOperation, TInt aError );
+ void VPbkSingleContactOperationFailed(
+ MVPbkContactOperationBase& aOperation, TInt aError );
// from base class MVPbkContactStoreListObserver
@@ -340,12 +346,6 @@
// from MCCAObserver
void CCASimpleNotifyL( TNotifyType aType, TInt aReason );
- TUid GetDetailsViewUid();
- TUid GetDetailsAppUid();
- TBool WasDetailsClosed();
- void CloseContactDetailsL();
- void ReopenContactDetailsL(RWsSession&);
-
private:
CFSEmailUiContactHandler( RFs& aSession );
@@ -354,21 +354,18 @@
// <cmail> call observer's MFSEmailUiContactHandlerObserver::OperationErrorL( TContactHandlerCmd aCmd, TInt aError )
void ObserverOperationErrorL( TContactHandlerCmd aCmd, TInt aErrorCode );
+
private:
-
- TInt SelectBetweenCsAndVoip() const;
+
+ TInt SelectBetweenCsAndVoip() const;
void HandleCallL( const RPointerArray<CFSEmailUiClsItem>& aMatchingItems );
-
- void CreateMessageL( const RPointerArray<CFSEmailUiClsItem>& aMatchingItems );
- void SendMessageL( CAiwGenericParamList& aEventParamList, TInt aServiceType );
- void GetSmsAddressFromPhonebookAndSendL( MVPbkContactLink* aContactLink );
- void GetMmsAddressFromPhonebookAndSendL( MVPbkContactLink* aContactLink,
- TBool aIsVoiceMessage = EFalse );
-
- // Starts retrieving addresses from contact stores.
- void RetrieveContactsL();
-
+
+ void CreateMessageL( const RPointerArray<CFSEmailUiClsItem>& aMatchingItems );
+ void SendMessageL( CAiwGenericParamList& aEventParamList, TInt aServiceType );
+ void GetSmsAddressFromPhonebookAndSendL( MVPbkContactLink* aContactLink );
+ void GetMmsAddressFromPhonebookAndSendL( MVPbkContactLink* aContactLink, TBool aIsVoiceMessage = EFalse );
+
TBool IsRemoteLookupSupported();
void GetContactFieldsL( RArray<TInt>& aFieldIds, RPointerArray<HBufC>& aNumbers,
@@ -459,9 +456,6 @@
// Flag for making video call
TBool iVideoCall;
- // flag to check if it was remotely closed (using CloseContactDetailsL method)
- TBool iContactDetailsClosed;
-
// connection to CCMA launcher
MCCAConnection* iConnection;
--- a/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h Wed Oct 13 14:11:15 2010 +0300
@@ -197,12 +197,14 @@
void LoadContentFromFileL( RFile& aFile );
void LoadContentFromUrlL( const TDesC& aUrl );
void LoadContentFromMailMessageL( CFSMailMessage* aMailMessage, TBool aResetScrollPos=ETrue );
- void ResetContent( TBool aDisconnect = EFalse, TBool aClearFlags = ETrue );
+ void ResetContent(const TBool aDisconnect = EFalse);
void CancelFetch();
void ClearCacheAndLoadEmptyContent();
+ // <cmail>
void PrepareForExit();
void PrepareForMessageNavigation();
-
+ // </cmail>
+
// from base class CCoeControl
CCoeControl* ComponentControl( TInt aIndex ) const;
--- a/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerView.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerView.h Wed Oct 13 14:11:15 2010 +0300
@@ -71,6 +71,7 @@
*/
TUid Id() const;
+ void HandleStatusPaneSizeChange();
void HandleViewRectChange();
--- a/emailuis/emailui/inc/FreestyleEmailUiLayoutHandler.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiLayoutHandler.h Wed Oct 13 14:11:15 2010 +0300
@@ -239,7 +239,6 @@
//To retrieve respecitve Icon Sizes
TInt ListTextureNodeExpandedSize() const;
TInt SearchLookingGlassIconSize() const;
- TInt SearchMarkIconSize() const;
TSize statusPaneIconSize() const;
TInt ListControlBarMailboxDefaultIconSize() const;
TInt EMailListBarBgIconSize() const;
--- a/emailuis/emailui/inc/FreestyleEmailUiMailListModel.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiMailListModel.h Wed Oct 13 14:11:15 2010 +0300
@@ -89,6 +89,7 @@
MFSListModelItem* Item(TInt aIndex);
const MFSListModelItem* Item(TInt aIndex) const;
TInt Count() const;
+ TBool ContainsItem(const CFSMailMessage& aMessage) const;
public: // new methods
--- a/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Wed Oct 13 14:11:15 2010 +0300
@@ -573,7 +573,7 @@
// Control bar functions
void CreateControlBarLayoutL();
void ScaleControlBarL();
- void SetSortButtonIconL();
+ void SetSortButtonTextAndIconL();
HBufC* GetSortButtonTextLC();
void HandleControlBarEvent( TFsControlBarEvent aEvent, TInt aData );
@@ -647,12 +647,12 @@
/**
* Display marking mode title text
*/
- void DisplayMarkingModeTextOnButtonsL();
+ void DisplayMarkingModeTitleTextL();
/**
* Remove marking mode title text
*/
- void RemoveMarkingModeTextOnButtonsL();
+ void RemoveMarkingModeTitleTextL();
/**
* Displays or remove marking mode background
@@ -805,6 +805,11 @@
void FocusVisibilityChange( TBool aVisible );
/**
+ * Update texts in command area buttons
+ */
+ void UpdateButtonTextsL();
+
+ /**
* Tests whether a point is inside the control.
*
* @param aControl Control that is tested.
@@ -837,9 +842,7 @@
*/
TBool HandleArrowEventInLandscapeL( const TInt aScancode,
const TAlfEvent& aEvent, const TBool aShiftState );
-
- void UpdateFolderAndMarkingModeTextsL();
-
+
private: // data types
--- a/emailuis/emailui/inc/FreestyleEmailUiSearchListVisualiser.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiSearchListVisualiser.h Wed Oct 13 14:11:15 2010 +0300
@@ -252,6 +252,8 @@
void UpdatePreviewPaneTextForItemL( CFsTreePlainTwoLineItemData* aItemData, CFSMailMessage* aMsgPtr );
void FilterPreviewPaneTextL( TDes& aText ) const;
+ void SetMskL();
+
void DoFirstStartL();
void SetHeaderAttributesL();
--- a/emailuis/emailui/inc/FreestyleEmailUiTextureManager.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiTextureManager.h Wed Oct 13 14:11:15 2010 +0300
@@ -56,8 +56,7 @@
EBackgroundTextureBar,
EBackgroundTextureThumb,
EBackgroundTextureMailList,
- EListControlMarkOnIcon,
- EListControlMarkOffIcon,
+ EListControlMarkIcon,
EListControlMenuIcon,
EMailListBarBgIcon,
ESearchLookingGlassIcon,
@@ -225,6 +224,8 @@
EAttachmentsSaveAll,
EAttachmentsCancelAll,
EAttachmentsViewAll,
+
+ EMarkingModeBackgroundIcon,
// TEXTURE COUNT
ETextureCount,
@@ -286,6 +287,9 @@
// Get new mail list separator brush
// Ownership IS transferred to caller.
CAlfFrameBrush* NewMailListSeparatorBgBrushLC();
+ // Get marking mode background brush
+ // Ownership IS transferred to caller.
+ CAlfImageBrush* NewMailListMarkingModeBgBrushLC();
// Get new mail list separator brush
// Ownership IS transferred to caller.
CAlfImageBrush* NewControlBarListBgBrushLC();
--- a/emailuis/emailui/inc/FreestyleEmailUiUtilities.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiUtilities.h Wed Oct 13 14:11:15 2010 +0300
@@ -19,7 +19,7 @@
#ifndef __FREESTYLEMAILUI_UTILITIES_H_
#define __FREESTYLEMAILUI_UTILITIES_H_
-#include <e32base.h> // CTimer
+#include <e32base.h> // CTimer
#include <e32cmn.h>
#include <hlplch.h>
#include <msvstd.h>
@@ -70,12 +70,12 @@
enum TFollowUpNewState
- {
- EFollowUp = 0, // don't change, as these are the in the order they are in popup selection list
- EFollowUpComplete = 1, // don't change
- EFollowUpClear = 2, // don't change
- EFollowUpNoChanges = 3
- };
+ {
+ EFollowUp = 0, // don't change, as these are the in the order they are in popup selection list
+ EFollowUpComplete = 1, // don't change
+ EFollowUpClear = 2, // don't change
+ EFollowUpNoChanges = 3
+ };
enum TMessageSizeClass
{
@@ -100,7 +100,7 @@
static CFSMailBox* GetMailboxForMtmIdL( CFSMailClient& aClient, CMsvSession& aMsvSession, TMsvId aMtmId );
static TBool IsRemoteLookupSupported( CFSMailBox& aMailBox );
-
+
static void CopyToClipboardL( const TDesC& aBuf );
static TInt ShowConfirmationQueryL( TInt aResourceStringId, const TDesC& aResourceParameter = KNullDesC );
@@ -108,7 +108,7 @@
static void ShowErrorNoteL( TInt aResourceStringId, TBool aWaitingDialog = EFalse );
static void ShowInfoNoteL( TInt aResourceStringId, TBool aWaitingDialog = EFalse );
-
+
static void ShowGlobalErrorNoteL( TInt aResourceStringId );
static void ShowGlobalInfoNoteL( TInt aResourceStringId );
static void ShowDiscreetInfoNoteL( TInt aResourceStringId );
@@ -149,11 +149,11 @@
* @param aFilePath Path to where the file is to be saved
* @param aAttachmentPart Message part of the attachment to be saved
* @return ETrue if OK to save the file to a given path, EFalse if not
- */
- static TBool OkToSaveFileL( const TDesC& aFilePath, CFSMailMessagePart& aAttachmentPart );
+ */
+ static TBool OkToSaveFileL( const TDesC& aFilePath, CFSMailMessagePart& aAttachmentPart );
- static void ShowFilesSavedToFolderNoteL( TInt aCount );
-
+ static void ShowFilesSavedToFolderNoteL( TInt aCount );
+
static void ShowCreateMessageQueryL( const TDesC& aAddressData, TBool aSendingToEmail = EFalse );
static TInt CountRecepients( CFSMailMessage* aMsgPtr );
@@ -205,35 +205,35 @@
* @param aShowFlagCompleted Whether to show the completed flag.
* When false we are in the editor view.
*/
- static TFollowUpNewState SetMessageFollowupFlagL( CFSMailMessage& aMsg, TBool aShowFlagCompleted = ETrue );
+ static TFollowUpNewState SetMessageFollowupFlagL( CFSMailMessage& aMsg, TBool aShowFlagCompleted = ETrue );
static void SetMessageFollowupStateL( CFSMailMessage& aMsg, TFollowUpNewState aNewFollowUpState );
static TBool RunFollowUpListDialogL( TFollowUpNewState& aSelectedOption, TBool aShowFlagCompleted = ETrue );
-
- static TFileType GetFileType( const TDesC& aFileName, const TDesC& aMimeType );
-
- static CAlfTexture& GetAttachmentIcon( TFileType aAttachmentType, CFreestyleEmailUiTextureManager& aTextureManager );
- static TFSEmailUiTextures GetAttachmentIconTextureId( TFileType aAttachmentType );
-
+
+ static TFileType GetFileType( const TDesC& aFileName, const TDesC& aMimeType );
+
+ static CAlfTexture& GetAttachmentIcon( TFileType aAttachmentType, CFreestyleEmailUiTextureManager& aTextureManager );
+ static TFSEmailUiTextures GetAttachmentIconTextureId( TFileType aAttachmentType );
+
static CAlfTexture& GetMsgIcon( CFSMailMessage* aMsgPtr, CFreestyleEmailUiTextureManager& aTextureManager );
static TFSEmailUiTextures GetMsgIconTextureId( CFSMailMessage* aMsgPtr );
-
+
static void MoveMessageToDraftsL( CFSMailBox& aMailBox, CFSMailMessage& aMsg );
-
+
static TBool IsMessagePartFullyFetched( const CFSMailMessagePart& aPart );
static TBool IsMessageStructureKnown( const CFSMailMessagePart& aPart );
-
+
static void CreatePlainTextPartL( CFSMailMessage& aMsg, CFSMailMessagePart*& aPart );
-
+
static TBool IsCompleteOrCancelEvent( TFSProgress aEvent );
-
+
static TBool HasUnfetchedAttachmentsL( CFSMailMessage& aMsg );
-
+
static TBool IsFollowUpSupported( const CFSMailBox& aMailBox );
-
+
// Set new email message icon on/off
static void ToggleEmailIconL( TBool aIconOn );
- static void ToggleEmailIconL( TBool aIconOn, const TFSMailMsgId& aMailBox );
+ static void ToggleEmailIconL( TBool aIconOn, const TFSMailMsgId& aMailBox );
static HBufC* DateTextFromMsgLC( const CFSMailMessage* aMessage, TBool aAddYearNumer = ETrue );
static HBufC* TimeTextFromMsgLC( const CFSMailMessage* aMessage );
@@ -249,16 +249,17 @@
static HBufC* CreateSubjectTextLC( const CFSMailMessage* aMessage );
static HBufC* CreateBodyTextLC( const CFSMailMessage* aMessage );
static void FilterListItemTextL( TDes& aText );
+ static void FilterListItemText2L( TDes& aText );
static TMessageSizeClass MessageSizeClass( const CFSMailMessage& aMessage );
static HBufC* ConvertHtmlToTxtL( const TDesC& aHtml );
-
+
static void DisplayMsgsMovedNoteL( TInt aMsgCount,
const TFSMailMsgId aDestinationFolderId,
TBool aIsWaitingNote );
static TBool IsOfflineModeL();
-
+
/**
* Shows mailbox creation query:
* "No e-mail mailboxes defined. Create a mailbox?"
@@ -267,14 +268,14 @@
*/
static TBool DisplayCreateMailboxQueryL();
-// static CAlfTexture& GetAttachmentIconL( TFileType aAttachmentType, CFreestyleEmailUiTextureManager& aTextureManager );
-// static TFSEmailUiTextures GetAttachmentIconTextureIdL( TFileType aAttachmentType );
+// static CAlfTexture& GetAttachmentIconL( TFileType aAttachmentType, CFreestyleEmailUiTextureManager& aTextureManager );
+// static TFSEmailUiTextures GetAttachmentIconTextureIdL( TFileType aAttachmentType );
// Brings Freestyle Email UI application to foreground if it's not already
static void BringFsEmailToForeground();
// Formats display name
- static void StripDisplayName( HBufC& aDisplayName );
+ static void StripDisplayName( HBufC& aDisplayName );
// Creates a displayname of firstname and lastname components
static HBufC* CreateDisplayNameLC( const TDesC& aFirstname, const TDesC& aLastname, TBool aSwitchOrder = EFalse );
@@ -287,11 +288,6 @@
*/
static TBool IsChineseWord( const TDesC& aWord );
- /**
- * Determines if the descriptor is a Korean word
- */
- static TBool IsKoreanWord( const TDesC& aWord );
-
// Get the icon file name including the drive letter and full path
static void GetFullIconFileNameL( TDes& aFileName );
@@ -369,7 +365,7 @@
*/
class CFSEmailUiActionMenu : public CBase
{
- friend class CFreestyleEmailUiAppUi;
+ friend class CFreestyleEmailUiAppUi;
public:
/**
* Get pointer to the action menu, can be used if built-in methods are
@@ -378,19 +374,19 @@
* @return Action menu pointer
*/
static CFscContactActionMenu* GetActionMenu();
-
+
/**
* Remove all items from action menu
*/
static void RemoveAllL();
-
+
/**
* Add one email specific custom item by id
*
* @param aItemId Item id of the item to be added
*/
static void AddCustomItemL( TActionMenuCustomItemId aItemId );
-
+
/**
* Add several email specific custom items by list of ids
*
@@ -398,7 +394,7 @@
*/
static void AddCustomItemsL( RFsEActionMenuIdList aItemList );
- // <cmail>
+ // <cmail>
/**
* Execute previously constructed action menu
*
@@ -421,7 +417,7 @@
static TActionMenuCustomItemId ExecuteL( RFsEActionMenuIdList aItemList,
TFscContactActionMenuPosition aPosition = EFscCenter,
TInt aIndex = 0, MFsActionMenuPositionGiver* aPositionGiver = 0 );
-
+
/**
* Dismiss menu
* Menu gets closed if it was visible when the method was called.
@@ -430,9 +426,9 @@
* @param aSlide If ETrue menu slides away from the screen.
* Otherwise it disappears instantly
*/
- static void Dismiss( TBool aSlide );
+ static void Dismiss( TBool aSlide );
// </cmail>
-
+
/**
* Create icon by bitmap and mask
*
@@ -459,7 +455,7 @@
static TFileName iIconFilePath;
static RPointerArray<CGulIcon> iIconArray;
CFreestyleEmailUiAppUi* iAppUi;
- };
+ };
/**
* Generic timer's callback
@@ -540,7 +536,7 @@
*/
CFSEmailUiGenericTimer( MFSEmailUiGenericTimerCallback* aCallback,
const TInt aPriority );
-
+
private:
/**
* 2nd phase constructor.
--- a/emailuis/emailui/inc/FreestyleMessageHeaderURLEventHandler.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleMessageHeaderURLEventHandler.h Wed Oct 13 14:11:15 2010 +0300
@@ -93,7 +93,6 @@
CFSHtmlReloadAO* iHTMLReloadAO;
};
-
/******************************************************************************
* class TPopupMenuItem
******************************************************************************/
@@ -136,6 +135,4 @@
RArray<TPopupMenuItem> iItemList;
};
-
-
#endif //__CFREESTYLE_MESSAGE_HEADER_EVENTHANDLER_URL_H__
--- a/emailuis/emailui/inc/ncsaddressinputfield.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncsaddressinputfield.h Wed Oct 13 14:11:15 2010 +0300
@@ -126,7 +126,7 @@
const RPointerArray<CNcsEmailAddressObject>& GetAddressesL( TBool aParseNow=ETrue );
- void GetLineRect( TRect& aLineRect ) const;
+ void GetLineRectL( TRect& aLineRect ) const;
void SetMaxLabelLength( TInt aMaxLength );
--- a/emailuis/emailui/inc/ncsaifeditor.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncsaifeditor.h Wed Oct 13 14:11:15 2010 +0300
@@ -137,7 +137,6 @@
RPointerArray<CNcsAifEntry>& aEntries,
TBool aDisplayList = ETrue ) const;
- TInt RepositionEntries( const CNcsAifEntry* aEntry );
void RepositionEntriesL( const CNcsAifEntry* aEntry );
void CheckAndRemoveInvalidEntriesL();
@@ -169,25 +168,13 @@
* @return ETrue if terminated recipient entry was found and added to array.
*/
TBool HandleTextUpdateL( const TCursorSelection& aSelection );
- // Moves inputted non-entry text to separate rows apart from entries.
- void MoveNonEntryTextToDedicatedRowsL( TUint aPosition );
- // Prepares for text input to given cursor position.
- void PrepareForTextInputL( TUint aPosition );
void HandleNavigationEventL();
-
- // Gets non-entry text at given document position.
TCursorSelection NonEntryTextAtPos( TUint aPosition ) const;
- // Gets non-entry text including surrounding whitespace at given position.
- TCursorSelection NonEntryTextAndSpaceAtPos( TUint aPosition ) const;
- // Gets non-enty text right before given document position.
TCursorSelection NonEntryTextBeforePos( TUint aPosition ) const;
-
TBool IsSentinel( TChar aCharacter ) const;
- TBool IsDelimiter( TChar aCharacter ) const;
TBool IsWhitespace( TChar aCharacter ) const;
TBool IsNavigationKey( const TKeyEvent& aKeyEvent ) const;
TBool IsCharacterKey( const TKeyEvent& aKeyEvent ) const;
-
void GetMatchingEntryCountsL(
const CNcsAifEntry* aEntry,
TInt& aNrOfMatchesInText,
--- a/emailuis/emailui/inc/ncsattachmentfield.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncsattachmentfield.h Wed Oct 13 14:11:15 2010 +0300
@@ -27,6 +27,25 @@
class MNcsFieldSizeObserver;
class CNcsHeaderContainer;
+/**
+ * Interface for the attachment field observer
+ */
+class MNcsAttachmentFieldObserver
+ {
+public:
+ /**
+ * AttachmentOpenL
+ * Informs observer that focused attachment should be opened
+ */
+ virtual void AttachmentOpenL() = 0;
+
+ /**
+ * AttachmentRemoveL
+ * Informs observer that focused attachment should be removed
+ */
+ virtual void AttachmentRemoveL() = 0;
+ };
+
/**
* CNcsAttachmentField
@@ -40,6 +59,7 @@
static CNcsAttachmentField* NewL(
TInt aLabelTextId,
MNcsFieldSizeObserver* aSizeObserver,
+ MNcsAttachmentFieldObserver* aObserver,
CNcsHeaderContainer* aParentControl );
virtual ~CNcsAttachmentField();
@@ -55,8 +75,10 @@
void SetTextsLD( CDesCArray* aAttachmentNames,
CDesCArray* aAttachmentSizes );
- TInt FocusedAttachmentLabelIndex();
-
+ TInt FocusedAttachmentLabelIndex() const;
+
+ void SetFocusedAttachmentLabelIndex( TInt aIndex );
+
public: // from MNcsControl
TInt LineCount() const;
@@ -85,18 +107,21 @@
void SetContainerWindowL( const CCoeControl& aContainer );
- void FocusChanged( TDrawNow aDrawNow );
+ void FocusChanged( TDrawNow aDrawNow );
void HandleResourceChange( TInt aType );
void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-
+
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType );
+
private: // methods
-
+
CNcsAttachmentField( TInt aLabelTextId,
MNcsFieldSizeObserver* aSizeObserver,
+ MNcsAttachmentFieldObserver* aObserver,
CNcsHeaderContainer* aParentControl );
-
+
void ConstructL();
void UpdateColors();
@@ -124,9 +149,12 @@
void UpdateSingleAttachmentLabelTextL( CNcsLabel* aLabel, TInt aIndex );
private: // data
-
+
CNcsHeaderContainer* iParentControl; // not owned
-
+
+ // attachment field observer
+ MNcsAttachmentFieldObserver* iObserver;
+
// attachment labels (within the array) owned
RPointerArray<CNcsLabel> iAttachmentLabels;
--- a/emailuis/emailui/inc/ncscomposeview.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncscomposeview.h Wed Oct 13 14:11:15 2010 +0300
@@ -80,16 +80,6 @@
// This is final commit, no more incoming changes
EFinal
};
-
- // can't close view if ChildDoActivateL()
- enum TChildActivationState
- {
- EChildActivationDeactivated,
- EChildActivationStarted,
- EChildActivationError, // error during activation
- EChildActivationExitRequired, // activation ended, exit the view
- EChildActivationProcessed
- };
public: // constructors and destructor
@@ -168,10 +158,6 @@
*/
void HandleDynamicVariantSwitchL(
CFsEmailUiViewBase::TDynamicSwitchType aType );
- /**
- * to hide or show CAlfVisuals ( used for activation or deactivation )
- */
- virtual void FadeOut( TBool aDirectionOut );
public: // from MAlfActionObserver
@@ -536,7 +522,6 @@
// Gets button from toolbar extension.
CAknButton* Button( TInt aCmdId,
CAknToolbarExtension* aExtension = NULL );
- TBool WLANConnectionActive();
private: // Constructors and destructor
@@ -734,8 +719,6 @@
* Flag indicating that adding attachment dialog is opened.
*/
TBool iAddingAttachmentDialogOpened;
-
- TChildActivationState iChildActivationState;
};
/**
--- a/emailuis/emailui/inc/ncscomposeviewcontainer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncscomposeviewcontainer.h Wed Oct 13 14:11:15 2010 +0300
@@ -100,12 +100,6 @@
void UpdateScrollBar();
/**
- * Updates scroll visibility.
- * @param aVisible Whether or not to set scroll bar visible.
- */
- void UpdateScrollBarVisibility( TBool aVisible );
-
- /**
* GetToFieldAddressesL
* Get addresses in TO-field.
* @return Array of address objects.
@@ -478,8 +472,14 @@
* HandleAttachmentsOpenCommand
*
*/
- void HandleAttachmentsOpenCommandL();
-
+ void HandleAttachmentOpenCommandL();
+
+ /**
+ * HandleAttachmentRemoveCommandL
+ * Handles removing of currently focused attachment
+ */
+ void HandleAttachmentRemoveCommandL();
+
/**
* LaunchStylusPopupMenu
*
@@ -497,10 +497,8 @@
void HandleLayoutChangeL();
void HandleSkinChangeL();
-
+
TInt ContentTotalHeight();
- TInt VisibleAreaHeight();
-
/**
* CommitL
* Commits changes to message
@@ -531,7 +529,7 @@
* Called when text formatting was cancelled.
*/
void FormatAllTextCancelled();
-
+
/**
* Called when text formatting is complete.
*/
@@ -642,13 +640,13 @@
* @return Indicates whether the key event was used by this control.
*/
TKeyResponse ChangeFocusL( const TKeyEvent& aKeyEvent );
-
+
/**
- * UpdateScreenPosition
+ * UpdateScreenPositionL
* @param aKeyCode Needed to recognize presses of the enter key
* in moving of display.
*/
- void UpdateScreenPosition( const TUint& aKeyCode = EKeyNull );
+ void UpdateScreenPositionL( const TUint& aKeyCode = EKeyNull );
/**
* CalculateSeparatorLineSecondaryColor
@@ -780,18 +778,17 @@
* Currently processed field - needed by async text formatting.
*/
CNcsEditor* iProcessedField;
-
+
/**
* Async text formatter.
* Own.
*/
CFSAsyncTextFormatter* iAsyncTextFormatter;
-
- // Cmail pane rect, calculated during SizeChanged.
+
+ /**
+ * Pane rect calculated during ChangeSize.
+ */
TRect iCmailPaneRect;
- // Header origin, calculated during SizeChanged.
- TPoint iHeaderPos;
-
};
--- a/emailuis/emailui/inc/ncseditor.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncseditor.h Wed Oct 13 14:11:15 2010 +0300
@@ -54,7 +54,7 @@
void OpenVirtualKeyBoardL();
- void GetLineRect( TRect& aLineRect ) const;
+ void GetLineRectL( TRect& aLineRect ) const;
virtual TInt ScrollableLines() const;
--- a/emailuis/emailui/inc/ncsheadercontainer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncsheadercontainer.h Wed Oct 13 14:11:15 2010 +0300
@@ -27,19 +27,21 @@
#include "ncsaddressinputfield.h"
#include "ncsfieldsizeobserver.h"
#include "ncsconstants.h"
-#include "ncspopuplistbox.h"
+
+#include "ncsattachmentfield.h"
class CFSMailBox;
-class CNcsAttachmentField;
class CNcsEmailAddressObject;
+class CNcsPopupListBox;
class CNcsSubjectField;
class CAknPhysics;
/**
* CNcsHeaderContainer
*/
-class CNcsHeaderContainer : public CCoeControl, public MNcsAddressPopupList,
- public MNcsPopupListBoxObserver
+class CNcsHeaderContainer : public CCoeControl,
+ public MNcsAddressPopupList,
+ public MNcsAttachmentFieldObserver
{
public:
@@ -73,37 +75,27 @@
private: // constructor/destructor
/**
- * CNcsHeaderContainer
- * C++ constructor.
- * @param aParent Parent control.
- * @param aMailBox reference to current mailbox item
- */
- CNcsHeaderContainer( CCoeControl& aParent, CFSMailBox& aMailBox, CAknPhysics* aPhysics );
-
- /**
- * ConstructL
- * 2nd phase constructor.
- */
- void ConstructL( TInt aFlags );
+ * CNcsHeaderContainer
+ * C++ constructor.
+ * @param aParent Parent control.
+ * @param aMailBox reference to current mailbox item
+ */
+ CNcsHeaderContainer( CCoeControl& aParent, CFSMailBox& aMailBox, CAknPhysics* aPhysics );
+
+ /**
+ * ConstructL
+ * 2nd phase constructor.
+ */
+ void ConstructL( TInt aFlags );
public: // function members
-
- /**
- * From MNcsPopupListBoxObserver.
- */
- TBool PopupVisibilityChangingL( TBool aVisible );
-
- /**
- * From MNcsPopupListBoxObserver.
- */
- void PopupItemSelectedL();
-
- /**
- * GetToFieldAddressesL
- * Get addresses in TO-field.
- * @return Array of addresses.
- */
- const RPointerArray<CNcsEmailAddressObject>& GetToFieldAddressesL(
+
+ /**
+ * GetToFieldAddressesL
+ * Get addresses in TO-field.
+ * @return Array of addresses.
+ */
+ const RPointerArray<CNcsEmailAddressObject>& GetToFieldAddressesL(
TBool aParseNow = ETrue );
/**
@@ -233,7 +225,7 @@
void SetAttachmentLabelTextsLD( CDesCArray* aAttachmentNames,
CDesCArray* aAttachmentSizes );
- TInt FocusedAttachmentLabelIndex();
+ TInt FocusedAttachmentLabelIndex() const;
void ShowAttachmentLabelL();
void HideAttachmentLabel();
@@ -316,10 +308,12 @@
void SelectAllBccFieldTextL();
void SelectAllSubjectFieldTextL();
-
- void FocusToField();
+
+ void FocusToField();
- void FocusAttachmentField();
+ void FocusAttachmentField();
+
+ void SetFocusToBottom( TDrawNow aDrawNow = ENoDrawNow );
void SetPriority( TMsgPriority aPriority );
@@ -357,17 +351,18 @@
TBool IsAddressInputField( const CCoeControl* aControl ) const;
TBool IsRemoteSearchInprogress() const;
+
+ /**
+ * Shows/hides cursor.
+ *
+ * @param aShow ETrue - shows, EFalse - hides cursor.
+ */
+ void ShowCursor( TBool aShow, TDrawNow aDrawNow = ENoDrawNow );
void DoScroll();
- void DoScrollFocusToTop();
-
+
void SetPhysicsEmulationOngoing( TBool aPhysOngoing );
- virtual void HandleResourceChange( TInt aType );
-
- // Set origin for header's top position.
- void SetOrigin( TPoint& aPoint );
-
private: // Function members
void FocusChanged(TDrawNow aDrawNow);
@@ -378,8 +373,6 @@
void Draw( const TRect& aRect ) const;
- void DrawAttachmentFocusNow();
-
TKeyResponse ChangeFocusL( const TKeyEvent& aKeyEvent );
void SizeChanged();
@@ -412,6 +405,18 @@
void CommitFieldL( CCoeControl* aField );
+private: //From MNcsAttachmentFieldObserver
+ /**
+ * AttachmentOpenL
+ * Handles attachment open event from iAttachmentField
+ */
+ void AttachmentOpenL();
+
+ /**
+ * AttachmentRemoveL
+ * Handles attachment remove event from iAttachmentField
+ */
+ void AttachmentRemoveL();
private: //From MAknLongTapDetectorCallBack
void HandleLongTapEventL( const TPoint& aPenEventLocation,
@@ -419,47 +424,47 @@
private: // Data members
- // Parent window.
+ /*
+ * Parent window
+ * Not Own
+ */
CCoeControl& iParent;
MNcsFieldSizeObserver& iFieldSizeObserver;
CAknLongTapDetector* iLongTapDetector;
-
+
CEikButtonGroupContainer* iMenuBar;
+
+ CNcsAddressInputField* iToField;
- CNcsAddressInputField* iToField;
CNcsAddressInputField* iCcField;
+
CNcsAddressInputField* iBccField;
CNcsSubjectField* iSubjectField;
CNcsAttachmentField* iAttachmentField;
- // The attachments count
+ // The attachments count
TInt iAttachmentCount;
- // Popup for resently used email addressses. Own.
- CNcsPopupListBox* iAacListBox;
+ // Address popup data members
+ CNcsPopupListBox* iAacListBox;
- CFSMailBox& iMailBox;
-
+ CFSMailBox& iMailBox;
+
//flag which disables changes of MSK label if any popup dialog is open
TBool iSwitchChangeMskOff;
TBool iLongTapEventConsumed;
TBool iRALInProgress;
-
+
// Currently focused control
CCoeControl* iFocused;
// panning related
CAknPhysics* iPhysics;
-
- // Header containers default top left position.
- TPoint iOrigin;
-
- TBool iSplitScreenVKBEnabled;
};
--- a/emailuis/emailui/inc/ncspopuplistbox.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncspopuplistbox.h Wed Oct 13 14:11:15 2010 +0300
@@ -30,66 +30,40 @@
class CAknsFrameBackgroundControlContext;
class CFSEmailUiContactHandler;
class CFSMailBox;
+class CNcsHeaderContainer;
class CFSEmailUiLayoutHandler;
-class CFreestyleEmailUiAppUi;
+class CFreestyleEmailUiAppUi; //<cmail>
// CLASS DECLARATION
/**
- * Observer interface to notify observer of item selection events and changes
- * in popup's visibility.
- */
-class MNcsPopupListBoxObserver
- {
-public:
-
- /**
- * Visibility of component is changing.
- * @param aVisible ETrue, if popup is coming visible.
- * @return Observer should return ETrue, if visiblity change is allowed.
- */
- virtual TBool PopupVisibilityChangingL( TBool aVisible ) = 0;
-
- /**
- * Popup item is selected.
- */
- virtual void PopupItemSelectedL() = 0;
-
- };
-
-
-/**
* CNcsPopupListBox
*/
class CNcsPopupListBox : public CEikTextListBox,
public MEikListBoxObserver,
public MFSEmailUiContactHandlerObserver
{
-public:
+public: // Constructors and destructor
+
+ /*
+ * @param aMailBox reference to current mailbox item
+ */
+ static CNcsPopupListBox* NewL( const CCoeControl* aParent, CFSMailBox& aMailBox,
+ CNcsHeaderContainer& aHeaderContainer,
+ TBool aRemoteLookupSupported );
/*
- * @param aMailBox reference to current mailbox item
- */
- static CNcsPopupListBox* NewL( const CCoeControl* aParent,
- CFSMailBox& aMailBox, MNcsPopupListBoxObserver& aObserver,
- TBool aRemoteLookupSupported );
-
- /*
- * @param aMailBox reference to current mailbox item
- */
+ * @param aMailBox reference to current mailbox item
+ */
void ConstructL( const CCoeControl* aParent );
/*
- * Initialises popup and begins the search.
- * @param aText Search text.
- */
+ *
+ *
+ * @param aText
+ */
void InitAndSearchL( const TDesC& aText, TInt aMode = -1 );
-
- /**
- * Hides the popup window.
- */
- void ClosePopupL();
-
+
// Destructor
virtual ~CNcsPopupListBox();
@@ -175,7 +149,7 @@
void SetScrollBarVisibilityL();
- void SetRemoteLookupItemToTheListL( TInt aIndex );
+ void SetRemoteLookupItemFirstToTheListL();
enum TRemoteLookupItemMoveDirection
{
@@ -189,14 +163,13 @@
private:
- CNcsPopupListBox( CFSMailBox& aMailbox,
- MNcsPopupListBoxObserver& aObserver,
- TBool aRemoteLookupSupported );
+ CNcsPopupListBox( CNcsHeaderContainer& aHeaderContainer,
+ TBool aRemoteLookupSupported, CFSMailBox& aMailbox );
virtual void CreateItemDrawerL();
void UpdateListL();
- void UpdateVisibilityL( TBool aVisible );
+
void UpdateTextColors();
// From CCoeControl.
@@ -204,28 +177,25 @@
private: // data
- // Background control context. Own.
+ CNcsHeaderContainer& iHeaderContainer;
+
CAknsFrameBackgroundControlContext* iBackgroundContext;
- // Items matching the current searh string. Own.
- RPointerArray<CFSEmailUiClsItem> iMatchingItems;
+
+ RPointerArray<CFSEmailUiClsItem> iMatchingItems;
+
+ CFSEmailUiContactHandler* iContactHandler; // Owned
+ CFSMailBox& iMailBox;
- // Contact handler.
- CFSEmailUiContactHandler* iContactHandler;
- CFSMailBox& iMailBox;
- // Observer for popup visibility changes.
- MNcsPopupListBoxObserver& iObserver;
- TRect iPopupMaxRect;
-
- CDesCArray* iItemTextsArray;
- // Current search text. Own.
- HBufC* iCurrentSearchText;
- TInt iRemoteLookupItemPos;
-
- TBool iRemoteLookupSupported;
- TBool iCachingInProgress;
-
- CFreestyleEmailUiAppUi* iAppUi; // not owned
-
+ TRect iPopupMaxRect;
+
+ CDesCArray* iItemTextsArray;
+ HBufC* iCurrentSearchText;
+ TInt iRemoteLookupItemPos;
+
+ TBool iRemoteLookupSupported;
+ TBool iCachingInProgress;
+
+ CFreestyleEmailUiAppUi* iAppUi; //<cmail> not owned
};
--- a/emailuis/emailui/inc/ncssubjectfield.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/inc/ncssubjectfield.h Wed Oct 13 14:11:15 2010 +0300
@@ -29,7 +29,6 @@
class CEikImage;
-class CAknButton;
class MNcsFieldSizeObserver;
class CNcsHeaderContainer;
class CAknPhysics;
@@ -80,9 +79,11 @@
const TDesC& GetLabelText() const;
+ // <cmail> Platform layout change
TInt LayoutLineCount() const;
+ // </cmail> Platform layout change
- void GetLineRect( TRect& aLineRect ) const;
+ void GetLineRectL( TRect& aLineRect ) const;
void SetMaxLabelLength( TInt aMaxLength );
@@ -143,25 +144,23 @@
void UpdateFontSize();
+ //<cmail>
void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+ //</cmail>
private: // data
CNcsHeaderContainer* iParentControl; // not owned
/*
- * label
+ * text field
* Own
*/
CNcsLabel* iLabel;
-
- /**
- * button
- * Own
- */
- CAknButton* iButton;
-
+
+// <cmail> Platform layout changes
const CFont* iFont; // not owned, needs to be released in the end
+// </cmail> Platform layout changes
/*
* text field
@@ -172,10 +171,16 @@
TInt iEditorMinimumHeight;
TInt iMaximumLabelLength;
+
+ TRgb iBorderColor;
+
+ TRgb iBgColor;
TBool iDrawAfterFocusChange;
+// <cmail> Platform layout changes
TInt iEditorLineCount;
+// </cmail> Platform layout changes
};
#endif // CNCSSUBJECTFIELD_H
--- a/emailuis/emailui/loc/freestyleemailui.loc Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/loc/freestyleemailui.loc Wed Oct 13 14:11:15 2010 +0300
@@ -49,7 +49,7 @@
// l:cell_cmail_l_pane_t1
// r:TB9.1
//
-#define qtn_fse_launcher_directory "Contact search"
+#define qtn_fse_launcher_directory "Directory"
// d:About item in launcher grid
// l:cell_cmail_l_pane_t1
--- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -89,10 +89,6 @@
#include "cfsccontactactionmenu.h"
//</cmail>
#include <layoutmetadata.cdl.h> // for Layout_Meta_Data
-#include <aknnavilabel.h>
-#include <AknPriv.hrh>
-#include "freestyleemailcenrepkeys.h"
-#include <centralrepository.h>
// INTERNAL INCLUDE FILES
#include "FreestyleEmailUiContactHandler.h"
@@ -158,7 +154,6 @@
const TUint KConnectionStatusIconRotationInterval = 100;
const TUint KFakeSyncAnimStopTimerInterval = 3000; // 3 secs
const TInt KConnectionStatusIconRotationAmount = 18;
-const TInt KFullCircleInDegrees = 360;
// Length of the drive letter descriptor (e.g. "c:")
const TInt KDriveDescLength = 2;
@@ -749,7 +744,7 @@
// Destruction must be done here as other Tls data depends on it.
CFSEmailDownloadInfoMediator::Destroy();
- delete iNaviDecorator;
+ delete iNaviDecorator2MailViewer;
delete iConnectionStatusIconAnimTimer;
delete iFakeSyncAnimStopTimer;
@@ -892,19 +887,12 @@
return;
}
- if( aViewId == MailListId )
- {
- // notify Eik that SplitInput was disabled when entering the list form homescreen
- CEikAppUi::HandleResourceChangeL( KAknSplitInputDisabled );
- }
-
// Do nothing if the externally activated view was already active
if ( iCurrentActiveView->Id() != aViewId )
{
// this function removes setting view from view stack so
// it cannot be active any more
iSettingsViewActive = EFalse;
-
iPreviousActiveView = iCurrentActiveView;
// Check if the view is in the history stack. In that case, we don't
@@ -1359,6 +1347,7 @@
{
iLastWsEventType = EEventKey;
}
+
TInt key = aEvent.Key()->iScanCode;
// <cmail>
// to disable voice commands during creating new mail message
@@ -1504,15 +1493,6 @@
// </cmail>
CAknAppUi::HandleResourceChangeL( aType );
- if ( aType == KAknSplitInputEnabled || aType == KAknSplitInputDisabled )
- {
- StatusPane()->MakeVisible( aType == KAknSplitInputDisabled );
- if ( iCurrentActiveView != NULL )
- {
- iCurrentActiveView->HandleStatusPaneSizeChange();
- }
- }
-
// Refresh mode is changed to manual to avoid any flickering during
// resource change handling in list views. Trap any leaves so that we set
// the automatic refresh mode back on even in case of error.
@@ -1542,8 +1522,7 @@
// CAlfEnv::Static()->NotifySkinChangedL();
// }
- if( aType == KEikDynamicLayoutVariantSwitch
- || aType == KAknSplitInputEnabled || aType == KAknSplitInputDisabled )
+ if ( aType == KEikDynamicLayoutVariantSwitch )
{
// Changing layout for status pane (just in case it is not switched
// correctly), fix for HMNN-82BAGR error
@@ -1570,7 +1549,7 @@
{
TRect screenRect;
- screenRect = ClientRect();
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, screenRect );
StatusPane()->DrawNow();
if(iEnv)
{
@@ -1588,8 +1567,6 @@
case KAknsMessageSkinChange:
type = CFsEmailUiViewBase::ESkinChanged;
break;
- case KAknSplitInputEnabled: // fall though
- case KAknSplitInputDisabled: // fall though
case KEikDynamicLayoutVariantSwitch:
type = CFsEmailUiViewBase::EScreenLayoutChanged;
break;
@@ -1608,7 +1585,8 @@
{
iPendingLayoutSwitch = ETrue;
}
- if ( iCurrentActiveView && !iSettingsViewActive && !iMRViewer )
+
+ if ( iCurrentActiveView && !iSettingsViewActive )
{
iCurrentActiveView->HandleDynamicVariantSwitchL( type );
}
@@ -2592,7 +2570,7 @@
if ( iConnectionIconBitmap )
{
TSize iconSize = LayoutHandler()->statusPaneIconSize();
- AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
+ AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
}
titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconBitmap && iConnectionIconMask);
}
@@ -2702,7 +2680,7 @@
if ( iConnectionIconBitmap )
{
TSize iconSize( LayoutHandler()->statusPaneIconSize() );
- AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
+ AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
}
titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconMask && iConnectionIconBitmap );
if (startTimer)
@@ -3034,6 +3012,7 @@
{
return iLastWsEventType;
}
+
// CFreestyleEmailUiAppUi::RunFakeSyncAnimL
// -----------------------------------------------------------------------------
void CFreestyleEmailUiAppUi::RunFakeSyncAnimL()
@@ -3063,15 +3042,13 @@
iConnectionIconMask );
if ( iConnectionIconBitmap && iConnectionIconMask )
{
- AknIconUtils::SetSizeAndRotation(
- iConnectionIconBitmap,
- LayoutHandler()->statusPaneIconSize(),
- EAspectRatioNotPreserved,
- iConnectionStatusIconAngle );
-
- titlePane->SetSmallPicture(
- iConnectionIconBitmap,
- iConnectionIconMask,
+ AknIconUtils::SetSize(
+ iConnectionIconBitmap,
+ LayoutHandler()->statusPaneIconSize(),
+ EAspectRatioNotPreserved );
+ titlePane->SetSmallPicture(
+ iConnectionIconBitmap,
+ iConnectionIconMask,
ETrue );
iConnectionStatusIconAnimTimer->Start(
KConnectionStatusIconRotationInterval );
@@ -3085,6 +3062,60 @@
}
}
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CFreestyleEmailUiAppUi::ConstructNaviPaneL()
+ {
+ FUNC_LOG;
+
+ CAknNavigationControlContainer* naviPaneContainer =
+ static_cast<CAknNavigationControlContainer*>(
+ StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+
+ // Following navipane is for mailviewer view
+ if ( !iNaviDecorator2MailViewer )
+ {
+ // Constructing a decorator with own decorated control,
+ // which is (currently an empty) container.
+ CFreestyleEmailUiNaviPaneControlContainer2MailViewer* c =
+ CFreestyleEmailUiNaviPaneControlContainer2MailViewer::NewL();
+ c->SetContainerWindowL( *naviPaneContainer );
+ iNaviDecorator2MailViewer = CAknNavigationDecorator::NewL(
+ naviPaneContainer,
+ c,
+ CAknNavigationDecorator::ENotSpecified );
+
+ // In order to get navi arrows visible, they must be set visible AND not dimmed...
+ iNaviDecorator2MailViewer->SetContainerWindowL( *naviPaneContainer );
+ iNaviDecorator2MailViewer->MakeScrollButtonVisible( ETrue );
+ iNaviDecorator2MailViewer->SetScrollButtonDimmed( CAknNavigationDecorator::ELeftButton, EFalse );
+ iNaviDecorator2MailViewer->SetScrollButtonDimmed( CAknNavigationDecorator::ERightButton, EFalse );
+
+ iNaviDecorator2MailViewer->SetComponentsToInheritVisibility( ETrue );
+ naviPaneContainer->PushL( *iNaviDecorator2MailViewer );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+CAknNavigationDecorator* CFreestyleEmailUiAppUi::NaviDecoratorL( const TUid aViewId )
+ {
+ FUNC_LOG;
+ CAknNavigationDecorator* decorator( NULL );
+ // Depending on who's asking, return proper navipane instance
+ if ( aViewId.iUid == MailViewerId.iUid )
+ {
+ if ( !iNaviDecorator2MailViewer )
+ {
+ ConstructNaviPaneL();
+ }
+ decorator = iNaviDecorator2MailViewer;
+ }
+ return decorator;
+ }
+
void CFreestyleEmailUiAppUi::TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer )
{
if ( aTriggeredTimer == iConnectionStatusIconAnimTimer )
@@ -3103,7 +3134,6 @@
TSize iconSize = LayoutHandler()->statusPaneIconSize();
iConnectionStatusIconAngle += KConnectionStatusIconRotationAmount;
- iConnectionStatusIconAngle %= KFullCircleInDegrees;
AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
titlePane->DrawNow();
iConnectionStatusIconAnimTimer->Start(KConnectionStatusIconRotationInterval);
@@ -3175,35 +3205,7 @@
}
}
-void CFreestyleEmailUiAppUi::SetNaviPaneTextL( const TDesC& aText )
- {
- if (aText.Length())
- {
- CAknNavigationControlContainer* np =
- static_cast<CAknNavigationControlContainer*>(
- StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-
- if (!iNaviDecorator)
- {
- iNaviDecorator = np->CreateNavigationLabelL( KNullDesC() );
- np->PushL( *iNaviDecorator );
- }
- CAknNaviLabel* naviLabel = static_cast<CAknNaviLabel*>( iNaviDecorator->DecoratedControl() );
- if( naviLabel )
- {
- naviLabel->SetTextL( aText );
- iNaviDecorator->DrawDeferred();
- }
- }
- else
- {
- if (iNaviDecorator)
- {
- delete iNaviDecorator;
- iNaviDecorator = NULL;
- }
- }
- }
+
////////////////////////////////////////////////////////////////////////////////
//
--- a/emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -16,17 +16,19 @@
*/
#include "emailtrace.h"
-#include <eikenv.h>
-#include <centralrepository.h>
-#include <AknFepInternalCRKeys.h>
-#include "cfsmailbox.h"
+#include <eikenv.h> // CEikonEnv
+#include <centralrepository.h> // CRepository
+#include <AknFepInternalCRKeys.h> // KCRUidAknFep
+//<cmail>
+#include "cfsmailbox.h" // cfsmailbox
+//</cmail>
#include <CPsRequestHandler.h>
#include <CPsSettings.h>
#include <VPbkEng.rsg>
-#include "FreestyleEmailUiCLSListsHandler.h"
-#include "FreestyleEMailUiCLSMatchObserverInterface.h"
-#include "FreestyleEmailUiInputModeObserver.h"
+#include "FreestyleEmailUiCLSListsHandler.h" // CFSEmailUiClsListsHandler
+#include "FreestyleEMailUiCLSMatchObserverInterface.h"// CFSEmailUiClsContactMatchObserver
+#include "FreestyleEmailUiInputModeObserver.h" // CFSEmailUiInputModeObserver
#include "FreestyleEmailUiUtilities.h"
#include "FreestyleEmailUiCLSItem.h"
@@ -35,7 +37,7 @@
// CFSEmailUiClsListsHandler::NewL
// -----------------------------------------------------------------------------
CFSEmailUiClsListsHandler* CFSEmailUiClsListsHandler::NewL( RFs& aFs,
- CVPbkContactManager* aContactManager )
+ CVPbkContactManager* aContactManager )
{
FUNC_LOG;
CFSEmailUiClsListsHandler* object =
@@ -47,12 +49,10 @@
// -----------------------------------------------------------------------------
// CFSEmailUiClsListsHandler::NewLC
// -----------------------------------------------------------------------------
-CFSEmailUiClsListsHandler* CFSEmailUiClsListsHandler::NewLC(
- RFs& aFs, CVPbkContactManager* aContactManager )
+CFSEmailUiClsListsHandler* CFSEmailUiClsListsHandler::NewLC( RFs& aFs, CVPbkContactManager* aContactManager )
{
FUNC_LOG;
- CFSEmailUiClsListsHandler* object =
- new (ELeave) CFSEmailUiClsListsHandler( aFs, aContactManager );
+ CFSEmailUiClsListsHandler* object = new (ELeave) CFSEmailUiClsListsHandler( aFs, aContactManager );
CleanupStack::PushL( object );
object->ConstructL();
return object;
@@ -85,55 +85,52 @@
const RPointerArray<CFSEmailUiClsItem>& aMatches )
{
FUNC_LOG;
-
- TInt matchCount = aMatches.Count();
- for( TInt i = 0 ; i < matchCount ; ++i )
+ for( TInt i = 0 ; i < aMatches.Count() ; ++i )
{
- if( aMatches[i]->IsMruItem() )
- {
- // MRU items are added to iMatchingMRUContacts and any already
- // added duplicate is removed from iMatchingCompleteContacts
- iMatchingMRUContacts.AppendL( aMatches[i] );
- TInt itemIndex = FindDuplicate( *aMatches[i],
- iMatchingCompleteContacts );
- if ( KErrNotFound != itemIndex )
- {
- iMatchingCompleteContacts.Remove( itemIndex );
- }
- }
- else if( aMatches[i]->EmailAddress().Length() > 0 )
- {
- // For Phonebook items, it is checked that it there doesn't
- // already exist a duplicate in iMatchingMRUContacts
- if( KErrNotFound ==
- FindDuplicate( *aMatches[i], iMatchingMRUContacts ) )
- {
- // No duplicate in iMatchingMRUContacts,
- // this can be appended to iMatchingCompleteContacts
- iMatchingCompleteContacts.AppendL( aMatches[i] );
- }
- }
- else
- {
- // No email, add always to the end of the list
- iMatchingMissingEmailContacts.AppendL( aMatches[i] );
- }
- }
-
- RPointerArray<CFSEmailUiClsItem> allMatches =
- ConstructOneListL( iMatchingCompleteContacts,
- iMatchingMRUContacts,
- iMatchingMissingEmailContacts );
+ if( aMatches[i]->IsMruItem() )
+ {
+ // If this is MRU item, we need to check that it doesn't
+ // already exist in iMatchingCompleteContacts
+ TInt itemIndex = FindDuplicate( *aMatches[i], iMatchingCompleteContacts );
+ if( itemIndex == KErrNotFound )
+ {
+ iMatchingMRUContacts.AppendL( aMatches[i] );
+ }
+
+ }
+ else if( aMatches[i]->EmailAddress().Length() > 0 )
+ {
+ // If this is Phonebook item, we need to check that it doesn't
+ // already exist in iMatchingMRUContacts
+ TInt itemIndex = FindDuplicate( *aMatches[i], iMatchingMRUContacts );
+ if( itemIndex != KErrNotFound )
+ {
+ // Found, this needs to be removed from the MRU list
+ iMatchingMRUContacts.Remove( itemIndex );
+ }
+
+ // Phonebook items are always added to the top of the list
+ iMatchingCompleteContacts.AppendL( aMatches[i] );
+ }
+ else
+ {
+ // No email, nothing to compare, so add this always to the end of the list
+ iMatchingMissingEmailContacts.AppendL( aMatches[i] );
+ }
+ }
+
+ RPointerArray<CFSEmailUiClsItem> allMatches = ConstructOneListL( iMatchingCompleteContacts,
+ iMatchingMRUContacts,
+ iMatchingMissingEmailContacts );
CleanupResetAndDestroyClosePushL( allMatches ); // Ownership is taken
iClsListObserver->ArrayUpdatedL( allMatches );
- CleanupStack::PopAndDestroy( &allMatches );
+ CleanupStack::PopAndDestroy(&allMatches ); // Array is released, destructors are called
}
// -----------------------------------------------------------------------------
// CFSEmailUiClsListsHandler::InputModeChangedL
// -----------------------------------------------------------------------------
-void CFSEmailUiClsListsHandler::InputModeChangedL(
- TKeyboardModes aNewInputMode )
+void CFSEmailUiClsListsHandler::InputModeChangedL( TKeyboardModes aNewInputMode )
{
FUNC_LOG;
iPcsMatchObserver->SetInputMode( aNewInputMode );
@@ -171,8 +168,7 @@
// -----------------------------------------------------------------------------
// CFSEmailUiClsListsHandler::CFSEmailUiClsListsHandler
// -----------------------------------------------------------------------------
-CFSEmailUiClsListsHandler::CFSEmailUiClsListsHandler(
- RFs& aFs, CVPbkContactManager* aContactManager ) :
+CFSEmailUiClsListsHandler::CFSEmailUiClsListsHandler( RFs& aFs, CVPbkContactManager* aContactManager ) :
iContactManager( aContactManager ),
iClsListObserver( NULL ),
iFs( aFs ),
@@ -189,19 +185,20 @@
void CFSEmailUiClsListsHandler::ConstructL()
{
FUNC_LOG;
- iRequestHandler = CPSRequestHandler::NewL();
+ iRequestHandler = CPSRequestHandler::NewL();
+
iAknFepCenRep = CRepository::NewL( KCRUidAknFep );
- iPcsMatchObserver = CFSEmailUiClsMatchObserver::NewL(
- *iAknFepCenRep, *this, *iRequestHandler, iContactManager );
+
+ iPcsMatchObserver = CFSEmailUiClsMatchObserver::NewL( *iAknFepCenRep, *this, *iRequestHandler, iContactManager );
SetSearchSettingsForPcsMatchObserverL();
// Monitors inputMode changes (predictive vs. non-predictive
iInputObserver = CFSEmailUiInputModeObserver::NewL( *iAknFepCenRep, *this );
if( !iSearchedText )
- {
iSearchedText = KNullDesC().AllocL();
- }
+
+ //iRemoteLookupSupported = TFsEmailUiUtility::IsRemoteLookupSupported( *iMailBox );
}
// -----------------------------------------------------------------------------
@@ -218,24 +215,19 @@
// -----------------------------------------------------------------------------
// CFSEmailUiClsListsHandler::ReadCLSInfoFromMRUListIndexL
// -----------------------------------------------------------------------------
-TBool CFSEmailUiClsListsHandler::ReadCLSInfoFromMRUListIndexL(
- MDesCArray& aTextArray,
- CFSEmailUiClsItem& aClsItem,
- TInt aCurrentMatchIndex,
- TInt aPreviousMatchIndex )
+TBool CFSEmailUiClsListsHandler::ReadCLSInfoFromMRUListIndexL( MDesCArray& aTextArray,
+ CFSEmailUiClsItem& aClsItem,
+ const TInt aCurrentMatchIndex, const TInt aPreviousMatchIndex )
{
FUNC_LOG;
TBool retVal = EFalse;
// This should be even number
- TInt currentRealItemIndex =
- aCurrentMatchIndex - ( aCurrentMatchIndex % 2 );
+ TInt currentRealItemIndex = aCurrentMatchIndex - ( aCurrentMatchIndex % 2 );
// Here we need to check if match is found both from the display name and email address
if( currentRealItemIndex != aPreviousMatchIndex )
{
- aClsItem.SetDisplayNameL(
- aTextArray.MdcaPoint( currentRealItemIndex ) );
- aClsItem.SetEmailAddressL(
- aTextArray.MdcaPoint( currentRealItemIndex + 1 ) );
+ aClsItem.SetDisplayNameL( aTextArray.MdcaPoint( currentRealItemIndex ) );
+ aClsItem.SetEmailAddressL( aTextArray.MdcaPoint( currentRealItemIndex + 1 ) );
retVal = ETrue;
}
return retVal;
@@ -245,9 +237,8 @@
// -----------------------------------------------------------------------------
// CFSEmailUiClsListsHandler::FindAndDestroyDuplicate
// -----------------------------------------------------------------------------
-TInt CFSEmailUiClsListsHandler::FindDuplicate(
- const CFSEmailUiClsItem& aClsItem,
- RPointerArray<CFSEmailUiClsItem>& aContacts )
+TInt CFSEmailUiClsListsHandler::FindDuplicate( const CFSEmailUiClsItem& aClsItem,
+ RPointerArray<CFSEmailUiClsItem>& aContacts )
{
FUNC_LOG;
// find duplicate email addresses from aContacts
@@ -270,38 +261,35 @@
// CFSEmailUiClsListsHandler::ConstructOneListL
// -----------------------------------------------------------------------------
RPointerArray<CFSEmailUiClsItem> CFSEmailUiClsListsHandler::ConstructOneListL(
- const RPointerArray<CFSEmailUiClsItem>& aContactMatchesWithEmail,
- const RPointerArray<CFSEmailUiClsItem>& aMRUMatches,
- const RPointerArray<CFSEmailUiClsItem>& aContactMatchesWithoutEmail )
+ const RPointerArray<CFSEmailUiClsItem>& aContactMatchesWithEmail,
+ const RPointerArray<CFSEmailUiClsItem>& aMRUMatches,
+ const RPointerArray<CFSEmailUiClsItem>& aContactMatchesWithoutEmail )
{
FUNC_LOG;
RPointerArray<CFSEmailUiClsItem> allMatches;
CleanupResetAndDestroyClosePushL( allMatches );
// Copy all the objects from three other lists to the all matches list
- TInt matchingMRUItemsCount = aMRUMatches.Count();
- for ( TInt i = 0 ; i < matchingMRUItemsCount ; i++ )
- {
- CFSEmailUiClsItem* newClsItem = CopyClsItemLC( *aMRUMatches[i] );
- allMatches.AppendL( newClsItem );
- CleanupStack::Pop( newClsItem );
- }
-
TInt matchingComleteItemsCount = aContactMatchesWithEmail.Count();
for( TInt i = 0 ; i < matchingComleteItemsCount; i++ )
{
- CFSEmailUiClsItem* newClsItem =
- CopyClsItemLC( *aContactMatchesWithEmail[i] );
+ CFSEmailUiClsItem* newClsItem = CopyClsItemLC( *aContactMatchesWithEmail[i] );
allMatches.AppendL( newClsItem );
CleanupStack::Pop( newClsItem );
}
- TInt mathingContactItemsWithoutEmailCount =
- aContactMatchesWithoutEmail.Count();
+ TInt matchingMRUItemsCount = aMRUMatches.Count();
+ for ( TInt i = 0 ; i < matchingMRUItemsCount ; i++ )
+ {
+ CFSEmailUiClsItem* newClsItem = CopyClsItemLC( *aMRUMatches[i] );
+ allMatches.AppendL( newClsItem );
+ CleanupStack::Pop( newClsItem );
+ }
+
+ TInt mathingContactItemsWithoutEmailCount = aContactMatchesWithoutEmail.Count();
for( TInt i = 0 ; i < mathingContactItemsWithoutEmailCount ; i++ )
{
- CFSEmailUiClsItem* newClsItem =
- CopyClsItemLC( *aContactMatchesWithoutEmail[i] );
+ CFSEmailUiClsItem* newClsItem = CopyClsItemLC( *aContactMatchesWithoutEmail[i] );
allMatches.AppendL( newClsItem );
CleanupStack::Pop( newClsItem );
}
@@ -318,15 +306,15 @@
FUNC_LOG;
// Create predictive search settings
CPsSettings* searchSettings = CPsSettings::NewL();
- CleanupStack::PushL( searchSettings );
+ CleanupStack::PushL(searchSettings);
RPointerArray<TDesC> databases;
- CleanupClosePushL( databases );
+ CleanupClosePushL(databases);
- HBufC* store1 = HBufC::NewLC( 50 );
- store1->Des().Copy( KVPbkDefaultCntDbURI ); // Phone contacts store
+ HBufC* store1 = HBufC::NewLC(50);
+ store1->Des().Copy( KVPbkDefaultCntDbURI ); // To specify phone contacts store
- databases.AppendL( store1 );
+ databases.AppendL(store1);
HBufC* store2 = NULL;
if ( iMailBox )
{
@@ -334,7 +322,7 @@
GetMruDatastoreUriFromMailbox( *iMailBox, *store2 );
databases.AppendL( store2 );
}
- searchSettings->SetSearchUrisL( databases );
+ searchSettings->SetSearchUrisL(databases);
// Set displayfields according to sort order
RArray<TInt> sortOrder;
@@ -342,8 +330,7 @@
iRequestHandler->GetSortOrderL( *store1, sortOrder );
if ( sortOrder.Count() )
{
- iUseLastNameFirstOrder =
- ( sortOrder[0] == R_VPBK_FIELD_TYPE_LASTNAME );
+ iUseLastNameFirstOrder = ( sortOrder[0] == R_VPBK_FIELD_TYPE_LASTNAME );
}
else
{
@@ -351,14 +338,8 @@
}
RArray<TInt> displayFields( 6 );
CleanupClosePushL( displayFields );
- if ( sortOrder.Count() )
- {
- displayFields.AppendL( sortOrder[0] );
- }
- if ( sortOrder.Count() >= 1 )
- {
- displayFields.AppendL( sortOrder[1] );
- }
+ displayFields.AppendL( sortOrder[0] );
+ if ( sortOrder.Count() >= 1 ) displayFields.AppendL( sortOrder[1] );
displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILGEN );
displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILHOME );
displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILWORK );
@@ -368,22 +349,26 @@
displayFields.Close();
sortOrder.Close();
+ // Set maximum for search results
+ //How many results is shown on the screen??
+ //searchSettings->SetMaxResults(const TInt aMaxResults);
+
// Set the new search settings
- iRequestHandler->SetSearchSettingsL( *searchSettings );
+ iRequestHandler->SetSearchSettingsL(*searchSettings);
if ( store2 )
{
- CleanupStack::PopAndDestroy( store2 );
+ CleanupStack::PopAndDestroy(store2);
}
- CleanupStack::PopAndDestroy( store1 );
- CleanupStack::Pop( &databases );
+ CleanupStack::PopAndDestroy(store1);
+ CleanupStack::Pop(&databases);
databases.Close();
- CleanupStack::PopAndDestroy( searchSettings );
+ CleanupStack::PopAndDestroy(searchSettings);
}
// -----------------------------------------------------------------------------
-// CFSEmailUiClsListsHandler::IsLanguageSupported()
+// CFSEmailUiClsListsHandler::isLanguageSupported()
// -----------------------------------------------------------------------------
TBool CFSEmailUiClsListsHandler::IsLanguageSupportedL()
{
@@ -392,14 +377,10 @@
TLanguage lang = User::Language();
// Check for language support
- return iRequestHandler->IsLanguageSupportedL( lang );
+ return iRequestHandler->IsLanguageSupportedL(lang);
}
-// -----------------------------------------------------------------------------
-// CFSEmailUiClsListsHandler::GetMruDatastoreUriFromMailbox()
-// -----------------------------------------------------------------------------
-void CFSEmailUiClsListsHandler::GetMruDatastoreUriFromMailbox(
- CFSMailBox& aMailbox, HBufC& aUri )
+void CFSEmailUiClsListsHandler::GetMruDatastoreUriFromMailbox( CFSMailBox& aMailbox, HBufC& aUri )
{
FUNC_LOG;
aUri.Des().Copy( KDefaultMailBoxURI );
@@ -408,19 +389,12 @@
aUri.Des().AppendNum( aMailbox.GetId().Id() );
}
-// -----------------------------------------------------------------------------
-// CFSEmailUiClsListsHandler::SetObserver()
-// -----------------------------------------------------------------------------
-void CFSEmailUiClsListsHandler::SetObserver(
- MFSEmailUiClsListsObserver* aClsListObserver )
+void CFSEmailUiClsListsHandler::SetObserver( MFSEmailUiClsListsObserver* aClsListObserver )
{
FUNC_LOG;
iClsListObserver = aClsListObserver;
}
-// -----------------------------------------------------------------------------
-// CFSEmailUiClsListsHandler::SetCurrentMailboxL()
-// -----------------------------------------------------------------------------
void CFSEmailUiClsListsHandler::SetCurrentMailboxL( CFSMailBox* aMailBox )
{
FUNC_LOG;
@@ -443,18 +417,12 @@
}
}
-// -----------------------------------------------------------------------------
-// CFSEmailUiClsListsHandler::OperationErrorL()
-// -----------------------------------------------------------------------------
void CFSEmailUiClsListsHandler::OperationErrorL( TInt aErrorCode )
{
FUNC_LOG;
iClsListObserver->OperationErrorL( aErrorCode );
}
-// -----------------------------------------------------------------------------
-// CFSEmailUiClsListsHandler::UseLastNameFirstOrder()
-// -----------------------------------------------------------------------------
TBool CFSEmailUiClsListsHandler::UseLastNameFirstOrder()
{
FUNC_LOG;
--- a/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -83,14 +83,7 @@
//Constants
const TInt KInternetCallPreferred = 1;
-/** UID of the CCA details view plugin implementation
- * ( from ccappdetailsviewpluginuids.hrh ) */
-const TInt KCCADetailsViewPluginImplmentationUid = 0x200159E7;
-/** CCA Application
- * ( from ccauids.h )*/
-const TInt KCCAAppUID = 0x2000B609;
-/** Phonebook2 App UID */
-const TInt KPbkUID3 = 0x101f4cce;
+
CFSEmailUiContactHandler* CFSEmailUiContactHandler::NewL( RFs& aSession )
{
@@ -343,11 +336,13 @@
{
dialData->SetCallType( CAiwDialData::EAIWVoiP );
}
+ // <cmail> video call
else if ( iVideoCall )
{
iVideoCall = EFalse;
dialData->SetCallType( CAiwDialData::EAIWForcedVideo );
}
+ // </cmail>
else
{
dialData->SetCallType( CAiwDialData::EAIWVoice );
@@ -359,11 +354,13 @@
{
dialData->SetCallType( CAiwDialData::EAIWVoiP );
}
+ // <cmail> video call
else if ( iVideoCall )
{
iVideoCall = EFalse;
dialData->SetCallType( CAiwDialData::EAIWForcedVideo );
}
+ // </cmail>
else
{
dialData->SetCallType( CAiwDialData::EAIWVoice );
@@ -504,22 +501,22 @@
}
}
+// <cmail> video call
// ---------------------------------------------------------------------------
// Enables/disables video call.
// ---------------------------------------------------------------------------
//
void CFSEmailUiContactHandler::SetVideoCall( TBool aState )
{
- FUNC_LOG;
iVideoCall = aState;
}
+// </cmail>
-// ---------------------------------------------------------------------------
+/////////////////////////////////////////////////////////////////////////////
// CFSEmailUiContactHandler::GetSmsAddressFromPhonebookAndSendL
-// ---------------------------------------------------------------------------
//
-void CFSEmailUiContactHandler::GetSmsAddressFromPhonebookAndSendL(
- MVPbkContactLink* aContactLink )
+/////////////////////////////////////////////////////////////////////////////
+void CFSEmailUiContactHandler::GetSmsAddressFromPhonebookAndSendL( MVPbkContactLink* aContactLink )
{
FUNC_LOG;
if ( iState == EContactHandlerIdle )
@@ -553,12 +550,12 @@
}
}
-// ---------------------------------------------------------------------------
+/////////////////////////////////////////////////////////////////////////////
// CFSEmailUiContactHandler::GetMmsAddressFromPhonebookAndSendL
-// ---------------------------------------------------------------------------
//
-void CFSEmailUiContactHandler::GetMmsAddressFromPhonebookAndSendL(
- MVPbkContactLink* aContactLink, TBool aIsVoiceMessage )
+/////////////////////////////////////////////////////////////////////////////
+void CFSEmailUiContactHandler::GetMmsAddressFromPhonebookAndSendL( MVPbkContactLink* aContactLink,
+ TBool aIsVoiceMessage )
{
FUNC_LOG;
if ( iState == EContactHandlerIdle )
@@ -599,35 +596,10 @@
}
}
-// ---------------------------------------------------------------------------
-// Retrieves the first contact in contact link set.
-// ---------------------------------------------------------------------------
+/////////////////////////////////////////////////////////////////////////////
+// CFSEmailUiContactHandler::ArrayUpdatedL
//
-void CFSEmailUiContactHandler::RetrieveContactsL()
- {
- FUNC_LOG;
- if ( iLinksSet->Count() )
- {
- delete iCurrentLink;
- iCurrentLink = NULL;
-
- iCurrentLink = iLinksSet->At(0).CloneLC();
- CleanupStack::Pop();
-
- delete iLinkOperationFetch;
- iLinkOperationFetch = NULL;
-
- //Async operation, callback VPbkSingleContactOperationCompleteL
- //Error situations: VPbkSingleContactOperationFailed
- iLinkOperationFetch = iContactManager->RetrieveContactL(
- *iCurrentLink, *this );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFSEmailUiContactHandler::ArrayUpdatedL
-// ---------------------------------------------------------------------------
-//
+/////////////////////////////////////////////////////////////////////////////
void CFSEmailUiContactHandler::ArrayUpdatedL(
const RPointerArray<CFSEmailUiClsItem>& aMatchingItems )
{
@@ -656,7 +628,7 @@
{
if ( !iSearchMatch )
{
- iSearchMatch = CFSEmailUiClsItem::NewL();
+ iSearchMatch = CFSEmailUiClsItem::NewL();
}
iSearchMatch->SetDisplayNameL( aMatchingItems[0]->DisplayName() );
iSearchMatch->SetEmailAddressL( aMatchingItems[0]->EmailAddress() );
@@ -699,9 +671,9 @@
{
iCachingInProgressError = EFalse;
iState = EContactHandlerIdle;
- iHandlerObserver->OperationErrorL( ESearchContacts, aErrorCode );
- }
- }
+ iHandlerObserver->OperationErrorL( ESearchContacts, aErrorCode );
+ }
+ }
else
{
iState = EContactHandlerIdle;
@@ -720,12 +692,14 @@
MVPbkStoreContact* aContact )
{
FUNC_LOG;
- //inform also client in case of error to enable client's actions (i.e. return search priority)
+//inform also client in case of error to enable client's actions (i.e. return search priority)
+// TRAP_IGNORE( VPbkSingleContactOperationCompleteL( aOperation, aContact) );
TRAPD(error, VPbkSingleContactOperationCompleteL( aOperation, aContact) );
if ( error != KErrNone )
{
TRAP_IGNORE(ObserverOperationErrorL( CurrentCommand(), error ));
}
+//
}
void CFSEmailUiContactHandler::VPbkSingleContactOperationCompleteL(
@@ -746,28 +720,23 @@
CleanupResetAndDestroyClosePushL( emailAddresses );
GetContactFieldsL( iFirstnameFields, firstname, aContact );
GetContactFieldsL( iLastnameFields, lastname, aContact );
-
+
// Create display name, this will be used in UI.
TInt dispNameLength = 1;
if ( firstname.Count() ) dispNameLength += firstname[0]->Length();
if ( lastname.Count() ) dispNameLength += lastname[0]->Length();
HBufC* displayname = HBufC::NewLC( dispNameLength );
- TPtr displaynamePtr = displayname->Des();
- if ( firstname.Count() && firstname[0]->Length() )
+
+ if ( firstname.Count() )
{
- displaynamePtr.Copy( *firstname[0] );
-
- // Append space only when both firstname and lastname are present.
- if ( lastname.Count() && lastname[0]->Length() )
- {
- displaynamePtr.Append( KSpace );
- }
+ displayname->Des().Copy( *firstname[0] );
+ displayname->Des().Append( KSpace );
}
if ( lastname.Count() )
{
- displaynamePtr.Append( *lastname[0] );
+ displayname->Des().Append( *lastname[0] );
}
-
+
// retrieve selected email address
MVPbkStoreContactFieldCollection& fields = aContact->Fields();
MVPbkBaseContactField* selectedField = fields.RetrieveField( *iCurrentLink );
@@ -792,6 +761,7 @@
CleanupStack::PopAndDestroy( selectedEmailAddress );
selectedEmailAddress = NULL;
+
CleanupStack::PopAndDestroy( displayname );
CleanupStack::PopAndDestroy( &emailAddresses );
CleanupStack::PopAndDestroy( &lastname );
@@ -800,17 +770,12 @@
// Get index of Next ContactLink if there's no LinkSet
// or iCurrenLink index is set to 0
- TInt index = ( iLinksSet && iCurrentLink ?
- iLinksSet->Find( *iCurrentLink ) + 1 : 0 );
-
- if ( iLinksSet && index < iLinksSet->Count() )
+ TInt index = (iLinksSet && iCurrentLink ? iLinksSet->Find
+ (*iCurrentLink) + 1 : 0);
+
+ if (iLinksSet && index < iLinksSet->Count())
{
- delete iCurrentLink;
- iCurrentLink = NULL;
-
- iCurrentLink = iLinksSet->At(index).CloneLC();
- CleanupStack::Pop();
-
+ iCurrentLink = &iLinksSet->At(index);
delete iLinkOperationFetch;
iLinkOperationFetch = NULL;
@@ -824,9 +789,7 @@
delete iLinkOperationFetch;
iLinkOperationFetch = NULL;
- delete iCurrentLink;
iCurrentLink = NULL;
-
iState = EContactHandlerIdle;
delete iLinksSet;
iLinksSet = NULL;
@@ -841,7 +804,7 @@
}
else if ( (iLinkOperationFetch == &aOperation) && (iState == EContactHandlerCallToContactByEmail ) )
- {
+ {
CleanupDeletePushL( aContact );
RPointerArray<HBufC> phonenumbers;
@@ -871,7 +834,7 @@
}
else
{
- TFsEmailUiUtility::ShowErrorNoteL( R_FREESTYLE_EMAIL_UI_VIEWER_NO_PHONE_NUMBER );
+ TFsEmailUiUtility::ShowErrorNoteL( R_FREESTYLE_EMAIL_UI_VIEWER_NO_PHONE_NUMBER );
//no phone number found - inform client to enable its actions (i.e. return search priority)
ObserverOperationErrorL( EFindAndCallToContactByEmailL, KErrNotFound );
}
@@ -879,12 +842,10 @@
}
CleanupStack::PopAndDestroy( aContact );
- }
+ }
// Addition to get contact for message creation.
- else if ( (iLinkOperationFetch == &aOperation) &&
- ( iMsgCreationHelperState == EContactHandlerGetSmsAddressFromPhonebook ||
- iMsgCreationHelperState == EContactHandlerGetMmsAddressFromPhonebook ||
- iMsgCreationHelperState == EContactHandlerGetVoiceMsgAddressFromPhonebook ) )
+ else if ( (iLinkOperationFetch == &aOperation) && ( iMsgCreationHelperState == EContactHandlerGetSmsAddressFromPhonebook ||
+ iMsgCreationHelperState == EContactHandlerGetMmsAddressFromPhonebook || iMsgCreationHelperState == EContactHandlerGetVoiceMsgAddressFromPhonebook ) )
{
if ( iContactForMsgCreation )
{
@@ -899,7 +860,7 @@
// Store contact
iContactForMsgCreation = aContact;
// Create clonelink for address selection
- MVPbkContactLink* cloneLink = iCurrentLink->CloneLC();
+ MVPbkContactLink* cloneLink = iCurrentLink->CloneLC();
CleanupStack::Pop();
switch ( iMsgCreationHelperState )
{
@@ -949,11 +910,7 @@
}
}
-// ---------------------------------------------------------------------------
-// From MVPbkContactStoreListObserver.
-// Called when the opening process is complete.
-// ---------------------------------------------------------------------------
-//
+
void CFSEmailUiContactHandler::OpenComplete()
{
FUNC_LOG;
@@ -961,12 +918,6 @@
{
iOpenComplete = ETrue;
}
-
- if ( iState == EContactHandlerGetAddressesFromPhonebook )
- {
- // Start retrieving contacts when stores are opened.
- TRAP_IGNORE( RetrieveContactsL() );
- }
}
void CFSEmailUiContactHandler::StoreReady(MVPbkContactStore& /*aContactStore*/)
@@ -1011,23 +962,32 @@
emptyItems.Close();
iHandlerObserver = NULL;
}
+
}
else if ( (aCmdId == KAiwCmdSelect) && (iState == EContactHandlerGetAddressesFromPhonebook) &&
(aEventId == KAiwEventCompleted))
{
+
TInt index = 0;
const TAiwGenericParam* param =
- aEventParamList.FindFirst( index, EGenericParamContactLinkArray );
- if ( param )
+ aEventParamList.FindFirst(index, EGenericParamContactLinkArray);
+ if (param)
{
TPtrC8 contactLinks = param->Value().AsData();
- iLinksSet = iContactManager->CreateLinksLC( contactLinks );
- CleanupStack::Pop();
- // Open all stores before retrieving contact details.
- // Async operation, calls OpenComplete when all stores are opened.
+ iLinksSet = iContactManager->CreateLinksLC(contactLinks);
+ CleanupStack::Pop();
+ if ( iLinksSet->Count() )
+ {
+ iCurrentLink = &iLinksSet->At(0);
+ //Async operation, callback VPbkSingleContactOperationCompleteL
+ //Error situations: VPbkSingleContactOperationFailed
+ iLinkOperationFetch = iContactManager->RetrieveContactL( iLinksSet->At(0), *this );
+ }
+
iContactManager->ContactStoresL().OpenAllL( *this );
}
+
}
else if ( (aCmdId == KAiwCmdSelect) && (iState == EContactHandlerGetSmsAddressFromPhonebook) &&
(aEventId == KAiwEventCompleted))
@@ -1095,7 +1055,9 @@
iUseSenderText(EFalse),
iFs( aSession ),
iCachingInProgressError(EFalse),
+ // <cmail> video call
iVideoCall( EFalse )
+ // </cmail>
{
FUNC_LOG;
}
@@ -1139,11 +1101,13 @@
}
else
{
- TFsEmailUiUtility::ShowErrorNoteL( R_FREESTYLE_EMAIL_UI_VIEWER_NO_PHONE_NUMBER );
+ TFsEmailUiUtility::ShowErrorNoteL( R_FREESTYLE_EMAIL_UI_VIEWER_NO_PHONE_NUMBER );
}
+ // <cmail> video call flag needs to be cleared
iVideoCall = EFalse;
+ // </cmail>
iState = EContactHandlerIdle;
- }
+ }
else if ( aMatchingItems.Count() > 0 ) // Call to one directly
{
// Create contact item in which to copy number or address, async operation.
@@ -1157,11 +1121,12 @@
delete iLinkOperationFetch;
iLinkOperationFetch = NULL;
}
-
+
//Async operation, callback VPbkSingleContactOperationCompleteL
//Error situations: VPbkSingleContactOperationFailed
- iLinkOperationFetch = iContactManager->RetrieveContactL(
- *iCurrentLink, *this );
+ iLinkOperationFetch = iContactManager->RetrieveContactL
+ (*iCurrentLink, *this);
+
}
}
@@ -1273,8 +1238,8 @@
//Async operation, callback VPbkSingleContactOperationCompleteL
//Error situations: VPbkSingleContactOperationFailed
- iLinkOperationFetch = iContactManager->RetrieveContactL(
- *iCurrentLink, *this);
+ iLinkOperationFetch = iContactManager->RetrieveContactL
+ (*iCurrentLink, *this);
}
}
}
@@ -1437,8 +1402,8 @@
param->SetContactDataL( link16->Des() );
// switch to details view
- const TUid uid = TUid::Uid( KCCADetailsViewPluginImplmentationUid );
- param->SetLaunchedViewUid( uid );
+ const TUid uid = TUid::Uid( 0x200159E7 );
+ param->SetLaunchedViewUid( uid);
// Launching the CCA application
iConnection->LaunchAppL( *param, this );
@@ -1457,70 +1422,6 @@
}
// ---------------------------------------------------------------------------
-// Return contact details view Id
-// ---------------------------------------------------------------------------
-//
-TUid CFSEmailUiContactHandler::GetDetailsViewUid()
- {
- return TUid::Uid( KCCADetailsViewPluginImplmentationUid );
- }
-
-// ---------------------------------------------------------------------------
-// Return contact detail App Id (CCAPP)
-// ---------------------------------------------------------------------------
-//
-TUid CFSEmailUiContactHandler::GetDetailsAppUid()
- {
- return TUid::Uid( KCCAAppUID );
- }
-
-// ---------------------------------------------------------------------------
-// Close Details view using CCApplication
-// ---------------------------------------------------------------------------
-//
-void CFSEmailUiContactHandler::CloseContactDetailsL()
- {
- CCASimpleNotifyL( MCCAObserver::EExitEvent,0 );
- iContactDetailsClosed = ETrue;
- }
-
-// ---------------------------------------------------------------------------
-// Check if Contact Details view was closed using CloseContactDetailsL method
-// ---------------------------------------------------------------------------
-//
-TBool CFSEmailUiContactHandler::WasDetailsClosed()
- {
- return iContactDetailsClosed;
- }
-
-// ---------------------------------------------------------------------------
-// Reopen Details view for last addres or bring contacts app to foreground
-// ---------------------------------------------------------------------------
-//
-void CFSEmailUiContactHandler::ReopenContactDetailsL(RWsSession& session )
- {
- if( iPreviousEmailAddress )
- {
- HBufC* emailAddress = iPreviousEmailAddress->AllocLC();
- ShowContactDetailsL( *emailAddress, EContactUpdateEmail, NULL );
- CleanupStack::PopAndDestroy( emailAddress );
- iContactDetailsClosed = EFalse;
- }
- else // if contact wasn't open from email
- {
- // Try to bring calling external app into foreground if found
- TApaTaskList taskList( session );
- TApaTask contAppTask = taskList.FindApp( TUid::Uid( KPbkUID3 ) );
- if ( contAppTask.Exists() )
- {
- contAppTask.BringToForeground();
- iContactDetailsClosed = EFalse;
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
// CFSEmailUiContactHandler::FindContactLinkL
// Searches contacts matching with the given email address
// ---------------------------------------------------------------------------
@@ -1543,16 +1444,17 @@
iEmailFields.Append( R_VPBK_FIELD_TYPE_EMAILGEN );
iEmailFields.Append( R_VPBK_FIELD_TYPE_EMAILWORK );
iEmailFields.Append( R_VPBK_FIELD_TYPE_EMAILHOME );
-
+
iFirstnameFields.Append( R_VPBK_FIELD_TYPE_FIRSTNAME );
iLastnameFields.Append( R_VPBK_FIELD_TYPE_LASTNAME );
-
+
iPhoneNumberFields.Append( R_VPBK_FIELD_TYPE_LANDPHONEHOME );
iPhoneNumberFields.Append( R_VPBK_FIELD_TYPE_MOBILEPHONEWORK );
iPhoneNumberFields.Append( R_VPBK_FIELD_TYPE_MOBILEPHONEHOME );
iPhoneNumberFields.Append( R_VPBK_FIELD_TYPE_LANDPHONEWORK );
iPhoneNumberFields.Append( R_VPBK_FIELD_TYPE_LANDPHONEGEN );
iPhoneNumberFields.Append( R_VPBK_FIELD_TYPE_MOBILEPHONEGEN );
+
}
void CFSEmailUiContactHandler::ResetFieldIds()
@@ -1566,7 +1468,7 @@
// -----------------------------------------------------------------------------
-// CFSEmailUiContactHandler::GetNameAndEmailFromRemoteLookupL
+// CFSEmailUiContactHandler::LaunchRemoteLookupL
// -----------------------------------------------------------------------------
TBool CFSEmailUiContactHandler::GetNameAndEmailFromRemoteLookupL( CFSMailBox& aMailBox,
const TDesC& aQueryString, TDes& aDisplayname, TDes& aEmailAddress )
@@ -1581,7 +1483,6 @@
CPbkxRemoteContactLookupServiceUiContext::TResult::EExitContactSelected )
{
GetNameAndEmail( aDisplayname, aEmailAddress, *(result.iSelectedContactItem) );
- delete result.iSelectedContactItem;
return ETrue;
}
@@ -1602,7 +1503,7 @@
}
// -----------------------------------------------------------------------------
-// CFSEmailUiContactHandler::GetNameAndNumberFromRemoteLookupL
+// CFSEmailUiContactHandler::LaunchRemoteLookupL
// -----------------------------------------------------------------------------
HBufC* CFSEmailUiContactHandler::GetNameAndNumberFromRemoteLookupL(
CFSMailBox& aMailBox, const TDesC& aQuery, RBuf& aPhoneNumber )
@@ -1653,8 +1554,6 @@
FUNC_LOG;
iContactObjects.ResetAndDestroy();
iState = EContactHandlerIdle;
- delete iCurrentLink;
- iCurrentLink = NULL;
delete iLinksSet;
iLinksSet = NULL;
delete iLinkOperation;
@@ -1967,7 +1866,7 @@
iHandlerObserver = NULL;
}
-// Call observer's MFSEmailUiContactHandlerObserver::OperationErrorL( TContactHandlerCmd aCmd, TInt aError )
+// <cmail> call observer's MFSEmailUiContactHandlerObserver::OperationErrorL( TContactHandlerCmd aCmd, TInt aError )
void CFSEmailUiContactHandler::ObserverOperationErrorL( TContactHandlerCmd aCmd, TInt aErrorCode )
{
if( ( iHandlerObserver ) && ( KErrNone != aErrorCode ) )
--- a/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -1794,7 +1794,7 @@
iCurrentSortCriteria.iOrder == EFSMailAscending ?
iSortIconArray[ ESortListSenderDescIcon ] :
iSortIconArray[ ESortListSenderAscIcon ] :
- iSortIconArray[ ESortListSenderAscIcon ];
+ iSortIconArray[ ESortListSenderDescIcon ];
itemId = AppendItemToListFromResourceL( R_FREESTYLE_EMAIL_UI_SORT_BY_RECIPIENT, KFsTreeRootID, icon, EFalse );
iModel->AppendL( itemId, EFSMailSortByRecipient );
}
@@ -1806,7 +1806,7 @@
iCurrentSortCriteria.iOrder == EFSMailAscending ?
iSortIconArray[ ESortListSenderDescIcon ] :
iSortIconArray[ ESortListSenderAscIcon ] :
- iSortIconArray[ ESortListSenderAscIcon ];
+ iSortIconArray[ ESortListSenderDescIcon ];
itemId = AppendItemToListFromResourceL( R_FREESTYLE_EMAIL_UI_SORT_BY_SENDER, KFsTreeRootID, icon, EFalse );
iModel->AppendL( itemId, EFSMailSortBySender );
}
@@ -1817,7 +1817,7 @@
iCurrentSortCriteria.iOrder == EFSMailAscending ?
iSortIconArray[ ESortListSubjectDescIcon ] :
iSortIconArray[ ESortListSubjectAscIcon ] :
- iSortIconArray[ ESortListSubjectAscIcon ];
+ iSortIconArray[ ESortListSubjectDescIcon ];
itemId = AppendItemToListFromResourceL( R_FREESTYLE_EMAIL_UI_SORT_BY_SUBJECT, KFsTreeRootID, icon, EFalse );
iModel->AppendL( itemId, EFSMailSortBySubject );
@@ -1851,7 +1851,7 @@
iCurrentSortCriteria.iOrder == EFSMailAscending ?
iSortIconArray[ ESortListUnreadDescIcon ] :
iSortIconArray[ ESortListUnreadAscIcon ] :
- iSortIconArray[ ESortListUnreadAscIcon ];
+ iSortIconArray[ ESortListUnreadDescIcon ];
itemId = AppendItemToListFromResourceL( R_FREESTYLE_EMAIL_UI_SORT_BY_UNREAD, KFsTreeRootID, icon, EFalse );
iModel->AppendL( itemId, EFSMailSortByUnread );
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -176,9 +176,9 @@
CEUiHtmlViewerSettings* CEUiHtmlViewerSettings::NewL( MObserver& aObserver )
{
CEUiHtmlViewerSettings* self = new (ELeave) CEUiHtmlViewerSettings(aObserver);
- CleanupStack::PushL( self );
+ CleanupStack::PushL(self);
self->ConstructL();
- CleanupStack::Pop( self );
+ CleanupStack::Pop(); // self
return self;
}
@@ -216,12 +216,11 @@
//
void CEUiHtmlViewerSettings::AddKeyListenerL( TUint32 aKey )
{
- CEUiHtmlViewerSettingsKeyListener* listener =
- new (ELeave) CEUiHtmlViewerSettingsKeyListener( *this, aKey );
- CleanupStack::PushL( listener );
- iKeyListeners.AppendL( listener );
- CleanupStack::Pop( listener );
- UpdateValue( aKey );
+ CEUiHtmlViewerSettingsKeyListener* listener = new (ELeave) CEUiHtmlViewerSettingsKeyListener(*this, aKey);
+ CleanupStack::PushL(listener);
+ iKeyListeners.AppendL(listener);
+ CleanupStack::Pop(); // listener
+ UpdateValue(aKey);
}
// ---------------------------------------------------------------------------
@@ -447,9 +446,8 @@
if ( iBrCtlInterface )
{
- SetZoomLevelL(100);
- iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsAutoLoadImages, iViewerSettings->AutoLoadImages() );
- return;
+ delete iBrCtlInterface;
+ iBrCtlInterface = NULL;
}
TUint brCtlCapabilities = TBrCtlDefs::ECapabilityClientResolveEmbeddedURL |
@@ -504,6 +502,9 @@
#endif
+ SetRect( iView.ContainerRect() );
+ CreateBrowserControlInterfaceL();
+
iEventHandler = CFreestyleMessageHeaderURLEventHandler::NewL( iAppUi, iView );
TRect nextButtonRect = OverlayButtonRect( EFalse );
@@ -521,9 +522,6 @@
iTouchFeedBack = MTouchFeedback::Instance();
iTouchFeedBack->EnableFeedbackForControl(this, ETrue);
- CreateBrowserControlInterfaceL();
- SetRect( iView.ContainerRect() );
-
ActivateL();
}
@@ -701,8 +699,7 @@
// Reset content
// ---------------------------------------------------------------------------
//
-void CFsEmailUiHtmlViewerContainer::ResetContent( TBool aDisconnect,
- TBool aClearFlags )
+void CFsEmailUiHtmlViewerContainer::ResetContent(const TBool aDisconnect)
{
FUNC_LOG;
if ( iBrCtlInterface )
@@ -721,10 +718,7 @@
iLinkContents.Reset();
iMessageParts.Reset();
iMessage = NULL;
- if ( aClearFlags )
- {
- iFlags.ClearAll();
- }
+ iFlags.ClearAll();
iScrollPosition = 0;
}
@@ -1868,6 +1862,7 @@
if ( iStatusIndicator )
{
iStatusIndicator->MakeVisible( EFalse );
+ iStatusIndicator->HideIndicator();
}
}
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -38,8 +38,6 @@
#include <brctlinterface.h>
#include <csxhelp/cmail.hlp.hrh>
#include <baclipb.h> // for clipboard copy
-#include <fsmailserver.rsg>
-#include <aknnotewrappers.h>
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
#include <txtclipboard.h>
@@ -74,8 +72,7 @@
CAlfControlGroup& aControlGroup )
{
FUNC_LOG;
- CFsEmailUiHtmlViewerView* self = new ( ELeave ) CFsEmailUiHtmlViewerView(
- aEnv, aAppUi, aControlGroup );
+ CFsEmailUiHtmlViewerView* self = new ( ELeave ) CFsEmailUiHtmlViewerView( aEnv, aAppUi, aControlGroup );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
@@ -351,18 +348,7 @@
break;
case EFsEmailUiCmdActionsMoveMessage:
{
- TBool asyncFetchStatus = GetAsyncFetchStatus();
- if ( asyncFetchStatus )
- {
- HBufC* noteText = StringLoader::LoadLC( R_FS_MSERVER_TEXT_SERVER_CURRENTLY_BUSY_TRY_AGAIN );
- CAknInformationNote* note = new (ELeave) CAknInformationNote();
- note->ExecuteLD( *noteText );
- CleanupStack::PopAndDestroy( noteText );
- }
- else
- {
- OpenFolderListForMessageMovingL();
- }
+ OpenFolderListForMessageMovingL();
}
break;
case EFsEmailUiCmdActionsFlag:
@@ -471,18 +457,10 @@
// ---------------------------------------------------------------------------
// hide or show Container ( used for activation of the view )
//
-void CFsEmailUiHtmlViewerView::FadeOut( TBool aDirectionOut )
+void CFsEmailUiHtmlViewerView::FadeOut(TBool aDirectionOut )
{
FUNC_LOG;
- if ( !iContainer )
- {
- TFsEmailUiUtility::ShowErrorNoteL(
- R_FREESTYLE_EMAIL_ERROR_GENERAL_UNABLE_TO_COMPLETE, ETrue );
- }
- else
- {
- iContainer->MakeVisible( !aDirectionOut );
- }
+ iContainer->MakeVisible(!aDirectionOut);
}
@@ -656,10 +634,6 @@
iMessage = iOpenMessages->Head();
iCreateNewMsgFromEmbeddedMsg = EFalse;
- if (iMessage && !iMailBox)
- {
- iMailBox = iAppUi.GetMailClient()->GetMailBoxByUidL( iMessage->GetMailBoxId() );
- }
delete iAttachmentsListModel;
iAttachmentsListModel = NULL;
iAttachmentsListModel = CFSEmailUiAttachmentsListModel::NewL( iAppUi, *this );
@@ -1072,6 +1046,12 @@
}
}
+void CFsEmailUiHtmlViewerView::HandleStatusPaneSizeChange()
+ {
+ CFsEmailUiViewBase::HandleStatusPaneSizeChange();
+
+ HandleViewRectChange();
+ }
void CFsEmailUiHtmlViewerView::HandleViewRectChange()
{
@@ -2214,29 +2194,30 @@
}
}
}
-
- if ( iContainer )
+ if(iContainer)
{
iContainer->HideDownloadStatus();
}
-
if ( reloadContent )
{
- if ( iContainer )
+
+ if ( iContainer )
{
- iContainer->ResetContent( EFalse, EFalse );
- if ( iMessage )
+ iContainer->ResetContent();
+ if( iMessage )
{
- LoadContentFromMailMessageL( iMessage , EFalse );
+ LoadContentFromMailMessageL( iMessage , EFalse);
SetMskL();
}
}
}
- if ( iAsyncProcessComplete && iWaitDialog && iDialogNotDismissed )
+
+ if(iAsyncProcessComplete && iWaitDialog && iDialogNotDismissed)
{
iWaitDialog->ProcessFinishedL(); // deletes the dialog
}
+
}
// -----------------------------------------------------------------------------
--- a/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -295,12 +295,12 @@
void CFSEmailUiLauncherGridVisualiser::ResizeItemIcon( TBool aReduce )
{
TInt selectedItem( iCurrentLevel.iSelected );
+
TInt count = iCurrentLevel.iItemVisualData.Count();
if ( selectedItem < 0 || selectedItem >= count )
{
return; // incorrect index
}
-
if( selectedItem >= 0 )
{
TReal transition( KScaleNotSelected );
@@ -1233,7 +1233,6 @@
{
// Hide focus always when dragging.
HandleButtonReleaseEvent();
-
iIsDragging = ETrue;
iPhysics->RegisterPanningPosition( delta );
@@ -2785,6 +2784,7 @@
{
return; // incorrect index
}
+
// Get the ID of the mailbox in case the user wants to delete it.
iMailboxToDelete = iCurrentLevel.iItems[aItemId].iMailBoxId;
--- a/emailuis/emailui/src/FreestyleEmailUiLayoutHandler.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiLayoutHandler.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -1101,27 +1101,6 @@
}
// -----------------------------------------------------------------------------
-// CFSEmailUiLayoutHandler::SearchMarkIconSize
-// -----------------------------------------------------------------------------
-TInt CFSEmailUiLayoutHandler::SearchMarkIconSize() const
- {
- FUNC_LOG;
- TRect rect;
- TRect iconRowParent(0,0,0,0);
- TInt size;
-
- CFsLayoutManager::LayoutMetricsRect(
- iconRowParent,
- CFsLayoutManager::EFsLmListSingleDycRowPaneG1,
- rect,
- 2);
-
- size = rect.iBr.iY - rect.iTl.iY;
-
- return size;
- }
-
-// -----------------------------------------------------------------------------
// CFSEmailUiLayoutHandler::statusPaneIconSize
// -----------------------------------------------------------------------------
TSize CFSEmailUiLayoutHandler::statusPaneIconSize() const
--- a/emailuis/emailui/src/FreestyleEmailUiMailListModel.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiMailListModel.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -593,3 +593,19 @@
}
}
}
+TBool CFSEmailUiMailListModel::ContainsItem( const CFSMailMessage& aMessage ) const
+ {
+ FUNC_LOG;
+
+ TBool found( EFalse );
+ for (TInt i = iItems.Count() - 1; i >= 0; i--)
+ {
+ if (aMessage.GetMessageId() == iItems[i]->MessagePtr().GetMessageId())
+ {
+ found = ETrue;
+ break;
+ }
+ }
+ return found;
+ }
+
--- a/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -574,8 +574,7 @@
iNewEmailText = StringLoader::LoadL( R_COMMAND_AREA_NEW_EMAIL );
// Set menu, mark and background icons
- iMailTreeListVisualizer->SetMarkOnIcon( iAppUi.FsTextureManager()->TextureByIndex( EListControlMarkOnIcon ) );
- iMailTreeListVisualizer->SetMarkOffIcon( iAppUi.FsTextureManager()->TextureByIndex( EListControlMarkOffIcon ) );
+ iMailTreeListVisualizer->SetMarkIcon( iAppUi.FsTextureManager()->TextureByIndex( EListControlMarkIcon ) );
iMailTreeListVisualizer->SetMenuIcon( iAppUi.FsTextureManager()->TextureByIndex( EListControlMenuIcon ) );
iMailList->AddObserverL( *this );
iMailList->AddObserverL( *iTouchManager );
@@ -758,10 +757,27 @@
void CFSEmailUiMailListVisualiser::UpdateProgressL(TFsTreeItemId& aParentId, RPointerArray<CFSMailMessage>& aMessages)
{
FUNC_LOG;
-
const TInt itemsInModel(iModel->Count());
- CreateModelItemsL(aMessages);
- RefreshListItemsL(aParentId, itemsInModel, iModel->Count());
+
+ // cleanup items that are already found in model
+ for (TInt i = 0; i < aMessages.Count(); )
+ {
+ if ( iModel->ContainsItem( *aMessages[i] ) )
+ {
+ delete aMessages[i];
+ aMessages.Remove(i);
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ if (aMessages.Count() > 0)
+ {
+ CreateModelItemsL(aMessages);
+ RefreshListItemsL(aParentId, itemsInModel, iModel->Count());
+ }
}
// ---------------------------------------------------------------------------
@@ -777,7 +793,7 @@
sorting = ETrue;
}
DeleteSortWaitNote();
-
+
if ( !iModel->Count() )
{
iFocusedControl = EControlBarComponent;
@@ -833,7 +849,7 @@
void CFSEmailUiMailListVisualiser::SortMailListModelAsyncL()
{
FUNC_LOG;
-
+
DeleteSortWaitNote();
TBool ret = UpdateMailListModelAsyncL( KCMsgBlockSort );
@@ -1278,10 +1294,10 @@
case ESortRequested:
{
if( !iNewMailTimer->IsActive() && iNewMailTimer->iStatus != KErrInUse )
- {
+ {
// Size sorting does not use nodes, so disable those, otherwise check from CR
iNodesInUse = iAppUi.GetCRHandler()->TitleDividers();
- SetSortButtonIconL();
+ SetSortButtonTextAndIconL();
iFocusedControl = EControlBarComponent;
iMailList->SetFocusedL( EFalse );
@@ -1328,7 +1344,7 @@
case ESortCompleted:
{
if( !iNewMailTimer->IsActive() )
- {
+ {
// refresh the whole mail list if list was sorted
if(iSortState != ESortStartError )
{
@@ -1361,12 +1377,6 @@
if( aTriggeredTimer == iNewMailTimer )
{
- if ( ! iThisViewActive ) // don't proceed if view is not active
- {
- iNewMailTimer->Stop();
- return;
- }
-
TInt count = Min( KNewMailMaxBatch, iNewMailIds.Count() );
CFSMailClient* mailClient = iAppUi.GetMailClient();
@@ -1387,18 +1397,12 @@
return; // leave method
}
- CFSMailMessage* msgPtr(NULL);
- TRAPD( err, msgPtr = mailClient->GetMessageByUidL( iAppUi.GetActiveMailboxId(),
+ CFSMailMessage* msgPtr = mailClient->GetMessageByUidL( iAppUi.GetActiveMailboxId(),
iMailFolder->GetFolderId(),
iNewMailIds[ 0 ],
- EFSMsgDataEnvelope ) );
- if ( KErrNone != err )
- {
- iNewMailTimer->iStatus = KErrNone;
- User::Leave(err);
- }
+ EFSMsgDataEnvelope );
if ( msgPtr != NULL )
- {
+ {
__ASSERT_DEBUG( FolderId() == msgPtr->GetFolderId(), User::Invariant() );
CleanupStack::PushL( msgPtr );
//first item - show scrollbar
@@ -1432,6 +1436,14 @@
void CFSEmailUiMailListVisualiser::InsertNewMessageL( CFSMailMessage* aNewMessage, const TBool aAllowRefresh )
{
FUNC_LOG;
+
+ // If item is already in model, just delete the pointer and return
+ if ( iModel->ContainsItem( *aNewMessage ) )
+ {
+ delete aNewMessage;
+ return;
+ }
+
// Use simple heuristic rule: if the first item is highlighted before the new
// item is added, the highlight is forced to remain on the (possibly new) first
// item. Otherwise the highligh stays on the same item as before.
@@ -1656,24 +1668,21 @@
}
iShowReplyAll = EFalse;
- TBool bDoFirstStartCalled( EFalse );
- if ( !iFirstStartCompleted )
- {
- DoFirstStartL();
- bDoFirstStartCalled = ETrue;
- }
+
+ if ( !iFirstStartCompleted )
+ {
+ DoFirstStartL();
+ }
// set when editor was called so reset is needed i.e. here (Called by DoActivate)
- iMailOpened = EFalse;
+ iMailOpened = EFalse;
// Make sure that pending popup is not displayd
- if ( iAppUi.FolderList().IsPopupShown() )
+ if ( iAppUi.FolderList().IsPopupShown() )
{
iAppUi.FolderList().HidePopupL();
}
DisableMailList( EFalse );
- UpdateFolderAndMarkingModeTextsL();
-
// inform baseView if view entered with forward navigation
TBool forwardNavigation = EFalse;
if ( aCustomMessageId != KStartListReturnToPreviousFolder &&
@@ -1694,20 +1703,18 @@
SetMailListLayoutAnchors();
//if the view is already active don't update the icons so they won't "blink"
//when the view is activated.
- if( !iThisViewActive && !iMarkingMode )
+ if(!iThisViewActive)
{
-
ScaleControlBarL();
- if ( !bDoFirstStartCalled ) // Don't set the icon if set by DoFirstStart()
- {
- // Set icons on toolbar
- iAppUi.FsTextureManager()->ClearTextureByIndex( EListControlBarMailboxDefaultIcon );
- iFolderListButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( EListControlBarMailboxDefaultIcon ) );
- iAppUi.FsTextureManager()->ClearTextureByIndex( EListTextureCreateNewMessageIcon );
- iNewEmailButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( EListTextureCreateNewMessageIcon ) );
- iAppUi.FsTextureManager()->ClearTextureByIndex( GetSortButtonTextureIndex() );
- iSortButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( GetSortButtonTextureIndex() ) );
- }
+
+ // Set icons on toolbar
+ iAppUi.FsTextureManager()->ClearTextureByIndex( EListControlBarMailboxDefaultIcon );
+ iFolderListButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( EListControlBarMailboxDefaultIcon ) );
+ iAppUi.FsTextureManager()->ClearTextureByIndex( EListTextureCreateNewMessageIcon );
+ iNewEmailButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( EListTextureCreateNewMessageIcon ) );
+ iAppUi.FsTextureManager()->ClearTextureByIndex( GetSortButtonTextureIndex() );
+ iSortButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( GetSortButtonTextureIndex() ) );
+
SetListAndCtrlBarFocusL();
}
@@ -1876,7 +1883,7 @@
// Set initial sort criteria when folder is changed
iCurrentSortCriteria.iField = EFSMailSortByDate;
iCurrentSortCriteria.iOrder = EFSMailDescending;
- SetSortButtonIconL();
+ SetSortButtonTextAndIconL();
SafeDelete(iMailFolder);
TRAP_IGNORE( iMailFolder = iAppUi.GetMailClient()->GetFolderByUidL(
@@ -1891,6 +1898,9 @@
TFSMailMsgId inboxId = iAppUi.GetActiveMailbox()->GetStandardFolderId( EFSInbox );
iMailFolder = iAppUi.GetMailClient()->GetFolderByUidL( activationData.iMailBoxId, inboxId );
}
+ HBufC* newFolderName = CreateFolderNameLC( iMailFolder );
+ iFolderListButton->SetTextL( *newFolderName );
+ CleanupStack::PopAndDestroy( newFolderName );
iMailList->SetFocusedItemL( KFsTreeNoneID );
refreshState = EFullRefreshNeeded;
}
@@ -1991,17 +2001,11 @@
SetControlBarFocusedL();
iControlBarControl->MakeSelectorVisible( iAppUi.IsFocusShown() );
}
+ UpdateButtonTextsL();
FocusVisibilityChange( iAppUi.IsFocusShown() );
iAppUi.ShowTitlePaneConnectionStatus();
-
- // if timer stoped when quitting view then restart if more messages available
- if ( iNewMailIds.Count() && ( ! iNewMailTimer->IsActive() ) && iSortState == ESortNone )
- {
- iNewMailTimer->Start( KNewMailTimerDelay );
- }
-
TIMESTAMP( "Message list view opened" );
- } // CFSEmailUiMailListVisualiser::ChildDoActivateL
+ }
// ---------------------------------------------------------------------------
// Sets status bar layout
@@ -2043,7 +2047,6 @@
iMailList->SetFocusedL( EFalse );
} );
iMailTreeListVisualizer->NotifyControlVisibilityChange( EFalse );
- TRAP_IGNORE( UpdateFolderAndMarkingModeTextsL() );
}
iThisViewActive = EFalse;
}
@@ -2220,21 +2223,7 @@
{
aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsEmptyDeleted, ETrue );
}
-
- CConnectionStatusQueryExtension::TConnectionStatus connetionStatus;
- iAppUi.GetConnectionStatusL( connetionStatus );
- if ( connetionStatus == CConnectionStatusQueryExtension::ESynchronizing )
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, EFalse );
- }
- else
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, EFalse );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
- }
- }
-
+ }
// MAIN MENU ***************************************************************************
@@ -2540,11 +2529,10 @@
//
void CFSEmailUiMailListVisualiser::ExitMarkingModeL()
{
- FUNC_LOG;
- iMarkingMode = EFalse;
+ FUNC_LOG;
// Hide marking mode text on the place of drop down menus
- UpdateFolderAndMarkingModeTextsL();
- iMailList->SetMarkingModeL( EFalse );
+ RemoveMarkingModeTitleTextL();
+ iMarkingMode = EFalse;
UnmarkAllItemsL();
// Change softkeys back to normal
SetViewSoftkeysL( R_FREESTYLE_EMAUIL_UI_SK_OPTIONS_BACK );
@@ -2552,16 +2540,14 @@
CEikMenuBar* menu = iAppUi.CurrentActiveView()->MenuBar();
menu->StopDisplayingMenuBar();
menu->SetMenuTitleResourceId(R_FSEMAILUI_MAILLIST_MENUBAR);
+ // Change background back to normal
+ DisplayMarkingModeBgL( EFalse );
// Display drop down menu buttons
iControlBarControl->SetRectL( iAppUi.LayoutHandler()->GetControlBarRect() );
iNewEmailButton->SetDimmed( EFalse );
iFolderListButton->SetDimmed( EFalse );
iSortButton->SetDimmed( EFalse );
ScaleControlBarL();
-
- iMailTreeListVisualizer->HideList();
- SetMailListLayoutAnchors();
- iMailTreeListVisualizer->ShowListL();
}
// ---------------------------------------------------------------------------
@@ -2573,7 +2559,6 @@
{
FUNC_LOG;
iMarkingMode = ETrue;
- iMailList->SetMarkingModeL( ETrue );
iListMarkItemsState = ETrue; // shift-scrolling does marking after one item is marked
HandleCommandL( EFsEmailUiCmdActionsExpandAll );
// Change softkeys for marking mode
@@ -2582,17 +2567,19 @@
CEikMenuBar* menu = iAppUi.CurrentActiveView()->MenuBar();
menu->StopDisplayingMenuBar();
menu->SetMenuTitleResourceId(R_FSEMAILUI_MAILLIST_MENUBAR_MARKING_MODE);
+ // Change background to marking mode
+ DisplayMarkingModeBgL( ETrue );
// Hide drop down menu buttons
iNewEmailButton->SetDimmed();
iFolderListButton->SetDimmed();
iSortButton->SetDimmed();
- TRect rect(0,0,0,0);
- iControlBarControl->SetRectL( rect );
- UpdateFolderAndMarkingModeTextsL();
-
- iMailTreeListVisualizer->HideList();
- SetMailListLayoutAnchors();
- iMailTreeListVisualizer->ShowListL();
+ if( !Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ TRect rect(0,0,0,0);
+ iControlBarControl->SetRectL( rect );
+ // Display marking mode text on the place of drop down menus
+ DisplayMarkingModeTitleTextL();
+ }
}
// ---------------------------------------------------------------------------
@@ -2606,21 +2593,29 @@
if ( iMarkingMode )
{
// Hide drop down menu buttons
- TRect rect(0,0,0,0);
- iControlBarControl->SetRectL( rect );
- iNewEmailButton->SetDimmed();
- iFolderListButton->SetDimmed();
- iSortButton->SetDimmed();
- UpdateFolderAndMarkingModeTextsL();
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CFSEmailUiMailListVisualiser::DisplayMarkingModeTextOnButtonsL()
+ if( !Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ TRect rect(0,0,0,0);
+ iControlBarControl->SetRectL( rect );
+ DisplayMarkingModeTitleTextL();
+ }
+ else
+ {
+ iControlBarControl->SetRectL( iAppUi.LayoutHandler()->GetControlBarRect() );
+ iNewEmailButton->SetDimmed();
+ iFolderListButton->SetDimmed();
+ iSortButton->SetDimmed();
+ RemoveMarkingModeTitleTextL();
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiMailListVisualiser::DisplayMarkingModeTitleTextL()
{
FUNC_LOG;
if (!iMarkingModeTextVisual)
@@ -2658,15 +2653,15 @@
{
iMarkingModeTextVisual->SetTextL( KNullDesC );
}
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CFSEmailUiMailListVisualiser::RemoveMarkingModeTextOnButtonsL()
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiMailListVisualiser::RemoveMarkingModeTitleTextL()
{
FUNC_LOG;
if (iMarkingModeTextVisual)
@@ -2686,6 +2681,26 @@
//
// ---------------------------------------------------------------------------
//
+void CFSEmailUiMailListVisualiser::DisplayMarkingModeBgL( TBool aDisplay )
+ {
+ FUNC_LOG;
+ if (aDisplay)
+ {
+ CAlfBrush* brush = iAppUi.FsTextureManager()->NewMailListMarkingModeBgBrushLC();
+ iMailTreeListVisualizer->SetBackgroundBrushL( brush );
+ CleanupStack::Pop( brush );
+ }
+ else
+ {
+ iMailTreeListVisualizer->ClearBackground();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+//
+// ---------------------------------------------------------------------------
+//
void CFSEmailUiMailListVisualiser::RefreshL( TFSMailMsgId* aFocusToMessage )
{
FUNC_LOG;
@@ -3353,6 +3368,7 @@
if ( aType == EScreenLayoutChanged )
{
SetStatusBarLayout();
+ UpdateButtonTextsL();
}
if ( aType == ESkinChanged )
@@ -3389,8 +3405,7 @@
if (iMarkingMode)
{
RefreshMarkingModeL();
- }
- UpdateFolderAndMarkingModeTextsL();
+ }
}
// ---------------------------------------------------------------------------
@@ -3407,6 +3422,36 @@
{
UpdateThemeL();
}
+ else if ( aType == EScreenLayoutChanged )
+ {
+ UpdateButtonTextsL();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Update texts for command area buttons
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiMailListVisualiser::UpdateButtonTextsL()
+ {
+ if ( !Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ // No texts in portrait mode
+ iNewEmailButton->SetTextL( KNullDesC() );
+ iSortButton->SetTextL( KNullDesC() );
+ }
+ else
+ {
+ // Set button text if necessary
+ HBufC* buttonText = GetSortButtonTextLC();
+ if ( buttonText )
+ {
+ iSortButton->SetTextL( *buttonText );
+ CleanupStack::PopAndDestroy( buttonText );
+ }
+
+ iNewEmailButton->SetTextL( *iNewEmailText );
+ }
}
// ---------------------------------------------------------------------------
@@ -3917,8 +3962,7 @@
aCommand == EFsEmailUiCmdActionsMoveMessage ||
aCommand == EFsEmailUiCmdMarkingModeFromPopUp ||
aCommand == EFsEmailUiCmdActionsCollapseAll ||
- aCommand == EFsEmailUiCmdActionsExpandAll ||
- aCommand == EFsEmailUiCmdActionsFlag ) )
+ aCommand == EFsEmailUiCmdActionsExpandAll ) )
{
// We end up here if the user selects an option from the pop up menu
// or exits the menu by tapping outside of it's area.
@@ -4384,14 +4428,6 @@
}
}
break;
- case EFsEmailUiCmdCancelSync:
- {
- if ( GetLatestSyncState() )
- {
- iAppUi.StopActiveMailBoxSyncL();
- }
- }
- break;
case EFsEmailUiCmdGoOffline:
{
iAppUi.GetActiveMailbox()->GoOfflineL();
@@ -4615,6 +4651,7 @@
if ( aDestinationFolderId.IsNullId() )
{
// Activate folder selection view and handle moving after callback gets destination
+ RemoveMarkingModeTitleTextL();
iMoveToFolderOngoing = ETrue;
TFolderListActivationData folderListData;
folderListData.iCallback = this;
@@ -5887,10 +5924,11 @@
{
horizontalAlign = EAlfAlignHRight;
}
+
// Icons and sort button text
iFolderListButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( EListControlBarMailboxDefaultIcon ) );
iNewEmailButton->SetIconL( iAppUi.FsTextureManager()->TextureByIndex( EListTextureCreateNewMessageIcon ) );
- SetSortButtonIconL();
+ SetSortButtonTextAndIconL();
iNewEmailButton->SetElemAlignL(
ECBElemIconA,
@@ -5911,14 +5949,10 @@
EAlfAlignVCenter );
// Show the buttons
- if( iThisViewActive || iMarkingMode )
- {
- iNewEmailButton->ShowButtonL();
- iFolderListButton->ShowButtonL();
- iSortButton->ShowButtonL();
- }
- // else buttons shown later in ChildDoActivete() by ScaleControlBarL()
- }
+ iNewEmailButton->ShowButtonL();
+ iFolderListButton->ShowButtonL();
+ iSortButton->ShowButtonL();
+ }
// ---------------------------------------------------------------------------
//
@@ -5980,9 +6014,27 @@
//
// ---------------------------------------------------------------------------
//
-void CFSEmailUiMailListVisualiser::SetSortButtonIconL()
+void CFSEmailUiMailListVisualiser::SetSortButtonTextAndIconL()
{
FUNC_LOG;
+
+ // Set button text if necessary
+ HBufC* buttonText = GetSortButtonTextLC();
+
+ if ( !Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ if ( buttonText )
+ {
+ buttonText->Des().Zero();
+ }
+ }
+
+ if ( buttonText )
+ {
+ iSortButton->SetTextL( *buttonText );
+ }
+ CleanupStack::PopAndDestroy( buttonText );
+
iSortButton->SetIconL(
iAppUi.FsTextureManager()->TextureByIndex( GetSortButtonTextureIndex() ),
ECBElemIconA );
@@ -6000,52 +6052,59 @@
TFSEmailUiTextures textureIndex( ETextureFirst );
switch ( iCurrentSortCriteria.iField )
- {
- case EFSMailSortBySubject:
- {
- textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
- ESortListSubjectAscTexture : ESortListSubjectDescTexture;
- }
- break;
- case EFSMailSortByAttachment:
- {
- textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
- ESortListAttachmentAscTexture : ESortListAttachmentDescTexture;
- }
- break;
- case EFSMailSortByFlagStatus:
- {
- textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
- ESortListFollowAscTexture : ESortListFollowDescTexture;
- }
- break;
- case EFSMailSortByRecipient:
- case EFSMailSortBySender:
- {
- textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
- ESortListSenderAscTexture : ESortListSenderDescTexture;
- }
- break;
- case EFSMailSortByPriority:
- {
- textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
- ESortListPriorityAscTexture : ESortListPriorityDescTexture;
- }
- break;
- case EFSMailSortByUnread:
- {
- textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
- ESortListUnreadAscTexture : ESortListUnreadDescTexture;
- }
- break;
- case EFSMailSortByDate:
- default:
- {
- textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
- ESortListDateAscTexture : ESortListDateDescTexture;
- }
- break;
- }
+ {
+ case EFSMailSortBySubject:
+ {
+ textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
+ ESortListSubjectDescTexture :
+ ESortListSubjectAscTexture;
+ }
+ break;
+ case EFSMailSortByAttachment:
+ {
+ textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
+ ESortListAttachmentDescTexture :
+ ESortListAttachmentAscTexture;
+ }
+ break;
+ case EFSMailSortByFlagStatus:
+ {
+ textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
+ ESortListFollowDescTexture :
+ ESortListFollowAscTexture;
+ }
+ break;
+ case EFSMailSortByRecipient:
+ case EFSMailSortBySender:
+ {
+ textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
+ ESortListSenderDescTexture :
+ ESortListSenderAscTexture;
+ }
+ break;
+ case EFSMailSortByPriority:
+ {
+ textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
+ ESortListPriorityDescTexture :
+ ESortListPriorityAscTexture;
+ }
+ break;
+ case EFSMailSortByUnread:
+ {
+ textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
+ ESortListUnreadDescTexture :
+ ESortListUnreadAscTexture;
+ }
+ break;
+ case EFSMailSortByDate:
+ default:
+ {
+ textureIndex = iCurrentSortCriteria.iOrder == EFSMailAscending ?
+ ESortListDateDescTexture :
+ ESortListDateAscTexture;
+ }
+ break;
+ }
return textureIndex;
}
@@ -6137,6 +6196,7 @@
EAlfAnchorMetricRelativeToSize, EAlfAnchorMetricAbsolute,
TAlfTimedPoint(1, iAppUi.LayoutHandler()->ControlBarHeight() ));
+ // <cmail> Platform layout changes
TRect listRect = iAppUi.LayoutHandler()->GetListRect();
// Set anchors so that list leaves space for control bar
if( Layout_Meta_Data::IsMirrored() )
@@ -6151,23 +6211,15 @@
EAlfAnchorOriginLeft, EAlfAnchorOriginTop,
EAlfAnchorMetricAbsolute, EAlfAnchorMetricAbsolute,
TAlfTimedPoint(listRect.iTl.iX, listRect.iTl.iY));
-
- if (iMarkingMode && Layout_Meta_Data::IsLandscapeOrientation())
- {
- iScreenAnchorLayout->SetAnchor(EAlfAnchorBottomRight, 1,
- EAlfAnchorOriginLeft, EAlfAnchorOriginTop,
- EAlfAnchorMetricRelativeToSize, EAlfAnchorMetricAbsolute,
- TAlfTimedPoint(1, listRect.iBr.iY));
- }
- else
- {
- iScreenAnchorLayout->SetAnchor(EAlfAnchorBottomRight, 1,
- EAlfAnchorOriginLeft, EAlfAnchorOriginTop,
- EAlfAnchorMetricAbsolute, EAlfAnchorMetricAbsolute,
- TAlfTimedPoint(listRect.iBr.iX, listRect.iBr.iY));
- }
+ iScreenAnchorLayout->SetAnchor(EAlfAnchorBottomRight, 1,
+ EAlfAnchorOriginLeft, EAlfAnchorOriginTop,
+ EAlfAnchorMetricAbsolute, EAlfAnchorMetricAbsolute,
+ TAlfTimedPoint(listRect.iBr.iX, listRect.iBr.iY));
+ // </cmail> Platform layout changes
// Set anchors for connection icon
+
+ // <cmail> Platform layout changes
TRect connectionIconRect( iAppUi.LayoutHandler()->GetControlBarConnectionIconRect() );
const TPoint& tl( connectionIconRect.iTl );
iScreenAnchorLayout->SetAnchor(EAlfAnchorTopLeft, 2,
@@ -6179,6 +6231,7 @@
EAlfAnchorOriginLeft, EAlfAnchorOriginTop,
EAlfAnchorMetricAbsolute, EAlfAnchorMetricAbsolute,
TAlfTimedPoint( br.iX, br.iY ));
+ // </cmail> Platform layout changes
iScreenAnchorLayout->UpdateChildrenLayout();
}
@@ -6317,7 +6370,7 @@
modelItem->MessagePtr().GetMessageId() ,
EFSMsgDataEnvelope ) );
if( aIndex < iTreeItemArray.Count() )
- {
+ {
if ( confirmedMsgPtr )
{
const SMailListItem& item = iTreeItemArray[aIndex];
@@ -6700,21 +6753,13 @@
TFSMailMsgId mailBox = iAppUi.GetActiveMailboxId();
RArray<TFSMailMsgId> msgIds;
CleanupClosePushL( msgIds );
- for ( TInt i = aEntries.Count() - 1; i >= 0; i-- )
+ for ( TInt i = 0; i < aEntries.Count(); i++ )
{
msgIds.AppendL( MsgIdFromListId( aEntries[i] ) );
}
-
- // Clear the focused item to avoid repeated selection of a new focused
- // item, unnecessary scrolling of the viewport, etc.
- iMailTreeListVisualizer->SetFocusedItemL( KFsTreeNoneID );
-
- iMailList->BeginUpdate();
iAppUi.GetMailClient()->DeleteMessagesByUidL( mailBox, folderId, msgIds );
// Remove from mail list if not already removed by mailbox events
RemoveMsgItemsFromListIfFoundL( msgIds );
- iMailList->EndUpdateL();
-
CleanupStack::PopAndDestroy(); // msgIds.Close()
}
@@ -7080,6 +7125,10 @@
switch ( aResponse )
{
case EFSEmailUiCtrlBarResponseCancel:
+ if ( iMarkingMode )
+ {
+ DisplayMarkingModeTitleTextL();
+ }
iMarkingModeWaitingToExit = EFalse;
SetMskL();
return;
@@ -7123,13 +7172,17 @@
case EFSEmailUiCtrlBarResponseCancel:
iMarkingModeWaitingToExit = EFalse;
SetMskL();
+ // <cmail> Touch
//Set touchmanager back to active
DisableMailList(EFalse);
+ // </cmail>
return;
case EFSEmailUiCtrlBarResponseSelect:
SetMskL();
+ // <cmail> Touch
//Set touchmanager back to active
DisableMailList(EFalse);
+ // </cmail>
default:
break;
}
@@ -7148,14 +7201,17 @@
return;
}
- UpdateFolderAndMarkingModeTextsL();
+ // Set new text to folder button in control bar
+ HBufC* newFolderName = CreateFolderNameLC( iMailFolder );
+ iFolderListButton->SetTextL( *newFolderName );
+ CleanupStack::PopAndDestroy( newFolderName );
// Set initial sort criteria when folder has changed
iCurrentSortCriteria.iField = EFSMailSortByDate;
iCurrentSortCriteria.iOrder = EFSMailDescending;
// reload node state because in file sort mode this is disabled even when globally enabled
iNodesInUse = iAppUi.GetCRHandler()->TitleDividers();
- SetSortButtonIconL();
+ SetSortButtonTextAndIconL();
// Update the mail list contents
UpdateMailListModelL();
@@ -7189,10 +7245,12 @@
iCurrentSortCriteria.iOrder = EFSMailDescending;
// reload node state because in file sort mode this is disabled even when globally enabled
iNodesInUse = iAppUi.GetCRHandler()->TitleDividers();
- SetSortButtonIconL();
+ SetSortButtonTextAndIconL();
// Set folder name to the control bar button
- UpdateFolderAndMarkingModeTextsL();
+ HBufC* newFolderName = CreateFolderNameLC( iMailFolder );
+ iFolderListButton->SetTextL( *newFolderName );
+ CleanupStack::PopAndDestroy( newFolderName );
// Set mailbox name and icons
SetMailboxNameToStatusPaneL();
@@ -7288,7 +7346,7 @@
iCurrentSortCriteria.iField = aSortField;
iModel->SetSortCriteria(iCurrentSortCriteria);
- // rest of the code moved to TimerEventL ( iSortTimer part )
+ // rest of the code moved to TimerEventL ( iSortTimer part )
// used also in DoHandleControlBarOpenL to prevent SortList reopening
iSortState = ESortRequested;
iSortTimer->Start( KSortTimerDelay );
@@ -7688,7 +7746,9 @@
iMailFolder = iAppUi.GetMailClient()->GetFolderByUidL( aMailboxId, inboxId );
UpdateMailListModelL();
RefreshL();
- UpdateFolderAndMarkingModeTextsL();
+ HBufC* newFolderName = CreateFolderNameLC( iMailFolder );
+ iFolderListButton->SetTextL( *newFolderName );
+ CleanupStack::PopAndDestroy( newFolderName );
}
else
{
@@ -7743,7 +7803,9 @@
// Check that mailfolder fetching succeeded
if ( iMailFolder )
{
- UpdateFolderAndMarkingModeTextsL();
+ HBufC* newFolderName = CreateFolderNameLC( iMailFolder );
+ iFolderListButton->SetTextL( *newFolderName );
+ CleanupStack::PopAndDestroy( newFolderName );
}
}
}
@@ -8413,49 +8475,6 @@
return manualSync;
}
-
-void CFSEmailUiMailListVisualiser::UpdateFolderAndMarkingModeTextsL()
- {
- if ( iAppUi.CurrentActiveView()->Id() == MailListId )
- {
- HBufC* folder = CreateFolderNameLC( iMailFolder );
- if( Layout_Meta_Data::IsLandscapeOrientation() )
- {
- iFolderListButton->SetTextL( KNullDesC );
- if (iMarkingMode)
- {
- RemoveMarkingModeTextOnButtonsL();
- HBufC* txt = StringLoader::LoadLC( R_FREESTYLE_EMAIL_UI_MARKINGMODE );
- iAppUi.SetNaviPaneTextL( *txt );
- CleanupStack::PopAndDestroy( txt );
- }
- else
- {
- iAppUi.SetNaviPaneTextL( *folder );
- }
- }
- else // Portrait orientation
- {
- iAppUi.SetNaviPaneTextL( KNullDesC );
- if (iMarkingMode)
- {
- DisplayMarkingModeTextOnButtonsL();
- }
- else
- {
- RemoveMarkingModeTextOnButtonsL();
- iFolderListButton->SetTextL( *folder );
- }
- }
- CleanupStack::PopAndDestroy( folder );
- }
- else
- {
- iAppUi.SetNaviPaneTextL( KNullDesC );
- RemoveMarkingModeTextOnButtonsL();
- }
- }
-
//////////////////////////////////////////////////////////////////
// Class implementation CMailListUpdater
///////////////////////////////////////////////////////////////////
--- a/emailuis/emailui/src/FreestyleEmailUiSearchListVisualiser.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiSearchListVisualiser.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -213,7 +213,7 @@
// Set mark type and icon
iSearchList->SetMarkTypeL( CFsTreeList::EFsTreeListMultiMarkable );
- iSearchTreeListVisualizer->SetMarkOnIcon( iAppUi.FsTextureManager()->TextureByIndex( EListControlMarkOnIcon ) );
+ iSearchTreeListVisualizer->SetMarkIcon( iAppUi.FsTextureManager()->TextureByIndex( EListControlMarkIcon ) );
iSearchTreeListVisualizer->SetMenuIcon( iAppUi.FsTextureManager()->TextureByIndex( EListControlMenuIcon ) );
iSearchTreeListVisualizer->SetFlipState( iKeyboardFlipOpen );
iSearchTreeListVisualizer->SetFocusVisibility( iFocusVisible );
@@ -443,6 +443,8 @@
iAppUi.SetActiveMailboxNameToStatusPaneL();
}
CAknEnv::Static()->GetCurrentGlobalUiZoom( iCurrentZoomLevel );
+ // Set msk always empty when view is activated.
+ SetMskL();
// <cmail>
ReScaleUiL(); // In case that Landscape/Portrait has changed.
// </cmail>
@@ -1694,6 +1696,8 @@
sortCriteria.iField = EFSMailSortByDate;
sortCriteria.iOrder = EFSMailDescending;
iSearchOngoing = ETrue;
+ // Model and list is set to be empty, set also MSK to empty
+ SetMskL();
// Initialisr TextSearcher
// Start search.
@@ -1909,6 +1913,9 @@
// Set the extendedability and extended size
iSearchTreeListVisualizer->SetItemsAlwaysExtendedL( EFalse );
}
+
+ // Set msk to "Open when first is found".
+ SetMskL();
}
}
@@ -2460,6 +2467,11 @@
LaunchStylusPopupMenuL( aPoint );
}
break;
+ case MFsTreeListObserver::EFsTreeListItemWillGetFocused:
+ {
+ SetMskL();
+ break;
+ }
case MFsTreeListObserver::EFsFocusVisibilityChange:
{
iAppUi.SetFocusVisibility( EFalse );
@@ -2552,6 +2564,27 @@
return EFalse; //no calling key up will execute Call app
}
+
+// ---------------------------------------------------------------------------
+// Logic for changing msk
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiSearchListVisualiser::SetMskL()
+ {
+ FUNC_LOG;
+ if ( iFirstStartCompleted )
+ {
+ if ( iSearchList && iSearchList->Count() )
+ {
+ ChangeMskCommandL( R_FSE_QTN_MSK_OPEN );
+ }
+ else
+ {
+ ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
+ }
+ }
+ }
+
//<cmail>
// ---------------------------------------------------------------------------
// CFSEmailUiSearchListVisualiser::SetHeaderTextAttributesL()
--- a/emailuis/emailui/src/FreestyleEmailUiTextureManager.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiTextureManager.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -18,16 +18,24 @@
// SYSTEM INCLUDES
+// <cmail> SF
#include "emailtrace.h"
#include <alf/alfstatic.h>
+// </cmail>
#include <freestyleemailui.mbg>
#include <AknUtils.h>
+// <cmail>
#include <alf/alfframebrush.h>
+// </cmail>
#include <AknsConstants.h>
+// <cmail>
#include <alf/alfimageloaderutil.h>
+// </cmail>
#include <avkon.mbg>
#include <gulicon.h>
+// <cmail> S60 Skin support
#include <AknsDrawUtils.h>
+// </cmail>
// INTERNAL INCLUDES
#include "FreestyleEmailUi.hrh"
@@ -84,10 +92,12 @@
delete iFrameBrush;
iFrameBrush = NULL;
+ //<cmail>
delete iNewFrameBrush;
iNewFrameBrush = NULL;
delete iTitleDividerBgBrush;
+ //</cmail>
}
@@ -229,6 +239,7 @@
return frameBrush;
}
+// <cmail>
// -----------------------------------------------------------------------------
// CFreestyleEmailUiTextureManager::NewListSelectorBrushL
// NOTE: Gen UI list gets the ownership of the selector brush and deletes it
@@ -258,6 +269,7 @@
return iNewFrameBrush;
}
+// </cmail>
// -----------------------------------------------------------------------------
@@ -347,6 +359,20 @@
}
// -----------------------------------------------------------------------------
+// CFreestyleEmailUiTextureManager::NewMailListMarkingModeBgBrushLC
+// -----------------------------------------------------------------------------
+//
+CAlfImageBrush* CFreestyleEmailUiTextureManager::NewMailListMarkingModeBgBrushLC()
+ {
+ FUNC_LOG;
+ CAlfTexture& circle = TextureByIndex( EMarkingModeBackgroundIcon );
+ CAlfImageBrush* bgBrush = CAlfImageBrush::NewLC( *iEnv, TAlfImage(circle) );
+ bgBrush->SetLayer( EAlfBrushLayerBackground );
+ bgBrush->SetScaleMode( CAlfImageVisual::EScaleNormal );
+ return bgBrush;
+ }
+
+// -----------------------------------------------------------------------------
// CFreestyleEmailUiTextureManager::NewControlBarListBgBrushLC
// -----------------------------------------------------------------------------
//
@@ -506,7 +532,11 @@
}
else if ( aId >= ETextureGridFirst ) // GRID ICONS
{
+// <cmail> Platform layout change
+ //TInt gridIconSize = iAppUi->LayoutHandler()->GridIconSize();
+ //iconSize.SetSize( gridIconSize, gridIconSize );
iconSize = iAppUi->LayoutHandler()->GridIconSize();
+// </cmail>
}
else if ( aId >= ETextureMessageFirst /*&& aId < ETextureCalendarFirst*/ ) // MESSAGE ICONS
{
@@ -521,6 +551,7 @@
CFbsBitmap* mask(0);
TScaleMode scalemode = EAspectRatioPreserved;
+// <cmaill> icons changed
switch ( aId )
{
// LIST TEXTURE READING STARTS HERE
@@ -594,27 +625,26 @@
EMbmFreestyleemailuiQgn_graf_cmail_list_selector_mask);
}
break;
- case EListControlMarkOnIcon:
+ case EListControlMarkIcon:
{
- AknsUtils::CreateIconL( AknsUtils::SkinInstance(),
- KAknsIIDQgnFsHscrActionArrowRight, bitmap, mask, iconFileName,
- EMbmFreestyleemailuiQgn_prop_checkbox_on,
- EMbmFreestyleemailuiQgn_prop_checkbox_on_mask );
- TInt tempsize = iAppUi->LayoutHandler()->SearchMarkIconSize();
+ // <cmail> Platform layout change
+ // Get mark icon from the skin, otherwise use default
+ AknsUtils::CreateColorIconL(
+ AknsUtils::SkinInstance(),
+ KAknsIIDQgnFsListItemSelected,
+ KAknsIIDQsnIconColors,
+ EAknsCIQsnIconColorsCG13,
+ bitmap,
+ mask,
+ //KAvkonBitmapFile,
+ iconFileName,
+ EMbmFreestyleemailuiQgn_indi_marked_add,
+ EMbmFreestyleemailuiQgn_indi_marked_add_mask,
+ KRgbBlack );
+ TInt tempsize = iAppUi->LayoutHandler()->SearchLookingGlassIconSize();
iconSize.SetSize( tempsize, tempsize );
scalemode = EAspectRatioNotPreserved;
- }
- break;
- case EListControlMarkOffIcon:
- {
- AknsUtils::CreateIconL( AknsUtils::SkinInstance(),
- KAknsIIDQgnFsHscrActionArrowRight, bitmap, mask, iconFileName,
- EMbmFreestyleemailuiQgn_prop_checkbox_off,
- EMbmFreestyleemailuiQgn_prop_checkbox_off_mask );
-
- TInt tempsize = iAppUi->LayoutHandler()->SearchMarkIconSize();
- iconSize.SetSize( tempsize, tempsize );
- scalemode = EAspectRatioNotPreserved;
+ // </cmail> Platform layout change
}
break;
case EListControlMenuIcon:
@@ -1856,6 +1886,22 @@
KRgbBlack );
}
break;
+ case EMarkingModeBackgroundIcon:
+ {
+ TRect mailListRect(iAppUi->LayoutHandler()->GetListRect());
+ if ( mailListRect.Width() > mailListRect.Height() )
+ {
+ iconSize.SetSize( mailListRect.Width(), mailListRect.Width() );
+ }
+ else
+ {
+ iconSize.SetSize( mailListRect.Height(), mailListRect.Height() );
+ }
+ AknIconUtils::CreateIconL( bitmap, mask, iconFileName,
+ EMbmFreestyleemailuiCmail_marking_mode_bg,
+ EMbmFreestyleemailuiCmail_marking_mode_bg);
+ }
+ break;
case EGridAboutTexture:
default:
// Branded mailbox icon
@@ -2062,14 +2108,9 @@
iTextures[aTextureId] = &CAlfStatic::Env().TextureManager().CreateTextureL( EBackgroundTextureMailList, this, EAlfTextureFlagSkinContent);
}
break;
- case EListControlMarkOnIcon:
+ case EListControlMarkIcon:
{
- iTextures[aTextureId] = &CAlfStatic::Env().TextureManager().CreateTextureL( EListControlMarkOnIcon, this, EAlfTextureFlagSkinContent);
- break;
- }
- case EListControlMarkOffIcon:
- {
- iTextures[aTextureId] = &CAlfStatic::Env().TextureManager().CreateTextureL( EListControlMarkOffIcon, this, EAlfTextureFlagSkinContent);
+ iTextures[aTextureId] = &CAlfStatic::Env().TextureManager().CreateTextureL( EListControlMarkIcon, this, EAlfTextureFlagSkinContent);
break;
}
case EListControlMenuIcon:
@@ -2103,6 +2144,11 @@
iTextures[aTextureId] = &CAlfStatic::Env().TextureManager().CreateTextureL( EControlBarDescendingArrowTexture, this, EAlfTextureFlagSkinContent);
}
break;
+ case EMarkingModeBackgroundIcon:
+ {
+ iTextures[aTextureId] = &CAlfStatic::Env().TextureManager().CreateTextureL( EMarkingModeBackgroundIcon, this, EAlfTextureFlagRetainResolution);
+ }
+ break;
// MESSAGE TEXTURES
case EMessageReadIcon: iTextures[aTextureId] = &CAlfStatic::Env().TextureManager().CreateTextureL( EMessageReadIcon, this, EAlfTextureFlagDefault); break;
--- a/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -799,29 +799,19 @@
{
FUNC_LOG;
CFreestyleEmailUiAppUi* appUi = (CFreestyleEmailUiAppUi*)CCoeEnv::Static()->AppUi();
- CFSMailMessage* message = appUi->GetMailClient()->GetMessageByUidL(
+ CFSMailMessage* mailMessage = appUi->GetMailClient()->GetMessageByUidL(
aAttachmentPart.iMailBoxId, aAttachmentPart.iFolderId,
aAttachmentPart.iMessageId, EFSMsgDataStructure );
- CleanupStack::PushL( message );
- CFSMailMessagePart* messagePart = NULL;
- if ( message )
- {
- messagePart = message->ChildPartL( aAttachmentPart.iMessagePartId );
- }
+ CleanupStack::PushL( mailMessage );
+ CFSMailMessagePart* messagePart = mailMessage->ChildPartL(
+ aAttachmentPart.iMessagePartId );
CleanupStack::PushL( messagePart );
- if ( messagePart )
- {
- OpenAttachmentL( *messagePart );
- }
- else
- {
- User::Leave( KErrNotFound );
- }
+ OpenAttachmentL( *messagePart );
CleanupStack::PopAndDestroy( messagePart );
- CleanupStack::PopAndDestroy( message );
+ CleanupStack::PopAndDestroy( mailMessage );
}
// -----------------------------------------------------------------------------
@@ -832,8 +822,8 @@
{
FUNC_LOG;
const TDesC& attName = aAttachmentPart.AttachmentNameL();
- const TDesC& mimeType16 = aAttachmentPart.GetContentType();
- TFileType fileType = GetFileType( attName, mimeType16 );
+ const TDesC* mimeType16 = &aAttachmentPart.GetContentType();
+ TFileType fileType = GetFileType( attName, *mimeType16 );
// Check if attachment is actually an embedded message object. In that case we try to
// open it using mail viewer.
@@ -3125,63 +3115,6 @@
return isChineseSearchStr;
}
-// ---------------------------------------------------------
-// Find if text is including Korean word
-// ---------------------------------------------------------
-//
-TBool TFsEmailUiUtility::IsKoreanWord( const TDesC& aWord )
- {
- TBool isKoreanSearchStr = EFalse;
- const TInt len = aWord.Length();
-
- const TUint KKoreanUnicodeHangulJamoBegin = 0x1100;
- const TUint KKoreanUnicodeHangulJamoEnd = 0x11FF;
-
- for ( TInt ii = 0; ii < len; ii++ )
- {
- if ( (TInt) aWord[ii] >= KKoreanUnicodeHangulJamoBegin
- && (TInt) aWord[ii] <= KKoreanUnicodeHangulJamoEnd )
- {
- isKoreanSearchStr = ETrue;
- break;
- }
- }
-
- const TUint KKoreanUnicodeHangulCompatibilityJamoBegin = 0x3130;
- const TUint KKoreanUnicodeHangulCompatibilityJamoEnd = 0x322F;
-
- if ( !isKoreanSearchStr )
- {
- for ( TInt ii = 0; ii < len; ii++ )
- {
- if ( (TInt) aWord[ii] >= KKoreanUnicodeHangulCompatibilityJamoBegin
- && (TInt) aWord[ii] <= KKoreanUnicodeHangulCompatibilityJamoEnd )
- {
- isKoreanSearchStr = ETrue;
- break;
- }
- }
- }
-
- const TUint KKoreanUnicodeSpanBegin = 0xAC00;
- const TUint KKoreanUnicodeSpanEnd = 0xD7A3;
-
- if ( !isKoreanSearchStr )
- {
- for ( TInt ii = 0; ii < len; ii++ )
- {
- if ( (TInt) aWord[ii] >= KKoreanUnicodeSpanBegin
- && (TInt) aWord[ii] <= KKoreanUnicodeSpanEnd )
- {
- isKoreanSearchStr = ETrue;
- break;
- }
- }
- }
-
- return isKoreanSearchStr;
- }
-
// -----------------------------------------------------------------------------
// TFsEmailUiUtility::GetFullIconFileNameL
--- a/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -153,22 +153,6 @@
DeactivateControlGroup();
NavigateBackL();
}
-
- if( MailEditorId != Id() )// not for editor (when sending contact via mail)
- {
- //Reopen Contact details view if it was closed before
- CFSEmailUiContactHandler* contactHandler = NULL; // not owned
- CFsDelayedLoader* delLoader = CFsDelayedLoader::InstanceL(); // not owned
- if( delLoader )
- {
- contactHandler = delLoader->GetContactHandlerL();
-
- if( contactHandler && contactHandler->WasDetailsClosed())
- {
- contactHandler->ReopenContactDetailsL(iEikonEnv->WsSession());
- }
- }
- }
}
// ---------------------------------------------------------------------------
@@ -646,23 +630,10 @@
if ( iPreviousAppUid != KFSEmailUiUid && iPreviousAppUid != KNullUid )
{
- //don't send to background when back from Contact Details (CCAApp)
- CFSEmailUiContactHandler* contactHandler(NULL); // not owned
- CFsDelayedLoader* delLoader = CFsDelayedLoader::InstanceL(); // not owned
- if( delLoader )
- {
- contactHandler = delLoader->GetContactHandlerL();
- }
- // for Contact Details, after contact was sent via mail, app shouldn't be sent to background
- if( contactHandler && iPreviousAppUid == contactHandler->GetDetailsAppUid() )
- {
- iSendToBackgroundOnDeactivation = EFalse;
- iAppUi.SetSwitchingToBackground( EFalse );
- }
// Email app should be hidden once the view gets deactivated. Note that hiding
// should not happen before control group switching is over because that
// may cause views of other Alfred apps to get distorted.
- else if( !iAppUi.EmbeddedAppIsPreviousApp() ) // if previous app is embedded app,
+ if( !iAppUi.EmbeddedAppIsPreviousApp() ) // if previous app is embedded app,
//do not need hide FSEmail app when previous app view gets deactivated.
{
iSendToBackgroundOnDeactivation = ETrue;
--- a/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -141,6 +141,14 @@
void CFreestyleMessageHeaderHTML::ConstructL()
{
iMailMessage.AttachmentListL( iAttachments );
+ // Remove attachments with no name
+ for ( TInt i = iAttachments.Count() - 1; i >= 0; i-- )
+ {
+ if ( !iAttachments[i]->AttachmentNameL().Length() )
+ {
+ iAttachments.Remove( i );
+ }
+ }
}
EXPORT_C void CFreestyleMessageHeaderHTML::ExportL() const
--- a/emailuis/emailui/src/FreestyleMessageHeaderURLEventHandler.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleMessageHeaderURLEventHandler.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -31,11 +31,11 @@
#include <brctldefs.h>
#include <e32std.h>
#include <eikmobs.h>
-#include <coemain.h>
+#include <coemain.h>
#include <schemehandler.h>
-EXPORT_C CFreestyleMessageHeaderURLEventHandler* CFreestyleMessageHeaderURLEventHandler::NewL(
- CFreestyleEmailUiAppUi& aAppUi,
+EXPORT_C CFreestyleMessageHeaderURLEventHandler* CFreestyleMessageHeaderURLEventHandler::NewL(
+ CFreestyleEmailUiAppUi& aAppUi,
CFsEmailUiHtmlViewerView& aView )
{
CFreestyleMessageHeaderURLEventHandler* obj = new (ELeave) CFreestyleMessageHeaderURLEventHandler( aAppUi, aView );
@@ -45,54 +45,54 @@
return obj;
}
-CFreestyleMessageHeaderURLEventHandler::CFreestyleMessageHeaderURLEventHandler(
- CFreestyleEmailUiAppUi& aAppUi,
+CFreestyleMessageHeaderURLEventHandler::CFreestyleMessageHeaderURLEventHandler(
+ CFreestyleEmailUiAppUi& aAppUi,
CFsEmailUiHtmlViewerView& aView )
- : iAppUi( aAppUi ),
- iView( aView ),
- iMailMessage( NULL ),
+ : iAppUi( aAppUi ),
+ iView( aView ),
+ iMailMessage( NULL ),
iAttachmentsListModel( NULL )
{
}
void CFreestyleMessageHeaderURLEventHandler::ConstructL()
{
- iMessageHeaderURL = CFreestyleMessageHeaderURL::NewL();
+ iMessageHeaderURL = CFreestyleMessageHeaderURL::NewL();
iHTMLReloadAO = CFSHtmlReloadAO::NewL(iView);
-
+
}
CFreestyleMessageHeaderURLEventHandler::~CFreestyleMessageHeaderURLEventHandler ()
{
delete iMessageHeaderURL;
- delete iHTMLReloadAO;
+ delete iHTMLReloadAO;
if( iEmailAddressStylusPopup )
{
- delete iEmailAddressStylusPopup;
+ delete iEmailAddressStylusPopup;
}
-
+
if( iAttachmentStylusPopup )
{
- delete iAttachmentStylusPopup;
+ delete iAttachmentStylusPopup;
}
-
+
if( iWebAddressStylusPopup )
{
- delete iWebAddressStylusPopup;
- }
-
+ delete iWebAddressStylusPopup;
+ }
+
delete iUrl;
}
EXPORT_C TBool CFreestyleMessageHeaderURLEventHandler::HandleEventL( const TDesC& aUri )
{
- iMailMessage = iView.CurrentMessage();
+ iMailMessage = iView.CurrentMessage();
iAttachmentsListModel = iView.CurrentAttachmentsListModel();
-
+
if ( ! CFreestyleMessageHeaderURL::IsMessageHeaderURL( aUri ) )
{
//Handle http and https links
- if( ( aUri.FindF( KURLHttpPrefix ) ) == 0
+ if( ( aUri.FindF( KURLHttpPrefix ) ) == 0
||( aUri.FindF( KURLHttpsPrefix ) ) == 0 )
{
if ( iUrl )
@@ -101,9 +101,9 @@
iUrl = NULL;
}
iUrl = aUri.AllocL();
- iView.HandleWebAddressCommandL( EFsEmailUiCmdActionsOpenWeb, *iUrl );
+ LaunchWebAddressMenuL( );
return ETrue;
- }
+ }
//Link wasn't handled
return EFalse;
}
@@ -153,7 +153,7 @@
return;
}
- //Change the creation of the stylus menu here to avoid crash when calling SetItemDimmed(ETrue) multiple times
+ //Change the creation of the stylus menu here to avoid crash when calling SetItemDimmed(ETrue) multiple times
//on same instance of the menu (if created only once in constructor).
//Creating the menu everytime the user clicks on the link avoids this crash however performance is affected.
if( iEmailAddressStylusPopup)
@@ -161,22 +161,20 @@
delete iEmailAddressStylusPopup;
iEmailAddressStylusPopup = NULL;
}
-
+
TPoint point( 0, 0 );
iEmailAddressStylusPopup = CAknStylusPopUpMenu::NewL( this , point );
TResourceReader reader;
CCoeEnv::Static()->CreateResourceReaderLC( reader, R_STYLUS_POPUP_MENU_HTML_VIEW_EMAIL_ADDRESS );
iEmailAddressStylusPopup->ConstructFromResourceL( reader );
CleanupStack::PopAndDestroy(); //resource reader
-
- iEmailAddressStylusPopup->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup,
- !iView.IsRemoteLookupSupportedL() );
- iEmailAddressStylusPopup->SetPosition( iAppUi.LastSeenPointerPosition(),
+
+ iEmailAddressStylusPopup->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup,
+ !iView.IsRemoteLookupSupportedL() );
+ iEmailAddressStylusPopup->SetPosition( iAppUi.ClientRect().Center(),
CAknStylusPopUpMenu::EPositionTypeRightBottom );
iEmailAddressStylusPopup->ShowMenu();
}
-
-
TBool CFreestyleMessageHeaderURLEventHandler::LaunchEmailAddressMenuHWKeyL()
{
TInt wsEventType = iAppUi.LastSeenWsEventType();
@@ -203,11 +201,10 @@
return ETrue;
}
-
//From MEikMenuObserver
void CFreestyleMessageHeaderURLEventHandler::ProcessCommandL( TInt aCommand )
{
-
+
switch ( aCommand )
{
case EFsEmailUiCmdActionsReply:
@@ -219,37 +216,37 @@
iView.HandleEmailAddressCommandL( aCommand, *iMessageHeaderURL->ItemId() );
break;
}
-
+
case EFsEmailUiCmdCancelDownload:
{
iView.CancelAttachmentL( FindAttachmentL( *iMessageHeaderURL ) );
break;
}
-
+
case EFsEmailUiCmdCancelAllDownloads:
{
iView.CancelAllAttachmentsL();
break;
}
-
+
case EFsEmailUiCmdOpenAttachment:
{
iView.OpenAttachmentL( FindAttachmentL( *iMessageHeaderURL ) );
break;
}
-
+
case EFsEmailUiCmdSave:
{
iView.SaveAttachmentL( FindAttachmentL( *iMessageHeaderURL ) );
break;
}
-
+
case EFsEmailUiCmdSaveAll:
{
iView.SaveAllAttachmentsL( );
- break;
+ break;
}
-
+
case EFsEmailUiCmdActionsOpenWeb:
case EFsEmailUiCmdActionsAddBookmark:
case EFsEmailUiCmdActionsCopyWWWAddressToClipboard:
@@ -257,18 +254,18 @@
iView.HandleWebAddressCommandL( aCommand, *iUrl );
break;
}
-
+
}
}
-const TAttachmentData& CFreestyleMessageHeaderURLEventHandler::FindAttachmentL(
+const TAttachmentData& CFreestyleMessageHeaderURLEventHandler::FindAttachmentL(
const CFreestyleMessageHeaderURL& aAttachmentUrl )
{
User::LeaveIfNull( iAttachmentsListModel );
TUint id;
TLex parser( *aAttachmentUrl.ItemId() );
parser.Val( id );
-
+
TInt found = KErrNotFound;
for (TInt i=0; i<iAttachmentsListModel->GetModel().Count(); i++)
{
@@ -278,10 +275,10 @@
break;
}
}
-
+
if ( found == KErrNotFound )
{
- // Probably, only the headers were downloaded. Check if attachments
+ // Probably, only the headers were downloaded. Check if attachments
// were downloaded later.
if( iMailMessage )
{
@@ -301,11 +298,11 @@
User::Leave( KErrNotFound );
}
}
-
+
return iAttachmentsListModel->GetModel()[found];
}
-void CFreestyleMessageHeaderURLEventHandler::LaunchAttachmentMenuL(
+void CFreestyleMessageHeaderURLEventHandler::LaunchAttachmentMenuL(
const TAttachmentData& aAttachment )
{
ASSERT( iAppUi.DownloadInfoMediator() );
@@ -314,8 +311,6 @@
{
return;
}
-
-
//Change the creation of the stylus menu here to avoid crash when calling SetItemDimmed(ETrue) multiple times
//on same instance of the menu (if created only once in constructor).
//Creating the menu everytime the user clicks on the link avoids this crash however performance is affected.
@@ -330,38 +325,38 @@
CCoeEnv::Static()->CreateResourceReaderLC( reader, R_STYLUS_POPUP_MENU_HTML_VIEW_ATTACHMENT );
iAttachmentStylusPopup->ConstructFromResourceL( reader );
CleanupStack::PopAndDestroy(); //resource reader
-
-
+
+
//Dim all item by default
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdOpenAttachment, ETrue );
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSave, ETrue );
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSaveAll, ETrue );
- iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdCancelDownload, ETrue );
+ iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdCancelDownload, ETrue );
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdCancelAllDownloads, ETrue );
const TBool isMessage( iAttachmentsListModel->IsMessage( aAttachment ) );
-
+
if ( iAppUi.DownloadInfoMediator()->IsDownloading( aAttachment.partData.iMessagePartId ) )
- {
- iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdCancelDownload, EFalse );
+ {
+ iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdCancelDownload, EFalse );
}
else if ( aAttachment.downloadProgress == KComplete )
{
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdOpenAttachment, EFalse );
-
+
// block saving of embedded messages if needed.
if ( iView.IsEmbeddedMsgView() )
{
if ( iView.IsEmbeddedMsgSavingAllowed() || !isMessage )
{
- iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSave, EFalse );
- }
+ iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSave, EFalse );
+ }
}
else
{
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSave, isMessage && !iView.IsEmbeddedMsgSavingAllowed() );
}
-
+
if ( iAttachmentsListModel->GetModel().Count() > 1 )
{
// Save all cannot be shown if there is one message attachment and saving is not supported
@@ -371,33 +366,32 @@
// are any message type attachments. This is due to limitations of Activesync plugin.
if( !(iView.IsEmbeddedMsgView() && iAttachmentsListModel->IsThereAnyMessageAttachments()) )
{
- iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSaveAll, EFalse );
+ iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSaveAll, EFalse );
}
}
- }
+ }
}
else
{
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdOpenAttachment, EFalse );
- iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSave, isMessage );
+ iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSave, isMessage );
if ( iAttachmentsListModel->GetModel().Count() > 1 )
{
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdSaveAll,
iAttachmentsListModel->IsThereAnyMessageAttachments() && !iView.IsEmbeddedMsgSavingAllowed() );
- }
+ }
}
if ( iAttachmentsListModel->IsMultiplyDownloadsOngoing() )
{
iAttachmentStylusPopup->SetItemDimmed( EFsEmailUiCmdCancelAllDownloads, EFalse );
}
-
- iAttachmentStylusPopup->SetPosition( iAppUi.LastSeenPointerPosition(),
- CAknStylusPopUpMenu::EPositionTypeRightBottom );
+
+ iAttachmentStylusPopup->SetPosition( iAppUi.LastSeenPointerPosition(),
+ CAknStylusPopUpMenu::EPositionTypeLeftTop );
iAttachmentStylusPopup->ShowMenu();
}
-
TBool CFreestyleMessageHeaderURLEventHandler::LaunchAttachmentMenuHWKeyL(
const TAttachmentData& aAttachment )
{
@@ -483,7 +477,6 @@
return ETrue;
}
-
//Open the Avkon stylus popup when a web address link was pressed
void CFreestyleMessageHeaderURLEventHandler::LaunchWebAddressMenuL()
{
@@ -491,8 +484,8 @@
{
return;
}
-
- //Change the creation of the stylus menu here to avoid crash when calling SetItemDimmed(ETrue) multiple times
+
+ //Change the creation of the stylus menu here to avoid crash when calling SetItemDimmed(ETrue) multiple times
//on same instance of the menu (if created only once in constructor).
//Creating the menu everytime the user clicks on the link avoids this crash however performance is affected.
if( iWebAddressStylusPopup )
@@ -500,20 +493,19 @@
delete iWebAddressStylusPopup;
iWebAddressStylusPopup = NULL;
}
-
+
TPoint point( 0, 0 );
iWebAddressStylusPopup = CAknStylusPopUpMenu::NewL( this , point );
TResourceReader reader;
CCoeEnv::Static()->CreateResourceReaderLC( reader, R_STYLUS_POPUP_MENU_HTML_VIEW_WEB_ADDRESS );
iWebAddressStylusPopup->ConstructFromResourceL( reader );
CleanupStack::PopAndDestroy(); //resource reader
-
- iWebAddressStylusPopup->SetPosition( iAppUi.LastSeenPointerPosition(),
+
+ iWebAddressStylusPopup->SetPosition( iAppUi.ClientRect().Center(),
CAknStylusPopUpMenu::EPositionTypeRightBottom );
iWebAddressStylusPopup->ShowMenu();
}
-
TBool CFreestyleMessageHeaderURLEventHandler::LaunchWebAddressMenuHWKeyL()
{
TInt wsEventType = iAppUi.LastSeenWsEventType();
--- a/emailuis/emailui/src/OverlayControl.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/OverlayControl.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -73,7 +73,7 @@
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
// Give feedback to user (vibration)
- iTouchFeedBack->InstantFeedback( this, ETouchFeedbackBasic );
+ iTouchFeedBack->InstantFeedback( this, ETouchFeedbackBasicButton );
SetPointerCapture( ETrue );
}
CCoeControl::HandlePointerEventL( aPointerEvent );
--- a/emailuis/emailui/src/ncsaddressinputfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncsaddressinputfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -33,7 +33,6 @@
#include <AknUtils.h>
#include <FreestyleEmailUi.rsg>
#include <aknphysics.h>
-#include <centralrepository.h>
#include "FreestyleEmailUiAppui.h"
#include "FreestyleEmailUiLayoutData.h"
@@ -45,7 +44,6 @@
#include "ncsutility.h"
#include "ncsheadercontainer.h"
#include "txtrich.h"
-#include "freestyleemailcenrepkeys.h"
// ---------------------------------------------------------------------------
// constructor
@@ -92,22 +90,23 @@
// -----------------------------------------------------------------------------
//
void CNcsAddressInputField::ConstructL( TInt aLabelTextId )
- {
+ {
FUNC_LOG;
- // Create label
- //Load the label string
- HBufC* aTextBuf = StringLoader::LoadLC( aLabelTextId );
+ // Create label
+ //Load the label string
+ HBufC* aTextBuf = StringLoader::LoadLC( aLabelTextId );
- TPtrC captionText = aTextBuf ? aTextBuf->Des() : TPtrC();
- CreateControlsL( captionText );
-
- iTextEditor = new ( ELeave ) CNcsAifEditor( iSizeObserver, captionText );
+ TPtrC captionText = aTextBuf ? aTextBuf->Des() : TPtrC();
+ CreateControlsL( captionText );
+
+ iTextEditor = new ( ELeave ) CNcsAifEditor( iSizeObserver,
+ captionText );
// iTextEditor is not completely constructed until in SetContainerWindowL()
- iTextEditor->SetPopupList(iAddressPopupList);
+ iTextEditor->SetPopupList(iAddressPopupList);
- CleanupStack::PopAndDestroy( aTextBuf );
- }
+ CleanupStack::PopAndDestroy( aTextBuf );
+ }
// ---------------------------------------------------------------------------
// Destructor
@@ -119,8 +118,15 @@
delete iTextEditor;
delete iButton;
delete iLabel;
+// <cmail> Platform layout change
+ /*if ( iFont )
+ {
+ ControlEnv()->ScreenDevice()->ReleaseFont( iFont );
+ iFont = NULL;
+ }</cmail>*/
}
+//<cmail>
// -----------------------------------------------------------------------------
// CNcsHeaderContainer::CreateControlsL()
// -----------------------------------------------------------------------------
@@ -148,6 +154,7 @@
iLabel->SetBrushStyle(CWindowGc::ENullBrush);
}
}
+//</cmail>
// ---------------------------------------------------------------------------
// SetContainerWindow
@@ -160,51 +167,39 @@
FUNC_LOG;
CCoeControl::SetContainerWindowL(aContainer);
- InitComponentArrayL();
- // Check if we need to construct the components
- if (Components().Count() == 2) return;
+ InitComponentArrayL();
+ // Check if we need to construct the components
+ if (Components().Count() == 2) return;
- // Load the controls into the compoent array
- CCoeControlArray& controls = Components();
- controls.SetControlsOwnedExternally(ETrue);
- //<cmail>
- if( iButton )
- {
- controls.AppendLC( iButton );
- CleanupStack::Pop( iButton );
- }
- else
- {
- controls.AppendLC( iLabel );
- CleanupStack::Pop( iLabel );
- }
-
- controls.AppendLC(iTextEditor);
+ // Load the controls into the compoent array
+ CCoeControlArray& controls = Components();
+ controls.SetControlsOwnedExternally(ETrue);
+ //<cmail>
+ if( iButton )
+ {
+ controls.AppendLC( iButton );
+ CleanupStack::Pop( iButton );
+ }
+ else
+ {
+ controls.AppendLC( iLabel );
+ CleanupStack::Pop( iLabel );
+ }
+ //</cmail>
+ controls.AppendLC(iTextEditor);
CleanupStack::Pop(iTextEditor);
- // Setup the text editor
- iTextEditor->ConstructL( &aContainer, KMaxAddressFieldLines, 0 );
+// <cmail>
+
+ // Setup the text editor
+ iTextEditor->ConstructL( &aContainer, KMaxAddressFieldLines, 0 );
+// </cmail>
iTextEditor->SetBorder( TGulBorder::ENone );
- iTextEditor->SetAknEditorInputMode( EAknEditorTextInputMode );
- iTextEditor->SetAknEditorFlags( EAknEditorFlagNoT9 | EAknEditorFlagUseSCTNumericCharmap );
-
- CRepository* repository = NULL;
- TRAPD( err, repository = CRepository::NewL( KFreestyleEmailCenRep ) );
- if ( !err )
- {
- TInt value( 0 );
- err = repository->Get( KEmailFeatureSplitScreen, value );
- if( !err && value )
- {
- iTextEditor->SetAknEditorFlags( iTextEditor->AknEditorFlags() | EAknEditorFlagEnablePartialScreen );
- }
- }
- delete repository;
- repository = NULL;
-
- iTextEditor->SetAknEditorCurrentCase( EAknEditorLowerCase );
- iTextEditor->CreateScrollBarFrameL()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
+ iTextEditor->SetAknEditorInputMode( EAknEditorTextInputMode );
+ iTextEditor->SetAknEditorFlags( EAknEditorFlagNoT9 | EAknEditorFlagUseSCTNumericCharmap );
+ iTextEditor->SetAknEditorCurrentCase( EAknEditorLowerCase );
+ iTextEditor->CreateScrollBarFrameL()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
iTextEditor->SetEdwinSizeObserver( this );
iTextEditor->SetupEditorL();
@@ -254,27 +249,27 @@
// -----------------------------------------------------------------------------
//
void CNcsAddressInputField::SizeChanged()
- {
+ {
FUNC_LOG;
- TRect rect = Rect();
-
- if( AknLayoutUtils::PenEnabled() )
- {
- LayoutTouch();
- }
- else
- {
- LayoutNonTouch();
- }
+ TRect rect = Rect();
+
+ if( AknLayoutUtils::PenEnabled() )
+ {
+ LayoutTouch();
+ }
+ else
+ {
+ LayoutNonTouch();
+ }
// This needs to be bidi as in mirrored layout
// writing language left to right can be set.
// Need to set here as layout sets it also to left or right.
iTextEditor->SetAlignment( EAknEditorAlignBidi );
-
+
UpdateFontSize();
-
+
if (iTextEditor->ScrollBarFrame())
{
TRect rc = iTextEditor->Rect();
@@ -288,37 +283,38 @@
}
iTextEditor->SetRect(rc);
}
-
+
PositionChanged();
- }
+ }
// -----------------------------------------------------------------------------
// CNcsHeaderContainer::PositionChanged()
// set size
// -----------------------------------------------------------------------------
void CNcsAddressInputField::PositionChanged()
- {
+ {
FUNC_LOG;
-
+
// keep the button in view as long as possible
if( iButton && iParentControl->IsVisible() )
- {
- const TRect rect( Rect() );
- const TRect buttonRect( iButton->Rect() );
-
- TInt newButtonPos( iOriginalButtonPos.iY - iOriginalFieldPos.iY );
+ {
+ const TRect rect( Rect() );
+ const TRect buttonRect( iButton->Rect() );
+
+ TInt newButtonPos( iOriginalButtonPos.iY - iOriginalFieldPos.iY );
+
+ if( rect.iTl.iY < 0 && newButtonPos + buttonRect.Height() < rect.iBr.iY )
+ {
+ iButton->SetPosition( TPoint(iOriginalButtonPos.iX, newButtonPos) );
+ }
+ else
+ {
+ iButton->SetPosition( TPoint(iOriginalButtonPos.iX, newButtonPos + rect.iTl.iY) );
+ }
+ }
+ }
- if( rect.iTl.iY < 0 && newButtonPos + buttonRect.Height() < rect.iBr.iY )
- {
- iButton->SetPosition( TPoint(iOriginalButtonPos.iX, newButtonPos) );
- }
- else
- {
- iButton->SetPosition( TPoint(iOriginalButtonPos.iX, newButtonPos + rect.iTl.iY) );
- }
- }
- }
-
+//<cmail>
// -----------------------------------------------------------------------------
// CNcsAddressInputField::LayoutNonTouch()
//
@@ -348,7 +344,7 @@
iTextEditor->UpdateCustomDrawer();
}
-
+
// -----------------------------------------------------------------------------
// CNcsAddressInputField::HandlePointerEventL()
// Handles pointer events
@@ -356,33 +352,37 @@
//
void CNcsAddressInputField::HandlePointerEventL( const TPointerEvent& aPointerEvent )
{
- FUNC_LOG;
- CCoeControl::HandlePointerEventL( aPointerEvent );
-
- switch ( aPointerEvent.iType )
+ FUNC_LOG;
+ iTextEditor->HandlePointerEventL(aPointerEvent);
+ if( iButton )
{
- case TPointerEvent::EButton1Down:
- {
+ iButton->HandlePointerEventL( aPointerEvent );
+ }
+
+ switch( aPointerEvent.iType )
+ {
+ case TPointerEvent::EButton1Down:
+ {
// Save start position so that it can be used in
// drag/scrolling calculations
iStartPosition = aPointerEvent.iPosition;
iIsDraggingStarted = EFalse;
break;
- }
-
- case TPointerEvent::EDrag:
- {
+ }
+
+ case TPointerEvent::EDrag:
+ {
if ( !iIsDraggingStarted && iPhysics )
{
TInt drag( iStartPosition.iY - aPointerEvent.iPosition.iY );
if ( Abs( drag ) > iPhysics->DragThreshold() )
{
- iIsDraggingStarted = ETrue;
+ iIsDraggingStarted = ETrue;
}
}
break;
- }
- }
+ }
+ }
}
// -----------------------------------------------------------------------------
@@ -400,6 +400,7 @@
}
}
}
+//</cmail>
// -----------------------------------------------------------------------------
// CNcsAddressInputField::OfferKeyEventL()
@@ -408,22 +409,22 @@
//
TKeyResponse
CNcsAddressInputField::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
- {
+ {
FUNC_LOG;
- TKeyResponse ret( EKeyWasNotConsumed );
+ TKeyResponse ret( EKeyWasNotConsumed );
- if( aKeyEvent.iCode == EKeyOK )
- {
- iTextEditor->SetCursorPosL( iTextEditor->TextLength(), EFalse );
- iTextEditor->UpdateAddressListAllL();
- }
- else
- {
- ret = iTextEditor->OfferKeyEventL( aKeyEvent, aType );
- }
+ if( aKeyEvent.iCode == EKeyOK )
+ {
+ iTextEditor->SetCursorPosL( iTextEditor->TextLength(), EFalse );
+ iTextEditor->UpdateAddressListAllL();
+ }
+ else
+ {
+ ret = iTextEditor->OfferKeyEventL( aKeyEvent, aType );
+ }
- return ret;
- }
+ return ret;
+ }
// -----------------------------------------------------------------------------
// CNcsAddressInputField::FocusChanged()
@@ -436,6 +437,30 @@
{
iTextEditor->SetFocus( ETrue, aDrawNow );
//TRAP_IGNORE( iTextEditor->SetCursorPosL( iTextEditor->TextLength(), EFalse ) );
+
+ // make sure that control is visible on screen
+ if ( Rect().iTl.iY < 0 )
+ {
+ TPoint pt = TPoint( 0, 0 );
+ Reposition( pt,Rect().Width() );
+ iSizeObserver->UpdateFieldPosition( this );
+ }
+ else
+ {
+ TPoint pos = PositionRelativeToScreen();
+ pos.iY += Size().iHeight;
+ CWsScreenDevice* screenDev = ControlEnv()->ScreenDevice();
+ TPixelsAndRotation pix;
+ screenDev->GetDefaultScreenSizeAndRotation( pix );
+ const TInt h = pix.iPixelSize.iHeight;
+ if ( pos.iY >= h - h / 3 )
+ {
+ TPoint pt = TPoint( 0, h / 3 );
+ Reposition( pt,Rect().Width() );
+ iSizeObserver->UpdateFieldPosition( this );
+ }
+ }
+
if ( iParentControl )
{
TRAP_IGNORE( iParentControl->SetMskL() );
@@ -728,10 +753,10 @@
// CNcsAddressInputField::GetLineRectL()
// -----------------------------------------------------------------------------
//
-void CNcsAddressInputField::GetLineRect( TRect& aLineRect ) const
+void CNcsAddressInputField::GetLineRectL( TRect& aLineRect ) const
{
FUNC_LOG;
- return iTextEditor->GetLineRect( aLineRect );
+ return iTextEditor->GetLineRectL( aLineRect );
}
// -----------------------------------------------------------------------------
--- a/emailuis/emailui/src/ncsaifeditor.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncsaifeditor.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -216,17 +216,16 @@
}
// ---------------------------------------------------------------------------
-// Constructor
+// constructor/destructor
// ---------------------------------------------------------------------------
//
CNcsAifEditor::CNcsAifEditor(
MNcsFieldSizeObserver* aSizeObserver, const TDesC& aCaptionText )
- : CNcsEditor( aSizeObserver, ETrue, ENcsEditorAddress, aCaptionText ),
- iAddressPopupList( NULL ),
+ : CNcsEditor( aSizeObserver, ETrue, ENcsEditorAddress, aCaptionText ), iAddressPopupList( NULL ),
iAddLeftover( ETrue )
{
FUNC_LOG;
- SetEdwinObserver( this );
+ SetEdwinObserver( this );
}
// ---------------------------------------------------------------------------
@@ -249,15 +248,16 @@
CNcsAifEditor::~CNcsAifEditor()
{
FUNC_LOG;
- iArray.ResetAndDestroy();
- iAddressArray.Reset();
- if ( iAsyncCallBack )
- {
- iAsyncCallBack->Cancel();
- delete iAsyncCallBack;
- }
+ iArray.ResetAndDestroy();
+ iAddressArray.Reset();
+ if ( iAsyncCallBack )
+ {
+ iAsyncCallBack->Cancel();
+ delete iAsyncCallBack;
+ }
}
+
// -----------------------------------------------------------------------------
// CNcsAifEditor::CursorLineNumber() const
// -----------------------------------------------------------------------------
@@ -311,61 +311,22 @@
{
ret = SetEditorSelectionL( aKeyEvent, aType );
}
-
+
//when press a key down, record the coursor position
if ( aType == EEventKeyDown )
- {
- iLastTimeCursorPos = CursorPos();
- }
+ {
+ iLastTimeCursorPos = CursorPos();
+ }
if ( ret == EKeyWasNotConsumed )
{
// enter completes the address entry
- if ( aType == EEventKey && ( aKeyEvent.iCode == EKeyEnter ||
- aKeyEvent.iScanCode == EStdKeyEnter ) )
- {
- // make sure there is really some text inputted
- const TInt cursorPos = CursorPos();
- TCursorSelection selection = NonEntryTextAtPos( cursorPos );
-
- const TInt length = selection.Length();
- if ( length > 0 )
- {
- HBufC* text = HBufC::NewLC( length );
- TPtr ptr = text->Des();
- Text()->Extract( ptr, selection.LowerPos(), length );
- ptr.Trim();
-
- // complete the entry by adding a semicolon,
- // address will be added in HandleTextUpdateL
- if ( ptr.Length() > 0 )
- {
- Text()->InsertL( cursorPos, KCharAddressDelimeterSemiColon );
- HandleTextChangedL();
- SetCursorPosL( cursorPos + 1, EFalse );
- iLastTimeCursorPos = CursorPos();
- HandleTextUpdateL();
- }
-
- CleanupStack::PopAndDestroy( text );
- }
- }
- else if ( IsCharacterKey( aKeyEvent ) )
- {
- PrepareForTextInputL( CursorPos() );
- }
- iTextSelection = Selection();
- ret = CNcsEditor::OfferKeyEventL( aKeyEvent, aType );
- }
-
- // for Korean we need to simulate event 'text update' as FEP
- // doesn't send it and the MRU is not shown
- if ( User::Language() == ELangKorean )
- {
- if ( ret == EKeyWasNotConsumed && aType == EEventKeyUp )
- {
+ if( aType == EEventKey && (aKeyEvent.iCode == EKeyEnter ||
+ aKeyEvent.iScanCode == EStdKeyEnter) )
+ {
+ // make sure there is really some text inputted
TInt cursorPos( CursorPos() );
-
+
TCursorSelection selection = NonEntryTextAtPos( cursorPos );
TInt length( selection.Length() );
@@ -374,14 +335,20 @@
TPtr ptr = text->Des();
Text()->Extract( ptr, selection.LowerPos(), length );
ptr.Trim();
-
- if ( TFsEmailUiUtility::IsKoreanWord( ptr ) )
- {
- HandleTextUpdateDeferred();
- }
-
- CleanupStack::PopAndDestroy( text );
- }
+
+ // complete the entry by adding a semicolon,
+ // address will be added in HandleTextUpdateL
+ if( ptr.Length() > 0 )
+ {
+ Text()->InsertL( cursorPos, KCharAddressDelimeterSemiColon );
+ HandleTextChangedL();
+ SetCursorPosL( cursorPos + 1, EFalse );
+ }
+
+ CleanupStack::PopAndDestroy( text );
+ }
+ iTextSelection = Selection();
+ ret = CNcsEditor::OfferKeyEventL( aKeyEvent, aType );
}
return ret;
@@ -433,7 +400,7 @@
if ( aKeyEvent.iCode == EKeyUpArrow || aKeyEvent.iCode == EKeyDownArrow )
{
CompleteEntryL();
-
+
response = CNcsEditor::OfferKeyEventL( aKeyEvent,aType );
if ( response == EKeyWasConsumed )
{
@@ -446,11 +413,10 @@
}
}
// Check if the cursor is in any of the addresses
- else if ( aKeyEvent.iCode == EKeyLeftArrow || aKeyEvent.iCode == EKeyBackspace )
+ else if( aKeyEvent.iCode == EKeyLeftArrow || aKeyEvent.iCode == EKeyBackspace )
{
// We're moving left, but haven't yet.
- const TInt cursorPos = CursorPos();
- entry = GetEntryAt( cursorPos, EDirectionLeft );
+ entry = GetEntryAt( CursorPos(), EDirectionLeft );
if ( entry )
{
if ( selection.Length() && aKeyEvent.iCode == EKeyLeftArrow)
@@ -465,25 +431,11 @@
response = EKeyWasConsumed;
}
}
- else
- {
- // Complete entry, if cursor is being moved to the previous row.
- TCursorSelection selection = NonEntryTextAndSpaceAtPos( cursorPos );
- if ( cursorPos > 0 && selection.LowerPos() + 1 == cursorPos )
- {
- if ( IsDelimiter( CharAtPos( selection.LowerPos() ) ) )
- {
- CompleteEntryL();
- SetCursorPosL( cursorPos, EFalse );
- }
- }
- }
}
- else if ( aKeyEvent.iCode == EKeyRightArrow || aKeyEvent.iCode == EKeyDelete )
+ else if( aKeyEvent.iCode == EKeyRightArrow || aKeyEvent.iCode == EKeyDelete )
{
// We're moving right, but haven't yet.
- const TInt cursorPos = CursorPos();
- entry = GetEntryAt( cursorPos, EDirectionRight );
+ entry = GetEntryAt( CursorPos(), EDirectionRight );
if ( entry )
{
if ( selection.Length() && aKeyEvent.iCode == EKeyRightArrow )
@@ -498,18 +450,6 @@
response = EKeyWasConsumed;
}
}
- else
- {
- // Complete entry, if cursor is being moved to the next row.
- TCursorSelection selection = NonEntryTextAndSpaceAtPos( cursorPos );
- if ( cursorPos > 0 && selection.HigherPos() - 1 == cursorPos )
- {
- if ( IsDelimiter( CharAtPos( selection.HigherPos() - 1 ) ) )
- {
- CompleteEntryL();
- }
- }
- }
}
// to fix problems with updating CBA when hash key is pressed and hold
else if ( aKeyEvent.iScanCode == EStdKeyHash )
@@ -567,11 +507,10 @@
break;
}
}
-
- SetCursorVisible( EFalse );
+
ClearSelectionL();
- RepositionEntries( entry );
- SetCursorVisible( ETrue );
+
+ RepositionEntriesL( entry );
// The key event is set consumed only on delete and backpace
// events, other events need to be forwarded to the editor.
@@ -590,26 +529,26 @@
// ---------------------------------------------------------------------------
//
void CNcsAifEditor::DoCharChangeL()
- {
+ {
FUNC_LOG;
- RecalculateEntryPositions();
+ RecalculateEntryPositions();
- TChar previousChar = CharAtPos( CursorPos() - 1 );
- TBool sentinel = ( previousChar == KCharAddressDelimeterSemiColon ||
- previousChar == KCharAddressDelimeterComma );
- if ( sentinel )
+ TChar previousChar = CharAtPos( CursorPos() - 1 );
+ TBool sentinel = ( previousChar == KCharAddressDelimeterSemiColon ||
+ previousChar == KCharAddressDelimeterComma );
+ if ( sentinel )
{
// if comma was pressed we replace it with semicolon
- if ( previousChar == KCharAddressDelimeterComma )
+ if ( previousChar == KCharAddressDelimeterComma )
{
- CPlainText* text = Text();
- text->DeleteL( CursorPos() - 1, 1 );
- text->InsertL( CursorPos() - 1, KCharAddressDelimeterSemiColon );
+ CPlainText* text = Text();
+ text->DeleteL( CursorPos() - 1, 1 );
+ text->InsertL( CursorPos() - 1, KCharAddressDelimeterSemiColon );
}
- ParseNewAddressL();
+ ParseNewAddressL();
}
- UpdateAddressAutoCompletionL();
- }
+ UpdateAddressAutoCompletionL();
+ }
// ---------------------------------------------------------------------------
// CNcsAddressInputField::CharAtPos
@@ -618,15 +557,15 @@
TChar CNcsAifEditor::CharAtPos( TInt aPos ) const
{
FUNC_LOG;
- if ( aPos >= 0 && aPos < TextLength() )
+ if ( aPos >= 0 && aPos < TextLength() )
{
- TBuf<1> buf;
- Text()->Extract( buf, aPos, 1 );
- return buf[0];
+ TBuf<1> buf;
+ Text()->Extract( buf, aPos, 1 );
+ return buf[0];
}
- else
+ else
{
- return 0;
+ return 0;
}
}
@@ -645,8 +584,7 @@
// CNcsAifEditor::AppendAddressesL()
// -----------------------------------------------------------------------------
//
-void CNcsAifEditor::AppendAddressesL(
- const RPointerArray<CNcsEmailAddressObject>& aAddresses )
+void CNcsAifEditor::AppendAddressesL( const RPointerArray<CNcsEmailAddressObject>& aAddresses )
{
FUNC_LOG;
// First, add all the addresses without updating the editor text contents
@@ -654,13 +592,8 @@
{
AddAddressL( *aAddresses[i], EFalse );
}
-
- // Update editor text content after all the items have been added.
- SetCursorVisible( EFalse );
- const TInt count = iArray.Count();
- CNcsAifEntry* lastEntry = count ? iArray[count-1] : NULL;
- RepositionEntries( lastEntry );
- SetCursorVisible( ETrue );
+ // Update editor text content after all the items have been added
+ RepositionEntriesL( NULL );
}
// -----------------------------------------------------------------------------
@@ -669,17 +602,17 @@
//
const RPointerArray<CNcsEmailAddressObject>& CNcsAifEditor::GetAddressesL()
{
- // Clear the existing array since it may be out of sync
- iAddressArray.Reset();
+ // Clear the existing array since it may be out of sync
+ iAddressArray.Reset();
- for ( TInt i=0; i<iArray.Count(); i++ )
+ for ( TInt i=0 ; i<iArray.Count() ; i++ )
{
- iAddressArray.AppendL( &iArray[i]->Address() );
+ iAddressArray.AppendL(&iArray[i]->Address());
}
- return iAddressArray;
+ return iAddressArray;
}
-
+
// -----------------------------------------------------------------------------
// CNcsAifEditor::GetEntryAt()
// -----------------------------------------------------------------------------
@@ -777,29 +710,29 @@
void CNcsAifEditor::ParseNewAddressL()
{
FUNC_LOG;
- HBufC* text = GetNonEntryTextLC();
- __ASSERT_ALWAYS( text, Panic(EFSEmailUiNullPointerException) );
+ HBufC* text = GetNonEntryTextLC();
+ __ASSERT_ALWAYS( text, Panic(EFSEmailUiNullPointerException) );
- if ( text->Length() )
- {
+ if ( text->Length() )
+ {
// if changing focus leftover text is parsed to email
// object - we don't need to add it anymore
iAddLeftover = EFalse;
// check if there is a name for the email address
HBufC* name = CFsDelayedLoader::InstanceL()->GetContactHandlerL()->GetLastSearchNameL( *text );
- if ( name )
- {
+ if ( name )
+ {
CleanupStack::PushL( name );
- AddAddressL( *name, *text, ETrue );
- CleanupStack::PopAndDestroy( name );
- }
- else
- {
- AddAddressL( KNullDesC, *text );
- }
- }
-
- CleanupStack::PopAndDestroy(text);
+ AddAddressL( *name, *text, ETrue );
+ CleanupStack::PopAndDestroy( name );
+ }
+ else
+ {
+ AddAddressL( KNullDesC, *text );
+ }
+ }
+
+ CleanupStack::PopAndDestroy(text);
}
// -----------------------------------------------------------------------------
@@ -915,8 +848,7 @@
// CNcsAifEditor::AddAddressL()
// -----------------------------------------------------------------------------
//
-void CNcsAifEditor::AddAddressL( const CNcsEmailAddressObject& aAddress,
- TBool aUpdateEditorText /*= ETrue*/ )
+void CNcsAifEditor::AddAddressL( const CNcsEmailAddressObject& aAddress, TBool aUpdateEditorText /*= ETrue*/ )
{
FUNC_LOG;
CNcsAifEntry* entry = CNcsAifEntry::NewL( aAddress );
@@ -934,59 +866,57 @@
FUNC_LOG;
CNcsAifEntry* entry = CNcsAifEntry::NewL( aDisplayName, aEmail, aDisplayFull );
CleanupStack::PushL( entry );
- AddAddressL( entry, aUpdateEditorText );
- CleanupStack::Pop( entry );
+ AddAddressL( entry, aUpdateEditorText );
+ CleanupStack::Pop( entry );
}
void CNcsAifEditor::AddAddressL( CNcsAifEntry* aNewEntry, TBool aUpdateEditorText )
{
FUNC_LOG;
- TInt idx;
-
- // Check for duplicate display names
- for ( idx=0 ; idx<iArray.Count() ; idx++ )
+ TInt idx;
+
+ // Check for duplicate display names
+ for ( idx=0 ; idx<iArray.Count() ; idx++ )
{
- if ( iArray[idx]->IsSameDN(*aNewEntry) )
+ if ( iArray[idx]->IsSameDN(*aNewEntry) )
{
- iArray[idx]->SetDupL();
- aNewEntry->SetDupL();
+ iArray[idx]->SetDupL();
+ aNewEntry->SetDupL();
}
}
- // Find the location where we need to insert the address.
- // Browse from back to forth to make last index as default index.
- // This ensures items remain in correct order when populating field from
- // existing message.
- TInt cursorPos = CursorPos();
+ // Find the location where we need to insert the address.
+ // Browse from back to forth to make last index as default index.
+ // This ensures items remain in correct order when populating field from
+ // existing message.
+ TInt cursorPos = CursorPos();
// if we are at the end of editor the address was
// added from MRU list or separator was typed in
if ( cursorPos == Text()->DocumentLength() )
{
iAddLeftover = EFalse;
}
-
- for ( idx = iArray.Count() ; idx > 0 ; idx-- )
+
+ for ( idx = iArray.Count() ; idx > 0 ; idx-- )
{
- if ( cursorPos >= iArray[idx-1]->End() ) break;
+ if ( cursorPos >= iArray[idx-1]->End() ) break;
}
- if ( idx == iArray.Count() )
- {
- // Tack the address onto the end of the array
- iArray.AppendL( aNewEntry );
- }
- else
+ if ( idx == iArray.Count() )
{
- iArray.InsertL( aNewEntry, idx );
+ // Tack the address onto the end of the array
+ iArray.AppendL( aNewEntry );
}
-
- if ( aUpdateEditorText )
+ else
{
- // Trap because we must not leave after we have taken the ownership of
- // aNewEntry. Otherwise douple deletion might happen.
- SetCursorVisible( EFalse );
- RepositionEntries( aNewEntry );
- SetCursorVisible( ETrue );
+ iArray.InsertL( aNewEntry, idx );
}
+
+ if ( aUpdateEditorText )
+ {
+ // Trap because we must not leave after we have taken the ownership of aNewEntry.
+ // Otherwise douple deletion might happen.
+ TRAP_IGNORE( RepositionEntriesL( aNewEntry ) );
+ }
}
// ---------------------------------------------------------------------------
@@ -1036,37 +966,27 @@
}
// ---------------------------------------------------------------------------
-// CNcsAifEditor::RepositionEntries()
-// ---------------------------------------------------------------------------
-//
-TInt CNcsAifEditor::RepositionEntries( const CNcsAifEntry* aPosEntry )
- {
- FUNC_LOG;
- TRAPD( err, RepositionEntriesL( aPosEntry ) );
- return err;
- }
-
-// ---------------------------------------------------------------------------
// CNcsAifEditor::RepositionEntriesL()
// ---------------------------------------------------------------------------
//
void CNcsAifEditor::RepositionEntriesL( const CNcsAifEntry* aPosEntry )
- {
+ {
FUNC_LOG;
- TInt pos = 0;
- CNcsAifEntry* entry;
- for ( TInt i=0 ; i<iArray.Count() ; i++ )
- {
- entry = iArray[i];
- pos = entry->SetPos( pos );
- pos++; // for whitespace
- }
+ TInt pos = 0;
+ CNcsAifEntry* entry;
+ for ( TInt i=0 ; i<iArray.Count() ; i++ )
+ {
+ entry = iArray[i];
+ pos = entry->SetPos( pos );
+ pos++; // for whitespace
+ }
- // Reset the text
- HBufC* text = GetFormattedAddressListLC( iArray );
- // fix for dissapearing text PWAN-82DNEJ
- //SetCursorPosL( 0, EFalse ); //In case the cursor pos is invalid
-
+ // Reset the text
+ HBufC* text = NULL;
+ text = GetFormattedAddressListLC( iArray );
+ // fix for dissapearing text PWAN-82DNEJ
+ SetCursorPosL( 0, EFalse ); //In case the cursor pos is invalid
+
if ( iAddLeftover )
{
TInt lengthBefore = Text()->DocumentLength();
@@ -1081,10 +1001,10 @@
HBufC* newText = HBufC::NewLC( text->Length() + leftover.Length() );
TPtr newTextPtr = newText->Des();
// add all email addresses
- newTextPtr.Append( *text );
+ newTextPtr.Append( text->Des() );
// add the text that was after last email object
newTextPtr.Append( leftover );
-
+
SetTextL( newText );
CleanupStack::PopAndDestroy( newText );
CleanupStack::PopAndDestroy( textBefore );
@@ -1093,21 +1013,19 @@
{
SetTextL( text );
}
-
- if ( !aPosEntry )
- {
- // Set cursor at the beginning of the document.
- SetCursorPosL( 0, EFalse );
- }
- else
- {
- // Set the cursor at the end of the given entry
- SetCursorPosL( aPosEntry->End(), EFalse );
- }
-
CleanupStack::PopAndDestroy( text );
HandleTextChangedL();
- }
+
+ // Set the cursor at the end of the given entry
+ if ( !aPosEntry )
+ {
+ SetCursorPosL( 0, EFalse );
+ }
+ else
+ {
+ SetCursorPosL( aPosEntry->End(), EFalse );
+ }
+ }
// ---------------------------------------------------------------------------
// CNcsAifEditor::CheckAndRemoveInvalidEntriesL()
@@ -1165,19 +1083,19 @@
HBufC* CNcsAifEditor::GetLookupTextLC() const
{
FUNC_LOG;
- HBufC* text = GetTextInHBufL();
- CleanupStack::PushL( text );
- if ( text )
+ HBufC* text = GetTextInHBufL();
+
+ if (text == NULL) return NULL;
+
+ CleanupStack::PushL( text );
+ TPtr ptr( text->Des() );
+ TInt location = ptr.LocateReverse( KCharAddressDelimeterSemiColon );
+ if( location != KErrNotFound )
{
- TPtr ptr( text->Des() );
- TInt location = ptr.LocateReverse( KCharAddressDelimeterSemiColon );
- if ( location != KErrNotFound )
- {
- ptr = ptr.RightTPtr( ptr.Length() - location -1 );
- ptr.TrimLeft();
- }
+ ptr = ptr.RightTPtr( ptr.Length() - location -1 );
+ ptr.TrimLeft();
}
- return text;
+ return text;
}
// ---------------------------------------------------------------------------
@@ -1189,17 +1107,17 @@
TBool aDisplayList ) const
{
FUNC_LOG;
- TInt length = CalculateAddressListLength( aEntries, aDisplayList );
- if ( length <= 0 )
+ TInt length = CalculateAddressListLength( aEntries, aDisplayList );
+ if ( length <= 0 )
{
- return HBufC::NewLC(0);
+ return HBufC::NewLC(0);
}
-
- HBufC* buf = HBufC::NewLC( length );
- TPtr ptr = buf->Des();
-
- TInt count = aEntries.Count();
- for ( TInt i = 0; i < count; i++ )
+
+ HBufC* buf = HBufC::NewLC( length );
+ TPtr ptr = buf->Des();
+
+ TInt count = aEntries.Count();
+ for ( TInt i = 0; i < count; i++ )
{
if ( aDisplayList )
{
@@ -1228,12 +1146,12 @@
HBufC* CNcsAifEditor::GetFormattedAddressListL(
RPointerArray<CNcsAifEntry>& aEntries,
TBool aDisplayList ) const
- {
+ {
FUNC_LOG;
HBufC* buf = GetFormattedAddressListLC( aEntries, aDisplayList );
CleanupStack::Pop( buf );
return buf;
- }
+ }
// ---------------------------------------------------------------------------
// CNcsAifEditor::CalculateAddressListLength()
@@ -1284,12 +1202,12 @@
void CNcsAifEditor::UpdateAddressAutoCompletionL()
{
FUNC_LOG;
- HBufC* text = GetNonEntryTextLC();
- __ASSERT_ALWAYS( text, Panic(EFSEmailUiNullPointerException) );
+ HBufC* text = GetNonEntryTextLC();
+ __ASSERT_ALWAYS( text, Panic(EFSEmailUiNullPointerException) );
- iAddressPopupList->UpdatePopupContactListL( *text, EFalse );
- CleanupStack::PopAndDestroy( text );
- }
+ iAddressPopupList->UpdatePopupContactListL( *text, EFalse );
+ CleanupStack::PopAndDestroy( text );
+ }
// ---------------------------------------------------------------------------
// CNcsAifEditor::UpdateAddressAutoCompletionL()
@@ -1322,9 +1240,10 @@
void CNcsAifEditor::UpdateAddressListAllL()
{
FUNC_LOG;
- iAddressPopupList->UpdatePopupContactListL( KNullDesC, ETrue );
+ iAddressPopupList->UpdatePopupContactListL( KNullDesC, ETrue );
}
+
// ---------------------------------------------------------------------------
// Updates the duplicate markings in the entry array.
// ---------------------------------------------------------------------------
@@ -1387,23 +1306,38 @@
FUNC_LOG;
RecalculateEntryPositions();
TCursorSelection textSelection = NonEntryTextAtPos( CursorPos() );
+ TBool newEntryCreated = EFalse;
if ( textSelection.Length() )
{
// Check non-entry text for complete entries.
- const TBool newEntriesAdded = HandleTextUpdateL( textSelection );
- if ( newEntriesAdded )
+ newEntryCreated = HandleTextUpdateL( textSelection );
+ }
+
+ if ( newEntryCreated )
+ {
+ iAddressPopupList->ClosePopupContactListL();
+
+ // add line feed after new entry
+ TInt cursorPos( CursorPos() );
+ // related to PWAN-82DNEJ cursorPos shouldn't be 0 here
+ if (cursorPos == 0)
+ {
+ cursorPos = TextLength();
+ }
+
+ if ( !iPartialRemove )
{
- iAddressPopupList->ClosePopupContactListL();
- iSizeObserver->UpdateFieldSizeL( ETrue );
- iPartialRemove = EFalse;
+ Text()->InsertL( cursorPos, TChar(CEditableText::ELineBreak) );
}
- else
- {
- MoveNonEntryTextToDedicatedRowsL( CursorPos() );
- }
- textSelection = NonEntryTextAtPos( CursorPos() );
+ HandleTextChangedL();
+ SetCursorPosL( cursorPos + 1, EFalse );
+ iSizeObserver->UpdateFieldSizeL( ETrue );
+ iPartialRemove = EFalse;
}
- UpdateAddressAutoCompletionL( textSelection );
+ else
+ {
+ UpdateAddressAutoCompletionL( textSelection );
+ }
}
// ---------------------------------------------------------------------------
@@ -1416,10 +1350,10 @@
iAddLeftover = ETrue;
TInt firstCharacter = aSelection.LowerPos();
TInt lastCharacter = aSelection.HigherPos();
-
+
// get the inputted text
- const TInt length = lastCharacter - firstCharacter;
-
+ TInt length = lastCharacter - firstCharacter;
+
HBufC* text = HBufC::NewLC( length );
TPtr ptr = text->Des();
Text()->Extract( ptr, firstCharacter, length );
@@ -1477,114 +1411,30 @@
}
}
}
-
+
// add email that wasn't ended with semicolon
if ( lastSentinel != KErrNotFound )
{
if ( lastSentinel < end && start < end )
{
AddAddressL( KNullDesC(), ptr.Mid(start, end-start) );
- entriesFound = ETrue;
}
}
-
+
CleanupStack::PopAndDestroy( text );
+
return entriesFound;
}
// ---------------------------------------------------------------------------
-// Moves inputted non-entry text to separate row
-// ---------------------------------------------------------------------------
-//
-void CNcsAifEditor::MoveNonEntryTextToDedicatedRowsL( TUint aPosition )
- {
- // Get the non-entry text and whitespace at given location
- TCursorSelection textSelection = NonEntryTextAndSpaceAtPos( aPosition );
- const TInt start = textSelection.LowerPos();
- const TInt end = textSelection.HigherPos();
- const TInt length = end - start;
-
- const TChar lineBreak = TChar( CEditableText::ELineBreak );
- const TChar paragraphDelimiter =
- TChar( CEditableText::EParagraphDelimiter );
-
- // Make sure that the inputted non-entry text is not on the same lines
- // with existing entries.
- if ( length )
- {
- HBufC* text = HBufC::NewLC( length );
- TPtr ptr = text->Des();
- Text()->Extract( ptr, start, length );
-
- const TChar firstCharacter = TChar( ptr[0] );
- const TChar lastCharacter = TChar( ptr[length-1] );
- const TInt documentLength = Text()->DocumentLength();
-
- TBool textChanged = EFalse;
-
- if ( end < documentLength &&
- lastCharacter != paragraphDelimiter &&
- lastCharacter != lineBreak )
- {
- Text()->InsertL( end, lineBreak );
- HandleTextChangedL();
- textChanged = ETrue;
- }
-
- if ( start > 0 && start < end &&
- firstCharacter != paragraphDelimiter &&
- firstCharacter != lineBreak )
- {
- Text()->InsertL( start, lineBreak );
- SetCursorVisible( EFalse );
- HandleTextChangedL();
- SetCursorPosL( CursorPos() + 1, EFalse );
- SetCursorVisible( ETrue );
- textChanged = ETrue;
- }
-
- if ( textChanged )
- {
- RecalculateEntryPositions();
- }
-
- CleanupStack::PopAndDestroy( text );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Prepares for text entry to given cursor position making sure that the
-// new text will not be entered on same row with existing
-// ---------------------------------------------------------------------------
-//
-void CNcsAifEditor::PrepareForTextInputL( TUint aPosition )
- {
- FUNC_LOG;
- // Get the non-entry text and whitespace at given position.
- TCursorSelection textSelection = NonEntryTextAndSpaceAtPos( aPosition );
- const TInt start = textSelection.LowerPos();
- const TInt end = textSelection.HigherPos();
- const TInt length = end - start;
-
- const TChar lineBreak = TChar( CEditableText::ELineBreak );
-
- if ( start > 0 && ( !length || aPosition == start ) )
- {
- Text()->InsertL( start, lineBreak );
- HandleTextChangedL();
- SetCursorPosL( start + 1, EFalse );
- }
- }
-
-// ---------------------------------------------------------------------------
// Handles navigation event.
// ---------------------------------------------------------------------------
//
void CNcsAifEditor::HandleNavigationEventL()
{
FUNC_LOG;
- // Close the contact popup when cursor is moved withing the field to make
- // it less distracting. It's reopened when user types something.
+ // Close the contact popup when cursor is moved withing the field to make it less distracting.
+ // It's reopened when user types something.
iAddressPopupList->ClosePopupContactListL();
}
@@ -1595,51 +1445,6 @@
TCursorSelection CNcsAifEditor::NonEntryTextAtPos( TUint aPosition ) const
{
FUNC_LOG;
- // Get the range of non-entry text and whitespace at given position.
- TCursorSelection text = NonEntryTextAndSpaceAtPos( aPosition );
-
- // Get the selected text to remove whitespace
- const TInt length = text.Length();
-
- HBufC* selectedText = NULL;
- TRAPD( err, selectedText = HBufC::NewL( length ) );
-
- if( err == KErrNone )
- {
- TPtr ptr = selectedText->Des();
- Text()->Extract( ptr, text.LowerPos(), length );
-
- // trim from end
- TInt index( length - 1 );
-
- while( index >= 0 && IsWhitespace( ptr[index--] ) )
- {
- text.iCursorPos--;
- }
-
- // trim from begin
- index = 0;
-
- while( index < length && IsWhitespace( ptr[index++] ) )
- {
- text.iAnchorPos++;
- }
-
- delete selectedText;
- selectedText = NULL;
- }
-
- return text;
- }
-
-// ---------------------------------------------------------------------------
-// Gets non-entry text including surrounding whitespace at given position.
-// ---------------------------------------------------------------------------
-//
-TCursorSelection CNcsAifEditor::NonEntryTextAndSpaceAtPos(
- TUint aPosition ) const
- {
- FUNC_LOG;
TCursorSelection text( TextLength(), 0 );
for ( TInt ii = iArray.Count() - 1; ii >= 0; --ii )
{
@@ -1662,6 +1467,37 @@
}
}
+ // get the selected text to remove whitespace
+ TInt length( text.Length() );
+
+ HBufC* selectedText = NULL;
+ TRAPD( err, selectedText = HBufC::NewL( length ) );
+
+ if( err == KErrNone )
+ {
+ TPtr ptr = selectedText->Des();
+ Text()->Extract( ptr, text.LowerPos(), length );
+
+ // trim from end
+ TInt index( length - 1 );
+
+ while( index >= 0 && IsWhitespace( ptr[index--] ) )
+ {
+ text.iCursorPos--;
+ }
+
+ // trim from begin
+ index = 0;
+
+ while( index < length && IsWhitespace( ptr[index++] ) )
+ {
+ text.iAnchorPos++;
+ }
+
+ delete selectedText;
+ selectedText = NULL;
+ }
+
return text;
}
@@ -1704,18 +1540,6 @@
}
// ---------------------------------------------------------------------------
-// Checks whether given character is considered as line delimiter.
-// ---------------------------------------------------------------------------
-//
-//
-TBool CNcsAifEditor::IsDelimiter( TChar aCharacter ) const
- {
- FUNC_LOG;
- return ( aCharacter == TChar( CEditableText::ELineBreak) ||
- aCharacter == TChar( CEditableText::EParagraphDelimiter) );
- }
-
-// ---------------------------------------------------------------------------
// Checks whether given character is considered as whitespace.
// ---------------------------------------------------------------------------
//
@@ -1723,8 +1547,8 @@
{
FUNC_LOG;
return ( aCharacter == KCharSpace ||
- aCharacter == TChar(CEditableText::ELineBreak) ||
- aCharacter == TChar(CEditableText::EParagraphDelimiter) );
+ aCharacter == TChar(CEditableText::ELineBreak) ||
+ aCharacter == TChar(CEditableText::EParagraphDelimiter) );
}
// ---------------------------------------------------------------------------
@@ -1824,68 +1648,61 @@
//adjust touch point to mach editor coordinates
touchPoint.iX -= Position().iX;
-
- TInt pointerLineNbr = textLayout->GetLineNumber(
- textLayout->XyPosToDocPosL( touchPoint ) );
+
+ TInt pointerLineNbr = textLayout->GetLineNumber( textLayout->XyPosToDocPosL( touchPoint ));
TInt cursorLineNbr = textLayout->GetLineNumber( cursorPos );
-
+
+
if ( pointerLineNbr != cursorLineNbr )
{
CompleteEntryL();
// We're moving to a new line.
- CNcsAifEntry* entry = GetEntryAt( CursorPos() );
+ CNcsAifEntry* entry = NULL;
+ entry = GetEntryAt( CursorPos() );
if ( entry )
{
SetSelectionL( entry->iCursorPos, entry->iAnchorPos );
}
- }
+ }
}
-
+
CEikEdwin::HandlePointerEventL( aPointerEvent );
-
- // Do not allow to insert cursor into the middle of some entry
- CNcsAifEntry* entry = GetEntryAt( CursorPos() );
- if ( entry )
- {
- SetSelectionL( entry->iCursorPos, entry->iAnchorPos );
- }
}
// -----------------------------------------------------------------------------
// CNcsAifEditor::CompleteEntryL()
-// Adds semicolon to the end of the entry.
+// Adds semicolol to the of the entry
// -----------------------------------------------------------------------------
//
void CNcsAifEditor::CompleteEntryL()
{
// make sure there is really some text inputted
- const TInt cursorPos = CursorPos();
+ TInt cursorPos( CursorPos() );
TCursorSelection selection = NonEntryTextAtPos( cursorPos );
- const TInt length = selection.Length();
+
+ TInt length( selection.Length() );
- if ( length > 0 && selection.LowerPos() >= 0 )
+ HBufC* text = HBufC::NewLC( length );
+ TPtr ptr = text->Des();
+
+ if( selection.LowerPos() >= 0 )
{
- HBufC* text = HBufC::NewLC( length );
- TPtr ptr = text->Des();
-
Text()->Extract( ptr, selection.LowerPos(), length );
ptr.Trim();
-
+
// complete the entry
- if ( ptr.Length() > 0 )
+ if( ptr.Length() > 0 )
{
Text()->InsertL( selection.HigherPos(), KCharAddressDelimeterSemiColon );
HandleTextChangedL();
- HandleTextUpdateL( TCursorSelection( selection.LowerPos(),
- selection.HigherPos() + 1 ) );
+ HandleTextUpdateL( TCursorSelection(selection.LowerPos(), selection.HigherPos() + 1) );
}
+ }
- CleanupStack::PopAndDestroy( text );
- }
+ CleanupStack::PopAndDestroy( text );
}
-
// End of File
--- a/emailuis/emailui/src/ncsattachmentfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncsattachmentfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -37,11 +37,13 @@
CNcsAttachmentField* CNcsAttachmentField::NewL(
TInt aLabelTextId,
MNcsFieldSizeObserver* aSizeObserver,
+ MNcsAttachmentFieldObserver* aObserver,
CNcsHeaderContainer* aParentControl )
{
FUNC_LOG;
CNcsAttachmentField* self =
- new ( ELeave ) CNcsAttachmentField( aLabelTextId, aSizeObserver, aParentControl );
+ new ( ELeave ) CNcsAttachmentField( aLabelTextId, aSizeObserver,
+ aObserver, aParentControl );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
@@ -66,9 +68,11 @@
//
CNcsAttachmentField::CNcsAttachmentField( TInt aLabelTextId,
MNcsFieldSizeObserver* aSizeObserver,
+ MNcsAttachmentFieldObserver* aObserver,
CNcsHeaderContainer* aParentControl ):
MNcsControl( aSizeObserver ),
iParentControl( aParentControl ),
+ iObserver( aObserver ),
iLabelTextId ( aLabelTextId ),
iFocusedLabelIndex( KNoAttachmentLabelFocused )
{
@@ -274,12 +278,11 @@
// -----------------------------------------------------------------------------
//
void CNcsAttachmentField::SetContainerWindowL( const CCoeControl& aContainer )
- {
+ {
FUNC_LOG;
- CCoeControl::SetContainerWindowL( aContainer );
-
- UpdateComponentArrayL();
- }
+ CCoeControl::SetContainerWindowL( aContainer );
+ UpdateComponentArrayL();
+ }
// -----------------------------------------------------------------------------
// CNcsAttachmentField::UpdateComponentArrayL()
@@ -376,13 +379,23 @@
// CNcsAttachmentField::FocusedAttachmentLabelIndex()
// -----------------------------------------------------------------------------
//
-TInt CNcsAttachmentField::FocusedAttachmentLabelIndex()
+TInt CNcsAttachmentField::FocusedAttachmentLabelIndex() const
{
FUNC_LOG;
return iFocusedLabelIndex;
}
// -----------------------------------------------------------------------------
+// CNcsAttachmentField::SetFocusedAttachmentLabelIndex()
+// -----------------------------------------------------------------------------
+//
+void CNcsAttachmentField::SetFocusedAttachmentLabelIndex( TInt aIndex )
+ {
+ FUNC_LOG;
+ iFocusedLabelIndex = aIndex;
+ }
+
+// -----------------------------------------------------------------------------
// CNcsAttachmentField::UpdateAttachmentTextsL()
// -----------------------------------------------------------------------------
//
@@ -457,14 +470,14 @@
// -----------------------------------------------------------------------------
//
void CNcsAttachmentField::FocusChanged( TDrawNow aDrawNow )
- {
+ {
FUNC_LOG;
- if ( IsFocused() )
- {
- for ( TInt i( 0 ); i<iAttachmentLabelCount; ++i )
- {
- iAttachmentLabels[i]->SetFocus( i==iFocusedLabelIndex );
- }
+ if ( IsFocused() )
+ {
+ for ( TInt i( 0 ); i < iAttachmentLabelCount; ++i )
+ {
+ iAttachmentLabels[i]->SetFocus( i==iFocusedLabelIndex );
+ }
// make sure that control is visible on screen
if ( Rect().iTl.iY < 0 )
{
@@ -492,26 +505,26 @@
{
TRAP_IGNORE( iParentControl->SetMskL() );
}
- }
- else
- {
- for ( TInt i( 0 ); i<iAttachmentLabelCount; ++i )
- {
- iAttachmentLabels[i]->SetFocus( EFalse );
- }
- }
-
+ }
+ else
+ {
+ for ( TInt i( 0 ); i<iAttachmentLabelCount; ++i )
+ {
+ iAttachmentLabels[i]->SetFocus( EFalse );
+ }
+ }
+
UpdateColors();
-
- if ( aDrawNow )
- {
- DrawNow();
- }
- else
- {
- DrawDeferred();
- }
- }
+
+ if ( aDrawNow )
+ {
+ DrawNow();
+ }
+ else
+ {
+ DrawDeferred();
+ }
+ }
// -----------------------------------------------------------------------------
// CNcsAttachmentField::UpdateColors()
@@ -662,7 +675,7 @@
{
FUNC_LOG;
CCoeControl::HandlePointerEventL( aPointerEvent );
-
+
if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
Rect().Contains( aPointerEvent.iPosition ) )
{
@@ -679,7 +692,7 @@
{
feedback->InstantFeedback( this, ETouchFeedbackBasic );
}
-
+
if ( iFocusedLabelIndex != i )
{
focusedAttachmentLabelIndexChanged = ETrue;
@@ -712,6 +725,67 @@
}
// -----------------------------------------------------------------------------
+// CNcsAttachmentField::OfferKeyEventL()
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CNcsAttachmentField::OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ TKeyResponse response = EKeyWasNotConsumed;
+ TBool focusedAttachmentLabelIndexChanged = EFalse;
+
+ if ( aType == EEventKey )
+ {
+ if ( aKeyEvent.iCode == EKeyUpArrow )
+ {
+ if ( iFocusedLabelIndex > 0 )
+ {
+ iFocusedLabelIndex -= 1;
+ focusedAttachmentLabelIndexChanged = ETrue;
+ response = EKeyWasConsumed;
+ }
+ }
+ else if ( aKeyEvent.iCode == EKeyDownArrow )
+ {
+ if ( iFocusedLabelIndex < iAttachmentLabelCount - 1 )
+ {
+ iFocusedLabelIndex += 1;
+ focusedAttachmentLabelIndexChanged = ETrue;
+ response = EKeyWasConsumed;
+ }
+ }
+ else if ( aKeyEvent.iCode == EKeyBackspace ||
+ aKeyEvent.iCode == EKeyDelete )
+ {
+ iObserver->AttachmentRemoveL();
+ response = EKeyWasConsumed;
+ }
+ else if ( aKeyEvent.iCode == EKeyEnter ||
+ aKeyEvent.iScanCode == EStdKeyEnter ||
+ aKeyEvent.iCode == EKeyOK ||
+ aKeyEvent.iScanCode == EStdKeyDevice3 )
+ {
+ iObserver->AttachmentOpenL();
+ response = EKeyWasConsumed;
+ }
+ }
+
+ if ( focusedAttachmentLabelIndexChanged )
+ {
+ // only redraw if focused attachment label changed
+ for ( TInt i = 0; i < iAttachmentLabelCount; i++ )
+ {
+ iAttachmentLabels[i]->SetFocus( i == iFocusedLabelIndex );
+ }
+
+ UpdateColors();
+ DrawDeferred();
+ }
+
+ return response;
+ }
+
+// -----------------------------------------------------------------------------
// CNcsAttachmentField::CreateIcons()
// -----------------------------------------------------------------------------
//
--- a/emailuis/emailui/src/ncscomposeview.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncscomposeview.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -37,7 +37,6 @@
#include <freestyleemailui.mbg>
#include <aknstyluspopupmenu.h>
-#include <wlaninternalpskeys.h>
#include "ncscomposeview.h"
#include "ncscomposeviewcontainer.h"
#include "ncsconstants.h"
@@ -87,10 +86,9 @@
iMsvSession( aMsvSession ), iEnv( aEnv ),
iFakeSyncGoingOn(EFalse), iFetchDialogCancelled(EFalse),
iExecutingDoExitL( EFalse ),
- iMessageTextPartModified( EFalse ), iMessageModified( EFalse ),
- iIncludeMessageTextAsync( EFalse ), iChildActivationState( EChildActivationDeactivated )
+ iMessageTextPartModified( EFalse ), iMessageModified( EFalse )
{
- FUNC_LOG;
+ FUNC_LOG;
iAttachmentListSaveDraft = EFalse;
@@ -290,7 +288,7 @@
TUid aCustomMessageId, const TDesC8& aCustomMessage )
{
FUNC_LOG;
- iChildActivationState = EChildActivationStarted;
+
// needed when "Opening" (replying/forwarding)note is shown and
// we receive incoming call- Email application goes to background.
// When coming back to application the view is activated and reseted.
@@ -347,19 +345,7 @@
// once from BaseView.
if ( iLaunchParams.iActivatedExternally )
{
- //notify Contact details view to close on external activation
- CFSEmailUiContactHandler* contactHandler = NULL; // not owned
- CFsDelayedLoader* delLoader = CFsDelayedLoader::InstanceL(); // not owned
- if( delLoader )
- {
- contactHandler = delLoader->GetContactHandlerL();
-
- if( contactHandler && aPrevViewId.iViewUid == contactHandler->GetDetailsViewUid() )
- {
- contactHandler->CloseContactDetailsL();
- }
- iAppUi.ViewActivatedExternallyL( Id() );
- }
+ iAppUi.ViewActivatedExternallyL( Id() );
}
// Try to get the mailbox by other means if using launch parameters failed
@@ -448,51 +434,41 @@
Toolbar()->SetDimmed( EFalse );
RefreshToolbar();
iContainer->ActivateL();
-
+ }
// if there is a embedded app in FSEmail.
if( iAppUi.EmbeddedApp() )
- {
- // Set email editor started from embedded app flag to true
- // so that we can switch view correct when sent email.
- iAppUi.SetEditorStartedFromEmbeddedApp( ETrue );
+ {
+ // Set email editor started from embedded app flag to true
+ // so that we can switch view correct when sent email.
+ iAppUi.SetEditorStartedFromEmbeddedApp( ETrue );
RWsSession rwsSession;
- User::LeaveIfError( rwsSession.Connect() );
- CleanupClosePushL( rwsSession );
+ User::LeaveIfError( rwsSession.Connect() );
+ CleanupClosePushL( rwsSession );
// Simulate a back key to exit embedded app
- // so that email editor could show on the top level.
- TKeyEvent KeyEvent = TKeyEvent();
- // this is neccesary for photogalery image viewer (don't remove)
- KeyEvent.iScanCode = EStdKeyUpArrow;
- rwsSession.SimulateKeyEvent( KeyEvent );
- KeyEvent.iCode = EKeyCBA2;
- rwsSession.SimulateKeyEvent( KeyEvent );
+ // so that email editor could show on the top level.
+ TKeyEvent KeyEvent = TKeyEvent();
+ // this is neccesary for photogalery image viewer (don't remove)
+ KeyEvent.iScanCode = EStdKeyUpArrow;
+ rwsSession.SimulateKeyEvent( KeyEvent );
+ KeyEvent.iCode = EKeyCBA2;
+ rwsSession.SimulateKeyEvent( KeyEvent );
rwsSession.Close();
- CleanupStack::PopAndDestroy( &rwsSession );
- }
+ CleanupStack::PopAndDestroy( &rwsSession );
+ }
if ( iIncludeMessageTextAsync )
- {
- // including message body in async way
- IncludeMessageTextAsyncL( ETrue );
- }
-
- iViewFullyActivated = ETrue;
- iChildActivationState = EChildActivationProcessed;
+ {
+ // including message body in async way
+ IncludeMessageTextAsyncL( ETrue );
+ }
+
+ iViewFullyActivated = ETrue;
TIMESTAMP( "Editor launched" );
- return; // ok
- }
-// problems with init close the view asynchronously
- iViewFullyActivated = EFalse;
- iChildActivationState = EChildActivationExitRequired;
-// iFakeSyncGoingOn = EFalse; iExecutingDoExitL = EFalse;
- iActiveHelper->Start(); // calls AsyncExit()
- TIMESTAMP( "Editor NOT launched" );
- return;
}
// -----------------------------------------------------------------------------
@@ -819,9 +795,7 @@
{
SaveAndCleanPreviousMessage();
}
-
- iChildActivationState = EChildActivationDeactivated ;
-
+
}
// -----------------------------------------------------------------------------
@@ -967,10 +941,6 @@
{
case ENcsCmdSend:
{
- // Set focus on body of message need for correct
- // MSK setting for CAknConfirmationNote dialog.
- iContainer->SetFocusToMessageFieldL();
-
// Show query if the Subject field is empty
if ( iContainer->IsSubjectFieldEmpty() )
{
@@ -989,7 +959,7 @@
{
// Sending successful
HBufC* confMessage = NULL;
- if ( !TFsEmailUiUtility::IsOfflineModeL() || WLANConnectionActive() )
+ if ( !TFsEmailUiUtility::IsOfflineModeL() )
{
// when sync status is currently ONLINE
confMessage = StringLoader::LoadLC(
@@ -1089,38 +1059,29 @@
break;
case ENcsCmdPriorityHigh:
{
- if ( iNewMessage )
- {
- iNewMessage->ResetFlag( EFSMsgFlag_Low );
- iNewMessage->SetFlag( EFSMsgFlag_Important );
- iNewMessage->SaveMessageL();
- iMessageModified = EFalse;
- iStatusPaneIndicators->SetPriorityFlag( EMsgPriorityHigh );
- }
+ iNewMessage->ResetFlag( EFSMsgFlag_Low );
+ iNewMessage->SetFlag( EFSMsgFlag_Important );
+ iNewMessage->SaveMessageL();
+ iMessageModified = EFalse;
+ iStatusPaneIndicators->SetPriorityFlag( EMsgPriorityHigh );
}
break;
case ENcsCmdPriorityNormal:
{
- if ( iNewMessage )
- {
- iNewMessage->ResetFlag( EFSMsgFlag_Low );
- iNewMessage->ResetFlag( EFSMsgFlag_Important );
- iNewMessage->SaveMessageL();
- iMessageModified = EFalse;
- iStatusPaneIndicators->SetPriorityFlag( EMsgPriorityNormal );
- }
+ iNewMessage->ResetFlag( EFSMsgFlag_Low );
+ iNewMessage->ResetFlag( EFSMsgFlag_Important );
+ iNewMessage->SaveMessageL();
+ iMessageModified = EFalse;
+ iStatusPaneIndicators->SetPriorityFlag( EMsgPriorityNormal );
}
break;
case ENcsCmdPriorityLow:
{
- if ( iNewMessage )
- {
- iNewMessage->ResetFlag( EFSMsgFlag_Important );
- iNewMessage->SetFlag( EFSMsgFlag_Low );
- iNewMessage->SaveMessageL();
- iMessageModified = EFalse;
- iStatusPaneIndicators->SetPriorityFlag( EMsgPriorityLow );
- }
+ iNewMessage->ResetFlag( EFSMsgFlag_Important );
+ iNewMessage->SetFlag( EFSMsgFlag_Low );
+ iNewMessage->SaveMessageL();
+ iMessageModified = EFalse;
+ iStatusPaneIndicators->SetPriorityFlag( EMsgPriorityLow );
}
break;
case ENcsCmdShowCc:
@@ -1207,8 +1168,7 @@
break;
case EAknSoftkeyClose:
{
- if ( !iAddingAttachmentDialogOpened )
- DoSafeExit();
+ DoSafeExit();
}
break;
case ENcsCmdExit:
@@ -1243,12 +1203,7 @@
User::Leave( KErrNotFound );
}
- TRAPD( commitErr, CommitL( ETrue, EAllFields, ETrue ) );
- if ( KErrNone != commitErr )
- {
- iMailSendFailed = ETrue;
- User::Leave( commitErr );
- }
+ CommitL( ETrue, EAllFields, ETrue );
TRAPD(r, iMailBox->SendMessageL( *iNewMessage ) );
if ( KErrNone != r )
@@ -1731,7 +1686,8 @@
TFsEmailUiUtility::CreatePlainTextPartL(
*iNewMessage, iNewMessageTextPart );
InitFieldsL();
- IncludeMessageTextL();
+ TBool spaceInBegin = ETrue;
+ IncludeMessageTextL(spaceInBegin);
AttachmentsListControl()->Model()->Clear();
GetAttachmentsFromMailL();
SetAttachmentLabelContentL();
@@ -1823,7 +1779,7 @@
{
FUNC_LOG;
- if ( iFirstStartCompleted && iContainer && !iExecutingDoExitL )
+ if ( iFirstStartCompleted && iContainer )
{
if ( aType == CFsEmailUiViewBase::EScreenLayoutChanged )
{
@@ -1840,23 +1796,6 @@
}
-// ---------------------------------------------------------------------------
-// CNcsComposeView::FadeOut()
-// enables hiding toolbar on different view -> DoActivate()
-// which is earlier than -> CFsEmailUiViewBase::DoDeactivate()
-// -----------------------------------------------------------------------------
-//
-void CNcsComposeView::FadeOut( TBool aDirectionOut )
- {
- if ( aDirectionOut && Toolbar()->IsShown() )
- {
- HideToolbar();
- }
- else if ( ! ( aDirectionOut || Toolbar()->IsShown() ) )
- {
- ShowToolbar();
- }
- }
// -----------------------------------------------------------------------------
// CNcsComposeView::InitReplyFieldsL()
// Initialises the reply fields from the reply message created by the plug-in.
@@ -2287,70 +2226,56 @@
break;
}
- if ( iNewMessage )
+ if ( commitToField )
+ {
+ RPointerArray<CFSMailAddress>& recipients =
+ iNewMessage->GetToRecipients();
+ recipients.ResetAndDestroy();
+ NcsUtility::ConvertAddressArrayL(
+ iContainer->GetToFieldAddressesL( aParseAddresses ), recipients );
+ }
+
+ if ( commitCcField )
+ {
+ RPointerArray<CFSMailAddress>& recipients =
+ iNewMessage->GetCCRecipients();
+ recipients.ResetAndDestroy();
+ NcsUtility::ConvertAddressArrayL(
+ iContainer->GetCcFieldAddressesL( aParseAddresses ), recipients );
+ }
+
+ if ( commitBccField )
+ {
+ RPointerArray<CFSMailAddress>& recipients =
+ iNewMessage->GetBCCRecipients();
+ recipients.ResetAndDestroy();
+ NcsUtility::ConvertAddressArrayL(
+ iContainer->GetBccFieldAddressesL( aParseAddresses ), recipients );
+ }
+
+ if ( commitSubjectField )
{
- if ( commitToField )
- {
- RPointerArray<CFSMailAddress>& recipients =
- iNewMessage->GetToRecipients();
- recipients.ResetAndDestroy();
- NcsUtility::ConvertAddressArrayL(
- iContainer->GetToFieldAddressesL( aParseAddresses ), recipients );
- }
-
- if ( commitCcField )
- {
- RPointerArray<CFSMailAddress>& recipients =
- iNewMessage->GetCCRecipients();
- recipients.ResetAndDestroy();
- NcsUtility::ConvertAddressArrayL(
- iContainer->GetCcFieldAddressesL( aParseAddresses ), recipients );
- }
-
- if ( commitBccField )
- {
- RPointerArray<CFSMailAddress>& recipients =
- iNewMessage->GetBCCRecipients();
- recipients.ResetAndDestroy();
- NcsUtility::ConvertAddressArrayL(
- iContainer->GetBccFieldAddressesL( aParseAddresses ), recipients );
- }
-
- if ( commitSubjectField )
- {
- // get subject from UI to MSG object
- HBufC* subject = iContainer->GetSubjectLC();
- TPtr ptr = subject->Des();
- // replace new line characters with spaces as Subject is normally
- // one line only
- AknTextUtils::ReplaceCharacters(
- ptr, KLineSeparators, KReplacementChar );
- iNewMessage->SetSubject( *subject );
- CleanupStack::PopAndDestroy( subject );
- }
+ // get subject from UI to MSG object
+ HBufC* subject = iContainer->GetSubjectLC();
+ TPtr ptr = subject->Des();
+ // replace new line characters with spaces as Subject is normally
+ // one line only
+ AknTextUtils::ReplaceCharacters(
+ ptr, KLineSeparators, KReplacementChar );
+ iNewMessage->SetSubject( *subject );
+ CleanupStack::PopAndDestroy( subject );
+ }
+
+ if ( commitBodyField )
+ {
+ HBufC* body = iContainer->GetBodyContentLC();
+ TPtr bodyPtr = body->Des(); // this TPtr is needed only because of
+ // incorrect argument type in FW API, can be removed when API fixed
+ iNewMessageTextPart->SetContent( bodyPtr );
+ CleanupStack::PopAndDestroy( body );
+ iMessageTextPartModified = ETrue;
}
- else // iNewMessage is still NULL
- {
- User::Leave( KErrNotFound );
- }
-
- if ( iNewMessageTextPart )
- {
- if ( commitBodyField )
- {
- HBufC* body = iContainer->GetBodyContentLC();
- TPtr bodyPtr = body->Des(); // this TPtr is needed only because of
- // incorrect argument type in FW API, can be removed when API fixed
- iNewMessageTextPart->SetContent( bodyPtr );
- CleanupStack::PopAndDestroy( body );
- iMessageTextPartModified = ETrue;
- }
- }
- else // iNewMessageTextPart is still NULL
- {
- User::Leave( KErrNotFound );
- }
-
+
iMessageModified = ETrue;
RefreshToolbar();
@@ -2531,13 +2456,7 @@
CFSMailMessagePart* msgPart =
iNewMessage->ChildPartL( item->MailMsgPartId() );
CleanupStack::PushL( msgPart );
-
- //We are forbidding to change MSK label during OpenAttachmentL
- //because dialog/popup can be open
- iContainer->SwitchChangeMskOff( ETrue );
TFsEmailUiUtility::OpenAttachmentL( *msgPart );
- iContainer->SwitchChangeMskOff( EFalse );
-
CleanupStack::PopAndDestroy( msgPart );
}
}
@@ -2935,10 +2854,6 @@
}
TFsEmailUiUtility::CreatePlainTextPartL( *iNewMessage, iNewMessageTextPart );
- if (NULL == iNewMessageTextPart) // problems with creating
- {
- User::Leave( KErrUnknown );
- }
}
// -----------------------------------------------------------------------------
@@ -2990,10 +2905,7 @@
TFsEmailUiUtility::CreatePlainTextPartL(
*iNewMessage, iNewMessageTextPart );
- if (NULL == iNewMessageTextPart) // problems with creating
- {
- User::Leave( KErrUnknown );
- }
+
}
// -----------------------------------------------------------------------------
@@ -3219,11 +3131,7 @@
{
if ( !aError )
{
- // may leave if unable to create new message part
TRAP( aError, InitReplyOrForwardUiL() );
- }
- if ( !aError )
- {
iAutoSaver->Enable( ETrue );
}
else
@@ -3273,16 +3181,6 @@
{
FUNC_LOG;
- // dont exit while in child activation
- if ( EChildActivationStarted == iChildActivationState )
- {
- iChildActivationState = EChildActivationError;
- }
- if ( EChildActivationError == iChildActivationState )
- {
- return;
- }
-
if ( iStatusPaneIndicators )
{
iStatusPaneIndicators->HideStatusPaneIndicators();
@@ -3352,7 +3250,7 @@
delete iContainer;
iContainer = NULL;
}
- iIncludeMessageTextAsync = EFalse;
+
}
// -----------------------------------------------------------------------------
@@ -3410,11 +3308,7 @@
void CNcsComposeView::AsyncExitL()
{
FUNC_LOG;
- if ( EChildActivationExitRequired == iChildActivationState )
- {
- ExitComposer();
- }
- else if ( iFakeSyncGoingOn || iExecutingDoExitL )
+ if ( iFakeSyncGoingOn || iExecutingDoExitL )
{
// if some sync method is still going on, we continue waiting
iActiveHelper->Cancel();
@@ -3508,30 +3402,6 @@
}
// ---------------------------------------------------------------------------
-// Returns ETrue if WLAN connection is active.
-// ---------------------------------------------------------------------------
-//
-TBool CNcsComposeView::WLANConnectionActive()
- {
- TBool ret = EFalse;
-
- TInt wlanState;
- TInt err = RProperty::Get( KPSUidWlan, KPSWlanIndicator, wlanState );
-
- if ( err == KErrNone )
- {
- if ( wlanState == EPSWlanIndicatorActive ||
- wlanState == EPSWlanIndicatorActiveSecure )
- {
- ret = ETrue;
- }
- }
-
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
// CActiveHelper::NewL()
// ---------------------------------------------------------------------------
//
@@ -3581,9 +3451,7 @@
void CActiveHelper::RunL()
{
if( iComposeView )
- {
iComposeView->AsyncExitL();
- }
}
// ---------------------------------------------------------------------------
--- a/emailuis/emailui/src/ncscomposeviewcontainer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncscomposeviewcontainer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -148,7 +148,7 @@
// Listen edwin events and size events from smart quote field
iReadOnlyQuoteField->AddEdwinObserverL( this );
iReadOnlyQuoteField->SetEdwinSizeObserver( this );
- iReadOnlyQuoteField->EnableKineticScrollingL( iPhysics );
+ iReadOnlyQuoteField->EnableKineticScrollingL( iPhysics );
// Create the scroll bar
iScrollBar = new( ELeave ) CAknDoubleSpanScrollBar( this );
@@ -199,16 +199,16 @@
iAsyncTextFormatter->Cancel();
delete iAsyncTextFormatter;
}
-
+
if ( iContactHandler )
{
iContactHandler->ClearObservers();
}
- delete iHeader;
+ delete iHeader;
delete iScrollBar;
delete iMessageField;
delete iBgContext;
- delete iLongTapDetector;
+ delete iLongTapDetector;
delete iReadOnlyQuoteField;
delete iReadOnlyQuote;
@@ -232,6 +232,10 @@
{
iFocused = iHeader;
}
+ if ( iFocused == iHeader )
+ {
+ iHeader->ShowCursor( IsFocused() );
+ }
iFocused->SetFocus( IsFocused(), aDrawNow );
iView.HandleContainerChangeRequiringToolbarRefresh();
@@ -241,6 +245,7 @@
DrawNow();
}
}
+
// -----------------------------------------------------------------------------
// CNcsComposeViewContainer::SetMskL()
//
@@ -261,20 +266,21 @@
const TPointerEvent& aPointerEvent )
{
FUNC_LOG;
- TBool clearSelection(EFalse);
+ TBool clearSelection(EFalse);
if ( aPointerEvent.iType != TPointerEvent::EButton1Down &&
- iHeader->NeedsLongTapL( aPointerEvent.iPosition ) )
+ iHeader->NeedsLongTapL( aPointerEvent.iPosition ) )
{
- iLongTapDetector->PointerEventL( aPointerEvent );
+ iLongTapDetector->PointerEventL( aPointerEvent );
}
-
+
switch( aPointerEvent.iType )
- {
- case TPointerEvent::EButton1Down:
- {
+ {
+ case TPointerEvent::EButton1Down:
+ {
// Save current and original position so that those can be used in
// drag/scrolling calculations
- iPreviousPosition = iOriginalPosition = aPointerEvent.iPosition;
+ iPreviousPosition = iOriginalPosition =
+ aPointerEvent.iPosition;
iIsDragging = EFalse;
iIsFlicking = EFalse;
@@ -284,19 +290,19 @@
iPhysics->ResetFriction();
iStartTime.HomeTime();
UpdatePhysicsL();
- }
+ }
if ( iHeader->Rect().Contains( aPointerEvent.iPosition ) )
{
if ( iFocused == iMessageField )
{
- if( iMessageField->SelectionLength() )
- {
- iMessageField->ClearSelectionL();
- }
+ if( iMessageField->SelectionLength() )
+ {
+ iMessageField->HandleTextChangedL();
+ }
iMessageField->SetFocus( EFalse, ENoDrawNow );
iFocused = iHeader;
- iHeader->SetFocus( ETrue, ENoDrawNow );
+ iHeader->SetFocus( ETrue,ENoDrawNow );
}
else if ( iFocused == iReadOnlyQuoteField )
{
@@ -381,49 +387,53 @@
TPoint position = aPointerEvent.iPosition;
- if ( iPhysics )
- {
- if ( iIsDragging )
- {
+ if( iPhysics )
+ {
+ if ( iIsDragging )
+ {
TPoint delta( 0, iPreviousPosition.iY - position.iY );
if ( !( iMessageField->SelectionLength() || iReadOnlyQuoteField->SelectionLength() ) )
- iPhysics->RegisterPanningPosition( delta );
- }
+ iPhysics->RegisterPanningPosition( delta );
+ }
}
else
{
- TInt topPosition( iHeaderPos.iY - iHeader->Position().iY );
- TInt totalHeight( ContentTotalHeight() );
- TInt areaHeight( VisibleAreaHeight() );
- TInt scrollOffset( 0 );
+ TInt topPosition( -iHeader->Position().iY );
+
+ TInt totalHeight( ContentTotalHeight() );
- if ( totalHeight > areaHeight )
- {
- // Calculate new scroll offset based on current and
- // previous Y-positions
- scrollOffset = topPosition +
- ( iPreviousPosition.iY - position.iY );
- // Ensure that thumb position is in correct range
- scrollOffset = Max( scrollOffset, 0 );
- scrollOffset = Min( scrollOffset,
- totalHeight - areaHeight );
- }
+ TInt areaHeight( Rect().Size().iHeight );
+ TInt scrollOffset( 0 );
+
+ if( totalHeight > areaHeight )
+ {
+ // Calculate new scroll offset based on current and
+ // previous Y-positions
+ scrollOffset = topPosition +
+ ( iPreviousPosition.iY - position.iY );
+ // Ensure that thumb position is in correct range
+ scrollOffset = Max( scrollOffset, 0 );
+ scrollOffset = Min( scrollOffset,
+ totalHeight - areaHeight );
+ }
- Scroll( scrollOffset );
- }
-
- // Save current position as previous pos for future calculations
- iPreviousPosition = position;
-
- break;
- }
-
+ Scroll( scrollOffset );
+ }
+
+ // Save current position as previous pos for future calculations
+ iPreviousPosition = position;
+
+ break;
+ }
+
default:
{
// unknown event, ignored
break;
}
}
+
+ CCoeControl::HandlePointerEventL( aPointerEvent );
if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
iHeader->NeedsLongTapL( aPointerEvent.iPosition ) )
@@ -431,10 +441,9 @@
iLongTapDetector->PointerEventL( aPointerEvent );
}
- CCoeControl::HandlePointerEventL( aPointerEvent );
if (clearSelection)
{
- iMessageField->ClearSelectionL();
+ iMessageField->HandleTextChangedL();
}
}
@@ -494,7 +503,10 @@
else if ( aKeyEvent.iCode == EKeyUpArrow ||
aKeyEvent.iCode == EKeyDownArrow )
{
- ret = iFocused->OfferKeyEventL( aKeyEvent, aType );
+ if ( iFocused )
+ {
+ ret = iFocused->OfferKeyEventL( aKeyEvent, aType );
+ }
if ( ret == EKeyWasNotConsumed )
{
@@ -530,18 +542,18 @@
}
// -----------------------------------------------------------------------------
-// CNcsComposeViewContainer::UpdateScreenPosition()
+// CNcsComposeViewContainer::UpdateScreenPositionL()
// If the user scrolled down in the message field
// we want to scroll up the header and grow the message field.
// -----------------------------------------------------------------------------
//
-void CNcsComposeViewContainer::UpdateScreenPosition(
+void CNcsComposeViewContainer::UpdateScreenPositionL(
const TUint& /*aKeyCode*/ )
{
FUNC_LOG;
// get screen rectangle
- const TRect screenRect = iCmailPaneRect;
+ const TRect screenRect( Rect() );
TPoint msgPos( iMessageField->Position() );
TPoint quotePos( iReadOnlyQuoteField->Position() );
@@ -550,12 +562,12 @@
TRect lineRect;
if ( iFocused == iMessageField )
{
- iMessageField->GetLineRect( lineRect );
+ iMessageField->GetLineRectL( lineRect );
lineRect.Move( msgPos );
}
else if ( iFocused == iReadOnlyQuoteField )
{
- iReadOnlyQuoteField->GetLineRect( lineRect );
+ iReadOnlyQuoteField->GetLineRectL( lineRect );
lineRect.Move( quotePos );
}
else
@@ -566,8 +578,8 @@
}
TPoint linePos = lineRect.iTl;
- TInt minTargetY = screenRect.iTl.iY + lineRect.Height();
- TInt maxTargetY = screenRect.iBr.iY - lineRect.Height() * 2;
+ TInt minTargetY = lineRect.Height();
+ TInt maxTargetY = screenRect.Height() - lineRect.Height() * 2;
TInt moveY = 0;
// if cursor goes out of screen then move the controls
@@ -582,17 +594,17 @@
// Check we don't scroll too low
if ( quotePos.iY + moveY + iReadOnlyQuoteField->Size().iHeight <
- screenRect.iBr.iY )
+ screenRect.Height() )
{
- moveY = screenRect.iBr.iY - quotePos.iY -
+ moveY = screenRect.Height() - quotePos.iY -
iReadOnlyQuoteField->Size().iHeight;
}
// Check we don't scroll too high
TPoint headerPos = iHeader->Position();
- if ( headerPos.iY + moveY > iHeaderPos.iY )
+ if ( headerPos.iY + moveY > 0 )
{
- moveY = iHeaderPos.iY - headerPos.iY;
+ moveY = -headerPos.iY;
}
if ( moveY )
@@ -600,24 +612,13 @@
headerPos.iY += moveY;
iHeader->SetPosition( headerPos );
- iSeparatorLineYPos += moveY;
-
msgPos.iY += moveY;
iMessageField->SetPosition( msgPos );
quotePos.iY += moveY;
iReadOnlyQuoteField->SetPosition( quotePos );
- const TInt bottom = Rect().iBr.iY;
- if ( iMessageField->IsFocused() )
- {
- iMessageField->SetCursorVisible( msgPos.iY <= bottom );
- }
- else if ( iReadOnlyQuoteField->IsFocused() )
- {
- iReadOnlyQuoteField->SetCursorVisible( quotePos.iY <= bottom );
- }
-
+ iSeparatorLineYPos += moveY;
UpdateScrollBar();
}
}
@@ -652,18 +653,6 @@
quotePos.iY = iMessageField->Rect().iBr.iY;
iReadOnlyQuoteField->SetPosition( quotePos );
- const TInt bottom = Rect().iBr.iY;
- if ( iMessageField->IsFocused() )
- {
- iMessageField->SetCursorVisible( bodyPos.iY <= bottom );
- }
- else if ( iReadOnlyQuoteField->IsFocused() )
- {
- iReadOnlyQuoteField->SetCursorVisible( quotePos.iY <= bottom );
- }
-
- TInt scrollSpan = Max( ContentTotalHeight(), VisibleAreaHeight() + 1 );
- iScrollBarModel.SetScrollSpan( scrollSpan );
UpdateScrollBar();
DrawDeferred();
}
@@ -675,6 +664,7 @@
// Handles key events
// -----------------------------------------------------------------------------
//
+
TKeyResponse CNcsComposeViewContainer::ChangeFocusL(
const TKeyEvent& aKeyEvent )
{
@@ -694,9 +684,10 @@
if ( aKeyEvent.iCode == EKeyUpArrow )
{
iFocused = iHeader;
- iHeader->SetFocus( ETrue, ENoDrawNow );
+ iHeader->SetFocusToBottom( ENoDrawNow );
iMessageField->SetFocus( EFalse, ENoDrawNow );
iHeader->MakeVisible( ETrue );
+ iHeader->ShowCursor( ETrue );
CommitL( EBodyField );
ret = EKeyWasConsumed;
}
@@ -722,10 +713,9 @@
if ( ret == EKeyWasConsumed )
{
- UpdateScreenPosition( aKeyEvent.iCode );
+ UpdateScreenPositionL( aKeyEvent.iCode );
}
- DrawDeferred();
return ret;
}
@@ -753,7 +743,7 @@
// -----------------------------------------------------------------------------
// CNcsComposeViewContainer::SizeChanged()
-// Handles container size change.
+// set size
// -----------------------------------------------------------------------------
//
void CNcsComposeViewContainer::SizeChanged()
@@ -765,13 +755,9 @@
TRect cmailPaneRect( NcsUtility::ListCmailPaneRect( rect ) );
const TInt headerLineCount( iHeader->LayoutLineCount() );
- iHeaderPos = NcsUtility::HeaderControlPosition( cmailPaneRect, 0 );
- iHeader->SetOrigin( iHeaderPos );
- const TPoint currentHeaderPos = iHeader->Position();
- if ( currentHeaderPos.iY > iHeaderPos.iY )
- {
- cmailPaneRect.Move( 0, currentHeaderPos.iY - iHeaderPos.iY );
- }
+ const TPoint headerPos(
+ NcsUtility::HeaderControlPosition( cmailPaneRect, 0 ) );
+ cmailPaneRect.Move( 0, iHeader->Position().iY - headerPos.iY );
iCmailPaneRect = cmailPaneRect;
NcsUtility::LayoutHeaderControl(
@@ -792,6 +778,7 @@
}
iMessageField->UpdateFontSize();
+ iSeparatorHeight = NcsUtility::SeparatorSizeInThisResolution().iHeight;
TInt readOnlyQuoteFieldHeight( 0 );
if ( iReadOnlyQuoteField->TextLength() )
@@ -801,9 +788,21 @@
iReadOnlyQuoteField, cmailPaneRect,
iHeader->LayoutLineCount() + iMessageField->LineCount(),
iReadOnlyQuoteField->LineCount(), dummySeparatorPos );
+
+ TInt quoteOffset = iReadOnlyQuoteField->Rect().iTl.iY -
+ iMessageField->Rect().iBr.iY;
+
+ if( quoteOffset > iSeparatorHeight )
+ {
+ TRect quoteRect = iReadOnlyQuoteField->Rect();
+ quoteRect.Move( 0, iMessageField->Rect().iBr.iY +
+ iSeparatorHeight - quoteRect.iTl.iY );
+ iReadOnlyQuoteField->SetRect( quoteRect );
+ }
+
iReadOnlyQuoteField->SetAlignment( EAknEditorAlignBidi );
// we don't need format again when format was already done
- // during creation of forward/reply message
+ // during creation of forward/reply message
if ( !iSwitchOffFormattingText )
{
TRAP_IGNORE( iReadOnlyQuoteField->FormatAllTextNowL() );
@@ -811,21 +810,14 @@
iReadOnlyQuoteField->UpdateFontSize();
readOnlyQuoteFieldHeight = iReadOnlyQuoteField->Rect().Height();
}
- else
- {
- // Set quote field immediatelly bellow message field with zero height.
- TRect quoteRect = iMessageField->Rect();
- quoteRect.iTl = quoteRect.iBr;
- iReadOnlyQuoteField->SetRect( quoteRect );
- }
- iBgContext->SetRect( rect );
- iMessageField->SetRealRect( rect );
- iReadOnlyQuoteField->SetRealRect( rect );
+ iBgContext->SetRect( Rect() );
+ iMessageField->SetRealRect( Rect() );
+ iReadOnlyQuoteField->SetRealRect( Rect() );
TInt messageLineHeigth =
NcsUtility::HeaderCaptionPaneRect( cmailPaneRect ).Height();
- iSeparatorHeight = NcsUtility::SeparatorSizeInThisResolution().iHeight;
+
iMessageEditorMinHeigth =
cmailPaneRect.Height() - iHeader->Size().iHeight -
iSeparatorHeight -
@@ -851,29 +843,17 @@
// update some layout variables
iHeaderHeight = iHeader->Rect().Height();
TRect bodyRect = iMessageField->Rect();
- iReadOnlyQuoteField->SetPosition(
- TPoint( bodyRect.iTl.iX, bodyRect.iBr.iY ) );
TRect quoteRect = iReadOnlyQuoteField->Rect();
- iTotalComposerHeight = iHeaderHeight + iSeparatorHeight +
- bodyRect.Height() + quoteRect.Height();
-
- iVisibleAreaHeight = iCmailPaneRect.Height();
+ iTotalComposerHeight = iHeaderHeight + iSeparatorHeight * 2 +
+ bodyRect.Height() + quoteRect.Height();
+
+ iVisibleAreaHeight = Rect().Height();
+
+ UpdateScrollBar();
- // Scroll span is set always to be larger than the window size to
- // keep the scroll bar visible.
- TInt scrollSpan = Max( iTotalComposerHeight, iVisibleAreaHeight + 1 );
- iScrollBarModel.SetScrollSpan( scrollSpan );
+ iScrollBarModel.SetScrollSpan( iTotalComposerHeight );
iScrollBarModel.SetWindowSize( iVisibleAreaHeight );
- if ( iHeader->IsFocused() )
- {
- iHeader->DoScroll();
- }
- else
- {
- UpdateScreenPosition();
- }
- UpdateScrollBar();
DrawDeferred();
}
@@ -988,13 +968,13 @@
iProcessedField = iReadOnlyQuoteField;
if ( iReadOnlyQuote )
{
- TInt dummySeparatorPos;
- NcsUtility::LayoutBodyEdwin( iReadOnlyQuoteField, iCmailPaneRect,
- iHeader->LayoutLineCount() + iMessageField->LineCount(),
- iReadOnlyQuoteField->LineCount(), dummySeparatorPos );
+ TInt dummySeparatorPos;
+ NcsUtility::LayoutBodyEdwin( iReadOnlyQuoteField, iCmailPaneRect,
+ iHeader->LayoutLineCount() + iMessageField->LineCount(),
+ iReadOnlyQuoteField->LineCount(), dummySeparatorPos );
iReadOnlyQuoteField->SetAlignment( EAknEditorAlignBidi );
-
- RMemReadStream inputStream;
+
+ RMemReadStream inputStream;
inputStream.Open( iReadOnlyQuote->Ptr(), iReadOnlyQuote->Size() );
TRAP_IGNORE( iReadOnlyQuoteField->RichText()->ImportTextL( 0, inputStream,
CPlainText::EOrganiseByParagraph ) );
@@ -1169,7 +1149,7 @@
// Update screen position and scroll bar when text changed
// or cursor moved
- UpdateScreenPosition();
+ UpdateScreenPositionL();
UpdateScrollBar();
DrawDeferred();
}
@@ -1185,6 +1165,9 @@
{
FUNC_LOG;
TBool ret = ETrue;
+
+ const TRect rect( Rect() );
+ TRect cmailPaneRect( NcsUtility::ListCmailPaneRect( rect ) );
if ( aDesirableEdwinSize.iHeight < iPrevDesiredHeigth )
{
@@ -1202,7 +1185,7 @@
{
aEdwin->SetSize( aDesirableEdwinSize );
}
- }
+ }
}
else
{
@@ -1211,21 +1194,15 @@
aEdwin->SetSize( aDesirableEdwinSize );
}
}
-
if ( aEdwin == iMessageField )
{
// move the quote field below the body field
TPoint quotePos = iMessageField->Position();
quotePos.iY += iMessageField->Size().iHeight;
iReadOnlyQuoteField->SetPosition( quotePos );
- UpdateScreenPosition();
+ UpdateScreenPositionL();
}
- // Update scroll span and position.
- TInt scrollSpan = Max( ContentTotalHeight(), VisibleAreaHeight() + 1 );
- iScrollBarModel.SetScrollSpan( scrollSpan );
- UpdateScrollBar();
-
iPrevDesiredHeigth = aDesirableEdwinSize.iHeight;
return ret;
@@ -1255,22 +1232,12 @@
FUNC_LOG;
TRect headerRect = iHeader->Rect();
- TInt visiblePosition = iHeaderPos.iY - headerRect.iTl.iY;
+ TInt visiblePosition = -headerRect.iTl.iY;
iScrollBarModel.SetFocusPosition( visiblePosition );
iScrollBar->SetModel( &iScrollBarModel );
- iScrollBar->MakeVisible( !iHeader->IsPopupActive() );
- }
-
-// -----------------------------------------------------------------------------
-// CNcsComposeViewContainer::UpdateScrollBarVisibility()
-// -----------------------------------------------------------------------------
-//
-void CNcsComposeViewContainer::UpdateScrollBarVisibility( TBool aVisible )
- {
- FUNC_LOG;
- iScrollBar->MakeVisible( aVisible );
+ iScrollBar->MakeVisible( IsVisible() );
}
// -----------------------------------------------------------------------------
@@ -1287,7 +1254,7 @@
iMessageField->SetCursorPosL( 0, EFalse );
iMessageField->SetFocus( ETrue, ENoDrawNow );
iFocused = iMessageField;
- UpdateScreenPosition();
+ UpdateScreenPositionL();
DrawDeferred();
}
}
@@ -1410,17 +1377,26 @@
}
// -----------------------------------------------------------------------------
-// CNcsComposeViewContainer::HandleAttachmentsOpenCommand
+// CNcsComposeViewContainer::HandleAttachmentOpenCommand
// If attachment header field is focused and open key is pressed
// -----------------------------------------------------------------------------
//
-void CNcsComposeViewContainer::HandleAttachmentsOpenCommandL()
- {
+void CNcsComposeViewContainer::HandleAttachmentOpenCommandL()
+ {
FUNC_LOG;
+ iView.HandleCommandL( EFsEmailUiCmdOpenAttachment );
+ }
- iView.HandleCommandL( EFsEmailUiCmdOpenAttachment );
-
- }
+// -----------------------------------------------------------------------------
+// CNcsComposeViewContainer::HandleAttachmentRemoveCommandL
+// If attachment header field is focused and delete key is pressed
+// -----------------------------------------------------------------------------
+//
+void CNcsComposeViewContainer::HandleAttachmentRemoveCommandL()
+ {
+ FUNC_LOG;
+ iView.HandleCommandL( EFsEmailUiCmdRemoveAttachment );
+ }
// -----------------------------------------------------------------------------
// CNcsComposeViewContainer::LaunchStylusPopupMenu
@@ -1802,7 +1778,9 @@
void CNcsComposeViewContainer::HideAttachmentLabel()
{
FUNC_LOG;
- iHeader->HideAttachmentLabel();
+
+ iHeader->HideAttachmentLabel();
+
}
// -----------------------------------------------------------------------------
@@ -2006,28 +1984,21 @@
TInt CNcsComposeViewContainer::ContentTotalHeight()
{
FUNC_LOG;
- TInt totalHeight( iHeader->Size().iHeight +
- iSeparatorHeight + iMessageField->Size().iHeight );
-
- if ( iReadOnlyQuoteField->IsVisible() )
- {
- totalHeight += iReadOnlyQuoteField->Size().iHeight;
- }
+ TInt totalHeight( iHeader->Size().iHeight +
+ iSeparatorHeight * 2 +
+ iMessageField->Size().iHeight );
- return totalHeight;
- }
-
-// -----------------------------------------------------------------------------
-// Returns the height of visible composer area.
-// -----------------------------------------------------------------------------
-//
-TInt CNcsComposeViewContainer::VisibleAreaHeight()
- {
- return iVisibleAreaHeight;
+ if( iReadOnlyQuoteField->IsVisible() )
+ {
+ totalHeight += iReadOnlyQuoteField->Size().iHeight;
+ }
+
+ return totalHeight;
}
// -----------------------------------------------------------------------------
// CNcsComposeViewContainer::CommitL()
+//
// -----------------------------------------------------------------------------
//
void CNcsComposeViewContainer::CommitL( TFieldToCommit aFieldToCommit )
@@ -2076,7 +2047,7 @@
FUNC_LOG;
if ( iPhysics )
{
- const TSize viewSize( iCmailPaneRect.Size() );
+ const TSize viewSize( Rect().Size() );
// We must ensure that world size is at least the size of the view
const TSize worldSize( viewSize.iWidth,
Max( ContentTotalHeight(), viewSize.iHeight ) );
@@ -2091,23 +2062,22 @@
void CNcsComposeViewContainer::Scroll( TInt aTargetPos, TBool aDrawNow )
{
FUNC_LOG;
- TPoint headerPos = iHeader->Position();
- const TInt currentPos = iHeaderPos.iY - headerPos.iY;
- TInt moveY = currentPos - aTargetPos;
-
+ TPoint headerPos( iHeader->Position() );
+ TInt moveY = -headerPos.iY - aTargetPos;
+
if ( aDrawNow )
- {
- moveY = iTotalMoveY + moveY;
- iTotalMoveY = 0;
- if ( moveY )
- {
- headerPos.iY += moveY;
- iHeader->SetPosition( headerPos );
+ {
+ moveY = iTotalMoveY + moveY;
+ iTotalMoveY = 0;
+ if ( moveY )
+ {
+ headerPos.iY += moveY;
+ iHeader->SetPosition( headerPos );
- // set header invisible if it is not in visible area
- // this is done to prevent drawing of header when it is not necessary
+ // set header invisible if it is not in visible area
+ // this is done to prevent drawing of header when it is not necessary
if ( headerPos.iY + iHeaderHeight <= KHeaderVisibilityThreshold && iHeader->IsVisible() )
- {
+ {
iHeader->MakeVisible( EFalse );
}
// set header visible if it is in visible area
@@ -2115,35 +2085,28 @@
{
iHeader->MakeVisible( ETrue );
}
-
- TPoint msgPos( iMessageField->Position() );
- msgPos.iY += moveY;
- iMessageField->SetPosition( msgPos );
-
- TPoint quotePos( iReadOnlyQuoteField->Position() );
- quotePos.iY += moveY;
- iReadOnlyQuoteField->SetPosition( quotePos );
+
+ TPoint msgPos( iMessageField->Position() );
+ msgPos.iY += moveY;
+ iMessageField->SetPosition( msgPos );
+
+ if( iReadOnlyQuoteField->IsVisible() )
+ {
+ TPoint readOnlyPos( iReadOnlyQuoteField->Position() );
+ readOnlyPos.iY += moveY;
+ iReadOnlyQuoteField->SetPosition( readOnlyPos );
+ }
+
+ iSeparatorLineYPos += moveY;
- const TInt bottom = Rect().iBr.iY;
- if ( iMessageField->IsFocused() )
- {
- iMessageField->SetCursorVisible( msgPos.iY <= bottom );
- }
- else if ( iReadOnlyQuoteField->IsFocused() )
- {
- iReadOnlyQuoteField->SetCursorVisible( quotePos.iY <= bottom );
- }
-
- iSeparatorLineYPos += moveY;
-
- UpdateScrollBar();
- DrawDeferred();
- }
- }
+ UpdateScrollBar();
+ DrawDeferred();
+ }
+ }
else
- {
- iTotalMoveY += moveY;
- }
+ {
+ iTotalMoveY += moveY;
+ }
}
// -----------------------------------------------------------------------------
@@ -2188,10 +2151,10 @@
TPoint CNcsComposeViewContainer::ViewPosition() const
{
FUNC_LOG;
- TInt y = iHeaderPos.iY - iHeader->Position().iY + iVisibleAreaHeight / 2;
- return TPoint( 0, y );
+ return TPoint(0, -iHeader->Position().iY + iVisibleAreaHeight / 2 );
}
+
// -----------------------------------------------------------------------------
// CNcsComposeViewContainer::IsRemoteSearchInprogress
// -----------------------------------------------------------------------------
--- a/emailuis/emailui/src/ncseditor.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncseditor.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -28,13 +28,11 @@
#include <AknsSkinInstance.h>
#include <aknedsts.h>
#include <AknsBasicBackgroundControlContext.h>
-#include <centralrepository.h>
#include "ncseditor.h"
#include "ncsutility.h"
#include "ncscustomdraw.h"
#include "ncseditorcustomdraw.h"
-#include "freestyleemailcenrepkeys.h"
// ========================= MEMBER FUNCTIONS ==================================
@@ -73,19 +71,6 @@
CEikEdwin::ENoAutoSelection | CEikEdwin::EInclusiveSizeFixed |
CEikEdwin::ENoHorizScrolling | CEikRichTextEditor::EPasteAsPlainText );
- CRepository* repository = NULL;
- TRAPD( err, repository = CRepository::NewL( KFreestyleEmailCenRep ) );
- if ( !err )
- {
- TInt value( 0 );
- err = repository->Get( KEmailFeatureSplitScreen, value );
- if( !err && value )
- {
- SetAknEditorFlags( AknEditorFlags() | EAknEditorFlagEnablePartialScreen );
- }
- }
- delete repository;
- repository = NULL;
iGlobalCharFormat = CCharFormatLayer::NewL();
iGlobalCharFormat->SetBase( GlobalText()->GlobalCharFormatLayer() );
GlobalText()->SetGlobalCharFormat( iGlobalCharFormat );
@@ -129,11 +114,11 @@
// CNcsEditor::GetLineRectL() const
// -----------------------------------------------------------------------------
//
-void CNcsEditor::GetLineRect( TRect& aLineRect ) const
+void CNcsEditor::GetLineRectL( TRect& aLineRect ) const
{
FUNC_LOG;
TPoint position;
- TRAP_IGNORE( iLayout->DocPosToXyPosL( CursorPos(), position ) );
+ iLayout->DocPosToXyPosL( CursorPos(), position );
iLayout->GetLineRect( position.iY, aLineRect );
}
@@ -670,10 +655,7 @@
void CNcsEditor::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
{
iPhysOngoing = aPhysOngoing;
- if ( IsFocused() )
- {
- SetCursorVisible( !aPhysOngoing );
- }
+ this->SetCursorVisible( !aPhysOngoing );
}
TBool CNcsEditor::IsPhysicsEmulationOngoing() const
--- a/emailuis/emailui/src/ncsheadercontainer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncsheadercontainer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -23,11 +23,9 @@
#include <aknnotewrappers.h> //CAknInformationNote
#include <FreestyleEmailUi.rsg>
#include <aknphysics.h>
-#include <AknPriv.hrh>
#include "cfsmailbox.h"
#include <FreestyleEmailUi.rsg>
-#include <layoutmetadata.cdl.h>
#include "FSEmailBuildFlags.h"
#include "ncsheadercontainer.h"
@@ -83,8 +81,7 @@
iFieldSizeObserver( static_cast< CNcsComposeViewContainer& >( aParent ) ),
iMailBox( aMailBox ),
iLongTapEventConsumed( EFalse ),
- iPhysics( aPhysics ),
- iSplitScreenVKBEnabled( EFalse )
+ iPhysics( aPhysics )
{
FUNC_LOG;
}
@@ -130,7 +127,7 @@
&iFieldSizeObserver, this );
iAttachmentField = CNcsAttachmentField::NewL( R_NCS_ATTACHMENT_LABEL_TEXT,
- &iFieldSizeObserver, this );
+ &iFieldSizeObserver, this, this );
// Setup the control array
// Add all of them now so the container and parent is set correctly
@@ -162,15 +159,16 @@
}
// initially attachments field is hidden
- iAttachmentField->MakeVisible( EFalse );
- controls.Remove( iAttachmentField );
+ iAttachmentField->MakeVisible( EFalse );
+ controls.Remove( iAttachmentField );
- // test whether mailbox supports remote lookup
- TBool remoteLookupSupported =
+ // test whether mailbox supports remote lookup
+ TBool remoteLookupSupported =
TFsEmailUiUtility::IsRemoteLookupSupported( iMailBox );
-
- iAacListBox = CNcsPopupListBox::NewL(
- this, iMailBox, *this, remoteLookupSupported );
+
+ iAacListBox = CNcsPopupListBox::NewL(
+ this, iMailBox, *this, remoteLookupSupported );
+ iAacListBox->MakeVisible( EFalse );
iRALInProgress = EFalse;
@@ -196,43 +194,6 @@
}
// ---------------------------------------------------------------------------
-// From MNcsPopupListBoxObserver.
-// ---------------------------------------------------------------------------
-//
-TBool CNcsHeaderContainer::PopupVisibilityChangingL( TBool aVisible )
- {
- CNcsComposeViewContainer& parent =
- static_cast<CNcsComposeViewContainer&>( iParent );
-
- if ( aVisible )
- {
- DoScrollFocusToTop();
- iAacListBox->SetPopupMaxRect( CalculatePopupRect() );
- }
- else
- {
- // Scroll editor top, if it can be fully displayed.
- if ( parent.ContentTotalHeight() < parent.VisibleAreaHeight() )
- {
- parent.Scroll( 0, ETrue );
- }
- }
-
- parent.UpdateScrollBarVisibility( !aVisible );
- ShowPopupMenuBarL( aVisible );
- return ETrue;
- }
-
-// ---------------------------------------------------------------------------
-// From MNcsPopupListBoxObserver.
-// ---------------------------------------------------------------------------
-//
-void CNcsHeaderContainer::PopupItemSelectedL()
- {
- DoPopupSelectL();
- }
-
-// ---------------------------------------------------------------------------
// CNcsHeaderContainer::FocusChanged
// ---------------------------------------------------------------------------
//
@@ -279,6 +240,23 @@
}
}
+// ---------------------------------------------------------------------------
+// CNcsHeaderContainer::ShowCursor
+// ---------------------------------------------------------------------------
+//
+void CNcsHeaderContainer::ShowCursor( TBool aShow, TDrawNow aDrawNow )
+ {
+ CCoeControl* focused = FindFocused();
+ if ( focused )
+ {
+ iFocused = focused;
+ }
+ if ( iFocused )
+ {
+ iFocused->SetFocus( aShow, aDrawNow );
+ }
+ }
+
// -----------------------------------------------------------------------------
// CNcsHeaderContainer::Draw() const
// Draws the display
@@ -289,16 +267,6 @@
}
// -----------------------------------------------------------------------------
-// CNcsHeaderContainer::DrawAttachmentFocusNow() const
-// -----------------------------------------------------------------------------
-//
-void CNcsHeaderContainer::DrawAttachmentFocusNow()
- {
- FUNC_LOG;
- iAttachmentField->DrawDeferred();
- }
-
-// -----------------------------------------------------------------------------
// CNcsHeaderContainer::HandleControlArrayEventL()
// Handles removal or additons of controls to the header.
// -----------------------------------------------------------------------------
@@ -371,22 +339,22 @@
const TPointerEvent& aPointerEvent )
{
FUNC_LOG;
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
- CCoeControl* component = 0;
+ CCoeControl* clicked = 0;
for ( TInt i=0; i < Components().Count(); ++i )
{
TRect rc = Components().At( i ).iControl->Rect();
if ( rc.Contains( aPointerEvent.iPosition ) )
{
- component = Components().At( i ).iControl;
+ clicked = Components().At( i ).iControl;
}
}
- if ( component )
+ if ( clicked )
{
CCoeControl* pOldCtrl = FindFocused();
- CCoeControl* pNewCtrl= component;
+ CCoeControl* pNewCtrl= clicked;
if ( pOldCtrl != pNewCtrl )
{
@@ -403,53 +371,28 @@
CommitFieldL( pOldCtrl );
}
- // If the attachments label has changed focus
- if ( pOldCtrl == iAttachmentField ||
- pNewCtrl == iAttachmentField )
- {
- DrawAttachmentFocusNow();
- }
-
CNcsComposeViewContainer* container =
- static_cast<CNcsComposeViewContainer*>( &iParent );
+ static_cast<CNcsComposeViewContainer*>( &iParent );
container->UpdateScrollBar();
}
- DrawDeferred();
- }
- }
-
- if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
- {
- if ( iLongTapEventConsumed )
- {
- iLongTapEventConsumed = EFalse;
- return;
- }
+ if ( iLongTapEventConsumed )
+ {
+ iLongTapEventConsumed = EFalse;
+ return;
+ }
- CCoeControl* component = 0;
- for ( TInt i=0; i < Components().Count(); ++i )
- {
- TRect rc = Components().At( i ).iControl->Rect();
- if ( rc.Contains( aPointerEvent.iPosition ) )
- {
- component = Components().At( i ).iControl;
- }
- }
-
- if ( component && component == iFocused )
- {
TBool physicsActionOngoing( EFalse );
if ( iPhysics && iPhysics->OngoingPhysicsAction() != CAknPhysics::EAknPhysicsActionNone )
{
physicsActionOngoing = ETrue;
- }
+ }
- if ( component == iAttachmentField && !physicsActionOngoing )
+ if( pNewCtrl == iAttachmentField && !physicsActionOngoing )
{
CNcsComposeViewContainer& parent =
- static_cast<CNcsComposeViewContainer&>( iParent );
- parent.HandleAttachmentsOpenCommandL();
+ static_cast<CNcsComposeViewContainer&>( iParent );
+ parent.HandleAttachmentOpenCommandL();
}
}
}
@@ -509,19 +452,20 @@
{
FUNC_LOG;
TKeyResponse ret( EKeyWasNotConsumed );
-
TBool doScroll( EFalse );
+ CCoeControl* focused = FindFocused();
- if ( aKeyEvent.iCode == EKeyUpArrow || aKeyEvent.iCode == EKeyDownArrow )
+ if ( aKeyEvent.iCode == EKeyUpArrow ||
+ aKeyEvent.iCode == EKeyDownArrow )
{
if ( iAacListBox && iAacListBox->IsVisible() &&
!iAacListBox->IsPopupEmpty() )
{
- return iAacListBox->OfferKeyEventL( aKeyEvent, aType );
+ return iAacListBox->OfferKeyEventL( aKeyEvent, aType );
}
- else
+ else if ( focused )
{
- ret = FindFocused()->OfferKeyEventL( aKeyEvent, aType );
+ ret = focused->OfferKeyEventL( aKeyEvent, aType );
doScroll = ( ret == EKeyWasConsumed );
}
@@ -532,78 +476,56 @@
}
}
else
- {
- if ( FindFocused() == iAttachmentField )
- {
- if ( aType == EEventKey )
- {
- CNcsComposeViewContainer& parent =
- static_cast<CNcsComposeViewContainer&>( iParent );
-
- if ( aKeyEvent.iCode == EKeyEnter ||
- aKeyEvent.iScanCode == EStdKeyEnter ||
- aKeyEvent.iCode == EKeyOK ||
- aKeyEvent.iScanCode == EStdKeyDevice3 )
- {
- // open list or attachment
- parent.HandleAttachmentsOpenCommandL();
- ret = EKeyWasConsumed;
- }
- }
+ {
+ if ( IsPopupActive() && aType == EEventKey )
+ {
+ // select current
+ if( aKeyEvent.iCode == EKeyEnter ||
+ aKeyEvent.iCode == EKeyDevice4 ||
+ aKeyEvent.iCode == EKeyOK )
+ {
+ DoPopupSelectL();
+ ret = EKeyWasConsumed;
+ }
}
- else if ( IsPopupActive() && aType == EEventKey )
- {
- // select current
- if( aKeyEvent.iCode == EKeyEnter ||
- aKeyEvent.iCode == EKeyDevice4 ||
- aKeyEvent.iCode == EKeyOK )
- {
- DoPopupSelectL();
- ret = EKeyWasConsumed;
- }
- }
- else
- {
- // Don't allow line feeds in header fields.
- // Could be nice if enter committed the field and moved the focus
- // to next one
- if ( aType == EEventKey &&
- ( aKeyEvent.iCode == EKeyEnter ||
- aKeyEvent.iScanCode == EStdKeyEnter) )
- {
- FindFocused()->OfferKeyEventL( aKeyEvent, aType );
- ret = EKeyWasConsumed;
- doScroll = ETrue;
- }
- }
- }
+ else
+ {
+ // Don't allow line feeds in header fields.
+ // Could be nice if enter committed the field and moved the focus
+ // to next one
+ if ( aType == EEventKey &&
+ ( aKeyEvent.iCode == EKeyEnter ||
+ aKeyEvent.iScanCode == EStdKeyEnter) )
+ {
+ focused->OfferKeyEventL( aKeyEvent, aType );
+ ret = EKeyWasConsumed;
+ }
+ }
+ }
if ( ret == EKeyWasNotConsumed )
- {
- CCoeControl* focused = FindFocused();
- if ( focused )
- {
- ret = focused->OfferKeyEventL( aKeyEvent, aType );
-
- if( aType == EEventKeyDown &&
- aKeyEvent.iScanCode != EStdKeyUpArrow &&
- aKeyEvent.iScanCode != EStdKeyDownArrow )
- {
- doScroll = ETrue;
- }
- else
- {
- doScroll = (ret == EKeyWasConsumed);
- }
- }
- }
+ {
+ if ( focused )
+ {
+ ret = focused->OfferKeyEventL( aKeyEvent, aType );
- if( doScroll )
- {
- DoScroll();
- }
+ if(aType==EEventKeyDown)
+ {
+ doScroll = ETrue;
+ }
+ else
+ {
+ doScroll = (ret == EKeyWasConsumed);
+ }
+ }
+ }
+
+ if ( doScroll )
+ {
+ DoScroll();
+ }
return ret;
- }
+ }
// ---------------------------------------------------------------------------
// CNcsHeaderContainer::FindFocused
@@ -650,18 +572,28 @@
// Unfocus the control
pOldCtrl->SetFocus( EFalse, ENoDrawNow );
- CCoeControl* pNewCtrl= NULL;
- if ( ( aKeyEvent.iCode == EKeyDownArrow && cur.Next() ) ||
- ( aKeyEvent.iCode == EKeyUpArrow && cur.Prev() ) )
+ CCoeControl* pNewCtrl = NULL;
+ if ( aKeyEvent.iCode == EKeyDownArrow && cur.Next() )
{
pNewCtrl = cur.Control<CCoeControl>();
+ if ( pNewCtrl == iAttachmentField )
+ {
+ iAttachmentField->SetFocusedAttachmentLabelIndex( 0 );
+ }
+ pNewCtrl->SetFocus( ETrue, ENoDrawNow );
iFocused = pNewCtrl;
+ ret = EKeyWasConsumed;
+ }
+ else if ( aKeyEvent.iCode == EKeyUpArrow && cur.Prev() )
+ {
+ pNewCtrl = cur.Control<CCoeControl>();
pNewCtrl->SetFocus( ETrue, ENoDrawNow );
+ iFocused = pNewCtrl;
ret = EKeyWasConsumed;
}
CNcsComposeViewContainer* container =
- static_cast<CNcsComposeViewContainer*>( &iParent );
+ static_cast<CNcsComposeViewContainer*>( &iParent );
if ( pOldCtrl == iToField )
{
container->CommitL( EToField );
@@ -679,12 +611,6 @@
container->CommitL( ESubjectField );
}
- // If the attachments label has changed focus
- if ( pOldCtrl == iAttachmentField || pNewCtrl == iAttachmentField )
- {
- DrawAttachmentFocusNow();
- }
-
// if focus was changed, update scroll bar
if ( ret == EKeyWasConsumed )
{
@@ -756,8 +682,9 @@
// set size
// -----------------------------------------------------------------------------
void CNcsHeaderContainer::SizeChanged()
- {
+ {
FUNC_LOG;
+
const TRect rect( Rect() );
TInt currentLine( 0 );
@@ -775,11 +702,11 @@
currentLine += ToNcsControl( cur )->LayoutLineCount();
}
} while ( cur.Next() );
-
- if ( iAacListBox->IsVisible() && !iAacListBox->IsPopupEmpty() )
- {
- iAacListBox->SetPopupMaxRect( CalculatePopupRect() );
- }
+
+ if( iAacListBox->IsVisible() && !iAacListBox->IsPopupEmpty() )
+ {
+ iAacListBox->SetPopupMaxRect( CalculatePopupRect() );
+ }
}
// -----------------------------------------------------------------------------
@@ -841,19 +768,22 @@
// ---------------------------------------------------------------------------
//
TInt CNcsHeaderContainer::GetToLineHeight() const
- {
- FUNC_LOG;
- TInt lineHeight = 0;
-
- if ( iToField )
- {
- TRect lineRect;
- iToField->GetLineRect( lineRect );
- lineHeight = lineRect.Height();
- }
- return lineHeight;
- }
-
+ {
+ FUNC_LOG;
+ TInt lineHeight = 0;
+
+ if(iToField)
+ {
+ TRect lineRect;
+ TRAPD(err, iToField->GetLineRectL(lineRect) );
+ if(err == KErrNone)
+ {
+ lineHeight = lineRect.iBr.iY - lineRect.iTl.iY;
+ }
+ }
+ return lineHeight;
+ }
+
// ---------------------------------------------------------------------------
// CNcsHeaderContainer::GetTotalHeight
// ---------------------------------------------------------------------------
@@ -885,7 +815,6 @@
if( aAttachmentNames )
{
ShowAttachmentLabelL();
- DrawAttachmentFocusNow();
}
}
@@ -894,7 +823,7 @@
//
// -----------------------------------------------------------------------------
//
-TInt CNcsHeaderContainer::FocusedAttachmentLabelIndex()
+TInt CNcsHeaderContainer::FocusedAttachmentLabelIndex() const
{
FUNC_LOG;
return iAttachmentField->FocusedAttachmentLabelIndex();
@@ -921,7 +850,6 @@
pOldCtrl->SetFocus( EFalse, ENoDrawNow );
}
- iFocused = iAttachmentField;
iAttachmentField->SetFocus( ETrue, ENoDrawNow );
iFieldSizeObserver.UpdateFieldPosition( iAttachmentField );
}
@@ -939,6 +867,11 @@
CCoeControl* pOldCtrl = FindFocused();
CCoeControl* pNewCtrl = NULL;
+ if ( iFocused == iAttachmentField )
+ {
+ iFocused = NULL;
+ }
+
if ( pOldCtrl == iAttachmentField )
{
CCoeControlArray::TCursor cur = Components().Find( pOldCtrl );
@@ -947,7 +880,6 @@
if ( cur.Prev() )
{
pNewCtrl = cur.Control<CCoeControl>();
- iFocused = pNewCtrl;
pNewCtrl->SetFocus( ETrue, ENoDrawNow );
}
}
@@ -956,11 +888,6 @@
pNewCtrl = pOldCtrl; // no need to move focus
}
- if ( pOldCtrl == iAttachmentField || pNewCtrl == iAttachmentField )
- {
- DrawAttachmentFocusNow();
- }
-
iAttachmentField->MakeVisible( EFalse );
Components().Remove( iAttachmentField );
TRAP_IGNORE( iFieldSizeObserver.UpdateFieldSizeL() );
@@ -981,101 +908,100 @@
TBool aVisible, TDrawNow aDrawNow, TBool aFocus )
{
FUNC_LOG;
- if ( iBccField->IsVisible() == aVisible )
- {
- return;
- }
+ if ( iBccField->IsVisible() == aVisible )
+ {
+ return;
+ }
- if ( aVisible )
- {
- CCoeControlArray::TCursor cur = Components().Find( iSubjectField );
- Components().InsertLC( cur, iBccField );
- CleanupStack::Pop( iBccField );
+ if ( aVisible )
+ {
+ CCoeControlArray::TCursor cur = Components().Find( iSubjectField );
+ Components().InsertLC( cur, iBccField );
+ CleanupStack::Pop( iBccField );
- if ( aFocus )
- {
- CCoeControl* focused = FindFocused();
+ if ( aFocus )
+ {
+ CCoeControl* focused = FindFocused();
- if ( focused )
- {
- focused->SetFocus( EFalse, aDrawNow );
- }
- iBccField->SetFocus( ETrue, aDrawNow );
+ if ( focused )
+ {
+ focused->SetFocus( EFalse );
+ }
+ iBccField->SetFocus( ETrue );
iFocused = iBccField;
- iBccField->SelectAllTextL();
- }
- }
- else
- {
- if ( iBccField->IsFocused() )
- {
- CCoeControlArray::TCursor cur = Components().Find( iBccField );
- ASSERT( cur.IsValid() );
+ iBccField->SelectAllTextL();
+ }
+ }
+ else
+ {
+ if ( iBccField->IsFocused() )
+ {
+ CCoeControlArray::TCursor cur = Components().Find( iBccField );
+ ASSERT( cur.IsValid() );
+
+ iBccField->SetFocus( EFalse );
- iBccField->SetFocus( EFalse );
-
- cur.Prev(); // Get the control before this field
- CCoeControl* focused = cur.Control<CCoeControl>();
- focused->SetFocus( ETrue );
- iFocused = focused;
- }
- Components().Remove( iBccField );
- }
+ cur.Prev(); // Get the control before this field
+ cur.Control<CCoeControl>()->SetFocus( ETrue );
+ }
+ Components().Remove( iBccField );
+ iFocused = iSubjectField;
+ }
TRAP_IGNORE( iFieldSizeObserver.UpdateFieldSizeL() );
- if ( aDrawNow == EDrawNow )
- {
- DrawDeferred();
- }
- }
+ if ( aDrawNow == EDrawNow )
+ {
+ DrawDeferred();
+ }
+ }
// -----------------------------------------------------------------------------
// CNcsHeaderContainer::SetCcFieldVisibleL()
// -----------------------------------------------------------------------------
void CNcsHeaderContainer::SetCcFieldVisibleL(
TBool aVisible, TDrawNow aDrawNow, TBool aFocus )
- {
+ {
FUNC_LOG;
- if ( iCcField->IsVisible() == aVisible )
- {
- return;
- }
+ if ( iCcField->IsVisible() == aVisible )
+ {
+ return;
+ }
- if ( aVisible )
- {
- Components().InsertAfterLC( Components().Id( *iToField ), iCcField );
- CleanupStack::Pop( iCcField );
+ if ( aVisible )
+ {
+ Components().InsertAfterLC( Components().Id( *iToField ), iCcField );
+ CleanupStack::Pop( iCcField );
- if ( aFocus )
- {
- CCoeControl* focused = FindFocused();
- if ( focused )
- {
- focused->SetFocus( EFalse, aDrawNow );
- }
- iCcField->SetFocus( ETrue, aDrawNow );
+ if ( aFocus )
+ {
+ CCoeControl* focused = FindFocused();
+ if ( focused )
+ {
+ focused->SetFocus( EFalse );
+ }
+ iCcField->SetFocus( ETrue );
iFocused = iCcField;
- iCcField->SelectAllTextL();
- }
- }
- else
- {
- if( iCcField->IsFocused() )
- {
- iCcField->SetFocus( EFalse );
- iToField->SetFocus( ETrue );
- iFocused = iToField;
- }
- Components().Remove( iCcField );
- }
-
- TRAP_IGNORE( iFieldSizeObserver.UpdateFieldSizeL() );
+ iCcField->SelectAllTextL();
+ }
+ }
+ else
+ {
+ if( iCcField->IsFocused() )
+ {
+ iCcField->SetFocus( EFalse );
+ iToField->SetFocus( ETrue );
+ }
+ Components().Remove( iCcField );
+ iFocused = iToField;
+ }
+
+ TRAP_IGNORE( iFieldSizeObserver.UpdateFieldSizeL() );
if ( aDrawNow == EDrawNow )
- {
- DrawDeferred();
- }
+ {
+ DrawDeferred();
+ }
}
// -----------------------------------------------------------------------------
@@ -1198,63 +1124,65 @@
//
void CNcsHeaderContainer::UpdatePopupContactListL(
const TDesC& aMatchString, TBool /*aListAll*/ )
- {
+ {
FUNC_LOG;
// do update only for address fields
- CCoeControl* focused = FindFocused();
-
- if ( !IsAddressInputField( focused ) )
- {
- return;
- }
-
- if ( aMatchString.CompareC( KNullDesC ) == 0 ||
- aMatchString.Compare( KAddressDelimeterSemiColon ) == 0 )
- {
- ClosePopupContactListL();
- return;
- }
-
- if( !iAacListBox->IsVisible() )
- {
+ CCoeControl* focused = FindFocused();
+
+ if ( !IsAddressInputField( focused ) )
+ {
+ return;
+ }
+
+ if ( aMatchString.CompareC( KNullDesC ) == 0 ||
+ aMatchString.Compare( KAddressDelimeterSemiColon ) == 0 )
+ {
+ ClosePopupContactListL();
+ return;
+ }
+
+ if( !iAacListBox->IsVisible() )
+ {
iAacListBox->SetPopupMaxRect( CalculatePopupRect() );
iAacListBox->InitAndSearchL( aMatchString, 1 );
iAacListBox->ActivateL();
- }
- else
- {
- iAacListBox->SetSearchTextL( aMatchString );
- }
- }
+ }
+ else
+ {
+ iAacListBox->SetSearchTextL( aMatchString );
+ }
+ }
// -----------------------------------------------------------------------------
// CNcsHeaderContainer::ClosePopupContactListL()
// -----------------------------------------------------------------------------
//
void CNcsHeaderContainer::ClosePopupContactListL()
- {
+ {
FUNC_LOG;
+
if ( iAacListBox->IsVisible() )
{
- iAacListBox->ClosePopupL();
- }
-
- // The focused address field should be redrawn after the popup is
- // closed to fix the field border.
- if ( iToField->IsFocused() )
- {
- iToField->DrawDeferred();
+ iAacListBox->MakeVisible( EFalse );
+ ShowPopupMenuBarL( EFalse );
+
+ // The focused address field should be redrawn after the popup is
+ // closed to fix the field border.
+ if ( iToField->IsFocused() )
+ {
+ iToField->DrawDeferred();
+ }
+ else if ( iCcField->IsFocused() )
+ {
+ iCcField->DrawDeferred();
+ }
+ else if ( iBccField->IsFocused() )
+ {
+ iBccField->DrawDeferred();
+ }
}
- else if ( iCcField->IsFocused() )
- {
- iCcField->DrawDeferred();
- }
- else if ( iBccField->IsFocused() )
- {
- iBccField->DrawDeferred();
- }
- }
+ }
// ---------------------------------------------------------------------------
// CNcsHeaderContainer::ShowPopupMenuBarL
@@ -1342,10 +1270,9 @@
iSubjectField->SelectAllTextL();
}
-// ---------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// CNcsHeaderContainer::CalculatePopupRect
-// ---------------------------------------------------------------------------
-//
+// -----------------------------------------------------------------------------
TRect CNcsHeaderContainer::CalculatePopupRect()
{
FUNC_LOG;
@@ -1361,22 +1288,10 @@
TPoint editorPos = aifEditor->Editor()->PositionRelativeToScreen();
TRect editorRect = aifEditor->Editor()->Rect();
- // When layouts are available we'll use them. Until that these are now
- // hardcoded!
- TInt tlXPos = 3;
- TInt tlYPos = editorPos.iY + aifEditor->CursorPosition() + 1;
-
- if ( Layout_Meta_Data::IsLandscapeOrientation() &&
- iSplitScreenVKBEnabled )
- {
- tlXPos = iAvkonAppUi->ApplicationRect().Width() / 2;
- tlYPos = 3;
- }
-
- popupRect.iTl = TPoint( tlXPos, tlYPos );
+ popupRect.iTl = TPoint( editorPos.iX,
+ editorPos.iY + aifEditor->CursorPosition() + 1 );
-
- popupRect.iBr = TPoint( iAvkonAppUi->ApplicationRect().iBr.iX - 3,
+ popupRect.iBr = TPoint( editorPos.iX + editorRect.Width(),
iParent.PositionRelativeToScreen().iY + iParent.Rect().Height() );
}
@@ -1392,7 +1307,7 @@
__ASSERT_DEBUG( iAacListBox, Panic( ENcsBasicUi ) );
__ASSERT_DEBUG( &iMailBox, Panic( ENcsBasicUi ) );
- if ( iAacListBox->IsRemoteLookupItemSelected() )
+ if( iAacListBox->IsRemoteLookupItemSelected() )
{
CCoeControl* focused = FindFocused();
@@ -1827,13 +1742,13 @@
{
FUNC_LOG;
- CCoeControl* focused = FindFocused();
- if ( IsAddressInputField( focused ) )
- {
- CNcsAddressInputField* aifFocused = NULL;
- aifFocused = static_cast<CNcsAddressInputField*>( focused );
- aifFocused->AddAddressL( aEml );
- }
+ CCoeControl* focused = FindFocused();
+ if ( IsAddressInputField( focused ) )
+ {
+ CNcsAddressInputField* aifFocused = NULL;
+ aifFocused = static_cast<CNcsAddressInputField*>( focused );
+ aifFocused->AddAddressL( aEml );
+ }
DoScroll();
}
@@ -1851,32 +1766,59 @@
// ---------------------------------------------------------------------------
//
void CNcsHeaderContainer::FocusToField()
- {
+ {
FUNC_LOG;
CCoeControl* oldCtrl = FindFocused();
- if ( !oldCtrl )
- {
- return;
- }
- oldCtrl->SetFocus( EFalse, ENoDrawNow );
- iToField->SetFocus( ETrue, ENoDrawNow );
- }
+ if ( oldCtrl )
+ {
+ oldCtrl->SetFocus( EFalse, ENoDrawNow );
+ }
+
+ iToField->SetFocus( ETrue, ENoDrawNow );
+ iFocused = iToField;
+ }
// ---------------------------------------------------------------------------
// CNcsHeaderContainer::FocusAttachmentField
// ---------------------------------------------------------------------------
//
void CNcsHeaderContainer::FocusAttachmentField()
- {
+ {
FUNC_LOG;
CCoeControl* oldCtrl = FindFocused();
- if ( !oldCtrl )
- {
- return;
- }
- oldCtrl->SetFocus( EFalse, ENoDrawNow );
- iAttachmentField->SetFocus( ETrue, ENoDrawNow );
- }
+ if ( oldCtrl )
+ {
+ oldCtrl->SetFocus( EFalse, ENoDrawNow );
+ }
+
+ iAttachmentField->SetFocus( ETrue, ENoDrawNow );
+ iFocused = iAttachmentField;
+ }
+
+// ---------------------------------------------------------------------------
+// Sets focus to the first visible header field from the bottom.
+// ---------------------------------------------------------------------------
+//
+void CNcsHeaderContainer::SetFocusToBottom( TDrawNow aDrawNow )
+ {
+ FUNC_LOG;
+ CCoeControl* oldCtrl = FindFocused();
+ if ( oldCtrl )
+ {
+ oldCtrl->SetFocus( EFalse, aDrawNow );
+ }
+
+ CCoeControlArray::TCursor cur = Components().End();
+ cur.Prev();
+ CCoeControl* newControl = cur.Control<CCoeControl>();
+ if ( newControl && newControl == iAttachmentField )
+ {
+ // set focus to the last attachment
+ TInt count = GetAttachmentCount();
+ iAttachmentField->SetFocusedAttachmentLabelIndex( count - 1 );
+ }
+ SetFocus( ETrue, aDrawNow );
+ }
// ---------------------------------------------------------------------------
// CNcsHeaderContainer::AreAddressFieldsEmpty
@@ -1922,13 +1864,14 @@
CCoeControlArray::TCursor cur = Components().Begin();
do
{
- totalLineCount += ToNcsControl( cur )->LayoutLineCount();
+ totalLineCount += ToNcsControl( cur )->LayoutLineCount();
}
while ( cur.Next() );
return totalLineCount;
}
+
// ---------------------------------------------------------------------------
// CNcsHeaderContainer::IsAddressInputField
// ---------------------------------------------------------------------------
@@ -2032,11 +1975,11 @@
}
void CNcsHeaderContainer::FixSemicolonInAddressFieldsL()
- {
- iToField->FixSemicolonAtTheEndL();
- iCcField->FixSemicolonAtTheEndL();
- iBccField->FixSemicolonAtTheEndL();
- }
+ {
+ iToField->FixSemicolonAtTheEndL();
+ iCcField->FixSemicolonAtTheEndL();
+ iBccField->FixSemicolonAtTheEndL();
+ }
TBool CNcsHeaderContainer::IsRemoteSearchInprogress() const
{
@@ -2056,75 +1999,63 @@
{
if ( aField == iToField )
{
+ if( iToField->TextEditor()->SelectionLength() )
+ {
+ iToField->TextEditor()->HandleTextChangedL();
+ }
container->CommitL( EToField );
}
else if ( aField == iCcField )
{
+ if( iCcField->TextEditor()->SelectionLength() )
+ {
+ iCcField->TextEditor()->HandleTextChangedL();
+ }
container->CommitL( ECcField );
}
else if ( aField == iBccField )
{
+ if( iBccField->TextEditor()->SelectionLength() )
+ {
+ iBccField->TextEditor()->HandleTextChangedL();
+ }
container->CommitL( EBccField );
}
else if ( aField == iSubjectField )
{
+ if( iSubjectField->Editor()->SelectionLength() )
+ {
+ iSubjectField->Editor()->HandleTextChangedL();
+ }
container->CommitL( ESubjectField );
}
}
}
-// ---------------------------------------------------------------------------
-// Scrolls editor to make cursor visible, if it is outside the visible area
-// ---------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+// CNcsHeaderContainer::DoScroll
+// -----------------------------------------------------------------------------
//
void CNcsHeaderContainer::DoScroll()
{
// scroll the screen if the cursor goes beyond the screen
- CNcsComposeViewContainer& parent =
- static_cast<CNcsComposeViewContainer&>( iParent );
-
- // Scrolling based on cursor line number can only be done when
- // header composer and one of its fields is focused.
- if ( IsFocused() )
- {
- const TRect rect = Rect();
- const TInt screenPos = iOrigin.iY - rect.iTl.iY;
- const TInt screenHeight = parent.VisibleAreaHeight();
-
- const TInt lineNumber = CursorLineNumber();
- const TInt lineHeight = rect.Height() / LineCount();
- const TInt linePos = lineNumber * lineHeight;
+ CNcsComposeViewContainer& parent = static_cast<CNcsComposeViewContainer&>( iParent );
+
+ TInt screenPos( -Position().iY );
+ TInt cursorPos( CursorPosition() );
+ TInt lineHeight( Rect().Height() / LineCount() );
+ TInt screenHeight( parent.Rect().Height() );
- TInt targetPos = screenPos;
- if ( linePos - lineHeight < screenPos )
- {
- targetPos = linePos - lineHeight;
- }
- else if ( linePos + lineHeight > screenPos + screenHeight )
- {
- targetPos = linePos + lineHeight - screenHeight;
- }
-
- parent.Scroll( targetPos );
+ if ( cursorPos - lineHeight < screenPos )
+ {
+ screenPos = cursorPos - lineHeight;
}
- }
+ else if( cursorPos + lineHeight > screenPos + screenHeight )
+ {
+ screenPos = cursorPos + lineHeight - screenHeight;
+ }
-// ---------------------------------------------------------------------------
-// Scrolls focused editor line to the top of visible area.
-// ---------------------------------------------------------------------------
-//
-void CNcsHeaderContainer::DoScrollFocusToTop()
- {
- CNcsComposeViewContainer& parent =
- static_cast<CNcsComposeViewContainer&>( iParent );
-
- // Calculate the position of the focused editor line.
- const TRect rect = Rect();
- const TInt lineNumber = CursorLineNumber();
- const TInt lineHeight = rect.Height() / LineCount();
- const TInt targetPos = ( lineNumber - 1 ) * lineHeight;
-
- parent.Scroll( targetPos );
+ parent.Scroll( screenPos );
}
// ---------------------------------------------------------------------------
@@ -2140,29 +2071,25 @@
}
// ---------------------------------------------------------------------------
-// CNcsHeaderContainer::HandleResourceChange
+// CNcsHeaderContainer::AttachmentOpenL
// ---------------------------------------------------------------------------
//
-void CNcsHeaderContainer::HandleResourceChange( TInt aType )
+void CNcsHeaderContainer::AttachmentOpenL()
{
- FUNC_LOG;
- CCoeControl::HandleResourceChange( aType );
- if ( aType == KAknSplitInputEnabled || aType == KAknSplitInputDisabled )
- {
- iSplitScreenVKBEnabled = ( aType == KAknSplitInputEnabled );
- if ( iAacListBox->IsVisible() )
- {
- iAacListBox->SetPopupMaxRect( CalculatePopupRect() );
- }
- }
+ CNcsComposeViewContainer& parent =
+ static_cast<CNcsComposeViewContainer&>( iParent );
+
+ parent.HandleAttachmentOpenCommandL();
}
// ---------------------------------------------------------------------------
-// Set origin for header's top position.
+// CNcsHeaderContainer::AttachmentRemoveL
// ---------------------------------------------------------------------------
//
-void CNcsHeaderContainer::SetOrigin( TPoint& aOrigin )
+void CNcsHeaderContainer::AttachmentRemoveL()
{
- iOrigin = aOrigin;
+ CNcsComposeViewContainer& parent =
+ static_cast<CNcsComposeViewContainer&>( iParent );
+
+ parent.HandleAttachmentRemoveCommandL();
}
-
--- a/emailuis/emailui/src/ncspopuplistbox.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncspopuplistbox.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -20,8 +20,8 @@
#include "emailtrace.h"
#include <eikclbd.h>
#include <AknsFrameBackgroundControlContext.h>
-#include <FreestyleEmailUi.rsg>
-#include <StringLoader.h>
+#include <FreestyleEmailUi.rsg> // R_FSE_EDITOR_ADDRESS_LIST_REMOTE_LOOKUP_SEARCH
+#include <StringLoader.h> // StringLoader
#include <CPbkContactEngine.h>
#include <AknsDrawUtils.h>
#include <AknsUtils.h>
@@ -29,10 +29,10 @@
#include <aknlayoutscalable_avkon.cdl.h>
#include "ncspopuplistbox.h"
-#include "ncsemailaddressobject.h"
+#include "ncsemailaddressobject.h" // CNcsEmailAddressObject
#include "ncsconstants.h"
-#include "ncsheadercontainer.h"
-#include "FreestyleEmailUiContactHandler.h"
+#include "ncsheadercontainer.h" // CNcsHeaderContainer
+#include "FreestyleEmailUiContactHandler.h" // CFSEmailUiClsListsHandler
#include "ncsutility.h"
#include "FreestyleEmailUiUtilities.h"
#include "FreestyleEmailUiAppui.h"
@@ -49,12 +49,12 @@
// -----------------------------------------------------------------------------
CNcsPopupListBox* CNcsPopupListBox::NewL( const CCoeControl* aParent,
CFSMailBox& aMailBox,
- MNcsPopupListBoxObserver& aObserver,
+ CNcsHeaderContainer& aHeaderContainer,
TBool aRemoteLookupSupported )
{
FUNC_LOG;
- CNcsPopupListBox* self = new (ELeave) CNcsPopupListBox( aMailBox,
- aObserver, aRemoteLookupSupported );
+ CNcsPopupListBox* self = new (ELeave) CNcsPopupListBox( aHeaderContainer,
+ aRemoteLookupSupported, aMailBox );
CleanupStack::PushL( self );
self->ConstructL( aParent );
CleanupStack::Pop( self );
@@ -64,10 +64,11 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::CNcsPopupListBox
// -----------------------------------------------------------------------------
-CNcsPopupListBox::CNcsPopupListBox( CFSMailBox& aMailBox,
- MNcsPopupListBoxObserver& aObserver, TBool aRemoteLookupSupported )
- : iMailBox( aMailBox ),
- iObserver( aObserver ),
+CNcsPopupListBox::CNcsPopupListBox( CNcsHeaderContainer& aHeaderContainer,
+ TBool aRemoteLookupSupported,
+ CFSMailBox& aMailBox)
+ : iHeaderContainer( aHeaderContainer ),
+ iMailBox( aMailBox ),
iRemoteLookupSupported( aRemoteLookupSupported ),
iCachingInProgress( EFalse ),
iAppUi( static_cast<CFreestyleEmailUiAppUi*>( iEikonEnv->AppUi() ) )
@@ -86,12 +87,11 @@
SetMopParent( const_cast<CCoeControl*>( aParent ) );
User::LeaveIfError( SetParent( const_cast<CCoeControl*>( aParent ) ) );
- CreateScrollBarFrameL( EFalse, EFalse, ETrue );
+ CEikScrollBarFrame* frame = CreateScrollBarFrameL( EFalse, EFalse, ETrue );
CEikTextListBox::SetBorder( TGulBorder::ENone );
- const CFont* font =
- AknLayoutUtils::FontFromId( EAknLogicalFontPrimarySmallFont );
+ const CFont* font = AknLayoutUtils::FontFromId( EAknLogicalFontPrimarySmallFont );
CEikTextListBox::SetItemHeightL( font->FontMaxHeight() + 12 );
iBackgroundContext = CAknsFrameBackgroundControlContext::NewL(
@@ -105,7 +105,6 @@
}
SetListBoxObserver( this );
- MakeVisible( EFalse );
}
// -----------------------------------------------------------------------------
@@ -122,14 +121,6 @@
}
// ---------------------------------------------------------------------------
-// Hides the popup window.
-// ---------------------------------------------------------------------------
-void CNcsPopupListBox::ClosePopupL()
- {
- UpdateVisibilityL( EFalse );
- }
-
-// ---------------------------------------------------------------------------
// CNcsPopupListBox::~CNcsPopupListBox
// ---------------------------------------------------------------------------
CNcsPopupListBox::~CNcsPopupListBox()
@@ -153,7 +144,7 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::MopSupplyObject
// -----------------------------------------------------------------------------
-TTypeUid::Ptr CNcsPopupListBox::MopSupplyObject( TTypeUid aId )
+TTypeUid::Ptr CNcsPopupListBox::MopSupplyObject(TTypeUid aId)
{
FUNC_LOG;
if ( aId.iUid == MAknsControlContext::ETypeId )
@@ -182,24 +173,15 @@
TRAP_IGNORE( HandleViewRectSizeChangeL() );
}
-// -----------------------------------------------------------------------------
-// CNcsPopupListBox::HandleResourceChange
-// -----------------------------------------------------------------------------
-//
void CNcsPopupListBox::HandleResourceChange( TInt aType )
{
FUNC_LOG;
- CEikTextListBox::HandleResourceChange( aType );
if ( aType == KAknsMessageSkinChange )
{
UpdateTextColors();
}
}
-// -----------------------------------------------------------------------------
-// CNcsPopupListBox::HandlePointerEventL
-// -----------------------------------------------------------------------------
-//
void CNcsPopupListBox::HandlePointerEventL( const TPointerEvent& aPointerEvent )
{
CEikTextListBox::HandlePointerEventL( aPointerEvent );
@@ -208,7 +190,7 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::OfferKeyEventL
// -----------------------------------------------------------------------------
-//
+//
TKeyResponse CNcsPopupListBox::OfferKeyEventL( const TKeyEvent& aKeyEvent,
TEventCode aType )
{
@@ -217,32 +199,27 @@
if( aKeyEvent.iCode == EKeyDownArrow )
{
MoveRemoteLookupItemL( ERemoteLookupItemDown );
- iView->MoveCursorL(
- CListBoxView::ECursorNextItem, CListBoxView::ENoSelection );
+ iView->MoveCursorL( CListBoxView::ECursorNextItem, CListBoxView::ENoSelection );
ret = EKeyWasConsumed;
}
else if( aKeyEvent.iCode == EKeyUpArrow )
{
TBool stay = EFalse;
// Move cursor separator line over
- if ( CurrentItemIndex() - 1 > 0 &&
- CurrentItemIndex() - 1 == iRemoteLookupItemPos )
+ if ( CurrentItemIndex() - 1 > 0 && CurrentItemIndex() - 1 == iRemoteLookupItemPos )
{
MoveRemoteLookupItemL( ERemoteLookupItemUp );
- iView->MoveCursorL( CListBoxView::ECursorPreviousItem,
- CListBoxView::ENoSelection );
+ iView->MoveCursorL( CListBoxView::ECursorPreviousItem, CListBoxView::ENoSelection );
stay = ETrue;
}
MoveRemoteLookupItemL( ERemoteLookupItemUp );
- iView->MoveCursorL( CListBoxView::ECursorPreviousItem,
- CListBoxView::ENoSelection );
+ iView->MoveCursorL( CListBoxView::ECursorPreviousItem, CListBoxView::ENoSelection );
if( stay )
{
MoveRemoteLookupItemL( ERemoteLookupItemDown );
- iView->MoveCursorL( CListBoxView::ECursorNextItem,
- CListBoxView::ENoSelection );
+ iView->MoveCursorL( CListBoxView::ECursorNextItem, CListBoxView::ENoSelection );
}
@@ -253,10 +230,9 @@
{
ret = CEikListBox::OfferKeyEventL( aKeyEvent, aType );
}
- // call HandleItemAdditionL just in case. There might be changes on remote
- // lookup item place.
- // The call is here, because we don't want to have extra redraw events when
- // the popuplist is not fully updated.
+ // call HandleItemAdditionL just in case. There might be changes on remote lookup item place.
+ // The call is here, because we don't want to have extra redraw events when the popuplist
+ // is not fully updated.
HandleItemAdditionL();
return ret;
}
@@ -271,7 +247,7 @@
if ( aEventType == EEventItemClicked ||
aEventType == EEventItemSingleClicked )
{
- iObserver.PopupItemSelectedL();
+ iHeaderContainer.DoPopupSelectL();
}
}
@@ -305,24 +281,17 @@
if ( aCmd == ESearchContacts )
{
- // KerrNotReady --> caching in progress,
- // KErrNotFound --> caching not started yet
- if ( ( aError == KErrNotReady ) || ( aError == KErrNotFound ) )
+ // KerrNotReady --> caching in progress, KErrNotFound --> caching not started yet
+ if ( (aError == KErrNotReady) || (aError == KErrNotFound) )
{
- if( !iAppUi->AppUiExitOngoing() )
- {
- TFsEmailUiUtility::ShowInfoNoteL(
- R_FSE_EDITOR_INFO_BUILDING_CACHE );
- }
+ if(!iAppUi->AppUiExitOngoing()) //<cmail>
+ TFsEmailUiUtility::ShowInfoNoteL( R_FSE_EDITOR_INFO_BUILDING_CACHE );
iCachingInProgress = ETrue;
}
if ( aError == KErrNone && iCachingInProgress )
{
- if ( !iAppUi->AppUiExitOngoing() )
- {
- TFsEmailUiUtility::ShowInfoNoteL(
- R_FSE_EDITOR_INFO_CACHING_COMPLETED );
- }
+ if(!iAppUi->AppUiExitOngoing()) //<cmail>
+ TFsEmailUiUtility::ShowInfoNoteL( R_FSE_EDITOR_INFO_CACHING_COMPLETED );
iCachingInProgress = EFalse;
}
}
@@ -338,17 +307,12 @@
delete iCurrentSearchText;
iCurrentSearchText = NULL;
iCurrentSearchText = aText.AllocL();
- if ( !iCachingInProgress )
+ if ( !iCachingInProgress )
{
- if ( iContactHandler )
+ if ( iContactHandler )
{
iContactHandler->SearchMatchesL( aText, this, &iMailBox, aMode );
}
- else
- {
- // update list for languages which don't support PCS
- UpdateListL();
- }
}
}
@@ -367,17 +331,15 @@
if ( iRemoteLookupSupported )
{
// calculate index of item
- TInt index = ( CurrentItemIndex() > iRemoteLookupItemPos ?
- CurrentItemIndex() - 1 : CurrentItemIndex() );
+ TInt index = (CurrentItemIndex() > iRemoteLookupItemPos ? CurrentItemIndex() - 1 : CurrentItemIndex());
clsItem = iMatchingItems[index];
}
else
{
- clsItem = iMatchingItems[CurrentItemIndex()];
+ clsItem = iMatchingItems[CurrentItemIndex()]; // no iRemoteLookupItemPos
}
- addressObject= CNcsEmailAddressObject::NewL(
- clsItem->DisplayName(), clsItem->EmailAddress() );
+ addressObject= CNcsEmailAddressObject::NewL( clsItem->DisplayName(), clsItem->EmailAddress() );
CleanupStack::PushL( addressObject );
if ( clsItem->MultipleEmails() )
{
@@ -428,8 +390,7 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::CurrentPopupClsItemsArray
// -----------------------------------------------------------------------------
-const RPointerArray<CFSEmailUiClsItem>&
-CNcsPopupListBox::CurrentPopupClsItemsArray() const
+const RPointerArray<CFSEmailUiClsItem>& CNcsPopupListBox::CurrentPopupClsItemsArray() const
{
return iMatchingItems;
}
@@ -458,32 +419,22 @@
void CNcsPopupListBox::SetListItemsFromArrayL()
{
FUNC_LOG;
-
+ // reset the cursor to point to the first item
+ //iView->MoveCursorL( CListBoxView::ECursorFirstItem, CListBoxView::ENoSelection);
Reset();
// Create totally new text array
CreateTextArrayAndSetToTheListboxL( ETrue );
- TInt matchCount = iMatchingItems.Count();
- // Remote lookup item's index is set as last item by default
- // (in case of empty matching items list it is the only item)
- TInt rmluIndex = matchCount;
-
// append texts to text array
- for( TInt i=0; i < matchCount; i++ )
- {
- iItemTextsArray->AppendL( iMatchingItems[i]->FullTextL() );
- if ( iRemoteLookupSupported &&
- rmluIndex == matchCount &&
- iMatchingItems[i]->EmailAddress().Compare( KNullDesC ) == 0 )
- {
- rmluIndex = i;
- }
- }
+ for( TInt i=0; i < iMatchingItems.Count(); i++ )
+ {
+ iItemTextsArray->AppendL( iMatchingItems[i]->FullTextL() );
+ }
// Update rmlu item
- SetRemoteLookupItemToTheListL( rmluIndex );
-
+ SetRemoteLookupItemFirstToTheListL();
+
SetPopupRect();
SetScrollBarVisibilityL();
HandleItemAdditionL();
@@ -502,13 +453,13 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::RoundToItemHeight
// -----------------------------------------------------------------------------
-TInt CNcsPopupListBox::RoundToItemHeight( const TInt aPopupHeight ) const
+TInt CNcsPopupListBox::RoundToItemHeight(const TInt aPopupHeight) const
{
TReal fullItems; // number of full visible items in window
- TInt err = Math::Round( fullItems, ( aPopupHeight / ItemHeight() ), 0 );
- if ( err == KErrNone )
+ TInt err = Math::Round(fullItems, (aPopupHeight / ItemHeight()), 0);
+ if (err == KErrNone)
{
- return (TInt)( fullItems * ItemHeight() );
+ return (TInt)(fullItems * ItemHeight());
}
return aPopupHeight; // in case of error
}
@@ -519,42 +470,79 @@
void CNcsPopupListBox::SetPopupRect()
{
FUNC_LOG;
+ // The popup width and horizontal position is adjusted so that it
+ // will be within the area specified in both layout data and the set
+ // maximum rect.
+ TAknLayoutRect editorPane;
+ editorPane.LayoutRect( iAppUi->ClientRect(),
+ TAknWindowComponentLayout::Compose(
+ TAknWindowComponentLayout::Compose(
+ AknLayoutScalable_Apps::list_cmail_pane(),
+ AknLayoutScalable_Apps::list_single_cmail_header_detail_pane( 0 ) ),
+ AknLayoutScalable_Apps::list_single_cmail_header_editor_pane_bg( 4 ) ) );
+ TRect editorPaneRect = editorPane.Rect();
- // The popup height and vertical position is adjusted based on the
+ TRect newRect = iPopupMaxRect;
+ newRect.iTl.iX = Max( iPopupMaxRect.iTl.iX, editorPaneRect.iTl.iX );
+ newRect.iBr.iX = Min( iPopupMaxRect.iBr.iX, editorPaneRect.iBr.iX );
+
+ // Thhe popup height and vertical position is adjusted based on the
// available space below and above the cursor and the number of items
// in the list.
- TRect newRect = iPopupMaxRect;
+ const TRect rect = iPopupMaxRect;
TAknLayoutRect subpane;
- subpane.LayoutRect( newRect,
- AknLayoutScalable_Avkon::bg_popup_sub_pane_g1() );
- const TInt frameHeights =
- iPopupMaxRect.Height() - subpane.Rect().Height();
+ subpane.LayoutRect( rect, AknLayoutScalable_Avkon::bg_popup_sub_pane_g1() );
+ const TRect subpaneRect = subpane.Rect();
+
+ const TInt frameHeights = iPopupMaxRect.Height() - subpaneRect.Height();
// This is the total height in pixels needed to show all items
- const TInt minimumHeight = frameHeights +
+ TInt minimumHeight = frameHeights +
CalcHeightBasedOnNumOfItems( Model()->NumberOfItems() );
+ CCoeControl* container = Parent()->Parent();
+ TInt containerTop = container->PositionRelativeToScreen().iY;
+ TInt containerHeight = container->Rect().Height();
+ TInt containerCenter = containerTop + containerHeight / 2;
+
// Get height of one line in Address field
- TInt toLineHeight =
- static_cast<CNcsHeaderContainer*>( Parent() )->GetToLineHeight();
+ CNcsHeaderContainer* headerObj = static_cast<CNcsHeaderContainer* >(Parent());
+ TInt toLineHeight = headerObj->GetToLineHeight(); // height of one line height
if ( toLineHeight == 0 )
{
toLineHeight = ItemHeight();
}
TInt newHeight = minimumHeight; // default window height
- CCoeControl* container = Parent()->Parent();
- const TInt maxHeight =
- container->Rect().Height() -
- ( newRect.iTl.iY - container->PositionRelativeToScreen().iY );
- newHeight =
- RoundToItemHeight( maxHeight - frameHeights ) + frameHeights;
- if ( newHeight > minimumHeight )
+
+ // latch listbox on the bottom of the editor field
+ if ( newRect.iTl.iY <= containerCenter )
+ {
+ TInt maxHeight = containerHeight - ( newRect.iTl.iY - containerTop );
+ newHeight = RoundToItemHeight( maxHeight - frameHeights ) + frameHeights;
+ if ( newHeight > minimumHeight )
+ {
+ newHeight = minimumHeight; // shrink window (if needed)
+ }
+ }
+ // latch listbox on the top of the editor field
+ else
{
- newHeight = minimumHeight; // shrink window (if needed)
+ TInt yOffset = -minimumHeight - toLineHeight; // how much up
+ TInt newTlY = newRect.iTl.iY + yOffset; // new Top Left Y coordinate
+ if ( newTlY >= containerTop )
+ {
+ newRect.Move( 0, yOffset );
+ }
+ else
+ {
+ // shrink height to visible area and move
+ TInt maxHeight = newRect.iTl.iY - toLineHeight - containerTop;
+ newHeight = RoundToItemHeight( maxHeight - frameHeights ) + frameHeights;
+ newRect.Move( 0, -newHeight - toLineHeight );
+ }
}
-
- newRect.SetHeight( newHeight );
+ newRect.SetHeight( newHeight ); // set new height
SetRect( newRect );
}
@@ -565,11 +553,10 @@
{
FUNC_LOG;
// This is the total height in pixels needed to show all items
- TInt minimumHeight =
- CalcHeightBasedOnNumOfItems( Model()->NumberOfItems() );
+ TInt minimumHeight = CalcHeightBasedOnNumOfItems( Model()->NumberOfItems() );
// Show scroll bar if there is more items we can show at once.
- if( iPopupMaxRect.Height() > minimumHeight )
+ if( iPopupMaxRect.Height() > minimumHeight )
{
ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
@@ -583,20 +570,19 @@
// -----------------------------------------------------------------------------
-// CNcsPopupListBox::SetRemoteLookupItemToTheListL
+// CNcsPopupListBox::SetRemoteLookupItemFirstToTheListL
// -----------------------------------------------------------------------------
-void CNcsPopupListBox::SetRemoteLookupItemToTheListL( TInt aIndex )
+void CNcsPopupListBox::SetRemoteLookupItemFirstToTheListL()
{
FUNC_LOG;
if( iRemoteLookupSupported )
{
HBufC* rmluText = StringLoader::LoadLC(
- R_FSE_EDITOR_ADDRESS_LIST_REMOTE_LOOKUP_SEARCH,
- *iCurrentSearchText );
+ R_FSE_EDITOR_ADDRESS_LIST_REMOTE_LOOKUP_SEARCH, *iCurrentSearchText );
- iItemTextsArray->InsertL( aIndex, *rmluText );
+ iItemTextsArray->InsertL( 0, *rmluText );
CleanupStack::PopAndDestroy( rmluText );
- iRemoteLookupItemPos = aIndex;
+ iRemoteLookupItemPos = 0;
}
else
{
@@ -607,8 +593,7 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::MoveRemoteLookupItemL
// -----------------------------------------------------------------------------
-void CNcsPopupListBox::MoveRemoteLookupItemL(
- TRemoteLookupItemMoveDirection aDirection )
+void CNcsPopupListBox::MoveRemoteLookupItemL( TRemoteLookupItemMoveDirection aDirection )
{
FUNC_LOG;
if( iRemoteLookupSupported )
@@ -633,9 +618,7 @@
{
iItemTextsArray->Delete( iRemoteLookupItemPos );
- HBufC* rmluText = StringLoader::LoadLC(
- R_FSE_EDITOR_ADDRESS_LIST_REMOTE_LOOKUP_SEARCH,
- *iCurrentSearchText );
+ HBufC* rmluText = StringLoader::LoadLC( R_FSE_EDITOR_ADDRESS_LIST_REMOTE_LOOKUP_SEARCH, *iCurrentSearchText );
iItemTextsArray->InsertL( newRMLUItemIndex, *rmluText );
CleanupStack::PopAndDestroy( rmluText );
@@ -648,8 +631,7 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::CreateTextArrayAndSetToTheListboxL
// -----------------------------------------------------------------------------
-void CNcsPopupListBox::CreateTextArrayAndSetToTheListboxL(
- const TBool& aResetIfExists )
+void CNcsPopupListBox::CreateTextArrayAndSetToTheListboxL( const TBool& aResetIfExists )
{
FUNC_LOG;
if( !iItemTextsArray )
@@ -678,16 +660,16 @@
FUNC_LOG;
// Store a GC for later use
iGc = &CCoeEnv::Static()->SystemGc();
- SetGc( iGc );
+ SetGc(iGc);
}
// -----------------------------------------------------------------------------
// CNcsListItemDrawer::DrawActualItem
// -----------------------------------------------------------------------------
-void CNcsListItemDrawer::DrawActualItem( TInt aItemIndex,
+void CNcsListItemDrawer::DrawActualItem(TInt aItemIndex,
const TRect& aActualItemRect, TBool aItemIsCurrent,
TBool /*aViewIsEmphasized*/, TBool /*aViewIsDimmed*/,
- TBool /*aItemIsSelected*/ ) const
+ TBool /*aItemIsSelected*/) const
{
FUNC_LOG;
iGc->DiscardFont();
@@ -698,8 +680,7 @@
TInt rmluPosition = iListBox.RemoteLookupItemPos();
// Sets all the attributes, like font, text color and background color.
- const CFont* font = AknLayoutUtils::FontFromId(
- EAknLogicalFontPrimarySmallFont );
+ const CFont* font = AknLayoutUtils::FontFromId( EAknLogicalFontPrimarySmallFont );
iGc->UseFont( font );
iGc->SetPenStyle( CGraphicsContext::ESolidPen );
iGc->SetBrushStyle( CGraphicsContext::ENullBrush );
@@ -802,16 +783,14 @@
// For now, we support underlining the matching part only if the
// text is written completely with left-to-right script
- // We know the text contains RTL script if the display string is not
- // just truncated version of the original string.
+ // We know the text contains RTL script if the display string is not just
+ // truncated version of the original string.
TPtrC dispText = bidiText->DisplayText();
- // -1 to omit the truncation character
- TInt compLength = dispText.Length() - 1;
+ TInt compLength = dispText.Length() - 1; // -1 to omit the truncation character
TBool textContainsRtl =
- ( itemText.Left( compLength ) != dispText.Left( compLength ) );
+ ( itemText.Left(compLength) != dispText.Left(compLength) );
- const RArray<TPsMatchLocation>& underlines =
- clsItemArray[aItemIndex]->Highlights();
+ const RArray<TPsMatchLocation>& underlines = clsItemArray[aItemIndex]->Highlights();
if ( underlines.Count() > 0 && !textContainsRtl )
{
@@ -826,8 +805,7 @@
{
// draw letters to the start of the underlined part
currentTextLength = underlines[i].index - currentTextStart;
- DrawPartOfItem( textRect, *font, currentTextStart,
- currentTextLength, itemText,
+ DrawPartOfItem( textRect, *font, currentTextStart, currentTextLength, itemText,
EFalse, topToBaseline );
}
else if ( currentTextStart == underlines[i].index )
@@ -835,16 +813,14 @@
// draw underlined letters
currentTextLength = underlines[i].length;
- DrawPartOfItem( textRect, *font, currentTextStart,
- currentTextLength, itemText,
+ DrawPartOfItem( textRect, *font, currentTextStart, currentTextLength, itemText,
ETrue, topToBaseline );
i++;
}
else
{
- // This is here, because PCS Engine might give you
- // duplicate match entries, in this case we're not
- // advancing text but we'll skip that match
+ // This is here, because PCS Engine might give you duplicate match entries,
+ // in this case we're not advancing text but we'll skip that match
currentTextLength = 0;
i++;
}
@@ -854,14 +830,11 @@
if ( i >= underlines.Count() )
{
partsLeft = EFalse;
- // draw rest of the letters, if there are any after the
- // last underlined part
+ // draw rest of the letters, if there are any after the last underlined part
if ( currentTextStart < itemText.Length() )
{
- currentTextLength =
- itemText.Length() - currentTextStart;
- DrawPartOfItem( textRect, *font, currentTextStart,
- currentTextLength, itemText,
+ currentTextLength = itemText.Length() - currentTextStart;
+ DrawPartOfItem( textRect, *font, currentTextStart, currentTextLength, itemText,
EFalse, topToBaseline );
}
}
@@ -882,10 +855,9 @@
// -----------------------------------------------------------------------------
// CNcsListItemDrawer::DrawPartOfItem
// -----------------------------------------------------------------------------
-void CNcsListItemDrawer::DrawPartOfItem(
- const TRect& aItemRect, const CFont& aFont,
- TInt aStartPos, TInt aLength, const TDesC& aDes,
- TBool aUnderlined, TInt aBaselineOffsetFromTop ) const
+void CNcsListItemDrawer::DrawPartOfItem( const TRect& aItemRect, const CFont& aFont,
+ TInt aStartPos, TInt aLength, const TDesC& aDes,
+ TBool aUnderlined, TInt aBaselineOffsetFromTop ) const
{
FUNC_LOG;
if( aUnderlined )
@@ -904,50 +876,24 @@
}
-// ---------------------------------------------------------------------------
-// Updates popup list content.
-// ---------------------------------------------------------------------------
-//
void CNcsPopupListBox::UpdateListL()
{
FUNC_LOG;
SetListItemsFromArrayL();
// Close the popup if it's empty and make sure it's visible if it's not empty.
- UpdateVisibilityL( !IsPopupEmpty() );
- }
-
-// ---------------------------------------------------------------------------
-// Shows or hides popup if necessary.
-// ---------------------------------------------------------------------------
-//
-void CNcsPopupListBox::UpdateVisibilityL( TBool aVisible )
- {
- if ( IsVisible() != aVisible )
+ if ( IsPopupEmpty() )
{
- if ( iObserver.PopupVisibilityChangingL( aVisible ) )
- {
- MakeVisible( aVisible );
- if ( aVisible )
- {
- UpdateScrollBarsL();
- SetScrollBarVisibilityL();
- // Popup is always on top (also on top of e.g. toolbar buttons)
- DrawableWindow()->SetOrdinalPosition( 0 );
- }
- }
+ iHeaderContainer.ClosePopupContactListL();
}
- else if ( IsVisible() )
+ else
{
+ MakeVisible( ETrue );
UpdateScrollBarsL();
- SetScrollBarVisibilityL();
+ iHeaderContainer.ShowPopupMenuBarL( ETrue );
}
}
-// ---------------------------------------------------------------------------
-// Updates popup text colors.
-// ---------------------------------------------------------------------------
-//
void CNcsPopupListBox::UpdateTextColors()
{
if ( iItemDrawer )
--- a/emailuis/emailui/src/ncssubjectfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncssubjectfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -21,7 +21,6 @@
#include <AknIconUtils.h>
#include <avkon.hrh>
#include <eiklabel.h>
-#include <aknbutton.h>
#include <eikimage.h>
#include <eikenv.h>
#include <AknsDrawUtils.h>
@@ -82,37 +81,13 @@
// Create label
HBufC* aTextBuf = StringLoader::LoadLC( aLabelTextId );
TPtrC captionText = aTextBuf ? aTextBuf->Des() : TPtrC();
+ iLabel = new ( ELeave ) CNcsLabel( *this, NULL );
+ iLabel->SetTextL( captionText );
- if( AknLayoutUtils::PenEnabled() )
- {
- // Create a frameless button that has no observer
- // This is done like this to make Subject: field appear similar as
- // other header fields (To:, Cc:), although it doesn't have other
- // button-like features
- TRect buttRect( 10, 10, 70, 100 );
- iButton = CAknButton::NewL( NULL, NULL, NULL, NULL,
- captionText, TPtrC(),
- KAknButtonTextLeft | KAknButtonNoFrame ,
- 0 );
- iButton->SetTextColorIds(
- KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG63 );
- iButton->SetContainerWindowL( *iParentControl );
- iButton->SetRect( buttRect );
- iButton->EnableFeedback( EFalse );
- iButton->MakeVisible( ETrue );
- iButton->ActivateL();
- }
- else
- {
- iLabel = new ( ELeave ) CNcsLabel( *this, NULL );
- iLabel->SetTextL( captionText );
-
- // S60 Skin support
- iLabel->SetBrushStyle(CWindowGc::ENullBrush);
- }
-
- iTextEditor = new ( ELeave ) CNcsEditor(
- iSizeObserver, ETrue, ENcsEditorSubject, captionText );
+ // S60 Skin support
+ iLabel->SetBrushStyle(CWindowGc::ENullBrush);
+
+ iTextEditor = new ( ELeave ) CNcsEditor( iSizeObserver, ETrue, ENcsEditorSubject, captionText );
CleanupStack::PopAndDestroy( aTextBuf );
}
@@ -125,41 +100,37 @@
FUNC_LOG;
delete iTextEditor;
delete iLabel;
- delete iButton;
+ // Platform layout change
+ /*if ( iFont )
+ {
+ ControlEnv()->ScreenDevice()->ReleaseFont( iFont );
+ iFont = NULL;
+ }*/
}
// -----------------------------------------------------------------------------
// CNcsSubjectField::SetContainerWindowL() const
// -----------------------------------------------------------------------------
//
-void CNcsSubjectField::SetContainerWindowL( const CCoeControl& aContainer )
+void CNcsSubjectField::SetContainerWindowL(const CCoeControl& aContainer)
{
FUNC_LOG;
- CCoeControl::SetContainerWindowL( aContainer );
+ CCoeControl::SetContainerWindowL(aContainer);
// Create the component array
InitComponentArrayL();
CCoeControlArray& controls = Components();
- controls.SetControlsOwnedExternally( ETrue );
- if ( iButton )
- {
- controls.AppendLC( iButton );
- CleanupStack::Pop( iButton );
- }
- else
- {
- controls.AppendLC( iLabel );
- CleanupStack::Pop( iLabel );
- }
- controls.AppendLC( iTextEditor );
- CleanupStack::Pop( iTextEditor );
+ controls.SetControlsOwnedExternally(ETrue);
+ controls.AppendLC(iLabel);
+ CleanupStack::Pop(iLabel);
+ controls.AppendLC(iTextEditor);
+ CleanupStack::Pop(iTextEditor);
// Setup text editor
iTextEditor->ConstructL( &aContainer, KMaxAddressFieldLines, 0 );
iTextEditor->SetBorder( TGulBorder::ENone );
iTextEditor->SetAknEditorInputMode( EAknEditorTextInputMode );
- iTextEditor->CreateScrollBarFrameL()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
+ iTextEditor->CreateScrollBarFrameL()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
iTextEditor->SetEdwinSizeObserver( this );
iTextEditor->SetupEditorL();
// Setup label
@@ -186,7 +157,7 @@
TInt CNcsSubjectField::GetMinLabelLength() const
{
FUNC_LOG;
- return iLabel ? iLabel->Font()->TextWidthInPixels( *iLabel->Text() ) : 0;
+ return iLabel->Font()->TextWidthInPixels( *iLabel->Text() );
}
// -----------------------------------------------------------------------------
@@ -199,49 +170,35 @@
FUNC_LOG;
const TRect rect( Rect() );
- if ( iButton )
- {
- NcsUtility::LayoutCaptionButton( iButton, rect );
- }
- else
- {
- NcsUtility::LayoutCaptionLabel( iLabel, rect );
- }
-
- NcsUtility::LayoutDetailEdwinTouch(
- iTextEditor, rect, iEditorLineCount, EFalse );
+ NcsUtility::LayoutCaptionLabel( iLabel, rect );
+ NcsUtility::LayoutDetailEdwinTouch( iTextEditor, rect, iEditorLineCount, EFalse );
- if ( iTextEditor->ScrollBarFrame() )
+ if (iTextEditor->ScrollBarFrame())
{
TRect rc = iTextEditor->Rect();
- if ( AknLayoutUtils::LayoutMirrored() )
+ if (AknLayoutUtils::LayoutMirrored())
{
- rc.iTl.iX += iTextEditor->ScrollBarFrame()->ScrollBarBreadth(
- CEikScrollBar::EVertical );
+ rc.iTl.iX += iTextEditor->ScrollBarFrame()->ScrollBarBreadth(CEikScrollBar::EVertical);
}
else
{
- rc.iBr.iX -= iTextEditor->ScrollBarFrame()->ScrollBarBreadth(
- CEikScrollBar::EVertical );
+ rc.iBr.iX -= iTextEditor->ScrollBarFrame()->ScrollBarBreadth(CEikScrollBar::EVertical);
}
- iTextEditor->SetRect( rc );
+ iTextEditor->SetRect(rc);
}
// Setup text alignment according the mirrored/normal layout.
- if ( iLabel )
+ if ( AknLayoutUtils::LayoutMirrored() )
{
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- iLabel->SetAlignment( EHLeftVCenter );
- iLabel->SetLabelAlignment( ELayoutAlignLeft );
- }
- else
- {
- iLabel->SetAlignment( EHRightVCenter );
- iLabel->SetLabelAlignment( ELayoutAlignRight );
- }
+ iLabel->SetAlignment( EHLeftVCenter );
+ iLabel->SetLabelAlignment( ELayoutAlignLeft );
}
-
+ else
+ {
+ iLabel->SetAlignment( EHRightVCenter );
+ iLabel->SetLabelAlignment( ELayoutAlignRight );
+ }
+
// this needs to be bidi as in mirrored layout
// writing language left to right can be set
iTextEditor->SetAlignment( EAknEditorAlignBidi );
@@ -253,12 +210,13 @@
// -----------------------------------------------------------------------------
// CNcsSubjectField::PositionChanged()
+// set size
// -----------------------------------------------------------------------------
//
void CNcsSubjectField::PositionChanged()
{
FUNC_LOG;
- // empty
+ //SizeChanged();
}
// -----------------------------------------------------------------------------
@@ -266,8 +224,7 @@
// Handles key events
// -----------------------------------------------------------------------------
//
-TKeyResponse CNcsSubjectField::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType )
+TKeyResponse CNcsSubjectField::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
{
FUNC_LOG;
TKeyResponse ret( EKeyWasNotConsumed );
@@ -283,8 +240,8 @@
//
void CNcsSubjectField::HandlePointerEventL( const TPointerEvent& aPointerEvent )
{
- FUNC_LOG;
- CCoeControl::HandlePointerEventL( aPointerEvent );
+ FUNC_LOG;
+ iTextEditor->HandlePointerEventL( aPointerEvent );
}
// -----------------------------------------------------------------------------
@@ -292,26 +249,51 @@
// -----------------------------------------------------------------------------
//
void CNcsSubjectField::FocusChanged( TDrawNow aDrawNow )
- {
+ {
FUNC_LOG;
- if ( IsFocused() )
- {
- iTextEditor->SetFocus( ETrue, aDrawNow );
- if ( iParentControl )
- {
- TRAP_IGNORE( iParentControl->SetMskL() );
- }
- }
- else
- {
- iTextEditor->SetFocus( EFalse, aDrawNow );
- }
+ if ( IsFocused() )
+ {
+ iTextEditor->SetFocus( ETrue );
+ //TRAP_IGNORE( iTextEditor->SetCursorPosL( iTextEditor->TextLength(), EFalse ) );
- if ( aDrawNow )
- {
- DrawNow();
- }
- }
+ // make sure that control is visible on screen
+ if ( Rect().iTl.iY < 0 )
+ {
+ TPoint pt = TPoint( 0, 0 );
+ Reposition( pt, Rect().Width() );
+ iSizeObserver->UpdateFieldPosition( this );
+ }
+ else
+ {
+ TPoint pos = PositionRelativeToScreen();
+ pos.iY += Size().iHeight;
+ CWsScreenDevice* screenDev = ControlEnv()->ScreenDevice();
+ TPixelsAndRotation pix;
+ screenDev->GetDefaultScreenSizeAndRotation( pix );
+ const TInt h = pix.iPixelSize.iHeight;
+ if ( pos.iY >= h - h / 3 )
+ {
+ TPoint pt = TPoint( 0, h / 3 );
+ Reposition( pt, Rect().Width() );
+ iSizeObserver->UpdateFieldPosition( this );
+ }
+ }
+
+ if ( iParentControl )
+ {
+ TRAP_IGNORE( iParentControl->SetMskL() );
+ }
+ }
+ else
+ {
+ iTextEditor->SetFocus( EFalse );
+ }
+
+ if ( aDrawNow )
+ {
+ DrawNow();
+ }
+ }
// -----------------------------------------------------------------------------
// CNcsSubjectField::MinimumHeight()
@@ -321,6 +303,20 @@
TInt CNcsSubjectField::MinimumHeight()
{
FUNC_LOG;
+ // Platform layout changes
+ /*
+ TNcsMeasures m = NcsUtility::Measures();
+ TInt height = m.iAifHeight - m.iAifEditorHeight + iEditorMinimumHeight + m.iSubjectExtraHeightBottom;
+ TInt height2 = m.iAifHeight + m.iSubjectExtraHeightBottom;
+ // if followup icon and priority icon are both visible increase the subject field height
+ if ( iFollowUp && iPriority != EMsgPriorityNormal )
+ {
+ height2 += KIconHeightFollowUp;
+ }
+ return Max( height, height2 );
+ */
+ //return NcsUtility::MinimumHeaderSize( Rect(), iEditorLineCount ).iHeight;
+ // Platform layout changes
return 0;
}
@@ -344,12 +340,11 @@
RMemReadStream inputStream( aSubject.Ptr(), aSubject.Size() );
CleanupClosePushL( inputStream );
- iTextEditor->RichText()->ImportTextL(
- 0, inputStream, CPlainText::EOrganiseByParagraph );
+ iTextEditor->RichText()->ImportTextL( 0, inputStream, CPlainText::EOrganiseByParagraph );
// Activating the field will set the control to the end of the text
iTextEditor->ActivateL();
- iTextEditor->SetCursorPosL( 0, EFalse );
+ iTextEditor->SetCursorPosL(0,EFalse);
CleanupStack::PopAndDestroy( &inputStream );
}
@@ -363,10 +358,41 @@
TEdwinSizeEvent /*aEventType*/, TSize aDesirableEdwinSize )
{
FUNC_LOG;
+ // Platform layout chage
+ /*
TInt ret( EFalse );
TInt htLine = iTextEditor->GetLineHeightL();
TInt numLinesDesired = aDesirableEdwinSize.iHeight / htLine;
+
+ if ( numLinesDesired < KMaxAddressFieldLines &&
+ iEditorMinimumHeight != aDesirableEdwinSize.iHeight )
+ {
+ iEditorMinimumHeight = aDesirableEdwinSize.iHeight;
+ iTextEditor->CreateScrollBarFrameL()->SetScjrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
+ if ( iSizeObserver )
+ {
+ ret = iSizeObserver->UpdateFieldSizeL();
+ }
+ }
+ else if ( iEditorMinimumHeight != htLine * KMaxAddressFieldLines )
+ {
+ //We may still need to resize the controll.
+ iEditorMinimumHeight = htLine * KMaxAddressFieldLines;
+ iTextEditor->CreateScrollBarFrameL()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOn );
+ if ( iSizeObserver )
+ {
+ ret = iSizeObserver->UpdateFieldSizeL();
+ }
+ }
+ */
+
+ TInt ret( EFalse );
+ TInt htLine = iTextEditor->GetLineHeightL();
+ TInt numLinesDesired = aDesirableEdwinSize.iHeight / htLine;
+ // commented because of EGWG-83ECSR, no negative feedback after removing
+ //CEikScrollBarFrame& scrollBarFrame( *iTextEditor->CreateScrollBarFrameL() );
iEditorLineCount = numLinesDesired;
+ //scrollBarFrame.SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
if ( iSizeObserver )
{
ret = iSizeObserver->UpdateFieldSizeL();
@@ -451,6 +477,7 @@
return KNullDesC;
}
+// Platform layout change
// ---------------------------------------------------------------------------
// CNcsSubjectField::LayoutLineCount
// ---------------------------------------------------------------------------
@@ -467,17 +494,23 @@
void CNcsSubjectField::Reposition(TPoint& aPt, TInt /*aWidth*/)
{
FUNC_LOG;
+ /*
+ const TSize size( aWidth, MinimumHeight() );
+ SetExtent( aPt, size );
+ aPt.iY += size.iHeight;
+ */
SetPosition( aPt );
+ // Platform layout changes
}
// -----------------------------------------------------------------------------
// CNcsSubjectField::GetLineRectL
// -----------------------------------------------------------------------------
-void CNcsSubjectField::GetLineRect( TRect& aLineRect ) const
- {
+void CNcsSubjectField::GetLineRectL( TRect& aLineRect ) const
+ {
FUNC_LOG;
- return iTextEditor->GetLineRect( aLineRect );
- }
+ return iTextEditor->GetLineRectL( aLineRect );
+ }
// -----------------------------------------------------------------------------
// CNcsSubjectField::SetMaxLabelLength
@@ -504,19 +537,23 @@
void CNcsSubjectField::UpdateColors()
{
FUNC_LOG;
+ // Platform layout change
+ TRgb textColor = KRgbBlack;
+ if ( AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), textColor,
+ KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ) != KErrNone )
+ {
+ textColor = KRgbBlack;
+ }
+ TRAP_IGNORE( iLabel->OverrideColorL( EColorLabelText, textColor ) );
+ // Platform layout change
- if ( iLabel )
- {
- TRgb textColor = KRgbBlack;
- if ( AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), textColor,
- KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ) != KErrNone )
- {
- textColor = KRgbBlack;
- }
- TRAP_IGNORE( iLabel->OverrideColorL( EColorLabelText, textColor ) );
- }
+ CFreestyleEmailUiAppUi* appUi =
+ static_cast<CFreestyleEmailUiAppUi*>( ControlEnv()->AppUi() );
+ iBorderColor = appUi->LayoutHandler()->ComposerFieldBorderColor();
+ iBgColor = appUi->LayoutHandler()->ComposerFieldBackgroundColor();
}
+// Platform layout changes
// ---------------------------------------------------------------------------
// CNcsSubjectField::UpdateFontSize()
// ---------------------------------------------------------------------------
@@ -524,18 +561,20 @@
void CNcsSubjectField::UpdateFontSize()
{
FUNC_LOG;
- CCoeControl* control =
- iButton ? ( CCoeControl* )iButton : ( CCoeControl* )iLabel;
- iFont = NcsUtility::GetLayoutFont(
- control->Rect(), NcsUtility::ENcsHeaderCaptionFont );
- if( control == iButton )
+ /*if ( iFont )
{
- iButton->SetTextFont( iFont );
+ ControlEnv()->ScreenDevice()->ReleaseFont( iFont );
+ iFont = NULL;
}
- else
- {
- iLabel->SetFont( iFont );
- }
+
+ TNcsMeasures m = NcsUtility::Measures();
+ if ( !iFont )
+ {
+ TRAP_IGNORE( iFont = NcsUtility::GetNearestFontL(EAknLogicalFontPrimarySmallFont,
+ m.iLabelFontHeightPx) );
+ }*/
+ iFont = NcsUtility::GetLayoutFont( iLabel->Rect(), NcsUtility::ENcsHeaderCaptionFont );
+ iLabel->SetFont( iFont );
iTextEditor->UpdateFontSize();
UpdateColors();
}
@@ -553,24 +592,18 @@
{
UpdateFontSize();
UpdateColors();
- iTextEditor->HandleResourceChange( aType );
+ // Platform layout changes
+ iTextEditor->HandleResourceChange( aType ) ;//CreateScrollBarFrameL()->DrawScrollBarsNow();
+ // Platform layout changes
}
}
-// ---------------------------------------------------------------------------
-// CNcsSubjectField::EnableKineticScrollingL()
-// ---------------------------------------------------------------------------
-//
-void CNcsSubjectField::EnableKineticScrollingL( CAknPhysics* aPhysics )
+void CNcsSubjectField::EnableKineticScrollingL(CAknPhysics* aPhysics)
{
- iTextEditor->EnableKineticScrollingL( aPhysics );
+ iTextEditor->EnableKineticScrollingL(aPhysics);
iTextEditor->TextLayout()->RestrictScrollToTopsOfLines( ETrue );
}
-// ---------------------------------------------------------------------------
-// CNcsSubjectField::SetPhysicsEmulationOngoing()
-// ---------------------------------------------------------------------------
-//
void CNcsSubjectField::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
{
iTextEditor->SetPhysicsEmulationOngoing( aPhysOngoing );
--- a/emailuis/emailui/src/ncsutility.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/ncsutility.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -324,19 +324,19 @@
// first word, than loop ends
do
{
- indexRe = formattedSubjectLinePtr.FindC( rePtr );
- if( indexRe == 0 )
- {
- formattedSubjectLinePtr.Delete( indexRe, rePtr.Length() );
- formattedSubjectLinePtr.Trim();
- }
+ indexRe = formattedSubjectLinePtr.FindC( rePtr );
+ if( indexRe == 0 )
+ {
+ formattedSubjectLinePtr.Delete( indexRe, rePtr.Length() );
+ formattedSubjectLinePtr.Trim();
+ }
- indexFw = formattedSubjectLinePtr.FindC( fwdPrt );
- if( indexFw == 0 )
- {
- formattedSubjectLinePtr.Delete( indexFw, rePtr.Length() );
- formattedSubjectLinePtr.Trim();
- }
+ indexFw = formattedSubjectLinePtr.FindC( fwdPrt );
+ if( indexFw == 0 )
+ {
+ formattedSubjectLinePtr.Delete( indexFw, rePtr.Length() );
+ formattedSubjectLinePtr.Trim();
+ }
}
while( !( indexRe != 0 && indexFw != 0) );
--- a/emailuis/uicomponents/bwins/fs_generic_alfu.def Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/bwins/fs_generic_alfu.def Wed Oct 13 14:11:15 2010 +0300
@@ -306,5 +306,4 @@
?VisibilityMode@CFsAlfScrollbarLayout@@QAE?AW4TFsScrollbarVisibility@@W4TFsScrollbar@@@Z @ 305 NONAME ; enum TFsScrollbarVisibility CFsAlfScrollbarLayout::VisibilityMode(enum TFsScrollbar)
?Visual@CFsControlBar@@QAEPAVCAlfVisual@@XZ @ 306 NONAME ; class CAlfVisual * CFsControlBar::Visual(void)
?Width@CFsControlBar@@QBEHXZ @ 307 NONAME ; int CFsControlBar::Width(void) const
- ?SetMarkingModeL@CFsTreeList@@QAEXH@Z @ 308 NONAME ; void CFsTreeList::SetMarkingModeL(int)
--- a/emailuis/uicomponents/eabi/fs_generic_alfU.def Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/eabi/fs_generic_alfU.def Wed Oct 13 14:11:15 2010 +0300
@@ -416,5 +416,4 @@
_ZThn32_N14CFsTreeControl11OfferEventLERK9TAlfEvent @ 415 NONAME ; #<thunk>#
_ZThn4_N26CFsControlButtonVisualiser23TextureLoadingCompletedER11CAlfTextureii @ 416 NONAME ; #<thunk>#
_ZThn4_NK11CFsTreeList20TreeVisualizerEventLEN25MFsTreeVisualizerObserver22TFsTreeVisualizerEventEiRK6TPoint @ 417 NONAME ; #<thunk>#
- _ZN11CFsTreeList15SetMarkingModeLEi @ 418 NONAME
--- a/emailuis/uicomponents/inc/fscontrolbuttonvisualiser.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fscontrolbuttonvisualiser.h Wed Oct 13 14:11:15 2010 +0300
@@ -548,11 +548,6 @@
* Show dropdown shadow for buttons
*/
TBool iShowShadow;
-
- /**
- * Help variable to omit unnecessary iDefaultBgBrush updates.
- */
- TSize iLastUpdatedButtonModelSize;
};
--- a/emailuis/uicomponents/inc/fsmultilineitemvisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fsmultilineitemvisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -169,8 +169,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
--- a/emailuis/uicomponents/inc/fsseparatorvisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fsseparatorvisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -167,8 +167,6 @@
*/
virtual void SetAlwaysExtended( TBool aAlwaysExtended );
- virtual void SetMarkingMode( TBool aMarkingMode );
-
/**
* From MFsTreeItemVisualizer.
* This function returns wether an item is always in extended state.
@@ -196,8 +194,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
--- a/emailuis/uicomponents/inc/fstreeitemvisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreeitemvisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -66,7 +66,6 @@
const TUint32 KFsTreeListItemManagedLayout = 0x0800;
const TUint32 KFsTreeListItemHasMenu = 0x1000;
const TUint32 KFsTreeListItemTextBold = 0x2000;
-const TUint32 KFsTreeListMarkingMode = 0x4000;
const TInt KFsDefaultIndentation = 20;
@@ -268,6 +267,7 @@
*/
virtual void SetBackgroundTexture( const CAlfTexture& aTexture ) = 0;
+ // <cmail>
/**
* Sets item background brush. Ownership not transfered.
*
@@ -284,6 +284,7 @@
* @return ETrue if background brush is set, EFalse otherwise.
*/
virtual TBool GetBackgroundBrush( CAlfBrush*& aBrush ) = 0;
+ // </cmail>
/**
* Returns background texture if it's set.
@@ -392,8 +393,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue) = 0;
@@ -449,8 +449,6 @@
* @param ETrue if item should always be in extended state.
*/
virtual void SetAlwaysExtended( TBool aAlwaysExtended ) = 0;
-
- virtual void SetMarkingMode( TBool aMarkingMode ) = 0;
/**
* This function returns wether an item is always in extended state.
--- a/emailuis/uicomponents/inc/fstreeitemvisualizerbase.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreeitemvisualizerbase.h Wed Oct 13 14:11:15 2010 +0300
@@ -20,7 +20,12 @@
#define FSTREEITEMVISUALIZERBASE_H_
#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+// <cmail> SF
#include <alf/alfeventhandler.h>
+// </cmail>
#include "fstreeitemvisualizer.h"
#include "fslayoutmanager.h"
@@ -308,6 +313,7 @@
*/
virtual void SetBackgroundTexture( const CAlfTexture& aTexture );
+ // <cmail>
/**
* From MFsTreeItemVisualizer.
* Sets item background brush. Ownership not transfered.
@@ -325,6 +331,7 @@
* @return ETrue if background brush is set, EFalse otherwise.
*/
virtual TBool GetBackgroundBrush( CAlfBrush*& aBrush );
+ // </cmail>
/**
* From MFsTreeItemVisualizer.
@@ -360,8 +367,6 @@
* @param ETrue if item should always be in extended state.
*/
virtual void SetAlwaysExtended( TBool aAlwaysExtended );
-
- virtual void SetMarkingMode( TBool aMarkingMode );
/**
* This function returns wether an item is always in extended state.
@@ -436,8 +441,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
@@ -556,7 +560,9 @@
EFsItemBackgroundNone,
EFsItemBackgroundColor,
EFsItemBackgroundTexture,
+ // <cmail> this feature is waiting for title divider bg graphics
EFsItemBackgroundBrush
+ // </cmail>
};
protected:
--- a/emailuis/uicomponents/inc/fstreelist.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreelist.h Wed Oct 13 14:11:15 2010 +0300
@@ -23,9 +23,15 @@
/////SYSTEM INCLUDES
//////TOOLKIT INCLUDES
+// <cmail> SF
#include <alf/alfcontrol.h>
+// </cmail>
//////PROJECT INCLUDES
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
#include "fstreelistconstants.h"
#include "fstreevisualizerbase.h"
#include "fstreevisualizerobserver.h"
@@ -581,14 +587,6 @@
*/
IMPORT_C CFsTreeList* ItemMenu( TFsTreeItemId aItemId );
- /**
- * Sets marking mode on\off
- *
- * @param ETrue if marking mode is set on
- */
-
- IMPORT_C void SetMarkingModeL( const TBool aMarkingMode );
-
public: // Visualization management
/**
--- a/emailuis/uicomponents/inc/fstreenodevisualizerbase.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreenodevisualizerbase.h Wed Oct 13 14:11:15 2010 +0300
@@ -22,8 +22,13 @@
#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
#include <gdi.h>
+// <cmail> SF
#include <alf/alfeventhandler.h>
+// </cmail>
#include "fstreenodevisualizer.h"
class CAlfLayout;
@@ -305,6 +310,7 @@
*/
virtual void SetBackgroundTexture( const CAlfTexture& aTexture );
+ // <cmail>
/**
* From MFsTreeItemVisualizer.
* Sets item background brush. Ownership not transfered.
@@ -322,6 +328,7 @@
* @return ETrue if background brush is set, EFalse otherwise.
*/
virtual TBool GetBackgroundBrush( CAlfBrush*& aBrush );
+ // </cmail>
/**
* From MFsTreeItemVisualizer.
@@ -357,8 +364,6 @@
* @param ETrue if item should always be in extended state.
*/
virtual void SetAlwaysExtended( TBool aAlwaysExtended );
-
- virtual void SetMarkingMode( TBool aMarkingMode );
/**
* This function returns wether an item is always in extended state.
@@ -434,8 +439,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
@@ -565,7 +569,9 @@
EFsNodeBackgroundNone,
EFsNodeBackgroundColor,
EFsNodeBackgroundTexture,
+ // <cmail> this feature is waiting for title divider bg graphics
EFsNodeBackgroundBrush
+ // </cmail>
};
protected:
--- a/emailuis/uicomponents/inc/fstreeplainonelineitemvisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreeplainonelineitemvisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -20,7 +20,12 @@
#define C_FSTREEPLAINONELINEITEMVISUALIZER_H
#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+// <cmail> SF
#include <alf/alfeventhandler.h>
+// </cmail>
#include "fstreeitemvisualizerbase.h"
class CAlfViewportLayout;
@@ -90,8 +95,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
@@ -173,7 +177,7 @@
/**
* Visual for a mark icon.
*/
- CAlfImageVisual* iIconMark;
+ CAlfImageVisual* iIconMarked;
/**
* Visual for a menu icon.
--- a/emailuis/uicomponents/inc/fstreeplainonelinenodevisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreeplainonelinenodevisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -20,6 +20,10 @@
#define C_FSTREEPLAINONELINENODEVISUALIZER_H
#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
#include "fstreenodevisualizerbase.h"
class CAlfViewportLayout;
@@ -134,8 +138,6 @@
*/
virtual void SetAlwaysExtended( TBool aAlwaysExtended );
- virtual void SetMarkingMode( TBool aMarkingMode );
-
/**
* From MFsTreeItemVisualizer.
* This function returns wether an item is always in extended state.
@@ -165,8 +167,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
--- a/emailuis/uicomponents/inc/fstreeplainrootvisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreeplainrootvisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -21,6 +21,10 @@
#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
#include "fstreenodevisualizerbase.h"
class CAlfTextVisual;
@@ -90,8 +94,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
--- a/emailuis/uicomponents/inc/fstreeplaintwolineitemvisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreeplaintwolineitemvisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -20,6 +20,10 @@
#define C_FSTREEPLAINTWOLINEITEMVISUALIZER_H
#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
#include "fstreeplainonelineitemvisualizer.h"
class CFsTreePlainTwoLineItemData;
@@ -177,8 +181,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
--- a/emailuis/uicomponents/inc/fstreerichitemvisualizer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreerichitemvisualizer.h Wed Oct 13 14:11:15 2010 +0300
@@ -22,6 +22,11 @@
#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
+
#include "fstreeitemvisualizerbase.h"
class CAlfControl;
@@ -116,8 +121,7 @@
virtual void UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout = 0,
TBool aUpdateData = ETrue);
--- a/emailuis/uicomponents/inc/fstreevisualizerbase.h Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/inc/fstreevisualizerbase.h Wed Oct 13 14:11:15 2010 +0300
@@ -843,27 +843,15 @@
/**
* Sets icon for a mark sign.
*
- * @param aMarkOnIcon Icon to mark items.
+ * @param aMarkIcon Icon to mark items.
*/
- virtual void SetMarkOnIcon( CAlfTexture& aMarkOnIcon );
+ virtual void SetMarkIcon( CAlfTexture& aMarkIcon );
/**
- * Sets icon for a mark sign.
- *
- * @param aMarkOffIcon Icon to unmark items.
+ * Returns icon used to mark items.
*/
- virtual void SetMarkOffIcon( CAlfTexture& aMarkOffIcon );
-
- /**
- * Returns icon used to identify marked items.
- */
- virtual CAlfTexture* MarkOnIcon( );
-
- /**
- * Returns icon used to identify unmarked items.
- */
- virtual CAlfTexture* MarkOffIcon( );
-
+ virtual CAlfTexture* MarkIcon( );
+
/**
* Checks if item is marked and return status
* @param aItemId item id to be checked
@@ -936,14 +924,6 @@
void SetFocusedL( const TBool aFocused );
/**
- * Sets marking mode on\off
- *
- * @param ETrue if marking mode is set on
- */
-
- void SetMarkingModeL( const TBool aMarkingMode );
-
- /**
*
* @param aTexture A custom texture for the selector.
* The texture is used to create an image brush.
@@ -1029,7 +1009,9 @@
*
* @panic EFsListPanicInvalidItemID Item with specified ID is not found.
*/
+ // <cmail>
virtual void SetFocusedItemL( const TFsTreeItemId aItem, TBool aCheckFocus = ETrue );
+ // </cmail>
/**
* Gets item vertical position in the list
@@ -1060,7 +1042,9 @@
*
* @param aItemId Id of an item that will be displayed as first.
*/
+ // <cmail>
virtual void SetFirstVisibleItemL( const TFsTreeItemId aItemId );
+ // </cmail>
/**
* Get an id of the first visible item.
@@ -1316,11 +1300,6 @@
*/
virtual TBool IsItemsAlwaysExtended ( );
- /*
- * The function returns ETrue if marking mode is on
- */
- virtual TBool IsMarkingMode ( );
-
/**
* The function sets a text for empty list's view.
* The function does not refresh the view automatically.
@@ -2192,13 +2171,8 @@
/**
* Icon used to mark items.
*/
- CAlfTexture* iMarkOnIcon;
-
- /**
- * Icon used to unmark items.
- */
- CAlfTexture* iMarkOffIcon;
-
+ CAlfTexture* iMarkIcon;
+
/**
* Icon indicating that item has menu.
*/
@@ -2396,12 +2370,7 @@
* This flag is checked when trying to focus item. Focus is ignored
* if list is being panned.
*/
- EListPanning,
-
- /**
- * Informs if marking mode is on
- */
- EMarkingMode
+ EListPanning
};
// Flags
--- a/emailuis/uicomponents/src/fscontrolbutton.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fscontrolbutton.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -206,11 +206,8 @@
TFsControlButtonElem aWhich )
{
FUNC_LOG;
- if ( iModel->Icon( aWhich ) != &aIcon ) // don't set the same icon twice
- {
- iModel->SetIconL( aIcon, aWhich );
- iVisualiser->UpdateElementL( aWhich );
- }
+ iModel->SetIconL( aIcon, aWhich );
+ iVisualiser->UpdateElementL( aWhich );
}
@@ -632,9 +629,7 @@
iParent.HandleButtonEvent(
MFsControlButtonObserver::EEventButton,
iModel->Id() );
-
- // EStdKeyDevice3 (EKeyOK) cannot be consumed here.
- result = EFalse;
+ result = ETrue;
if ( iTriggeredComponent )
{
--- a/emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -221,8 +221,7 @@
if( iUseDefaultBackground )
{
ClearBackgroundImage();
- iDefaultBgBrush = CAlfFrameBrush::NewL( iParent->Env(), KAknsIIDQsnFrButtonTb );
- iLastUpdatedButtonModelSize.SetSize(0,0); // prevent code skip in ClearBackgroundImage
+ iDefaultBgBrush = CAlfFrameBrush::NewL( iParent->Env(), KAknsIIDQsnFrButtonTb );
iBgBrush = iDefaultBgBrush;
iButtonLayout->Brushes()->AppendL( iBgBrush, EAlfDoesNotHaveOwnership );
UpdateBarLayout();
@@ -679,16 +678,14 @@
}
}
- TSize size = iButtonModel->Size();
-
// New size for the button background.
- iButtonLayout->SetSize( size );
+ iButtonLayout->SetSize( iButtonModel->Size() );
// Same size for the content
- iButtonContentLayout->SetSize( size );
+ iButtonContentLayout->SetSize( iButtonModel->Size() );
- if ( iDefaultBgBrush && size != iLastUpdatedButtonModelSize )
+ if( iDefaultBgBrush )
{
- iLastUpdatedButtonModelSize = size;
+ TSize size = iButtonModel->Size();
TRect fullRect = TRect( size );
TRect innerRect = fullRect;
innerRect.Shrink( KButtonBorderSize,KButtonBorderSize );
--- a/emailuis/uicomponents/src/fsmultilineitemvisualizer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fsmultilineitemvisualizer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -19,6 +19,7 @@
//////SYSTEM INCLUDES
//////TOOLKIT INCLUDES
+// <cmail> SF
#include "emailtrace.h"
#include <alf/alfenv.h>
#include <alf/alflayout.h>
@@ -28,6 +29,8 @@
#include <alf/alftexture.h>
#include <alf/alfcontrol.h>
#include <alf/alfimage.h>
+// </cmail>
+
//////PROJECT INCLUDES
#include "fsmultilineitemvisualizer.h"
@@ -336,8 +339,7 @@
void CFsMultiLineItemVisualizer::UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& /*aMarkOffIcon*/,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint /*aTimeout*/,
TBool aUpdateData)
@@ -437,10 +439,10 @@
iFirstLineIconVis->SetImage( TAlfImage( *data->LineIcon( 0 ) ) );
}
//mark icon
- if ( iMarkIconVis && IsMarked() && aMarkOnIcon )
+ if ( iMarkIconVis && IsMarked() && aMarkIcon )
{
iMarkIconVis->SetScaleMode( CAlfImageVisual::EScaleFit );
- iMarkIconVis->SetImage( *aMarkOnIcon );
+ iMarkIconVis->SetImage( *aMarkIcon );
}
//menu icon
if ( iMenuIconVis && (iFlags & KFsTreeListItemHasMenu) && aMenuIcon )
--- a/emailuis/uicomponents/src/fsseparatorvisualizer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fsseparatorvisualizer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -23,13 +23,13 @@
#include "fsseparatordata.h"
#include "fstreelist.h"
#include "fslayoutmanager.h"
-
+// <cmail> SF
#include <alf/alfanchorlayout.h>
#include <alf/alfcurvepath.h>
#include <alf/alflinevisual.h>
#include <alf/alfenv.h>
#include <alf/alfevent.h>
-
+// </cmail>
// ======== MEMBER FUNCTIONS ========
@@ -218,15 +218,6 @@
iFlags &= ~KFsTreeListItemAlwaysExtended;
}
-// ---------------------------------------------------------------------------
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CFsSeparatorVisualizer::SetMarkingMode( TBool /*aMarkingMode*/ )
- {
- FUNC_LOG;
- }
// ---------------------------------------------------------------------------
// From class MFsTreeItemVisualizer.
@@ -287,8 +278,7 @@
void CFsSeparatorVisualizer::UpdateL( const MFsTreeItemData& aData,
TBool /*aFocused*/,
const TUint aLevel,
- CAlfTexture*& /*aMarkOnIcon*/,
- CAlfTexture*& /*aMarkOffIcon*/,
+ CAlfTexture*& /*aMarkIcon*/,
CAlfTexture*& /*aMenuIcon*/,
const TUint /*aTimeout*/,
TBool /*aUpdateData*/)
--- a/emailuis/uicomponents/src/fstreeitemvisualizerbase.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreeitemvisualizerbase.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -26,6 +26,7 @@
#include "fslayoutmanager.h"
#include "fsalftextstylemanager.h"
+// <cmail> SF
#include <alf/alfgradientbrush.h>
#include <alf/alfimagebrush.h>
#include <alf/alfanchorlayout.h>
@@ -36,6 +37,7 @@
#include <alf/alftextstyle.h>
#include <alf/alftextvisual.h>
#include <alf/alfmappingfunctions.h>
+// </cmail>
// ---------------------------------------------------------------------------
// C++ destructor.
@@ -536,6 +538,7 @@
return retVal;
}
+// <cmail>
// ---------------------------------------------------------------------------
// From MFsTreeItemVisualizer.
// Sets item background brush.
@@ -565,6 +568,7 @@
return retVal;
}
+// </cmail>
// ---------------------------------------------------------------------------
// From MFsTreeItemVisualizer.
@@ -633,24 +637,6 @@
}
// ---------------------------------------------------------------------------
-// From class MFsTreeItemVisualizer.
-// Sets marking mode on/off.
-// ---------------------------------------------------------------------------
-//
-void CFsTreeItemVisualizerBase::SetMarkingMode( TBool aMarkingMode )
- {
- FUNC_LOG;
- if ( aMarkingMode )
- {
- iFlags |= KFsTreeListMarkingMode;
- }
- else
- {
- iFlags &= ~KFsTreeListMarkingMode;
- }
- }
-
-// ---------------------------------------------------------------------------
// This function returns wether an item is always in extended state.
// ---------------------------------------------------------------------------
//
@@ -681,8 +667,7 @@
void CFsTreeItemVisualizerBase::UpdateL( const MFsTreeItemData& /*aData*/,
TBool /*aFocused*/,
const TUint /*aLevel*/,
- CAlfTexture*& /*aMarkOnIcon*/,
- CAlfTexture*& /*aMarkOffIcon*/,
+ CAlfTexture*& /*aMarkIcon*/,
CAlfTexture*& /*aMenuIcon*/,
const TUint /*aTimeout*/,
TBool /*aUpdateData*/)
--- a/emailuis/uicomponents/src/fstreelist.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreelist.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -20,9 +20,15 @@
//////SYSTEM INCLUDES
//////TOOLKIT INCLUDES
+// <cmail> SF
#include "emailtrace.h"
#include <alf/alfenv.h>
+// </cmail>
+//////PROJECT INCLUDES
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
#include "fstreelist.h"
#include "fstreecontrol.h"
#include "fstree.h"
@@ -341,16 +347,6 @@
return iListFocused;
}
-//---------------------------------------------------------------------------
-//
-//---------------------------------------------------------------------------
-EXPORT_C void CFsTreeList::SetMarkingModeL( const TBool aMarkingMode )
- {
- FUNC_LOG;
- iTreeVisualizer->SetMarkingModeL( aMarkingMode );
- }
-
-
// ---------------------------------------------------------------------------
// The function sets duration of the slide-in effect.
// ---------------------------------------------------------------------------
@@ -944,16 +940,19 @@
// Retrieves events from tree visualizer
// ---------------------------------------------------------------------------
//
+// <cmail> Touch
EXPORT_C void CFsTreeList::TreeVisualizerEventL(
const TFsTreeVisualizerEvent aEvent,
const TFsTreeItemId aId,
const TPoint& aPoint ) const
+// </cmail>
{
FUNC_LOG;
MFsTreeListObserver::TFsTreeListEvent listEvent;
switch ( aEvent )
{
+ // <cmail> "Base class modifications for using touch"
case MFsTreeVisualizerObserver::EFsTreeItemTouchAction:
{
listEvent = MFsTreeListObserver::EFsTreeListItemTouchAction;
@@ -969,6 +968,9 @@
listEvent = MFsTreeListObserver::EFsTreeListItemTouchFocused;
break;
}
+
+ // </cmail>
+
case MFsTreeVisualizerObserver::EFsTreeItemSelected:
{
listEvent = MFsTreeListObserver::EFsTreeItemSelected;
@@ -1004,6 +1006,8 @@
listEvent = MFsTreeListObserver::EFsTreeListItemWillGetFocused;
break;
}
+
+ // <cmail>
// Pass on the collapse/expand events.
case MFsTreeVisualizerObserver::EFsTreeListItemCollapsed:
{
@@ -1025,6 +1029,7 @@
listEvent = MFsTreeListObserver::EFsTreeListExpandedAll;
break;
}
+ // </cmail>
case MFsTreeVisualizerObserver::EFsChangeFocusVisibility:
{
listEvent = MFsTreeListObserver::EFsFocusVisibilityChange;
--- a/emailuis/uicomponents/src/fstreenodevisualizerbase.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreenodevisualizerbase.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -26,6 +26,7 @@
#include "fslayoutmanager.h"
#include "fsalftextstylemanager.h"
+// <cmail> SF
#include <alf/alfgradientbrush.h>
#include <alf/alfimagebrush.h>
#include <alf/alfanchorlayout.h>
@@ -36,6 +37,7 @@
#include <alf/alftextstyle.h>
#include <alf/alftextvisual.h>
#include <alf/alfmappingfunctions.h>
+// </cmail>
// ---------------------------------------------------------------------------
// C++ destructor.
@@ -532,6 +534,7 @@
return retVal;
}
+// <cmail>
// ---------------------------------------------------------------------------
// From MFsTreeItemVisualizer.
// Sets item background brush.
@@ -561,6 +564,7 @@
return retVal;
}
+// </cmail>
// ---------------------------------------------------------------------------
// From MFsTreeItemVisualizer.
@@ -622,23 +626,6 @@
}
// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CFsTreeNodeVisualizerBase::SetMarkingMode( TBool aMarkingMode )
- {
- FUNC_LOG;
- if ( aMarkingMode )
- {
- iFlags |= KFsTreeListMarkingMode;
- }
- else
- {
- aMarkingMode &= ~KFsTreeListMarkingMode;
- }
- }
-
-// ---------------------------------------------------------------------------
// This function returns wether an item is always in extended state.
// ---------------------------------------------------------------------------
//
@@ -669,8 +656,7 @@
void CFsTreeNodeVisualizerBase::UpdateL( const MFsTreeItemData& /*aData*/,
TBool /*aFocused*/,
const TUint /*aLevel*/,
- CAlfTexture*& /*aMarkIconOn*/,
- CAlfTexture*& /*aMarkIconOff*/,
+ CAlfTexture*& /*aMarkIcon*/,
CAlfTexture*& /*aMenuIcon*/,
const TUint /*aTimeout*/,
TBool /*aUpdateData*/)
--- a/emailuis/uicomponents/src/fstreeplainonelineitemvisualizer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreeplainonelineitemvisualizer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -15,6 +15,11 @@
*
*/
+
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
#include "emailtrace.h"
#include "fstreeplainonelineitemvisualizer.h"
#include "fstreeplainonelineitemdata.h"
@@ -25,6 +30,7 @@
#include "fsmarqueeclet.h"
#include <touchlogicalfeedback.h>
+// <cmail> SF
#include <alf/alfanchorlayout.h>
#include <alf/alfimagevisual.h>
#include <alf/alfviewportlayout.h>
@@ -35,6 +41,7 @@
#include <alf/alfevent.h>
#include <alf/alfmappingfunctions.h>
+// </cmail>
// ======== MEMBER FUNCTIONS ========
@@ -340,7 +347,7 @@
if ( iFlags & KFsTreeListItemMarked )
{
TInt iconMarkedVisIndex =
- iLayout->FindVisual(iIconMark);
+ iLayout->FindVisual(iIconMarked);
if ( iconMarkedVisIndex != KErrNotFound )
{
iLayout->SetAnchor(EAlfAnchorTopLeft,
@@ -358,16 +365,16 @@
TAlfTimedValue opacity;
opacity.SetValueNow(1.0f);
- iIconMark->SetOpacity(opacity);
+ iIconMarked->SetOpacity(opacity);
}
}
else
{
- if (iIconMark)
+ if (iIconMarked)
{
TAlfTimedValue opacity;
opacity.SetValueNow(0.0f);
- iIconMark->SetOpacity(opacity);
+ iIconMarked->SetOpacity(opacity);
}
}
iLayout->UpdateChildrenLayout();
@@ -400,6 +407,7 @@
{
iIconVisual =
CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
+ // <cmail> aspect ratio preserved
iIconVisual->SetScaleMode( CAlfImageVisual::EScaleFitInside);
iIconVisual->SetFlag( EAlfVisualFlagIgnorePointer );
}
@@ -418,11 +426,11 @@
iTextVisual->SetFlag( EAlfVisualFlagIgnorePointer );
}
- if (!iIconMark)
+ if (!iIconMarked)
{
- iIconMark = CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
- iIconMark->SetScaleMode( CAlfImageVisual::EScaleFitInside);
- iIconMark->SetFlag( EAlfVisualFlagIgnorePointer );
+ iIconMarked = CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
+ iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFitInside);
+ iIconMarked->SetFlag( EAlfVisualFlagIgnorePointer );
}
if (!iIconMenu)
@@ -453,8 +461,7 @@
void CFsTreePlainOneLineItemVisualizer::UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& /*aMarkOffIcon*/,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint /*aTimeout*/,
TBool aUpdateData)
@@ -492,7 +499,9 @@
if (iIconVisual && data->IsIconSet())
{
+ // <cmail> aspect ratio preserved
iIconVisual->SetScaleMode( CAlfImageVisual::EScaleFitInside );
+ // </cmail>
iIconVisual->SetImage( TAlfImage( data->Icon() ) );
}
@@ -557,9 +566,9 @@
if ( IsMarked() )
{
// <cmail> aspect ratio preserved
- iIconMark->SetScaleMode( CAlfImageVisual::EScaleFitInside);
+ iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFitInside);
// </cmail>
- iIconMark->SetImage( *aMarkOnIcon );
+ iIconMarked->SetImage( *aMarkIcon );
}
if ((iFlags & KFsTreeListItemHasMenu)
@@ -621,7 +630,7 @@
iLayout = NULL;
iTextVisual = NULL;
iIconVisual = NULL;
- iIconMark = NULL;
+ iIconMarked = NULL;
iIconMenu = NULL;
iParentLayout = NULL;
iViewportLayout = NULL;
--- a/emailuis/uicomponents/src/fstreeplainonelinenodevisualizer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreeplainonelinenodevisualizer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -15,6 +15,11 @@
*
*/
+
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
#include "emailtrace.h"
#include "fstreeplainonelinenodevisualizer.h"
#include "fstreeplainonelinenodedata.h"
@@ -24,6 +29,7 @@
#include "fsmarqueeclet.h"
#include <touchlogicalfeedback.h>
+// <cmail> SF
#include <alf/alfanchorlayout.h>
#include <alf/alfimagevisual.h>
#include <alf/alfviewportlayout.h>
@@ -33,6 +39,7 @@
#include <alf/alfevent.h>
#include <alf/alfmappingfunctions.h>
+// </cmail>
// ======== MEMBER FUNCTIONS ========
@@ -186,15 +193,6 @@
iFlags &= ~KFsTreeListItemAlwaysExtended;
}
-// ---------------------------------------------------------------------------
-// From MFsTreeItemVisualizer.
-//
-// ---------------------------------------------------------------------------
-//
-void CFsTreePlainOneLineNodeVisualizer::SetMarkingMode( TBool /*aMarkingMode*/ ) //TEJ_MMD
- {
- FUNC_LOG;
- }
// ---------------------------------------------------------------------------
// From MFsTreeItemVisualizer.
@@ -535,7 +533,7 @@
if (!iIconVisual)
{
iIconVisual = CAlfImageVisual::AddNewL(iOwnerControl,iLayout);
- iIconVisual->SetScaleMode( CAlfImageVisual::EScaleFitInside);
+ iIconVisual->SetScaleMode( CAlfImageVisual::EScaleNormal );
iIconVisual->SetFlag( EAlfVisualFlagIgnorePointer );
}
@@ -557,7 +555,7 @@
if (!iIconMarked)
{
iIconMarked = CAlfImageVisual::AddNewL( iOwnerControl, iLayout );
- iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFitInside);
+ iIconMarked->SetScaleMode( CAlfImageVisual::EScaleNormal);
iIconMarked->SetFlag( EAlfVisualFlagIgnorePointer );
}
@@ -565,7 +563,7 @@
{
iIconMenu =
CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
- iIconMenu->SetScaleMode( CAlfImageVisual::EScaleFitInside);
+ iIconMenu->SetScaleMode( CAlfImageVisual::EScaleNormal);
iIconMenu->SetFlag( EAlfVisualFlagIgnorePointer );
}
@@ -589,8 +587,7 @@
void CFsTreePlainOneLineNodeVisualizer::UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& /*aMarkOffIcon*/,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint /*aTimeout*/,
TBool aUpdateData)
@@ -625,7 +622,7 @@
//update the ancors for current item settings
const TInt indent( iTextIndentation * ( aLevel - 1 ) );
- UpdateLayout(data, indent, aMarkOnIcon, aMenuIcon);
+ UpdateLayout(data, indent, aMarkIcon, aMenuIcon);
if (iTextVisual && aUpdateData)
{
@@ -698,9 +695,9 @@
}
}
- if ( IsMarked() && iIconMarked && aMarkOnIcon )
+ if ( IsMarked() && iIconMarked && aMarkIcon )
{
- iIconMarked->SetImage( *aMarkOnIcon );
+ iIconMarked->SetImage( *aMarkIcon );
}
if ( (iFlags & KFsTreeListItemHasMenu) && iIconMenu && aMenuIcon )
--- a/emailuis/uicomponents/src/fstreeplainrootvisualizer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreeplainrootvisualizer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -22,11 +22,12 @@
#include "fstreeplainonelineitemdata.h"
#include "fstreeplainrootvisualizer.h"
#include "fstextstylemanager.h"
-
+// <cmail> SF
#include <alf/alfcontrol.h>
#include <alf/alfanchorlayout.h>
#include <alf/alftextvisual.h>
#include <alf/alftexture.h>
+// </cmail>
// ======== MEMBER FUNCTIONS ========
@@ -116,8 +117,7 @@
void CFsTreePlainRootVisualizer::UpdateL( const MFsTreeItemData& aData,
TBool /*aFocused*/,
const TUint /*aLevel*/,
- CAlfTexture*& /*aMarkOnIcon*/,
- CAlfTexture*& /*aMarkOffIcon*/,
+ CAlfTexture*& /*aMarkIcon*/,
CAlfTexture*& /*aMenuIcon*/,
const TUint /*aTimeout*/,
TBool aUpdateData)
--- a/emailuis/uicomponents/src/fstreeplaintwolineitemvisualizer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreeplaintwolineitemvisualizer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -12,10 +12,14 @@
* Contributors:
*
* Description : A visualizer for data items with plain text.
-* Version : %version: tr1sido#18 %
+* Version : %version: tr1sido#17 %
*
*/
+
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
#include "emailtrace.h"
#include <AknsUtils.h>
#include <touchlogicalfeedback.h>
@@ -26,7 +30,7 @@
#include "fslayoutmanager.h"
#include "fstextstylemanager.h"
#include "fsmarqueeclet.h"
-
+// <cmail> SF
#include <alf/alfanchorlayout.h>
#include <alf/alfimagevisual.h>
#include <alf/alfviewportlayout.h>
@@ -34,8 +38,10 @@
#include <alf/alfimage.h>
#include <alf/alfenv.h>
#include <alf/alfcontrol.h>
+
#include <alf/alfevent.h>
#include <alf/alfmappingfunctions.h>
+// </cmail>
// ======== MEMBER FUNCTIONS ========
@@ -266,7 +272,7 @@
CFsLayoutManager::TFsLayoutMetrics
mainIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG1,
- markIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG1,
+ markIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG4,
menuIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG3,
sizeMetrics = CFsLayoutManager::EFsLmListSingleDycRowPane,
exSizeMetrics = CFsLayoutManager::EFsLmListSingleFsDycPane,
@@ -337,7 +343,7 @@
if (aData->IsIconSet())
{
- if ( iFlags & KFsTreeListMarkingMode )
+ if (iFlags & KFsTreeListItemMarked)
{
if ((iFlags & KFsTreeListItemHasMenu)
&& (iFlags & KFsTreeListItemFocused))
@@ -396,12 +402,12 @@
{
//mainIcon + markIcon
mainIconMetrics =
- CFsLayoutManager::EFsLmListSingleDycRowPaneG2;
- mainIconVariety = 2;
+ CFsLayoutManager::EFsLmListSingleDycRowPaneG1;
+ mainIconVariety = 4;
markIconMetrics =
- CFsLayoutManager::EFsLmListSingleDycRowPaneG1;
- markIconVariety = 2;
- firstLineTextParentVariety = 2;
+ CFsLayoutManager::EFsLmListSingleDycRowPaneG4;
+ markIconVariety = 3;
+ firstLineTextParentVariety = 4;
if (firstLineTextFields==1)
{
firstLineTextMetrics[0] =
@@ -412,10 +418,10 @@
{
firstLineTextMetrics[0] =
CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
- firstLineTextVarieties[0] = 11;
+ firstLineTextVarieties[0] = 13;
firstLineTextMetrics[1] =
CFsLayoutManager::EFsLmListSingleDycRowTextPaneT2;
- firstLineTextVarieties[1] = 2;
+ firstLineTextVarieties[1] = 4;
}
}
}
@@ -646,8 +652,10 @@
secondLineTextVariety = 8;
}
}
+ //<cmail> ???
thirdLineTextMetrics = CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
thirdLineTextVariety = 4;
+ //</cmail>
}
else
{
@@ -1358,50 +1366,51 @@
}
}
- if ( iFlags & KFsTreeListMarkingMode && iIconMark )
- {
-
- TRect iconRowParent = currentSize;
- if (markIconRow > 0)
+ if ( IsMarked() && iIconMarked )
+ {
+ if (iIconMarked)
{
- CFsLayoutManager::LayoutMetricsRect(currentSize, CFsLayoutManager::EFsLmListSingleDycRowPane, iconRowParent, markIconRow, markIconRow);
- }
- CFsLayoutManager::LayoutMetricsRect(
- iconRowParent,
- markIconMetrics,
- rect,
- markIconVariety);
-
- tpMarkIconTl.SetTarget(TAlfRealPoint(rect.iTl));
- tpMarkIconBr.SetTarget(TAlfRealPoint(rect.iBr));
+ TRect iconRowParent = currentSize;
+ if (markIconRow > 0)
+ {
+ CFsLayoutManager::LayoutMetricsRect(currentSize, CFsLayoutManager::EFsLmListSingleDycRowPane, iconRowParent, markIconRow, markIconRow);
+ }
+ CFsLayoutManager::LayoutMetricsRect(
+ iconRowParent,
+ markIconMetrics,
+ rect,
+ markIconVariety);
+ tpMarkIconTl.SetTarget(TAlfRealPoint(rect.iTl));
+ tpMarkIconBr.SetTarget(TAlfRealPoint(rect.iBr));
- TInt iconMarkedVisIndex = iLayout->FindVisual(iIconMark);
-
- if ( iconMarkedVisIndex != KErrNotFound )
- {
- tpMarkIconTl.SetStyle(EAlfTimedValueStyleSineWave);
- iLayout->SetAnchor(EAlfAnchorTopLeft,
- iconMarkedVisIndex,
- EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
- EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
- tpMarkIconTl );
- tpMarkIconBr.SetStyle(EAlfTimedValueStyleSineWave);
- iLayout->SetAnchor(EAlfAnchorBottomRight,
- iconMarkedVisIndex,
- EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
- EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
- tpMarkIconBr );
- opacity.SetValueNow(1.0f);
- iIconMark->SetOpacity(opacity);
+ TInt iconMarkedVisIndex =
+ iLayout->FindVisual(iIconMarked);
+ if ( iconMarkedVisIndex != KErrNotFound )
+ {
+ tpMarkIconTl.SetStyle(EAlfTimedValueStyleSineWave);
+ iLayout->SetAnchor(EAlfAnchorTopLeft,
+ iconMarkedVisIndex,
+ EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
+ EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
+ tpMarkIconTl );
+ tpMarkIconBr.SetStyle(EAlfTimedValueStyleSineWave);
+ iLayout->SetAnchor(EAlfAnchorBottomRight,
+ iconMarkedVisIndex,
+ EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
+ EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
+ tpMarkIconBr );
+ }
}
+ opacity.SetValueNow(1.0f);
+ iIconMarked->SetOpacity(opacity);
}
else
{
- if (iIconMark)
- {
- opacity.SetValueNow(0.0f);
- iIconMark->SetOpacity(opacity);
- }
+ if (iIconMarked)
+ {
+ opacity.SetValueNow(0.0f);
+ iIconMarked->SetOpacity(opacity);
+ }
}
if ( iPreviewPaneTextVisual )
@@ -1441,6 +1450,7 @@
}
iLayout->UpdateChildrenLayout();
+ // </cmail>
}
// ---------------------------------------------------------------------------
@@ -1496,16 +1506,17 @@
iSecondaryTextVisual->SetFlag( EAlfVisualFlagIgnorePointer );
}
- if (!iIconMark)
+ if (!iIconMarked)
{
- iIconMark = CAlfImageVisual::AddNewL( iOwnerControl, iLayout );
- iIconMark->SetScaleMode( CAlfImageVisual::EScaleFit );
- iIconMark->SetFlag( EAlfVisualFlagIgnorePointer );
+ iIconMarked = CAlfImageVisual::AddNewL( iOwnerControl, iLayout );
+ iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFit );
+ iIconMarked->SetFlag( EAlfVisualFlagIgnorePointer );
}
if (!iIconMenu)
{
- iIconMenu = CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
+ iIconMenu =
+ CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
iIconMenu->SetScaleMode( CAlfImageVisual::EScaleFit );
iIconMenu->SetFlag( EAlfVisualFlagIgnorePointer );
}
@@ -1553,8 +1564,7 @@
void CFsTreePlainTwoLineItemVisualizer::UpdateL( const MFsTreeItemData& aData,
TBool aFocused,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& aMarkOffIcon,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint aTimeout,
TBool aUpdateData)
@@ -1736,15 +1746,10 @@
iDateTimeTextVisual->SetTextStyle( styleId );
}
- if ( IsMarked() && iIconMark && aMarkOnIcon )
+ if ( IsMarked() && iIconMarked && aMarkIcon )
{
- iIconMark->SetScaleMode( CAlfImageVisual::EScaleFit );
- iIconMark->SetImage( *aMarkOnIcon );
- }
- else if ( !IsMarked() && iIconMark && aMarkOffIcon )
- {
- iIconMark->SetScaleMode( CAlfImageVisual::EScaleFit );
- iIconMark->SetImage( *aMarkOffIcon );
+ iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFit );
+ iIconMarked->SetImage( *aMarkIcon );
}
//menu icon - visible only when item is focused
--- a/emailuis/uicomponents/src/fstreerichitemvisualizer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreerichitemvisualizer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -19,7 +19,11 @@
#include "emailtrace.h"
#include <txtrich.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+// <cmail> SF
#include <alf/alfcontrol.h>
#include <alf/alflayout.h>
#include <alf/alfflowlayout.h>
@@ -30,6 +34,7 @@
#include <alf/alfimagevisual.h>
#include <alf/alfbrusharray.h>
#include <alf/alfenv.h>
+// </cmail>
#include "fstreerichitemvisualizer.h"
#include "fstreerichitemdata.h"
@@ -500,8 +505,7 @@
const MFsTreeItemData& aData,
TBool /*aFocused*/,
const TUint aLevel,
- CAlfTexture*& aMarkOnIcon,
- CAlfTexture*& /*aMarkOffIcon*/,
+ CAlfTexture*& aMarkIcon,
CAlfTexture*& aMenuIcon,
const TUint /*aTimeout*/,
TBool aUpdateData)
@@ -530,7 +534,7 @@
if (iFlags & KFsTreeListItemMarked)
{
iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFit );
- iIconMarked->SetImage(TAlfImage(*aMarkOnIcon));
+ iIconMarked->SetImage(TAlfImage(*aMarkIcon));
}
if (iFlags & KFsTreeListItemHasMenu)
--- a/emailuis/uicomponents/src/fstreevisualizerbase.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/uicomponents/src/fstreevisualizerbase.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -24,6 +24,7 @@
#include <centralrepository.h>
//////TOOLKIT INCLUDES
+// <cmail> SF
#include <alf/alfstatic.h>
#include <alf/alfownership.h>
#include <alf/alfevent.h>
@@ -49,6 +50,7 @@
//visuals
#include <alf/alfvisual.h>
#include <alf/alfimagevisual.h>
+// </cmail>
//////PROJECT INCLUDES
@@ -362,6 +364,8 @@
aItems.Reset();
TInt i(0);
aOffset = 0;
+ aBeginIndex = KErrNotFound;
+
if (aY > Height())
{
aHeight = -1;
@@ -1062,40 +1066,20 @@
// Sets icon for a mark sign.
// ---------------------------------------------------------------------------
//
-void CFsTreeVisualizerBase::SetMarkOnIcon(CAlfTexture& aMarkOnIcon)
+void CFsTreeVisualizerBase::SetMarkIcon(CAlfTexture& aMarkIcon)
{
FUNC_LOG;
- iMarkOnIcon = &aMarkOnIcon;
- }
-
-// ---------------------------------------------------------------------------
-// Sets icon for a unmark sign.
-// ---------------------------------------------------------------------------
-//
-void CFsTreeVisualizerBase::SetMarkOffIcon(CAlfTexture& aMarkOffIcon)
- {
- FUNC_LOG;
- iMarkOffIcon = &aMarkOffIcon;
+ iMarkIcon = &aMarkIcon;
}
// ---------------------------------------------------------------------------
// Returns icon used to mark items.
// ---------------------------------------------------------------------------
//
-CAlfTexture* CFsTreeVisualizerBase::MarkOnIcon()
+CAlfTexture* CFsTreeVisualizerBase::MarkIcon()
{
FUNC_LOG;
- return iMarkOnIcon;
- }
-
-// ---------------------------------------------------------------------------
-// Returns icon used to unmark items.
-// ---------------------------------------------------------------------------
-//
-CAlfTexture* CFsTreeVisualizerBase::MarkOffIcon()
- {
- FUNC_LOG;
- return iMarkOffIcon;
+ return iMarkIcon;
}
// ---------------------------------------------------------------------------
@@ -1127,7 +1111,7 @@
data = &(iTreeData->ItemData(aItemId));
vis->UpdateL(*data, IsItemFocused(aItemId) && IsFocusShown(),
- iTreeData->Level(aItemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon);
+ iTreeData->Level(aItemId), iMarkIcon, iMenuIcon);
}
}
@@ -1287,8 +1271,7 @@
MakeSelectorVisibleL(EFalse);
visualizer->UpdateL(*data, EFalse,
iTreeData->Level(iFocusedItem),
- iMarkOnIcon, iMarkOffIcon,
- iMenuIcon, iCurrentScrollSpeed);
+ iMarkIcon, iMenuIcon, iCurrentScrollSpeed);
}
}
}
@@ -1299,57 +1282,6 @@
}
// ---------------------------------------------------------------------------
-// The functions sets wether all item in the list should be always in
-// extended state or in normal state.
-// ---------------------------------------------------------------------------
-//
-void CFsTreeVisualizerBase::SetMarkingModeL( TBool aMarkingMode )
- {
- FUNC_LOG;
- // Do not change this to: IsMarkingMode() != aAlwaysExtended, because
- // it will not work. TBool is defined as TInt and thus this comparison
- // comes out as TInt != TInt, which always evaluates true in this case.
- if ( ( IsMarkingMode() && !aMarkingMode ) ||
- ( !IsMarkingMode() && aMarkingMode ) )
- {
- iFlags.Assign(EMarkingMode, aMarkingMode);
- TFsTreeIterator treeIter(
- iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID));
- while (treeIter.HasNext())
- {
- TFsTreeItemId itemId(treeIter.Next());
- if (itemId != KFsTreeNoneID && !iTreeData->IsNode(itemId))
- {
- MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId));
- ApplyListSpecificValuesToItem(itemviz);
- }
- }
- const TBool isUpdating(iWorld.IsUpdating());
- if (!isUpdating)
- {
- iWorld.BeginUpdate();
- }
- iWorld.RemoveAllL();
- treeIter = iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID,
- KFsTreeIteratorSkipCollapsedFlag);
- while (treeIter.HasNext())
- {
- TFsTreeItemId itemId(treeIter.Next());
- if (itemId != KFsTreeNoneID)
- {
- MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId));
- iWorld.AppendL(itemId, itemviz->Size());
- }
- }
- iViewPort.ClearCache();
- if (!isUpdating)
- {
- iWorld.EndUpdateL();
- }
- }
- }
-
-// ---------------------------------------------------------------------------
// The function sets some properties of the selector like bitmap, type
// of movement.
// ---------------------------------------------------------------------------
@@ -1780,7 +1712,7 @@
if ( visualizer )
{
visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), EFalse,
- iTreeData->Level( iFocusedItem ), iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0 );
+ iTreeData->Level( iFocusedItem ), iMarkIcon, iMenuIcon, 0 );
}
iFocusedItem = aItemId;
@@ -1791,8 +1723,7 @@
if ( visualizer )
{
visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), IsFocusShown(),
- iTreeData->Level( iFocusedItem ), iMarkOnIcon,
- iMarkOffIcon, iMenuIcon, 0 );
+ iTreeData->Level( iFocusedItem ), iMarkIcon, iMenuIcon, 0 );
}
if ( iFocusedItem != KFsTreeNoneID )
@@ -1841,6 +1772,7 @@
// Sets an item as first visible one in the list.
// ---------------------------------------------------------------------------
//
+// <cmail>
void CFsTreeVisualizerBase::SetFirstVisibleItemL(const TFsTreeItemId /*aItemId*/)
{
FUNC_LOG;
@@ -1856,6 +1788,9 @@
TFsTreeItemId retId = KFsTreeNoneID;
if (iVisibleItems.Count())
{
+ // <cmail>
+ // TRAP_IGNORE( ClearVisibleItemsListL(EFalse) );
+ // </cmail>
retId = iVisibleItems[0];
}
else
@@ -1889,6 +1824,7 @@
// Displays the list.
// ---------------------------------------------------------------------------
//
+// <cmail>
void CFsTreeVisualizerBase::ShowListL(const TBool aFadeIn,
const TBool aSlideIn)
{
@@ -1897,8 +1833,7 @@
if (iTreeData->Count() == 0)
{
iRootVisualizer->ShowL(*iRootLayout);
- iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon,
- iMarkOffIcon, iMenuIcon);
+ iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon, iMenuIcon);
}
else
{
@@ -1913,7 +1848,7 @@
if ( visualizer )
{
visualizer->UpdateL(iTreeData->ItemData(itemId), itemFocused,
- iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon,
+ iTreeData->Level(itemId), iMarkIcon, iMenuIcon,
0);
}
}
@@ -1990,6 +1925,7 @@
UpdateScrollBarL();
}
+// </cmail>
// ---------------------------------------------------------------------------
// The function assures that the list view is correct.
@@ -2592,7 +2528,7 @@
vis->UpdateL(iTreeData->ItemData(aItemId),
IsItemFocused(aItemId) && IsFocusShown(),
iTreeData->Level(aItemId),
- iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0);
+ iMarkIcon, iMenuIcon, 0);
}
}
}
@@ -2661,16 +2597,6 @@
}
// ---------------------------------------------------------------------------
-// The function returns if marking mode is on or off
-// ---------------------------------------------------------------------------
-//
-TBool CFsTreeVisualizerBase::IsMarkingMode()
- {
- FUNC_LOG;
- return iFlags.IsSet(EMarkingMode);
- }
-
-// ---------------------------------------------------------------------------
// Set the background texture, clears the background color.
// ---------------------------------------------------------------------------
//
@@ -2806,7 +2732,9 @@
iWatermark
= CFsWatermark::NewL(*iOwnerControl, *iWatermarkLayout);
}
+ // <cmail>
iWatermark->SetWatermarkTextureL(*aTexture);
+ // </cmail>
}
else
{
@@ -2918,8 +2846,8 @@
if (!iWorld.IsUpdating())
{
iRootVisualizer->ShowL(*iRootLayout);
- iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon,
- iMarkOffIcon, iMenuIcon);
+ iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon,
+ iMenuIcon);
}
iVisibleItems.Reset();
iWorld.RemoveAllL();
@@ -2941,7 +2869,7 @@
{
visualizer->UpdateL(iTreeData->ItemData(itemId),
IsItemFocused(itemId), iTreeData->Level(itemId),
- iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0);
+ iMarkIcon, iMenuIcon, 0);
}
}
break;
@@ -3001,8 +2929,7 @@
if (iTreeData->Count() == 0)
{
iRootVisualizer->ShowL(*iRootLayout);
- iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon,
- iMarkOffIcon, iMenuIcon);
+ iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon, iMenuIcon);
}
else
{
@@ -3338,16 +3265,20 @@
if (iVisualizationState == EFsTreeVisible && iVisualizerObserver)
{
- TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
+ // <cmail> Touch
+ TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
MFsTreeVisualizerObserver::EFsTreeListVisualizerShown,
KFsTreeNoneID ));
+ // </cmail>
}
if (iVisualizationState == EFsTreeHidden && iVisualizerObserver)
{
- TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
+ // <cmail> Touch
+ TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden,
KFsTreeNoneID ));
+ // </cmail>
}
}
@@ -3396,7 +3327,8 @@
if (iVisualizationState == EFsTreeVisible && iVisualizerObserver)
{
- TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
+ // <cmail> Touch
+ TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
MFsTreeVisualizerObserver::EFsTreeListVisualizerShown,
KFsTreeNoneID ));
@@ -3404,9 +3336,10 @@
if (iVisualizationState == EFsTreeHidden && iVisualizerObserver)
{
- TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
+ TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden,
KFsTreeNoneID ));
+ // </cmail>
}
}
@@ -3862,8 +3795,7 @@
{
visualizer->UpdateL(iTreeData->ItemData(itemId),
IsItemFocused(itemId) && IsFocusShown(),
- iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon,
- iMenuIcon, 0, EFalse);
+ iTreeData->Level(itemId), iMarkIcon, iMenuIcon, 0, EFalse);
}
}
UpdateSelectorVisualL();
@@ -3933,6 +3865,9 @@
border->SetLayer(EAlfBrushLayerBackground);
border->SetBorders(-8, -8, -8, -8);
+ //<cmail>
+ // layout values needed here (not: only used from FS action menu)
+ //</cmail>
iBorderLayout->SetPadding(TPoint(5, 5));
if (iBorderLayout->Brushes()->Count() > 0)
@@ -4614,8 +4549,6 @@
FUNC_LOG;
//list can have all items in extended or in a normal state
aItemVis->SetAlwaysExtended(IsItemsAlwaysExtended());
-
- aItemVis->SetMarkingMode(IsMarkingMode());
//global indentation in pixels for a list component
aItemVis->SetIndentation(iLevelIndentation);
@@ -4716,6 +4649,8 @@
return isFocused;
}
+// <cmail> "Base class modifications for using touch"
+
// ---------------------------------------------------------------------------
// C++ constructor.
// ---------------------------------------------------------------------------
@@ -4761,6 +4696,7 @@
iFlags.Assign( EPopupMode, aPopUpMode );
iFlags.Set( EExpandCollapseOnLongTap );
}
+// </cmail>
// ---------------------------------------------------------------------------
// Second phase constructor.
@@ -4974,6 +4910,7 @@
{
UpdatePhysicsL();
}
+ UpdateScrollBarL();
}
// ---------------------------------------------------------------------------
@@ -5019,8 +4956,8 @@
itemId);
visualizer->UpdateL(iTreeData->ItemData(itemId),
IsItemFocused(itemId) && IsFocusShown(),
- iTreeData->Level(itemId), iMarkOnIcon,
- iMarkOffIcon, iMenuIcon, 0);
+ iTreeData->Level(itemId), iMarkIcon, iMenuIcon,
+ 0);
}
}
CleanupStack::PopAndDestroy();
@@ -5076,7 +5013,7 @@
visualizerLayout.SetSize(tpItemSize);
visualizer->UpdateL(iTreeData->ItemData(itemId),
IsItemFocused(itemId) && IsFocusShown(),
- iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon,
+ iTreeData->Level(itemId), iMarkIcon, iMenuIcon,
0);
visualizerLayout.PropertySetIntegerL(KPropertyItemId(), itemId);
visualizerLayout.Brushes()->AppendL(iBorderBrush,
@@ -5533,3 +5470,5 @@
return ( iTouchPressed || iFocusVisible ) && iFlags.IsClear( EListPanning );
}
+
+// </cmail>
Binary file emailuis/widget/emailwidgetsettings/conf/cmailwidget.confml has changed
Binary file emailuis/widget/emailwidgetsettings/conf/cmailwidget_2001E272.crml has changed
--- a/emailuis/widget/hsps/00/emailwidgetconfiguration.dtd Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/hsps/00/emailwidgetconfiguration.dtd Wed Oct 13 14:11:15 2010 +0300
@@ -1,23 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-============================================================================
-<FileName: "emailwidgetconfiguration.dtd">
-<PartOf : "CMail / Email Widget">
-
-<FileDescription: "Localization strings for Email Widget">
-<FileVersion : >
-
-<Copyright:
-"Copyright © 2009 Nokia Corporation.
-This material, including documentation and any related
-computer programs, is protected by copyright controlled by
-Nokia Corporation. All rights are reserved. Copying,
-including reproducing, storing, adapting or translating, any
-or all of this material requires the prior written consent of
-Nokia Corporation. This material also contains confidential
-information which may not be disclosed to others without the
-prior written consent of Nokia Corporation.">
-============================================================================
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
-->
<!--
--- a/emailuis/widget/xuikon/00/emailwidget.css Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/xuikon/00/emailwidget.css Wed Oct 13 14:11:15 2010 +0300
@@ -60,7 +60,7 @@
display: block;
padding-top: 1u;
padding-bottom: 1u;
- padding-left: 18u;
+ padding-left: 12u;
width: auto;
height: auto;
block-progression:lr;
--- a/emailuis/widget/xuikon/00/emailwidget.dtd Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/xuikon/00/emailwidget.dtd Wed Oct 13 14:11:15 2010 +0300
@@ -1,23 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-============================================================================
-<FileName: "emailwidget.dtd">
-<PartOf : "CMail / Email Widget">
-
-<FileDescription: "Localization strings for Email Widget">
-<FileVersion : >
-
-<Copyright:
-"Copyright ? 2008 Nokia Corporation.
-This material, including documentation and any related
-computer programs, is protected by copyright controlled by
-Nokia Corporation. All rights are reserved. Copying,
-including reproducing, storing, adapting or translating, any
-or all of this material requires the prior written consent of
-Nokia Corporation. This material also contains confidential
-information which may not be disclosed to others without the
-prior written consent of Nokia Corporation.">
-============================================================================
+/*
+* Copyright (c) 2008 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
-->
<!--
--- a/emailuis/widget/xuikon/00/emailwidget.xml Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/xuikon/00/emailwidget.xml Wed Oct 13 14:11:15 2010 +0300
@@ -55,6 +55,12 @@
<property class="0x2001F413:CMailWidget/key_setup_brand_icon_4"/>
</image>
</box>
+ <box id="setup_brand_5" class="setup_brand_container">
+ <image id="setup_brand_5_id" sizeaware="true">
+ <configuration name="content_type" value="ct_setup_brand_icon_5"/>
+ <property class="0x2001F413:CMailWidget/key_setup_brand_icon_5"/>
+ </image>
+ </box>
</box>
</box>
--- a/emailuis/widget/xuikon/37/emailwidget.css Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/xuikon/37/emailwidget.css Wed Oct 13 14:11:15 2010 +0300
@@ -60,7 +60,7 @@
display: block;
padding-top: 1u;
padding-bottom: 1u;
- padding-right: 18u;
+ padding-right: 12u;
width: auto;
height: auto;
block-progression:lr;
--- a/emailuis/widget/xuikon/50/emailwidget.css Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/xuikon/50/emailwidget.css Wed Oct 13 14:11:15 2010 +0300
@@ -60,7 +60,7 @@
display: block;
padding-top: 1u;
padding-bottom: 1u;
- padding-right: 18u;
+ padding-right: 12u;
width: auto;
height: auto;
block-progression:lr;
--- a/emailuis/widget/xuikon/57/emailwidget.css Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/xuikon/57/emailwidget.css Wed Oct 13 14:11:15 2010 +0300
@@ -60,7 +60,7 @@
display: block;
padding-top: 1u;
padding-bottom: 1u;
- padding-right: 18u;
+ padding-right: 12u;
width: auto;
height: auto;
block-progression:lr;
--- a/emailuis/widget/xuikon/94/emailwidget.css Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/widget/xuikon/94/emailwidget.css Wed Oct 13 14:11:15 2010 +0300
@@ -60,7 +60,7 @@
display: block;
padding-top: 1u;
padding-bottom: 1u;
- padding-right: 18u;
+ padding-right: 12u;
width: auto;
height: auto;
block-progression:lr;
Binary file help/data/xhtml.zip has changed
--- a/ipsservices/ipssosplugin/inc/ipsplgmsgmapper.h Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgmsgmapper.h Wed Oct 13 14:11:15 2010 +0300
@@ -26,7 +26,6 @@
class CFSMailMessagePart;
class CFSMailAddress;
class CIpsPlgSosBasePlugin;
-class CIpsPlgMsgMapperHelper;
/**
*
@@ -386,91 +385,9 @@
CMsvSession& iSession;
CIpsPlgSosBasePlugin& iPlugin;
- // own
- CIpsPlgMsgMapperHelper* iMsgMapperHelper;
+
};
-
-/*
- * ou1cimx1#508195
- * CIpsPlgMsgMapperHelper class for asynchronous set the attachment flag
- * It will process the async operation one by one.
- * This class is mainly for resolve the crashes when sync mailbox. When there have
- * more than 50 emails with attachments need to be synchronized, and the NewMailEvent
- * will activate a update Mailbox process, it will set the attachment flag by using
- * ChangeL, and use CActiveSchedulerWait to change the synchronous method to asynchronous
- * this will block the current thread. And the ChangeL only accept less than 14
- * requests at the same time, more than 14 requests will get the KErrServerBusy(-16)
- * from the MTM server side. Therefore using the active object to set the attachment
- * flag asynchronized.
- */
-
-
-NONSHARABLE_CLASS ( CIpsPlgMsgMapperHelper ) : public CActive,
- public MIpsPlgSingleOpWatcher
- {
-public:
- /*
- * from MIpsPlgSingleOpWatcher
- * OpCompleted is called when operation is completed
- */
- void OpCompleted(
- CIpsPlgSingleOpWatcher& aOpWatcher,
- TInt aCompletionCode );
-
-public:
- /*
- * Symbian 2nd phase construcror
- */
- static CIpsPlgMsgMapperHelper* NewL( CMsvSession& aSession );
- /*
- * Class destructor
- */
- ~CIpsPlgMsgMapperHelper();
-
-public:
- /*
- * start the async process
- */
- void StartSetAttchmentFlag();
-
- /*
- * append entry's id to array
- * @param TMsvId aId
- * @return ETrue append success, EFalse if exist in array
- */
- TBool AppendMsvIdToArrayL( TMsvId aId );
-
-
-protected:// From base class CActive
-
- void RunL();
- void DoCancel();
- TInt RunError(TInt aError);
-
-private:
- /*
- * Class constructor
- */
- CIpsPlgMsgMapperHelper( CMsvSession& aSession );
- /*
- * Symbian 2nd phase construct
- */
- void ConstructL();
-
-private:
- // reference to Msv Session
- CMsvSession& iSession;
- // Whether or not a set flag process is pending
- TBool iPending;
- // own
- CIpsPlgSingleOpWatcher* iCurrentOperationWatcher;
- // own
- RArray<TMsvId> iNeedSetAttachFlagArray;
- // own
- RTimer iTimer;
- };
-
#include "ipsplgmsgmapper.inl"
#endif /* IPSPLGMSGMAPPER_H */
--- a/ipsservices/ipssosplugin/src/ipsplgimap4populateop.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4populateop.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -218,7 +218,7 @@
}
case EStateInfoEntryChange:
{
- TMsvEntry tentry;
+ TMsvEntry tentry;
TMsvId service;
iMsvSession.GetEntry( iService, service, tentry );
@@ -228,8 +228,8 @@
}
else
{
- iState = EStateIdle;
- CompleteObserver( err );
+ iState = EStateIdle;
+ CompleteObserver( err );
}
break;
}
--- a/ipsservices/ipssosplugin/src/ipsplgmsgmapper.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgmsgmapper.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -86,11 +86,6 @@
CIpsPlgMsgMapper::~CIpsPlgMsgMapper()
{
FUNC_LOG;
- if( iMsgMapperHelper )
- {
- delete iMsgMapperHelper;
- iMsgMapperHelper = NULL;
- }
}
// ---------------------------------------------------------------------------
@@ -112,8 +107,6 @@
void CIpsPlgMsgMapper::ConstructL()
{
FUNC_LOG;
-
- iMsgMapperHelper = CIpsPlgMsgMapperHelper::NewL( iSession );
}
// ---------------------------------------------------------------------------
@@ -366,11 +359,6 @@
// EFSMsgFlag_Answered: supported only with IMAP4 (see below)
// EFSMsgFlag_Forwarded: no counterpart in Symbian message in S60 3.1
- if ( LogicalXor( aEmlEntry.Forwarded(), msgFlags & EFSMsgFlag_Forwarded ) )
- {
- aEmlEntry.SetForwarded( !aEmlEntry.Forwarded() );
- modified = ETrue;
- }
// EFSMsgFlag_OnlyToMe: no counterpart in Symbian message
@@ -761,14 +749,7 @@
aMsg.ResetFlag( EFSMsgFlag_Answered );
// EFSMsgFlag_Forwarded: not supported in S60 3.1
- if ( aEntry.Forwarded() )
- {
- aMsg.SetFlag( EFSMsgFlag_Forwarded );
- }
- else
- {
- aMsg.ResetFlag( EFSMsgFlag_Forwarded );
- }
+ aMsg.ResetFlag( EFSMsgFlag_Forwarded );
// EFSMsgFlag_OnlyToMe: like EFSMsgFlag_Multiple
@@ -1514,11 +1495,7 @@
aMsg.SetFlag( EFSMsgFlag_Attachments );
if ( !aEntry.Attachment() )
{
- TBool success = iMsgMapperHelper->AppendMsvIdToArrayL( aEntry.Id() );
- if( success )
- {
- iMsgMapperHelper->StartSetAttchmentFlag();
- }
+ SetAttachmentFlagL( aEntry, ETrue );
}
}
@@ -1607,235 +1584,3 @@
CleanupStack::PopAndDestroy( cEntry );
}
// </cmail>
-
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::OpCompleted
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgMsgMapperHelper::OpCompleted(
- CIpsPlgSingleOpWatcher& aOpWatcher,
- TInt aCompletionCode )
- {
- FUNC_LOG;
-
- TInt opId = aOpWatcher.Operation().Id();
- TMsvId completedMsvId = aOpWatcher.Operation().Service();
-
- if( iCurrentOperationWatcher )
- {
- CMsvOperation& oper = iCurrentOperationWatcher->Operation();
-
- //delete the iOngoingOperation when it has completed
- if( oper.Id() == opId )
- {
- delete iCurrentOperationWatcher;
- iCurrentOperationWatcher = NULL;
- }
- }
-
- //remove the completed MsvId from the iNeedSetAttachFlagArray
- for( TInt j = 0; j < iNeedSetAttachFlagArray.Count(); ++j )
- {
- if( completedMsvId == iNeedSetAttachFlagArray[j] )
- {
- iNeedSetAttachFlagArray.Remove( j );
- break;
- }
- }
- //start next async process
- iTimer.After( iStatus, 0 );
- SetActive();
- }
-
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::NewL
-// ---------------------------------------------------------------------------
-//
-CIpsPlgMsgMapperHelper* CIpsPlgMsgMapperHelper::NewL( CMsvSession& aSession )
- {
- FUNC_LOG;
-
- CIpsPlgMsgMapperHelper* self = new (ELeave) CIpsPlgMsgMapperHelper( aSession );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::~CIpsPlgMsgMapperHelper
-// ---------------------------------------------------------------------------
-//
-CIpsPlgMsgMapperHelper::~CIpsPlgMsgMapperHelper()
- {
- FUNC_LOG;
-
- Cancel();
- //should delete the iOngoingOperation if it not completed
- if( iCurrentOperationWatcher )
- {
- delete iCurrentOperationWatcher;
- iCurrentOperationWatcher = NULL;
- }
- iNeedSetAttachFlagArray.Reset();
- iNeedSetAttachFlagArray.Close();
-
- Deque();
- iTimer.Close();
- }
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::CIpsPlgMsgMapperHelper
-// ---------------------------------------------------------------------------
-//
-CIpsPlgMsgMapperHelper::CIpsPlgMsgMapperHelper( CMsvSession& aSession )
-:CActive( EPriorityStandard ), iSession( aSession ), iPending( EFalse ),
-iCurrentOperationWatcher( NULL )
- {
- FUNC_LOG;
- }
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgMsgMapperHelper::ConstructL()
- {
- FUNC_LOG;
-
- User::LeaveIfError( iTimer.CreateLocal() );
- CActiveScheduler::Add(this);
- }
-
-// inherited from CActive
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::RunL
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgMsgMapperHelper::RunL()
- {
- FUNC_LOG;
-
- User::LeaveIfError( iStatus.Int() );
- // always start the async process from the index 0 of iNeedSetAttachFlagArray
- TInt currentIndex = 0;
-
- if( iNeedSetAttachFlagArray.Count() > 0 )
- {
- TMsvId entry = iNeedSetAttachFlagArray[currentIndex];
- TMsvId serviceId;
- TMsvEmailEntry entryToBeChanged;
- //get enty by msvid
- TBool result = iSession.GetEntry( entry, serviceId, entryToBeChanged);
-
- if( entryToBeChanged.Attachment() )
- {
- // ignore this operation and delete when it has set the attach flag
- iNeedSetAttachFlagArray.Remove( currentIndex );
- iTimer.After( iStatus, 0 );
- SetActive();
- return;
- }
-
- CIpsPlgSingleOpWatcher* opW = CIpsPlgSingleOpWatcher::NewLC( *this );
-
- CMsvEntry* cEntry = iSession.GetEntryL( entry );
- CleanupStack::PushL( cEntry );
-
- entryToBeChanged.SetAttachment( ETrue );
- CMsvOperation* ops = cEntry->ChangeL( entryToBeChanged, opW->iStatus );
- CleanupStack::PopAndDestroy( cEntry );
-
- if( ops )
- {
- opW->SetOperation( ops );
- if( iCurrentOperationWatcher )
- {
- delete iCurrentOperationWatcher;
- iCurrentOperationWatcher = NULL;
- }
- iCurrentOperationWatcher = opW;
- CleanupStack::Pop( opW );
- }
- else
- {
- CleanupStack::PopAndDestroy( opW );
- }
- }
- else
- {
- //all these operation have processed
- iPending = EFalse;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::RunError
-// ---------------------------------------------------------------------------
-//
-TInt CIpsPlgMsgMapperHelper::RunError( TInt aError )
- {
- FUNC_LOG;
-
- if ( KErrNone != aError )
- {
- Cancel();
- }
- return KErrNone;
- }
-
-void CIpsPlgMsgMapperHelper::DoCancel()
- {
- FUNC_LOG;
- if( iCurrentOperationWatcher )
- {
- iCurrentOperationWatcher->Cancel();
- delete iCurrentOperationWatcher;
- iCurrentOperationWatcher = NULL;
- }
- iTimer.Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::StartSetAttchmentFlag
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgMsgMapperHelper::StartSetAttchmentFlag()
- {
- FUNC_LOG;
- //should start the ao when not in pending status
- if( !IsActive() && !iPending )
- {
- iTimer.After( iStatus, 0 );
- SetActive();
- iPending = ETrue;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CIpsPlgMsgMapperHelper::AppendToArrayL
-// ---------------------------------------------------------------------------
-//
-TBool CIpsPlgMsgMapperHelper::AppendMsvIdToArrayL( TMsvId aId )
- {
- FUNC_LOG;
-
- TInt count = iNeedSetAttachFlagArray.Count();
- //check the MsvId if already exist in iNeedSetAttachFlagArray
- for( TInt i = 0; i < count; ++i )
- {
- TMsvId id = iNeedSetAttachFlagArray[i];
- if( id == aId )
- {
- return EFalse;
- }
- }
-
- iNeedSetAttachFlagArray.AppendL( aId );
- return ETrue;
- }
-
-
-
--- a/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -2359,21 +2359,13 @@
FUNC_LOG;
for ( TInt i = 0; i < iActivitytimers.Count(); i++ )
{
- // do disconnect automatically mailboxes that are set to
- // "connected" when time expired
- // if ConnOpRunning return ETrue, then reset the timer
+ // do not disconnect automatically mailboxes that are set to
+ // "connected"
if ( iActivitytimers[i]->FSMailboxId().Id() == aMailboxId.Id() )
{
-
- if( !ConnOpRunning( aMailboxId ) )
- {
- // 0 for request id
- DisconnectL( iActivitytimers[i]->FSMailboxId(), *this, 0 );
- }else
- {
- iActivitytimers[i]->ResetTimerOperation();
- }
- }
+ // 0 for request id
+ DisconnectL( iActivitytimers[i]->FSMailboxId(), *this, 0 );
+ }
}
}
--- a/ipsservices/ipssosplugin/src/ipsplgsyncstatehandler.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsyncstatehandler.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -129,6 +129,7 @@
if ( error == KErrNone &&
status == EIpsAOPluginStatusSyncStarted )
{
+ aosession.Close();
return EmailSyncing;
}
}
--- a/ipsservices/ipssossettings/data/ipssetuimailsettings.ra Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssossettings/data/ipssetuimailsettings.ra Wed Oct 13 14:11:15 2010 +0300
@@ -566,7 +566,7 @@
{
itemtype = EIpsSetUiItemRadioButton;
itemid = EIpsSetUiUserAuthenticationBtnOwnForOutgoing;
- itemlabel = qtn_fse_settings_outgoing_user_authentication;
+ itemlabel = qtn_fse_settings_outgoing_setting;
}
};
}
--- a/ipsservices/ipssossettings/loc/ipssossettings.loc Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssossettings/loc/ipssossettings.loc Wed Oct 13 14:11:15 2010 +0300
@@ -307,13 +307,6 @@
//
#define qtn_fse_settings_outgoing_no_server "No user authentication"
-
-// d:Radio button item in user authentication for outgoing mails selection list
-// l:list_set_graphic_pane_t1
-// r:TB9.1
-//
-#define qtn_fse_settings_outgoing_user_authentication "User authentication"
-
// d:Setting item in Outgoing Email Settings view
// l:list_setting_pane_t1
// r:TB9.1
--- a/ipsservices/ipssossettings/src/ipssetdata.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssossettings/src/ipssetdata.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -179,22 +179,6 @@
TMsvEntry mbox = IpsSetUtils::GetMailboxEntryL( aSession, aMailboxId );
manager->LoadEmailSettingsL( mbox, *this );
- // Update signature if needed
- HBufC* body = NULL;
- body = HBufC::NewL( iSignature->iRichText->DocumentLength() );
- CleanupStack::PushL( body );
- TPtr ptr = body->Des();
- iSignature->iRichText->Extract( ptr );
- TInt len = ptr.Length();
- ptr.TrimLeft();
- len-= ptr.Length();
- if( len )
- {
- // Remove leading empty line from signature
- iSignature->iRichText->DeleteL( 0, len );
- }
- CleanupStack::PopAndDestroy( body );
-
CleanupStack::PopAndDestroy( manager );
manager = NULL;
}
@@ -539,11 +523,11 @@
ret.iIAP = 0;
if ( aIncoming )
{
- if (iIncomingIapPref->SNAPDefined())
- {
- ret.iIAP = iIncomingIapPref->SNAPPreference();
- }
-
+ if (iIncomingIapPref->SNAPDefined())
+ {
+ ret.iIAP = iIncomingIapPref->SNAPPreference();
+ }
+
if ( iIncomingIapPref->NumberOfIAPs() > 0 )
{
ret = iIncomingIapPref->IAPPreference(0);
@@ -842,29 +826,7 @@
{
FUNC_LOG;
iSignature->iRichText->Reset();
-
- if ( aSignature.Length() )
- {
- TChar firstChar = aSignature[0];
- _LIT( KNewLines, "\r\n\x2028\x2029" );
- _LIT( KIMSLineFeed, "\r\n");
- if ( KNewLines().Locate( firstChar ) == KErrNotFound )
- {
- // First character is not a new line character. Insert one.
- HBufC* body = NULL;
- body = HBufC::NewL( aSignature.Length() + KIMSLineFeed().Length() );
- CleanupStack::PushL( body );
- TPtr ptr = body->Des();
- ptr.Append( KIMSLineFeed );
- ptr.Append( aSignature );
- iSignature->iRichText->InsertL( 0, ptr );
- CleanupStack::PopAndDestroy( body );
- }
- else
- {
- iSignature->iRichText->InsertL( 0, aSignature );
- }
- }
+ iSignature->iRichText->InsertL( 0, aSignature );
}
// ---------------------------------------------------------------------------
@@ -983,18 +945,18 @@
CleanupStack::Pop( iOutgoingIapPref );
if (aIncomingIap.SNAPDefined())
- {
- iIncomingIapPref->SetSNAPL(aIncomingIap.SNAPPreference());
- }
+ {
+ iIncomingIapPref->SetSNAPL(aIncomingIap.SNAPPreference());
+ }
else
- {
- iIncomingIapPref->AddIAPL( aIncomingIap.IAPPreference(0) );
- }
+ {
+ iIncomingIapPref->AddIAPL( aIncomingIap.IAPPreference(0) );
+ }
if (aOutgoingIap.SNAPDefined())
- {
- iOutgoingIapPref->SetSNAPL(aOutgoingIap.SNAPPreference());
- }
+ {
+ iOutgoingIapPref->SetSNAPL(aOutgoingIap.SNAPPreference());
+ }
else
{
iOutgoingIapPref->AddIAPL( aOutgoingIap.IAPPreference(0) );
@@ -1148,12 +1110,12 @@
}
//<cmail>
else if ( iProtocol == KSenduiMtmPop3Uid && aDownloadControl == CIpsSetData::EHeadersPlus )
- {
- // fix for POP that has only 2 radio (IMAP has 3)
- // and the second should have value of EWholeBody instead of EHeadersPlus
- size = KIpsSetDataFullBodyAndAttas;
- }
- //</cmail>
+ {
+ // fix for POP that has only 2 radio (IMAP has 3)
+ // and the second should have value of EWholeBody instead of EHeadersPlus
+ size = KIpsSetDataFullBodyAndAttas;
+ }
+ //</cmail>
else
{
size = aDownloadSize;
--- a/ipsservices/ipssossettings/src/ipssetdataapi.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssossettings/src/ipssetdataapi.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -664,23 +664,23 @@
{
FUNC_LOG;
TInt sizeLimit = aImap4Settings.BodyTextSizeLimit();
-
- TInt limit(KMaxTInt);
+
+ TInt limit( KMaxTInt );
CRepository* centRep = NULL;
TRAP_IGNORE( centRep = CRepository::NewL( KFreestyleEmailCenRep ) );
- if (NULL != centRep)
+ if ( NULL != centRep )
{
- //not necessary to push centRep as no leave function is called
- TInt err = centRep->Get(KFreestyleMaxBodySize, limit);
+ // not necessary to push centRep as no leave function is called
+ TInt err = centRep->Get( KFreestyleMaxBodySize, limit );
limit *= KKilo;
- if (limit == 0 || err)
+ if ( limit == 0 || err )
{
limit = KMaxTInt;
}
- //free
+ // free
delete centRep;
centRep = NULL;
- }//end if (NULL != centRep)
+ }
if ( sizeLimit == KIpsSetDataHeadersOnly )
{
--- a/ipsservices/ipssossettings/src/ipssetutilsoperationwait.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/ipssossettings/src/ipssetutilsoperationwait.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -170,7 +170,6 @@
if ( iWaitDialog )
{
iWaitDialog->ProcessFinishedL();
- delete iWaitDialog;
iWaitDialog = NULL;
}
}
--- a/ipsservices/tsrc/profiletester/inc/popimapprofiletester.h Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/tsrc/profiletester/inc/popimapprofiletester.h Wed Oct 13 14:11:15 2010 +0300
@@ -41,26 +41,29 @@
#include "mfsmailrequestobserver.h"
#include "mfsmailboxsearchobserver.h"
-// CONSTANTS
+//#define
#define KIPSSosImap4PluginUid 0x2000e53f
#define KIPSSosPop3PluginUid 0x2000e53e
+#define DELANDNULL( a ) { if( a ) { delete a; a = NULL; } }
+//const
const TUint KTenSecondsTime(10);
const TUint KHalfMinuteTime(30);
const TUint KOneMinuteTime(60);
+const TUint KMidBufLen(128);
+const TUint KMaxBufLen(256);
-// MACROS
-#define TEST_CLASS_VERSION_MAJOR 0
-#define TEST_CLASS_VERSION_MINOR 0
-#define TEST_CLASS_VERSION_BUILD 0
-#define DELANDNULL( a ) { if( a ) { delete a; a = NULL; } }
+//typeof
+typedef TBuf<KMaxBufLen> TFolderName;
+//class declaration
class CPopImapProfileTester;
class CTimeoutTimer;
class CFSMailClient;
class CFSMailBox;
class CActiveSchedulerWait;
+//enum
enum TWaitingState
{
EWaitingNothing = 0,
@@ -97,21 +100,21 @@
TInt iIncomingPort;
TInt iOutgoingPort;
- TBuf<10> iAccountType;
- TBuf<50> iEmailAddress;
- TBuf<50> iUserName;
- TBuf<100> iPassWord;
- TBuf<50> iIncomingServer;
- TBuf<50> iOutgoingServer;
- TBuf<20> iMailboxName;
+ TBuf<KMidBufLen> iAccountType;
+ TBuf<KMaxBufLen> iEmailAddress;
+ TBuf<KMaxBufLen> iUserName;
+ TBuf<KMaxBufLen> iPassWord;
+ TBuf<KMaxBufLen> iIncomingServer;
+ TBuf<KMaxBufLen> iOutgoingServer;
+ TBuf<KMaxBufLen> iMailboxName;
/****
* Using the default value
*/
- TBuf<5> iWizardAccountType;
- TBuf<2> iOperatorOutgoingServer;
+ TBuf<KMidBufLen> iWizardAccountType;
+ TBuf<KMidBufLen> iOperatorOutgoingServer;
TBool iHideUserNameInSetting;
- TBuf<10> iAccessPoint;
+ TBuf<KMidBufLen> iAccessPoint;
};
NONSHARABLE_CLASS(CPopImapProfileTester) : public CScriptBase,
@@ -135,10 +138,6 @@
virtual ~CPopImapProfileTester();
public:
- // New functions
-
-
-public:
// Functions from base classes
/**
@@ -164,16 +163,8 @@
//from MTimeoutObserver
void TimeoutNotify();
-protected:
- // New functions
-
-
-protected:
- // Functions from base classes
-
-
private:
-
+
/**
* C++ default constructor.
*/
@@ -237,10 +228,10 @@
TFSMailSortField aSort, TUint aCount);
TInt WaitForEvent(TFSMailEvent aWaitedEvent, TAny *aEventParam1 = NULL,
- TAny *aEventParam2 = NULL, TInt aTimeout = 60);
+ TAny *aEventParam2 = NULL, TInt aTimeout = KOneMinuteTime);
TInt WaitForResponse(TFSProgress::TFSProgressStatus aWaitedResponse,
- TInt aTimeout = 60);
+ TInt aTimeout = KOneMinuteTime);
void OpComplete();
@@ -272,14 +263,10 @@
TBool ParseEventParams(TAny *aEventParam1, TAny *aEventParam2);
CFSMailFolder* FindFolder(const TDesC& aFolderName);
-
-public:
- // Data
-
-
-protected:
- // Data
-
+
+ void LogNewEntriesCount(TDes& aLog,TAny* aParam);
+
+ void LogFolderName(TDes& aLog,TAny* aParam);
private:
// Data
@@ -307,17 +294,6 @@
//checking status of searching
TBool iSearchOngoing;
TInt iSearchMatches;
-
-public:
- // Friend classes
-
-protected:
- // Friend classes
-
-private:
- // Friend classes
-
-
};
#endif // POPIMAPPROFILETESTER_H
--- a/ipsservices/tsrc/profiletester/src/popimapprofiletester.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/tsrc/profiletester/src/popimapprofiletester.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -2,7 +2,7 @@
* Name : popimapprofiletester.cpp
* Part of : ipsservices / ipsprofiletester
* Description :: STIF test cases
- * Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: 3 % << Don't touch! Updated by Synergy at check-out.
*
* Copyright © 2010-2010 Nokia and/or its subsidiary(-ies). All rights reserved.
* This material, including documentation and any related computer
@@ -15,10 +15,18 @@
* ============================================================================
*/
+// MACROS
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
// INCLUDE FILES
#include <StifTestInterface.h>
#include "popimapprofiletester.h"
#include <SettingServerClient.h>
+
+//const numbers
+const TInt KTimeUnits = 1000000;
/*
* define flag in ctg file
*/
@@ -223,7 +231,8 @@
EFSMsgDataSubject, EFSMailSortByDate, msgCount);
// Step 03: to find to be deleted msgs
- for (TInt i = 0; i < messages.Count(); i++)
+ TInt mssagesCount = messages.Count();
+ for (TInt i = 0; i < mssagesCount; i++)
{
//deleted msgs with STIF
if (messages[i]->GetSubject().Find(_L("STIF" )) != KErrNotFound)
@@ -273,7 +282,8 @@
RPointerArray<CFSMailFolder>& allFolders = iIPSMailbox->ListFolders();
TFSMailMsgId folderId = GetFolderIdFromName(aFolderName);
- for (TInt i = 0; i < allFolders.Count(); ++i)
+ TInt allFoldersCount = allFolders.Count();
+ for (TInt i = 0; i < allFoldersCount; ++i)
{
if (allFolders[i]->GetFolderId() == folderId)
{
@@ -337,7 +347,9 @@
LogEvent(_L("Receive Event->"), aEvent, aParam1, aParam2, aParam3);
if ((aEvent == iCurrWaitedEvent) && (iWait->IsStarted()) && (iWaitingState
== EWaitingEvent) && ParseEventParams(aParam1, aParam2))
- OpComplete();
+ {
+ OpComplete();
+ }
}
// -----------------------------------------------------------------------------
@@ -353,7 +365,9 @@
LogTFSProgress(_L("Receive Response->"), aEvent.iProgressStatus, aRequestId);
if ((aEvent.iProgressStatus == iCurrWaitedResponse) && (iWaitingState
== EWaitingResponse) && (iWait->IsStarted()))
- OpComplete();
+ {
+ OpComplete();
+ }
}
// -----------------------------------------------------------------------------
@@ -363,7 +377,7 @@
//
void CPopImapProfileTester::MatchFoundL(CFSMailMessage* aMatchMessage)
{
- TBuf<20> tempFolderName;
+ TFolderName tempFolderName;
GetFolderNameFromId(aMatchMessage->GetFolderId(), tempFolderName);
TPtrC folderName = tempFolderName.Mid(0);
iLog->Log(_L(" MatchFound %S in %S"), &aMatchMessage->GetSubject(),
@@ -431,13 +445,13 @@
TFSMailMsgId folderId = iIPSMailbox->GetStandardFolderId(EFSSentFolder);
iIPSMailbox->RefreshNowL();
err = WaitForEvent(TFSEventMailMoved, NULL, &folderId);
- iIPSMailbox->GoOfflineL();
- WaitForEvent(TFSEventMailboxOffline);
- iIPSMailbox->RefreshNowL(*this);
- WaitForResponse(TFSProgress::EFSStatus_RequestComplete);
-
- if (KErrNone == err)
- {
+ if ( KErrNone == err )
+ {
+ iIPSMailbox->GoOfflineL();
+ WaitForEvent(TFSEventMailboxOffline);
+ iIPSMailbox->RefreshNowL(*this);
+ WaitForResponse(TFSProgress::EFSStatus_RequestComplete);
+
// Step04: To check 'Inbox' folder to sure message sent
TFSMailMsgId folderId = iIPSMailbox->GetStandardFolderId(EFSInbox);
CFSMailFolder* folder = iMailClient->GetFolderByUidL(
@@ -451,7 +465,8 @@
if (gotMsgs > 0)
{
iLog->Log(_L(" Listing first %d emails:"), gotMsgs);
- for (TInt i = 0; i < messages.Count(); i++)
+ TInt messagesCount = messages.Count();
+ for (TInt i = 0; i < messagesCount; i++)
{
iLog->Log(_L("Found: %S"), &messages[i]->GetSubject());
@@ -518,7 +533,7 @@
{
iLog->Log(_L(" Searching for '%S':"), aSearchStrings[0]);
iSearchOngoing = ETrue;
- iTimeoutTimer->Start(aTimeout * 1000000);
+ iTimeoutTimer->Start(aTimeout * KTimeUnits);
iWait->Start();
if (iTimeout)
{
@@ -551,7 +566,7 @@
iCurrWaitedEvent = aWaitedEvent;
iEventParam1 = aEventParam1;
iEventParam2 = aEventParam2;
- iTimeoutTimer->Start(aTimeout * 1000000);
+ iTimeoutTimer->Start(aTimeout * KTimeUnits);
if (iWait->IsStarted() == EFalse)
{
iWait->Start();
@@ -570,11 +585,10 @@
return KErrNone;
}
}
- else
- {
- iLog->Log(_L(" Stop the wait before start it"));
- return KErrGeneral;
- }
+
+ iLog->Log(_L(" Stop the wait before start it"));
+ return KErrGeneral;
+
}
// -----------------------------------------------------------------------------
// CPopImapProfileTester::WaitForResponse
@@ -587,7 +601,7 @@
LogTFSProgress(_L("Waiting for Response->"), aWaitedResponse, 0);
iWaitingState = EWaitingResponse;
iCurrWaitedResponse = aWaitedResponse;
- iTimeoutTimer->Start(aTimeout * 1000000);
+ iTimeoutTimer->Start(aTimeout * KTimeUnits);
if (iWait->IsStarted() == EFalse)
{
iWait->Start();
@@ -604,26 +618,31 @@
return KErrNone;
}
}
- else
- return KErrGeneral;
+ return KErrGeneral;
}
void CPopImapProfileTester::OpComplete()
{
if (iWait)
+ {
iWait->AsyncStop();
+ }
if (iTimeoutTimer)
+ {
iTimeoutTimer->Stop();
+ }
}
// -----------------------------------------------------------------------------
// CPopImapProfileTester::InitMailbox()
-// Method to initiate mailbxo, depends on type of account in .cfg file
+// Method to initiate mailbox, depends on type of account in .cfg file
// -----------------------------------------------------------------------------
//
TInt CPopImapProfileTester::InitMailboxL()
{
if (NULL != iIPSMailbox)
+ {
return KErrNone;
+ }
TBuf<10> accountType;
@@ -632,7 +651,9 @@
accountType.TrimAll();
accountType.LowerCase();
if (accountType.Compare(KIMAPAccount) == 0)
+ {
iPluginId.SetPluginId(TUid::Uid(KIPSSosImap4PluginUid));
+ }
else if (accountType.Compare(KPOPAccount) == 0)
{
iPluginId.SetPluginId(TUid::Uid(KIPSSosPop3PluginUid));
@@ -735,7 +756,7 @@
if (NULL != newMsgPart)
{
CleanupStack::PushL(newMsgPart);
- TBuf<256> buf(aMsgBodyText);
+ TBuf<KMaxBufLen> buf(aMsgBodyText);
newMsgPart->SetContent(buf);
newMsgPart->SetContentSize(buf.Length());
newMsgPart->SetFetchedContentSize(buf.Length());
@@ -744,8 +765,8 @@
}
else
{
- iLog->Log(_L( "Error: Failed to create msg part" ));
- err = KErrNoMemory;
+ err = KErrNoMemory;
+ iLog->Log(_L( "Error: Failed to create msg part(%d)" ),err);
}
}//end if 'KErrNone == err'
else
@@ -756,8 +777,8 @@
}//end if 'NULL != newMsg'
else
{
- iLog->Log(_L( " Error: Failed to create new msg" ));
- err = KErrNoMemory;
+ err = KErrNoMemory;
+ iLog->Log(_L( "Error: Failed to create new msg(%d)" ),err);
}
return newMsg;
}
@@ -771,6 +792,7 @@
TAccountSetting& aAccountSetting)
{
TInt err(KErrNone);
+ TInt errInside(KErrNone);
err = GetConstantValue(KSetupWizAccountType, aAccountSetting.iAccountType);
aAccountSetting.iAccountType.TrimAll();
aAccountSetting.iAccountType.LowerCase();
@@ -787,43 +809,80 @@
iLog->Log(_L("Wrong Account Type %S, "), &aAccountSetting.iAccountType);
return KErrNotFound;
}
- err = GetConstantValue(KSetupWizAccountsConfigured,
+ errInside = GetConstantValue(KSetupWizAccountsConfigured,
aAccountSetting.iAccountsConfigured);
- err = GetConstantValue(KSetupWizMaxAccountsReached,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizMaxAccountsReached,
aAccountSetting.iMaxAccountsReached);
- err
+ iLog->Log(_L( "Information: GetConstantValue with error (%d)" ),errInside);
+
+ errInside
= GetConstantValue(KSetupWizEmailAddress,
aAccountSetting.iEmailAddress);
- err = GetConstantValue(KSetupWizUsername, aAccountSetting.iUserName);
- err = GetConstantValue(KSetupWizPassword, aAccountSetting.iPassWord);
- err = GetConstantValue(KSetupWizMailboxName, aAccountSetting.iMailboxName);
- err = GetConstantValue(KSetupWizIncomingServer,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizUsername, aAccountSetting.iUserName);
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizPassword, aAccountSetting.iPassWord);
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizMailboxName, aAccountSetting.iMailboxName);
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizIncomingServer,
aAccountSetting.iIncomingServer);
- err = GetConstantValue(KSetupWizOutgoingServer,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizOutgoingServer,
aAccountSetting.iOutgoingServer);
- err
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside
= GetConstantValue(KSetupWizIncomingPort,
aAccountSetting.iIncomingPort);
- err
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside
= GetConstantValue(KSetupWizOutgoingPort,
aAccountSetting.iOutgoingPort);
-
- err = GetConstantValue(KSetupWizIncomingSecurityAuth,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+ errInside = GetConstantValue(KSetupWizIncomingSecurityAuth,
aAccountSetting.iIncomingSecurityAuth);
- err = GetConstantValue(KSetupWizOutgoingSecurityAuth,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizOutgoingSecurityAuth,
aAccountSetting.iOutgoingSecurityAuth);
- err = GetConstantValue(KSetupWizIncomingSecurityProtocol,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizIncomingSecurityProtocol,
aAccountSetting.iIncomingSecurityProtocol);
- err = GetConstantValue(KSetupWizOutgoingSecurityProtocol,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizOutgoingSecurityProtocol,
aAccountSetting.iOutgoingSecurityProtocol);
- err = GetConstantValue(KSetupWizOperatorSecurityAuth,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizOperatorSecurityAuth,
aAccountSetting.iOperatorSecurityAuth);
- err = GetConstantValue(KSetupWizOperatorSecurityProtocol,
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside = GetConstantValue(KSetupWizOperatorSecurityProtocol,
aAccountSetting.iOperatorSecurityProtocol);
- err
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ errInside
= GetConstantValue(KSetupWizOperatorPort,
aAccountSetting.iOperatorPort);
-
+ iLog->Log(_L( "Information: GetConstantValue with error(%d)" ),errInside);
+
+ if (KErrNone != errInside )
+ {
+ err = KErrGeneral;
+ iLog->Log(_L( "Error: Failed to get constant value with error(%d)" ),err);
+ }
+
aAccountSetting.iWizardAccountType = KWizAccountTypeDefault;
aAccountSetting.iOperatorOutgoingServer = KNullDesC;
aAccountSetting.iHideUserNameInSetting = ETrue;
@@ -849,45 +908,89 @@
{
err = rep->Set(ECRKSetupWizAccountType,
aAccountSetting.iWizardAccountType);
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
err = rep->Set(ECRKAccountsConfigured,
aAccountSetting.iAccountsConfigured);
- err = rep->Set(ECRKMaxAccountsReached,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKMaxAccountsReached,
aAccountSetting.iMaxAccountsReached);
- err = rep->Set(ECRKPopImapEmailAddressId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapEmailAddressId,
aAccountSetting.iEmailAddress);
- err = rep->Set(ECRKPopImapUsernameId, aAccountSetting.iUserName);
- err = rep->Set(ECRKPopImapPasswordId, aAccountSetting.iPassWord);
- err = rep->Set(ECRKPopImapIncomingServerId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapUsernameId, aAccountSetting.iUserName);
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapPasswordId, aAccountSetting.iPassWord);
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapIncomingServerId,
aAccountSetting.iIncomingServer);
- err = rep->Set(ECRKPopImapOutgoingServerId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOutgoingServerId,
aAccountSetting.iOutgoingServer);
- err = rep->Set(ECRKPopImapProtocolIndicatorId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapProtocolIndicatorId,
aAccountSetting.iProtocolIndicator);
- err = rep->Set(ECRKPopImapIncomingPortId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapIncomingPortId,
aAccountSetting.iIncomingPort);
- err = rep->Set(ECRKPopImapOutgoingPortId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOutgoingPortId,
aAccountSetting.iOutgoingPort);
- err = rep->Set(ECRKPopImapIncomingSecurityAuthId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapIncomingSecurityAuthId,
aAccountSetting.iIncomingSecurityAuth);
- err = rep->Set(ECRKPopImapIncomingSecurityProtocolId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapIncomingSecurityProtocolId,
aAccountSetting.iIncomingSecurityProtocol);
- err = rep->Set(ECRKPopImapOutgoingSecurityAuthId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOutgoingSecurityAuthId,
aAccountSetting.iOutgoingSecurityAuth);
- err = rep->Set(ECRKPopImapOutgoingSecurityProtocolId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOutgoingSecurityProtocolId,
aAccountSetting.iOutgoingSecurityProtocol);
- err = rep->Set(ECRKPopImapOperatorOutgoingServerId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOperatorOutgoingServerId,
aAccountSetting.iOperatorOutgoingServer);
- err = rep->Set(ECRKPopImapOperatorSecurityAuthId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOperatorSecurityAuthId,
aAccountSetting.iOperatorSecurityAuth);
- err = rep->Set(ECRKPopImapOperatorSecurityProtocolId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOperatorSecurityProtocolId,
aAccountSetting.iOperatorSecurityProtocol);
- err = rep->Set(ECRKPopImapOperatorPortId,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapOperatorPortId,
aAccountSetting.iOperatorPort);
- err = rep->Set(ECRKHideUsernameInSettings,
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKHideUsernameInSettings,
aAccountSetting.iHideUserNameInSetting); // 1 = ETrue if there are some field that should be hidden from ui
- err = rep->Set(ECRKPopImapAccessPointId, aAccountSetting.iAccessPoint);
- err = rep->Set(ECRKPopImapMailboxName, aAccountSetting.iMailboxName);
- iLog->Log(_L( "==Error:=%d" ), err);
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapAccessPointId, aAccountSetting.iAccessPoint);
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ err = rep->Set(ECRKPopImapMailboxName, aAccountSetting.iMailboxName);
+ iLog->Log(_L( "Information: repository set value with error(%d)" ),err);
+
+ iLog->Log(_L( "==Error:=%d" ), err);
err = rep->CommitTransaction(keyInfo);
if (KErrLocked == err || KErrAbort == err || KErrNone != err)
@@ -909,6 +1012,33 @@
}
// -----------------------------------------------------------------------------
+// CPopImapProfileTester::LogNewEntriesCount
+// Method used to print log about count of new entries
+// -----------------------------------------------------------------------------
+//
+void CPopImapProfileTester::LogNewEntriesCount(TDes& aLog,TAny* aParam)
+ {
+ RArray<TFSMailMsgId>* newEntries =
+ static_cast<RArray<TFSMailMsgId>*> (aParam);
+ TInt newEntriesCount = newEntries->Count();
+ aLog.AppendFormat(_L("(%d)"), newEntriesCount);
+ }
+// -----------------------------------------------------------------------------
+// CPopImapProfileTester::LogFolderName
+// Method used to print log about name of folder
+// -----------------------------------------------------------------------------
+//
+void CPopImapProfileTester::LogFolderName(TDes& aLog,TAny* aParam)
+ {
+ TFSMailMsgId* parentFolder = static_cast<TFSMailMsgId*> (aParam);
+ TFolderName folderName;
+ if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
+ {
+ aLog.Append(folderName);
+ }
+ }
+
+// -----------------------------------------------------------------------------
// CPopImapProfileTester::LogEvent
// Method used to print log about event
// -----------------------------------------------------------------------------
@@ -916,7 +1046,7 @@
void CPopImapProfileTester::LogEvent(const TDesC& aLogText,
TFSMailEvent aEvent, TAny* aParam1, TAny* aParam2, TAny* aParam3)
{
- TBuf<256> log(aLogText);
+ TBuf<KMaxBufLen> log(aLogText);
switch (aEvent)
{
@@ -1077,20 +1207,11 @@
log.Append(_L( "NewEmail" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
break;
@@ -1102,20 +1223,11 @@
log.Append(_L( "MailChanged" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
break;
@@ -1127,20 +1239,11 @@
log.Append(_L( "MailDeleted" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
break;
@@ -1152,31 +1255,15 @@
log.Append(_L( "MailMoved" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(_L("---"));
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
if (aParam3)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam3);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam3);
}
break;
@@ -1196,20 +1283,11 @@
log.Append(_L( "NewFolder" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
break;
@@ -1221,20 +1299,11 @@
log.Append(_L( "FolderChanged" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
break;
@@ -1246,20 +1315,11 @@
log.Append(_L( "FoldersDeleted" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
break;
@@ -1289,20 +1349,11 @@
log.Append(_L( "MailDeletedFromViewer" ));
if (aParam1)
{
- RArray<TFSMailMsgId>* newEntries = static_cast<RArray<
- TFSMailMsgId>*> (aParam1);
- TInt newEntriesCount = newEntries->Count();
- log.AppendFormat(_L("(%d)"), newEntriesCount);
+ LogNewEntriesCount(log,aParam1);
}
if (aParam2)
{
- TFSMailMsgId* parentFolder =
- static_cast<TFSMailMsgId*> (aParam2);
- TBuf<20> folderName;
- if (KErrNone == GetFolderNameFromId(*parentFolder, folderName))
- {
- log.Append(folderName);
- }
+ LogFolderName(log,aParam2);
}
break;
@@ -1321,7 +1372,7 @@
void CPopImapProfileTester::LogTFSProgress(const TDesC& aLogText,
const TFSProgress::TFSProgressStatus aProgress, TInt aReqId)
{
- TBuf<100> log(aLogText);
+ TBuf<KMaxBufLen> log(aLogText);
if (aReqId >= 0)
{
log.AppendFormat(_L("%d-"), aReqId);
@@ -1379,7 +1430,7 @@
void CPopImapProfileTester::LogTSSMailSyncState(const TDesC& aLogText,
const TSSMailSyncState aState)
{
- TBuf<100> log(aLogText);
+ TBuf<KMaxBufLen> log(aLogText);
switch (aState)
{
case Idle:
@@ -1487,7 +1538,8 @@
{
RPointerArray<CFSMailFolder>& folders = iIPSMailbox->ListFolders();
TInt err(KErrNotFound);
- for (TInt i = 0; i < folders.Count(); i++)
+ TInt foldersCount = folders.Count();
+ for (TInt i = 0; i < foldersCount; i++)
{
if (folders[i]->GetFolderId() == aFolderId)
{
--- a/ipsservices/tsrc/profiletester/src/popimapprofiletesterBlocks.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/ipsservices/tsrc/profiletester/src/popimapprofiletesterBlocks.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -2,7 +2,7 @@
* Name : popimapprofiletesterBlocks.cpp
* Part of : ipsservices / profiletester
* Description :: STIF test cases
- * Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
*
* Copyright © 2010-2010 Nokia and/or its subsidiary(-ies). All rights reserved.
* This material, including documentation and any related computer
@@ -22,6 +22,12 @@
#include <e32math.h>
#include <msvids.h>
#include "popimapprofiletester.h"
+
+//const values
+const TInt KMailboxStatusLen = 10;
+const TInt KTimeUnits = 3;
+const TInt KNumOfRec= 2;
+
_LIT( KPopImapProfileTester, "c:\\TestFramework\\TestFramework_ips.ini" );
_LIT( KStifEmailSubject, "STIF Basic Operations test" );
_LIT( KStifEmailSubjectDes,"STIF_");
@@ -116,12 +122,18 @@
// IV. Create mailbox through WizardDataAvailableL()
err = iMailClient->WizardDataAvailableL();
if (KErrNone == err)
+ {
WaitForEvent(TFSEventNewMailbox, NULL, NULL, KTenSecondsTime);
+ }
err = InitMailboxL();
if ((KErrNone == err) && NULL != iIPSMailbox)
+ {
err = KErrNone;
+ }
else
+ {
err = KErrGeneral;
+ }
iLog->Log(_L( "== SetupAccount Ends err=%d" ), err);
return err;
@@ -143,7 +155,7 @@
iLog->Log(_L( "== GoOnline Begins ==" ));
// check current mailbox status
- TBuf<10> statusDes;
+ TBuf<KMailboxStatusLen> statusDes;
TFSMailBoxStatus status = iIPSMailbox->GetMailBoxStatus();
if (status == EFSMailBoxOffline)
{
@@ -169,23 +181,26 @@
syncstatus = iIPSMailbox->CurrentSyncState();
// we should likely base on TFSEventMailboxOnline, but this does not come always (?)
err = WaitForEvent(TFSEventMailboxOnline, NULL, NULL, KOneMinuteTime);
-
- syncstatus = iIPSMailbox->CurrentSyncState();
+
+ if( KErrNone == err)
+ {
+ syncstatus = iIPSMailbox->CurrentSyncState();
- //check status of current mailbox again
- status = iIPSMailbox->GetMailBoxStatus();
+ //check status of current mailbox again
+ status = iIPSMailbox->GetMailBoxStatus();
- if (status == EFSMailBoxOnline)
+ if (status == EFSMailBoxOnline)
{
err = KErrNone;
iLog->Log(_L("Success: mailbox online"));
}
- else
+ else
{
err = KErrGeneral;
iLog->Log(_L("Failed: mailbox status- %S"), &statusDes);
}
-
+ } //end if 'KErrNone == err'
+
iLog->Log(_L( "== GoOnline ends err=%d" ), err);
return err;
}
@@ -204,7 +219,7 @@
}
iLog->Log(_L( "== GoOffline Begins ==" ));
- TBuf<10> statusDes;
+ TBuf<KMailboxStatusLen> statusDes;
TFSMailBoxStatus status = iIPSMailbox->GetMailBoxStatus();
if (status == EFSMailBoxOffline)
{
@@ -230,20 +245,22 @@
iIPSMailbox->GoOfflineL();
syncstatus = iIPSMailbox->CurrentSyncState();
err = WaitForEvent(TFSEventMailboxOffline, NULL, NULL, KOneMinuteTime);
- syncstatus = iIPSMailbox->CurrentSyncState();
- //check status of current mailbox again
- status = iIPSMailbox->GetMailBoxStatus();
+ if( KErrNone == err)
+ {
+ syncstatus = iIPSMailbox->CurrentSyncState();
+ //check status of current mailbox again
+ status = iIPSMailbox->GetMailBoxStatus();
- if (status == EFSMailBoxOffline)
+ if (status == EFSMailBoxOffline)
{
iLog->Log(_L("Success: mailbox offline"));
}
- else
+ else
{
err = KErrGeneral;
iLog->Log(_L("Failed: mailbox status- %S"), &statusDes);
}
-
+ } //end if 'KErrNone == err'
iLog->Log(_L( "GoOffline ends err=%d" ), err);
return err;
}
@@ -265,12 +282,16 @@
iLog->Log(_L("Request Id -> %d"), reqId);
TSSMailSyncState syncstatus = iIPSMailbox->CurrentSyncState();
if ((StartingSync == syncstatus) || (EmailSyncing == syncstatus))
+ {
err = WaitForEvent(TFSEventMailboxOnline);
+ }
else
+ {
err = KErrGeneral;
+ }
if (err == KErrNone)
{
- WaitForResponse(TFSProgress::EFSStatus_RequestComplete, KOneMinuteTime*3);
+ WaitForResponse(TFSProgress::EFSStatus_RequestComplete, KOneMinuteTime*KTimeUnits);
syncstatus = iIPSMailbox->CurrentSyncState();
}
iLog->Log(_L( "RefreshNow ends err=%d" ), err);
@@ -504,7 +525,8 @@
{
iLog->Log(_L(" Listing first %d emails:"), gotMsgs);
}
- for (TInt i = 0; i < messages.Count(); ++i)
+ TInt messagesCount = messages.Count();
+ for (TInt i = 0; i < messagesCount; ++i)
{
iLog->Log(_L(" %d. %S"), i + 1, &messages[i]->GetSubject());
}
@@ -555,7 +577,8 @@
{
RPointerArray<CFSMailFolder>& folders = iIPSMailbox->ListFolders();
// find and get folder id
- for (TInt i = 0; i < folders.Count(); i++)
+ TInt foldersCount = folders.Count();
+ for (TInt i = 0; i < foldersCount; i++)
{
if (folders[i]->GetFolderName().Compare(folderS) == 0)
{
@@ -657,10 +680,13 @@
err = SendMsgL(*newMsg, subject, newMsgId); //sending message..
if (KErrNone == err)
+ {
iLog->Log(_L("Message was sent successfully"));
+ }
else
+ {
iLog->Log(_L("Failed to send message with error (ID:%d)"), err);
-
+ }
CleanupStack::PopAndDestroy(newMsg);
}
else
@@ -720,6 +746,7 @@
// II. Send test message
TFSMailMsgId newMsgId = TFSMailMsgId();
err = SendMsgL(*newMsg, KStifEmailSubject, newMsgId);
+ iLog->Log(_L("'SendMsgL' returns value of err=%d"),err);
CleanupStack::PopAndDestroy(newMsg);
newMsg = NULL;
TFSMailMsgId msgFolderId = iIPSMailbox->GetStandardFolderId(EFSInbox);
@@ -784,7 +811,7 @@
RPointerArray<CFSMailAddress>& toRecipients =
newMsg->GetToRecipients();
TInt toRec = toRecipients.Count();
- if (toRec != 2)
+ if (toRec != KNumOfRec)
{
iLog->Log(_L(" Error: Got %d 'To' recipients, expected 2"),
toRec);
@@ -811,7 +838,7 @@
RPointerArray<CFSMailAddress>& ccRecipients =
newMsg->GetCCRecipients();
TInt ccRec = ccRecipients.Count();
- if (ccRec != 2)
+ if (ccRec != KNumOfRec)
{
iLog->Log(_L(" Error: Got %d 'Cc' recipients, expected 2"),
ccRec);
@@ -933,7 +960,8 @@
if (gotMsgs > 0)
{
iLog->Log(_L(" Listing %d messages:"), gotMsgs);
- for (TInt i = 0; i < messages.Count(); i++)
+ TInt messagesCount = messages.Count();
+ for (TInt i = 0; i < messagesCount; i++)
{
iLog->Log(_L("%d.ID:,Subject: %S"), i + 1,
&messages[i]->GetSubject());
@@ -992,8 +1020,8 @@
iLog->Log(_L( "Search begins" ));
// Step01: to prepare testing msg
- HBufC* bufSubject = HBufC::NewL(30);
- HBufC* bufBody = HBufC::NewL(128);
+ HBufC* bufSubject = HBufC::NewL(KMidBufLen);
+ HBufC* bufBody = HBufC::NewL(KMidBufLen);
TPtr subject = bufSubject->Des();
TPtr body = bufBody->Des();
subject.Append(KStifEmailSubjectDes);
--- a/meetingrequest/mrgui/data/esmrgui.rss Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/data/esmrgui.rss Wed Oct 13 14:11:15 2010 +0300
@@ -262,7 +262,7 @@
MENU_ITEM
{
command = EESMRCmdRemoveFromCalendar;
- txt = qtn_meet_req_options_remove_from_cal;
+ txt = qtn_meet_req_options_delete_event;
},
MENU_ITEM
{
@@ -1523,7 +1523,7 @@
}
RESOURCE TBUF r_qtn_meet_req_remove_appointment_query
{
- buf = qtn_meet_req_remove_appointment_query;
+ buf = qtn_meet_req_delete_query;
}
RESOURCE TBUF r_qtn_meet_req_repeat_until
{
@@ -1559,7 +1559,7 @@
}
RESOURCE TBUF r_qtn_meet_req_options_remove_from_cal
{
- buf = qtn_meet_req_options_remove_from_cal;
+ buf = qtn_meet_req_options_delete_event;
}
RESOURCE TBUF r_qtn_meet_req_response_occurs_past
{
@@ -1803,12 +1803,21 @@
}
RESOURCE TBUF r_meet_req_conflict_text_format
{
- buf = "%0U[20]\n%1U[20]\n%2U\n%3U"; // qtn_meet_req_conflict_text_format
+ buf = "%0U[20]\n%1U[20]\n%2U\n%3U\n%4U"; // qtn_meet_req_conflict_text_format
}
RESOURCE TBUF r_meet_req_conflict_location_format
{
buf = "(%U)"; // qtn_meet_req_location_parenthesis
}
+RESOURCE TBUF r_meet_req_conflict_otherconflict_format
+ {
+ buf = qtn_meet_req_conflict_otherconflict_format;
+ }
+RESOURCE TBUF r_meet_req_conflict_otherconflict_singular_format
+ {
+ buf = qtn_meet_req_conflict_otherconflict_singular_format;
+ }
+
// Viewer context menu bar
RESOURCE MENU_BAR r_mr_viewer_context_menu
--- a/meetingrequest/mrgui/data/meetingrequest.pkg Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/data/meetingrequest.pkg Wed Oct 13 14:11:15 2010 +0300
@@ -28,52 +28,150 @@
:"Symbian"
; Meeting request
-"\epoc32\data\z\resource\esmrgui.rsc"-"!:\resource\esmrgui.rsc"
-"\epoc32\data\z\resource\esmrtasks.rsc"-"!:\resource\esmrtasks.rsc"
-"\epoc32\data\z\resource\esmrpolicies.rsc"-"!:\resource\esmrpolicies.rsc"
-"\epoc32\data\z\resource\esmralarminfo.rsc"-"!:\resource\esmralarminfo.rsc"
-"\epoc32\data\z\resource\esmragnversit2strings.rsc"-"!:\resource\esmragnversit2strings.rsc"
-"\epoc32\data\z\resource\esmrcasplugindata.rsc"-"!:\resource\esmrcasplugindata.rsc"
+
+
+
+
+; mragnversit2 plugin
"\epoc32\release\armv5\urel\esmragnversit2.dll"-"!:\sys\bin\esmragnversit2.dll"
"\epoc32\data\Z\Resource\Plugins\esmragnversit2.rsc"-"!:\resource\plugins\esmragnversit2.rsc"
-"\epoc32\data\Z\Resource\Plugins\esmricalviewer.rsc"-"!:\resource\plugins\esmricalviewer.rsc"
-"\epoc32\release\armv5\urel\esmrfieldbuilderplugin.dll"-"!:\sys\bin\esmrfieldbuilderplugin.dll"
-"\epoc32\data\Z\Resource\Plugins\esmrfieldbuilderplugin.rsc"-"!:\resource\plugins\esmrfieldbuilderplugin.rsc"
-"\epoc32\release\armv5\urel\esmrfieldbuilderpluginextension.dll"-"!:\sys\bin\esmrfieldbuilderpluginextension.dll"
-"\epoc32\data\Z\Resource\Plugins\esmrfieldbuilderpluginextension.rsc"-"!:\resource\plugins\esmrfieldbuilderpluginextension.rsc"
+"\epoc32\data\z\resource\esmragnversit2strings.rsc"-"!:\resource\esmragnversit2strings.rsc"
+
+
+; mrbcplugin plugin
+"\epoc32\release\armv5\urel\mrbcplugin.dll"-"!:\sys\bin\mrbcplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\mrbcplugin.rsc"-"!:\resource\plugins\mrbcplugin.rsc"
+; Sub bcmrevent plugin
+"\epoc32\release\armv5\urel\bcmrevent.dll"-"!:\sys\bin\bcmrevent.dll"
+"\epoc32\data\Z\Resource\Plugins\bcmrevent.rsc"-"!:\resource\plugins\bcmrevent.rsc"
+"\epoc32\data\z\resource\bcmreventplugin.rsc"-"!:\resource\bcmreventplugin.rsc"
+
+
+; mrcalremoteattachment component
+"\epoc32\release\armv5\urel\remoteattachment.dll"-"!:\sys\bin\remoteattachment.dll"
+
+
+; mrcasplugin plugin
"\epoc32\release\armv5\urel\esmrcasplugin.dll"-"!:\sys\bin\esmrcasplugin.dll"
"\epoc32\data\Z\Resource\Plugins\esmrcasplugin.rsc"-"!:\resource\plugins\esmrcasplugin.rsc"
-"\epoc32\release\armv5\urel\esmricalviewer.dll"-"!:\sys\bin\esmricalviewer.dll"
-"\epoc32\release\armv5\urel\esmrviewer.dll"-"!:\sys\bin\esmrviewer.dll"
-"\epoc32\release\armv5\urel\esmrutils.dll"-"!:\sys\bin\esmrutils.dll"
-"\epoc32\release\armv5\urel\esmrentry.dll"-"!:\sys\bin\esmrentry.dll"
-"\epoc32\release\armv5\urel\esmrpolicy.dll"-"!:\sys\bin\esmrpolicy.dll"
-"\epoc32\release\armv5\urel\esmrcommon.dll"-"!:\sys\bin\esmrcommon.dll"
-"\epoc32\release\armv5\urel\esmrdb.dll"-"!:\sys\bin\esmrdb.dll"
-"\epoc32\release\armv5\urel\esmrservices.dll"-"!:\sys\bin\esmrservices.dll"
-"\epoc32\release\armv5\urel\esmrgui.dll"-"!:\sys\bin\esmrgui.dll"
-"\epoc32\release\armv5\urel\esmrtasks.dll"-"!:\sys\bin\esmrtasks.dll"
-"\epoc32\release\armv5\urel\esmrversit2.dll"-"!:\sys\bin\esmrversit2.dll"
-"\epoc32\release\armv5\urel\esmrfieldbuildercommon.dll"-"!:\sys\bin\esmrfieldbuildercommon.dll"
-"\epoc32\release\armv5\urel\esmrfieldevent.dll"-"!:\sys\bin\esmrfieldevent.dll"
-"\epoc32\data\z\resource\apps\esmrgui.mif"-"!:\resource\apps\esmrgui.mif"
+"\epoc32\data\z\resource\esmrcasplugindata.rsc"-"!:\resource\esmrcasplugindata.rsc"
"\epoc32\data\z\resource\apps\esmrcasplugin.mif"-"!:\resource\apps\esmrcasplugin.mif"
-; esmrviewer calendar plug-in
+
+; mrcmailremoteattachmentplugin plugin
+"\epoc32\release\armv5\urel\mrcmailremoteattachmentplugin.dll"-"!:\sys\bin\mrcmailremoteattachmentplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\mrcmailremoteattachmentplugin.rsc"-"!:\resource\plugins\mrcmailremoteattachmentplugin.rsc"
+
+
+; mrcommon component
+"\epoc32\release\armv5\urel\esmrcommon.dll"-"!:\sys\bin\esmrcommon.dll"
+
+
+; mrdb component
+"\epoc32\release\armv5\urel\esmrdb.dll"-"!:\sys\bin\esmrdb.dll"
+
+
+; mrentry component
+"\epoc32\release\armv5\urel\esmrentry.dll"-"!:\sys\bin\esmrentry.dll"
+
+
+; mrgui component
+"\epoc32\release\armv5\urel\esmrgui.dll"-"!:\sys\bin\esmrgui.dll"
+"\epoc32\data\z\resource\esmrgui.rsc"-"!:\resource\esmrgui.rsc"
+"\epoc32\data\z\resource\apps\esmrgui.mif"-"!:\resource\apps\esmrgui.mif"
+; Sub mrfieldbuildercommon component
+"\epoc32\release\armv5\urel\esmrfieldbuildercommon.dll"-"!:\sys\bin\esmrfieldbuildercommon.dll"
+; Sub mrfieldbuilderplugin plugin
+"\epoc32\release\armv5\urel\esmrfieldbuilderplugin.dll"-"!:\sys\bin\esmrfieldbuilderplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\esmrfieldbuilderplugin.rsc"-"!:\resource\plugins\esmrfieldbuilderplugin.rsc"
+; Sub mrfieldbuilderpluginextension plugin
+"\epoc32\release\armv5\urel\esmrfieldbuilderpluginextension.dll"-"!:\sys\bin\esmrfieldbuilderpluginextension.dll"
+"\epoc32\data\Z\Resource\Plugins\esmrfieldbuilderpluginextension.rsc"-"!:\resource\plugins\esmrfieldbuilderpluginextension.rsc"
+; Sub mrfieldevent component
+"\epoc32\release\armv5\urel\esmrfieldevent.dll"-"!:\sys\bin\esmrfieldevent.dll"
+; Sub mrlocationplugin plugin
+"\epoc32\release\armv5\urel\esmrlocationplugin.dll"-"!:\sys\bin\esmrlocationplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\esmrlocationplugin.rsc"-"!:\resource\plugins\esmrlocationplugin.rsc"
+
+
+; mrguicommon component
+"\epoc32\release\armv5\urel\mrguicommon.dll"-"!:\sys\bin\mrguicommon.dll"
+
+
+; mricalviewer plugin
+"\epoc32\release\armv5\urel\esmricalviewer.dll"-"!:\sys\bin\esmricalviewer.dll"
+"\epoc32\data\Z\Resource\Plugins\esmricalviewer.rsc"-"!:\resource\plugins\esmricalviewer.rsc"
+
+
+; mrmbutilsextension plugin
+"\epoc32\release\armv5\urel\mrmbutilsextension.dll"-"!:\sys\bin\mrmbutilsextension.dll"
+"\epoc32\data\Z\Resource\Plugins\mrmbutilsextension.rsc"-"!:\resource\plugins\mrmbutilsextension.rsc"
+
+
+; mrpolicy component
+"\epoc32\release\armv5\urel\esmrpolicy.dll"-"!:\sys\bin\esmrpolicy.dll"
+; Sub mrcalentryresolver plugin
+"\epoc32\release\armv5\urel\mrcalentryresolver.dll"-"!:\sys\bin\mrcalentryresolver.dll"
+"\epoc32\data\Z\Resource\Plugins\mrcalentryresolver.rsc"-"!:\resource\plugins\mrcalentryresolver.rsc"
+"\epoc32\data\z\resource\bccaleventpolicies.rsc"-"!:\resource\bccaleventpolicies.rsc"
+; Sub mrentryresolver plugin
+"\epoc32\release\armv5\urel\mrentryresolver.dll"-"!:\sys\bin\mrentryresolver.dll"
+"\epoc32\data\Z\Resource\Plugins\mrentryresolver.rsc"-"!:\resource\plugins\mrentryresolver.rsc"
+"\epoc32\data\z\resource\esmrpolicies.rsc"-"!:\resource\esmrpolicies.rsc"
+
+
+; mrprocessor component
+; Sub mrcaleventplugin plugin
+"\epoc32\release\armv5\urel\mrcaleventplugin.dll"-"!:\sys\bin\mrcaleventplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\mrcaleventplugin.rsc"-"!:\resource\plugins\mrcaleventplugin.rsc"
+"\epoc32\data\z\resource\mrcaleventdata.rsc"-"!:\resource\mrcaleventdata.rsc"
+; Sub mrprocessorplugin plugin
+"\epoc32\release\armv5\urel\mrprocessorplugin.dll"-"!:\sys\bin\mrprocessorplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\mrprocessorplugin.rsc"-"!:\resource\plugins\mrprocessorplugin.rsc"
+
+
+; mrservices component
+"\epoc32\release\armv5\urel\esmrservices.dll"-"!:\sys\bin\esmrservices.dll"
+"\epoc32\data\z\resource\esmralarminfo.rsc"-"!:\resource\esmralarminfo.rsc"
+
+
+; mrtasks component
+"\epoc32\release\armv5\urel\esmrtasks.dll"-"!:\sys\bin\esmrtasks.dll"
+"\epoc32\data\z\resource\esmrtasks.rsc"-"!:\resource\esmrtasks.rsc"
+; Sub mrcaleventtaskplugin plugin
+"\epoc32\release\armv5\urel\mrcaleventtaskplugin.dll"-"!:\sys\bin\mrcaleventtaskplugin.dll"
+"\epoc32\data\z\resource\Plugins\mrcaleventtaskplugin.rsc"-"!:\resource\plugins\mrcaleventtaskplugin.rsc"
+; Sub mrtaskplugin plugin
+"\epoc32\release\armv5\urel\mrtaskplugin.dll"-"!:\sys\bin\mrtaskplugin.dll"
+"\epoc32\data\z\resource\Plugins\mrtaskplugin.rsc"-"!:\resource\Plugins\mrtaskplugin.rsc"
+
+
+; mrurlparserplugin plugin
+"\epoc32\release\armv5\urel\esmrurlparserplugin.dll"-"!:\sys\bin\esmrurlparserplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\esmrurlparserplugin.rsc"-"!:\resource\plugins\esmrurlparserplugin.rsc"
+
+
+; mrutils component
+"\epoc32\release\armv5\urel\esmrutils.dll"-"!:\sys\bin\esmrutils.dll"
+
+
+; mrutilscalplugin plugin
+"\epoc32\release\armv5\urel\esmrutilscalplugin.dll"-"!:\sys\bin\esmrutilscalplugin.dll"
+"\epoc32\data\Z\Resource\Plugins\esmrutilscalplugin.rsc"-"!:\resource\plugins\esmrutilscalplugin.rsc"
+
+
+; mrversit2 component
+"\epoc32\release\armv5\urel\esmrversit2.dll"-"!:\sys\bin\esmrversit2.dll"
+
+
+; mrviewer component
+"\epoc32\release\armv5\urel\esmrviewer.dll"-"!:\sys\bin\esmrviewer.dll"
+
+
+; mrviewercalplugin plugin
"\epoc32\release\armv5\urel\esmrviewercalplugin.dll"-"!:\sys\bin\esmrviewercalplugin.dll"
"\epoc32\data\Z\Resource\Plugins\esmrviewercalplugin.rsc"-"!:\resource\plugins\esmrviewercalplugin.rsc"
-; esmrutils calendar plug-in
-"\epoc32\release\armv5\urel\esmrutilscalplugin.dll"-"!:\sys\bin\esmrutilscalplugin.dll"
-"\epoc32\data\Z\Resource\Plugins\esmrutilscalplugin.rsc"-"!:\resource\plugins\esmrutilscalplugin.rsc"
-; Location integration plugin
-"\epoc32\release\armv5\urel\esmrlocationplugin.dll"-"!:\sys\bin\esmrlocationplugin.dll"
-"\epoc32\data\Z\Resource\Plugins\esmrlocationplugin.rsc"-"!:\resource\plugins\esmrlocationplugin.rsc"
-
-; Location URL Parser plugin
-"\epoc32\release\armv5\urel\esmrurlparserplugin.dll"-"!:\sys\bin\esmrurlparserplugin.dll"
-"\epoc32\data\Z\Resource\Plugins\esmrurlparserplugin.rsc"-"!:\resource\plugins\esmrurlparserplugin.rsc"
-"\epoc32\data\z\resource\esmrurlparserplugindata.rsc"-"!:\resource\esmrurlparserplugindata.rsc"
; Meeting request helps
\ No newline at end of file
--- a/meetingrequest/mrgui/data/meetingrequeststub.pkg Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/data/meetingrequeststub.pkg Wed Oct 13 14:11:15 2010 +0300
@@ -28,52 +28,145 @@
:"Symbian"
; Meeting request
-""-"z:\resource\esmrgui.r*"
-""-"z:\resource\esmrtasks.r*"
-""-"z:\resource\esmrpolicies.r*"
-""-"z:\resource\esmralarminfo.r*"
-""-"z:\resource\esmragnversit2strings.r*"
-""-"z:\resource\esmrcasplugindata.r*"
+
+; mragnversit2 plugin
""-"z:\sys\bin\esmragnversit2.dll"
""-"z:\resource\plugins\esmragnversit2.r*"
-""-"z:\resource\plugins\esmricalviewer.r*"
-""-"z:\sys\bin\esmrfieldbuilderplugin.dll"
-""-"z:\resource\plugins\esmrfieldbuilderplugin.r*"
-""-"z:\sys\bin\esmrfieldbuilderpluginextension.dll"
-""-"z:\resource\plugins\esmrfieldbuilderpluginextension.r*"
+""-"z:\resource\esmragnversit2strings.r*"
+
+
+; mrbcplugin plugin
+""-"z:\sys\bin\mrbcplugin.dll"
+""-"z:\resource\plugins\mrbcplugin.r*"
+; Sub bcmrevent plugin
+""-"z:\sys\bin\bcmrevent.dll"
+""-"z:\resource\plugins\bcmrevent.r*"
+""-"z:\resource\bcmreventplugin.r*"
+
+
+; mrcalremoteattachment component
+""-"z:\sys\bin\remoteattachment.dll"
+
+
+; mrcasplugin plugin
""-"z:\sys\bin\esmrcasplugin.dll"
""-"z:\resource\plugins\esmrcasplugin.r*"
-""-"z:\sys\bin\esmricalviewer.dll"
-""-"z:\sys\bin\esmrviewer.dll"
-""-"z:\sys\bin\esmrutils.dll"
-""-"z:\sys\bin\esmrentry.dll"
-""-"z:\sys\bin\esmrpolicy.dll"
-""-"z:\sys\bin\esmrcommon.dll"
-""-"z:\sys\bin\esmrdb.dll"
-""-"z:\sys\bin\esmrservices.dll"
-""-"z:\sys\bin\esmrgui.dll"
-""-"z:\sys\bin\esmrtasks.dll"
-""-"z:\sys\bin\esmrversit2.dll"
-""-"z:\sys\bin\esmrfieldbuildercommon.dll"
-""-"z:\sys\bin\esmrfieldevent.dll"
-""-"z:\resource\apps\esmrgui.mif"
+""-"z:\resource\esmrcasplugindata.r*"
""-"z:\resource\apps\esmrcasplugin.mif"
-; esmrviewer calendar plug-in
+
+; mrcmailremoteattachmentplugin plugin
+""-"z:\sys\bin\mrcmailremoteattachmentplugin.dll"
+""-"z:\resource\plugins\mrcmailremoteattachmentplugin.r*"
+
+
+; mrcommon component
+""-"z:\sys\bin\esmrcommon.dll"
+
+
+; mrdb component
+""-"z:\sys\bin\esmrdb.dll"
+
+
+; mrentry component
+""-"z:\sys\bin\esmrentry.dll"
+
+
+; mrgui component
+""-"z:\sys\bin\esmrgui.dll"
+""-"z:\resource\esmrgui.r*"
+""-"z:\resource\apps\esmrgui.mif"
+; Sub mrfieldbuildercommon component
+""-"z:\sys\bin\esmrfieldbuildercommon.dll"
+; Sub mrfieldbuilderplugin plugin
+""-"z:\sys\bin\esmrfieldbuilderplugin.dll"
+""-"z:\resource\plugins\esmrfieldbuilderplugin.r*"
+; Sub mrfieldbuilderpluginextension plugin
+""-"z:\sys\bin\esmrfieldbuilderpluginextension.dll"
+""-"z:\resource\plugins\esmrfieldbuilderpluginextension.r*"
+; Sub mrfieldevent component
+""-"z:\sys\bin\esmrfieldevent.dll"
+; Sub mrlocationplugin plugin
+""-"z:\sys\bin\esmrlocationplugin.dll"
+""-"z:\resource\plugins\esmrlocationplugin.r*"
+
+
+; mrguicommon component
+""-"z:\sys\bin\mrguicommon.dll"
+
+
+; mricalviewer plugin
+""-"z:\sys\bin\esmricalviewer.dll"
+""-"z:\resource\plugins\esmricalviewer.r*"
+
+
+; mrmbutilsextension plugin
+""-"z:\sys\bin\mrmbutilsextension.dll"
+""-"z:\resource\plugins\mrmbutilsextension.r*"
+
+
+; mrpolicy component
+""-"z:\sys\bin\esmrpolicy.dll"
+; Sub mrcalentryresolver plugin
+""-"z:\sys\bin\mrcalentryresolver.dll"
+""-"z:\resource\plugins\mrcalentryresolver.r*"
+""-"z:\resource\bccaleventpolicies.r*"
+; Sub mrentryresolver plugin
+""-"z:\sys\bin\mrentryresolver.dll"
+""-"z:\resource\plugins\mrentryresolver.r*"
+""-"z:\resource\esmrpolicies.r*"
+
+
+; mrprocessor component
+; Sub mrcaleventplugin plugin
+""-"z:\sys\bin\mrcaleventplugin.dll"
+""-"z:\resource\plugins\mrcaleventplugin.r*"
+""-"z:\resource\mrcaleventdata.r*"
+; Sub mrprocessorplugin plugin
+""-"z:\sys\bin\mrprocessorplugin.dll"
+""-"z:\resource\plugins\mrprocessorplugin.r*"
+
+
+; mrservices component
+""-"z:\sys\bin\esmrservices.dll"
+""-"z:\resource\esmralarminfo.r*"
+
+
+; mrtasks component
+""-"z:\sys\bin\esmrtasks.dll"
+""-"z:\resource\esmrtasks.r*"
+; Sub mrcaleventtaskplugin plugin
+""-"z:\sys\bin\mrcaleventtaskplugin.dll"
+""-"z:\resource\plugins\mrcaleventtaskplugin.r*"
+; Sub mrtaskplugin plugin
+""-"z:\sys\bin\mrtaskplugin.dll"
+""-"z:\resource\Plugins\mrtaskplugin.r*"
+
+
+; mrurlparserplugin plugin
+""-"z:\sys\bin\esmrurlparserplugin.dll"
+""-"z:\resource\plugins\esmrurlparserplugin.r*"
+
+
+; mrutils component
+""-"z:\sys\bin\esmrutils.dll"
+
+
+; mrutilscalplugin plugin
+""-"z:\sys\bin\esmrutilscalplugin.dll"
+""-"z:\resource\plugins\esmrutilscalplugin.r*"
+
+
+; mrversit2 component
+""-"z:\sys\bin\esmrversit2.dll"
+
+
+; mrviewer component
+""-"z:\sys\bin\esmrviewer.dll"
+
+
+; mrviewercalplugin plugin
""-"z:\sys\bin\esmrviewercalplugin.dll"
""-"z:\resource\plugins\esmrviewercalplugin.r*"
-; esmrutils calendar plug-in
-""-"z:\sys\bin\esmrutilscalplugin.dll"
-""-"z:\resource\plugins\esmrutilscalplugin.rsc"
-
-; Location integration plugin
-""-"z:\sys\bin\esmrlocationplugin.dll"
-""-"z:\resource\plugins\esmrlocationplugin.r*"
-
-; Location URL Parser plugin
-""-"z:\sys\bin\esmrurlparserplugin.dll"
-""-"z:\resource\plugins\esmrurlparserplugin.r*"
-""-"z:\resource\esmrurlparserplugindata.r*"
-
; Meeting request helps
\ No newline at end of file
Binary file meetingrequest/mrgui/data/meetingrequeststub.sis has changed
--- a/meetingrequest/mrgui/data/mrguitoolbarresources.rss Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/data/mrguitoolbarresources.rss Wed Oct 13 14:11:15 2010 +0300
@@ -19,6 +19,7 @@
#include <esmrgui.mbg>
#include <mrui.loc>
#include <avkon.hrh>
+#include <aknsconstants.hrh>
#define MRUI_ICON_FILE BITMAP_DIR"\\esmrgui.mif"
@@ -33,11 +34,18 @@
helptxt = qtn_meet_req_toolbar_hlp_accept;
bmpfile = MRUI_ICON_FILE;
bmpid = EMbmEsmrguiQgn_indi_tb_email_accept;
- bmpmask = EMbmEsmrguiQgn_indi_tb_email_accept_mask;
+ bmpmask = EMbmEsmrguiQgn_indi_tb_email_accept_mask;
+ extension = r_toolbar_button_accept_extension;
}
};
}
+RESOURCE AVKON_BUTTON_STATE_EXTENSION r_toolbar_button_accept_extension
+ {
+ bmbSkinIdMajor = EAknsMajorGeneric;
+ bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbEmailAccept;
+ }
+
RESOURCE AVKON_BUTTON r_toolbar_button_tentative
{
flags = 0;
@@ -48,11 +56,18 @@
helptxt = qtn_meet_req_toolbar_hlp_tentative;
bmpfile = MRUI_ICON_FILE;
bmpid = EMbmEsmrguiQgn_indi_tb_email_tentative;
- bmpmask = EMbmEsmrguiQgn_indi_tb_email_tentative_mask;
+ bmpmask = EMbmEsmrguiQgn_indi_tb_email_tentative_mask;
+ extension = r_toolbar_button_tentative_extension;
}
};
}
+RESOURCE AVKON_BUTTON_STATE_EXTENSION r_toolbar_button_tentative_extension
+ {
+ bmbSkinIdMajor = EAknsMajorGeneric;
+ bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbEmailTentative;
+ }
+
RESOURCE AVKON_BUTTON r_toolbar_button_decline
{
flags = 0;
@@ -63,11 +78,18 @@
helptxt = qtn_meet_req_toolbar_hlp_decline;
bmpfile = MRUI_ICON_FILE;
bmpid = EMbmEsmrguiQgn_indi_tb_email_decline;
- bmpmask = EMbmEsmrguiQgn_indi_tb_email_decline_mask;
+ bmpmask = EMbmEsmrguiQgn_indi_tb_email_decline_mask;
+ extension = r_toolbar_button_decline_extension;
}
};
}
+RESOURCE AVKON_BUTTON_STATE_EXTENSION r_toolbar_button_decline_extension
+ {
+ bmbSkinIdMajor = EAknsMajorGeneric;
+ bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbEmailDecline;
+ }
+
/*
* MR toolbar help texts
*/
--- a/meetingrequest/mrgui/inc/cesmrview.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrview.h Wed Oct 13 14:11:15 2010 +0300
@@ -190,7 +190,7 @@
*/
void ProcessEventL( const MESMRFieldEvent& aEvent );
-
+ inline CMRListPane* ListPane() { return iListPane; }
public: // From CCoeControl
TKeyResponse OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType);
--- a/meetingrequest/mrgui/inc/cmrfieldcontainer.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/inc/cmrfieldcontainer.h Wed Oct 13 14:11:15 2010 +0300
@@ -99,6 +99,7 @@
void ScrollControlVisible( TInt aInd );
void RePositionFields( TInt aAmount );
TRect ViewableAreaRect();
+ void RedrawField( CESMRField& aField );
public: // From CCoeControl
TSize MinimumSize();
--- a/meetingrequest/mrgui/inc/cmrresponsedialogview.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/inc/cmrresponsedialogview.h Wed Oct 13 14:11:15 2010 +0300
@@ -60,11 +60,14 @@
void HandleResourceChange( TInt aType );
TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
void SizeChanged();
+ TSize MinimumSize();
private:
CESMRResponseDialogView();
void ConstructL();
+ void SetFontL( const CFont* aFont );
+
private: // Data
/// Own:
CEikRichTextEditor* iEditor;
--- a/meetingrequest/mrgui/inc/mesmrlistobserver.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/inc/mesmrlistobserver.h Wed Oct 13 14:11:15 2010 +0300
@@ -104,6 +104,12 @@
* @return TRect, rect of the viewable area.
*/
virtual TRect ViewableAreaRect() = 0;
+
+ /**
+ * Requests list observer to redraw given field.
+ * @param aField the field to redraw
+ */
+ virtual void RedrawField( CESMRField& aField ) = 0;
};
#endif // MESMRLISTOBSERVER_H
--- a/meetingrequest/mrgui/loc/mrui.loc Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/loc/mrui.loc Wed Oct 13 14:11:15 2010 +0300
@@ -1283,4 +1283,24 @@
//
#define qtn_meet_req_location_parenthesis "(%U)"
+// d: Conflict popup conflict message text format for plural conflict.
+// d: %N is replaced with the number of conflict entries.
+// l: popup_preview_text_window/opt5
+// r: TB9.2
+//
+#define qtn_meet_req_conflict_otherconflict_format "and %N other entries"
+
+// d: Conflict popup conflict message text format for single conflict.
+// d: %N is replaced with the number of conflict entry.
+// l: popup_preview_text_window/opt5
+// r: TB9.2
+//
+#define qtn_meet_req_conflict_otherconflict_singular_format "and %N other entry"
+
+// d: Options menu item for removing entry
+// l: list_single_pane_t1_cp2
+// r: TB9.1
+//
+#define qtn_meet_req_options_delete_event "Delete event"
+
// end of file
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrrichtextviewer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrrichtextviewer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : CEikRichTextEditor based Rich Text viewer
-* Version : %version: e002sa33#45.3 %
+* Version : %version: e002sa33#45.4 %
*
*/
@@ -429,8 +429,6 @@
iLinkList.ResetAndDestroy();
- TextView()->SetMarginWidths( KDefaultTextSideMargin ,0);
-
// Clear edwin text
CEikEdwin::SetCursorPosL( 0, EFalse );
CEikRichTextEditor::SetTextL( &KNullDesC );
@@ -443,6 +441,8 @@
// Set new edwin text
CEikEdwin::SetTextLimit( aText->Length ( ) );
CEikRichTextEditor::SetTextL( aText );
+
+ TextView()->SetMarginWidths( KDefaultTextSideMargin ,0);
//Make sure cursor is invisible and selection visible
TextView()->SetCursorVisibilityL(
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdetailedsubjectfield.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdetailedsubjectfield.h Wed Oct 13 14:11:15 2010 +0300
@@ -107,6 +107,8 @@
CESMRRichTextViewer* iRichTextViewer;
/// Ref: Pointer to title pane observer
MESMRTitlePaneObserver* iTitlePaneObserver;
+ // Stores current priority value
+ TUint iCurrentPriority;
};
#endif // CESMRVIEWERDETAILEDSUBJECTFIELD_H_
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerlocationfield.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerlocationfield.h Wed Oct 13 14:11:15 2010 +0300
@@ -99,6 +99,8 @@
CESMRRichTextViewer* iRichTextViewer;
/// Own: Waypoint icon
CMRImage* iWaypointIcon;
+ /// Own: Lock icon
+ CMRImage* iLockIcon;
/// Own: RichTextViewer line count.
TInt iLineCount;
/// Own: Middle softkey command id
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrattachmentcommandhandler.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrattachmentcommandhandler.h Wed Oct 13 14:11:15 2010 +0300
@@ -72,6 +72,12 @@
const CESMRRichTextLink& aSelectedLink );
/**
+ * Check if SaveAllAttachments is in progress
+ * @return ETrue, if iSaveAllAttachmentsCommand is ETrue
+ */
+ TBool IsSaveAllAttachmentsInProgress( );
+
+ /**
* Tests whether curerntly selected link is remote or not.
* @param aSelectedLink Reference to selected link.
* @return ETrue, if currently selected link is remote attachment
@@ -169,6 +175,10 @@
CDocumentHandler* iDocHandler;
/// Ref: Event queue
MESMRFieldEventQueue& iEventQueue;
+ /// Record attachment index when saving an attachment
+ TInt iAttachmentIndex;
+ /// Flag to indicate if save all command is in question
+ TBool iSaveAllAttachmentsCommand;
};
#endif // CMRATTACHMENTCOMMANDHANDLER_H
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrviewerattachmentfield.h Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrviewerattachmentfield.h Wed Oct 13 14:11:15 2010 +0300
@@ -126,6 +126,9 @@
CDesCArrayFlat* iRemoteAttUris;
/// Own: Remote attachment info
CCalRemoteAttachmentInfo* iAttachmentInfo;
+ //Not own. temporary to remember link during saving all attachments process
+ //Kinetic scrolling used during SaveAllAttachmens caused that focus has been lost
+ const CESMRRichTextLink* iSelectedLink;
};
#endif // CMRATTACHMENTSFIELD_H
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -141,7 +141,7 @@
fieldRect,
NMRLayoutManager::EMRTextLayoutTextEditor ).TextRect() );
- if( iPriorityIcon )
+ if( iPriorityIcon && ( iCurrentPriority != EFSCalenMRPriorityNormal ) )
{
editorRect = NMRLayoutManager::GetLayoutText(
fieldRect,
@@ -443,9 +443,19 @@
case 0:
return iFieldIcon;
case 1:
- return iSubject;
+ if( iPriorityIcon )
+ {
+ return iPriorityIcon;
+ }
+ else
+ {
+ return iSubject;
+ }
case 2:
- return iPriorityIcon;
+ if( iPriorityIcon )
+ {
+ return iSubject;
+ }
default:
return NULL;
}
@@ -475,15 +485,23 @@
// Layouting priority icon
if( iPriorityIcon )
{
- TAknWindowComponentLayout iconLayout(
- NMRLayoutManager::GetWindowComponentLayout(
- NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
- AknLayoutUtils::LayoutImage( iPriorityIcon, rowRect, iconLayout );
+ if( iCurrentPriority != EFSCalenMRPriorityNormal )
+ {
+ TAknWindowComponentLayout iconLayout(
+ NMRLayoutManager::GetWindowComponentLayout(
+ NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
+ AknLayoutUtils::LayoutImage( iPriorityIcon, rowRect, iconLayout );
+ }
}
-
+ else
+ {
+ delete iPriorityIcon;
+ iPriorityIcon = NULL;
+ }
+
TAknLayoutText editorLayoutText;
- if( iPriorityIcon )
+ if( iPriorityIcon && ( iCurrentPriority != EFSCalenMRPriorityNormal ) )
{
editorLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
@@ -511,6 +529,12 @@
// Move focus rect so that it's relative to field's position.
bgRect.Move( -Position() );
SetFocusRect( bgRect );
+
+ if ( !iOutlineFocus )
+ {
+ RecordField();
+ iObserver->RedrawField( *this );
+ }
}
// ---------------------------------------------------------------------------
@@ -557,8 +581,11 @@
{
case EFSCalenMRPriorityHigh:
{
- delete iPriorityIcon;
- iPriorityIcon = NULL;
+ if( iPriorityIcon )
+ {
+ delete iPriorityIcon;
+ iPriorityIcon = NULL;
+ }
iPriorityIcon = CMRImage::NewL(
NMRBitmapManager::EMRBitmapPriorityHigh,
@@ -567,6 +594,7 @@
iPriorityIcon->SetParent( this );
if( iCurrentPriority == EFSCalenMRPriorityNormal )
{
+ iCurrentPriority = EFSCalenMRPriorityHigh;
SizeChanged();
}
iCurrentPriority = EFSCalenMRPriorityHigh;
@@ -587,14 +615,18 @@
case EFSCalenMRPriorityLow:
{
- delete iPriorityIcon;
- iPriorityIcon = NULL;
+ if( iPriorityIcon )
+ {
+ delete iPriorityIcon;
+ iPriorityIcon = NULL;
+ }
iPriorityIcon = CMRImage::NewL(
NMRBitmapManager::EMRBitmapPriorityLow );
iPriorityIcon->SetParent( this );
if( iCurrentPriority == EFSCalenMRPriorityNormal )
{
+ iCurrentPriority = EFSCalenMRPriorityLow;
SizeChanged();
}
iCurrentPriority = EFSCalenMRPriorityLow;
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdescriptionfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdescriptionfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -102,6 +102,8 @@
void CESMRViewerDescriptionField::InternalizeL( MESMRCalEntry& aEntry )
{
FUNC_LOG;
+ iDisableRedraw = ETrue;
+
TPtrC text = aEntry.Entry().DescriptionL ( );
if( text.Length() == 0 )
{
@@ -119,7 +121,6 @@
iRichTextViewer->SetMargins( KMargin );
iRichTextViewer->ApplyLayoutChangesL();
}
- iDisableRedraw = ETrue;
}
// ---------------------------------------------------------------------------
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -118,12 +118,15 @@
iFieldIcon = CMRImage::NewL(
NMRBitmapManager::EMRBitmapOccasion,
this );
-
+ iPriorityIcon = CMRImage::NewL(
+ NMRBitmapManager::EMRBitmapLockField,
+ this );
iRichTextViewer = CESMRRichTextViewer::NewL( this );
CESMRField::ConstructL( iRichTextViewer ); // ownership transferred
iRichTextViewer->SetEdwinSizeObserver( this );
iRichTextViewer->SetParent( this );
iRichTextViewer->SetLinkObserver( this );
+ iCurrentPriority = EFSCalenMRPriorityNormal;
}
// ---------------------------------------------------------------------------
@@ -199,17 +202,29 @@
{
if( entry.PriorityL() == EFSCalenMRPriorityHigh )
{
+ if( iPriorityIcon )
+ {
+ delete iPriorityIcon;
+ iPriorityIcon = NULL;
+ }
iPriorityIcon = CMRImage::NewL(
NMRBitmapManager::EMRBitmapPriorityHigh,
this,
ETrue );
+ iCurrentPriority = EFSCalenMRPriorityHigh;
}
if( entry.PriorityL() == EFSCalenMRPriorityLow )
{
+ if( iPriorityIcon )
+ {
+ delete iPriorityIcon;
+ iPriorityIcon = NULL;
+ }
iPriorityIcon = CMRImage::NewL(
NMRBitmapManager::EMRBitmapPriorityLow,
this,
ETrue );
+ iCurrentPriority = EFSCalenMRPriorityLow;
}
}
@@ -425,12 +440,15 @@
CESMRField::LockL();
- delete iPriorityIcon;
- iPriorityIcon = NULL;
- iPriorityIcon = CMRImage::NewL(
- NMRBitmapManager::EMRBitmapLockField,
- this,
- ETrue );
+ if( !iPriorityIcon )
+ {
+ delete iPriorityIcon;
+ iPriorityIcon = NULL;
+ iPriorityIcon = CMRImage::NewL(
+ NMRBitmapManager::EMRBitmapLockField,
+ this,
+ ETrue );
+ }
}
// ---------------------------------------------------------------------------
@@ -483,12 +501,12 @@
++count;
}
- if ( iRichTextViewer )
+ if ( iPriorityIcon )
{
++count;
}
- if ( iPriorityIcon )
+ if ( iRichTextViewer )
{
++count;
}
@@ -508,9 +526,9 @@
case 0:
return iFieldIcon;
case 1:
- return iRichTextViewer;
+ return iPriorityIcon;
case 2:
- return iPriorityIcon;
+ return iRichTextViewer;
default:
return NULL;
@@ -541,7 +559,7 @@
}
// Layouting priority icon
- if( iPriorityIcon )
+ if( iPriorityIcon && ( IsLocked() || iCurrentPriority != EFSCalenMRPriorityNormal ) )
{
TAknWindowComponentLayout iconLayout(
NMRLayoutManager::GetWindowComponentLayout(
@@ -551,7 +569,7 @@
TAknLayoutText viewerLayoutText;
- if( iPriorityIcon )
+ if( iPriorityIcon && ( IsLocked() || iCurrentPriority != EFSCalenMRPriorityNormal ) )
{
viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerlocationfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerlocationfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -56,6 +56,7 @@
CESMRViewerLocationField::~CESMRViewerLocationField()
{
delete iFieldButton;
+ delete iLockIcon;
delete iWaypointIcon;
delete iFeatures;
}
@@ -192,7 +193,11 @@
NMRBitmapManager::EMRBitmapLocation,
this );
iFieldButton->SetObserver(this);
-
+ iLockIcon = CMRImage::NewL(
+ NMRBitmapManager::EMRBitmapLockField,
+ this,
+ ETrue );
+
iRichTextViewer = CESMRRichTextViewer::NewL( this );
CESMRField::ConstructL( iRichTextViewer ); // ownership transfered
iRichTextViewer->SetEdwinSizeObserver( this );
@@ -308,12 +313,17 @@
++count;
}
- if ( iRichTextViewer )
+ if( iWaypointIcon )
{
++count;
}
- if( iWaypointIcon )
+ if( iLockIcon )
+ {
+ ++count;
+ }
+
+ if ( iRichTextViewer )
{
++count;
}
@@ -331,9 +341,31 @@
case 0:
return iFieldButton;
case 1:
- return iRichTextViewer;
+ {
+ if( iWaypointIcon )
+ {
+ return iWaypointIcon;
+ }
+ else if( iLockIcon )
+ {
+ return iLockIcon;
+ }
+ else if( iRichTextViewer )
+ {
+ return iRichTextViewer;
+ }
+ }
case 2:
- return iWaypointIcon;
+ if( iWaypointIcon && iLockIcon )
+ {
+ return iLockIcon;
+ }
+ else if( iRichTextViewer )
+ {
+ return iRichTextViewer;
+ }
+ case 3:
+ return iRichTextViewer;
default:
return NULL;
}
@@ -370,10 +402,19 @@
NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
AknLayoutUtils::LayoutImage( iWaypointIcon, rowRect, iconLayout );
}
+
+ // Layouting lock icon
+ if( iLockIcon && IsLocked() )
+ {
+ TAknWindowComponentLayout iconLayout(
+ NMRLayoutManager::GetWindowComponentLayout(
+ NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
+ AknLayoutUtils::LayoutImage( iLockIcon, rowRect, iconLayout );
+ }
TAknLayoutText viewerLayoutText;
- if( iWaypointIcon )
+ if( iWaypointIcon || ( iLockIcon && IsLocked() ) )
{
viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
@@ -479,16 +520,22 @@
return;
}
- CESMRField::LockL();
+ // If waypoint icon is present, let's hide that,
+ // because locked icon replaces it.
+ if( iWaypointIcon )
+ {
+ iWaypointIcon->MakeVisible( EFalse );
+ }
- delete iWaypointIcon;
- iWaypointIcon = NULL;
- iWaypointIcon = CMRImage::NewL(
- NMRBitmapManager::EMRBitmapLockField,
- this,
- ETrue );
+ if( !iLockIcon )
+ {
+ iLockIcon = CMRImage::NewL(
+ NMRBitmapManager::EMRBitmapLockField,
+ this,
+ ETrue );
+ }
- iWaypointIcon->SetObserver( this );
+ iLockIcon->SetObserver( this );
}
// ---------------------------------------------------------------------------
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentcommandhandler.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentcommandhandler.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -164,6 +164,8 @@
FUNC_LOG;
iDocHandler = CDocumentHandler::NewL();
+
+ iAttachmentIndex = KErrNotFound;
}
// ---------------------------------------------------------------------------
@@ -176,11 +178,45 @@
{
FUNC_LOG;
- TInt attachmentIndex( ResolveAttachmentIndexL( aSelectedLink.Value() ) );
- HandleAttachmentCommandInternalL( aCommandId, attachmentIndex );
+ // If attachment index is not found, we must resolve it
+ if( iAttachmentIndex == KErrNotFound )
+ {
+ iAttachmentIndex = ResolveAttachmentIndexL( aSelectedLink.Value() );
+ }
+
+ HandleAttachmentCommandInternalL( aCommandId, iAttachmentIndex );
+
+ // Attachment index can be cleared after the command is executed.
+ iAttachmentIndex = KErrNotFound;
+
+ // If save all attachments command is in progress ...
+ if( iSaveAllAttachmentsCommand )
+ {
+ if ( iAttachmentInfo->AttachmentCount() > 0 )
+ {
+ // ... Let's continue the download process by starting the
+ // next download
+ SaveNextRemoteAttachmentL();
+ }
+ else
+ {
+ // ... Or show a note if all remote attachments have been saved.
+ ShowInfoNoteL( iEntry.AttachmentCountL() );
+ iSaveAllAttachmentsCommand = EFalse;
+ }
+ }
}
// ---------------------------------------------------------------------------
+// CMRAttachmentCommandHandler::IsSaveAllAttachmentsInProgress
+// ---------------------------------------------------------------------------
+//
+TBool CMRAttachmentCommandHandler::IsSaveAllAttachmentsInProgress( )
+ {
+ return iSaveAllAttachmentsCommand;// return the flag state
+ }
+
+// ---------------------------------------------------------------------------
// CMRAttachmentCommandHandler::IsRemoteAttachmentL
// ---------------------------------------------------------------------------
//
@@ -304,6 +340,7 @@
// Operation failed or cancelled, hide download indicator
TRAP_IGNORE( HideDownloadIndicatorL() );
iCommandInProgress = 0;
+ iSaveAllAttachmentsCommand = EFalse;
if ( aErrorCode != KErrCancel )
{
@@ -463,30 +500,34 @@
iCommandInProgress = 0;
}
- else
+ else // Save and Save All attachments commands
{
- HandleAttachmentCommandInternalL(
- EESMRViewerSaveAttachment, attachmentIndex );
-
- if ( EESMRViewerSaveAllAttachments == iCommandInProgress )
- {
- iCommandInProgress = 0;
+ // Let's keep in mind, if save all attachments command
+ // is in progress.
+ if( EESMRViewerSaveAllAttachments == iCommandInProgress )
+ {
+ iSaveAllAttachmentsCommand = ETrue;
+ }
- if ( iAttachmentInfo->AttachmentCount() > 0 )
- {
- // There are more attachments to be downloaded --> Download next
- SaveNextRemoteAttachmentL();
- }
- else
- {
- // All remote attachments have been saved. Show info note.
- ShowInfoNoteL( iEntry.AttachmentCountL() );
- }
- }
- else
- {
- iCommandInProgress = 0;
- }
+ // Send asynchronous event, that attachment with
+ // given index is saved. This command will return to
+ // HandleAttachmentCommandL in this class. Async command
+ // is used to avoid system caused error where memory selection
+ // query in document handler does not receive key events
+ // correctly.
+ CESMRFieldCommandEvent* event = CESMRFieldCommandEvent::NewLC(
+ NULL,
+ EESMRViewerSaveAttachment );
+
+ // Record attachment index
+ iAttachmentIndex = attachmentIndex;
+
+ // Send async event
+ iEventQueue.NotifyEventAsyncL( event );
+ CleanupStack::Pop( event );
+
+ // Set to zero for the duration of the saving.
+ iCommandInProgress = 0;
}
}
@@ -751,6 +792,8 @@
iDownloadOperations.Remove( remoteCommand );
delete command;
}
+
+ iSaveAllAttachmentsCommand = EFalse;
}
break;
case EESMRViewerSaveAllAttachments:
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrviewerattachmentfield.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrviewerattachmentfield.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -155,6 +155,7 @@
EFalse );
iRichTextViewer->SetSkinBackgroundControlContextL( iBgCtrlContext );
+ iSelectedLink = NULL;
}
// ---------------------------------------------------------------------------
@@ -467,6 +468,15 @@
if ( IsValidAttachmentViewerCommand(aCommand) && iAttachmentCommandHandler )
{
const CESMRRichTextLink* currentLink = iRichTextViewer->GetSelectedLink();
+ // remember the state if Saving all is not in progress
+ if( currentLink && !iAttachmentCommandHandler->IsSaveAllAttachmentsInProgress() )
+ {
+ iSelectedLink = currentLink;
+ }
+ else
+ {
+ currentLink = iSelectedLink;// restore link when selection is lost
+ }
ASSERT( currentLink );
@@ -758,7 +768,14 @@
{
FUNC_LOG;
- if ( iRichTextViewer->Rect().Contains( aPosition ) )
+ // prevent link selection if SaveAllAttachments is in progress
+ TBool saveAllInProgress ( EFalse );
+ if( iAttachmentCommandHandler )
+ {
+ saveAllInProgress = iAttachmentCommandHandler->IsSaveAllAttachmentsInProgress( );
+ }
+
+ if ( !saveAllInProgress && iRichTextViewer->Rect().Contains( aPosition ) )
{
iRichTextViewer->LinkSelectedL();
}
@@ -778,7 +795,15 @@
if( iAttachmentCount > 0 &&
aPointerEvent.iType == TPointerEvent::EButton1Up )
{
- if( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+
+ // prevent handling events if SaveAllAttachments is in progress
+ TBool saveAllInProgress ( EFalse );
+ if( iAttachmentCommandHandler )
+ {
+ saveAllInProgress = iAttachmentCommandHandler->IsSaveAllAttachmentsInProgress( );
+ }
+
+ if( !saveAllInProgress && iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
{
iRichTextViewer->HandlePointerEventL( aPointerEvent );
ret = ETrue;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrconflictpopup.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrconflictpopup.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -29,6 +29,7 @@
#include <layoutmetadata.cdl.h>
#include "emailtrace.h"
+#include "cesmrcaluserutil.h"
// Unnamed namespace for local definitions
namespace{
@@ -43,7 +44,7 @@
const TInt KTextLineVariety( 5 );
const TInt KNumTitleLines( 1 );
-const TInt KNumLocationLines( 2 );
+const TInt KNumLocationLines( 1 );
/**
* Clips given text and allocates new buffer if needed.
@@ -117,7 +118,19 @@
return text;
}
-
+/**
+ * Judge is one CCalEntry is a all day event
+ * @param aEntry the entry be checked
+ * @return ETure if it is a all day event
+ */
+TBool IsAllDayEventL( CCalEntry& aEntry )
+ {
+ FUNC_LOG;
+ CESMRCalUserUtil* entryUtil = CESMRCalUserUtil::NewLC( aEntry );
+ TBool allDayEvent( entryUtil->IsAlldayEventL() );
+ CleanupStack::PopAndDestroy( entryUtil );
+ return allDayEvent;
+ }
}//namespace
// ======== MEMBER FUNCTIONS ========
@@ -193,7 +206,8 @@
{
User::Leave( KErrNotFound );
}
-
+ // Record the blank rows.
+ TInt blankRow = 0;
// Pointer descriptor for R_QTN_MEET_REQ_CONFLICT_UNNAMED
TPtrC unnamedTitle( KNullDesC );
@@ -226,6 +240,13 @@
startTime = entryArray[ 0 ]->StartTimeL().TimeLocalL();
endTime = entryArray[ 0 ]->EndTimeL().TimeLocalL();
+
+ //If the first entry is a all day event, it should be show as
+ //12:00Am - 11:59Pm, so we should subtract one min from end time.
+ if ( IsAllDayEventL( *entryArray[ 0 ] ) )
+ {
+ endTime -= TTimeIntervalMinutes( 1 );
+ }
}
HBufC* conflictLabel = StringLoader::LoadLC(
@@ -289,23 +310,63 @@
CleanupStack::PushL( locationBuf );
meetingLocation.Set( *locationBuf );
}
- strings->AppendL( meetingLocation );
+ if ( meetingLocation.Length() > 0 )
+ {
+ strings->AppendL( meetingLocation );
+ }
+ else
+ {
+ blankRow++ ;
+ }
+
}
else
{
+ blankRow++;
// Prepare location
locationBuf = ClipTextL(
- meetingLocation,
- KNumTitleLines + KNumLocationLines );
+ meetingLocation, KNumLocationLines );
if ( locationBuf )
{
CleanupStack::PushL( locationBuf );
meetingLocation.Set( *locationBuf );
}
- strings->AppendL( meetingLocation );
+ if ( meetingLocation.Length() > 0 )
+ {
+ strings->AppendL( meetingLocation );
+ }
+ else
+ {
+ blankRow++;
+ }
+ }
+ HBufC* otherconflictBuf = NULL ;
+ if( entryArray.Count() == 2)
+ {
+ otherconflictBuf = StringLoader::LoadLC(
+ R_MEET_REQ_CONFLICT_OTHERCONFLICT_SINGULAR_FORMAT,
+ entryArray.Count()-1,
+ env );
+ strings->AppendL( *otherconflictBuf );
+ }
+ else if ( entryArray.Count() > 2 )
+ {
+ otherconflictBuf = StringLoader::LoadLC(
+ R_MEET_REQ_CONFLICT_OTHERCONFLICT_FORMAT,
+ entryArray.Count()-1,
+ env );
+ strings->AppendL( *otherconflictBuf );
+ }
+ else
+ {
+ blankRow++;
+ }
+
+ while( blankRow )
+ {
strings->AppendL( KNullDesC() );
- }
-
+ blankRow-- ;
+ }
HBufC* displayString = StringLoader::LoadLC(
R_MEET_REQ_CONFLICT_TEXT_FORMAT,
*strings,
@@ -319,6 +380,10 @@
// Clean allocated buffers
CleanupStack::PopAndDestroy( displayString );
+ if ( otherconflictBuf )
+ {
+ CleanupStack::PopAndDestroy( otherconflictBuf );
+ }
if ( locationBuf )
{
CleanupStack::PopAndDestroy( locationBuf );
--- a/meetingrequest/mrgui/src/cesmrview.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrview.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -730,16 +730,10 @@
NMRLayoutManager::EMRLayoutMRNaviArrowRight );
TRect naviArrowRightRect( naviArrowRightLayoutRect.Rect() );
- // Right arrow needs to be moved left the amount of
- // possible toolbar width in landscape
- TInt scrollWidth( 0 );
- if( iScrollBar )
- {
- scrollWidth = iScrollBar->Rect().Width();
- }
-
- naviArrowRightRect.Move( scrollWidth, 0 );
-
+ // Right arrow needs to be moved right the amount of
+ // stripe width in landscape
+ naviArrowRightRect.Move( iStripeRect.Width(), 0 );
+
iNaviArrowRight->SetRect( naviArrowRightRect );
}
}
--- a/meetingrequest/mrgui/src/cesmrviewerdialog.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrviewerdialog.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -239,11 +239,6 @@
// we want in case of non-MR
iToolbar = CMRToolbar::NewL();
- TRect clientRect;
- AknLayoutUtils::LayoutMetricsRect(
- AknLayoutUtils::EMainPane,
- clientRect );
-
TBool responseReady(EFalse);
MESMRCalEntry* calEntry = iInfoProvider.EntryL();
MESMRMeetingRequestEntry* mrEntry = NULL;
@@ -255,8 +250,23 @@
// Change the status pane layout to remove navi pane
CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
- sp->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT);
+ // If open the MR viewer from Cmail side, the status pane
+ // is not visible, we need to show it in viewer dialog
+ if ( sp && !sp->IsVisible() )
+ {
+ sp->MakeVisible( ETrue );
+ }
+ // Change the type of statuspane to usual_flat.
+ if ( sp )
+ {
+ sp->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ }
}
+
+ TRect clientRect;
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EMainPane,
+ clientRect );
iESMRSendUI = CESMRSendUI::NewL(EESMRCmdSendAs);
@@ -432,6 +442,22 @@
ProcessCommandL(EESMRCmdMailNextMessage);
break;
}
+ case EStdKeyDelete:
+ case EStdKeyBackspace:
+ {
+ if( CCalenInterimUtils2::IsMeetingRequestL(
+ iInfoProvider.EntryL()->Entry() ) )
+ {
+ response = EKeyWasConsumed;
+ ProcessCommandL( EESMRCmdDeleteMR );
+ }
+ else
+ {
+ response = EKeyWasConsumed;
+ ProcessCommandL( EESMRCmdCalEntryUIDelete );
+ }
+ break;
+ }
default:
{
response = CAknDialog::OfferKeyEventL( aEvent, aType );
@@ -1235,13 +1261,35 @@
case EESMRCmdDeleteMR: // Fall through
case EESMRCmdCalEntryUIDelete:
{
- TBool okToDelete = ETrue;
+ TBool okToDelete( ETrue );
MESMRCalEntry* calEntry = iInfoProvider.EntryL();
- if ( calEntry->IsRecurrentEventL() )
+
+ if ( calEntry->IsRecurrentEventL() && calEntry->IsStoredL() )
{
- SetRecurrenceModRuleL(
- *calEntry,
- CESMRListQuery::EESMRDeleteThisOccurenceOrSeriesQuery );
+ if( CCalenInterimUtils2::IsMeetingRequestL( calEntry->Entry() ) )
+ {
+ // Static cast is safe here. We know for sure that entry is MR
+ MESMRMeetingRequestEntry* mrEntry =
+ static_cast<MESMRMeetingRequestEntry*>( calEntry );
+
+ if( mrEntry->IsOpenedFromMail() )
+ {
+ okToDelete = CESMRConfirmationQuery::ExecuteL(
+ CESMRConfirmationQuery::EESMRDeleteMR );
+ }
+ else
+ {
+ SetRecurrenceModRuleL(
+ *calEntry,
+ CESMRListQuery::EESMRDeleteThisOccurenceOrSeriesQuery );
+ }
+ }
+ else
+ {
+ SetRecurrenceModRuleL(
+ *calEntry,
+ CESMRListQuery::EESMRDeleteThisOccurenceOrSeriesQuery );
+ }
}
else
{
@@ -1892,6 +1940,9 @@
// Toolbar created, relayouting needed
SizeChanged();
+ // help the relayout of the viewer
+ iView->ListPane()->RecordFields();
+ DrawDeferred();
}
}
}
--- a/meetingrequest/mrgui/src/cmrfieldcontainer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrfieldcontainer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -361,8 +361,10 @@
// Remove existing focus
focusedField->SetOutlineFocusL( EFalse );
focusedField->SetFocus( EFalse );
+ focusedField->MoveToScreen( EFalse );
// Set focus to new field
+ visibleField->MoveToScreen( ETrue );
visibleField->SetOutlineFocusL( ETrue );
visibleField->SetFocus( ETrue );
@@ -554,7 +556,7 @@
// is done.
ScrollControlVisible( iFocusedFieldIndex );
}
-
+ SizeChanged();
DrawDeferred();
}
}
@@ -920,9 +922,11 @@
if ( field->IsVisible() )
{
- field->SetPosition( aTl );
-
- aTl.iY += field->Size().iHeight;
+ TPoint pos( field->Position() );
+ pos.iY = aTl.iY;
+ field->SetPosition( pos );
+
+ aTl.iY += field->Size().iHeight;
}
}
}
@@ -1064,6 +1068,23 @@
field->MoveToScreen( !iScrolling );
}
+// ---------------------------------------------------------------------------
+// CMRFieldContainer::RedrawField
+// ---------------------------------------------------------------------------
+//
+void CMRFieldContainer::RedrawField( CESMRField& aField )
+ {
+ FUNC_LOG;
+
+ // Record and redraw field only if it is not on screen
+ if ( !aField.HasOutlineFocus() )
+ {
+ aField.RecordField();
+ TRect rect( aField.Rect() );
+ rect.Move( iPosition.iX - rect.iTl.iX, 0 );
+ aField.DrawNow( rect );
+ }
+ }
// ---------------------------------------------------------------------------
// CMRFieldContainer::Draw
--- a/meetingrequest/mrgui/src/cmrlistpane.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrlistpane.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -875,12 +875,13 @@
TInt listTopY( listPaneRect.iTl.iY );
TInt listBottomY( listPaneRect.iBr.iY );
- if ( ( fieldBottomY > listBottomY ||
- fieldTopY < listTopY ) &&
+ if ( ( fieldTopY > listBottomY ||
+ fieldBottomY < listTopY ) &&
focusedFieldRect.Height() < listPaneRect.Height() )
{
hiddenFocus = ETrue;
}
+
}
return hiddenFocus;
}
--- a/meetingrequest/mrgui/src/cmrresponsedialogview.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrresponsedialogview.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -15,11 +15,16 @@
*
*/
#include "cmrresponsedialogview.h"
+#include "nmrcolormanager.h"
+#include "nmrlayoutmanager.h"
+
// System includes
#include <AknsDrawUtils.h>
#include <AknsBasicBackgroundControlContext.h>
#include <eikrted.h>
#include <AknDef.h>
+#include <AknUtils.h>
+#include <eiksbfrm.h>
// DEBUG
#include "emailtrace.h"
@@ -156,6 +161,11 @@
iEditor->SetSize( Rect().Size() );
iEditor->SetSkinBackgroundControlContextL( iBgContext );
iEditor->EnableCcpuSupportL(ETrue);
+ CEikScrollBarFrame* scrollBar = iEditor->CreateScrollBarFrameL();
+ scrollBar->SetScrollBarVisibilityL(
+ CEikScrollBarFrame::EOff,
+ CEikScrollBarFrame::EAuto );
+ iEditor->TextLayout()->RestrictScrollToTopsOfLines( EFalse );
}
// ---------------------------------------------------------------------------
@@ -166,10 +176,27 @@
{
FUNC_LOG;
CCoeControl::HandleResourceChange( aType );
+ TInt error = KErrNone;
- if ( aType == KEikDynamicLayoutVariantSwitch )
+ switch ( aType )
{
- iEditor->SetRect( Rect() );
+ case KAknsMessageSkinChange:
+ case KEikMessageColorSchemeChange:
+ {
+ TAknLayoutText editorLayoutText = NMRLayoutManager::GetLayoutText(
+ Rect(),
+ NMRLayoutManager::EMRTextLayoutMultiRowTextEditor );
+ TRAP( error, SetFontL( editorLayoutText.Font() ) );
+ if ( error != KErrNone )
+ {
+ iCoeEnv->HandleError( error );
+ }
+ break;
+ }
+ case KEikDynamicLayoutVariantSwitch:
+ {
+ iEditor->SetRect( Rect() );
+ }
}
}
@@ -179,18 +206,95 @@
//
void CESMRResponseDialogView::SizeChanged()
{
- if(iBgContext)
- {
- iBgContext->SetRect(Rect());
- if ( &Window() )
+ if(iBgContext)
+ {
+ iBgContext->SetRect(Rect());
+ if ( &Window() )
+ {
+ iBgContext->SetParentPos( PositionRelativeToScreen() );
+ }
+ }
+ if( iEditor )
+ {
+ TRect r = Rect();
+ TInt scrollbarWidth = iEditor->ScrollBarFrame()->
+ ScrollBarBreadth(CEikScrollBar::EVertical);
+ TInt editorWidth = r.Width() - scrollbarWidth;
+ TPoint upperLeftCorner = TPoint(0, 0);
+ iEditor->SetExtent(upperLeftCorner, TSize(editorWidth, r.Height()));
+
+ TAknLayoutText editorLayoutText = NMRLayoutManager::GetLayoutText(
+ r,
+ NMRLayoutManager::EMRTextLayoutMultiRowTextEditor );
+
+ TInt error = KErrNone;
+ TRAP( error, SetFontL( editorLayoutText.Font() ) );
+ if ( error != KErrNone )
{
- iBgContext->SetParentPos( PositionRelativeToScreen() );
+ iCoeEnv->HandleError( error );
}
- }
- if( iEditor )
- {
- iEditor->SetRect( Rect() );
- }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CESMRResponseDialogView::MinimumSize()
+// ---------------------------------------------------------------------------
+//
+TSize CESMRResponseDialogView::MinimumSize()
+ {
+ FUNC_LOG;
+ TRect rect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect );
+ return rect.Size();
}
+// ---------------------------------------------------------------------------
+// CESMRResponseDialogView::SetFontL()
+// ---------------------------------------------------------------------------
+//
+void CESMRResponseDialogView::SetFontL( const CFont* aFont )
+ {
+ FUNC_LOG;
+
+ TFontSpec fontSpec = aFont->FontSpecInTwips();
+
+ CParaFormat* paraFormat = CParaFormat::NewLC();
+ TParaFormatMask paraFormatMask;
+ paraFormat->iLineSpacingControl = CParaFormat::ELineSpacingExactlyInPixels;
+
+ paraFormatMask.SetAttrib( EAttLineSpacing );
+ paraFormat->iHorizontalAlignment = CParaFormat::ELeftAlign;
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ paraFormat->iHorizontalAlignment = CParaFormat::ERightAlign;
+ }
+ paraFormatMask.SetAttrib( EAttAlignment );
+
+ TCharFormat charFormat;
+ TCharFormatMask formatMask;
+ charFormat.iFontSpec = fontSpec;
+
+ formatMask.SetAttrib( EAttFontTypeface );
+ formatMask.SetAttrib( EAttFontHeight );
+ formatMask.SetAttrib( EAttFontPosture );
+ formatMask.SetAttrib( EAttFontStrokeWeight );
+ formatMask.SetAttrib( EAttFontHighlightColor );
+ formatMask.SetAttrib( EAttColor );
+
+ charFormat.iFontPresentation.iTextColor = NMRColorManager::Color(
+ NMRColorManager::EMRMainAreaTextColor );
+ charFormat.iFontPresentation.iHighlightColor =
+ NMRColorManager::Color( NMRColorManager::EMRCutCopyPasteHighlightColor );
+
+ CParaFormatLayer* paraFormatLayer =
+ CParaFormatLayer::NewL( paraFormat, paraFormatMask );
+ CleanupStack::PushL( paraFormatLayer );
+ CCharFormatLayer* charFormatLayer =
+ CCharFormatLayer::NewL( charFormat, formatMask );
+
+ iEditor->SetParaFormatLayer( paraFormatLayer );
+ CleanupStack::Pop( paraFormatLayer );
+ CleanupStack::PopAndDestroy( paraFormat );
+ iEditor->SetCharFormatLayer( charFormatLayer );
+ }
// end of file
--- a/meetingrequest/mricalviewer/src/cesmrmrinfoicalretriever.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmrmrinfoicalretriever.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -605,22 +605,6 @@
{
iConvertedEntry->SetPriorityL( iMRInfoObject->PriorityL() );
}
-
- if ( IsFieldSupported( iSupportedFields, MMRInfoObject::EESMRInfoFieldPrivacy ) )
- {
- if( iMRInfoObject->PrivacyL() == MMRInfoObject::EMRSensitivityPrivate )
- {
- iConvertedEntry->SetReplicationStatusL( CCalEntry::EPrivate );
- }
- else if( iMRInfoObject->PrivacyL() == MMRInfoObject::EMRSensitivityConfidential )
- {
- iConvertedEntry->SetReplicationStatusL( CCalEntry::ERestricted );
- }
- else
- {
- iConvertedEntry->SetReplicationStatusL( CCalEntry::EOpen );
- }
- }
}
// ---------------------------------------------------------------------------
--- a/meetingrequest/mrpolicy/mrentryresolver/data/policies/esmrsrforwardasmeetingrequestfrommail.rss Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrpolicy/mrentryresolver/data/policies/esmrsrforwardasmeetingrequestfrommail.rss Wed Oct 13 14:11:15 2010 +0300
@@ -67,6 +67,12 @@
},
ESMR_FIELD
{
+ field_id = EESMRFieldAllDayEvent;
+ field_type = EESMRFieldTypeDefault;
+ field_mode = EESMRFieldModeEdit;
+ },
+ ESMR_FIELD
+ {
field_id = EESMRFieldMeetingTime;
field_type = EESMRFieldTypeDefault;
field_mode = EESMRFieldModeView;
@@ -85,6 +91,18 @@
},
ESMR_FIELD
{
+ field_id = EESMRFieldAlarmTime;
+ field_type = EESMRFieldTypeDefault;
+ field_mode = EESMRFieldModeView;
+ },
+ ESMR_FIELD
+ {
+ field_id = EESMRFieldAlarmDate;
+ field_type = EESMRFieldTypeDefault;
+ field_mode = EESMRFieldModeView;
+ },
+ ESMR_FIELD
+ {
field_id = EESMRFieldLocation;
field_type = EESMRFieldTypeDefault;
field_mode = EESMRFieldModeView;
--- a/meetingrequest/mrservices/src/cesmrconflictchecker.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrservices/src/cesmrconflictchecker.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : ESMR conflict checker implementation
-* Version : %version: e002sa33#9 %
+* Version : %version: e002sa33#10.1.2 %
*
*/
@@ -22,6 +22,7 @@
#include "esmrhelper.h"
#include "esmrentryhelper.h"
#include "esmrinternaluid.h"
+#include "cesmrcaluserutil.h"
#include <calcommon.h>
#include <calinstance.h>
@@ -96,7 +97,7 @@
{
FUNC_LOG;
const CalCommon::TCalViewFilter instanceFilter =
- CalCommon::EIncludeAppts;
+ CalCommon::EIncludeAppts | CalCommon::EIncludeEvents;
TDateTime start = aStart.DateTime();
TDateTime end = aEnd.DateTime();
@@ -295,7 +296,8 @@
allCalenInstanceView[i]->FindInstanceL(
aInstances,
- CalCommon::EIncludeAppts,
+ CalCommon::EIncludeAppts |
+ CalCommon::EIncludeEvents ,
timeRange );
}
@@ -367,7 +369,7 @@
MoveInstancesL( tmpInstanceArray, aInstances );
if ( !aFindAllConflicts )
{
- break;
+ //break;
}
}
}
@@ -399,7 +401,7 @@
MoveInstancesL( tmpInstanceArray, aInstances );
if ( !aFindAllConflicts )
{
- break;
+ //break;
}
}
@@ -479,7 +481,7 @@
MoveInstancesL( tmpInstanceArray, aInstances );
if ( !aFindAllConflicts )
{
- break;
+ //break;
}
}
}
@@ -523,7 +525,7 @@
MoveInstancesL( tmpInstanceArray, aInstances );
if ( !aFindAllConflicts )
{
- break;
+ // break;
}
}
}
@@ -545,6 +547,50 @@
}
/**
+ * Judge is one CCalEntry is a all day event
+ * @param aEntry the entry be checked
+ * @return ETure if it is a all day event
+ */
+TBool IsAllDayEventL( const CCalEntry& aEntry )
+ {
+ FUNC_LOG;
+ // for judge all day event
+ CCalEntry* tmpEntry = ESMRHelper::CopyEntryLC(
+ aEntry,
+ aEntry.MethodL(),
+ ESMRHelper::ECopyFull );
+
+ CESMRCalUserUtil* entryUtil = CESMRCalUserUtil::NewLC( *tmpEntry );
+ TBool allDayEvent( entryUtil->IsAlldayEventL() );
+ CleanupStack::PopAndDestroy( entryUtil );
+ CleanupStack::PopAndDestroy( tmpEntry );
+
+ return allDayEvent;
+ }
+/**
+ * Get the first visible instance from the iterater.
+ * @param aIterater the handler of the iterater.
+ * @return the first instance
+ */
+CCalInstance* FirstInstanceL ( CCalInstanceIterator* aIterater)
+ {
+ FUNC_LOG;
+ CCalInstance* previous = aIterater->PreviousL();
+ while( previous )
+ {
+ CleanupStack::PushL( previous );
+ CleanupStack::PopAndDestroy( previous );
+ previous = aIterater->PreviousL();
+ }
+
+ CCalInstance* next = aIterater->NextL();
+ CleanupStack::PushL( next );
+ CleanupStack::PopAndDestroy( next );
+ previous = aIterater->PreviousL();
+ return previous;
+ }
+
+/**
* Finds conflict for recurrent entry
*/
void FindConflictsForRepeatingMeetingL(
@@ -562,38 +608,67 @@
CleanupStack::PushL( instance );
RCPointerArray< CCalInstance > tmpInstanceArray;
CleanupClosePushL( tmpInstanceArray );
+ CCalEntry& parent = instance->Entry();
+ CCalInstanceView* instanceView = aDb.InstanceViewL( aEntry );
- CCalEntry& parent = instance->Entry();
- CCalInstanceView* instanceView = aDb.InstanceViewL( parent );
+ // create the iterator for instances by current entry
CCalInstanceIterator* iterator = instanceView->FindInstanceByUidL(
- parent.UidL(),
- parent.StartTimeL() );
+ aEntry.UidL(),
+ aEntry.StartTimeL() );
+
CleanupStack::PushL( iterator );
CCalEntry* entry = ESMRHelper::CopyEntryLC(
parent,
parent.MethodL(),
ESMRHelper::ECopyFull );
-
- while ( iterator->HasMore() )
- {
- CCalInstance* next = iterator->NextL();
- CleanupStack::PushL( next );
- entry->SetStartAndEndTimeL( next->StartTimeL(), next->EndTimeL() );
- CleanupStack::PopAndDestroy( next );
- FindConflictsForEntryL( *entry,
- tmpInstanceArray,
- aDb );
-
- if ( tmpInstanceArray.Count() )
- {
- MoveInstancesL( tmpInstanceArray, aInstances );
-
- if ( !aFindAllConflicts )
- {
- break;
- }
- }
- }
+ // For CCalInstanceIterator class don't have any function on how to get current instance,
+ // handle the special situation for it.
+ if( iterator ->Count() == 1 )
+ {
+ entry->SetStartAndEndTimeL( aEntry.StartTimeL(), aEntry.EndTimeL() );
+
+ FindConflictsForEntryL( *entry,
+ tmpInstanceArray,
+ aDb );
+
+ if ( tmpInstanceArray.Count() )
+ {
+ MoveInstancesL( tmpInstanceArray, aInstances );
+ }
+ }
+ else
+ {
+ // For CCalInstanceIterator class don't have any function on how to get current instance,
+ // handle the first instance action when find conflict.
+ CCalInstance* previous = FirstInstanceL( iterator );
+ CleanupStack::PushL( previous );
+ entry->SetStartAndEndTimeL( previous->StartTimeL(), previous->EndTimeL() );
+ CleanupStack::PopAndDestroy( previous );
+ FindConflictsForEntryL( *entry, tmpInstanceArray, aDb );
+
+ if ( tmpInstanceArray.Count() )
+ {
+ MoveInstancesL( tmpInstanceArray, aInstances );
+ }
+ // does the normal find conflict action. From the second to the end.
+ while ( iterator->HasMore() )
+ {
+ CCalInstance* next = iterator->NextL();
+ CleanupStack::PushL( next );
+ entry->SetStartAndEndTimeL( next->StartTimeL(), next->EndTimeL() );
+
+ CleanupStack::PopAndDestroy( next );
+
+ FindConflictsForEntryL( *entry,
+ tmpInstanceArray,
+ aDb );
+
+ if ( tmpInstanceArray.Count() )
+ {
+ MoveInstancesL( tmpInstanceArray, aInstances );
+ }
+ }
+ }
CleanupStack::PopAndDestroy( entry );