Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 110157 Details for
Bug 212389
[CommonNavigator] working set issues: missing project, window working set inconsistency
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Test cases for this bug
clipboard.txt (text/plain), 19.58 KB, created by
Francis Upton IV
on 2008-08-17 01:11:38 EDT
(
hide
)
Description:
Test cases for this bug
Filename:
MIME Type:
Creator:
Francis Upton IV
Created:
2008-08-17 01:11:38 EDT
Size:
19.58 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.navigator >Index: src/org/eclipse/ui/navigator/NavigatorActionService.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorActionService.java,v >retrieving revision 1.22 >diff -u -r1.22 NavigatorActionService.java >--- src/org/eclipse/ui/navigator/NavigatorActionService.java 24 Mar 2008 19:13:48 -0000 1.22 >+++ src/org/eclipse/ui/navigator/NavigatorActionService.java 17 Aug 2008 05:08:36 -0000 >@@ -314,7 +314,7 @@ > } > } > >- private CommonActionProvider getActionProviderInstance( >+ CommonActionProvider getActionProviderInstance( > CommonActionProviderDescriptor aProviderDescriptor) { > CommonActionProvider provider = null; > try { >Index: src/org/eclipse/ui/navigator/TestAccessHelper.java >=================================================================== >RCS file: src/org/eclipse/ui/navigator/TestAccessHelper.java >diff -N src/org/eclipse/ui/navigator/TestAccessHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ui/navigator/TestAccessHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,60 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 Oakland Software Incorporated and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Oakland Software Incorporated - initial API and implementation >+ ******************************************************************************/ >+ >+package org.eclipse.ui.navigator; >+ >+import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.ui.actions.ActionContext; >+import org.eclipse.ui.internal.navigator.actions.CommonActionDescriptorManager; >+import org.eclipse.ui.internal.navigator.actions.CommonActionProviderDescriptor; >+ >+/** >+ * Used to access internal stuff from the CN implementation. >+ * >+ * This is not API, it is used only for supporting the CN tests. >+ * >+ * @noextend This class is not intended to be subclassed by clients. >+ * @noinstantiate This class is not intended to be instantiated by clients. >+ * @since 3.3 (not really, but this fools the API tooling checks). >+ */ >+public class TestAccessHelper { >+ >+ >+ /** >+ * @param contentService >+ * @param actionService >+ * @param cls >+ * @return a CommonActionProvider >+ * @throws Exception >+ * @noreference >+ * >+ * @since 3.3 (not really, but this fools the API tooling checks) >+ */ >+ public static CommonActionProvider getActionProvider( >+ INavigatorContentService contentService, >+ NavigatorActionService actionService, Class cls) throws Exception { >+ >+ CommonActionProvider provider = null; >+ CommonActionProviderDescriptor[] providerDescriptors = CommonActionDescriptorManager >+ .getInstance().findRelevantActionDescriptors(contentService, >+ new ActionContext(new StructuredSelection())); >+ if (providerDescriptors.length > 0) { >+ for (int i = 0; i < providerDescriptors.length; i++) { >+ provider = actionService >+ .getActionProviderInstance(providerDescriptors[i]); >+ if (provider.getClass() == cls) >+ return provider; >+ } >+ } >+ return null; >+ } >+ >+} >Index: .settings/.api_filters >=================================================================== >RCS file: .settings/.api_filters >diff -N .settings/.api_filters >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .settings/.api_filters 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,11 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<component id="org.eclipse.ui.navigator" version="2"> >+ <resource path="META-INF/MANIFEST.MF"> >+ <filter id="924844039"> >+ <message_arguments> >+ <message_argument value="3.3.101.qualifier"/> >+ <message_argument value="3.3.100.I20080606-1300"/> >+ </message_arguments> >+ </filter> >+ </resource> >+</component> >#P org.eclipse.ui.tests.navigator >Index: src/org/eclipse/ui/tests/navigator/NavigatorTestBase.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestBase.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 NavigatorTestBase.java >--- src/org/eclipse/ui/tests/navigator/NavigatorTestBase.java 15 Aug 2008 01:35:16 -0000 1.1.2.1 >+++ src/org/eclipse/ui/tests/navigator/NavigatorTestBase.java 17 Aug 2008 05:08:37 -0000 >@@ -26,6 +26,7 @@ > import org.eclipse.ui.navigator.CommonNavigator; > import org.eclipse.ui.navigator.CommonViewer; > import org.eclipse.ui.navigator.INavigatorContentService; >+import org.eclipse.ui.navigator.NavigatorActionService; > import org.eclipse.ui.tests.navigator.util.TestWorkspace; > > public class NavigatorTestBase extends TestCase { >@@ -37,7 +38,7 @@ > public static final String COMMON_NAVIGATOR_TEST_EXT = "org.eclipse.ui.tests.navigator.testContent"; //$NON-NLS-1$ > > protected String _navigatorInstanceId; >- >+ > protected Set expectedChildren = new HashSet(); > > protected IProject project; >@@ -45,38 +46,58 @@ > protected CommonViewer viewer; > > protected CommonNavigator _commonNavigator; >- >- protected INavigatorContentService contentService; >- >- protected void setUp() throws Exception { > >- if (_navigatorInstanceId == null) >- throw new RuntimeException("Set the _navigatorInstanceId in the constructor"); >+ protected INavigatorContentService contentService; >+ protected NavigatorActionService _actionService; > >- TestWorkspace.init(); >+ protected boolean _initTestData = true; > >- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); >- project = root.getProject("Test"); //$NON-NLS-1$ >+ protected void setUp() throws Exception { > >- expectedChildren.add(project.getFolder("src")); //$NON-NLS-1$ >- expectedChildren.add(project.getFolder("bin")); //$NON-NLS-1$ >- expectedChildren.add(project.getFile(".project")); //$NON-NLS-1$ >- expectedChildren.add(project.getFile(".classpath")); //$NON-NLS-1$ >- expectedChildren.add(project.getFile("model.properties")); //$NON-NLS-1$ >+ if (_navigatorInstanceId == null) { >+ throw new RuntimeException( >+ "Set the _navigatorInstanceId in the constructor"); >+ } >+ >+ if (_initTestData) { >+ >+ TestWorkspace.init(); >+ >+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); >+ project = root.getProject("Test"); //$NON-NLS-1$ >+ >+ expectedChildren.add(project.getFolder("src")); //$NON-NLS-1$ >+ expectedChildren.add(project.getFolder("bin")); //$NON-NLS-1$ >+ expectedChildren.add(project.getFile(".project")); //$NON-NLS-1$ >+ expectedChildren.add(project.getFile(".classpath")); //$NON-NLS-1$ >+ expectedChildren.add(project.getFile("model.properties")); //$NON-NLS-1$ >+ } > > EditorTestHelper.showView(_navigatorInstanceId, true); > >- IWorkbenchWindow activeWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); >+ IWorkbenchWindow activeWindow = PlatformUI.getWorkbench() >+ .getActiveWorkbenchWindow(); > IWorkbenchPage activePage = activeWindow.getActivePage(); > >- _commonNavigator = (CommonNavigator) activePage.findView(_navigatorInstanceId); >+ _commonNavigator = (CommonNavigator) activePage >+ .findView(_navigatorInstanceId); > _commonNavigator.setFocus(); > viewer = (CommonViewer) _commonNavigator.getAdapter(CommonViewer.class); > > contentService = viewer.getNavigatorContentService(); >+ _actionService = _commonNavigator.getNavigatorActionService(); > >- IUndoableOperation updateFilters = new UpdateActiveFiltersOperation(viewer, new String[0], true); >+ IUndoableOperation updateFilters = new UpdateActiveFiltersOperation( >+ viewer, new String[0], true); > updateFilters.execute(null, null); > } > >+ protected void tearDown() throws Exception { >+ IProject[] projects = ResourcesPlugin.getWorkspace().getRoot() >+ .getProjects(); >+ for (int i = 0; i < projects.length; i++) { >+ projects[i].delete(true, null); >+ } >+ } >+ > } >Index: src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java,v >retrieving revision 1.6.6.1 >diff -u -r1.6.6.1 NavigatorTestSuite.java >--- src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java 15 Aug 2008 01:35:16 -0000 1.6.6.1 >+++ src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java 17 Aug 2008 05:08:37 -0000 >@@ -26,6 +26,7 @@ > * Construct the test suite. > */ > public NavigatorTestSuite() { >+ addTest(new TestSuite(WorkingSetTest.class)); > addTest(new TestSuite(ActivityTest.class)); > addTest(new TestSuite(OpenTest.class)); > addTest(new TestSuite(INavigatorContentServiceTests.class)); >Index: src/org/eclipse/ui/tests/navigator/OpenTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/OpenTest.java,v >retrieving revision 1.18.6.1 >diff -u -r1.18.6.1 OpenTest.java >--- src/org/eclipse/ui/tests/navigator/OpenTest.java 15 Aug 2008 01:35:16 -0000 1.18.6.1 >+++ src/org/eclipse/ui/tests/navigator/OpenTest.java 17 Aug 2008 05:08:37 -0000 >@@ -12,12 +12,13 @@ > > import org.eclipse.jface.viewers.StructuredSelection; > import org.eclipse.swt.widgets.TreeItem; >+import org.eclipse.ui.navigator.resources.ProjectExplorer; > > public class OpenTest extends NavigatorTestBase { > > public OpenTest() > { >- _navigatorInstanceId = "org.eclipse.ui.navigator.ProjectExplorer"; >+ _navigatorInstanceId = ProjectExplorer.VIEW_ID; > } > > public void testNavigatorRootContents() throws Exception { >Index: src/org/eclipse/ui/tests/navigator/ActivityTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/ActivityTest.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 ActivityTest.java >--- src/org/eclipse/ui/tests/navigator/ActivityTest.java 15 Aug 2008 01:35:16 -0000 1.1.2.1 >+++ src/org/eclipse/ui/tests/navigator/ActivityTest.java 17 Aug 2008 05:08:37 -0000 >@@ -21,16 +21,14 @@ > import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.actions.ActionContext; > import org.eclipse.ui.activities.IWorkbenchActivitySupport; >-import org.eclipse.ui.navigator.NavigatorActionService; >+import org.eclipse.ui.navigator.resources.ProjectExplorer; > > public class ActivityTest extends NavigatorTestBase { > > public ActivityTest() { >- _navigatorInstanceId = "org.eclipse.ui.navigator.ProjectExplorer"; >+ _navigatorInstanceId = ProjectExplorer.VIEW_ID; > } > >- protected NavigatorActionService _actionService; >- > protected static final String ACTIVITY = "org.eclipse.ui.tests.navigator.testActivity"; > > protected boolean verifyMenu(IStructuredSelection sel, String item) { >@@ -62,7 +60,6 @@ > > IStructuredSelection sel = new StructuredSelection(project); > viewer.setSelection(sel); >- _actionService = _commonNavigator.getNavigatorActionService(); > > IWorkbenchActivitySupport actSupport = PlatformUI.getWorkbench().getActivitySupport(); > >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests.navigator/META-INF/MANIFEST.MF,v >retrieving revision 1.11.2.1 >diff -u -r1.11.2.1 MANIFEST.MF >--- META-INF/MANIFEST.MF 15 Aug 2008 01:35:16 -0000 1.11.2.1 >+++ META-INF/MANIFEST.MF 17 Aug 2008 05:08:37 -0000 >@@ -15,4 +15,5 @@ > org.eclipse.ui.navigator.resources > Bundle-Vendor: Eclipse.org > Bundle-ClassPath: uinavtests.jar >+Bundle-RequiredExecutionEnvironment: J2SE-1.4 > Bundle-ActivationPolicy: lazy >Index: .settings/org.eclipse.jdt.core.prefs >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.core.prefs,v >retrieving revision 1.3 >diff -u -r1.3 org.eclipse.jdt.core.prefs >--- .settings/org.eclipse.jdt.core.prefs 14 Sep 2006 12:15:54 -0000 1.3 >+++ .settings/org.eclipse.jdt.core.prefs 17 Aug 2008 05:08:37 -0000 >@@ -1,4 +1,4 @@ >-#Thu Sep 14 08:14:32 EDT 2006 >+#Sat Aug 16 12:54:53 PDT 2008 > eclipse.preferences.version=1 > org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled > org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4 >@@ -13,14 +13,15 @@ > org.eclipse.jdt.core.compiler.problem.deprecation=warning > org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled > org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled >-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning >+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore > org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore > org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning > org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore >+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled > org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore > org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning > org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning >-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error >+org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore > org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning > org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning > org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore >@@ -37,7 +38,10 @@ > org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning > org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore > org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore >+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore > org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore >+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore >+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore > org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled > org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning > org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled >@@ -50,13 +54,17 @@ > org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore > org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore > org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore >+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled >+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled > org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled > org.eclipse.jdt.core.compiler.problem.unusedImport=error > org.eclipse.jdt.core.compiler.problem.unusedLabel=error > org.eclipse.jdt.core.compiler.problem.unusedLocal=error > org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore >+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled > org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled > org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled > org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning >+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning > org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning > org.eclipse.jdt.core.compiler.source=1.4 >Index: src/org/eclipse/ui/tests/navigator/WorkingSetTest.java >=================================================================== >RCS file: src/org/eclipse/ui/tests/navigator/WorkingSetTest.java >diff -N src/org/eclipse/ui/tests/navigator/WorkingSetTest.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ui/tests/navigator/WorkingSetTest.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,100 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 Oakland Software Incorporated and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Oakland Software Incorporated - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.ui.tests.navigator; >+ >+import java.io.ByteArrayInputStream; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IProject; >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.jface.util.IPropertyChangeListener; >+import org.eclipse.jface.util.PropertyChangeEvent; >+import org.eclipse.swt.widgets.Display; >+import org.eclipse.swt.widgets.TreeItem; >+import org.eclipse.ui.IWorkingSet; >+import org.eclipse.ui.PlatformUI; >+import org.eclipse.ui.actions.WorkingSetFilterActionGroup; >+import org.eclipse.ui.internal.AggregateWorkingSet; >+import org.eclipse.ui.internal.WorkingSet; >+import org.eclipse.ui.internal.navigator.resources.actions.WorkingSetActionProvider; >+import org.eclipse.ui.navigator.TestAccessHelper; >+import org.eclipse.ui.navigator.resources.ProjectExplorer; >+import org.eclipse.ui.tests.navigator.util.TestWorkspace; >+ >+public class WorkingSetTest extends NavigatorTestBase { >+ >+ public WorkingSetTest() { >+ _navigatorInstanceId = ProjectExplorer.VIEW_ID; >+ _initTestData = false; >+ } >+ >+ // Bug 157877 when using empty window working set, it should show all >+ public void testEmptyWindowWorkingSet() throws Exception { >+ TestWorkspace.init(); >+ >+ WorkingSetActionProvider provider = (WorkingSetActionProvider) TestAccessHelper >+ .getActionProvider(contentService, _actionService, >+ WorkingSetActionProvider.class); >+ >+ IWorkingSet workingSet = PlatformUI.getWorkbench() >+ .getActiveWorkbenchWindow().getActivePage() >+ .getAggregateWorkingSet(); >+ >+ // Set the filter to window working set (which should be empty) >+ IPropertyChangeListener l = provider.getFilterChangeListener(); >+ PropertyChangeEvent event = new PropertyChangeEvent(this, >+ WorkingSetFilterActionGroup.CHANGE_WORKING_SET, null, >+ workingSet); >+ l.propertyChange(event); >+ >+ TreeItem[] items = viewer.getTree().getItems(); >+ assertTrue("There should be some items.", items.length > 0); >+ } >+ >+ // Bug 212389 projects are not shown when they are not in the working set, >+ // but their children are >+ public void testMissingProjectsInWorkingSet() throws Exception { >+ >+ IProject p1 = ResourcesPlugin.getWorkspace().getRoot().getProject("p1"); >+ p1.create(null); >+ p1.open(null); >+ IFile f1 = p1.getFile("f1"); >+ f1.create(new ByteArrayInputStream(new byte[] {}), true, null); >+ >+ WorkingSetActionProvider provider = (WorkingSetActionProvider) TestAccessHelper >+ .getActionProvider(contentService, _actionService, >+ WorkingSetActionProvider.class); >+ >+ IWorkingSet workingSet = new WorkingSet("ws1", "ws1", >+ new IAdaptable[] { f1 }); >+ >+ AggregateWorkingSet agWorkingSet = new AggregateWorkingSet("AgWs", >+ "Ag Working Set", new IWorkingSet[] { workingSet }); >+ >+ IPropertyChangeListener l = provider.getFilterChangeListener(); >+ PropertyChangeEvent event = new PropertyChangeEvent(this, >+ WorkingSetFilterActionGroup.CHANGE_WORKING_SET, null, >+ agWorkingSet); >+ l.propertyChange(event); >+ >+ DisplayHelper.runEventLoop(Display.getCurrent(), 100); >+ >+ // DisplayHelper.sleep(Display.getCurrent(), 10000000); >+ >+ TreeItem[] items = viewer.getTree().getItems(); >+ // The bug is here where the first item is a IFile, not the enclosing >+ // project >+ assertTrue("First item needs to be project", items[0].getData().equals( >+ p1)); >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 212389
:
84942
|
110156
|
110157
|
110160
|
110161
|
110173