Revision: 201015 RCL_3 PDK_3.0.i
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:23:35 +0300
branchRCL_3
changeset 9 0d28c1c5b6dd
parent 8 5586b4d2ec3e
child 11 2828b4d142c0
Revision: 201015 Kit: 201017
ccservices/cmsservices/cmscontactor/inc/cmsselectiondialog.h
ccservices/cmsservices/cmsengine/Server/inc/cmsserverasynccontact.h
contacts_plat/phonebook_2_common_ui_api/inc/MPbk2StartupMonitor.h
contacts_plat/virtual_phonebook_engine_api/inc/CVPbkPhoneNumberMatchStrategy.h
logsui/AppSrc/CLogsBaseView.cpp
logsui/EngineInc/CLogsEngine.h
phonebookengines/VirtualPhonebook/VPbkCntModel/inc/CViewBase.h
phonebookengines/VirtualPhonebook/VPbkEng/src/CVPbkContactFieldIterator.cpp
phonebookengines/VirtualPhonebook/VPbkSimStore/src/CRemoteStore.cpp
phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CMultipleReadCmd.h
phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CSharedViewArray.h
phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/src/CSharedViewArray.cpp
phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/src/CVPbkSimContactView.cpp
phonebookengines/VirtualPhonebook/VPbkVCardEng/inc/CVPbkVCardImporter.h
phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkVCardImporter.cpp
phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkVCardPropertyExporter.cpp
phonebookengines/VirtualPhonebook/inc/CVPbkSimContactView.h
phonebookengines/VirtualPhonebook/tsrc/MT_VPbkEng_StrCntAnalyzer/src/MT_VPbkEng_StrCntAnalyzer.cpp
phonebookengines/contactsmodel/cntplsql/inc/cntpplviewmanager.h
phonebookengines/contactsmodel/cntplsql/inc/persistencelayerimpl.h
phonebookengines/contactsmodel/cntplsql/inc/pltables.h
phonebookengines/contactsmodel/cntplsql/src/cntpplviewsession.cpp
phonebookengines/contactsmodel/cntplsql/src/cplcontactsfile.cpp
phonebookengines/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp
phonebookengines/contactsmodel/cntplsql/src/pplcontactitemmanager.cpp
phonebookengines/contactsmodel/cntsrv/inc/persistencelayer.h
phonebookengines/contactsmodel/cntsrv/src/CViewSubSessions.cpp
phonebookengines/contactsmodel/documentation/Building_contacts_tests.txt
phonebookengines/contactsmodel/documentation/CNTMODEL test code.rtf
phonebookengines/contactsmodel/documentation/contact_views.mdl
phonebookengines/contactsmodel/inc/CNTDB.H
phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/Documentation/issues.txt
phonebookengines/contactsmodel/tsrc/T_CntMatch.cpp
phonebookui/Phonebook2/Application/inc/CPbk2StartupMonitor.h
phonebookui/Phonebook2/Application/src/CPbk2StartupMonitor.cpp
phonebookui/Phonebook2/GroupExtension/inc/CPguGroupNameQueryDlg.h
phonebookui/Phonebook2/GroupExtension/src/CPguGroupNameQueryDlg.cpp
phonebookui/Phonebook2/MapExtension/inc/cpmapcmd.h
phonebookui/Phonebook2/MapExtension/src/cpmapcmd.cpp
phonebookui/Phonebook2/MapExtension/src/cpmapcontacteditorextension.cpp
phonebookui/Phonebook2/MapExtension/src/cpmapuiextensionplugin.cpp
phonebookui/Phonebook2/NamesListExtension/inc/CPbk2EcePresenceEngine.h
phonebookui/Phonebook2/NamesListExtension/src/CPbk2EcePresenceEngine.cpp
phonebookui/Phonebook2/NamesListExtension/src/CPbk2NlxOpenCcaCmd.cpp
phonebookui/Phonebook2/ServerApplication/src/CPbk2CommAddressSelectPhase.cpp
phonebookui/Phonebook2/ServerApplication/src/CPbk2ItemFetcher.cpp
phonebookui/Phonebook2/ServerApplication/src/CPbk2MultiAssignDataPhase.cpp
phonebookui/Phonebook2/UIControls/inc/CPbk2ContactEditorDlgImpl.h
phonebookui/Phonebook2/UIControls/inc/CPbk2FetchDlgPage.h
phonebookui/Phonebook2/UIControls/rss/Pbk2ContactEditorDlg.rss
phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorDlgImpl.cpp
phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlg.cpp
phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlgPage.cpp
phonebookui/Phonebook2/UIControls/src/CPbk2NamesListControl.cpp
phonebookui/Phonebook2/UIControls/src/CPbk2ThumbnailManager.cpp
phonebookui/Phonebook2/UIControls/src/cpbk2filteredviewstack.cpp
phonebookui/Phonebook2/UIControls/src/cpbk2predictiveviewstack.cpp
phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchercontacthandler.cpp
phonebookui/Phonebook2/ccapplication/ccamycardplugin/data/ccappmycardpluginrsc.rss
phonebookui/Phonebook2/ccapplication/ccamycardplugin/inc/ccappmycard.h
phonebookui/Phonebook2/ccapplication/ccamycardplugin/inc/ccappmycardcontainer.h
phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycard.cpp
phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycardcontainer.cpp
phonebookui/Phonebook2/ccapplication/ccapp/group/ccaapp.mmp
phonebookui/Phonebook2/ccapplication/ccapp/inc/ccapppluginloader.h
phonebookui/Phonebook2/ccapplication/ccapp/src/ccaappstatuspanehandler.cpp
phonebookui/Phonebook2/group/Pbk2NamesListExtension.mmp
phonebookui/Phonebook2/inc/CPbk2FetchDlg.h
phonebookui/Phonebook2/remotecontactlookup/engine/inc/cpbkxrclsearchresultdlg.h
phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrcleventscheduler.cpp
phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclresultinfodlg.cpp
phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclsearchresultdlg.cpp
phonebookui/Phonebook2/rom/Phonebook2Resources.iby
phonebookui/Phonebook2/tsrc/UT_AddFavoritiesVisibility/src/UT_AddFavoritiesVisibility.cpp
phonebookui/Speeddial/VPbkControlInc/speeddialprivate.h
phonebookui/Speeddial/VPbkControlSrc/speeddialprivate.cpp
phonebookui/Speeddial/inc/SpdiaContainer.h
phonebookui/Speeddial/speeddialgsplugin/inc/speeddialgsplugin.h
presencecache/presencecacheserver2/inc/presencecachebuddystore.h
presencecache/presencecacheutils/inc/presencecachebuddyinfo.h
--- a/ccservices/cmsservices/cmscontactor/inc/cmsselectiondialog.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/ccservices/cmsservices/cmscontactor/inc/cmsselectiondialog.h	Tue Apr 27 16:23:35 2010 +0300
@@ -56,7 +56,7 @@
 	 * @param aFocusIndex Focused item.
 	 * @return selected field item.
 	 */
-	const CCmsContactFieldItem* CCMSSelectionDialog::ExecuteLD
+	const CCmsContactFieldItem* ExecuteLD
 	( TInt aCbaResourceId, const TDesC& aHeading,
 			TInt aFocusIndex );
 
@@ -83,7 +83,7 @@
 	 * @since S60 v5.0
 	 * @return listbox model.
 	 */
-	MDesCArray* CCMSSelectionDialog::CreateListItemsL( );
+	MDesCArray* CreateListItemsL( );
 
 	/**
 	 * Helper function for making correct model data for listbox.
--- a/ccservices/cmsservices/cmsengine/Server/inc/cmsserverasynccontact.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/ccservices/cmsservices/cmsengine/Server/inc/cmsserverasynccontact.h	Tue Apr 27 16:23:35 2010 +0300
@@ -218,7 +218,7 @@
         * @return TCmsDefaultAttributeTypes CMS's default type.
         */
         CCmsContactFieldItem::TCmsDefaultAttributeTypes
-            CCmsServerAsyncContact::MatchTypesToInternalEnum(
+            MatchTypesToInternalEnum(
                 TVPbkDefaultType aDefaultType );
         
         /**
--- a/contacts_plat/phonebook_2_common_ui_api/inc/MPbk2StartupMonitor.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/contacts_plat/phonebook_2_common_ui_api/inc/MPbk2StartupMonitor.h	Tue Apr 27 16:23:35 2010 +0300
@@ -124,6 +124,29 @@
                 {}
     };
 
+/// Use this UID to access startup monitor extension 2.
+//  Used as a parameter to StartupMonitorExtension() method.
+const TUid KPbk2StartupMonitorExtensionUid = { 1 };
+
+/**
+ * This class is an extension to MPbk2StartupMonitor.
+ *
+ * @see MPbk2StartupMonitor
+ *
+ */
+class MPbk2StartupMonitorExtension
+    {
+    protected:  // Destructor
+        virtual ~MPbk2StartupMonitorExtension() { }
+
+    public:
+
+        /**
+         * Disable monitoring.
+         */
+        virtual void DisableMonitoring() = 0;
+    };
+
 #endif // MPBK2STARTUPMONITOR_H
 
 // End of File
--- a/contacts_plat/virtual_phonebook_engine_api/inc/CVPbkPhoneNumberMatchStrategy.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/contacts_plat/virtual_phonebook_engine_api/inc/CVPbkPhoneNumberMatchStrategy.h	Tue Apr 27 16:23:35 2010 +0300
@@ -119,6 +119,8 @@
 
             public: // data
                 ///Own: Maximum number of digits used in matching
+                // Set KBestMatchingPhoneNumbers from CNTDB.H 
+                // to use best matching strategy
                 TInt iMaxMatchDigits;
                 ///Ref: Array of contact store URIs to define match priority
                 const CVPbkContactStoreUriArray& iUriPriorities;
--- a/logsui/AppSrc/CLogsBaseView.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/logsui/AppSrc/CLogsBaseView.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -621,33 +621,35 @@
             event = CurrentModel()->At( EventListCurrent() );    
             eventData = event->LogsEventData();
             
-            // When log event is for VOIP, it needs to check if the contact link is valid.
-            // If it's invalid, refresh menubar in order to avoid "voice" and "video" items.
-            // Can't avoid flicking in this case, however, it's so rare to repro.
-            if ( eventData && eventData->VoIP() && SipUriAvailable( event ) ) 
+            if ( eventData )
                 {
                 TPtrC8 ptrContactLink( KNullDesC8 );
-
                 if ( KErrNone == eventData->GetContactLink( ptrContactLink ) )
-                    {   
+                    {
                     CLogsCntLinkChecker* contactCheckerPtr = Engine()->CntLinkCheckerL();
-                                         
                     if ( !contactCheckerPtr->IsCntLinkValidSync( ptrContactLink ) )
                         {
                         iIsCheckedCntLinkInvaild = ETrue;
-                        if ( MenuBar()->IsDisplayed() )
+                        }
+                    }
+                // When log event is for VOIP, it needs to check if the contact link is valid.
+                // If it's invalid, refresh menubar in order to avoid "voice" and "video" items.
+                // Can't avoid flicking in this case, however, it's so rare to repro.
+                if ( eventData->VoIP() && SipUriAvailable( event ) 
+                       && iIsCheckedCntLinkInvaild )
+                    {
+                    if ( MenuBar()->IsDisplayed() )
+                        {
+                        MenuBar()->StopDisplayingMenuBar();
+        
+                        if ( CurrentMenuType() == CEikMenuBar::EMenuContext )
                             {
-                            MenuBar()->StopDisplayingMenuBar();
-            
-                            if ( CurrentMenuType() == CEikMenuBar::EMenuContext )
-                                {
-                                MenuBar()->TryDisplayContextMenuBarL();
-                                }
-                                else
-                                {
-                                MenuBar()->TryDisplayMenuBarL();
-                                }               
-                            }   
+                            MenuBar()->TryDisplayContextMenuBarL();
+                            }
+                            else
+                            {
+                            MenuBar()->TryDisplayMenuBarL();
+                            }
                         }
                     }
                 }
@@ -1740,6 +1742,11 @@
             contactCheckerPtr->ConfigureL( readerConfig );
             CleanupStack::PopAndDestroy();      //readerConfig
             contactCheckerPtr->StartL();
+            
+            if ( !MenuBar()->ItemSpecificCommandsEnabled() )
+                {
+                iIsCheckedCntLinkInvaild = !contactCheckerPtr->IsCntLinkValidSync( tempPtr );
+                }
             }
         }
     
@@ -2259,7 +2266,7 @@
         
         //Refresh contents in MLogsEventGetter. Otherwise it contains wrong data of last 
         //event read from db done in background during execution of RunLD()
