Skip to content
This repository was archived by the owner on Feb 21, 2021. It is now read-only.

Commit 5afdf19

Browse files
authored
Merge pull request #1395 from JdeRobot/release610
Release 6.1.0
2 parents 762316e + b1e9b2a commit 5afdf19

File tree

1,087 files changed

+235
-521091
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,087 files changed

+235
-521091
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ src/interfaces/python/
1515
*.qrc.depends
1616

1717
.dpkg_pkgs/
18-
18+
build/
19+
build_clean/
1920

2021
# Python
2122
__pycache__/

CMakeLists.txt

+25-8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
if(NOT WIN32)
2+
string(ASCII 27 Esc)
3+
set(ColourReset "${Esc}[m")
4+
set(ColourBold "${Esc}[1m")
5+
set(Red "${Esc}[31m")
6+
set(Green "${Esc}[32m")
7+
set(Yellow "${Esc}[33m")
8+
set(Blue "${Esc}[34m")
9+
set(Magenta "${Esc}[35m")
10+
set(Cyan "${Esc}[36m")
11+
set(White "${Esc}[37m")
12+
set(BoldRed "${Esc}[1;31m")
13+
set(BoldGreen "${Esc}[1;32m")
14+
set(BoldYellow "${Esc}[1;33m")
15+
set(BoldBlue "${Esc}[1;34m")
16+
set(BoldMagenta "${Esc}[1;35m")
17+
set(BoldCyan "${Esc}[1;36m")
18+
set(BoldWhite "${Esc}[1;37m")
19+
endif()
20+
21+
122
IF(NOT DEFINED ENABLE_ROS)
223
SET(ENABLE_ROS ON)
324
ENDIF(NOT DEFINED ENABLE_ROS)
@@ -35,7 +56,7 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
3556
include(CheckCXXCompilerFlag)
3657
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
3758
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
38-
message (version: ${CMAKE_CXX_COMPILER_VERSION})
59+
message ("-- Compiler version: " ${CMAKE_CXX_COMPILER_VERSION})
3960
if(COMPILER_SUPPORTS_CXX11)
4061
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
4162
elseif(COMPILER_SUPPORTS_CXX0X)
@@ -154,7 +175,7 @@ include(FindPkgConfig)
154175
link_directories(${INTERFACES_CPP_DIR}/jderobot)
155176
FOREACH(LibFile ${LIBS_NEEDED})
156177
link_directories(${LIBS_DIR}/${LibFile})
157-
MESSAGE("${LIBS_DIR}/${LibFile}")
178+
# MESSAGE("${LIBS_DIR}/${LibFile}")
158179
ENDFOREACH(LibFile)
159180

160181
# FIND AND CHECK OTHER DEPENDENCES
@@ -190,10 +211,10 @@ configure_file(
190211

191212
# Install Executables
192213
list_subdirectories2( LIST_DRIVERS ${CMAKE_CURRENT_SOURCE_DIR}/src/drivers/ 1)
193-
list_subdirectories2( LIST_TOOLS ${CMAKE_CURRENT_SOURCE_DIR}/src/tools/ 1)
214+
# list_subdirectories2( LIST_TOOLS ${CMAKE_CURRENT_SOURCE_DIR}/src/tools/ 1)
194215

195216
# Install Deps cmake's tree
196-
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Deps DESTINATION ${CMAKE_INSTALL_PREFIX}/share/jderobot COMPONENT setup)
217+
# INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Deps DESTINATION ${CMAKE_INSTALL_PREFIX}/share/jderobot COMPONENT setup)
197218

