diff -r 5d7fec11a5ce -r 03d9ade4748d testapps/rschandler/Common/rsc/ResourceHandler.rss --- a/testapps/rschandler/Common/rsc/ResourceHandler.rss Fri Jun 11 16:24:17 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,899 +0,0 @@ -// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -NAME RES - -#include "ResourceHandler.hrh" - -#include - -#include -// for symbolic definition of buttons -#include //for runtime -// for various constants -#include //for runtime - -#ifdef UIQ -// for QIK_NUMBER_EDITOR/QIK_VERTOPBUT/EQikDlgItemUseFullWidth -#include -// for various constants -#include //for runtime -#endif - -#ifdef TV -// for CEikNumberEditor -#include -#include -#endif - -RESOURCE RSS_SIGNATURE { } - -RESOURCE TBUF { buf=""; } - -RESOURCE EIK_APP_INFO - { - menubar=r_resource_menubar; - } - -// -// Menus -// - -RESOURCE MENU_BAR r_resource_menubar - { - titles= - { - MENU_TITLE { menu_pane=r_resource_menu_1; txt="Kernel"; }, - MENU_TITLE { menu_pane=r_resource_menu_2; txt="System"; }, - MENU_TITLE { menu_pane=r_resource_menu_3; txt="Tools"; } - }; - } - -RESOURCE MENU_PANE r_resource_menu_1 - { - items= - { - MENU_ITEM { command=EResourceMenu1Item0; txt="Process"; }, - MENU_ITEM { command=EResourceMenu1Item1; txt="Thread"; }, - MENU_ITEM { command=EResourceMenu1Item2; txt="Chunk"; }, - MENU_ITEM { command=EResourceMenu1Item3; txt="Library"; }, - MENU_ITEM { command=EResourceMenu1Item4; txt="Server"; }, - MENU_ITEM { command=EResourceMenu1Item5; txt="Semaphore"; }, - MENU_ITEM { command=EResourceMenu1Item6; txt="Mutex"; }, - MENU_ITEM { command=EResourceMenu1Item7; txt="Log Device"; }, - MENU_ITEM { command=EResourceMenu1Item8; txt="Phy Device"; }, - MENU_ITEM { command=EResourceMenu1Item9; txt="Log Chan"; } - - }; - } - -RESOURCE MENU_PANE r_resource_menu_2 - { - items= - { - MENU_ITEM { command=EResourceMenu2Item0; txt="Window Grp"; }, - MENU_ITEM { command=EResourceMenu2Item1; txt="Drive"; }, - MENU_ITEM { command=EResourceMenu2Item2; txt="HAL"; } - }; - } - -RESOURCE MENU_PANE r_resource_menu_3 - { - items= - { - MENU_ITEM { command=EResourceMenu3Item1; txt="Thread Tool"; }, - MENU_ITEM { command=EResourceMenu3Item2; txt="Process Tool"; }, - MENU_ITEM { command=EResourceMenu3Item3; txt="RAM Tool"; }, - MENU_ITEM { command=EResourceMenu3Item4; txt="Drive Tool"; } - }; - } - -// -// Debug dialog -// - -RESOURCE DIALOG r_debug_dialog - { - title = "Debug Tool"; - flags = EEikDialogFlagWait; - buttons = r_debug_dialog_buttons; - pages = r_debug_dialog_pages; - - } - -RESOURCE DLG_BUTTONS r_debug_dialog_buttons - { - buttons= - { - DLG_BUTTON - { - id=EDebugSetButtonCtl; - button=CMBUT { txt="Set";}; - hotkey = 'S'; - }, - DLG_BUTTON - { - id=EEikBidCancel; - button=CMBUT { txt="Cancel";}; - hotkey = 'C'; - }, - DLG_BUTTON - { - id=EEikBidOk; - button=CMBUT { txt="Done";}; - hotkey = 'D'; - } - }; - } - -RESOURCE ARRAY r_debug_dialog_pages - { - items = - { - PAGE - { - text = "Port"; - id = EDebugPagePort; - lines = r_debug_dialog_page_port; - }, - PAGE - { - text = "Kernel"; - id = EDebugPageKernel; - lines = r_debug_dialog_page_kernel; - }, - PAGE - { - text = "FS"; - id = EDebugPageFiles; - lines = r_debug_dialog_page_file_s; - } - }; - } - - -RESOURCE ARRAY r_debug_dialog_page_kernel - { - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = EDebugKernelLabel; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Select debugging information to be printed.\nNote: must have debug version of ekern.exe in ROM.\nNote: not all combinations may be possible."; - }; - }, - DLG_LINE { type=EEikCtCheckBox; prompt="KHARDWARE"; id = EDebugKernelKHARDWARE;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KBOOT"; id = EDebugKernelKBOOT;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KSERVER"; id = EDebugKernelKSERVER;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KMMU"; id = EDebugKernelKMMU;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KSEMAPHORE"; id = EDebugKernelKSEMAPHORE;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KSCHED"; id = EDebugKernelKSCHED;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KPROC"; id = EDebugKernelKPROC;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KEXEC"; id = EDebugKernelKEXEC;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KEXECFAST"; id = EDebugKernelKEXECFAST;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KTHREAD"; id = EDebugKernelKTHREAD;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KDLL"; id = EDebugKernelKDLL;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KLOGON"; id = EDebugKernelKLOGON;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KPBUS1"; id = EDebugKernelKPBUS1;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KPBUS2"; id = EDebugKernelKPBUS2;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KPBUSDRV"; id = EDebugKernelKPBUSDRV;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KPOWER"; id = EDebugKernelKPOWER;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KTIMING"; id = EDebugKernelKTIMING;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KEVENT"; id = EDebugKernelKEVENT;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KMEMTRACE"; id = EDebugKernelKMEMTRACE;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KIPC"; id = EDebugKernelKIPC;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KDEBUGGER"; id = EDebugKernelKDEBUGGER;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KVIDEO"; id = EDebugKernelKVIDEO;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KUSB"; id = EDebugKernelKUSB;}, - DLG_LINE { type=EEikCtCheckBox; prompt="KPANIC"; id = EDebugKernelKPANIC;} - }; - } - - -RESOURCE ARRAY r_debug_dialog_page_file_s - { - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH //needed? - id = EDebugFileLabel; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Select debugging information to be printed.\nMust have debug version of efile.exe in ROM. Or define\n_DEBUG_RELEASE in f32dbg.h. \nNote: these values are not readable."; - }; - }, - DLG_LINE - { - type=EEikCtCheckBox; - prompt="File Server"; - id = EDebugFileServerCtl; - }, - DLG_LINE - { - type=EEikCtCheckBox; - prompt="FAT File System"; - id = EDebugFATCtl; - }, - DLG_LINE - { - type=EEikCtCheckBox; - prompt="Loader"; - id = EDebugLoaderCtl; - } - - }; - - } - - -RESOURCE ARRAY r_debug_dialog_page_port - { - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = EDebugPortLabel; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Set the port number for debug output. (-1 means no port is set)."; - }; - }, - DLG_LINE - { - type = EXIKCTNUMBEREDITOR; - prompt = "Debug Port "; - id = EDebugPortCtl; - control = A_NUMBER_EDITOR - { - min = -1; - max = 1023; - }; - //itemflags = EEikDlgItemNoBorder | EEikDlgItemNonFocusing; - ITEMFLAG_NONFOCUSING - } - }; - } - - -// -// Thread Dialog -// - -RESOURCE DIALOG r_thread_dialog - { - title = "Thread Tool"; - buttons = r_thread_dialog_buttons; - flags = EEikDialogFlagWait; - pages = r_thread_dialog_pages; - } - - -RESOURCE DLG_BUTTONS r_thread_dialog_buttons - { - buttons= - { - DLG_BUTTON - { - id=EThreadKillButtonCtl; - button=CMBUT { txt="Kill!";}; - hotkey = 'K'; - }, - DLG_BUTTON - { - id=EThreadSetButtonCtl; - button=CMBUT { txt="Set";}; - hotkey = 'S'; - }, - DLG_BUTTON - { - id=EEikBidCancel; - button=CMBUT { txt="Cancel";}; - hotkey = 'C'; - }, - DLG_BUTTON - { - id=EEikBidOk; - button=CMBUT { txt="Done";}; - hotkey = 'D'; - } - }; - } - -RESOURCE ARRAY r_thread_dialog_pages - { - items = - { - PAGE - { - text = "Thread"; - id = EThreadPageGeneral; - lines = r_thread_dialog_page_general; - //buttons=r_thread_dialog_buttonbar; - }, - PAGE - { - text = "Priority"; - id = EThreadPagePriority; - lines = r_thread_dialog_page_priority; - }, - PAGE - { - text = "Other"; - id = EThreadPageOther; - lines = r_thread_dialog_page_other; - } - }; - } - -RESOURCE ARRAY r_thread_dialog_page_general - { - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = EThreadLabelTop; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Enter thread id number and hit 'Get Thread' to find and change \nthread attributes. (Zero for all threads)"; - }; - }, - DLG_LINE - { - type = EXIKCTNUMBEREDITOR; - prompt = "Thread Number"; - id = EThreadNumberCtl; - control = A_NUMBER_EDITOR - { - min = 0; - max = 1023; - }; - //itemflags = EEikDlgItemNoBorder | EEikDlgItemNonFocusing; - ITEMFLAG_NONFOCUSING - }, -//The process and thread name are defined on one line in TV and 2 lines in UIQ, due to restricted dialog space in TV. -#ifdef TV - DLG_LINE - { - type=EEikCtLabel; - prompt = "Thread/Process:"; - id = EThreadLabelThreadAndProcessName; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=""; - }; - }, -#endif -#ifdef UIQ - DLG_LINE - { - type=EEikCtLabel; - prompt = "Process:"; - ITEMFLAG_DENSELYPACKED//ITEMFLAG_USEFULLWIDTH - id = EThreadLabelProcessName; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=""; - }; - }, - DLG_LINE - { - type=EEikCtLabel; - prompt = "Thread:"; - ITEMFLAG_DENSELYPACKED//ITEMFLAG_USEFULLWIDTH - id = EThreadLabelThreadName; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=""; - }; - }, -#endif - DLG_LINE - { - type=EEikCtCommandButton; - ITEMFLAG_USEFULLWIDTH - id = EThreadGetButtonCtl; - control = CMBUT - { - txt="GET Thread"; - }; - }, - DLG_LINE //create space between buttons - { - type=EEikCtLabel; - id = EThreadLabelThreadName; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=" "; - }; - } - }; - } - -RESOURCE ARRAY r_thread_dialog_page_priority - { - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = EThreadPriorityPrompt; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=""; - }; - }, - DLG_LINE - { - prompt="Priority"; - type=EEikCtChoiceList; - id=EThreadPriorityButtonCtl; - control=CHOICELIST - { - array_id=r_thread_priority_buttons; - }; - }, - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = EThreadPriorityText; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=""; - }; - } - }; - } - - -RESOURCE ARRAY r_thread_dialog_page_other - { - items = - { - DLG_LINE - { - type=EEikCtCheckBox; - prompt="System"; - id = EThreadSystemCtl; - }, - DLG_LINE - { - type=EEikCtCheckBox; - prompt="Protected"; - id = EThreadProtectedCtl; - } - }; - } - - - -RESOURCE ARRAY r_thread_priority_buttons - { - items= - { - LBUF { txt="PriorityNull=-30";}, // EThreadPm30_Null - LBUF { txt="PriorityMuchLess=-20";}, // EThreadPm20_MuchLess - LBUF { txt="PriorityLess=-10";}, // EThreadPm10_Less - LBUF { txt="PriorityNormal=0";}, // EThreadP0_Normal - LBUF { txt="PriorityMore=10"; }, // EThreadP10_More - LBUF { txt="PriorityMuchMore=20"; }, // EThreadP20_MuchMore - LBUF { txt="PriorityRealTime=30"; }, // EThreadP30_RealTime - LBUF { txt="PriorityAbsoluteVeryLow=100";}, // EThreadP100_AbsoluteVeryLow - LBUF { txt="PriorityAbsoluteLow=200";}, // EThreadP200_AbsoluteLow - LBUF { txt="PriorityAbsoluteBackground=300";}, // EThreadP300_AbsoluteBackground - LBUF { txt="PriorityAbsoluteForeground=400";}, // EThreadP400_AbsoluteForeground - LBUF { txt="PriorityAbsoluteHigh=500";}, // EThreadP500_AbsoluteHigh - LBUF { txt = "Not Standard";} // EThreadP_NotStandard - }; - } -// -// Process Dialog -// - -RESOURCE DIALOG r_process_number_dialog - { - title = "Process Tool"; - buttons = r_process_dialog_buttons; - flags = EEikDialogFlagWait; - pages = r_process_dialog_pages; - } - -RESOURCE DLG_BUTTONS r_process_dialog_buttons - { - buttons= - { - DLG_BUTTON - { - id=EProcessKillButtonCtl; - button=CMBUT { txt="Kill";}; - hotkey = 'K'; - }, - DLG_BUTTON - { - id=EProcessSetButtonCtl; - button=CMBUT { txt="Set";}; - hotkey = 'S'; - }, - DLG_BUTTON - { - id=EEikBidCancel; - button=CMBUT { txt="Cancel";}; - hotkey = 'C'; - }, - DLG_BUTTON - { - id=EEikBidOk; - button=CMBUT { txt="Done";}; - hotkey = 'D'; - } - }; - } - -RESOURCE ARRAY r_process_dialog_pages - { - items = - { - PAGE - { - text = "Process"; - id = EProcessPageGeneral; - lines = r_process_dialog_page_general; - }, - PAGE - { - text = "Priority"; - id = EProcessPagePriority; - lines = r_process_dialog_page_priority; - }, - PAGE - { - text = "Other"; - id = EProcessPageOther; - lines = r_process_dialog_page_other; - } - }; - } - - -RESOURCE ARRAY r_process_dialog_page_general - { - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH//itemflags=EEikDlgItemCtlSharesWidth;? - id = EProcessLabelTop; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Enter process id number and hit 'Get Process' to find and \nchange process attributes"; - }; - }, - DLG_LINE - { - type = EXIKCTNUMBEREDITOR; - prompt = "Process Number"; - id = EProcessNumberCtl; - control = A_NUMBER_EDITOR - { - min = 0; - max = 1023; - }; - //itemflags = EEikDlgItemNoBorder | EEikDlgItemNonFocusing; - ITEMFLAG_NONFOCUSING - }, - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_DENSELYPACKED - prompt = "Process: "; - id = EProcessLabelProcessName; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=""; - }; - }, - DLG_LINE - { - type=EEikCtCommandButton; - ITEMFLAG_USEFULLWIDTH - id = EProcessGetButtonCtl; - control = CMBUT - { - txt="Get Process"; - }; - } - }; - } - -RESOURCE ARRAY r_process_dialog_page_priority - { - items = - { - DLG_LINE - { - prompt="Priority"; - type=EEikCtChoiceList; - id=EProcessPriorityButtonCtl; - control=CHOICELIST - { - array_id=r_process_priority_buttons; - }; - }, - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - //prompt = "Priority"; - id = EProcessPriorityText; - control = LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt=""; - }; - } - }; - } - -RESOURCE ARRAY r_process_dialog_page_other - { - items = - { - DLG_LINE - { - type=EEikCtCheckBox; - prompt="System"; - id = EProcessSystemCtl; - }, - DLG_LINE - { - type=EEikCtCheckBox; - prompt="Protected"; - id = EProcessProtectedCtl; - } - }; - } - -RESOURCE ARRAY r_process_priority_buttons - { - items= - { - LBUF { txt="EPriorityLow=150"; }, // EProcessP150_PriorityLow - LBUF { txt="EPriorityBackground=250"; }, // EProcessP250_PriorityBackground - LBUF { txt="EPriorityForeground=350"; }, // EProcessP350_PriorityForeground - LBUF { txt="EPriorityHigh=450";}, // EProcessP450_PriorityHigh - LBUF { txt="EPriorityWindowServer=650";}, // EProcessP650_PriorityWindowServer - LBUF { txt="EPriorityFileServer=750";}, // EProcessP750_PriorityFileServer - LBUF { txt="EPriorityRealTimeServer=850";}, // EProcessP850_PriorityRealTimeServer - LBUF { txt="EPrioritySupervisor=950";}, // EProcessP950_PrioritySupervisor - LBUF { txt ="PriorityNotStandard"; } // EProcessPriorityNotStandard - }; - } -// -// Ram Dialog -// - -RESOURCE DIALOG r_ram_dialog - { - title = "RAM Tool"; - buttons = r_ram_dialog_buttons; - flags = EEikDialogFlagWait; - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = ERamLabel1; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Fill the RAM by tapping OK. This will use RAM up to the amount specified"; - }; - }, - DLG_LINE - { - prompt="Leave RAM"; - type=EXIKCTOPTIONBUTLIST; - id=ERamToLeaveButtonCtl; - control=OPBUTLIST - { - array_id=r_ram_to_leave_buttons; - }; - }, - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = ERamTotal; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Total"; - }; - }, - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = ERamFree; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Free"; - }; - }, - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH - id = ERamLabel2; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="To relinquish RAM kill this thread with the thread tool"; - }; - } - }; - } - -RESOURCE DLG_BUTTONS r_ram_dialog_buttons - { - buttons= - { - DLG_BUTTON - { - id=ERamSetButtonCtl; - button=CMBUT { txt="Fill";}; - hotkey = 'F'; - }, - DLG_BUTTON - { - id=ERamUndoFillButtonCtl; - button=CMBUT { txt="Undo Fill(s)";}; - hotkey = 'U'; - }, - DLG_BUTTON - { - id=EEikBidCancel; - button=CMBUT { txt="Close";}; - hotkey = 'C'; - } - }; - } - -RESOURCE ARRAY r_ram_to_leave_buttons - { - items= - { - OPBUT { id = ERamLeave4K; text="<4K"; }, - OPBUT { id = ERamLeave8K; text="<8K"; }, - OPBUT { id = ERamLeave16K; text="<16K"; }, - OPBUT { id = ERamLeave64K; text="<64K"; }, - OPBUT { id = ERamLeave256K; text="<256K"; } - }; - } - -// -// Drive Dialog -// - -RESOURCE DIALOG r_drive_dialog - { - title = "Drive Tool"; - buttons = r_drive_dialog_buttons; - flags = EEikDialogFlagWait; - items = - { - DLG_LINE - { - type=EEikCtLabel; - ITEMFLAG_USEFULLWIDTH //EEikDlgItemCtlGetsWidthFirst - id = ERamLabel1; - control=LABEL - { - horiz_align=EEikLabelAlignHLeft; - txt="Pick a drive. Fill the drive by tapping Fill. This will use space up to the \namount specified. This can be undone by tapping Undo Fill"; - }; - - }, - DLG_LINE - { - prompt="Drive"; - type=EEikCtChoiceList; - id=EDriveChoiceList; - control=CHOICELIST - { - - }; - }, - DLG_LINE - { - prompt="Leave space"; - type=EXIKCTOPTIONBUTLIST;//EQikCtVertOptionButtonList; - id=EDriveToLeaveButtonCtl; - control=OPBUTLIST - { - array_id=r_drive_to_leave_buttons; - }; - } - }; - } - -RESOURCE DLG_BUTTONS r_drive_dialog_buttons - { - buttons= - { - DLG_BUTTON - { - id=EDriveFormatButtonCtl; - button=CMBUT { txt="Format";}; - hotkey = 'T'; - }, - DLG_BUTTON - { - id=EDriveFillButtonCtl; - button=CMBUT { txt="Fill";}; - hotkey = 'F'; - }, - DLG_BUTTON - { - id=EDriveUndoFillButtonCtl; - button=CMBUT { txt="Undo Fill(s)";}; - hotkey = 'U'; - }, - DLG_BUTTON - { - id=EEikBidCancel; - button=CMBUT { txt="Close";}; - hotkey = 'C'; - } - }; - } - -RESOURCE ARRAY r_drive_to_leave_buttons - { - items= - { - OPBUT { id = EDriveLeave4K; text="<4K"; }, - OPBUT { id = EDriveLeave8K; text="<8K"; }, - OPBUT { id = EDriveLeave16K; text="<16K"; }, - OPBUT { id = EDriveLeave64K; text="<64K"; }, - OPBUT { id = EDriveLeave256K; text="<256K"; } - }; - }