-        //aEvent = CurrentModel()->At( iEventListCurrent );
+        aEvent = CurrentModel()->At( iEventListCurrent );
         
         switch( queryAction )
         	{
--- a/logsui/EngineInc/CLogsEngine.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/logsui/EngineInc/CLogsEngine.h	Tue Apr 27 16:23:35 2010 +0300
@@ -227,7 +227,7 @@
          *
          * @return strings used by Log database
 		 */
-        IMPORT_C TLogsEventStrings CLogsEngine::LogDbStrings();
+        IMPORT_C TLogsEventStrings LogDbStrings();
         
 		/**
 		 * Returns reference to CLogClient. 
--- a/phonebookengines/VirtualPhonebook/VPbkCntModel/inc/CViewBase.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkCntModel/inc/CViewBase.h	Tue Apr 27 16:23:35 2010 +0300
@@ -49,7 +49,7 @@
                                 public MParentViewForFiltering,
                                 public MVPbkContactViewFiltering,
                                 public MVPbkContactStoreObserver,
-                                protected MContactViewObserver,
+                                public MContactViewObserver,
                                 protected MCustomContactViewObserver
     {
     public: // Destructor
--- a/phonebookengines/VirtualPhonebook/VPbkEng/src/CVPbkContactFieldIterator.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkEng/src/CVPbkContactFieldIterator.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -207,7 +207,9 @@
 CStoreFieldByTypeIterator::CStoreFieldByTypeIterator(
         const MVPbkFieldType& aFieldType,
         MVPbkStoreContactFieldCollection& aFields )
-    :   CFieldByTypeIterator( aFieldType, aFields )
+    :   CFieldByTypeIterator<
+            MVPbkStoreContactFieldCollection,
+            MVPbkStoreContactField>( aFieldType, aFields )
     {
     }
 
@@ -229,7 +231,10 @@
 CBaseFieldByTypeIterator::CBaseFieldByTypeIterator(
         const MVPbkFieldType& aFieldType,
         const MVPbkBaseContactFieldCollection& aFields )
-    :   CFieldByTypeIterator( aFieldType, aFields )
+    :   CFieldByTypeIterator<
+            const MVPbkBaseContactFieldCollection,
+            const MVPbkBaseContactField>( aFieldType, aFields )
+
     {
     }
 
@@ -251,7 +256,9 @@
 CBaseFieldByTypeListIterator::CBaseFieldByTypeListIterator(
         const MVPbkFieldTypeList& aFieldTypeList,
         const MVPbkBaseContactFieldCollection& aFields )
-    :   CFieldByTypeListIterator( aFieldTypeList, aFields )
+        :   CFieldByTypeListIterator<
+            const MVPbkBaseContactFieldCollection,
+            const MVPbkBaseContactField>( aFieldTypeList, aFields )
     {
     }
 
--- a/phonebookengines/VirtualPhonebook/VPbkSimStore/src/CRemoteStore.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkSimStore/src/CRemoteStore.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -761,8 +761,8 @@
         CVPbkAsyncObjectCallback<MVPbkSimStoreObserver>* callback =
                 VPbkEngUtils::CreateAsyncObjectCallbackLC(
                     *this, 
-                    CRemoteStore::DoOpenL, 
-                    CRemoteStore::DoOpenError, 
+                    &CRemoteStore::DoOpenL, 
+                    &CRemoteStore::DoOpenError, 
                     aObserver);
         iAsyncOpenOp->CallbackL( callback );
         CleanupStack::Pop( callback );
--- a/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CMultipleReadCmd.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CMultipleReadCmd.h	Tue Apr 27 16:23:35 2010 +0300
@@ -124,7 +124,7 @@
         /**
         * C++ constructor.
         */
-        CMultipleReadCmd::CMultipleReadCmd( CBasicStore& aBasicStore, 
+        CMultipleReadCmd( CBasicStore& aBasicStore, 
                 TInt& aIndexToRead );
             
         /**
--- a/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CSharedViewArray.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CSharedViewArray.h	Tue Apr 27 16:23:35 2010 +0300
@@ -98,7 +98,10 @@
         */
         CSharedViewArray( TViewDestructionPolicy aDestructionPolicy );
         /// Returns the owner or NULL
-        CSharedViewOwner* FindOwner( const TDesC& aViewName );
+        CSharedViewOwner* FindOwner( 
+               const RVPbkSimFieldTypeArray& aSortOrder,
+               TVPbkSimViewConstructionPolicy aConstructionPolicy,
+               const TDesC& aViewName );
         
     private:    // Data
         /// Own: defines how views are destroyed
--- a/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/src/CSharedViewArray.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/src/CSharedViewArray.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -67,7 +67,7 @@
         TVPbkSimViewConstructionPolicy aConstructionPolicy, 
         MVPbkSimCntStore& aParentStore, const TDesC& aViewName )
     {
-    CSharedViewOwner* viewOwner = FindOwner( aViewName );
+    CSharedViewOwner* viewOwner = FindOwner( aSortOrder, aConstructionPolicy, aViewName );
     
     if ( !viewOwner )
         {
@@ -90,7 +90,14 @@
 //        
 void CSharedViewArray::RemoveHandle( CViewHandle& aHandle )
     {
-    CSharedViewOwner* viewOwner = FindOwner( aHandle.SharedView().Name() );
+    CSharedViewOwner* viewOwner = NULL;
+    for ( TInt i=0; i<iSharedViews.Count()&&!viewOwner; i++ )
+        {
+       if ( &iSharedViews[i]->View() == &aHandle.SharedView() )
+            {
+            viewOwner = iSharedViews[i];
+            }
+        }
     if ( viewOwner )
         {
         viewOwner->RemoveHandle( aHandle );
@@ -108,13 +115,16 @@
 // CSharedViewArray::FindOwner
 // -----------------------------------------------------------------------------
 //        
-CSharedViewOwner* CSharedViewArray::FindOwner( const TDesC& aViewName )
+CSharedViewOwner* CSharedViewArray::FindOwner( 
+       const RVPbkSimFieldTypeArray& aSortOrder,
+       TVPbkSimViewConstructionPolicy aConstructionPolicy,
+       const TDesC& aViewName )
     {
     CSharedViewOwner* viewOwner = NULL;
     const TInt count = iSharedViews.Count();
     for ( TInt i = 0; i < count && !viewOwner; ++i )
         {
-        if ( iSharedViews[i]->View().Name().CompareC( aViewName ) == 0 )
+        if ( iSharedViews[i]->View().IsMatch( aSortOrder, aConstructionPolicy, aViewName ) )
             {
             viewOwner = iSharedViews[i];
             }
--- a/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/src/CVPbkSimContactView.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/src/CVPbkSimContactView.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -1136,4 +1136,40 @@
     // Don't continue idle i.e return false value
     return 0;
     }
+
+// --------------------------------------------------------------------------
+// CVPbkSimContactView::IsMatch
+// --------------------------------------------------------------------------
+//
+TBool CVPbkSimContactView::IsMatch( 
+       const RVPbkSimFieldTypeArray& aSortOrder,
+       TVPbkSimViewConstructionPolicy aConstructionPolicy,
+       const TDesC& aViewName )
+    {
+    TBool result = EFalse;
+    if ( ( iViewName->CompareC( aViewName ) == 0 ) && 
+           ( aConstructionPolicy == iConstructionPolicy ) )
+       {
+       if ( EVPbkUnsortedSimView == aConstructionPolicy )
+           {
+           result = ETrue;
+           }
+       else if ( iSortOrder.Count() == aSortOrder.Count() )
+           {
+           result = ETrue;
+           for ( TInt i=0; i<aSortOrder.Count(); i++ )
+              {
+              if ( aSortOrder[i] != iSortOrder[i] )
+                  {
+                  result = EFalse;
+                  break;
+                  }
+              }
+           }
+       }
+    
+    return result;
+    }
+
+
 //  End of File  
--- a/phonebookengines/VirtualPhonebook/VPbkVCardEng/inc/CVPbkVCardImporter.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkVCardEng/inc/CVPbkVCardImporter.h	Tue Apr 27 16:23:35 2010 +0300
@@ -119,6 +119,7 @@
             
         void IssueRequest();
         CParserProperty* NextProperty();
+        CParserProperty* GetCurrentProperty();
         void ParseNextL();
         TInt FindContactFieldL( 
                 MVPbkStoreContact* aContact, 
--- a/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkVCardImporter.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkVCardImporter.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -43,6 +43,8 @@
 #include <VPbkStoreUriLiterals.h>
 _LIT8( KPropXSelf, "X-SELF" );
 _LIT8( KPropXCategories, "X-CATEGORIES");
+_LIT8( KPropXIMPP, "X-IMPP");
+_LIT(KColon, ":");
 
 CVPbkVCardImporter* CVPbkVCardImporter::NewL(
             RPointerArray<MVPbkStoreContact>& aImportedContacts,
@@ -203,6 +205,19 @@
     iObserver = &aObserver;
     }
 
+CParserProperty* CVPbkVCardImporter::GetCurrentProperty()
+    {
+    // Get current property from parser array
+    CParserProperty* property = NULL;
+    TInt elementCount = iParser->ArrayOfProperties( EFalse )->Count();
+    if ( iArrayElementIndex < elementCount ) 
+        {        
+        property = 
+            iParser->ArrayOfProperties( EFalse )->At( iArrayElementIndex );
+        }
+    return property;
+    }
+
 CParserProperty* CVPbkVCardImporter::NextProperty()
     {
     // Get next property from parser array
@@ -331,7 +346,19 @@
          aData.Uid() == TUid::Uid( KVersitPropertyCDesCArrayUid ) )
         {
         const TDesC& value = converter.GetDesCData( aData );
-        SaveL( aData, value );
+        TInt pos = value.Find(KColon);
+        if( 0 == pos && 0 == GetCurrentProperty()->Name().Compare(KPropXIMPP()) )
+            {
+            // If the service name is NULL and it's a IMPP field, don't save the data.
+            // e.g.:
+            // (1) If the value is YAHOO:peterpan@yahoo.com, YAHOO is the service name
+            // (2) If the value is :peterpan@yahoo.com, the service name is NULL
+            isSaved = EFalse;
+            }
+        else
+            {
+            SaveL( aData, value );
+            }
         }
     else if ( aData.Uid() == TUid::Uid( KVersitPropertyBinaryUid ) )
         {
--- a/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkVCardPropertyExporter.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkVCardPropertyExporter.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -732,29 +732,32 @@
     {
     MVPbkStoreContact* tempContact = const_cast<MVPbkStoreContact*>(iContact);
     if( tempContact )
-        {	
+        {
         MVPbkStoreContact2* tempContact2 = 	reinterpret_cast<MVPbkStoreContact2*>
             (tempContact->StoreContactExtension (KMVPbkStoreContactExtension2Uid) );	    
         if(tempContact2)
             {
             MVPbkStoreContactProperties* propreties = tempContact2->PropertiesL();
-            CleanupDeletePushL(propreties);
-            
-            // Convert the last_modified field defined in Contact Model database 
-            // to REV (Revision) field in vCard Specification 2.1
-            CParserPropertyValueDateTime* valueDateTime = 
-            		CreateDateTimePropertyL(
-                		propreties->LastModifiedL(), 
-                		TVersitDateTime::EIsUTC ); 
-            CleanupStack::PopAndDestroy(propreties);
-            
-            CleanupStack::PushL(valueDateTime);
-            CParserProperty* property = 
-            		CParserGroupedProperty::NewL(*valueDateTime, KREV, NULL, NULL);	
-            
-            CleanupStack::PushL( property );            
-            iParser->AddPropertyL(property); //takes ownership
-            CleanupStack::Pop(2);//valueDateTime and property
+            if( propreties )
+                {
+                CleanupDeletePushL(propreties);
+
+                // Convert the last_modified field defined in Contact Model database 
+                // to REV (Revision) field in vCard Specification 2.1
+                CParserPropertyValueDateTime* valueDateTime =
+                        CreateDateTimePropertyL(
+                            propreties->LastModifiedL(),
+                            TVersitDateTime::EIsUTC );
+                CleanupStack::PopAndDestroy(propreties);
+                
+                CleanupStack::PushL(valueDateTime);
+                CParserProperty* property =
+                        CParserGroupedProperty::NewL(*valueDateTime, KREV, NULL, NULL);
+                
+                CleanupStack::PushL( property );
+                iParser->AddPropertyL(property); //takes ownership
+                CleanupStack::Pop(2);//valueDateTime and property
+                }
             }
         }
     }	
--- a/phonebookengines/VirtualPhonebook/inc/CVPbkSimContactView.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/inc/CVPbkSimContactView.h	Tue Apr 27 16:23:35 2010 +0300
@@ -173,6 +173,12 @@
                 const TViewContact& aRight );
         static TInt IdleSortCallback( TAny* aThis );
         
+    public:
+        TBool IsMatch( 
+               const RVPbkSimFieldTypeArray& aSortOrder,
+               TVPbkSimViewConstructionPolicy aConstructionPolicy,
+               const TDesC& aViewName );
+        
     private: // Data
         /// Own: The name of view that is given by the client
         HBufC* iViewName;
--- a/phonebookengines/VirtualPhonebook/tsrc/MT_VPbkEng_StrCntAnalyzer/src/MT_VPbkEng_StrCntAnalyzer.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/tsrc/MT_VPbkEng_StrCntAnalyzer/src/MT_VPbkEng_StrCntAnalyzer.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -497,10 +497,59 @@
         // declaration in front of the method name, e.g. 
         // CMT_VPbkEng_StrCntAnalyzer::PrintTest. Otherwise the compiler
         // gives errors.
-#include "MT_VPbkEng_StrCntAnalyzertesttable.cpp"                                
-        // Example how to use OOM functionality
-        //OOM_ENTRY( "Loop test with OOM", CMT_VPbkEng_StrCntAnalyzer::LoopTest, ETrue, 2, 3),
-        //OOM_FUNCENTRY( CMT_VPbkEng_StrCntAnalyzer::PrintTest, ETrue, 1, 3 ),
+        //Commented for raptor build
+        //#include "MT_VPbkEng_StrCntAnalyzertesttable.cpp"    
+
+        ENTRY("HasFieldL","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestHasField,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("HasFieldL CommAction","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestHasFieldCA,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeSupportedL","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeSupported,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeSupportedL CommAction","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeSupportedCA,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeIncludedL true","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeIncludedTL,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeIncludedL false","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeIncludedFL,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeIncludedL false","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeIncludedFLCA,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeIncludedL2 true","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeIncludedTL2,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeIncludedL2 flase","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeIncludedFL2,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
+        ENTRY("IsFieldTypeIncludedL2 flase","CMT_VPbkEng_StrCntAnalyzer",
+        	CMT_VPbkEng_StrCntAnalyzer::Setup,
+        	CMT_VPbkEng_StrCntAnalyzer::TestIsFieldTypeIncludedFL2CA,
+        	CMT_VPbkEng_StrCntAnalyzer::Teardown),
+        
         };
 
     // Verify that case number is valid
--- a/phonebookengines/contactsmodel/cntplsql/inc/cntpplviewmanager.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntplsql/inc/cntpplviewmanager.h	Tue Apr 27 16:23:35 2010 +0300
@@ -77,7 +77,8 @@
 	CCntSqlStatement* 		iSelectFullFieldsStmt;
 	};
 
-class NONSHARED CCntPplViewSession : public CTimer
+class NONSHARED CCntPplViewSession: public CTimer,
+    public MLplSqlDatabaseObserver
 	{
 public:	
 	static CCntPplViewSession* NewL(CPplContactsFile& aContactsFile, const CLplContactProperties& aContactProperties, CCntSqlStatement& aSelectAllFields, TInt aViewId, const CContactTextDef& aTextDef, TContactViewPreferences aViewPrefs);
@@ -94,6 +95,9 @@
 	
 	static void  TextFieldL(RSqlStatement& aSqlStatement, const CCntSqlStatement& aCntSqlStmt, const CContactTemplate& aSystemTemplate, TFieldType aFieldType, TDes& aText);
 	
+	// From MLplSqlDatabaseObserver
+    void OnCloseL(); 
+	
 private:
 	void ConstructL(const CContactTextDef& aTextDef);
 	CCntPplViewSession(CPplContactsFile& aContactsFile, const CLplContactProperties& aContactProperties, CCntSqlStatement& aSelectAllFields, TInt aViewId, TContactViewPreferences aViewPrefs);
@@ -121,11 +125,13 @@
 	
 	TContactViewPreferences iViewPrefs;
 	
-	CContactTextDef*		iTextDef;			
-	CCntSqlStatement*		iCntSqlStatement;
-	RSqlStatement*			iRSqlStatement;
-	RSqlStatement*			iCachedSqlStatement;
-	TBool 					iIsFastAccessFieldsOnly;
+	CContactTextDef*        iTextDef;
+    CCntSqlStatement*       iCntSqlStatement;
+    RSqlStatement           iRSqlStatement;
+    TBool                   iRSqlStatementReady;
+    RSqlStatement           iCachedSqlStatement;
+    TBool                   iCachedSqlStatementReady;
+    TBool                   iIsFastAccessFieldsOnly;
 	};
 	
 	
--- a/phonebookengines/contactsmodel/cntplsql/inc/persistencelayerimpl.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntplsql/inc/persistencelayerimpl.h	Tue Apr 27 16:23:35 2010 +0300
@@ -75,6 +75,9 @@
 	inline TBool IsTransactionActive() const;
 
 	void NotifyObserver() const;
+	
+    void AddSqlDBObserverL( MLplSqlDatabaseObserver& aSqlDatabaseObserver );
+    void RemoveSqlDBObserverL( MLplSqlDatabaseObserver& aSqlDatabaseObserver );
 
 private: // General methods used to implement all interfaces.
 	CPplContactsFile(CLplContactProperties& aProps, MContactDbObserver* aObserver);
@@ -102,6 +105,9 @@
 	
 	RPplIccContactStore iIccContactStore; //owned
 	HBufC8* iConfigureStr;
+	
+	// The array of observers which are monitoring RSqlDatabase.
+    RPointerArray<MLplSqlDatabaseObserver> iSqlDatabaseObservers;
 	};
 
 
--- a/phonebookengines/contactsmodel/cntplsql/inc/pltables.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntplsql/inc/pltables.h	Tue Apr 27 16:23:35 2010 +0300
@@ -224,6 +224,7 @@
 	void CreateTableL();
 
 	CContactIdArray* MatchPhoneNumberL(const TDesC& aNumber, const TInt aMatchLengthFromRight);
+	CContactIdArray* BestMatchingPhoneNumberL(const TDesC& aNumber);
 	CContactIdArray* MatchEmailAddressL(const TDesC& aEmailAddr);
 	CContactIdArray* MatchSipAddressL(const TDesC& aSipAddr);
 
--- a/phonebookengines/contactsmodel/cntplsql/src/cntpplviewsession.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntplsql/src/cntpplviewsession.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -47,7 +47,9 @@
 	iContactProperties(aContactProperties),
     iContactsFile(aContactsFile),
 	iSqlSmtSelectAllFieldsById(aSelectAllFields),
-	iViewPrefs(aViewPrefs)
+	iViewPrefs(aViewPrefs),
+	iRSqlStatementReady(EFalse),
+	iCachedSqlStatementReady(EFalse)
 	{
 	CActiveScheduler::Add(this);
 	}
@@ -59,18 +61,18 @@
 CCntPplViewSession::~CCntPplViewSession()
 	{
 	Deque();
-	
-	if(iRSqlStatement)
-		{
-		iRSqlStatement->Close();
-		delete iRSqlStatement;
-		}
-	
-	if(iCachedSqlStatement)
-		{
-		iCachedSqlStatement->Close();
-		delete iCachedSqlStatement;
-		}
+	iContactsFile.RemoveSqlDBObserverL( *this );
+    if ( iRSqlStatementReady )
+        {
+        iRSqlStatement.Close();
+        iRSqlStatementReady = EFalse;
+        }
+
+    if ( iCachedSqlStatementReady )
+        {
+        iCachedSqlStatement.Close();
+        iCachedSqlStatementReady = EFalse;
+        }
 	
 	delete iCntSqlStatement;
 	delete iTextDef;
@@ -85,7 +87,8 @@
 	//Constructing iCntSqlStatement, iTextDef, and iIsFastAccessFieldsOnly
 	//by simply call ChangeSortOrderL
 	CTimer::ConstructL();
-	ChangeSortOrderL(aTextDef);
+    iContactsFile.AddSqlDBObserverL( *this );
+    ChangeSortOrderL( aTextDef );
 	}	
 
 	
@@ -165,20 +168,17 @@
 		User::Leave(KErrInUse);
 		}
 	
-	if(iRSqlStatement)
-		{
-		iRSqlStatement->Close();
-		delete iRSqlStatement;
-		iRSqlStatement = NULL;
-		}
-	
-	//Create a new sqlstatment to start a iteration	
-	iRSqlStatement = new (ELeave) RSqlStatement();
-	
+	if ( iRSqlStatementReady )
+        {
+        iRSqlStatement.Close();
+        iRSqlStatementReady = EFalse;
+        }
+		
 	// we don't need condition for iterating database.
 	iCntSqlStatement->ClearCondition();
 	
-	iRSqlStatement->PrepareL(iContactsFile.NamedDatabase(), iCntSqlStatement->SqlStringL());
+	iRSqlStatement.PrepareL(iContactsFile.NamedDatabase(), iCntSqlStatement->SqlStringL());
+	iRSqlStatementReady = ETrue;
 	}
 
 	
@@ -186,14 +186,13 @@
 Stop iteration by releasing iteration sql statement.
 */
 void CCntPplViewSession::EndIterate()
-	{
-	if(iRSqlStatement)
-		{
-		iRSqlStatement->Close();
-		delete iRSqlStatement;
-		iRSqlStatement = NULL;
-		}
-	}
+    {
+    if ( iRSqlStatementReady )
+        {
+        iRSqlStatement.Close();
+        iRSqlStatementReady = EFalse;
+        }
+    }
 
 	
 /**
@@ -203,13 +202,13 @@
 */
 CViewContact* CCntPplViewSession::NextItemL(TContactViewPreferences aViewPrefs)
 	{
-	if(!iRSqlStatement)
+	if(!iRSqlStatementReady)
 		{
 		//Iteration has not started
 		BeginIterateL();	
 		}
 	
-	return CreateViewItemL(*iRSqlStatement, *iCntSqlStatement, aViewPrefs);
+	return CreateViewItemL(iRSqlStatement, *iCntSqlStatement, aViewPrefs);
 	}
 
 	
@@ -250,24 +249,24 @@
     	User::Leave(KErrInUse);
     	}
     
-	if(!iCachedSqlStatement)
+	if ( !iCachedSqlStatementReady )
 		{
 		//iCacheSqlStatement is just for ItemAt while iRSqlStatement is used for iteration 
 		//and maintained by BeginIterateL and EndIterateL.
     	iCntSqlStatement->SetConditionL(KSelectCondition_SearchForContactId()); 
 		
 		//Create a new sqlstatment and cache its Prepare statement.	
-		iCachedSqlStatement = new (ELeave) RSqlStatement();
-		iCachedSqlStatement->PrepareL(iContactsFile.NamedDatabase(),  iCntSqlStatement->SqlStringL());
+		iCachedSqlStatement.PrepareL(iContactsFile.NamedDatabase(),  iCntSqlStatement->SqlStringL());
+		iCachedSqlStatementReady = ETrue;
 		}
 		
-	User::LeaveIfError(iCachedSqlStatement->BindInt(KFirstIndex, aContactId)); //Bind item id into the condition.	
+	User::LeaveIfError(iCachedSqlStatement.BindInt(KFirstIndex, aContactId)); //Bind item id into the condition.	
 
-	CViewContact* viewContact = CreateViewItemL(*iCachedSqlStatement, *iCntSqlStatement, iViewPrefs);
+	CViewContact* viewContact = CreateViewItemL(iCachedSqlStatement, *iCntSqlStatement, iViewPrefs);
 	
 	// Adding this to the cleanup stack, because coverity recons that "iCachedSqlStatement->Reset();" can leave, and it's probably right
 	CleanupStack::PushL(viewContact);
-	iCachedSqlStatement->Reset();
+	iCachedSqlStatement.Reset();
 
 	// Pop it back off the cleanup stack, and hand over ownership
 	CleanupStack::Pop(viewContact);
@@ -280,12 +279,11 @@
 */
 void CCntPplViewSession::CleanupCachedPrepareStatement()
     {
-	if(iCachedSqlStatement)
-		{
-		iCachedSqlStatement->Close();
-		delete iCachedSqlStatement;
-		iCachedSqlStatement = NULL;
-		}
+    if ( iCachedSqlStatementReady )
+        {
+        iCachedSqlStatement.Close();
+        iCachedSqlStatementReady = EFalse;
+        }
     }
 
 /**
@@ -293,9 +291,9 @@
 during the time interval defined by KCachedPrepareTimeOut.
 */
 void CCntPplViewSession::RunL()
-	{
-	CleanupCachedPrepareStatement();
-	}
+    {
+    CleanupCachedPrepareStatement();
+    }
 	
 	
 /**
@@ -727,3 +725,25 @@
     }
 
 	
+/**
+ * Close the resource which is running and depends on RSqlDatabase 
+ * that will be closed in CPplContactsFile.
+ */
+void CCntPplViewSession::OnCloseL()
+    {
+
+    if ( iRSqlStatementReady )
+        {
+        iRSqlStatement.Close();
+        iRSqlStatementReady = EFalse;
+        }
+
+    if ( iCachedSqlStatementReady )
+        {
+        iCachedSqlStatement.Close();
+        iCachedSqlStatementReady = EFalse;
+        }
+
+    }
+
+
--- a/phonebookengines/contactsmodel/cntplsql/src/cplcontactsfile.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntplsql/src/cplcontactsfile.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -105,6 +105,7 @@
   	Close();
 	delete iItemManager;
 	delete iConfigureStr;
+	iSqlDatabaseObservers.Reset();
 	}
 
 
@@ -340,7 +341,13 @@
 Close the database.
 */
 void CPplContactsFile::Close(TBool aNotify)
-	{	 		
+	{	 	
+	// Close the resource which depends on iDatabase before it will be closed.
+    for (TInt i = 0; i < iSqlDatabaseObservers.Count(); i++ )
+        {
+        iSqlDatabaseObservers[i]->OnCloseL();
+        }
+
   	iDatabase.Close(); 
   	iFileIsOpen = EFalse;
   
@@ -437,3 +444,36 @@
 	return BaflUtils::FileExists(iLocalFs, fileName);
 	}
 
+
+/**
+ * Add an observer for monitoring RSqlDatabase.
+ * 
+ * @param  aSqlDatabaseObserver The observer for monitoring RSqlDatabase.
+ * 
+ * @return None 
+ */
+void CPplContactsFile::AddSqlDBObserverL(
+    MLplSqlDatabaseObserver& aSqlDatabaseObserver )
+    {
+    iSqlDatabaseObservers.AppendL( &aSqlDatabaseObserver );
+    }
+
+
+/**
+ * Remove an RSqlDatabase observer.
+ * 
+ * @param  aSqlDatabaseObserver The observer is to be removed.
+ * 
+ * @return None
+ */
+void CPplContactsFile::RemoveSqlDBObserverL(
+    MLplSqlDatabaseObserver& aSqlDatabaseObserver )
+    {
+    TInt id = iSqlDatabaseObservers.Find( &aSqlDatabaseObserver );
+    if ( id != KErrNotFound )
+        {
+        iSqlDatabaseObservers.Remove( id );
+        }
+    }
+
+
--- a/phonebookengines/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -694,79 +694,154 @@
 @return Array of contact IDs which are candidate matches.
 */
 CContactIdArray* CPplCommAddrTable::MatchPhoneNumberL(const TDesC& aNumber, const TInt aMatchLengthFromRight)
-	{
-	CContactIdArray* phoneMatchArray = CContactIdArray::NewLC();
+    {
+    CContactIdArray* phoneMatchArray = CContactIdArray::NewLC();
+
+    TInt numLowerDigits = aMatchLengthFromRight;
+    TInt numUpperDigits = 0;
 
-	TInt numLowerDigits = aMatchLengthFromRight;
-	TInt numUpperDigits = 0;
+    if(numLowerDigits > KLowerSevenDigits)
+        {
+        // New style matching.
+        numLowerDigits = KLowerSevenDigits;
+        numUpperDigits = aMatchLengthFromRight - KLowerSevenDigits;
+        }
 
-	if(numLowerDigits > KLowerSevenDigits)
-		{
-		// New style matching.
-		numLowerDigits = KLowerSevenDigits;
-		numUpperDigits = aMatchLengthFromRight - KLowerSevenDigits;
-		}
+    TMatch phoneDigits = CreatePaddedPhoneDigitsL(aNumber, numLowerDigits, numUpperDigits);
+
+    if (phoneDigits.iNumLowerDigits + phoneDigits.iNumUpperDigits > 0)
+        {
+        // build statement
+        RSqlStatement stmnt;
+        CleanupClosePushL(stmnt);
+        stmnt.PrepareL(iDatabase, iMatchSelectStmnt->SqlStringL() );
+
+        const TInt KValueParamIndex(KFirstParam);           // first parameter in query...
+        const TInt KTypeParamIndex(KValueParamIndex + 1);   // ...and the second.
+
+        User::LeaveIfError(stmnt.BindInt(KValueParamIndex, phoneDigits.iLowerSevenDigits ));
+        User::LeaveIfError(stmnt.BindInt(KTypeParamIndex, EPhoneNumber ));
 
-	TMatch phoneDigits = CreatePaddedPhoneDigitsL(aNumber, numLowerDigits, numUpperDigits);
+        // fetch the list of any matching contact ids
+        TInt err(KErrNone);
+        const TInt KContactIdIdx(iMatchSelectStmnt->ParameterIndex(KCommAddrContactId() ) );
+        const TInt KExtraValueIdx(iMatchSelectStmnt->ParameterIndex(KCommAddrExtraValue() ) );
+        while ((err = stmnt.Next() ) == KSqlAtRow)
+            {
+            if (aMatchLengthFromRight <= KLowerSevenDigits)
+                {
+                // Matching 7 or less digits...we've already matched.
+                phoneMatchArray->AddL(stmnt.ColumnInt(KContactIdIdx) );
+                }
+            else
+                {
+                // Check the upper digits...
+                TInt32 storedUpperDigits(0);
+                TPtrC extValString = stmnt.ColumnTextL(KExtraValueIdx);
+                User::LeaveIfError(TLex(extValString).Val(storedUpperDigits) );
 
-	if (phoneDigits.iNumLowerDigits + phoneDigits.iNumUpperDigits > 0)
-		{
-		// build statement
-		RSqlStatement stmnt;
-		CleanupClosePushL(stmnt);
-		stmnt.PrepareL(iDatabase, iMatchSelectStmnt->SqlStringL() );
+                const TInt KDigitsToRemove = KMaxPhoneMatchLength - KLowerSevenDigits - phoneDigits.iNumUpperDigits;
+                for(TInt i = 0; i < KDigitsToRemove; ++i)
+                    {
+                    // repeatedly divide by 10 to lop off the appropriate number of digits from the right
+                    storedUpperDigits /= 10;
+                    }
+
+                storedUpperDigits = TMatch::PadOutPhoneMatchNumber(storedUpperDigits, KDigitsToRemove);
 
-		const TInt KValueParamIndex(KFirstParam);			// first parameter in query...
-		const TInt KTypeParamIndex(KValueParamIndex + 1);	// ...and the second.
+                if (phoneDigits.iUpperDigits == storedUpperDigits)
+                    {
+                    phoneMatchArray->AddL(stmnt.ColumnInt(KContactIdIdx) );
+                    }
+                }
+            }
 
-    	User::LeaveIfError(stmnt.BindInt(KValueParamIndex, phoneDigits.iLowerSevenDigits ));
-    	User::LeaveIfError(stmnt.BindInt(KTypeParamIndex, EPhoneNumber ));
+        // leave if we didn't complete going through the results properly
+        if(err != KSqlAtEnd)
+            {
+            User::Leave(err);
+            }
+        CleanupStack::PopAndDestroy(&stmnt);
+        }
+
+    CleanupStack::Pop(phoneMatchArray);
+    return phoneMatchArray;
+    }
 
-		// fetch the list of any matching contact ids
-		TInt err(KErrNone);
-		const TInt KContactIdIdx(iMatchSelectStmnt->ParameterIndex(KCommAddrContactId() ) );
-		const TInt KExtraValueIdx(iMatchSelectStmnt->ParameterIndex(KCommAddrExtraValue() ) );
-		while ((err = stmnt.Next() ) == KSqlAtRow)
-			{
-			if (aMatchLengthFromRight <= KLowerSevenDigits)
-				{
-				// Matching 7 or less digits...we've already matched.
-				phoneMatchArray->AddL(stmnt.ColumnInt(KContactIdIdx) );
-				}
-			else
-				{
-				// Check the upper digits...
-				TInt32 storedUpperDigits(0);
-				TPtrC extValString = stmnt.ColumnTextL(KExtraValueIdx);
-				User::LeaveIfError(TLex(extValString).Val(storedUpperDigits) );
+/**
+Returns an array of contact item IDs for all the contact items which may contain
+the specified telephone number in a telephone, fax or SMS type field.
+
+This is improved version of MatchPhoneNumberL method.
+The number is compared starting from the right side of the number and 
+the method returns an array of candidate matches.  
+Punctuation (e.g. spaces) and other alphabetic characters are ignored
+when comparing. Leading zeros are removed. Digits are compared up to 
+the lenght of shorter number.
+
+@param aNumber Phone number string.
+@return Array of contact IDs which are candidate matches.
+*/
+CContactIdArray* CPplCommAddrTable::BestMatchingPhoneNumberL(const TDesC& aNumber)
+    {
+    const TInt KUpperMaxLength = KMaxPhoneMatchLength - KLowerSevenDigits;
+
+    CContactIdArray* phoneMatchArray = CContactIdArray::NewLC();
+
+    TMatch phoneDigits = CreatePaddedPhoneDigitsL(aNumber, KLowerSevenDigits, KUpperMaxLength);
+
+    if (phoneDigits.iNumLowerDigits + phoneDigits.iNumUpperDigits > 0)
+        {
+        // build statement
+        RSqlStatement stmnt;
+        CleanupClosePushL(stmnt);
+        stmnt.PrepareL(iDatabase, iMatchSelectStmnt->SqlStringL());
+
+        const TInt KValueParamIndex(KFirstParam); // first parameter in query...
+        const TInt KTypeParamIndex(KValueParamIndex + 1); // ...and the second.
+
+        User::LeaveIfError(stmnt.BindInt(KValueParamIndex,
+                phoneDigits.iLowerSevenDigits));
+        User::LeaveIfError(stmnt.BindInt(KTypeParamIndex, EPhoneNumber));
 
-				const TInt KDigitsToRemove = KMaxPhoneMatchLength - KLowerSevenDigits - phoneDigits.iNumUpperDigits;
-				for(TInt i = 0; i < KDigitsToRemove; ++i)
-					{
-					// repeatedly divide by 10 to lop off the appropriate number of digits from the right
-					storedUpperDigits /= 10;
-					}
-
-				storedUpperDigits = TMatch::PadOutPhoneMatchNumber(storedUpperDigits, KDigitsToRemove);
+        // fetch the list of any matching contact ids
+        TInt err(KErrNone);
+        const TInt KContactIdIdx(iMatchSelectStmnt->ParameterIndex( KCommAddrContactId()));
+        const TInt KExtraValueIdx(iMatchSelectStmnt->ParameterIndex(KCommAddrExtraValue()));
+        while ((err = stmnt.Next()) == KSqlAtRow)
+            {
+            // Check the upper digits...
+            TInt32 number = phoneDigits.iUpperDigits;
+            TPtrC extValString = stmnt.ColumnTextL(KExtraValueIdx);
+            TInt32 storedUpperDigits;
+            User::LeaveIfError(TLex(extValString).Val(storedUpperDigits));
+            TInt32 stored = storedUpperDigits;
 
-				if (phoneDigits.iUpperDigits == storedUpperDigits)
-					{
-					phoneMatchArray->AddL(stmnt.ColumnInt(KContactIdIdx) );
-					}
-				}
-			}
+            while ( (number != 0) && (stored != 0) &&
+                    (number % 10 == 0 || stored % 10 == 0) )
+                {
+                number /= 10;
+                stored /= 10;
+                }
 
-		// leave if we didn't complete going through the results properly
-		if(err != KSqlAtEnd)
-			{
-			User::Leave(err);
-			}
-		CleanupStack::PopAndDestroy(&stmnt);
-		}
+            if ( (phoneDigits.iUpperDigits == 0) || (storedUpperDigits == 0) ||
+                 (number == stored) )
+                {
+                phoneMatchArray->AddL(stmnt.ColumnInt(KContactIdIdx));
+                }
+            }
 
-	CleanupStack::Pop(phoneMatchArray);
-	return phoneMatchArray;
-	}
+        // leave if we didn't complete going through the results properly
+        if (err != KSqlAtEnd)
+            {
+            User::Leave(err);
+            }
+        CleanupStack::PopAndDestroy(&stmnt);
+        }
+
+    CleanupStack::Pop(phoneMatchArray);
+    return phoneMatchArray;
+    }
 
 
 /**
@@ -895,7 +970,6 @@
 	return phoneNumber;
 	}
 
-
 /**
 CPplCommAddrTable::TMatch constructor.
 */
--- a/phonebookengines/contactsmodel/cntplsql/src/pplcontactitemmanager.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntplsql/src/pplcontactitemmanager.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -571,7 +571,14 @@
 CContactIdArray* CPplContactItemManager::MatchPhoneNumberL(const TDesC& aNumber, TInt aMatchLengthFromRight)
 	{
 	// Call comm address table
-	return  static_cast<CPplCommAddrTable*>(iCommAddrTable)->MatchPhoneNumberL(aNumber, aMatchLengthFromRight);
+	if (aMatchLengthFromRight == KBestMatchingPhoneNumbers)
+	    {
+	    return  static_cast<CPplCommAddrTable*>(iCommAddrTable)->BestMatchingPhoneNumberL(aNumber);
+	    }
+	else
+	    {
+	    return  static_cast<CPplCommAddrTable*>(iCommAddrTable)->MatchPhoneNumberL(aNumber, aMatchLengthFromRight);
+	    }
 	}
 
 /**
--- a/phonebookengines/contactsmodel/cntsrv/inc/persistencelayer.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntsrv/inc/persistencelayer.h	Tue Apr 27 16:23:35 2010 +0300
@@ -242,6 +242,17 @@
 
 
 /**
+ * This interface defines a function to close the resource 
+ * which is running and depends on RSqlDatabase.
+ */
+class MLplSqlDatabaseObserver
+    {
+public:
+    virtual void OnCloseL() = 0;
+    };
+ 
+
+/**
 This interface provides a simplified way of querying the database.  The result
 of the query is typically an array of the contact IDs satisfying the given
 criteria.  For example, IDs of all the contacts changed since the given date.
--- a/phonebookengines/contactsmodel/cntsrv/src/CViewSubSessions.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/cntsrv/src/CViewSubSessions.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -836,7 +836,7 @@
 CNamedViewSubSession* CNamedViewSubSession::NewL(CViewManager& aViewManager,const RMessage2& aMessage)
 	{
 	CNamedViewSubSession* self=new(ELeave) CNamedViewSubSession(aViewManager);
-	CleanupStack::PushL(self);
+	CleanupClosePushL(*self); // CObject: Close will call the destructor.
 	self->ConstructL(aMessage);
 	CleanupStack::Pop(); // self.
 	return self;
--- a/phonebookengines/contactsmodel/documentation/Building_contacts_tests.txt	Wed Apr 14 15:45:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-=====================================
-Contacts model test harness resources
-=====================================
-Some of the contacts model tests require that a specific contacts model resource file is used.  This resource file is located in \app-engines\cntmodel\group\cntmodel.rss. The main difference from the default resource, provided by Contacts application is the presence of 2 fields with EContactFieldFlagFilterable flag set. 
-
-Because the resource file is not owned by us, we provide a testing-only version of the cntmodel.rss. And it is only built for test builds (abld test build). The test version of cntmodel.rss in included in cnttutil test library,  which is used by most of the contacts test harnesses including T_Custfilter.exe.
-
-Cntmodel.rss defines two new fields for custom filtering, and three new fields for pronunciation.  If these fields are missing from the compiled cntmodel resources (eg \epoc32\release\winscw\udeb\z\resource\cntmodel\cntmodel.rsc) then you will see error messages such as:
- 
-====================================
-..\TSRC\T_custfilter.cpp(281) : runtime error: Statement 'iCustom1View->CountL()
- == iTestConductor->iAcceptCount + iTestConductor->iAskCount' equals 0
-
-..\TSRC\T_custfilter.cpp(299) : runtime error: Statement 'iTestConductor->iAcceptCount == 0' equals 0
-
-..\TSRC\T_custfilter.cpp(301) : runtime error: Statement 'iTestConductor->iAskCount == 0' equals 0
-==== Exercise Nickname View
-
-..\TSRC\T_custfilter.cpp(308) : runtime error: Statement 'iCustom2View->CountL() == KNickname' equals 0
-==== Filter View Finished
-**  Total amount of time taken [0s0us]  **
-: FAIL : T_CustFilter failed check 2 at line Number: 444
-RTEST: Checkpoint-fail
-====================================
-
-The solution is to make sure that you build the contact resources from \group\cntmodel.rss by building cnttutil, or to add these fields into the existing cntmodel.rss file and rebuild the resources.
- 
-To make sure that you're using the proper version of the resource file go to \epoc32\release\winscw\udeb\z\resource\cntmodel\ directory (armv5 and/or urel for other configurations) and delete cntmodel.rsc manually.  "abld test reallyclean" may do it for you, but if often fails. Then build all the contacts model test code and check that the cntmodel.rsc was created after that.
--- a/phonebookengines/contactsmodel/documentation/CNTMODEL test code.rtf	Wed Apr 14 15:45:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +0,0 @@
-{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
-{\f36\froman\fcharset238\fprq2 Times New Roman CE;}{\f37\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f39\froman\fcharset161\fprq2 Times New Roman Greek;}{\f40\froman\fcharset162\fprq2 Times New Roman Tur;}
-{\f41\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f42\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f43\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f44\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
-{\f46\fswiss\fcharset238\fprq2 Arial CE;}{\f47\fswiss\fcharset204\fprq2 Arial Cyr;}{\f49\fswiss\fcharset161\fprq2 Arial Greek;}{\f50\fswiss\fcharset162\fprq2 Arial Tur;}{\f51\fswiss\fcharset177\fprq2 Arial (Hebrew);}
-{\f52\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f53\fswiss\fcharset186\fprq2 Arial Baltic;}{\f54\fswiss\fcharset163\fprq2 Arial (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
-\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
-\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang2057\langfe2052\cgrid\langnp2057\langfenp2052 \snext0 Normal;}{
-\s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs28\lang2057\langfe1033\kerning28\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 heading 1;}{
-\s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs22\cf9\lang2057\langfe2052\cgrid\langnp2057\langfenp2052 \sbasedon0 \snext0 heading 2;}{
-\s4\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 heading 4;}{
-\s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
-\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
-\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}{\*\listtable{\list\listtemplateid-488854760\listhybrid{\listlevel\levelnfc0\levelnfcn0
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698703\'02\'00.;}{\levelnumbers\'01;}\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0
-\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0
-{\leveltext\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\fi-180\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698703
-\'02\'03.;}{\levelnumbers\'01;}\fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\fi-360\li3600
-\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\fi-180\li4320\jclisttab\tx4320\lin4320 }{\listlevel
-\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0
-\levelindent0{\leveltext\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\fi-180\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid908004289}{\list\listtemplateid1572638590\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid134807567\'02\'00.;}{\levelnumbers\'01;}\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
-\levelindent0{\leveltext\leveltemplateid134807577\'02\'01.;}{\levelnumbers\'01;}\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
-\leveltemplateid134807579\'02\'02.;}{\levelnumbers\'01;}\fi-180\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid134807567
-\'02\'03.;}{\levelnumbers\'01;}\fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid134807577\'02\'04.;}{\levelnumbers\'01;}
-\fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid134807579\'02\'05.;}{\levelnumbers\'01;}\fi-180\li4320\jclisttab\tx4320\lin4320 }
-{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid134807567\'02\'06.;}{\levelnumbers\'01;}\fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0
-\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid134807577\'02\'07.;}{\levelnumbers\'01;}\fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1
-\levelspace0\levelindent0{\leveltext\leveltemplateid134807579\'02\'08.;}{\levelnumbers\'01;}\fi-180\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1216742051}{\list\listtemplateid-881316324\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0
-\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698703\'02\'00.;}{\levelnumbers\'01;}\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
-\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\fi-180\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698703
-\'02\'03.;}{\levelnumbers\'01;}\fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\fi-360\li3600
-\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\fi-180\li4320\jclisttab\tx4320\lin4320 }{\listlevel
-\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0
-\levelindent0{\leveltext\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\fi-180\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1889610592}}{\*\listoverridetable{\listoverride\listid1216742051\listoverridecount0\ls1}
-{\listoverride\listid1889610592\listoverridecount0\ls2}{\listoverride\listid908004289\listoverridecount0\ls3}}{\*\rsidtbl \rsid5130934\rsid12336753}{\*\generator Microsoft Word 10.0.4219;}{\info{\title AGNMODEL test code}{\author Geraldo Tou}
-{\operator KellyH}{\creatim\yr2005\mo5\dy2\hr12\min3}{\revtim\yr2005\mo6\dy17\hr10\min21}{\version11}{\edmins263}{\nofpages2}{\nofwords651}{\nofchars3714}{\*\company Symbian}{\nofcharsws4357}{\vern16469}}\paperw11909\paperh16834\margl1440\margr1440 
-\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dghspace180\dgvspace180\dghorigin1701\dgvorigin1984\dghshow0\dgvshow0
-\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\nolnhtadjtbl\rsidroot5130934 \fet0\sectd \psz9\linex0\headery706\footery706\endnhere\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
-\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
-\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang 
-{\pntxtb (}{\pntxta )}}\pard\plain \s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs28\lang2057\langfe1033\kerning28\cgrid\langnp2057\langfenp1033 {\insrsid12336753 CNTMODEL test code
-
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang2057\langfe2052\cgrid\langnp2057\langfenp2052 {\b\f1\insrsid12336753 History:
-\par }{\f1\insrsid12336753 3 May 2005 - Special Requirements section updated.
-\par 
-\par }{\b\f1\insrsid12336753 
-\par 
-\par }{\b\f1\fs24\insrsid12336753 Background:
-\par }{\f1\insrsid12336753 
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs22\cf9\lang2057\langfe2052\cgrid\langnp2057\langfenp2052 {\insrsid12336753 
-CntmodelTest.iby can be found at //EPOC/main/generic/app-engines/cntmodel/group
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang2057\langfe2052\cgrid\langnp2057\langfenp2052 {\f1\insrsid12336753 
-\par }{\b\f1\fs24\insrsid12336753 Test executable file locations
-\par 
-\par }\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb\clftsWidth3\clwWidth3158\clshdngraw10000 \cellx3050\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
-\brdrs\brdrw10 \clshdng10000\cltxlrtb\clftsWidth3\clwWidth3158\clshdngraw10000 \cellx6208\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 WINS location\cell Hardware location\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\clshdng10000\cltxlrtb\clftsWidth3\clwWidth3158\clshdngraw10000 \cellx3050\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb\clftsWidth3\clwWidth3158\clshdngraw10000 \cellx6208\row 
-}\trowd \irow1\irowband1\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 
-\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3158\clshdrawnil \cellx3050\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
-\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3158\clshdrawnil \cellx6208\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 \\epoc32\\release\\wins\\udeb\\
-\par or
-\par \\epoc32\\release\\wins\\urel\\\cell c:\\ or z:\\\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 \trowd \irow1\irowband1\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
-\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
-\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3158\clshdrawnil \cellx3050\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3158\clshdrawnil \cellx6208\row }\pard 
-\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\f1\insrsid12336753 
-\par }\pard\plain \s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\insrsid12336753 Automatic test executables - should be run before every release
-
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang2057\langfe2052\cgrid\langnp2057\langfenp2052 {\f1\insrsid12336753 Success: Test program exits cleanly 
-\par Failure: Test program stops with an error message.
-\par }{\i\f1\insrsid12336753 List is out of date \endash  refer to the bld.inf file to identify \lquote automatic\rquote  unit tests.}{\i\insrsid12336753 
-\par }{\b\f1\insrsid12336753 
-\par }\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb\clftsWidth3\clwWidth2988\clshdngraw10000 
-\cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb\clftsWidth3\clwWidth5275\clshdngraw10000 \cellx8155\pard\plain 
-\s4\ql \li0\ri0\keepn\widctlpar\intbl\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0 \b\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\insrsid12336753 Filename\cell Purpose\cell }\pard\plain 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs20\lang2057\langfe2052\cgrid\langnp2057\langfenp2052 {\b\f1\insrsid12336753 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 
-\trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 
-\clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb\clftsWidth3\clwWidth2988\clshdngraw10000 \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\clshdng10000\cltxlrtb\clftsWidth3\clwWidth5275\clshdngraw10000 \cellx8155\row }\trowd \irow1\irowband1\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv
-\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880
-\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_BENCH.EXE\cell Benchmark test for typical database operations\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow1\irowband1\ts11\trgaph108\trleft-108\trbrdrt
-\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
-\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_CARDTM.EXE\cell Card template\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow2\irowband2\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_CONNEC.EXE\cell Connectivity requirements\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow3\irowband3\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_DBASE.EXE\cell Basic database operations: Create a new database, deletes existing databases, sets the database drive setting, adds, edits text fields and moves fields\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow4\irowband4\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_DBASE2.EXE\cell Sorting, searching and matching\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow5\irowband5\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_ERROR.EXE\cell OOM tests, file server failure tests\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow6\irowband6\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 
-\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 
-\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil 
-\cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_EXPDEL.EXE\cell Synchronisation tests. Increments/decrements access counts\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow7\irowband7\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_FERROR.EXE\cell File error tests\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow8\irowband8\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_FIELD.EXE\cell Test fields, field set, id array, labels, attributes, multiple cards, multiple fields, fields id\rquote s and does a store/restore test\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow9\irowband9\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_FILTEREDVIEW.EXE\cell Filtered view \cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow10\irowband10\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_GROUPS.EXE\cell Group support\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow11\irowband11\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
-\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb
-\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155
-\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_GROUPVIEW.EXE\cell Group view\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow12\irowband12\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_IMPORT.EXE\cell vCard import (strictly not a test - useful for debugging)\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow13\irowband13
-\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_ITEM.EXE\cell Adds basic cards, adds text fields to cards, chec
-ks field contents, edits text fields and moves fields\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow14\irowband14\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
-\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb
-\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155
-\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_MULTS.EXE\cell Multi-client access test\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\b\f1\insrsid12336753 \trowd \irow15\irowband15\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_NOMACH.EXE\cell Phone number matching\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow16\irowband16\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
-\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb
-\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155
-\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_OWNCAR.EXE\cell Own card support\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow17\irowband17\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_PROFILE.EXE\cell Asynchronous sorting testcode\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow18\irowband18\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 
-\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 
-\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil 
-\cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_SIZE.EXE\cell Testcode to monitor file size growth for worst case database operations\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow19\irowband19\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_TEMPL.EXE\cell System template\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow20\irowband20\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_TIME.EXE\cell Various profiling of read/add/delete contacts and vCard import/export\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow21\irowband21
-\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_TTVERS.EXE\cell Imports, exports and updates via vCard\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow22\irowband22\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_VERS.EXE\cell Imports a card and displays the field label, field contents and UID store type\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow23\irowband23\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\f1\insrsid12336753 T_VIEW.EXE\cell CcontactItemViewDef\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 
-\trowd \irow24\irowband24\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
-\trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt
-\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {
-\f1\insrsid12336753 T_VIEW2.EXE\cell Tests core view architecture code\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid12336753 \trowd \irow25\irowband25\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 
-\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 
-\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil 
-\cellx8155\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid14030050 {\f1\insrsid5130934\charrsid12336753 Testexecute z:\\testdata\\scripts\\CntModel_Import.script\cell {\listtext\pard\plain\intbl
-\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052\insrsid5130934\charrsid5130934 \hich\af1\dbch\af0\loch\f1 1.\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\intbl\jclisttab\tx720\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\pararsid14030050 {
-\f1\insrsid5130934\charrsid5130934 A VCard with REV property in UTC format is imported to a Contact database using the CntModelConverter.
-\par {\listtext\pard\plain\intbl\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052\insrsid5130934\charrsid5130934 \hich\af1\dbch\af0\loch\f1 2.\tab}A VCard with no REV property is imported to a Contact database using the CntModelConverter
-\par {\listtext\pard\plain\intbl\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052\insrsid5130934\charrsid5130934 \hich\af1\dbch\af0\loch\f1 3.\tab}Import VCard with REV property set to local
-\par {\listtext\pard\plain\intbl\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052\insrsid5130934\charrsid5130934 \hich\af1\dbch\af0\loch\f1 4.\tab}Import VCard with REV property set to local, but no TZ property set.
-\par {\listtext\pard\plain\intbl\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052\insrsid5130934\charrsid5130934 \hich\af1\dbch\af0\loch\f1 5.\tab}Import VCard with BDAY property in local date/time format\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid5130934 \trowd \irow26\irowband26\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
-\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid14030050 {\f1\insrsid5130934\charrsid5130934 Testexecute z:\\testdata\\scripts\\CntModel_Export.script\cell {\listtext\pard\plain\intbl
-\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052\insrsid5130934\charrsid5130934 \hich\af1\dbch\af0\loch\f1 1.\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\intbl\jclisttab\tx720\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\pararsid14030050 {
-\f1\insrsid5130934\charrsid5130934 Export to VCard with REV in UTC format
-\par {\listtext\pard\plain\intbl\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052\insrsid5130934\charrsid5130934 \hich\af1\dbch\af0\loch\f1 2.\tab}Export to VCard with BDAY property in local date/time format\cell }\pard 
-\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\b\f1\insrsid5130934 \trowd \irow27\irowband27\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 
-\trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trftsWidthA3\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
-\cltxlrtb\clftsWidth3\clwWidth2988\clshdrawnil \cellx2880\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5275\clshdrawnil \cellx8155\row }\pard 
-\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\f1\fs24\insrsid12336753 
-\par 
-\par 
-\par 
-\par 
-\par Special Requirements 
-\par 
-\par }{\b\f1\insrsid12336753 1. Building tests
-\par }{\f1\insrsid12336753 
-\par Before building the tests you must build (}{\b\f1\insrsid12336753 abld test build}{\f1\insrsid12336753 
-) the app-services/CoreAppsTest component. This test component as a server that can perform requested actions, such as copy or delete of files, on behalf of a test harness \endash  where the test harness only has the required security capabilities 
-documented for the component APIs.
-\par }{\b\f1\insrsid12336753 
-\par 2. Tests that need special requirements
-\par }{\b\f1\fs24\insrsid12336753 
-\par }{\f1\insrsid12336753 Unit tests }{\b\f1\insrsid12336753 T_Error}{\f1\insrsid12336753  and }{\b\f1\insrsid12336753 T_Sec_CntDbase}{\f1\insrsid12336753  \endash 
- need a writeable drive, (e.g. D or F), to be set up for the emulator, or present on hardware. The test code automatically tries to find the first available drive.
-\par 
-\par Manual tests }{\b\f1\insrsid12336753 T_Dbase}{\f1\insrsid12336753  and }{\b\f1\insrsid12336753 T_Ferror}{\f1\insrsid12336753  \endash  need a writeable drive D: to be set up for the emulator, or present on hardware.
-\par 
-\par To set up D or F drive on the emulator:
-\par {\listtext\pard\plain\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052 \hich\af1\dbch\af0\loch\f1 1.\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0 {\f1\insrsid12336753 
-check if we have got \'93}{\b\f1\insrsid12336753 epoc.ini}{\f1\insrsid12336753 \'94 in directory }{\b\f1\insrsid12336753 epoc32\\data}{\f1\insrsid12336753 . If not, create one.
-\par {\listtext\pard\plain\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052 \hich\af1\dbch\af0\loch\f1 2.\tab}Create directories for the drives to map to, e.g. \\epoc32\\winscw\\d or \\epoc32\\winscw\\f.
-\par {\listtext\pard\plain\f1\fs20\lang2057\langfe2052\langnp2057\langfenp2052 \hich\af1\dbch\af0\loch\f1 3.\tab}Make sure a line like this is present in the epoc.ini file;
-\par }\pard \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 {\b\f1\insrsid12336753 _EPOC_DRIVE_D \\epoc32\\winscw\\d
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\f1\fs24\insrsid12336753 
-\par }{\f1\insrsid12336753 All }{\b\f1\insrsid12336753 T_Icc* }{\f1\insrsid12336753 tests exercise the interface for the Phonebook Sync
-hroniser, to read the phonebook entries from an ICC (Integrated Circuit Card, e.g. a GSM SIM card or a WCDMA USIM card). The tests need to use the test components:cnttestsync.dll and cntsyncchecker.dll. From Symbian OS 9.0 the DLL search mechanism has cha
-nged, and for these tests to run you must remove Telephony component\rquote s Phonebook Synchroniser:at least phbksyncplugin.dll, and possibly also phbksyncsvr.dll & phbksyncsvrexe.exe.
-\par }\pard \ql \li0\ri0\widctlpar\tx2790\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\f1\insrsid12336753  \tab 
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\f1\fs24\insrsid12336753 Test rom building
-\par }{\f1\fs24\insrsid12336753 
-\par }{\f1\insrsid12336753 To be able to run all contacts model test programs, we have to type the following on command line at epoc32\\rom,
-\par 
-\par }{\b\f1\insrsid12336753 tools\\buildrom assabet engbuild \\<directory path>\\CntmodelTest.iby}{\insrsid12336753 
-\par }}
\ No newline at end of file
--- a/phonebookengines/contactsmodel/documentation/contact_views.mdl	Wed Apr 14 15:45:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2755 +0,0 @@
-
-(object Petal
-    version    	44
-    _written   	"Rose 7.0.9420.17"
-    charSet    	0)
-
-(object Design "Logical View"
-    is_unit    	TRUE
-    is_loaded  	TRUE
-    quid       	"3AEFFCDB000D"
-    defaults   	(object defaults
-	rightMargin 	0.250000
-	leftMargin 	0.250000
-	topMargin  	0.250000
-	bottomMargin 	0.500000
-	pageOverlap 	0.250000
-	clipIconLabels 	TRUE
-	autoResize 	TRUE
-	snapToGrid 	TRUE
-	gridX      	16
-	gridY      	16
-	defaultFont 	(object Font
-	    size       	9
-	    face       	"helvetica"
-	    bold       	FALSE
-	    italics    	FALSE
-	    underline  	FALSE
-	    strike     	FALSE
-	    color      	0
-	    default_color 	TRUE)
-	showMessageNum 	1
-	showClassOfObject 	TRUE
-	notation   	"Unified")
-    root_usecase_package 	(object Class_Category "Use Case View"
-	quid       	"3AB735CF003F"
-	exportControl 	"Public"
-	global     	TRUE
-	logical_models 	(list unit_reference_list)
-	logical_presentations 	(list unit_reference_list
-	    (object UseCaseDiagram "Main"
-		quid       	"3AB735D00041"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    root_category 	(object Class_Category "Logical View"
-	quid       	"3AB735CF002C"
-	exportControl 	"Public"
-	global     	TRUE
-	subsystem  	"Component View"
-	quidu      	"3AB735CF0040"
-	logical_models 	(list unit_reference_list
-	    (object Class "MContactViewObserver"
-		quid       	"3AB7361D009B"
-		language   	"C++")
-	    (object Class "CContactViewBase"
-		quid       	"3AB736260379"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AB7367F01F1"
-			supplier   	"Logical View::CObject"
-			quidu      	"3AB7367600E9"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AB7368C0019"
-			supplier   	"Logical View::MContactViewObserver"
-			quidu      	"3AB7361D009B"
-			supplier_cardinality 	(value cardinality "n")
-			client_cardinality 	(value cardinality "1")))
-		language   	"C++")
-	    (object Class "CContactLocalView"
-		quid       	"3AB736320073"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AB736A10330"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379")
-		    (object Inheritance_Relationship
-			quid       	"3AC0939400AC"
-			supplier   	"Logical View::MContactDbObserver"
-			quidu      	"3AC0932B0141"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AC0959F005E"
-			supplier   	"Logical View::CContactDatabase"
-			quidu      	"3AC093300397"))
-		language   	"C++")
-	    (object Class "CContactSubView"
-		quid       	"3AB736610193"
-		fields     	(list has_relationship_list
-		    (object Has_Relationship
-			quid       	"3AC0930B00C3"
-			supplier   	"Logical View::TContactViewIndex"
-			quidu      	"3AC092FD02AD"
-			supplier_cardinality 	(value cardinality "2")
-			client_cardinality 	(value cardinality "1")))
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AB736A4009F"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379")
-		    (object Inheritance_Relationship
-			quid       	"3AB736C30285"
-			supplier   	"Logical View::MContactViewObserver"
-			quidu      	"3AB7361D009B"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AB7370E03B9"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379"))
-		language   	"C++")
-	    (object Class "CContactConcatonatedView"
-		quid       	"3AB7366C0171"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AB736A7016C"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379")
-		    (object Inheritance_Relationship
-			quid       	"3AB736D3031E"
-			supplier   	"Logical View::MContactViewObserver"
-			quidu      	"3AB7361D009B"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AB7373B0255"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379"
-			supplier_cardinality 	(value cardinality "n")
-			client_cardinality 	(value cardinality "1")))
-		language   	"C++")
-	    (object Class "CObject"
-		quid       	"3AB7367600E9"
-		language   	"C++")
-	    (object Class "CContactNamedLocalView"
-		quid       	"3AC092D6008B"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AC092E202AF"
-			supplier   	"Logical View::CContactLocalView"
-			quidu      	"3AB736320073"))
-		language   	"C++")
-	    (object Class "TContactViewIndex"
-		quid       	"3AC092FD02AD"
-		language   	"C++")
-	    (object Class "MContactDbObserver"
-		quid       	"3AC0932B0141"
-		language   	"C++")
-	    (object Class "CContactDatabase"
-		quid       	"3AC093300397"
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AC0934100FD"
-			supplier   	"Logical View::MContactDbObserver"
-			quidu      	"3AC0932B0141"
-			supplier_cardinality 	(value cardinality "n")
-			client_cardinality 	(value cardinality "1")))
-		language   	"C++")
-	    (object Class "CContactFilteredView"
-		quid       	"3AC0942E011B"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AC0943B00A2"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379")
-		    (object Inheritance_Relationship
-			quid       	"3AC0947203E0"
-			supplier   	"Logical View::MContactViewObserver"
-			quidu      	"3AB7361D009B"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AC0943E038B"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379")
-		    (object Uses_Relationship
-			quid       	"3AEFFE500168"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379"))
-		language   	"C++")
-	    (object Class "CContactRemoteViewBase"
-		quid       	"3AC0948100B7"
-		fields     	(list has_relationship_list
-		    (object Has_Relationship
-			quid       	"3AC0962C03A0"
-			supplier   	"Logical View::CContactRemoteViewNotifier"
-			quidu      	"3AC095F0012C")
-		    (object Has_Relationship
-			quid       	"3AC096660078"
-			supplier   	"Logical View::RContactRemoteView"
-			quidu      	"3AC0964E0380"))
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AC0948603AD"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379"))
-		language   	"C++")
-	    (object Class "CContactRemoteView"
-		quid       	"3AC094D1022E"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AC094D90185"
-			supplier   	"Logical View::CContactRemoteViewBase"
-			quidu      	"3AC0948100B7"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AC0956200B0"
-			supplier   	"Logical View::CContactLocalView"
-			quidu      	"3AB736320073"))
-		language   	"C++")
-	    (object Class "CContactNamedRemoteView"
-		quid       	"3AC094E402D6"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AC094E803A4"
-			supplier   	"Logical View::CContactRemoteView"
-			quidu      	"3AC094D1022E"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AC095650155"
-			supplier   	"Logical View::CContactNamedLocalView"
-			quidu      	"3AC092D6008B"))
-		language   	"C++")
-	    (object Class "CContactRemoteViewNotifier"
-		quid       	"3AC095F0012C"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AC0962A01B2"
-			supplier   	"Logical View::CActive"
-			quidu      	"3AC0962102BD"))
-		language   	"C++")
-	    (object Class "CActive"
-		quid       	"3AC0962102BD"
-		language   	"C++")
-	    (object Class "RContactRemoteView"
-		quid       	"3AC0964E0380"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AC09661032E"
-			supplier   	"Logical View::RSubSessionBase"
-			quidu      	"3AC0965903B8"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AC0966A006A"
-			supplier   	"Logical View::CContactRemoteViewNotifier"
-			quidu      	"3AC095F0012C"))
-		language   	"C++")
-	    (object Class "RSubSessionBase"
-		quid       	"3AC0965903B8"
-		language   	"C++")
-	    (object Class "CContactGroupView"
-		quid       	"3AEFFD15038C"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AEFFE2B03D2"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AEFFE460362"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379")))
-	    (object Class "CContactFindView"
-		quid       	"3AEFFD3A0317"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"3AEFFE2E030E"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"3AEFFE4902E5"
-			supplier   	"Logical View::CContactViewBase"
-			quidu      	"3AB736260379"))))
-	logical_presentations 	(list unit_reference_list
-	    (object ClassDiagram "Main"
-		quid       	"3AB735CF03E2"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	150
-		origin_y   	800
-		items      	(list diagram_item_list
-		    (object ClassView "Class" "Logical View::MContactViewObserver" @1
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(2416, 1488)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@1
-			    location   	(2294, 1416)
-			    nlines     	2
-			    max_width  	244
-			    justify    	0
-			    label      	"MContactViewObserver")
-			icon_style 	"Icon"
-			quidu      	"3AB7361D009B"
-			width      	262
-			height     	166
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CContactViewBase" @2
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1312, 880)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@2
-			    location   	(1109, 825)
-			    nlines     	2
-			    max_width  	407
-			    justify    	0
-			    label      	"CContactViewBase")
-			icon_style 	"Icon"
-			quidu      	"3AB736260379"
-			width      	425
-			height     	132
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CContactLocalView" @3
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(800, 1376)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@3
-			    location   	(593, 1340)
-			    nlines     	2
-			    max_width  	414
-			    justify    	0
-			    label      	"CContactLocalView")
-			icon_style 	"Icon"
-			quidu      	"3AB736320073"
-			width      	432
-			height     	94
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CContactSubView" @4
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1776, 1424)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@4
-			    location   	(1573, 1324)
-			    nlines     	2
-			    max_width  	406
-			    justify    	0
-			    label      	"CContactSubView")
-			icon_style 	"Icon"
-			quidu      	"3AB736610193"
-			compartment 	(object Compartment
-			    Parent_View 	@4
-			    location   	(1573, 1382)
-			    font       	(object Font
-				size       	9
-				face       	"helvetica"
-				bold       	FALSE
-				italics    	FALSE
-				underline  	FALSE
-				strike     	FALSE
-				color      	0
-				default_color 	TRUE)
-			    icon_style 	"Icon"
-			    anchor     	2
-			    nlines     	2
-			    max_width  	1075)
-			width      	424
-			height     	222
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CContactConcatonatedView" @5
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(2128, 944)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@5
-			    location   	(1985, 872)
-			    nlines     	2
-			    max_width  	286
-			    justify    	0
-			    label      	"CContactConcatonatedView")
-			icon_style 	"Icon"
-			quidu      	"3AB7366C0171"
-			width      	304
-			height     	166
-			annotation 	8
-			autoResize 	TRUE)
-		    (object UsesView "" @6
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			stereotype 	TRUE
-			quidu      	"3AB7368C0019"
-			client     	@2
-			supplier   	@1
-			line_style 	0)
-		    (object InheritView "" @7
-			stereotype 	TRUE
-			quidu      	"3AB736A10330"
-			client     	@3
-			supplier   	@2
-			line_style 	0)
-		    (object InheritView "" @8
-			stereotype 	TRUE
-			quidu      	"3AB736A4009F"
-			client     	@4
-			supplier   	@2
-			line_style 	0)
-		    (object InheritView "" @9
-			stereotype 	TRUE
-			quidu      	"3AB736A7016C"
-			client     	@5
-			supplier   	@2
-			line_style 	0)
-		    (object InheritView "" @10
-			stereotype 	TRUE
-			quidu      	"3AB736C30285"
-			client     	@4
-			supplier   	@1
-			line_style 	0)
-		    (object InheritView "" @11
-			stereotype 	TRUE
-			quidu      	"3AB736D3031E"
-			client     	@5
-			supplier   	@1
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CContactNamedLocalView" @12
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(560, 1744)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@12
-			    location   	(373, 1683)
-			    nlines     	2
-			    max_width  	375
-			    justify    	0
-			    label      	"CContactNamedLocalView")
-			icon_style 	"Icon"
-			quidu      	"3AC092D6008B"
-			width      	393
-			height     	144
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @13
-			stereotype 	TRUE
-			quidu      	"3AC092E202AF"
-			client     	@12
-			supplier   	@3
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::TContactViewIndex" @14
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(2144, 1776)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@14
-			    location   	(2040, 1704)
-			    nlines     	2
-			    max_width  	208
-			    justify    	0
-			    label      	"TContactViewIndex")
-			icon_style 	"Icon"
-			quidu      	"3AC092FD02AD"
-			width      	226
-			height     	166
-			annotation 	8
-			autoResize 	TRUE)
-		    (object HasView "" @15
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			stereotype 	TRUE
-			quidu      	"3AC0930B00C3"
-			client     	@4
-			supplier   	@14
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::MContactDbObserver" @16
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(832, 992)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@16
-			    location   	(715, 920)
-			    nlines     	2
-			    max_width  	234
-			    justify    	0
-			    label      	"MContactDbObserver")
-			icon_style 	"Icon"
-			quidu      	"3AC0932B0141"
-			width      	252
-			height     	166
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CContactDatabase" @17
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(432, 832)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@17
-			    location   	(254, 762)
-			    nlines     	2
-			    max_width  	357
-			    justify    	0
-			    label      	"CContactDatabase")
-			icon_style 	"Icon"
-			quidu      	"3AC093300397"
-			width      	375
-			height     	162
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @18
-			stereotype 	TRUE
-			quidu      	"3AC0939400AC"
-			client     	@3
-			supplier   	@16
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CContactFilteredView" @19
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(2352, 688)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@19
-			    location   	(2144, 639)
-			    nlines     	1
-			    max_width  	416
-			    justify    	0
-			    label      	"CContactFilteredView")
-			icon_style 	"Icon"
-			quidu      	"3AC0942E011B"
-			width      	434
-			height     	120
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @20
-			stereotype 	TRUE
-			quidu      	"3AC0943B00A2"
-			client     	@19
-			supplier   	@2
-			line_style 	0)
-		    (object InheritView "" @21
-			stereotype 	TRUE
-			quidu      	"3AC0947203E0"
-			client     	@19
-			supplier   	@1
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CContactRemoteViewBase" @22
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1312, 1728)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@22
-			    location   	(1021, 1605)
-			    nlines     	2
-			    max_width  	582
-			    justify    	0
-			    label      	"CContactRemoteViewBase")
-			icon_style 	"Icon"
-			quidu      	"3AC0948100B7"
-			compartment 	(object Compartment
-			    Parent_View 	@22
-			    location   	(1021, 1663)
-			    font       	(object Font
-				size       	9
-				face       	"helvetica"
-				bold       	FALSE
-				italics    	FALSE
-				underline  	FALSE
-				strike     	FALSE
-				color      	0
-				default_color 	TRUE)
-			    icon_style 	"Icon"
-			    anchor     	2
-			    nlines     	3
-			    max_width  	1433)
-			width      	600
-			height     	268
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @23
-			stereotype 	TRUE
-			quidu      	"3AC0948603AD"
-			client     	@22
-			supplier   	@2
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CContactRemoteView" @24
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(960, 2048)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@24
-			    location   	(769, 2003)
-			    nlines     	2
-			    max_width  	382
-			    justify    	0
-			    label      	"CContactRemoteView")
-			icon_style 	"Icon"
-			quidu      	"3AC094D1022E"
-			width      	400
-			height     	112
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @25
-			stereotype 	TRUE
-			quidu      	"3AC094D90185"
-			client     	@24
-			supplier   	@22
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CContactNamedRemoteView" @26
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(720, 2304)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@26
-			    location   	(467, 2268)
-			    nlines     	2
-			    max_width  	507
-			    justify    	0
-			    label      	"CContactNamedRemoteView")
-			icon_style 	"Icon"
-			quidu      	"3AC094E402D6"
-			width      	525
-			height     	94
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @27
-			stereotype 	TRUE
-			quidu      	"3AC094E803A4"
-			client     	@26
-			supplier   	@24
-			line_style 	0)
-		    (object UsesView "" @28
-			stereotype 	TRUE
-			quidu      	"3AC0956200B0"
-			client     	@24
-			supplier   	@3
-			line_style 	0)
-		    (object UsesView "" @29
-			stereotype 	TRUE
-			quidu      	"3AC095650155"
-			client     	@26
-			supplier   	@12
-			line_style 	0)
-		    (object UsesView "" @30
-			stereotype 	TRUE
-			quidu      	"3AC0959F005E"
-			client     	@3
-			supplier   	@17
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CContactRemoteViewNotifier" @31
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1312, 2336)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@31
-			    location   	(1093, 2272)
-			    nlines     	2
-			    max_width  	438
-			    justify    	0
-			    label      	"CContactRemoteViewNotifier")
-			icon_style 	"Icon"
-			quidu      	"3AC095F0012C"
-			width      	456
-			height     	150
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CActive" @32
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1824, 2608)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@32
-			    location   	(1743, 2536)
-			    nlines     	2
-			    max_width  	162
-			    justify    	0
-			    label      	"CActive")
-			icon_style 	"Icon"
-			quidu      	"3AC0962102BD"
-			height     	166
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @33
-			stereotype 	TRUE
-			quidu      	"3AC0962A01B2"
-			client     	@31
-			supplier   	@32
-			line_style 	0)
-		    (object HasView "" @34
-			stereotype 	TRUE
-			quidu      	"3AC0962C03A0"
-			client     	@22
-			supplier   	@31
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::RContactRemoteView" @35
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1744, 2144)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@35
-			    location   	(1631, 2072)
-			    nlines     	2
-			    max_width  	226
-			    justify    	0
-			    label      	"RContactRemoteView")
-			icon_style 	"Icon"
-			quidu      	"3AC0964E0380"
-			width      	244
-			height     	166
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::RSubSessionBase" @36
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(2224, 2128)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@36
-			    location   	(2125, 2056)
-			    nlines     	2
-			    max_width  	198
-			    justify    	0
-			    label      	"RSubSessionBase")
-			icon_style 	"Icon"
-			quidu      	"3AC0965903B8"
-			width      	216
-			height     	166
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @37
-			stereotype 	TRUE
-			quidu      	"3AC09661032E"
-			client     	@35
-			supplier   	@36
-			line_style 	0)
-		    (object HasView "" @38
-			stereotype 	TRUE
-			quidu      	"3AC096660078"
-			client     	@22
-			supplier   	@35
-			line_style 	0)
-		    (object UsesView "" @39
-			stereotype 	TRUE
-			quidu      	"3AC0966A006A"
-			client     	@35
-			supplier   	@31
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CContactGroupView" @40
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(768, 512)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@40
-			    location   	(543, 448)
-			    nlines     	2
-			    max_width  	450
-			    justify    	0
-			    label      	"CContactGroupView")
-			icon_style 	"Icon"
-			fill_color 	16777215
-			quidu      	"3AEFFD15038C"
-			width      	468
-			height     	150
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CContactFindView" @41
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1360, 496)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@41
-			    location   	(1147, 439)
-			    nlines     	2
-			    max_width  	426
-			    justify    	0
-			    label      	"CContactFindView")
-			icon_style 	"Icon"
-			fill_color 	16777215
-			quidu      	"3AEFFD3A0317"
-			width      	444
-			height     	137
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CContactFilteredView" @42
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1920, 496)
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@42
-			    location   	(1712, 447)
-			    nlines     	1
-			    max_width  	416
-			    justify    	0
-			    label      	"CContactFilteredView")
-			icon_style 	"Icon"
-			fill_color 	16777215
-			quidu      	"3AC0942E011B"
-			width      	434
-			height     	120
-			annotation 	8
-			autoResize 	TRUE)
-		    (object UsesView "" @43
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			stereotype 	TRUE
-			quidu      	"3AC0934100FD"
-			client     	@17
-			supplier   	@16
-			line_style 	0)
-		    (object InheritView "" @44
-			stereotype 	TRUE
-			quidu      	"3AEFFE2B03D2"
-			client     	@40
-			supplier   	@2
-			line_style 	0)
-		    (object InheritView "" @45
-			stereotype 	TRUE
-			quidu      	"3AC0943B00A2"
-			client     	@42
-			supplier   	@2
-			line_style 	0)
-		    (object UsesView "" @46
-			stereotype 	TRUE
-			quidu      	"3AEFFE500168"
-			client     	@42
-			supplier   	@2
-			vertices   	(list Points
-			    (1865, 556)
-			    (1738, 703)
-			    (1468, 813))
-			line_style 	0)
-		    (object InheritView "" @47
-			stereotype 	TRUE
-			quidu      	"3AEFFE2E030E"
-			client     	@41
-			supplier   	@2
-			line_style 	0)
-		    (object UsesView "" @48
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			stereotype 	TRUE
-			quidu      	"3AEFFE4902E5"
-			client     	@41
-			supplier   	@2
-			vertices   	(list Points
-			    (1319, 564)
-			    (1257, 672)
-			    (1293, 813))
-			line_style 	0)
-		    (object UsesView "" @49
-			stereotype 	TRUE
-			quidu      	"3AEFFE460362"
-			client     	@40
-			supplier   	@2
-			vertices   	(list Points
-			    (824, 587)
-			    (938, 734)
-			    (1144, 813))
-			line_style 	0)
-		    (object UsesView "" @50
-			stereotype 	TRUE
-			quidu      	"3AB7370E03B9"
-			client     	@4
-			supplier   	@2
-			vertices   	(list Points
-			    (1636, 1312)
-			    (1432, 1150)
-			    (1341, 946))
-			line_style 	0)
-		    (object UsesView "" @51
-			stereotype 	TRUE
-			quidu      	"3AC0943E038B"
-			client     	@19
-			supplier   	@2
-			vertices   	(list Points
-			    (2162, 748)
-			    (1913, 831)
-			    (1524, 861))
-			line_style 	0)
-		    (object UsesView "" @52
-			font       	(object Font
-			    size       	9
-			    face       	"helvetica"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			stereotype 	TRUE
-			quidu      	"3AB7373B0255"
-			client     	@5
-			supplier   	@2
-			vertices   	(list Points
-			    (1975, 964)
-			    (1785, 991)
-			    (1524, 928))
-			line_style 	0)))))
-    root_subsystem 	(object SubSystem "Component View"
-	quid       	"3AB735CF0040"
-	physical_models 	(list unit_reference_list)
-	physical_presentations 	(list unit_reference_list
-	    (object Module_Diagram "Main"
-		quid       	"3AB735D00040"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    process_structure 	(object Processes
-	quid       	"3AB735CF0041"
-	ProcsNDevs 	(list
-	    (object Process_Diagram "Deployment View"
-		quid       	"3AB735CF03A6"
-		title      	"Deployment View"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    properties 	(object Properties
-	attributes 	(list Attribute_Set
-	    (object Attribute
-		tool       	"cg"
-		name       	"roseId"
-		value      	"753117540")
-	    (object Attribute
-		tool       	"cg"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PathSeparator"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileNameFormat"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GeneratePreserveRegions"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"compiler2.1__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue(sizeof($targetClass),$limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue(sizeof($targetClass),$limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference($limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference($limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue(sizeof($qualtype), sizeof($qualcont)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue(sizeof($qualtype), sizeof($qualcont)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference(sizeof($qualtype), sizeof($qualcont)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference(sizeof($qualtype), sizeof($qualcont)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GeneratePreserveRegions"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"compiler3.0__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GeneratePreserveRegions"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ImplementationType"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDefaultConstructor"
-			value      	("GenerateSet" 199))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DefaultConstructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDefaultConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateCopyConstructor"
-			value      	("GenerateSet" 199))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyConstructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineCopyConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDestructor"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DestructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DestructorKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDestructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssignmentOperation"
-			value      	("GenerateSet" 199))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssignmentVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssignmentKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssignmentOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEqualityOperations"
-			value      	("GenerateSet" 199))
-		    (object Attribute
-			tool       	"cg"
-			name       	"EqualityVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"EqualityKind"
-			value      	("FriendKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineEqualityOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateRelationalOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"RelationalVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"RelationalKind"
-			value      	("FriendKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineRelationalOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateStorageMgmtOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StorageMgmtVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineStorageMgmtOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSubscriptOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSubscriptOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDereferenceOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDereferenceOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateIndirectionOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineIndirectionOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateStreamOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StreamVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineStreamOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ThreeKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"KindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FriendKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"DeclareAndDefine"
-				value      	199)
-			    (object Attribute
-				tool       	"cg"
-				name       	"DeclareOnly"
-				value      	205)
-			    (object Attribute
-				tool       	"cg"
-				name       	"DoNotDeclare"
-				value      	206)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"VisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ConstValue"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDefaultSpecifier"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DefaultSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"IDLElement"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IDLSpecificationType"
-			value      	("IDLSpecSet" 22))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IDLSpecSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Interface"
-				value      	22)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Typedef"
-				value      	54)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Enumeration"
-				value      	8)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	71)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Exception"
-				value      	61)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Struct"
-				value      	51)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Union"
-				value      	81)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyle"
-			value      	("InliningStyleSet" 207))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyleSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"InClassDeclaration"
-				value      	208)
-			    (object Attribute
-				tool       	"cg"
-				name       	"FollowingClassDeclaration"
-				value      	207)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateIDLModule"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyle"
-			value      	("InliningStyleSet" 207))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyleSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"InClassDeclaration"
-				value      	208)
-			    (object Attribute
-				tool       	"cg"
-				name       	"FollowingClassDeclaration"
-				value      	207)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationKind"
-			value      	("OperationKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsConst"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"EntryCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ExitCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"Inline"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsOneWay"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Context"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Raises"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Has"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Ordered"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$supplier")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SelectorName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SelectorType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedHasRelType"
-			value      	("HasRelTypeSet" 47))
-		    (object Attribute
-			tool       	"cg"
-			name       	"HasRelTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Association"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$targetClass")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedContainer"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassContainer"
-			value      	"$supplier *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateQualifiedGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineQualifiedGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateQualifiedSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedSetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedSetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineQualifiedSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberName"
-			value      	"$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssocClassGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassSetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassSetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssocClassSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassForwardReferenceOnly"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedRoleType"
-			value      	("AssocTypeSet" 47))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtAttributeVisibility"
-				value      	211)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Uses"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Subsystem"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBase"
-			value      	("DataBaseSet" 800))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBaseSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"DDL"
-				name       	"ANSI"
-				value      	800)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Oracle"
-				value      	801)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"SQLServer"
-				value      	802)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Sybase"
-				value      	803)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Watcom"
-				value      	804)))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnName"
-			value      	"Id")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnType"
-			value      	"NUMBER(5)")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ViewName"
-			value      	"V_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"TableName"
-			value      	"T_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"InheritSuffix"
-			value      	"_V")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DropClause"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"BaseViews"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DDLScriptFilename"
-			value      	"DDL1.SQL")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ColumnType"
-			value      	"VARCHAR")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Length"
-			value      	"")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"NullsOK"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKey"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Unique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CompositeUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CheckConstraint"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Category"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateIDLModule"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ModuleName"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Format Wizard"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"framework"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rose Model Integrator"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rose Web Publisher"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Version Control"
-		name       	"HiddenTool"
-		value      	FALSE))
-	quid       	"3AB735CF0042"))
--- a/phonebookengines/contactsmodel/inc/CNTDB.H	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/inc/CNTDB.H	Tue Apr 27 16:23:35 2010 +0300
@@ -83,6 +83,15 @@
 */
 const TInt KMaxCustomFilterableFields=4;
 
+/** 
+Enables searching for best matching strategy: 
+Leading zeros are removed then shorter number must be substring of second one.
+@see CContactDatabase::MatchPhoneNumberL
+@publishedAll
+@released
+*/
+const TInt KBestMatchingPhoneNumbers=0;
+
 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 
 /** @internalComponent */
@@ -863,6 +872,7 @@
 
 	//New Phone Matching function, takes a number as a TDesc& and will match from the right of the string
 	//by the the number defined
+	//use KBestMatchingPhoneNumbers as second parameter to enable best matching number strategy
 	IMPORT_C CContactIdArray* MatchPhoneNumberL(const TDesC& aNumber, TInt aMatchLengthFromRight);
 
 
--- a/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/Documentation/issues.txt	Wed Apr 14 15:45:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-issues:
-disk full test:
-old model:
-SetCurrentItem --- doesnt leave, only leaves internally (-1)
-exportcontacts -- exports an empty file when disk is full?
-updatecontactlc -- doesnt leave when disk is full
-importcontacts --  doesnt leave when disk is full
-
-new model:
-CreateOwnCardL() leaks memory, object always changing location in memory?
-
-OOM test:
-old:
-fialing on various instances
-
-new:
-failing on the server-side
-
-contact views tests:
-new model:
-one or more fields being set may be causing an extreme slow down in population of views
-
-
-concurrent notifications tests:
-on the old model  EContactDbObserverEventRollback for contact 0 is generated when a 
-transaction is rolled back this doesn't occur for the new model.
-
-on new model database is damaged after a single update transaction is reverted, this doesnt occur on the old model
-
-
-blobs test:
-new model:
-max blob size is 131kb
-old model:
-max blob size is 192kb
\ No newline at end of file
--- a/phonebookengines/contactsmodel/tsrc/T_CntMatch.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookengines/contactsmodel/tsrc/T_CntMatch.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -238,7 +238,7 @@
 	TESTVALUE(CheckPhoneMatchL(_L("(+1) 0755 345 3644 644"),14),1);
 	TESTVALUE(CheckPhoneMatchL(_L("(+1) 0755 345 3644 644"),15),1);
 	TESTVALUE(CheckPhoneMatchL(_L("(+1) 0755 345 3644 644"),16),1);
-
+    TESTVALUE(CheckPhoneMatchL(_L("(+1) 0755 345 3644 644"), KBestMatchingPhoneNumbers),1);
 	}
 
 
@@ -259,6 +259,7 @@
 	TESTVALUE(CheckPhoneMatchL(_L("123 4567"),13),2);
 	TESTVALUE(CheckPhoneMatchL(_L("123 4567"),14),2);
 	TESTVALUE(CheckPhoneMatchL(_L("123 4567"),15),2);
+	TESTVALUE(CheckPhoneMatchL(_L("123 4567"), KBestMatchingPhoneNumbers),2);
 	}
 
 LOCAL_C void Test4L()
@@ -277,6 +278,7 @@
 	TESTVALUE(CheckPhoneMatchL(_L("6543 123 456700"),13),1);
 	TESTVALUE(CheckPhoneMatchL(_L("6543 123 456700"),14),1);
 	TESTVALUE(CheckPhoneMatchL(_L("6543 123 456700"),15),1);
+	TESTVALUE(CheckPhoneMatchL(_L("6543 123 456700"), KBestMatchingPhoneNumbers),1);
 	}
 
 