198219
# Install ROS Launch files
199220
#INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/gazebo/launch DESTINATION ${CMAKE_INSTALL_PREFIX}/share/jderobot COMPONENT setup)
@@ -203,10 +224,6 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/setup.bash DESTINATION ${CMAKE_INSTALL
203224

204225

205226

206-
207-
208-
209-
210227
#file(WRITE dummy_main1.c "int main(int argc, char** argv){return 0;}")
211228
#add_executable(dummy_main1 dummy_main1.c)
212229
#INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/dummy_main1 DESTINATION /tmp COMPONENT deps OPTIONAL PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)

Deps/alut/CMakeLists.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ FIND_PATH( alut_INCLUDE_DIR NAMES alut.h PATHS ENV C++LIB ENV PATH PATH_SUFFIXE
44
IF( alut_INCLUDE_DIR )
55
FIND_LIBRARY( alut_LIBRARIES NAMES alut PATHS ENV C++LIB ENV PATH PATH_SUFFIXES lib lib64 )
66
IF( alut_LIBRARIES )
7-
MESSAGE ("-- ALUT found at ${alut_LIBRARIES}")
8-
include_directories(${alut_INCLUDE_DIR})
9-
link_directories(${alut_LIBRARIES})
7+
MESSAGE (STATUS "ALUT found at ${alut_LIBRARIES}")
8+
include_directories(${alut_INCLUDE_DIR})
9+
link_directories(${alut_LIBRARIES})
1010
ENDIF( alut_LIBRARIES )
1111
ENDIF(alut_INCLUDE_DIR)
1212

1313
IF(NOT alut_LIBRARIES)
14-
MESSAGE ("*** ALUT not found")
14+
MESSAGE (STATUS "${BoldYellow}ALUT not found${ColourReset}")
1515
ENDIF()
1616

Deps/ardrone_sdk/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ include(FindPkgConfig)
55
PKG_SEARCH_MODULE(ardronelib OPTIONAL ardronelib)
66

77
if (ardronelib_FOUND)
8-
message(STATUS "ardronelib FOUND. Version: ${ardronelib_VERSION}")
9-
message(STATUS "ardronelib libraries: ${ardronelib_LIBRARIES}")
8+
message(STATUS "ardronelib v.${ardronelib_VERSION} found")
9+
# message(STATUS "ardronelib libraries: ${ardronelib_LIBRARIES}")
1010
SET(ARDRONE_ALL_DEPS true)
1111
list(APPEND DEPS ardronelib)
1212
else()
13-
message(STATUS "ardronelib NOT FOUND.")
13+
message(STATUS "${BoldYellow}ardronelib NOT FOUND${ColourReset}")
1414
endif()

Deps/cuda/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
find_package(CUDA QUIET)
33
IF (CUDA_LIBRARIES)
44
include_directories(${CUDA_INCLUDE_DIRS})
5-
message (" -- CUDA detected")
5+
message ("-- CUDA detected")
66
#find cuda link directories:
77
if (WIN32)
88
add_definitions(-DHAVE_OPENCV_GPU)
@@ -15,6 +15,6 @@ IF (CUDA_LIBRARIES)
1515
endif()
1616
endif()
1717
ELSE()
18-
message (" -- CUDA not found!!")
18+
MESSAGE ("-- ${BoldYellow}CUDA not found${ColourReset}")
1919
ENDIF()
2020

Deps/fireware/CMakeLists.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ FIND_PATH(dc_INCLUDE_DIR NAMES dc1394.h PATHS ENV C++LIB ENV PATH PATH_SUFFIXE
66
FIND_LIBRARY( with_fireware NAMES dc1394 raw1394 PATHS ENV C++LIB ENV PATH PATH_SUFFIXES lib lib64 /usr/lib)
77

88
IF(NOT with_fireware)
9-
MESSAGE ("*** Fireware libraries: dc1394 or raw1394 not found")
9+
MESSAGE ("-- ${BoldYellow}Fireware libraries: dc1394 or raw1394 not found${ColourReset}")
10+
1011
ENDIF()
1112

1213
IF(with_fireware)
13-
MESSAGE ("*** Fireware ok")
14+
MESSAGE ("-- Fireware found")
1415
include_directories(/usr/include)
1516
link_directories(/usr/lib)
1617
list(APPEND DEPS libdc1394-22)

Deps/gazebo/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ if (GAZEBO_INCLUDE_DIRS)
88
include_directories(${gazeboInc}/gazebo/)
99
include_directories(${gazeboInc})
1010
ENDFOREACH(gazeboInc)
11-
MESSAGE("*** GAZEBO LIBRARIES FOUND: ${GAZEBO_INCLUDE_DIRS} - ${OGRE_INCLUDE_DIRS}")
11+
MESSAGE("-- Gazebo libraries found")
1212
list(APPEND DEPS gazebo9)
1313
list(APPEND DEPS_DEV libgazebo9-dev)
1414
else()
15-
MESSAGE("*** GAZEBO LIBRARIES NOT FOUND")
15+
MESSAGE("-- ${BoldYellow}Gazebo libraries NOT found${ColourReset}")
1616
endif()
1717

Deps/glog/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ find_package_handle_standard_args(Glog DEFAULT_MSG GLOG_INCLUDE_DIR GLOG_LIBRARY
4242
if(GLOG_FOUND)
4343
set(GLOG_INCLUDE_DIRS ${GLOG_INCLUDE_DIR})
4444
set(GLOG_LIBRARIES ${GLOG_LIBRARY})
45-
message(STATUS "Found glog (include: ${GLOG_INCLUDE_DIR}, library: ${GLOG_LIBRARY})")
45+
message("-- Found glog")
4646
mark_as_advanced(GLOG_ROOT_DIR GLOG_LIBRARY_RELEASE GLOG_LIBRARY_DEBUG
4747
GLOG_LIBRARY GLOG_INCLUDE_DIR)
4848
ELSE()
49-
message(FATAL_ERROR "Google Logs is required (libgoogle-glog-dev)")
49+
message(FATAL_ERROR "-- ${BoldRed}Google Logs is required (libgoogle-glog-dev)${ColourReset}")
5050
endif()
5151

5252

Deps/gtk3/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ PKG_CHECK_MODULES(gtk3 QUIET gtk+-3.0)
44
PKG_CHECK_MODULES(gtkmm3 QUIET gtkmm-3.0)
55
PKG_CHECK_MODULES(goocanvasmm QUIET goocanvasmm-2.0)
66
IF (goocanvasmm_INCLUDE_DIRS)
7-
MESSAGE("*** Goocanvasmm LIBRARIES FOUND")
7+
MESSAGE("-- Goocanvasmm libraries found")
88
list(APPEND DEPS libgoocanvasmm-2.0-6)
99
list(APPEND DEPS_DEV libgoocanvasmm-2.0-dev)
1010
ELSE()
11-
MESSAGE("*** Goocanvasmm LIBRARIES NOT FOUND")
11+
MESSAGE("---- ${BoldYellow}Goocanvasmm libraries not found${ColourReset}")
1212
ENDIF()

Deps/ice/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ FIND_PACKAGE(ZeroCIceStorm)
1313
FIND_PACKAGE(ZeroCIce)
1414
IF( ZeroCIceStorm_LIBRARY )
1515
#IF( ZeroCIceUtil_LIBRARY )
16-
MESSAGE("*** ICE ok")
16+
MESSAGE("-- ICE found")
1717
include_directories(${ZeroCIceUtil_INCLUDE_DIR})
1818
link_directories(${ZeroCIceUtil_LIBRARY})
1919
include_directories(${ZeroCIceCore_INCLUDE_DIR})
@@ -31,10 +31,10 @@ FIND_PACKAGE(ZeroCIce)
3131
ENDIF( ZeroCIceStorm_LIBRARY )
3232

3333
IF(NOT ZeroCIceStorm_LIBRARY )
34-
MESSAGE(FATAL_ERROR "*** IceStorm not found")
34+
MESSAGE(FATAL_ERROR "-- ${BoldRed}IceStorm not found${ColourReset}")
3535
ENDIF()
3636

3737
IF(NOT ZeroCIceUtil_LIBRARY )
38-
MESSAGE(WARNING "*** IceUtil not found")
38+
MESSAGE("-- ${BoldYellow}IceUtil not found${ColourReset}")
3939
ENDIF()
4040

Deps/libfreenect2/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
SET ( LIBFREENECT_PATH $ENV{LIBFREENECT_ROOT})
22
IF (DEFINED LIBFREENECT_PATH)
33
SET ( LIBFREENECT_PATH $ENV{LIBFREENECT_ROOT})
4-
message("LIBFREENECT FOUND AT ${LIBFREENECT_PATH}")
4+
message("-- libfreenect found")
55
ELSE()
6-
message("LIBFREENECT NOT FOUND")
6+
message("-- ${BoldYellow}libfreenect not found${ColourReset}")
77
ENDIF()

Deps/libusb/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
pkg_check_modules(LIBUSB QUIET libusb-1.0)
22

33
if (LIBUSB_INCLUDE_DIRS)
4-
MESSAGE("*** libusb FOUND")
4+
MESSAGE("-- libusb found")
55
list(APPEND DEPS libusb-1.0-0)
66
list(APPEND DEPS_DEV libusb-1.0-0-dev)
77
else()
8-
MESSAGE("*** libusb NOT FOUND")
8+
MESSAGE("-- ${BoldYellow}libusb not found${ColourReset}")
99
endif()
1010

1111

Deps/libxml++/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ include_directories(${libxmlpp_INCLUDE_DIRS})
55
link_directories(${libxmlpp_LIBRARY_DIRS})
66

77
IF (libxmlpp_INCLUDE_DIRS)
8-
MESSAGE("Libxml++ libraries found at ${libxmlpp_LIBRARY_DIRS}")
8+
MESSAGE("-- Libxml++ libraries found")
99
list(APPEND DEPS libxml++2.6-2v5)
1010
list(APPEND DEPS_DEV libxml++2.6-dev)
1111
ELSE()
12-
MESSAGE ("*** Libxml++ not found")
12+
MESSAGE ("-- ${BoldYellow}Libxml++ not found${ColourReset}")
1313
ENDIF()
1414

1515

Deps/libxml2/CMakeLists.txt

+3-11
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
1-
2-
31
FIND_PATH( LIBXML2_INCLUDE_DIR NAMES parser.h PATHS ENV C++LIB ENV PATH PATH_SUFFIXES include/libxml2/libxml/)
42
IF( LIBXML2_INCLUDE_DIR )
5-
6-
MESSAGE("*** LIBXML2 ok")
3+
MESSAGE("-- Libxml2 found")
74
FIND_LIBRARY( LIBXML2_LIBRARY1 NAMES xml2 PATHS ENV C++LIB ENV PATH PATH_SUFFIXES lib lib64)
8-
95
SET (LIBXML2_LIBRARIES ${LIBXML2_LIBRARY1} )
106
IF( LIBXML2_LIBRARIES )
11-
#MESSAGE("LIBXML2 LIBRARY FOUND IN ${LIBXML2_LIBRARIES}")
12-
13-
list(APPEND DEPS libxml2)
14-
7+
list(APPEND DEPS libxml2)
158
ENDIF(LIBXML2_LIBRARIES )
16-
179
ENDIF(LIBXML2_INCLUDE_DIR)
1810

1911
IF (NOT LIBXML2_INCLUDE_DIR)
20-
MESSAGE("*** LIBXML2 not found")
12+
MESSAGE("-- ${BoldYellow}libxml2 not found${ColourReset}")
2113
ELSE()
2214
link_directories(${LIBXML2_LIBRARIES})
2315
include_directories(${LIBXML2_INCLUDE_DIR})

Deps/mmal/CMakeLists.txt

+6-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
SET(CMAKE_MODULE_PATH
2-
${CMAKE_MODULE_PATH}
3-
"${CMAKE_CURRENT_LIST_DIR}/CMake"
2+
${CMAKE_MODULE_PATH}
3+
"${CMAKE_CURRENT_LIST_DIR}/CMake"
44
)
5-
6-
75
SET(CMAKE_PREFIX_PATH /opt/vc/include /opt/vc/lib)
86

9-
FIND_PACKAGE(MMAL)
10-
7+
FIND_PACKAGE(MMAL QUIET)
118

129
IF( MMAL_FOUND )
13-
MESSAGE("*** MMAL FOUND")
10+
MESSAGE("-- mmal found")
11+
ELSE()
12+
MESSAGE("-- ${BoldYellow}mmal not found${ColourReset}")
1413
ENDIF( MMAL_FOUND )

Deps/nite/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ FIND_PATH( nite_INCLUDE_DIR NAMES XnVCircleDetector.h PATHS ENV C++LIB ENV PATH
44
IF( nite_INCLUDE_DIR )
55
FIND_LIBRARY(nite_LIBRARIES NAMES XnVNite_1_5_2 XnVCNITE_1_5_2 PATHS /usr/lib/ /usr/local/lib)
66
IF( nite_LIBRARIES)
7-
MESSAGE ("-- Nite found at ${nite_LIBRARIES}")
7+
MESSAGE ("-- Nite found")
88
include_directories(${nite_INCLUDE_DIR})
99
link_directories(${nite_LIBRARIES})
1010
ENDIF( nite_LIBRARIES )
1111
ENDIF(nite_INCLUDE_DIR)
1212

1313
IF(NOT nite_LIBRARIES)
14-
MESSAGE ("*** Nite not found")
14+
MESSAGE ("-- ${BoldYellow}Nite not found${ColourReset}")
1515
ENDIF()
1616

1717

Deps/nite2/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ if (NITE2_INC AND NITE2_LIB)
77
include_directories(${NITE2_INC})
88
link_directories(${NITE2_LIB}/libNiTE2.so)
99
if (NOT IS_DIRECTORY ./NiTE2)
10-
message ("--CMake will install local NiTE2 lib and Driver")
10+
message ("-- CMake will install local NiTE2 lib and Driver")
1111
file (COPY ${NITE2_LIB}/libNiTE2.so DESTINATION .)
1212
file (COPY ${NITE2_LIB}/NiTE2 DESTINATION .)
1313
endif()
1414
else()
15-
message("NITE2 library not found")
15+
message("-- ${BoldYellow}NITE2 library not found${ColourReset}")
1616
endif()
1717

1818

Deps/nodejs/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ FIND_PATH( NODEJS_DIR nodejs node
55
SET(NODEJS_COMPILE TRUE)
66

77
IF(NOT NODEJS_DIR)
8-
MESSAGE("*** NodeJS not found")
8+
MESSAGE("-- ${BoldYellow}NodeJS not found${ColourReset}")
99
SET(NODEJS_COMPILE FALSE)
1010
ELSE()
11-
MESSAGE( STATUS " NodeJS found" )
11+
MESSAGE( STATUS "NodeJS found" )
1212
list(APPEND DEPS nodejs)
1313
list(APPEND DEPS_DEV nodejs)
1414
ENDIF()

Deps/ogre/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ if (OGRE_VERSION)
77
include_directories(${ogreInc}/Paging)
88
include_directories(${ogreInc})
99
ENDFOREACH(ogreInc)
10-
MESSAGE("*** OGRe LIBRARIES FOUND: ${OGRE_INCLUDE_DIRS}")
10+
MESSAGE(STATUS "Ogre libraries found")
1111
list(APPEND DEPS libogre-1.9.0v5)
1212
list(APPEND DEPS_DEV libogre-1.9-dev)
1313
else()
14-
MESSAGE("*** OGRE LIBRARIES NOT FOUND")
14+
MESSAGE("-- ${BoldYellow}Ogre libraries not found${ColourReset}")
1515
endif()
1616

Deps/opencv/CMakeLists.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ SET(OpenCVGUI_LIBRARIES ${OpenCV_GUI_LIBS})
5858
#TRY MANUAL IF AUTO FAILS
5959
IF (NOT DEFINED OpenCV_VERSION)
6060
IF (NOT OpenCV_DIR)
61-
IF (EXISTS /opt/ros/kinetic/)
62-
SET(OpenCV_DIR /opt/ros/kinetic/)
61+
IF (EXISTS /opt/ros/melodic/)
62+
SET(OpenCV_DIR /opt/ros/melodic/)
6363
ELSE()
6464
MESSAGE(FATAL_ERROR "OpenCV not found, if you are using a custom opencv installation set if by -DOpenCV_DIR=<your_install_path>")
6565
ENDIF()
@@ -122,7 +122,7 @@ IF (NOT DEFINED OpenCV_VERSION)
122122

123123
ENDIF()
124124

125-
message("***OpenCV Version: ${OpenCV_VERSION}")
126-
message("***OpenCV CORE LIBS: ${OpenCV_LIBRARIES}")
127-
message("***OpenCV GUI LIBS: ${OpenCVGUI_LIBRARIES}")
128-
message("***OpenCV EXTRA LIBS: ${OpenCV_EXTRA_LIBS}")
125+
message("-- OpenCV Version: ${OpenCV_VERSION}")
126+
message("-- OpenCV CORE LIBS: ${OpenCV_LIBRARIES}")
127+
message("-- OpenCV GUI LIBS: ${OpenCVGUI_LIBRARIES}")
128+
message("-- OpenCV EXTRA LIBS: ${OpenCV_EXTRA_LIBS}")

Deps/opengl/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ find_package(OpenGL REQUIRED)
44

55
IF (NOT GLUT_LIBRARIES MATCHES ".*NOTFOUND.*" AND
66
NOT OPENGL_LIBRARIES MATCHES ".*NOTFOUND.*")
7-
MESSAGE("OpenGL libraries found at ${GLUT_LIBRARIES}")
7+
MESSAGE(STATUS "OpenGL libraries found")
88

99
include_directories(${GLUT_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIRS})
1010
link_directories(${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} )
1111

1212
list(APPEND DEPS freeglut3 libglu1-mesa)
1313
list(APPEND DEPS_DEV freeglut3-dev libglu1-mesa-dev)
1414
ELSE()
15-
MESSAGE ("*** OpenGL not found")
15+
MESSAGE (STATUS "${BoldYellow}OpenGL not found${ColourReset}")
1616
ENDIF()
1717

1818

0 commit comments

Comments
 (0)