object PVCSProjectDlg: TPVCSProjectDlg Left = 236 Top = 105 Width = 625 Height = 393 HelpContext = 1015 Caption = 'Project' Font.Color = clWindowText Font.Height = -14 Font.Name = 'MS Sans Serif' Font.Style = [] Icon.Data = {} Position = poScreenCenter OnCreate = CreateProjectWindow OnHide = HideProjectWindow OnShow = ShowProjectWindow PixelsPerInch = 120 TextHeight = 16 object ProjectStatusBar: TStatusBar Left = 0 Top = 332 Width = 617 Height = 23 Panels = < item Text = 'Progress Text' Width = 150 end item Text = 'Progress Bar' Width = 0 end> SimplePanel = True end object Panel1: TPanel Left = 0 Top = 37 Width = 617 Height = 295 Align = alClient BevelOuter = bvNone ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 1 object Panel4: TPanel Left = 0 Top = 0 Width = 617 Height = 295 Align = alClient BevelOuter = bvNone ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 0 object TreeViewPanel: TPanel Left = 0 Top = 0 Width = 230 Height = 295 Align = alLeft BevelOuter = bvNone BorderWidth = 2 ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 0 object WorkfileHeader: TPanel Left = 2 Top = 2 Width = 226 Height = 20 Align = alTop Alignment = taLeftJustify BevelOuter = bvLowered Caption = ' All Workfiles' ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 0 object Panel12: TPanel Left = 98 Top = 1 Width = 127 Height = 18 Align = alRight Alignment = taRightJustify BevelOuter = bvNone BorderWidth = 1 Caption = 'v1.0 (2/2/96) MSH' Font.Color = clBtnFace Font.Height = -10 Font.Name = 'MS Serif' Font.Style = [] ParentFont = False ParentShowHint = False ShowHint = True TabOrder = 0 OnDblClick = Panel12DblClick end end object Panel6: TPanel Left = 2 Top = 22 Width = 226 Height = 271 Align = alClient BevelInner = bvLowered BevelOuter = bvLowered ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 1 object WorkfileList: TTreeView Left = 2 Top = 2 Width = 222 Height = 267 BorderStyle = bsNone Indent = 19 Items.Data = { 0100000020000000000000000000000000000000FFFFFFFF0000000001000000 0750726F6A65637422000000030000000300000003000000FFFFFFFF00000000 010000000946696C65312E7061731F000000070000000700000007000000FFFF FFFF0000000000000000064C6162656C31} OnEditing = PreEditLabelHook OnEdited = PostEditLabelHook OnExpanding = ExpandProjectTree OnExpanded = OpenProjectImage OnCollapsing = CollapseProjectTree OnCollapsed = CloseProjectImage OnChange = SelectionChange Align = alClient ParentColor = False TabOrder = 0 OnDragDrop = DropOnMe OnDragOver = DragOverMe OnMouseDown = WorkfileListMouseDown OnKeyDown = WorkfileListKeyDown ParentShowHint = False ShowHint = False end end end object Panel7: TPanel Left = 230 Top = 0 Width = 387 Height = 295 Align = alClient BevelOuter = bvNone BorderWidth = 2 ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 1 object Panel3: TPanel Left = 7 Top = 2 Width = 378 Height = 291 Align = alClient BevelOuter = bvNone ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 1 object Panel9: TPanel Left = 0 Top = 20 Width = 378 Height = 271 Align = alClient BevelInner = bvLowered BevelOuter = bvLowered Caption = 'Panel9' ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 0 object DetailsNotebook: TNotebook Left = 2 Top = 2 Width = 374 Height = 267 Align = alClient TabOrder = 0 object TPage Left = 0 Top = 0 Caption = 'RevisionListPage' object RevisionList: TListView Left = 0 Top = 0 Width = 374 Height = 267 Align = alClient BorderStyle = bsNone Columns = < item Caption = 'Revision' Width = 70 end item Caption = 'Check-in Time' Width = 130 end item Caption = 'Author' Width = 80 end item Caption = 'Change Description' Width = 400 end> ReadOnly = True MultiSelect = True OnChange = RevSelectionChanged OnColumnClick = RevisionListColumnClick OnCompare = RevisionListCompare OnMouseDown = RevisionListMouseDown ParentShowHint = False ShowHint = False TabOrder = 0 ViewStyle = vsReport end end object TPage Left = 0 Top = 0 Caption = 'RevisionDetailsPage' object Panel8: TPanel Left = 0 Top = 192 Width = 374 Height = 75 Align = alClient BevelOuter = bvNone ParentColor = True TabOrder = 0 object Panel10: TPanel Left = 0 Top = 0 Width = 374 Height = 75 Align = alClient BorderWidth = 8 ParentColor = True TabOrder = 0 object RevisionDescription: TMemo Left = 9 Top = 9 Width = 356 Height = 57 Align = alClient BorderStyle = bsNone Ctl3D = True ParentColor = True ParentCtl3D = False ParentShowHint = False ReadOnly = True ShowHint = False TabOrder = 0 end end end object Panel5: TPanel Left = 0 Top = 0 Width = 374 Height = 192 Align = alTop BevelOuter = bvNone ParentColor = True TabOrder = 1 object Bevel1: TBevel Left = 0 Top = 0 Width = 374 Height = 192 Align = alClient Style = bsRaised end object Label1: TLabel Left = 10 Top = 10 Width = 108 Height = 20 Caption = 'Archive Name:' ParentShowHint = False ShowHint = False end object Label2: TLabel Left = 10 Top = 30 Width = 132 Height = 19 Caption = 'Revision Number:' ParentShowHint = False ShowHint = False end object Label3: TLabel Left = 9 Top = 108 Width = 85 Height = 20 Caption = 'Lock Count:' ParentShowHint = False ShowHint = False end object Label4: TLabel Left = 9 Top = 128 Width = 101 Height = 20 Caption = 'Branch Count:' ParentShowHint = False ShowHint = False end object Label5: TLabel Left = 9 Top = 69 Width = 104 Height = 20 Caption = 'Last Check In :' ParentShowHint = False ShowHint = False end object Label6: TLabel Left = 9 Top = 89 Width = 126 Height = 19 Caption = 'Last Modification:' ParentShowHint = False ShowHint = False end object Label7: TLabel Left = 10 Top = 49 Width = 50 Height = 20 Caption = 'Author:' ParentShowHint = False ShowHint = False end object ArchiveNameText: TLabel Left = 148 Top = 10 Width = 3 Height = 16 Font.Color = clWindowText Font.Height = -15 Font.Name = 'MS Sans Serif' Font.Style = [] ParentFont = False end object RevisionNumberText: TLabel Left = 148 Top = 30 Width = 3 Height = 19 end object AuthorNameText: TLabel Left = 148 Top = 49 Width = 3 Height = 20 end object LastCheckInDate: TLabel Left = 146 Top = 69 Width = 4 Height = 20 end object LastModificationDate: TLabel Left = 146 Top = 89 Width = 4 Height = 19 end object LockCountText: TLabel Left = 146 Top = 108 Width = 4 Height = 20 end object BranchCountText: TLabel Left = 146 Top = 128 Width = 4 Height = 20 end object DescriptionLabel: TLabel Left = 9 Top = 162 Width = 87 Height = 20 Caption = 'Description:' ParentShowHint = False ShowHint = False end end end object TPage Left = 0 Top = 0 Caption = 'ArchiveListPage' object ArchiveListView: TListView Left = 0 Top = 0 Width = 374 Height = 267 Align = alClient BorderStyle = bsNone Columns = < item Caption = 'Archive Name' Width = 100 end item Caption = 'Revisions' Width = 60 end item Caption = 'Locks' end item Caption = 'Creation Date' Width = 130 end item Caption = 'Access List' Width = 80 end item Caption = 'Archive Description' Width = 400 end> ReadOnly = True MultiSelect = True OnChange = ArchiveListViewChange OnColumnClick = ArchiveListViewColumnClick OnCompare = ArchiveListViewCompare OnMouseDown = ArchiveListViewMouseDown ParentShowHint = False ShowHint = False TabOrder = 0 ViewStyle = vsReport end end object TPage Left = 0 Top = 0 Caption = 'NoArchiveAvailable' object Panel11: TPanel Left = 0 Top = 0 Width = 374 Height = 267 Align = alClient ParentColor = True TabOrder = 0 end end end end object RevisionHeader: TPanel Left = 0 Top = 0 Width = 378 Height = 20 Align = alTop Alignment = taLeftJustify BevelOuter = bvLowered Caption = ' Workfile Information' ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 1 end end object Splitter: TPanel Left = 2 Top = 2 Width = 5 Height = 291 Cursor = crHSplit Align = alLeft BevelOuter = bvNone ParentColor = True ParentShowHint = False ShowHint = True TabOrder = 0 OnMouseDown = SplitterMouseDown OnMouseMove = SplitterMouseMove OnMouseUp = SplitterMouseUp end end end end object Panel2: TPanel Left = 0 Top = 0 Width = 617 Height = 37 Align = alTop BevelOuter = bvNone ParentColor = True ParentShowHint = False ShowHint = False TabOrder = 2 object HelpButton: TSpeedButton Left = 414 Top = 5 Width = 30 Height = 31 Hint = 'Help|View help for the PVCS Project Explorer' AllowAllUp = True Glyph.Data = { E8010000424DE801000000000000760000002800000012000000120000000100 040000000000D800000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777776677 7777770000007777777644677777770000007777777E66477777770000007777 7777E66777777700000077777777777777777700000077777777446777777700 00007777777666477777770000007777777E66477777770000007777777E6664 77777700000077777777E666477777000000777777777E666477770000007777 744777E666477700000077776664777E6647770000007777E666444666477700 000077777E666666666777000000777777EE666666777700000077777777EEEE E777770000007777777777777777770000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = HelpButtonClick end object CloseButton: TSpeedButton Left = 384 Top = 5 Width = 31 Height = 31 Hint = 'Close|Hide the PVCS Project Explorer' AllowAllUp = True Glyph.Data = { E8010000424DE801000000000000760000002800000012000000120000000100 040000000000D800000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00788888888877 F7F7870000004444400888FFF4444400000077774D5007FFF477770000007777 45D50FFFF4777700000077774D5D0FFFF47777000000777745D50FEFE4777700 000077774D5D0FFFF47777000000777745D50FEFE4777700000077774D5D0FFF F47777000000777745D50FEFE4777700000077774D5D0EFEF477770000007777 45D50FEFE4777700000077774D5D0EFEF4777700000077774444444444777700 00007777777777777777770000007777770000007777770000007777770AAAA0 7777770000007777770000007777770000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = CloseButtonClick end object CheckOutButton: TSpeedButton Left = 39 Top = 5 Width = 31 Height = 31 Hint = 'Check Out|Check out the selected file' Glyph.Data = { AC010000424DAC01000000000000760000002800000010000000100000000100 0400000000008000000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00688888888888 886608080808080808668FFFFFFFFFFF88660F4444FFF0FF08668F4EE4FFF00F 88660F4444FFF09008868FFFFF00009900880F444709999990068F4EE7000099 00660F4444FFF09008668FFFFF78800888660F444470808806668F4EE4787770 66660F444470770666668FFFFF787066666608080808066666667C1699005C1F EF60208043686563000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = CheckOutButtonClick end object CheckInButton: TSpeedButton Left = 70 Top = 5 Width = 31 Height = 31 Hint = 'Check In|Check in the selected file' Glyph.Data = { AC010000424DAC01000000000000760000002800000010000000100000000100 0400000000008000000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00688888888888 886608080808080808668FFFFFFFFFFF88660F4444FFFF0F08668F4EE4FFF00F 88660F4444FF090F08868FFFFFF0990000860F444C09999990868F4EECF09900 00660F4444FF090F08668FFFFF78800888660F444470880806668F4EE4787770 66660F444470770666668FFFFF78706666660808080806666666000000000000 000000000000D900000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = CheckInButtonClick end object AddLabelButton: TSpeedButton Left = 118 Top = 5 Width = 31 Height = 31 Hint = 'Add Label|Add or move a label to the selected revision' Glyph.Data = { AC010000424DAC01000000000000760000002800000010000000100000000100 0400000000008000000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 777777700007770777777770AA0770B077777000AA000BFB077770AAAAAA0FBF B07770AAAAAA0BFBFB077000AA000FBFB0777770AA0BFBFB07777770000FBFB0 7777777770FBFB07777777777000007777777777077777777777777700000777 7777777777777077777777777770077777777777700777777777000000000000 000000000000D900000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = AddLabelButtonClick end object DeleteLabelButton: TSpeedButton Left = 149 Top = 5 Width = 31 Height = 31 Hint = 'Remove Label|Remove a label from the selected revision' Glyph.Data = { AC010000424DAC01000000000000760000002800000010000000100000000100 0400000000008000000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 777777777777770777777777777770B07777700000000BFB0777709999990FBF B077709999990BFBFB07700000000FBFB077777770FBFBFB0777777770BFBFB0 7777777770FBFB07777777777000007777777777077777777777777700000777 7777777777777077777777777770077777777777700777777777000000000000 000000000000D900000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = DeleteLabelClick end object EditLabelButton: TSpeedButton Left = 180 Top = 5 Width = 30 Height = 31 Hint = 'Edit Label|Change the text of a version label' Glyph.Data = { AC010000424DAC01000000000000760000002800000010000000100000000100 0400000000008000000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 777777777770777777777777770B07777777777770FFB077777777770FBBFB07 77007770F0BFBFB07700770FB00B5B5B5500770FBF05B9B9B900770BFB5B9B9B 9B00770FBFB5B9B9B9007700005B9B9B9B0070777775B9B5B500700000775B50 0777777777077777007777770077777770077700777777777707000000000000 000000000000D900000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000400000C0425300000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = EditLabelButtonClick end object LockRevisionButton: TSpeedButton Left = 226 Top = 5 Width = 31 Height = 31 Hint = 'Lock Revision|Lock the selected revision' Glyph.Data = { B4010000424DB401000000000000760000002800000010000000110000000100 0400000000008800000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00666688888888 888666608080808000866667F7F8F878808668807F7F878700860807F7F8F878 80868FF07F7F878700860FF7F7F8F87880668F407888080806660FFF070FFF87 06668F44F80444F086660FFF070FFF8706668F44F80444F086660FFF07777F88 06668F444F08080866660FFFFFF7FF7666668FFFFFF8F8666666080808080666 666600000000D90000A04C7096008C7100000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = LockRevisionButtonClick end object UnlockRevisionButton: TSpeedButton Left = 257 Top = 5 Width = 31 Height = 31 Hint = 'Unlock Revision|Unlock the selected revision' Glyph.Data = { B4010000424DB401000000000000760000002800000010000000110000000100 0400000000008800000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00666688888888 888666608080808000866667F7F8F878808668807F7F878800860807F7F8F878 80868FF07F7F878800860FF7F7F8F87880668F407888080886660FFF070FFFFF 76668F44780444FF86660FFF070FFFFF76668F447804440086660FFF070FF0F8 06668F44F7800F7866660FFF0F8FF78066668FFFF0F888066666080808080066 666600000000D90000A04C70960084B100000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = UnlockRevisionButtonClick end object ArchiveReportButton: TSpeedButton Left = 304 Top = 5 Width = 31 Height = 31 Hint = 'Archive Report|Create an archive report for the selected workfil' + 'e' Glyph.Data = { B4010000424DB401000000000000760000002800000010000000110000000100 0400000000008800000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0066660FFFFF77 777768888F0F0FFFFFFF08080F0FFFFFFFFF8FFF8FFF0F7777770F440F0FFF77 77778F4E8F0F0F7777770F440FFFFFFFFFFF8FFF8F0F0FFFFFFF0F440F0FFF77 77778F4E8FFF0F7777770F440808080808088FFFFFFFFFFF88660F44444F0808 06668F4EEE4F877066660F44444F070666668FFFFFFF80666666080808080666 666600000000D90000A04C7096008C7100000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = ArchiveReportButtonClick end object VisualDiffButton: TSpeedButton Left = 335 Top = 5 Width = 31 Height = 31 Hint = 'Visual Difference|Compare archive revisions.' Enabled = False Glyph.Data = { BC010000424DBC01000000000000760000002800000010000000120000000100 0400000000009000000000000000000000000000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00666666666CFF F086666666688CF80F06688888000880F08F08080887880F08FF878087FF4780 4CCC07088888888887FF870874FF4F7804CC0708F44F74F887FF8707FFFFFFF7 04CC078874F4F8478866877087FF478088660F470887880708668FF777000880 88660F444478880806668FFFFF778FF066660F4444470F0666668FFFFFF78066 666608080808066666664C7096008C7196000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = VisualDiffButtonClick end object NewArchiveButton: TSpeedButton Left = 9 Top = 5 Width = 30 Height = 31 Hint = 'Add file to PVCS|Create an archive for a file' AllowAllUp = True Glyph.Data = { 98010000424D9801000000000000760000002800000016000000160000000100 0400000000000801000000000000000000000000000000000000000000000000 8000008000000080800080000000800080008080000080808000C0C0C0000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0088888888880F 8888888888000F888888880F88888880F80080F8888888888888880F88008888 8777777777777788880088880000000000000788880088880FFFFFFFFFFF0788 880088880F4444FFFFFF0788880088880F4EE4FFFFFF0788880088880F4444FF FFFF0788880088880FFFFFFFFFFF0788880000F80F4444FFFFFF07800F008888 0F4EE4FFFFFF0788880088880F4444FFFFFF0788880088880FFFFF8777770788 880088880F44448000000888880088880F4EE48088708888880088880F444480 87088888880088880FFFFF80708888888800888800000000088888888800880F 8888888888888880F80080F88888880F888888880F0088888888880F88888888 88000000000000000000000000000000000000000000000000000000} ParentShowHint = False ShowHint = True OnClick = NewArchiveButtonClick end end object WorkfileDialog: TOpenDialog FileEditStyle = fsEdit Filter = 'C++Builder Source Files|*.CPP;*.H;*.DFM;*.MAK|Resource Files|*.R' + 'C;*.RES|C++ and C Files|*.CPP;*.H;*.C;*.MAK|Image Files|*.BMP;*.' + 'ICO|Help Files|*.RTF;*.HLP;*.KWF;*.TOC;*.CNT|Text Files|*.TXT|Al' + 'l Files|*.*' Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofShareAware] Title = 'Select File to Add to PVCS' Left = 9 Top = 305 end object Timer1: TTimer Enabled = False Interval = 200 OnTimer = Timer1Timer Left = 39 Top = 306 end end