@@ -296,6 +298,7 @@
 	TESTVALUE(CheckPhoneMatchL(_L("00 44 1234 56789"),13),0);
 	TESTVALUE(CheckPhoneMatchL(_L("00 44 1234 56789"),14),0);
 	TESTVALUE(CheckPhoneMatchL(_L("00 44 1234 56789"),15),0);
+    TESTVALUE(CheckPhoneMatchL(_L("00 44 1234 56789"), KBestMatchingPhoneNumbers),1);
 	}
 
 /**
@@ -689,6 +692,120 @@
 	TESTVALUE(CheckPhoneMatchL(	KEditedTelNo(), 10),1);
 	}
 
+LOCAL_C void TestBestMatchingStrategyL()
+    {
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("34567"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("358401234567"),KBestMatchingPhoneNumbers),0);
+    TESTVALUE(CheckPhoneMatchL(_L("34567"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("358401234567"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("358401234567"),KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("34567"), KBestMatchingPhoneNumbers),0);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("3560 0123456"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("0000 0123456"),KBestMatchingPhoneNumbers),1);
+    // false positive?
+    TESTVALUE(CheckPhoneMatchL(_L("123456"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("1234567"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("358401234567"),KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("34567"), KBestMatchingPhoneNumbers),0);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("0000 0123456"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("0123456"),KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("123456"), KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("3456"), KBestMatchingPhoneNumbers),0);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("020 7700 9001"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("20 7700 90012"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("020 7700 9081"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("120 7700 9081"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("9120 7700 9081"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("020 7700 9001"), KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("20 7700 90012"), KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("020 7700 9081"), KBestMatchingPhoneNumbers),3);
+    TESTVALUE(CheckPhoneMatchL(_L("120 7700 9081"), KBestMatchingPhoneNumbers),3);
+    TESTVALUE(CheckPhoneMatchL(_L("9120 7700 9081"), KBestMatchingPhoneNumbers),3);
+    TESTVALUE(CheckPhoneMatchL(_L("20 7700 9081"), KBestMatchingPhoneNumbers),3);
+
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("9999 9990 0999 999"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("9000 0000 0000 000"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("0000 0000 0000 000"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("0000 0000 0000 009"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("9 9000 000"),KNullDesC);
+    CreateContactL(KCntName,KCntSurname,_L("9000 000"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("9999 9990 0999 999"), KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("9000 0000 0000 000"), KBestMatchingPhoneNumbers),2);
+    TESTVALUE(CheckPhoneMatchL(_L("0000 0000 0000 000"), KBestMatchingPhoneNumbers),2);
+    TESTVALUE(CheckPhoneMatchL(_L("0000 0000 0000 009"), KBestMatchingPhoneNumbers),1);
+    TESTVALUE(CheckPhoneMatchL(_L("9 9000 000"), KBestMatchingPhoneNumbers),2);
+    TESTVALUE(CheckPhoneMatchL(_L("9000 000"), KBestMatchingPhoneNumbers),2);
+    TESTVALUE(CheckPhoneMatchL(_L("0000 000"), KBestMatchingPhoneNumbers),2);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("358443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("0443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("358443049607"), KBestMatchingPhoneNumbers),1);
+
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("358443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("358443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("0443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("358443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("3049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("358443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("03049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("0443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("0443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("3049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("358443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("03049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("358443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("03049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("0358443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("4443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("3584443049607"), KBestMatchingPhoneNumbers),1);
+    
+    ResetDatabaseL();
+    CreateContactL(KCntName,KCntSurname,_L("584443049607"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("4443049607"), KBestMatchingPhoneNumbers),1);
+    
+    CreateContactL(KCntName,KCntSurname,_L("401234567"),KNullDesC);
+    TESTVALUE(CheckPhoneMatchL(_L("2041234567"), KBestMatchingPhoneNumbers),0);
+    
+    }
+
 /**
 
 @SYMTestCaseID     PIM-T-CNTMATCH-0001
@@ -714,7 +831,7 @@
 	TestMatchWithNumberGreaterThanKCntMaxTextFieldLength();
 	TestMatchWithContactWithMultipleNumbersL();
 	TestMatchWithContactAfterEditL();
-
+	TestBestMatchingStrategyL();
 	CntTest->CloseDatabase();
 	CntTest->DeleteDatabaseL();
     }
--- a/phonebookui/Phonebook2/Application/inc/CPbk2StartupMonitor.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/Application/inc/CPbk2StartupMonitor.h	Tue Apr 27 16:23:35 2010 +0300
@@ -44,6 +44,7 @@
  */
 class CPbk2StartupMonitor : public CBase,
                             public MPbk2StartupMonitor,
+                            public MPbk2StartupMonitorExtension,
                             private MVPbkContactStoreObserver,
                             private MVPbkContactViewObserver
     {
@@ -94,6 +95,14 @@
         void NotifyViewActivationL(
                 TUid aViewId,
                 MVPbkContactViewBase& aContactView );
+        TAny* StartupMonitorExtension( TUid aExtensionUid );
+        
+    public: // From MPbk2StartupMonitorExtension
+        
+        /**
+         * Disables next wait note launch.
+         */
+        void DisableMonitoring();
 
     private: // From MVPbkContactStoreObserver
         void StoreReady(
--- a/phonebookui/Phonebook2/Application/src/CPbk2StartupMonitor.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/Application/src/CPbk2StartupMonitor.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -108,6 +108,11 @@
          */
         void Restart();
         
+        /**
+         * Disables wait note if waiter is started.
+         */
+        void DisableWaitNote();
+        
     private: // From CTimer
         void RunL();
         TInt RunError(
@@ -126,6 +131,9 @@
         MPbk2ProcessDecorator* iDecorator;
         /// Is decorator launched
         TBool iStarted;
+        /// Own: There are exception that even if monitor is started
+        /// wait note should not be displayed.
+        TBool iDisplayWaitNote;
     };
 
 // --------------------------------------------------------------------------
@@ -165,6 +173,7 @@
     // the start up monitor.
     // Wait KOneSecond and then launch the wait note without delay.
     After( TTimeIntervalMicroSeconds32( KOneSecond ) );
+    iDisplayWaitNote = ETrue;
     }
 
 // --------------------------------------------------------------------------
@@ -193,6 +202,7 @@
         {
         iDecorator->ProcessStopped();
         }
+    iDisplayWaitNote = ETrue;
     }
 
 // --------------------------------------------------------------------------
@@ -206,6 +216,15 @@
     }
 
 // --------------------------------------------------------------------------
+// CPbk2StartupMonitor::CPbk2StartupWaiter::DisableWaitNote
+// --------------------------------------------------------------------------
+//
+void CPbk2StartupMonitor::CPbk2StartupWaiter::DisableWaitNote()
+    {
+    iDisplayWaitNote = EFalse;
+    }
+
+// --------------------------------------------------------------------------
 // CPbk2StartupMonitor::CPbk2StartupWaiter::RunL
 // --------------------------------------------------------------------------
 //
@@ -218,12 +237,13 @@
 				( R_QTN_FDN_READING_MEMORY_WAIT_NOTE, EFalse );
 		iDecorator->SetObserver(*this);
     	}
-    if( !iStarted ) // don't start twice
+    if( !iStarted && iDisplayWaitNote ) // don't start twice
     	{
 		const TInt dummy = 0; // wait note doesn't care about amount
 		iDecorator->ProcessStartedL(dummy);
 		iStarted = ETrue;
     	}
+    iDisplayWaitNote = ETrue;
     }
 
 // --------------------------------------------------------------------------
@@ -234,6 +254,7 @@
     {
     CCoeEnv::Static()->HandleError(aError);
     iStarted = EFalse;
+    iDisplayWaitNote = ETrue;
     if (iDecorator)
         {
         iDecorator->ProcessStopped();
@@ -834,4 +855,26 @@
     return nativePhoneBookView;
     }
 
+// --------------------------------------------------------------------------
+// CPbk2StartupMonitor::Extension
+// --------------------------------------------------------------------------
+//
+TAny* CPbk2StartupMonitor::StartupMonitorExtension( TUid aExtensionUid )
+    {
+    if( aExtensionUid == KPbk2StartupMonitorExtensionUid )
+        {
+        return static_cast<MPbk2StartupMonitorExtension*>( this );
+        }
+    return NULL;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2StartupMonitor::DisableWaitNote
+// --------------------------------------------------------------------------
+//
+void  CPbk2StartupMonitor::DisableMonitoring()
+    {
+    iWaiter->DisableWaitNote();
+    }
+
 // End of File
--- a/phonebookui/Phonebook2/GroupExtension/inc/CPguGroupNameQueryDlg.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/GroupExtension/inc/CPguGroupNameQueryDlg.h	Tue Apr 27 16:23:35 2010 +0300
@@ -32,7 +32,8 @@
  * Phonebook 2 group name query dialog.
  * Responsible for quering group name.
  */
-class CPguGroupNameQueryDlg : public CAknTextQueryDialog
+class CPguGroupNameQueryDlg : public CAknTextQueryDialog,
+                                public MCoeForegroundObserver
     {
     public:  // Constructors and destructor
 
@@ -59,7 +60,11 @@
     public: // From CAknTextQueryDialog
         TBool OkToExitL(
                 TInt aButtonId );
-
+        
+    private: // From MCoeForegroundObserver
+        void HandleGainingForeground();
+        void HandleLosingForeground();
+        
     private: // Implementation
         CPguGroupNameQueryDlg(
                 TDes& aDataText,
--- a/phonebookui/Phonebook2/GroupExtension/src/CPguGroupNameQueryDlg.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/GroupExtension/src/CPguGroupNameQueryDlg.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -23,6 +23,8 @@
 #include <MPbk2ContactNameFormatter.h>
 #include <Pbk2GroupUIRes.rsg>
 #include <Pbk2PresentationUtils.h>
+#include <CPbk2AppUiBase.h>
+#include <MPbk2StartupMonitor.h>
 
 // Virtual Phonebook
 #include <MVPbkContactGroup.h>
@@ -74,6 +76,7 @@
 //
 CPguGroupNameQueryDlg::~CPguGroupNameQueryDlg()
     {
+    iCoeEnv->RemoveForegroundObserver( *this );
     delete iOriginalName;
     }
 
@@ -93,6 +96,7 @@
         {
         UpdateGroupTitleL();
         }
+    iCoeEnv->AddForegroundObserverL( *this );
     }
 
 // --------------------------------------------------------------------------
@@ -209,4 +213,39 @@
     return ret;
     }
 
+// --------------------------------------------------------------------------
+// CPguGroupNameQueryDlg::HandleLosingForeground
+// --------------------------------------------------------------------------
+//
+void CPguGroupNameQueryDlg::HandleLosingForeground() 
+    {           
+    }
+
+// --------------------------------------------------------------------------
+// CPguGroupNameQueryDlg::HandleGainingForeground
+// --------------------------------------------------------------------------
+//
+void CPguGroupNameQueryDlg::HandleGainingForeground() 
+    {
+    MPbk2AppUi* pbk2AppUI = NULL;
+    pbk2AppUI = Phonebook2::Pbk2AppUi();
+    
+    if ( pbk2AppUI && pbk2AppUI->Pbk2StartupMonitor() )
+        {
+        TAny* extension = pbk2AppUI->Pbk2StartupMonitor()
+                ->StartupMonitorExtension( KPbk2StartupMonitorExtensionUid );
+
+        if( extension )
+            {
+            MPbk2StartupMonitorExtension* startupMonitorExtension =
+                    static_cast<MPbk2StartupMonitorExtension*>( extension );
+
+            if( startupMonitorExtension )
+                {
+                startupMonitorExtension->DisableMonitoring();
+                }
+            }
+        }
+    }
+
 // End of File
--- a/phonebookui/Phonebook2/MapExtension/inc/cpmapcmd.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/MapExtension/inc/cpmapcmd.h	Tue Apr 27 16:23:35 2010 +0300
@@ -180,6 +180,13 @@
         		TVPbkFieldTypeParameter aAddressType );
         
         /**
+         * Sets CPosLandmark object with land mark name.
+         *
+         * @param  aLandmark        object have geocoordinates.
+         */
+        void SetLandmarkNameL(CPosLandmark& aLandmark);
+        
+        /**
          * Fills CPosLandmark object with Contact geocoordinates.
          *
          * @param  aLandmark 		object have geocoordinates.
--- a/phonebookui/Phonebook2/MapExtension/src/cpmapcmd.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/MapExtension/src/cpmapcmd.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -202,10 +202,6 @@
     
     User::LeaveIfNull(iContact);
     
-    if( iCommandId == EPbk2ExtensionAssignFromMapSelect )
-    	{
-    	iCommandId = EPbk2ExtensionAssignFromMap;
-    	}
     
     PBK2_DEBUG_PRINT(PBK2_DEBUG_STRING
         ("CPmapCmd::ConstructL end"));        
@@ -581,10 +577,10 @@
     CPosLandmark* landmark = CPosLandmark::NewL();
     CleanupStack::PushL( landmark );
 
-    if ( !FillGeoLandmarkL( *landmark, aAddressType ) )
-        {
-        FillLandmarkL( *landmark, aAddressType );
-        }
+    FillGeoLandmarkL( *landmark, aAddressType );
+    FillLandmarkL( *landmark, aAddressType );
+    SetLandmarkNameL(*landmark);
+                
     TLocality locality;
     if ( landmark->NumOfAvailablePositionFields() > 0
         || landmark->GetPosition( locality ) == KErrNone )
@@ -887,6 +883,75 @@
 		}
 	}
 
+void CPmapCmd::SetLandmarkNameL(CPosLandmark& aLandmark)
+    {
+    _LIT(KComma, ",");
+    _LIT(KSpace, " ");
+    
+    TInt length = 0; 
+    TPtrC street;
+    if( aLandmark.IsPositionFieldAvailable( EPositionFieldStreet ) )
+        {
+        aLandmark.GetPositionField( EPositionFieldStreet, street );
+        length += street.Length();
+        }
+    
+    TPtrC city;
+    if( aLandmark.IsPositionFieldAvailable( EPositionFieldCity ) )
+        {
+        aLandmark.GetPositionField( EPositionFieldCity, city );
+        if( length )
+            {
+            length += KComma().Length() + KSpace().Length();
+            }
+        length += city.Length();
+        }   
+    
+    TPtrC country;
+    if( aLandmark.IsPositionFieldAvailable( EPositionFieldCountry ) )
+        {
+        aLandmark.GetPositionField( EPositionFieldCountry, country );
+        if( length )
+            {
+            length += KComma().Length() + KSpace().Length();
+            }
+        length += country.Length();
+        }   
+    
+    RBuf newAddr;
+    newAddr.CreateL( length );
+    CleanupClosePushL( newAddr );
+    
+    if( street.Length() )
+        {
+        newAddr += street;
+        }
+    
+    if( city.Length() )
+        {
+        if( newAddr.Length() > 0 )
+            {
+            newAddr += KComma();
+            newAddr += KSpace();
+            }
+        newAddr += city;
+        }
+    
+    if( country.Length() )
+        {
+        if( newAddr.Length() > 0 )
+            {
+            newAddr += KComma();
+            newAddr += KSpace();
+            }
+        newAddr += country;
+        }
+    if(length)
+        aLandmark.SetLandmarkNameL(newAddr);
+    
+    CleanupStack::PopAndDestroy( &newAddr );
+    }
+
 // --------------------------------------------------------------------------
 // CPmapCmd::FillGeoLandmarkL
 // --------------------------------------------------------------------------
--- a/phonebookui/Phonebook2/MapExtension/src/cpmapcontacteditorextension.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/MapExtension/src/cpmapcontacteditorextension.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -155,7 +155,6 @@
     	if ( CPmapCmd::CheckViewProviderL() )
     		{
     		aMenuPane->SetItemDimmed( EPbk2ExtensionAssignFromMap, EFalse );
-    		aMenuPane->SetItemDimmed( EPbk2ExtensionAssignFromMapSelect, EFalse );
     		}
     	}
     }
@@ -177,7 +176,6 @@
             return ETrue;
             }
         case EPbk2ExtensionAssignFromMap:
-        case EPbk2ExtensionAssignFromMapSelect:
         	{
         	MPbk2Command* cmd = CPmapCmd::NewL( iEditorControl, iContact, aCommandId );
         	// Execute the command
--- a/phonebookui/Phonebook2/MapExtension/src/cpmapuiextensionplugin.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/MapExtension/src/cpmapuiextensionplugin.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -159,7 +159,6 @@
     {
     switch(aCommandId)
     	{
-    	case EPbk2ExtensionAssignFromMapSelect:
     	case EPbk2ExtensionAssignFromMap:
     	case EPbk2ExtensionShowOnMap:
     		return CPmapCmd::NewL( aUiControl, aCommandId );
--- a/phonebookui/Phonebook2/NamesListExtension/inc/CPbk2EcePresenceEngine.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/NamesListExtension/inc/CPbk2EcePresenceEngine.h	Tue Apr 27 16:23:35 2010 +0300
@@ -35,6 +35,8 @@
 class CVPbkContactManager;
 class MVPbkContactLink;
 class MContactPresence;
+class CFbsBitmap;
+class CBSFactory;
 
 // CLASS DECLARATION
 
@@ -99,6 +101,31 @@
          * @exception Panics if called when icon is not available. See GetIconIdForContactL().
          */
         CGulIcon* CreateIconCopyLC( const TPbk2IconId& aIconId );
+        
+        /**
+         * Gets the bitmap and mask for the element from the Branding Server
+         * @param aLanguageId - Language for which Brand is requested        
+         * @param aBrandedBitmap - Ptr to the Bitmap Ownership is transferred to the caller
+         * @param aBrandedMask - Ptr to the BitmapMask Ownership is transferred to the caller
+         * @param aBSFactory - interface for  access brandingserver 
+         * @param aBrandId - brandingId,
+         * @param aElementId - elementId
+         */
+         void GetBitmapFromBrandingServerL(
+                             TLanguage aLanguageId, 
+                             CFbsBitmap*& aBrandedBitmap, 
+                             CFbsBitmap*& aBrandedMask,
+                             CBSFactory& aBSFactory,
+                             const TDesC8& aBrandId, 
+                             const TDesC8& aElementId) ;
+         
+         /**
+         * Loops thro the ServiceTable/SpSettings and finds the
+         * BrandLanguage associated to the BrandId (aBrandId)
+         * @param aBrandId - BrandId mentioned in the ServiceTable
+         * @return TLanguage - Returns the matched Language Id, else 47(ELangInternationalEnglish)
+         */
+         TLanguage CPbk2EcePresenceEngine::FindBrandLanguageIdL( const TDesC8& aBrandId );
 
 
     private: // from MContactPresenceObs
--- a/phonebookui/Phonebook2/NamesListExtension/src/CPbk2EcePresenceEngine.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/NamesListExtension/src/CPbk2EcePresenceEngine.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -26,6 +26,11 @@
 #include <MVPbkViewContact.h>
 #include <MVPbkContactLink.h>
 #include <CVPbkContactManager.h>
+#include <cbsfactory.h>
+#include <contactpresencebrandids.h> 
+#include <mbsaccess.h>
+#include <spsettings.h>
+#include <spproperty.h>
 
 //ECE
 #include "CPbk2UIExtensionInformation.h"
@@ -189,13 +194,114 @@
         Panic( ENlxPanicNoIcons ) );
     __ASSERT_ALWAYS( iconInfo->Bitmap() && iconInfo->BitmapMask(),
     	User::Leave( KErrGeneral ) );
-    CFbsBitmap* newBitmap = CloneBitmapL( *iconInfo->Bitmap() );
-    CFbsBitmap* newBitmapMask = CloneBitmapL( *iconInfo->BitmapMask() );
+    
+    CFbsBitmap* newBitmap = NULL;
+    CFbsBitmap* newBitmapMask = NULL;
+    
+    TLanguage brandingLang = FindBrandLanguageIdL(iconInfo->BrandId());
+    
+    TLanguage userLang = User::Language();
+    TLanguage defaultLang = ELangInternationalEnglish;
+    CBSFactory* brandingFactory = CBSFactory::NewL(KCPBrandDefaultId, KCPBrandAppId );
+    CleanupStack::PushL( brandingFactory );
+  
+    ////
+    //Search for BrandPackage using PhoneLanguage
+    //PhoneLanguage gets the Highest Priority
+    TRAPD( err, GetBitmapFromBrandingServerL( userLang, newBitmap, newBitmapMask, *brandingFactory, iconInfo->BrandId(), iconInfo->ElementId() ) );
+    
+    if ( err && ( userLang != brandingLang ) ) 
+        {
+        //The next priority goes to BrandLanguage set in the SpSettings/service table
+        //during provisioning
+        //Search for BrandPackage using this BrandLanguage  
+        TRAP( err, GetBitmapFromBrandingServerL( brandingLang, newBitmap, newBitmapMask, *brandingFactory, iconInfo->BrandId(), iconInfo->ElementId()));
+        }
+    
+    if ( err && ( brandingLang != defaultLang ) && ( userLang != defaultLang ) ) 
+        {
+        //The least priority goes to the default language which is ELangInternationalEnglish        
+        //Search for BrandPackage using this ELangInternationalEnglish
+        GetBitmapFromBrandingServerL( defaultLang, newBitmap, newBitmapMask, *brandingFactory, iconInfo->BrandId(), iconInfo->ElementId() ) ;        
+        }      
+    ////
+    CleanupStack::PopAndDestroy( brandingFactory );
     CGulIcon* gulIcon = CGulIcon::NewL( newBitmap, newBitmapMask );
     CleanupStack::PushL( gulIcon );
     return gulIcon;
     }
 
+void CPbk2EcePresenceEngine::GetBitmapFromBrandingServerL(
+                    TLanguage aLanguageId, 
+                    CFbsBitmap*& aBrandedBitmap, 
+                    CFbsBitmap*& aBrandedMask,
+                    CBSFactory& aBSFactory,
+                    const TDesC8& aBrandId, 
+                    const TDesC8& aElementId)
+    {   
+    MBSAccess*  brandingAccess = aBSFactory.CreateAccessLC( 
+            aBrandId, aLanguageId );    
+    
+     if ( aBrandId.Length() )
+         {
+         brandingAccess->GetBitmapL( aElementId, aBrandedBitmap, aBrandedMask );        
+         }
+   
+    CleanupStack::PopAndDestroy();  //access    
+    }
+
+
+TLanguage CPbk2EcePresenceEngine::FindBrandLanguageIdL( const TDesC8& aBrandId )
+    {
+    const TInt KMaxBufLength = 512; 
+    CSPSettings* spSettings = CSPSettings::NewLC();
+    RIdArray idArray;
+    CleanupClosePushL(idArray);
+    User::LeaveIfError(spSettings->FindServiceIdsL(idArray));
+    CSPProperty* prop = CSPProperty::NewLC();    
+    HBufC* brandID = HBufC::NewLC(KMaxBufLength);
+    TLanguage servLang = ELangInternationalEnglish;
+    TInt serviceCount = idArray.Count();
+    
+    //The challenge here is to find the ServiceTable entry using BrandId.
+    //Iterate thro each service id and find the BrandId
+    //for each service and check whether it matches to out Input BrandId.
+    //if it matches we have found the service, and now
+    //get the brandlanguage.
+    //Note : The problem with this logic is that it works only
+    //       if all the services brandid is unique. 
+    //       If not GOD needs to help us. 
+    //       This logic is a temporary one untill 
+    //       one of our CR for Changing the Interface, so that you
+    //       get the BrandLanguage as part of the StartGetIconInfoL
+    //       is approved. 
+    //
+    for (TInt index=0; index<serviceCount; index++)
+        {    
+        if ( KErrNone == spSettings->FindPropertyL( idArray[index], EPropertyBrandId, *prop ) )
+            {
+            TPtr des = brandID->Des();            
+            if ( KErrNone == prop->GetValue( des ) )
+                {                
+                TBuf8 <KMaxBufLength> brandIdFromSpSettings;
+                brandIdFromSpSettings.Copy(des);
+                if ( KErrNone == brandIdFromSpSettings.Compare( aBrandId ) )
+                    {
+                    if( KErrNone == spSettings->FindPropertyL( 
+                                    idArray[index], EPropertyBrandLanguage, *prop) )
+                        {                        
+                        prop->GetValue( ( TInt& )servLang );
+                        }                           
+                    break;
+                    }
+                }
+            }
+        }        
+    
+    CleanupStack::PopAndDestroy( 4 ); //brandID, prop, idArray, spSettings
+    
+    return servLang;
+    }
 
 void CPbk2EcePresenceEngine::ReceiveIconInfoL(
     const TDesC8& aPackedLink, const TDesC8& aBrandId, const TDesC8& aElementId )
@@ -429,7 +535,7 @@
 CFbsBitmap* CPbk2EcePresenceEngine::CloneBitmapL( const CFbsBitmap& aOriginalBitmap )
     {
     CFbsBitmap* newBitmap = new (ELeave) CFbsBitmap;
-    newBitmap->Duplicate(aOriginalBitmap.Handle());   
+    newBitmap->Duplicate(aOriginalBitmap.Handle());
     return newBitmap;
     }
 void CPbk2EcePresenceEngine::PresenceSubscribeError( 
--- a/phonebookui/Phonebook2/NamesListExtension/src/CPbk2NlxOpenCcaCmd.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/NamesListExtension/src/CPbk2NlxOpenCcaCmd.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -187,7 +187,7 @@
         {
         LaunchCcaL();   //Sync
         }
-    if ( iState == ERunning )
+    else if ( iState == ERunning )
         {
         if ( iUiControl )
             {
--- a/phonebookui/Phonebook2/ServerApplication/src/CPbk2CommAddressSelectPhase.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ServerApplication/src/CPbk2CommAddressSelectPhase.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -246,6 +246,13 @@
     iState = EMainContactRetrieving;
     iContactRetrieved = ETrue;
     RetrieveContactL();
+    
+    CPbk2ServerAppAppUi& appUi = static_cast<CPbk2ServerAppAppUi&>
+        ( *CEikonEnv::Static()->EikAppUi() );
+
+    // Change layout back to regular
+    appUi.ChangeStatuspaneLayoutL(
+        CPbk2ServerAppAppUi::EStatusPaneLayoutUsual );
     }
 
 // --------------------------------------------------------------------------
--- a/phonebookui/Phonebook2/ServerApplication/src/CPbk2ItemFetcher.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ServerApplication/src/CPbk2ItemFetcher.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -109,9 +109,19 @@
     return selector;
     }
 
-CVPbkFieldTypeSelector* BuildFilterL(
+/**
+ * Builds contact view filter based on selected address select type.
+ *
+ * @param aType                 Address select type.
+ * @param aFieldTypeList        Master field type list.
+ * @param aShowEmailInSendMsg   Indicates whether email fields are valid
+ *                              for message sending purposes (UniEditor).
+ * @return  Contact view filter.
+ */
+CVPbkFieldTypeSelector* BuildViewFilterL(
         TAiwAddressSelectType aType,
-        const MVPbkFieldTypeList& aFieldTypeList )
+        const MVPbkFieldTypeList& aFieldTypeList,
+        TBool aShowEmailInSendMsg )
     {
     CVPbkFieldTypeSelector* selector = NULL;
     
@@ -119,10 +129,21 @@
         {
         case EAiwMMSSelect:
             {
-            selector = VPbkFieldTypeSelectorFactory::
-                BuildContactActionTypeSelectorL(
-                    VPbkFieldTypeSelectorFactory::EUniEditorSelector,
+            // Do not use VPbkFieldTypeSelectorFactory's EUniEditorSelector
+            // filter here, as it's performance is not good.
+            // For view filtering needs, we need to use a fast filter.
+            if ( aShowEmailInSendMsg )
+                {
+                selector = VPbkFieldTypeSelectorFactory::BuildFieldTypeSelectorL
+                    ( VPbkFieldTypeSelectorFactory::EMmsAddressSelector,
                     aFieldTypeList );
+                }
+            else
+                {
+                selector = VPbkFieldTypeSelectorFactory::BuildFieldTypeSelectorL
+                    ( VPbkFieldTypeSelectorFactory::EPhoneNumberSelector,
+                    aFieldTypeList );
+                }
             break;
             }
         case EAiwEMailSelect:
@@ -147,10 +168,12 @@
                 BuildContactActionTypeSelectorL(
                     VPbkFieldTypeSelectorFactory::EVOIPCallSelector,
                     aFieldTypeList );
+            break;
             }
-        break;
         default:
+            {
             break;
+            }
         }
     
     return selector;
@@ -268,8 +291,10 @@
     // filter specified by client
     else
         {
-        iContactViewFilter = BuildFilterL( iAddressSelectType,
-                appUi.ApplicationServices().ContactManager().FieldTypes() );
+        iContactViewFilter = BuildViewFilterL( iAddressSelectType,
+                appUi.ApplicationServices().ContactManager().FieldTypes(),
+                appUi.ApplicationServices().LocallyVariatedFeatureEnabled
+                ( EVPbkLVShowEmailInSendMsg ) );
         
         // Filter specified by client
         if ( iContactViewFilter == NULL )
--- a/phonebookui/Phonebook2/ServerApplication/src/CPbk2MultiAssignDataPhase.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ServerApplication/src/CPbk2MultiAssignDataPhase.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -294,7 +294,29 @@
         ( TContactOp /*aOpCode*/, TInt aErrorCode, TBool /*aErrorNotified*/ )
     {
     // Locking the contact failed
-    iObserver.PhaseError( *this, aErrorCode );
+     if ( KErrInUse == aErrorCode )
+        {
+        CCoeEnv::Static()->HandleError( aErrorCode );
+        }
+
+     // If the contact operation failed, the iStoreContact is expected to be deleted,
+     // otherwise it will lead to memory leak.
+    if ( iStoreContact )
+        {
+        delete iStoreContact;
+        iStoreContact = NULL;
+        }
+
+    // if iContactsProcessed > 0, the note (how many contacts had been processed) needs to be shown.
+    if ( (iContactLinks->Count() > 0) || (iContactsProcessed > 0) )
+        {
+        ContinueL();
+        }
+    else
+        {
+        iObserver.PhaseError( *this, aErrorCode );	
+        }
+
     }
 
 // --------------------------------------------------------------------------
--- a/phonebookui/Phonebook2/UIControls/inc/CPbk2ContactEditorDlgImpl.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/inc/CPbk2ContactEditorDlgImpl.h	Tue Apr 27 16:23:35 2010 +0300
@@ -371,6 +371,7 @@
                 CPbk2ContactEditorArrayItem* aCurrentField,
                 const TKeyEvent& aKeyEvent, 
                 TEventCode aType );
+        void RestorePrevNaviDecoratorL();
 
     private: // Data structures
 
@@ -464,6 +465,10 @@
         /// Ref: A pointer to stack variable in CloseDialog() for knowing
         /// if the destructor has already been called
         TBool* iDestroyedPtr;
+        /// Ref: Holds the TopMost NaviDecorator before pushing 
+        /// the empty one on to the top.
+        /// Doesnt Own.
+        CAknNavigationDecorator* iPrevNaviDecorator;
     };
 
 #endif // CPBK2CONTACTEDITORDLGIMPL_H
--- a/phonebookui/Phonebook2/UIControls/inc/CPbk2FetchDlgPage.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/inc/CPbk2FetchDlgPage.h	Tue Apr 27 16:23:35 2010 +0300
@@ -23,7 +23,6 @@
 #include <e32base.h>
 #include "MPbk2FetchDlgPage.h"
 #include "MPbk2ControlObserver.h"
-#include "MPbk2StoreConfigurationObserver.h"
 
 // FORWARD DECLARATIONS
 class CPbk2NamesListControl;
@@ -39,8 +38,7 @@
  */
 NONSHARABLE_CLASS(CPbk2FetchDlgPage) : public CBase,
                                        public MPbk2FetchDlgPage,
-                                       private MPbk2ControlObserver,
-                                       private MPbk2StoreConfigurationObserver
+                                       private MPbk2ControlObserver
     {
     public: // Constructors and destructor
 
@@ -81,9 +79,6 @@
         void HandleControlEventL(
                 MPbk2ContactUiControl& aControl,
                 const TPbk2ControlEvent& aEvent );
-    private: // From MPbk2StoreConfigurationObserver
-        void ConfigurationChanged();
-        void ConfigurationChangedComplete();
 
     private: // Implementation
         CPbk2FetchDlgPage(
@@ -108,7 +103,6 @@
         CPbk2NamesListControl* iControl;
         /// Ref: Contact view
         MVPbkContactViewBase* iContactView;
-        CPbk2StoreConfiguration* iStoreConfiguration;
         /// Own: Control id
         TInt iControlId;
         /// Own: Flag indicating is the control ready
--- a/phonebookui/Phonebook2/UIControls/rss/Pbk2ContactEditorDlg.rss	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/rss/Pbk2ContactEditorDlg.rss	Tue Apr 27 16:23:35 2010 +0300
@@ -52,12 +52,6 @@
             },
         MENU_ITEM
             {
-	    command = EPbk2ExtensionAssignFromMapSelect;
-            txt = qtn_cca_opt_select;
-            flags = EEikMenuItemDimmed;
-	    },
-        MENU_ITEM
-            {
             command = EPbk2CmdEditorAddImage;
             txt = qtn_phob_opt_add_image;
             },
--- a/phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorDlgImpl.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorDlgImpl.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -69,6 +69,7 @@
 #include "Pbk2IconId.hrh"
 #include <Pbk2UID.h>
 #include <pbk2mapcommands.hrh>
+#include <MPbk2StartupMonitor.h>
 
 // Virtual Phonebook
 #include <CVPbkContactManager.h>
@@ -237,6 +238,7 @@
     if (iNaviContainer)
         {
         iNaviContainer->Pop();
+        TRAP_IGNORE(RestorePrevNaviDecoratorL());        
         }
 
     delete iStoreContact;
@@ -937,6 +939,7 @@
                             if (iNaviContainer)
                                 {
                                 iNaviContainer->Pop();
+                                RestorePrevNaviDecoratorL();
                                 iNaviContainer = NULL;
                                 }
     
@@ -965,6 +968,7 @@
                             if (iNaviContainer)
                                 {
                                 iNaviContainer->Pop();
+                                RestorePrevNaviDecoratorL();
                                 iNaviContainer = NULL;
                                 }
     
@@ -1544,7 +1548,6 @@
             IdOfFocusControl());
     if (iParams.iActiveView == TPbk2ContactEditorParams::EEditorView)
         {
-        DimItem(aMenuPane, EPbk2ExtensionAssignFromMapSelect);
         DimItem(aMenuPane, EPbk2ExtensionAssignFromMap);
         if (current && current->ContactEditorUIField()
                 && Pbk2AddressTools::MapCtrlTypeToAddress(
@@ -1561,12 +1564,6 @@
         }
     else
         {
-        if (!current || !current->ContactEditorUIField()
-                || current->ContactEditorUIField()->UIField()->CtrlType()
-                        != EPbk2FieldCtrlTypeExtAssignFromMapsEditor)
-            {
-            DimItem(aMenuPane, EPbk2ExtensionAssignFromMapSelect);
-            }
         DimItem(aMenuPane, EPbk2CmdAddItem);
         DimItem(aMenuPane, EPbk2CmdEditorOpen);
         DimItem(aMenuPane, EPbk2CmdDeleteItem); 
@@ -1640,6 +1637,7 @@
             if (iNaviContainer)
                 {
                  iNaviContainer->Pop();
+                 RestorePrevNaviDecoratorL();
                  iNaviContainer = NULL;
                  }
             MakeVisible( EFalse );
@@ -2484,6 +2482,9 @@
         iNaviContainer
                 = static_cast<CAknNavigationControlContainer *> (statusPane->ControlL(
                         TUid::Uid(EEikStatusPaneUidNavi)));
+        
+        iPrevNaviDecorator =  iNaviContainer->Top();        
+        
         iNaviContainer->PushDefaultL(ETrue);
         }
     }
@@ -3425,6 +3426,44 @@
 //
 void CPbk2ContactEditorDlgImpl::HandleGainingForeground() 
     {
+    /*
+     * iAppServices is provided to enable editor use outside from pbk2 context
+     * no need to disable startup monitor in that case
+     */
+    if( !iAppServices )
+        {
+        MPbk2AppUi* pbk2AppUI = NULL;
+        pbk2AppUI = Phonebook2::Pbk2AppUi();
+        
+        if ( pbk2AppUI && pbk2AppUI->Pbk2StartupMonitor() )
+            {
+            TAny* extension = pbk2AppUI->Pbk2StartupMonitor()
+                    ->StartupMonitorExtension( KPbk2StartupMonitorExtensionUid );
+    
+            if( extension )
+                {
+                MPbk2StartupMonitorExtension* startupMonitorExtension =
+                        static_cast<MPbk2StartupMonitorExtension*>( extension );
+    
+                if( startupMonitorExtension )
+                    {
+                    startupMonitorExtension->DisableMonitoring();
+                    }
+                }
+            }
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactEditorDlgImpl::RestorePrevNaviDecoratorL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactEditorDlgImpl::RestorePrevNaviDecoratorL() 
+    {
+    if ( iNaviContainer && iPrevNaviDecorator ) 
+        {                                  
+        iNaviContainer->PushL(*iPrevNaviDecorator);        
+        }
     }
 
 
--- a/phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlg.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlg.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -41,6 +41,9 @@
 #include "CPbk2NamesListControl.h"
 #include <CPbk2AppUiBase.h>
 #include <MPbk2KeyEventHandler.h>
+#include <MPbk2AppUi.h>
+#include <MPbk2ApplicationServices.h>
+#include <MPbk2ContactViewSupplier.h>
 
 // Virtual Phonebook
 #include <CVPbkContactLinkArray.h>
@@ -165,6 +168,11 @@
         {
         *iSelfPtr = NULL;
         }
+        
+    if ( iStoreConfiguration )
+        {
+        iStoreConfiguration->RemoveObserver( *this );
+        }
 
     RemoveCommandFromMSK();
     delete iTabSkinDelay;
@@ -219,6 +227,10 @@
     // in the current resolution/orientation. 
     // So if either one returns EFalse, then MSK is not shown.
     iMSKEnabled = (AknLayoutUtils::MSKEnabled() && Layout_Meta_Data::IsMSKEnabled());
+    
+    // Add the store observer.
+    iStoreConfiguration = &Phonebook2::Pbk2AppUi()->ApplicationServices().StoreConfiguration();
+    iStoreConfiguration->AddObserverL( *this );
     }
 
 // --------------------------------------------------------------------------
@@ -1316,4 +1328,27 @@
         }
     }
 
+
+// --------------------------------------------------------------------------
+// CPbk2FetchDlg::ConfigurationChanged
+// --------------------------------------------------------------------------
+//
+void CPbk2FetchDlg::ConfigurationChanged()
+    {
+    // Do nothing.
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2FetchDlg::ConfigurationChangedComplete
+// --------------------------------------------------------------------------
+//
+void CPbk2FetchDlg::ConfigurationChangedComplete()
+    {
+    // When changing the setting in phonebook.
+    // Fetch dialog will exit and return back to the last view.
+    // For example:
+    // Speeddial: back to its main view.
+    // Message:   back to its editor view.
+    TryExitL( EAknSoftkeyBack );
+    }
 // End of File
--- a/phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlgPage.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlgPage.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -27,9 +27,6 @@
 #include <Pbk2UIControls.hrh>
 #include <Pbk2UIControls.rsg>
 #include <CPbk2ViewState.h>
-#include <MPbk2AppUi.h>
-#include <MPbk2ApplicationServices.h>
-#include <MPbk2ContactViewSupplier.h>
 
 // Virtual Phonebook
 #include <MVPbkContactViewBase.h>
@@ -90,10 +87,6 @@
         {
         iContactView->RemoveObserver( *iControl );
         }
-    if ( iStoreConfiguration )
-        {
-        iStoreConfiguration->RemoveObserver( *this );
-        }
     }
 
 // --------------------------------------------------------------------------
@@ -108,8 +101,6 @@
 
     iControl->AddObserverL( *this );
     iContactView->AddObserverL( *iControl );
-    iStoreConfiguration = &Phonebook2::Pbk2AppUi()->ApplicationServices().StoreConfiguration();
-    iStoreConfiguration->AddObserverL( *this );
 
     AknLayoutUtils::LayoutControl
         ( iControl, iParentDlg.FetchDlgClientRect(),
@@ -391,43 +382,4 @@
         }
     return text;
     }
-
-// --------------------------------------------------------------------------
-// CPbk2FetchDlgPage::ConfigurationChanged
-// --------------------------------------------------------------------------
-//
-void CPbk2FetchDlgPage::ConfigurationChanged()
-    {
-    if ( iControl )
-        {
-        iControl->Reset();
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CPbk2FetchDlgPage::ConfigurationChangedComplete
-// --------------------------------------------------------------------------
-//
-void CPbk2FetchDlgPage::ConfigurationChangedComplete()
-    {
-    if ( iControl )
-        {
-        MVPbkContactViewBase* allContactsView = NULL;
-
-        TRAPD( res, allContactsView = Phonebook2::Pbk2AppUi()->
-            ApplicationServices().ViewSupplier().AllContactsViewL() );
-
-        if ( res == KErrNone )
-            {
-            TRAP( res, iControl->SetViewL( *allContactsView ) );
-            iControl->DrawNow();
-            }
-
-        if ( res != KErrNone )
-            {
-            CCoeEnv::Static()->HandleError( res );
-            iControl->Reset();
-            }
-        }
-    }
 // End of File
--- a/phonebookui/Phonebook2/UIControls/src/CPbk2NamesListControl.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/CPbk2NamesListControl.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -853,6 +853,9 @@
     HandleMassUpdateResetCounters();
     iListBox.SetCurrentItemIndex(0);
     iListBox.SetTopItemIndex(0);
+
+    //Update the items of listbox in NameListView
+    iListBox.DrawDeferred();
     }
 
 ///////////////////////// End of helper classes /////////////////////////////
@@ -893,8 +896,8 @@
                 iContainer( aContainer ),
                 iNameFormatter( aNameFormatter ),
                 iStoreProperties( aStoreProperties ),
-                iThumbManager( aThumbManager ),
-                iAllowPointerEvents( ETrue )
+                iAllowPointerEvents( ETrue ),                
+                iThumbManager( aThumbManager )
     {
     }
 
@@ -1482,6 +1485,8 @@
     {
     if( !iAllowPointerEvents )
         {
+		//Passing event to listbox needed even if iCurrentState would be skipped (fix for ou1cimx1#316139)
+        iListBox->HandlePointerEventL( aPointerEvent ); 
         return;
         }
     if ( AknLayoutUtils::PenEnabled() )
--- a/phonebookui/Phonebook2/UIControls/src/CPbk2ThumbnailManager.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/CPbk2ThumbnailManager.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -1077,9 +1077,21 @@
 void CPbk2ThumbnailManager::ContactAddedToView(
     MVPbkContactViewBase& /*aView*/, 
     TInt aIndex, 
-    const MVPbkContactLink& /*aContactLink*/ )
+    const MVPbkContactLink& aContactLink )
     {
-    iContactThumbnails.Insert( NULL, aIndex );
+    CPbk2TmItem* item = NULL;
+    TRAPD( err,
+        {
+        item = CPbk2TmItem::NewL( aContactLink.CloneLC(), aIndex );
+        CleanupStack::Pop();
+        });
+    if( KErrNone == err )
+        {
+        // set default icon index
+        item->SetIconArrayIndexAndId( iDefaultIconIndex, iDefaultIconId );
+        item->SetHasThumbnail( ETrue );
+        iContactThumbnails.Insert( item, aIndex );
+        }
     ResetIndexes();
     }
 
--- a/phonebookui/Phonebook2/UIControls/src/cpbk2filteredviewstack.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/cpbk2filteredviewstack.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -1146,7 +1146,7 @@
         {
         // Always forward top view events to clients
         SendEventToObservers( *this, iViewObservers,
-            MVPbkContactViewObserver::ContactViewUnavailable );
+            &MVPbkContactViewObserver::ContactViewUnavailable );
         }
     }
 
@@ -1167,7 +1167,7 @@
     if ( &aView == iBaseViewElement->View() )
         {
         SendEventToObservers( *this, iStackObservers,
-            MPbk2FilteredViewStackObserver::ContactAddedToBaseView, aIndex,
+            &MPbk2FilteredViewStackObserver::ContactAddedToBaseView, aIndex,
             aContactLink );
         }
 
@@ -1175,7 +1175,7 @@
         {
         // Always forward only top view events to clients
         SendEventToObservers( *this, iViewObservers,
-            MVPbkContactViewObserver::ContactAddedToView, aIndex,
+            &MVPbkContactViewObserver::ContactAddedToView, aIndex,
             aContactLink );
         }
     }
@@ -1196,7 +1196,7 @@
         {
         // Always forward top view events to clients
         SendEventToObservers( *this, iViewObservers,
-            MVPbkContactViewObserver::ContactRemovedFromView, aIndex,
+            &MVPbkContactViewObserver::ContactRemovedFromView, aIndex,
             aContactLink );
         }
     }
@@ -1237,7 +1237,7 @@
     // Always forward view erros to clients. The view stack is not in valid
     // state and client must reset the stack
     SendEventToObservers( *this, iViewObservers,
-        MVPbkContactViewObserver::ContactViewError, aError,
+        &MVPbkContactViewObserver::ContactViewError, aError,
         aErrorNotified );
     }
 
@@ -1411,7 +1411,7 @@
         ContactViewReady"));
 
         SendEventToObservers( *this, iViewObservers,
-            MVPbkContactViewObserver::ContactViewReady );
+            &MVPbkContactViewObserver::ContactViewReady );
         }
     }
 
--- a/phonebookui/Phonebook2/UIControls/src/cpbk2predictiveviewstack.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/cpbk2predictiveviewstack.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -684,7 +684,7 @@
     SendBaseViewChangedEvent();
 
     SendEventToObservers( *this, iViewObservers,
-        MVPbkContactViewObserver::ContactViewReady );
+        &MVPbkContactViewObserver::ContactViewReady );
     }
 
 // --------------------------------------------------------------------------
@@ -696,7 +696,7 @@
     {
     iViewReady = EFalse;
     SendEventToObservers( *this, iViewObservers,
-        MVPbkContactViewObserver::ContactViewUnavailable );
+        &MVPbkContactViewObserver::ContactViewUnavailable );
     }
 
 // --------------------------------------------------------------------------
@@ -715,12 +715,12 @@
    if ( iBaseView == &aView )
         {
         SendEventToObservers( *this, iStackObservers,
-            MPbk2FilteredViewStackObserver::ContactAddedToBaseView, aIndex,
+            &MPbk2FilteredViewStackObserver::ContactAddedToBaseView, aIndex,
             aContactLink );
         
         // Always forward only top view events to clients
         SendEventToObservers( *this, iViewObservers,
-            MVPbkContactViewObserver::ContactAddedToView, aIndex,
+            &MVPbkContactViewObserver::ContactAddedToView, aIndex,
             aContactLink );
         }
     }
@@ -740,7 +740,7 @@
         {
         // Always forward top view events to clients
         SendEventToObservers( *this, iViewObservers,
-            MVPbkContactViewObserver::ContactRemovedFromView, aIndex,
+            &MVPbkContactViewObserver::ContactRemovedFromView, aIndex,
             aContactLink );
          }
     }
@@ -758,7 +758,7 @@
         {
         // Always forward only top view events to clients
         SendEventToObservers( *this, iViewObservers,
-            MVPbkContactViewObserver::ContactViewError, aError,
+            &MVPbkContactViewObserver::ContactViewError, aError,
             aErrorNotified );
         }
     }
--- a/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchercontacthandler.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchercontacthandler.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -376,24 +376,26 @@
                 CCACOMMLAUNCHER_ROMARRAY_SIZE( KCCAppCommLauncherVoiceCallGroup )); 
             break;
         case VPbkFieldTypeSelectorFactory::EUniEditorSelector: 
-        	 TInt flags = 0;
-        	 CRepository* key = CRepository::NewL(TUid::Uid(KCRUidPhonebook));
-        	 TInt err = key->Get(KPhonebookLocalVariationFlags, flags);
+            {
+            TInt flags = 0;
+            CRepository* key = CRepository::NewL( TUid::Uid( KCRUidPhonebook ) );
+            TInt err = key->Get( KPhonebookLocalVariationFlags, flags );
         	            
-        	 if ( flags & EVPbkLVShowEmailInSendMsg)
-        		 {
-        		 isMatch = FieldArrayAndContactActionMatch( 
-        		          aContactField, KCCAppCommLauncherMessageEmailGroup, 
-        		          CCACOMMLAUNCHER_ROMARRAY_SIZE( KCCAppCommLauncherMessageEmailGroup ));
-        		 }
-        	 else
-        		 {       	
-        		 isMatch = FieldArrayAndContactActionMatch( 
-        				 aContactField, KCCAppCommLauncherMessageGroup, 
-        				 CCACOMMLAUNCHER_ROMARRAY_SIZE( KCCAppCommLauncherMessageGroup )); 
-        		 }
-        	 delete key;
-        	 break;
+            if ( flags & EVPbkLVShowEmailInSendMsg )
+                {
+                isMatch = FieldArrayAndContactActionMatch( 
+                    aContactField, KCCAppCommLauncherMessageEmailGroup, 
+                    CCACOMMLAUNCHER_ROMARRAY_SIZE( KCCAppCommLauncherMessageEmailGroup ) );
+                }
+            else
+                {       	
+                isMatch = FieldArrayAndContactActionMatch( 
+                    aContactField, KCCAppCommLauncherMessageGroup, 
+                    CCACOMMLAUNCHER_ROMARRAY_SIZE( KCCAppCommLauncherMessageGroup ) ); 
+                }
+            delete key;
+            }
+            break;
         case VPbkFieldTypeSelectorFactory::EEmailEditorSelector:        
             isMatch = FieldArrayAndContactActionMatch( 
                 aContactField, KCCAppCommLauncherEmailGroup, 
--- a/phonebookui/Phonebook2/ccapplication/ccamycardplugin/data/ccappmycardpluginrsc.rss	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccamycardplugin/data/ccappmycardpluginrsc.rss	Tue Apr 27 16:23:35 2010 +0300
@@ -90,7 +90,7 @@
             { 
             command = ECCAppMyCardCmdEdit;
             txt = qtn_phob_opt_entry_edit;
-            },         
+            },  
         MENU_ITEM 
             { 
             command = ECCappMyCardCmdSendVCard;
@@ -100,7 +100,13 @@
             { 
             command = ECCappMyCardCmdDelete;
             txt = qtn_phob_my_card_clear;
-            }, 	        	        	
+            }, 	 
+        MENU_ITEM 
+            { 
+            command = ECCAppMyCardCmdStylusCopyDetailCmd;
+            txt = qtn_cca_options_copy_detail;
+            flags = EEikMenuItemSpecific;
+            },  
         MENU_ITEM 
             { 
             command = EAknCmdHelp;
@@ -1713,17 +1719,5 @@
         };
     }
 
-// ---------------------------------------------------------------------------
-// r_mycard_contact_copy_detail_stylus_menu
-// ---------------------------------------------------------------------------
-//
-RESOURCE STYLUS_POPUP_MENU r_mycard_contact_copy_detail_stylus_menu
-    {
-    items =
-        {
-        STYLUS_POPUP_MENU_ITEM { txt = qtn_cca_options_copy_detail; 
-                             command = ECCAppMyCardCmdStylusCopyDetailCmd; }        
-        };
-    }
 
 //End of File
--- a/phonebookui/Phonebook2/ccapplication/ccamycardplugin/inc/ccappmycard.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccamycardplugin/inc/ccappmycard.h	Tue Apr 27 16:23:35 2010 +0300
@@ -177,6 +177,13 @@
      */
     void ForceCreateMyCard();
     
+    /*
+    * Returns information about header control blocking
+    * 
+    * @return ETrue if the header control events are blocked, EFalse otherwise 
+    */
+    TBool HeaderControlBlocked();
+    
 private: // from MVPbkContactStoreObserver
      void StoreReady(MVPbkContactStore& aContactStore);
      void StoreUnavailable(MVPbkContactStore& aContactStore, 
@@ -307,7 +314,7 @@
 	/// Force editor flag
 	TBool iForceCreateMyCard;
 	// Flag for editor state
-	TBool iDialogIsRunning;
+	TBool iDialogIsRunning;	
 	};
 
 #endif // CCAPPMYCARD_H
--- a/phonebookui/Phonebook2/ccapplication/ccamycardplugin/inc/ccappmycardcontainer.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccamycardplugin/inc/ccappmycardcontainer.h	Tue Apr 27 16:23:35 2010 +0300
@@ -59,7 +59,6 @@
     public MPbk2ContactUiControl,
     public MCCAStatusControlObserver,
     public MMyCardHeaderControlObserver,
-    public MAknLongTapDetectorCallBack,
     public MPbk2ClipListBoxText
     {
 public: // constructor and destructor
@@ -152,16 +151,6 @@
     void MyCardHeaderControlClickL( TPoint aPos );
     
     /**
-     * Default callback function for CAknLongTapDetector member object.
-     * Base class implementation does nothing
-     * 
-     * @param aPenEventLocation Long tap event location relative to parent control.
-     * @param aPenEventScreenLocation Long tap event location relative to screen.
-     */
-    void HandleLongTapEventL( const TPoint& aPenEventLocation, 
-        const TPoint& aPenEventScreenLocation );
-    
-    /**
     * From CoeControl
     * Overridden to receive pointer events
     */
@@ -348,23 +337,6 @@
 
 	TInt iNameOrder;
 	
-	/**
-     * iLongTapDetector
-     * Own.
-     */
-    CAknLongTapDetector* iLongTapDetector;  
-    
-    /** 
-      * Contact detail selection stylus popup menu 
-      * Own. 
-      */  
-    CAknStylusPopUpMenu* iDetailsPopup;
-    
-    /*
-     * Flag for checking if Stylys opened 
-     */
-    TBool iLongTapHandled;    
-    
     /**
      * Not own. Listbox's icon array
      */
--- a/phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycard.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycard.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -375,6 +375,15 @@
     }
 
 // ---------------------------------------------------------------------------
+// CCCAppMyCard::HeaderControlBlocked
+// ---------------------------------------------------------------------------
+//
+TBool CCCAppMyCard::HeaderControlBlocked()
+    {
+    return iDialogIsRunning;
+    }
+
+// ---------------------------------------------------------------------------
 // CCCAppMyCard::NotifyObservers
 // ---------------------------------------------------------------------------
 //
@@ -574,7 +583,7 @@
 	CCCAppMyCard* self = static_cast<CCCAppMyCard*>( aPtr );
 	TRAPD( err, self->LaunchContactEditorL( TPbk2ContactEditorParams::ENewContact | 
         TPbk2ContactEditorParams::EOwnContact ) );
-	
+			
 	if( err != KErrNone )
         {        
         self->iPlugin.HandleError( err );
@@ -800,7 +809,7 @@
     	{
     	TRAPD( err, LaunchContactEditorL( TPbk2ContactEditorParams::EModified | 
             TPbk2ContactEditorParams::EOwnContact) );
-    	
+    	    	    	
     	if( err == KLeaveExit )
     	    {                                                                           
             iCloseCallBack->Call();
--- a/phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycardcontainer.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycardcontainer.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -120,8 +120,6 @@
     delete iFactoryExtensionNotifier;
     delete iViewLauncher;
     delete iImageSelectionPopup;
-    delete iLongTapDetector; 
-    delete iDetailsPopup;
     }
 
 // ----------------------------------------------------------------------------
@@ -231,7 +229,6 @@
     TCallBack callBack( CCCAppMyCardContainer::CheckExtensionFactoryL, this );
     iFactoryExtensionNotifier->ObserveExtensionFactoryL( callBack );
     
-    iLongTapDetector = CAknLongTapDetector::NewL( this );
     CCA_DP(KMyCardLogFile, CCA_L("<-CCCAppMyCardContainer::ConstructL()"));
     }
 
@@ -382,10 +379,7 @@
     
 	delete iImageSelectionPopup;
 	iImageSelectionPopup = NULL;
-	
-	delete iDetailsPopup;
-	iDetailsPopup = NULL;
-	
+
 	if( !iImageLoader )
 	    {
         if( !iModel.IsEmpty() )
@@ -620,13 +614,6 @@
         case EEventItemDoubleClicked:
         case EEventItemSingleClicked:
             {
-            // Don't open the editor if stylusMenu opened using longTap 
-            if( iLongTapHandled ) 
-                {
-                iLongTapHandled = EFalse;
-                return;
-                }
-            
             // start the editor and pass tapped field index
             iPlugin.EditL( FocusedFieldIndex() );
             break;
@@ -1087,6 +1074,11 @@
 //
 void CCCAppMyCardContainer::MyCardHeaderControlClickL( TPoint aPos )
 {
+    if( iPlugin.MyCard().HeaderControlBlocked() )
+        {
+        return;
+        }
+            
     if ( !iImageSelectionPopup )
         {
         iImageSelectionPopup = CAknStylusPopUpMenu::NewL( &iPlugin, aPos );
@@ -1126,54 +1118,12 @@
 }
  
 // ----------------------------------------------------------------------------
-// CCCAppMyCardContainer::HandleLongTapEventL()
-// ----------------------------------------------------------------------------
-//
-void CCCAppMyCardContainer::HandleLongTapEventL( const TPoint& /*aPenEventLocation*/, 
-                                    const TPoint& /*aPenEventScreenLocation*/ )
-    {       
-    if( iDetailsPopup )
-        {
-        iLongTapHandled = ETrue;
-        iDetailsPopup->ShowMenu();
-        }
-    }
- 
-// ----------------------------------------------------------------------------
 // CCCAppCommLauncherContainer::HandlePointerEventL()
 // ----------------------------------------------------------------------------
 //
 void CCCAppMyCardContainer::HandlePointerEventL(
     const TPointerEvent& aPointerEvent )
     {               
-    TInt index;
-    TPoint pos = aPointerEvent.iPosition;
-    
-    if ( iListBox->View()->XYPosToItemIndex( aPointerEvent.iPosition, index ) )
-       {
-       iLongTapDetector->PointerEventL( aPointerEvent );
-         
-       if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
-           {
-           // Pressed Down Effect
-           iListBox->View()->ItemDrawer()->SetFlags(
-                   CListItemDrawer::EPressedDownState );
-           }
-       }
-
-   if ( !iDetailsPopup )
-      {
-      iDetailsPopup = CAknStylusPopUpMenu::NewL( &iPlugin, aPointerEvent.iPosition ); 
-      TInt resourceReaderId = R_MYCARD_CONTACT_COPY_DETAIL_STYLUS_MENU; 
-      TResourceReader reader;
-      iCoeEnv->CreateResourceReaderLC( reader , resourceReaderId );
-      iDetailsPopup->ConstructFromResourceL( reader );
-      CleanupStack::PopAndDestroy(); // reader
-      }
-      
-    PosToScreenCoordinates( this, pos );    
-    iDetailsPopup->SetPosition( pos, CAknStylusPopUpMenu::EPositionTypeRightBottom );      
-   
     CCoeControl::HandlePointerEventL( aPointerEvent );              
     }
 
--- a/phonebookui/Phonebook2/ccapplication/ccapp/group/ccaapp.mmp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccapp/group/ccaapp.mmp	Tue Apr 27 16:23:35 2010 +0300
@@ -66,6 +66,8 @@
 USERINCLUDE     ../sis
 USERINCLUDE     ../../../inc
 USERINCLUDE     ../../../../../ccservices/cmsservices/cmsengine/inc
+USERINCLUDE     ../../ccacommlauncherplugin/inc
+USERINCLUDE     ../../ccadetailsviewplugin/inc
 
 LIBRARY         euser.lib
 LIBRARY         apparc.lib
--- a/phonebookui/Phonebook2/ccapplication/ccapp/inc/ccapppluginloader.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccapp/inc/ccapppluginloader.h	Tue Apr 27 16:23:35 2010 +0300
@@ -312,7 +312,7 @@
      * @param aInfo, object of CImplementationInformation
      * @return opaque integer value.
      */
-    TInt CCCAppPluginLoader::OpaqueValueFrom( const CImplementationInformation& aInfo );
+    TInt OpaqueValueFrom( const CImplementationInformation& aInfo );
     
     /**
      * Loads a plugin.
--- a/phonebookui/Phonebook2/ccapplication/ccapp/src/ccaappstatuspanehandler.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccapp/src/ccaappstatuspanehandler.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -18,8 +18,11 @@
 
 // INCLUDE FILES
 #include "ccappheaders.h"
+#include "ccappcommlauncherpluginuids.hrh"
+#include "ccappdetailsviewpluginuids.hrh"
 #include <aknlayoutscalable_avkon.cdl.h>
 
+
 // ======== MEMBER FUNCTIONS ========
 
 // ---------------------------------------------------------------------------
@@ -190,7 +193,7 @@
     CCCAppPluginData* data = iView.PluginLoader().PluginAt( aPlugin );
     //Bitmaps provided
 
-    if( !iView.PluginLoader().PluginAt( aPlugin )->iPluginBitmap )  
+    if( !data->iPluginBitmap )  
         {
         CAknIcon* icon = CAknIcon::NewL();
         CleanupStack::PushL( icon );        
@@ -198,10 +201,7 @@
                   CCCAppViewPluginBase::ECCAppTabIcon, *icon );
         data->iPluginBitmap = icon->Bitmap();
         data->iPluginBitmapMask = icon->Mask();
-
-        // Disable compression to check icon color scheme later
-        AknIconUtils::DisableCompression( data->iPluginBitmap );
-
+                
         //Calculate preferred size for icons   
         TRect mainPane;
         AknLayoutUtils::LayoutMetricsRect(
@@ -214,6 +214,7 @@
 
         AknIconUtils::SetSize( data->iPluginBitmap, size );         
         AknIconUtils::SetSize( data->iPluginBitmapMask, size );
+
         icon->SetBitmap( NULL );
         icon->SetMask( NULL );
         CleanupStack::PopAndDestroy( icon );        
@@ -231,7 +232,7 @@
     {
     CCCAppPluginData* data = iView.PluginLoader().PluginAt( aPlugin );
 
-    if(iTabGroupRef && iView.PluginLoader().PluginAt( aPlugin )->PluginVisibility() == 1) 
+    if(iTabGroupRef && data->PluginVisibility() == 1) 
         {
         if(data->iPluginBitmap)
             {
@@ -244,10 +245,15 @@
             bmp->Duplicate(data->iPluginBitmap->Handle());   
             bmpMask->Duplicate(data->iPluginBitmapMask->Handle());
             iTabGroupRef->AddTabL( aPlugin, bmp, bmpMask );
-            CleanupStack::Pop(2); //bmp, bmpmask    
-
-            SEpocBitmapHeader header = bmp->Header();
-            if ( SEpocBitmapHeader::ENoColor != header.iColor )
+            CleanupStack::Pop(2); //bmp, bmpmask                
+            
+            // CCA-Launcher and Details-View icons are GrayScale, but are detected as with color.
+            // They shall display dark on clear background and clear on dark background.
+            // SetTabMultiColorMode disables color inversion therefore it does not have to be
+            // called for those tabs.
+            TUid pluginUid = data->Plugin().Id();
+            if (pluginUid != TUid::Uid(KCCACommLauncherPluginImplmentationUid) &&
+                pluginUid != TUid::Uid(KCCADetailsViewPluginImplmentationUid))
                 {
                 iTabGroupRef->SetTabMultiColorMode( aPlugin, ETrue );
                 }
--- a/phonebookui/Phonebook2/group/Pbk2NamesListExtension.mmp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/group/Pbk2NamesListExtension.mmp	Tue Apr 27 16:23:35 2010 +0300
@@ -91,7 +91,7 @@
 
 // Dependencies to S60 components
 LIBRARY Avkon.lib FeatMgr.lib sendui.lib CdlEngine.lib
-LIBRARY eikctl.lib eikdlg.lib eikcore.lib eikcoctl.lib
+LIBRARY eikctl.lib eikdlg.lib eikcore.lib eikcoctl.lib bsclient.lib serviceprovidersettings.lib
 
 //CCA
 LIBRARY ccaclient.lib
--- a/phonebookui/Phonebook2/inc/CPbk2FetchDlg.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/inc/CPbk2FetchDlg.h	Tue Apr 27 16:23:35 2010 +0300
@@ -25,6 +25,8 @@
 #include "MPbk2FetchResultsObserver.h"
 #include <MPbk2DialogEliminator.h>
 #include <babitflags.h>
+#include "MPbk2StoreConfigurationObserver.h"
+#include "CPbk2StoreConfiguration.h"
 
 //  FORWARD DECLARATIONS
 class CVPbkContactLinkArray;
@@ -36,6 +38,7 @@
 class MPbk2ExitCallback;
 class CPbk2FetchResults;
 class CPbk2NamesListControl;
+class CPbk2StoreConfiguration;
 
 // CLASS DECLARATIONS
 
@@ -49,7 +52,8 @@
 class CPbk2FetchDlg : public CAknDialog,
                       public MPbk2FetchDlg,
                       public MPbk2DialogEliminator,
-                      private MPbk2FetchResultsObserver
+                      private MPbk2FetchResultsObserver,
+                      private MPbk2StoreConfigurationObserver
     {
     public: // Data structures
 
@@ -200,6 +204,10 @@
         void SelectContactL(
                 const MVPbkContactLink& aLink,
                 TBool aSelected );
+        
+    private: // From MPbk2StoreConfigurationObserver
+    	void ConfigurationChanged();
+    	void ConfigurationChangedComplete();
 
     private: // From MPbk2ControlObserver
         void HandleControlEventL(
@@ -282,6 +290,8 @@
         MPbk2FetchDlgPages* iPages;
         /// Own: Current CBA command set
         TInt iCbaCommandSet;
+        /// Own: Detect store status.  
+        CPbk2StoreConfiguration* iStoreConfiguration;
         /// Ref: Observer
         MPbk2FetchDlgObserver& iObserver;
         /// Own: Exit handling
--- a/phonebookui/Phonebook2/remotecontactlookup/engine/inc/cpbkxrclsearchresultdlg.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/remotecontactlookup/engine/inc/cpbkxrclsearchresultdlg.h	Tue Apr 27 16:23:35 2010 +0300
@@ -441,8 +441,11 @@
     ///ETrue - if the more than max results note needs to be shown
     TBool iMoreThanMaxResults;
     
-    // Original title pane text. Owned.
+    // Title pane text. Owned.
+    HBufC* iTitleText;
+    // Original title pane text (of the caller view). Owned.
     HBufC* iOriginalTitleText;
+   
     // Pointer reference to title pane. Not owned.
     CAknTitlePane* iTitlePane;
     
--- a/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrcleventscheduler.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrcleventscheduler.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-
+#include <coemain.h> // For EActivePriorityClockTimer
 #include "emailtrace.h"
 #include "cpbkxrcleventscheduler.h"
 
@@ -42,7 +42,7 @@
 // ---------------------------------------------------------------------------
 //
 CPbkxRclEventScheduler::CPbkxRclEventScheduler( MPbkxRclEventHandler& aHandler ) :
-    CActive( EPriorityStandard ), iEventHandler( aHandler )
+    CActive( EActivePriorityClockTimer /* EPriorityStandard*/), iEventHandler( aHandler )
     {
     FUNC_LOG;
     }
--- a/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclresultinfodlg.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclresultinfodlg.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -594,12 +594,16 @@
     
     //Set NullString to the the NaviPane Decorator
     //The simplest way of doin things. 
-    iNaviPane = reinterpret_cast<CAknNavigationControlContainer*>(
+    //Add the navigation decorators only if the usual statuspane layout is used
+    if ( statusPane->CurrentLayoutResId() == R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT )
+        {
+        iNaviPane = reinterpret_cast<CAknNavigationControlContainer*>(
             statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
     
-    iNaviDecorator = iNaviPane->CreateNavigationLabelL( KNullDesC );
+        iNaviDecorator = iNaviPane->CreateNavigationLabelL( KNullDesC );
     
-    iNaviPane->PushL( *iNaviDecorator );          
+        iNaviPane->PushL( *iNaviDecorator );  
+        }
     }
 
 // ---------------------------------------------------------------------------
--- a/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclsearchresultdlg.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclsearchresultdlg.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -155,13 +155,6 @@
     CCoeEnv::Static()->RemoveForegroundObserver( *this );
     ResetStatusPane();
     
-    if ( iTitlePane != NULL )
-          {
-          // set title pane back to what it was, ownership of 
-          // iTitlePaneText is transferred to title pane
-          iTitlePane->SetText( iOriginalTitleText );
-          }
-    
     iNaviText.Close();
     delete iAddRecipientIcon;
 
@@ -171,8 +164,21 @@
      	delete iActionMenu;
     	iActionMenu = NULL;
     	}    
-    
+
+    // Sanity check and make sure some other view hasn't already 
+    // changed the title text. If not - change back to original.
+    if (iOriginalTitleText && iTitleText && iTitlePane &&
+        iTitlePane->Text()->Compare( iTitleText->Des() ) == 0)
+        {
+        // Restore orginal title. Ownership transferred.
+        iTitlePane->SetText( iOriginalTitleText, ETrue); 
+        }
+    else
+        {
+        delete iOriginalTitleText;
+        }
     delete iIdleNote;
+    delete iTitleText;
     }
 
 // ---------------------------------------------------------------------------
@@ -679,12 +685,17 @@
     FUNC_LOG;
     CAknAppUi* appUi = static_cast<CAknAppUi*>( CCoeEnv::Static()->AppUi() );
     CEikStatusPane* statusPane = appUi->StatusPane();
-    iNaviPane = reinterpret_cast<CAknNavigationControlContainer*>(
-        statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
     
-    iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
+    // add the navigation decorators only if the usual statuspane layout is used
+    if ( statusPane->CurrentLayoutResId() == R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT )
+        {
+        iNaviPane = reinterpret_cast<CAknNavigationControlContainer*>(
+                statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+
+        iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
     
-    iNaviPane->PushL( *iNaviDecorator );
+        iNaviPane->PushL( *iNaviDecorator );
+        }
     
     // setup title pane
     iTitlePane = reinterpret_cast<CAknTitlePane*>(
@@ -705,9 +716,9 @@
 void CPbkxRclSearchResultDlg::SetTitlePaneTextL()
     {
     // Update title pane text   
-    HBufC* titleText  = StringLoader::LoadLC( R_QTN_RCL_TITLE_SERVER_CONTACTS ); 
-    iTitlePane->SetTextL(titleText->Des());   
-    CleanupStack::PopAndDestroy(titleText);
+    iTitleText  = StringLoader::LoadL( R_QTN_RCL_TITLE_SERVER_CONTACTS ); 
+    iTitlePane->SetTextL(iTitleText->Des());   
+  
     }
 
 
@@ -720,8 +731,11 @@
     FUNC_LOG;
     
     ResetStatusPane();
-    iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
-    iNaviPane->PushL( *iNaviDecorator );
+    if (iNaviPane )
+        {
+        iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
+        iNaviPane->PushL( *iNaviDecorator );
+        }
    
     SetTitlePaneTextL();  
     }
--- a/phonebookui/Phonebook2/rom/Phonebook2Resources.iby	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/rom/Phonebook2Resources.iby	Tue Apr 27 16:23:35 2010 +0300
@@ -61,7 +61,6 @@
 // Map Framework related resources
 
 data=DATAZ_\resource\Pbk2MapUIRes.rsc                   resource\Pbk2MapUIRes.rsc
-data=DATAZ_\resource\Pbk2MapUI.rsc                      resource\Pbk2MapUI.rsc
 
 
 data=ZRESOURCE\ExtensionManagerRes.rsc		RESOURCE_FILES_DIR\ExtensionManagerRes.rsc
--- a/phonebookui/Phonebook2/tsrc/UT_AddFavoritiesVisibility/src/UT_AddFavoritiesVisibility.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/tsrc/UT_AddFavoritiesVisibility/src/UT_AddFavoritiesVisibility.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -534,10 +534,49 @@
         // declaration in front of the method name, e.g. 
         // CUT_AddFavoritiesVisibility::PrintTest. Otherwise the compiler
         // gives errors.
-        #include "UT_AddFavoritiesVisibilitytesttable.cpp"                                
-        // Example how to use OOM functionality
-        //OOM_ENTRY( "Loop test with OOM", CUT_AddFavoritiesVisibility::LoopTest, ETrue, 2, 3),
-        //OOM_FUNCENTRY( CUT_AddFavoritiesVisibility::PrintTest, ETrue, 1, 3 ),
+        //Removed for raptor build
+        //#include "UT_AddFavoritiesVisibilitytesttable.cpp"                                
+
+        ENTRY("AlwaysON","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupAlwaysON,
+        	CUT_AddFavoritiesVisibility::TestAlwaysOnL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
+        ENTRY("AlwaysOFF","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupAlwaysOFF,
+        	CUT_AddFavoritiesVisibility::TestAlwaysOFFL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
+        ENTRY("FirstTimeUse","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupFirstTimeUse,
+        	CUT_AddFavoritiesVisibility::TestFirstTimeUseL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
+        ENTRY("TCPromotionMinus1","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupTCPromotionMinus1,
+        	CUT_AddFavoritiesVisibility::TestAlwaysOFFL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
+        ENTRY("TCPromotionMinus5000","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupTCPromotionMinus5000,
+        	CUT_AddFavoritiesVisibility::TestAlwaysOFFL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
+        ENTRY("TCPromotion3","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupTCPromotion3,
+        	CUT_AddFavoritiesVisibility::TestAlwaysOFFL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
+        ENTRY("TCPromotion9999","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupTCPromotion9999,
+        	CUT_AddFavoritiesVisibility::TestAlwaysOFFL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
+        ENTRY("TestLeaveInClientCallback","CUT_AddFavoritiesVisibility",
+        	CUT_AddFavoritiesVisibility::SetupAlwaysON,
+        	CUT_AddFavoritiesVisibility::TestLeaveInClientCallbackL,
+        	CUT_AddFavoritiesVisibility::Teardown),
+        
         };
 
     // Verify that case number is valid
--- a/phonebookui/Speeddial/VPbkControlInc/speeddialprivate.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Speeddial/VPbkControlInc/speeddialprivate.h	Tue Apr 27 16:23:35 2010 +0300
@@ -56,6 +56,7 @@
 class MVPbkContactAttribute;
 class CAiwServiceHandler;
 class MRefreshObserver;
+class TXspIconHelper;
 
 const TInt KArraySize =9;
 //for the timebeing..
@@ -509,7 +510,7 @@
         * @return   the matching index, -1 if not found.
         */
       
-      	TInt FindIconIndex( TInt aId) const;
+      	TInt FindIconIndex( TInt aId, MVPbkStoreContactField* aField );
 
 
 		/**
@@ -616,6 +617,7 @@
         AiwContactAssign::TAiwContactAttributeAssignDataV1 aData);
     
     	TInt SetIconArrayL(CArrayPtrFlat<CGulIcon>* aArray);
+    	TInt CreateIndexIconsL( CArrayPtrFlat<CGulIcon>* aArray );
     	void InitializeArray();
     	void CreateFieldIconsL(CArrayPtrFlat<CGulIcon>* aArray);
     	
@@ -624,7 +626,9 @@
     	
     	void SetSpeedDialIndexL(MVPbkStoreContact* aContact);
     	void Wait();
+        void WaitFetchMail();
     	void Release();
+        void ReleaseFetchMail();
     	
     	void SetDetails(TInt aIndex);
     	
@@ -686,6 +690,7 @@
     
     TBool iRetrieveComplete;
     TBool iOperationComplete;
+    TBool iFetchmailComplete;
     TBool iFetchAll;
     TBool iUpdateFlag;
     TBool iFetchmail;
@@ -694,6 +699,7 @@
 	CArrayFixFlat<TSpdiaIndexDataVPbk>* iSdmArray;  // owned by this
 	CPbk2ImageManager* aImageManager;
 	CActiveSchedulerWait *iWait;
+    CActiveSchedulerWait *iWaitFetchmail;
 	CAknQueryDialog* iQueryDialog;       
 	CRepository*  ivmbxvariation;
 	CRepository* ivmbxkey2;
@@ -713,6 +719,9 @@
     TBool iCancelFlag;
 
     CAknQueryDialog* iRemoveConfirmQueryDialog;
+    
+    RArray<TXspIconHelper> ixspIconInfoArray;
+    
 };
 
 
--- a/phonebookui/Speeddial/VPbkControlSrc/speeddialprivate.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Speeddial/VPbkControlSrc/speeddialprivate.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -101,6 +101,9 @@
 #include <AiwContactAssignDataTypes.h>
 
 #include "SpdiaContainer.h"
+#include <MPbk2FieldPropertyArray2.h>
+#include <MPbk2FieldProperty2.h>
+#include <MPbk2FieldProperty.h>
 
 // LOCAL CONSTANTS AND MACROS
 //This order is based on 'Standard field ids' (PbkFields.hrh)
@@ -149,7 +152,34 @@
 _LIT(KDesTab2, "\t\t");
 
 
+class TXspIconHelper
+    {
 
+    public:    
+    	TXspIconHelper( TInt aIndex, const TDesC& aLable);
+    	TInt IconIndex() const;
+    	TDesC& LableText();
+    private:
+    	TInt iIndex;
+    	TBuf<50> iLableText;
+    	      
+    };
+
+TXspIconHelper::TXspIconHelper(TInt aIndex, const TDesC& aLable):
+    iIndex (aIndex),
+    iLableText (aLable)
+	{
+	}
+
+inline TInt TXspIconHelper::IconIndex() const 
+	{
+	return iIndex;
+	}
+
+inline TDesC& TXspIconHelper::LableText() 
+	{
+	return iLableText;
+	}
 
 // ---------------------------------------------------------
 // CSpeedDialPrivate::NewL()
@@ -266,6 +296,7 @@
 		iServiceHandler->AttachL( R_SPEEDDIAL_EMAIL_SELECTION_INTEREST );
 		iServiceHandler->AttachL( R_SPDIA_SINGLE_ASSIGN_INTEREST );
 		iWait = new( ELeave )CActiveSchedulerWait();
+        iWaitFetchmail = new( ELeave )CActiveSchedulerWait();
 		
 		
 		iError = KErrNone;
@@ -461,6 +492,8 @@
         delete iRemoveConfirmQueryDialog;
         iRemoveConfirmQueryDialog = NULL;
         }
+		
+    ixspIconInfoArray.Close();    
     }
        
 // ---------------------------------------------------------
@@ -539,18 +572,30 @@
 		
 		MPbk2FieldPropertyArray* aPropertyArray = Pbk2FieldPropertiesFactory::CreateLC(*fieldTypeList,&iContactManager->FsSession() );
 		
-		for(count =0; count < aPropertyArray->Count(); ++ count)
+		ixspIconInfoArray.Reset();
+		const TInt arrayCount = aPropertyArray->Count();
+		for(count =0; count < arrayCount; ++ count)
 		{
 		   icon = pbk2IconFactory->CreateIconL(aPropertyArray->At(count).IconId());
-		   aArray->AppendL(icon);		   
-		}
-		
+		   aArray->AppendL(icon);
+		   
+		   // Append xSP icon info to helper array
+		   if ( aPropertyArray->At(count).FieldType().FieldTypeResId() == R_VPBK_FIELD_TYPE_IMPP )
+			   {
+			   const MPbk2FieldProperty& property = aPropertyArray->At(count);
+			   MPbk2FieldProperty2* property2 = reinterpret_cast<MPbk2FieldProperty2*>
+			           ( const_cast<MPbk2FieldProperty&> ( property ).FieldPropertyExtension(
+			                KMPbk2FieldPropertyExtension2Uid ) );
+			           			   
+			   TXspIconHelper helper( aArray->Count()-1, property2->XSpName() );		   
+			   ixspIconInfoArray.AppendL( helper );
+			   }
+		}		
 		CleanupStack::PopAndDestroy(aPropertyArray);
 		
 		delete fieldTypeList;
 		delete pbk2IconFactory;
 		
-		
 	}
 // ---------------------------------------------------------
 // CSpeedDialPrivate::VoiceMailL  
@@ -1031,11 +1076,6 @@
 // ---------------------------------------------------------
 TInt CSpeedDialPrivate::SetIconArrayL(CArrayPtrFlat<CGulIcon>* aArray)
     {
-	CFbsBitmap* bitmap,*mask;
-	bitmap = NULL;
-	mask= NULL;
-	MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
- 
     if ( aArray != NULL )
         {
         aArray->ResetAndDestroy();
@@ -1045,45 +1085,62 @@
         return 0;
         }
 
-	TInt existThumb(0);
+    CreateIndexIconsL( aArray );
+    CreateFieldIconsL( aArray );     
+
+	TInt existThumb = 0;
+	const TInt count = iSdmArray->Count();
+    for (TInt index(0); index < count; index++)
+        {
+        if (CreateIndexIconL(index, (*iSdmArray)[index], existThumb > 0? EFalse: ETrue))
+            {
+            ++existThumb;
+            }
+        }
+
+    return existThumb;
+    }
+
+// ---------------------------------------------------------
+// CSpeedDialPrivate::CreateIndexIconsL
+//
+// ---------------------------------------------------------
+TInt CSpeedDialPrivate::CreateIndexIconsL( CArrayPtrFlat<CGulIcon>* aArray )
+	{
+	CFbsBitmap* bitmap,*mask;
+	bitmap = NULL;
+	mask= NULL;
+	MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
+
     for (TInt index(0); index < iSdmArray->Count(); index++)
         {
 		if(index == 0)
-		{
-		 TUid uidVmbx;
-		 uidVmbx.iUid =KVmbxUid;
-		 AknsUtils::CreateAppIconLC( skinInstance,uidVmbx, EAknsAppIconTypeContext,bitmap ,mask);		
-		 CleanupStack::Pop(2);
-		}
+		    {
+		    TUid uidVmbx;
+		    uidVmbx.iUid =KVmbxUid;
+		    AknsUtils::CreateAppIconLC( skinInstance,uidVmbx, EAknsAppIconTypeContext,bitmap ,mask);		
+		    CleanupStack::Pop(2);
+		    }
 		else
-		{
+		   {
 		 	if(User::Language() == ELangHindi)
-		 	{
+		 	    {
 		 		AknsUtils::CreateIconL(skinInstance, (*iDialSkinBmp)[index],bitmap,mask,iBmpPath,iDialHindiBmp[index],  iDialHindiBmpMask[index] );	
-		 	}
+		 	    }
 		 	else
-		 	 {
+		 	    {
 		 	 	AknsUtils::CreateIconL(skinInstance, (*iDialSkinBmp)[index],bitmap,mask,iBmpPath,iDialBmp[index],  iDialBmpMask[index] );	
-		 	 }
-		}
+		 	    }
+		    }
+		
 		CGulIcon* icon = CGulIcon::NewL(bitmap,mask);
-        CleanupStack::PushL(icon);
-        aArray->AppendL(icon);
+	    CleanupStack::PushL(icon);
+	    aArray->AppendL(icon);
+	    CleanupStack::Pop(); // icon
+        }
+    
+	}
 
-        if (CreateIndexIconL(index,
-            (*iSdmArray)[index], existThumb > 0? EFalse: ETrue))
-            {
-            ++existThumb;
-            }
-        CleanupStack::Pop(); // icon
-        }
-
-		CreateFieldIconsL(aArray);
-
-    return existThumb;
-    }
-	
-	
 // ---------------------------------------------------------
 // CSpeedDialPrivate::VoiceMailTypeL	
 //
@@ -1465,7 +1522,7 @@
 			
 			//Push
             const MVPbkFieldType* fieldType = field->BestMatchingFieldType();
-            TInt iconindex = FindIconIndex(fieldType->FieldTypeResId());
+            TInt iconindex = FindIconIndex(fieldType->FieldTypeResId(), field );
             (*iSdmArray)[aIndex].SetIconIndex(iconindex);
     
             //No need to fetch thumbnail now...will be updated while grid is
@@ -1631,11 +1688,11 @@
                 outParamList, 0, this);
                 }
                     );
-        iOperationComplete = EFalse;
+        iFetchmailComplete = EFalse;
         // Wait till the contact is selected
-        while ( !iOperationComplete )
+        while ( !iFetchmailComplete )
         {
-            Wait();
+        WaitFetchMail();
         }
         iFetchmail = EFalse;
         return iMail;
@@ -2550,15 +2607,33 @@
                 iMail = HBufC::NewL(length);
                 iMail->Des().Append(paramMail->Value().AsDes());
             	}            
-	            iOperationComplete = ETrue;
-	    		Release();
-	  
+
+            if( iFetchmail )
+                {
+                iFetchmailComplete = ETrue;
+                ReleaseFetchMail();
+                }
+            else
+                {
+                iOperationComplete = ETrue;
+                Release();
+                }  
+
             }
         else if (aEventId == KAiwEventCanceled)
             {
             	iError = KErrCancel;    
-	            iOperationComplete = ETrue;
-	    		Release();
+
+                if( iFetchmail )
+                    {
+                    iFetchmailComplete = ETrue;
+                    ReleaseFetchMail();
+                    }
+                else
+                    {
+                    iOperationComplete = ETrue;
+                    Release();
+	                }
             }
          else if (aEventId == KAiwEventError)
          	{
@@ -2995,7 +3070,7 @@
 		{
 			fieldId = field->BestMatchingFieldType()->FieldTypeResId();
 		}
-	    aSdmData.SetIconIndex(FindIconIndex(fieldId));     
+	    aSdmData.SetIconIndex(FindIconIndex(fieldId, field ));     
 	   
 		// check for the functionality, why he is checking has thumbnail before adding
 		
@@ -3042,16 +3117,36 @@
 // ---------------------------------------------------------
 //
 
-TInt CSpeedDialPrivate::FindIconIndex(TInt aId) const
+TInt CSpeedDialPrivate::FindIconIndex( TInt aId, MVPbkStoreContactField* aField ) //const
     {
     TInt index(KNullIndexData);
-    for (TInt n(0); index == KNullIndexData && n < (sizeof KFieldIds/sizeof KFieldIds[0]); ++n)
-        {
-       if ((TUint)aId == KFieldIds[n] )
+    
+	// If impp field, find xSP icon info from helper
+    if ( aField && ( aId == R_VPBK_FIELD_TYPE_IMPP ) )
+    	{
+    	TPtrC scheme = MVPbkContactFieldUriData::Cast( aField->FieldData()).Scheme();
+    	           	
+    	const TInt count = ixspIconInfoArray.Count(); 
+    	for ( TInt i=0; i < count; i++ )
+    		{
+    		if ( !scheme.CompareF( ixspIconInfoArray[i].LableText() ) )
+    			{
+    			index = ixspIconInfoArray[i].IconIndex();
+    			break;
+    			}
+    		}
+    	}
+    // If not impp field, calculate icon index as below
+    else
+    	{
+        for (TInt n(0); index == KNullIndexData && n < (sizeof KFieldIds/sizeof KFieldIds[0]); ++n)
             {
-            index = n + iSdmCount;
+            if ((TUint)aId == KFieldIds[n] )
+               {
+               index = n + iSdmCount;
+               }
             }
-        }
+    	}
     return index;
     }
     
@@ -3419,6 +3514,32 @@
 }
 
 // ---------------------------------------------------------
+// CSpeedDialPrivate::WaitFetchMail
+//
+// ---------------------------------------------------------
+//
+void CSpeedDialPrivate::WaitFetchMail()
+    {
+    if ( !( iWaitFetchmail->IsStarted() ) )
+        {
+        iWaitFetchmail->Start();
+        }
+    }
+
+// ---------------------------------------------------------
+// CSpeedDialPrivate::ReleaseFetchMail
+//
+// ---------------------------------------------------------
+//
+void CSpeedDialPrivate::ReleaseFetchMail()
+    {
+    if ( iWaitFetchmail->IsStarted() )
+        {
+        iWaitFetchmail->AsyncStop();
+        }
+    }
+
+// ---------------------------------------------------------
 // CSpeedDialPrivate::Cancel
 // To cancel the aiw event
 // ---------------------------------------------------------
--- a/phonebookui/Speeddial/inc/SpdiaContainer.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Speeddial/inc/SpdiaContainer.h	Tue Apr 27 16:23:35 2010 +0300
@@ -124,7 +124,7 @@
         * Selection of the MiddleSoftKey
         * 
         */
-		void CSpdiaContainer::MiddleSoftKeyL();
+        void MiddleSoftKeyL();
 
         /**
         * Shows the ViewNumber note.
@@ -172,7 +172,7 @@
         void VoiceMailDialogLaunched( TBool aBool );
 
 
-        CAknLongTapDetector& CSpdiaContainer::LongTapDetectorL();
+        CAknLongTapDetector& LongTapDetectorL();
         /**
         * refresh the dialog in speeddial view 
         */
--- a/phonebookui/Speeddial/speeddialgsplugin/inc/speeddialgsplugin.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Speeddial/speeddialgsplugin/inc/speeddialgsplugin.h	Tue Apr 27 16:23:35 2010 +0300
@@ -128,7 +128,7 @@
         */
         CSpeeddialGsPlugin();
         
-        void CSpeeddialGsPlugin::LaunchEasAppL();
+        void LaunchEasAppL();
 
     protected:
         /**
--- a/presencecache/presencecacheserver2/inc/presencecachebuddystore.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/presencecache/presencecacheserver2/inc/presencecachebuddystore.h	Tue Apr 27 16:23:35 2010 +0300
@@ -165,7 +165,7 @@
     * @param aOtherIdentity other identity object
     * @return ETrue if identity matches.
     */
-    TBool CPresenceCacheBuddyStore::EqualsIdentity(
+    TBool EqualsIdentity(
                             const TDesC& aOtherIdentity ) const;
                     
     /**
--- a/presencecache/presencecacheutils/inc/presencecachebuddyinfo.h	Wed Apr 14 15:45:35 2010 +0300
+++ b/presencecache/presencecacheutils/inc/presencecachebuddyinfo.h	Tue Apr 27 16:23:35 2010 +0300
@@ -172,7 +172,7 @@
      */
     void ConstructL();
     
-    void CPresenceCacheBuddyInfo::DoSet16BitValueL( 
+    void DoSet16BitValueL( 
             const TDesC& aKey,    
             const TDesC& aValue );