Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

deleted bin, conf and junit style sheets and made it so they are put …

…in place during install and assemble
  • Loading branch information...
commit 4e9c9f1df2c5abe6b9a28465ee12dc4eb2eff592 1 parent deb1644
@graemerocher graemerocher authored
View
2  .gitignore
@@ -1,3 +1,5 @@
+/bin
+/conf
*.ipr
idea
/lib
View
263 bin/startGrails
@@ -1,263 +0,0 @@
-##############################################################################
-## ##
-## Groovy JVM Bootstrap for UN*X ##
-## ##
-##############################################################################
-
-##
-## $Revision: 4181 $ $Date: 2006-10-28 15:36:34 +0000 (Sat, 28 Oct 2006) $
-##
-
-PROGNAME=`basename "$0"`
-DIRNAME=`dirname "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that
-MAX_FD="maximum"
-
-warn() {
- echo "${PROGNAME}: $*"
-}
-
-die() {
- warn "$*"
- exit 1
-}
-
-earlyInit() {
- return
-}
-lateInit() {
- return
-}
-
-GROOVY_STARTUP=~/.groovy/startup
-if [ -r "$GROOVY_STARTUP" ]; then
- . "$GROOVY_STARTUP"
-fi
-
-earlyInit
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false;
-darwin=false;
-case "`uname`" in
- CYGWIN*)
- cygwin=true
- ;;
-
- Darwin*)
- darwin=true
- ;;
-esac
-
-if [ "$1" = "-cp" ] || [ "$1" = "-classpath" ]; then
- CP=$2
- shift 2
-fi
-
-ARGUMENTS=$@
-
-# Attempt to set JAVA_HOME if it's not already set
-if [ -z "$JAVA_HOME" ]; then
-
- # Set JAVA_HOME for Darwin
- if $darwin; then
-
- [ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] &&
- export JAVA_HOME="/Library/Java/Home"
-
- [ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] &&
- export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
-
- fi
-
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
- [ -n "$GRAILS_HOME" ] &&
- GRAILS_HOME=`cygpath --unix "$GRAILS_HOME"`
- [ -n "$JAVACMD" ] &&
- JAVACMD=`cygpath --unix "$JAVACMD"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CP" ] &&
- CP=`cygpath --path --unix "$CP"`
-fi
-
-# Remove possible trailing slash (after possible cygwin correction)
-GRAILS_HOME=`echo $GRAILS_HOME | sed -e 's|/$||g'`
-
-# Locate GRAILS_HOME if not it is not set
-if [ -z "$GRAILS_HOME" -o ! -d "$GRAILS_HOME" ] ; then
- # resolve links - $0 may be a link to groovy's home
- PRG="$0"
-
- # need this for relative symlinks
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
- done
-
- SAVED="`pwd`"
- cd "`dirname \"$PRG\"`/.."
- GRAILS_HOME="`pwd -P`"
- cd "$SAVED"
-fi
-
-# Use default groovy-conf config
-if [ -z "$GROOVY_CONF" ]; then
- GROOVY_CONF="$GRAILS_HOME/conf/groovy-starter.conf"
-fi
-STARTER_CLASSPATH="$GRAILS_HOME/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-1.8.0-rc-1.jar:$GRAILS_HOME/dist/grails-bootstrap-1.4.0.BUILD-SNAPSHOT.jar"
-
-# Allow access to Cocoa classes on OS X
-if $darwin; then
- STARTER_CLASSPATH="$STARTER_CLASSPATH:/System/Library/Java"
-fi
-
-# Create the final classpath
-# Setting a classpath using the -cp or -classpath option means not to use
-# the global classpath. Groovy behaves then the same as the java
-# interpreter
-if [ -n "$CP" ] ; then
- CP="$CP"
-elif [ -n "$CLASSPATH" ] ; then
- CP="$CLASSPATH"
-fi
-
-# Determine the Java command to use to start the JVM
-if [ -z "$JAVACMD" ]; then
- if [ -n "$JAVA_HOME" ]; then
- if [ -x "$JAVA_HOME/jre/sh/java" ]; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- else
- JAVACMD="java"
- fi
-fi
-if [ ! -x "$JAVACMD" ]; then
- die "JAVA_HOME is not defined correctly; can not execute: $JAVACMD"
-fi
-if [ -z "$JAVA_HOME" ] ; then
- warn "JAVA_HOME environment variable is not set"
-fi
-
-# Increase the maximum file descriptors if we can
-if [ "$cygwin" = "false" ]; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ "$MAX_FD_LIMIT" != "unlimited" ]; then
- if [ $? -eq 0 ]; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
- # use the businessSystem max
- MAX_FD="$MAX_FD_LIMIT"
- fi
-
- ulimit -n $MAX_FD
- if [ $? -ne 0 ]; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
- fi
-fi
-
-# Setup Profiler
-useprofiler=false
-if [ "x$PROFILER" != "x" ]; then
- if [ -r "$PROFILER" ]; then
- . $PROFILER
- useprofiler=true
- else
- die "Profiler file not found: $PROFILER"
- fi
-fi
-
-# For Darwin, use classes.jar for TOOLS_JAR
-TOOLS_JAR="$JAVA_HOME/lib/tools.jar"
-#if $darwin; then
-# TOOLS_JAR="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar"
-#fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
- GRAILS_HOME=`cygpath --path --mixed "$GRAILS_HOME"`
- JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"`
- GROOVY_CONF=`cygpath --path --mixed "$GROOVY_CONF"`
- CP=`cygpath --path --mixed "$CP"`
- TOOLS_JAR=`cygpath --path --mixed "$TOOLS_JAR"`
- STARTER_CLASSPATH=`cygpath --path --mixed "$STARTER_CLASSPATH"`
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GROOVY_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GROOVY_CYGPATTERN)"
- fi
- # Now convert the arguments
- ARGUMENTS=""
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- if [ $CHECK -ne 0 ] ; then
- convArg=`cygpath --path --ignore --mixed "$arg"`
- else
- convArg=$arg
- fi
- ARGUMENTS="$ARGUMENTS $convArg"
- done
-fi
-
-STARTER_MAIN_CLASS=org.codehaus.groovy.grails.cli.support.GrailsStarter
-
-lateInit
-
-startGrails() {
- CLASS=$1
- shift
- if [ -n "$GRAILS_OPTS" ]
- then
- GRAILS_OPTS="$GRAILS_OPTS"
- else
- GRAILS_OPTS="-server -Xmx512M -XX:MaxPermSize=192m -Dfile.encoding=UTF-8"
- fi
- JAVA_OPTS="$GRAILS_OPTS $JAVA_OPTS"
- # Start the Profiler or the JVM
- if $useprofiler; then
- runProfiler
- else
- if [ $# -eq 0 ] ; then # no argument given
- exec "$JAVACMD" $JAVA_OPTS \
- -classpath "$STARTER_CLASSPATH" \
- -Dgrails.home="$GRAILS_HOME" \
- -Dtools.jar="$TOOLS_JAR" \
- $STARTER_MAIN_CLASS \
- --main $CLASS \
- --conf "$GROOVY_CONF" \
- --classpath "$CP"
- else
- exec "$JAVACMD" $JAVA_OPTS \
- -classpath "$STARTER_CLASSPATH" \
- -Dgrails.home="$GRAILS_HOME" \
- -Dtools.jar="$TOOLS_JAR" \
- $STARTER_MAIN_CLASS \
- --main $CLASS \
- --conf "$GROOVY_CONF" \
- --classpath "$CP" \
- "${ARGUMENTS}"
- fi
- fi
-}
View
145 bin/startGrails.bat
@@ -1,145 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem ##
-@rem Groovy JVM Bootstrap for Windowz ##
-@rem ##
-@rem ##########################################################################
-
-@rem
-@rem $Revision: 4170 $ $Date: 2006-10-26 12:11:12 +0000 (Thu, 26 Oct 2006) $
-@rem
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~1
-shift
-
-set CLASS=%~1
-shift
-
-if exist "%USERPROFILE%/.groovy/preinit.bat" call "%USERPROFILE%/.groovy/preinit.bat"
-
-@rem Determine the command interpreter to execute the "CD" later
-set COMMAND_COM="cmd.exe"
-if exist "%SystemRoot%\system32\cmd.exe" set COMMAND_COM="%SystemRoot%\system32\cmd.exe"
-if exist "%SystemRoot%\command.com" set COMMAND_COM="%SystemRoot%\command.com"
-
-@rem Use explicit find.exe to prevent cygwin and others find.exe from being used
-set FIND_EXE="find.exe"
-if exist "%SystemRoot%\system32\find.exe" set FIND_EXE="%SystemRoot%\system32\find.exe"
-if exist "%SystemRoot%\command\find.exe" set FIND_EXE="%SystemRoot%\command\find.exe"
-
-:check_JAVA_HOME
-@rem Make sure we have a valid JAVA_HOME
-if not "%JAVA_HOME%" == "" goto have_JAVA_HOME
-
-echo.
-echo ERROR: Environment variable JAVA_HOME has not been set.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-echo.
-goto end
-
-:have_JAVA_HOME
-@rem Validate JAVA_HOME
-%COMMAND_COM% /C DIR "%JAVA_HOME%" 2>&1 | %FIND_EXE% /I /C "%JAVA_HOME%" >nul
-if not errorlevel 1 goto check_GRAILS_HOME
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-echo.
-goto end
-
-:check_GRAILS_HOME
-@rem Define GRAILS_HOME if not set
-if "%GRAILS_HOME%" == "" set GRAILS_HOME=%DIRNAME%..
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem remove trailing slash from GRAILS_HOME
-if "%GRAILS_HOME:~-1%"=="\" SET GRAILS_HOME=%GRAILS_HOME:~0,-1%
-
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set CP=
-set GRAILS_OPTIONS=
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-set CURR_ARG=%~1
-if "%CURR_ARG:~0,2%" == "-D" (
- set GRAILS_OPTIONS=%GRAILS_OPTIONS% %~1=%~2
- shift
- shift
- goto win9xME_args_slurp
-) else (
- if "x%~1" == "x-cp" (
- set CP=%~2
- shift
- shift
- goto win9xME_args_slurp
- ) else (
- if "x%~1" == "x-classpath" (
- set CP=%~2
- shift
- shift
- goto win9xME_args_slurp
- ) else (
- set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
- shift
- goto win9xME_args_slurp
- )
- )
-)
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-set STARTER_CLASSPATH=%GRAILS_HOME%\lib\org.codehaus.groovy\groovy-all\jars\groovy-all-1.8.0-rc-1.jar;%GRAILS_HOME%\dist\grails-bootstrap-1.4.0.BUILD-SNAPSHOT.jar
-
-if exist "%USERPROFILE%/.groovy/init.bat" call "%USERPROFILE%/.groovy/init.bat"
-
-@rem Setting a classpath using the -cp or -classpath option means not to use
-@rem the global classpath. Groovy behaves then the same as the java
-@rem interpreter
-
-if "x" == "x%CLASSPATH%" goto after_classpath
-set CP=%CP%;%CLASSPATH%
-:after_classpath
-
-set STARTER_MAIN_CLASS=org.codehaus.groovy.grails.cli.support.GrailsStarter
-set STARTER_CONF=%GRAILS_HOME%\conf\groovy-starter.conf
-
-set JAVA_EXE=%JAVA_HOME%\bin\java.exe
-set TOOLS_JAR=%JAVA_HOME%\lib\tools.jar
-
-if "%JAVA_OPTS%" == "" set JAVA_OPTS=-Xmx512m -XX:MaxPermSize=96m
-set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name="%PROGNAME%"
-set JAVA_OPTS=%JAVA_OPTS% -Dgrails.home="%GRAILS_HOME%"
-set JAVA_OPTS=%JAVA_OPTS% -Dgrails.version="1.4.0.BUILD-SNAPSHOT"
-set JAVA_OPTS=%JAVA_OPTS% -Dbase.dir="."
-set JAVA_OPTS=%JAVA_OPTS% -Dtools.jar="%TOOLS_JAR%"
-set JAVA_OPTS=%JAVA_OPTS% -Dgroovy.starter.conf="%STARTER_CONF%"
-
-if exist "%USERPROFILE%/.groovy/postinit.bat" call "%USERPROFILE%/.groovy/postinit.bat"
-
-@rem Execute Groovy
-CALL "%JAVA_EXE%" %JAVA_OPTS% %GRAILS_OPTIONS% -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" "%CMD_LINE_ARGS%"
-:end
-@rem End local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" endlocal
-
-@rem Optional pause the batch file
-if "%GROOVY_BATCH_PAUSE%" == "on" pause
-
View
36 build.gradle
@@ -1,3 +1,5 @@
+import org.apache.tools.ant.filters.ReplaceTokens
+
buildscript {
repositories {
mavenCentral()
@@ -13,6 +15,10 @@ apply plugin: 'idea'
grailsVersion = '1.4.0.BUILD-SNAPSHOT'
antVersion = "1.7.1"
springVersion = "3.0.3.RELEASE"
+ivyVersion = "2.2.0"
+gantVersion = "1.9.4-SNAPSHOT"
+groovyVersion = "1.8.0-rc-1"
+
archivesBaseName = 'grails'
version = grailsVersion
@@ -58,7 +64,7 @@ subprojects { project ->
if(System.getProperty('groovy.jar')) {
groovy files(System.getProperty('groovy.jar'))
} else {
- groovy "org.codehaus.groovy:groovy-all:1.8.0-rc-1"
+ groovy "org.codehaus.groovy:groovy-all:${groovyVersion}"
}
// Jars in lib
@@ -172,4 +178,32 @@ task clean << {
task install(dependsOn:[populateDependencies])
+
+install.doLast {
+ copy {
+ from('src/resources/tests')
+ into('lib')
+ filter(ReplaceTokens, tokens: ['grails.version': grailsVersion])
+ }
+
+ copy {
+ from("src/resources/bash")
+ filter(ReplaceTokens, tokens: ['grails.version': grailsVersion])
+ filter(ReplaceTokens, tokens: ['groovy.version': groovyVersion])
+ fileMode = 0755
+ into "bin"
+
+ }
+ copy {
+ from("src/resources/conf")
+ into "conf"
+ filter(ReplaceTokens, tokens: ['grails.version': grailsVersion])
+ filter(ReplaceTokens, tokens: ['groovy.version': groovyVersion])
+ filter(ReplaceTokens, tokens: ['ant.version': antVersion])
+ filter(ReplaceTokens, tokens: ['gant.version': gantVersion])
+ filter(ReplaceTokens, tokens: ['ivy.version': ivyVersion])
+ }
+}
+
+
task assemble(dependsOn:zipDist)
View
24 gradle/assemble.gradle
@@ -78,7 +78,7 @@ binExecutables = ["cygrails", "grails", "grails-debug", "grails-debug.bat", "gra
distSpec = copySpec {
from(projectDir) {
into "grails-$grailsVersion"
- include 'lib/', 'gradle/', 'media/', 'samples/', 'scripts/', 'conf/', 'build.gradle', 'build.properties',
+ include 'lib/', 'gradle/', 'media/', 'samples/', 'scripts/', 'build.gradle', 'build.properties',
'LICENSE', 'INSTALL', "src/", "gradlew.bat","gradle.properties"
exclude 'ant/bin'
@@ -94,33 +94,37 @@ distSpec = copySpec {
include "gradlew"
fileMode = 0755
}
-/* from(docs.destinationDir) {
+ from(docs.destinationDir) {
into "grails-$grailsVersion/doc"
- }*/
+ }
exclude "**/CVS/**"
from(project.files(pluginsFromSvn.dir) { builtBy 'pluginsFromSvn' }) {
into "grails-$grailsVersion/plugins"
}
- from('bin') {
- into "grails-$grailsVersion/bin"
- include binExecutables
- fileMode = 0755
- }
from('src/resources/docs/README') {
into "grails-$grailsVersion"
filter(ReplaceTokens, tokens: ['grails.version': grailsVersion])
}
from("src/resources/bash") {
- include "startGrails.bat", "startGrails"
into "grails-$grailsVersion/bin"
filter(ReplaceTokens, tokens: ['grails.version': grailsVersion])
+ filter(ReplaceTokens, tokens: ['groovy.version': groovyVersion])
fileMode = 0755
}
+ from("src/resources/conf") {
+ into "grails-$grailsVersion/conf"
+ filter(ReplaceTokens, tokens: ['grails.version': grailsVersion])
+ filter(ReplaceTokens, tokens: ['groovy.version': groovyVersion])
+ filter(ReplaceTokens, tokens: ['ant.version': antVersion])
+ filter(ReplaceTokens, tokens: ['gant.version': gantVersion])
+ filter(ReplaceTokens, tokens: ['ivy.version': ivyVersion])
+
+ }
from(libs.destinationDir) {
into "grails-$grailsVersion/dist"
exclude "*.zip"
}
- from("src/grails/grails-macros.xml") {
+ from("grails-resources/src/grails/grails-macros.xml") {
into "grails-$grailsVersion/src/grails"
filter(ReplaceTokens, tokens: ['grails.version': grailsVersion])
}
View
2  grails-bootstrap/build.gradle
@@ -11,7 +11,7 @@ dependencies {
"org.apache.ant:ant-junit:${antVersion}",
"org.apache.ant:ant-nodeps:${antVersion}",
"org.apache.ant:ant-trax:${antVersion}",
- "org.apache.ivy:ivy:2.2.0",
+ "org.apache.ivy:ivy:${ivyVersion}",
'org.codehaus.gant:gant_groovy1.7:1.9.3'
runtime 'org.coconut.forkjoin:jsr166y:070108'
View
0  bin/cygrails → src/resources/bash/cygrails
File renamed without changes
View
0  bin/grails → src/resources/bash/grails
File renamed without changes
View
0  bin/grails-debug → src/resources/bash/grails-debug
File renamed without changes
View
0  bin/grails-debug.bat → src/resources/bash/grails-debug.bat
File renamed without changes
View
0  bin/grails.bat → src/resources/bash/grails.bat
File renamed without changes
View
2  src/resources/bash/startGrails
@@ -114,7 +114,7 @@ fi
if [ -z "$GROOVY_CONF" ]; then
GROOVY_CONF="$GRAILS_HOME/conf/groovy-starter.conf"
fi
-STARTER_CLASSPATH="$GRAILS_HOME/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-1.8.0-rc-1.jar:$GRAILS_HOME/dist/grails-bootstrap-@grails.version@.jar"
+STARTER_CLASSPATH="$GRAILS_HOME/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-@groovy.version@.jar:$GRAILS_HOME/dist/grails-bootstrap-@grails.version@.jar"
# Allow access to Cocoa classes on OS X
if $darwin; then
View
2  src/resources/bash/startGrails.bat
@@ -106,7 +106,7 @@ set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
-set STARTER_CLASSPATH=%GRAILS_HOME%\lib\org.codehaus.groovy\groovy-all\jars\groovy-all-1.8.0-rc-1.jar;%GRAILS_HOME%\dist\grails-bootstrap-@grails.version@.jar
+set STARTER_CLASSPATH=%GRAILS_HOME%\lib\org.codehaus.groovy\groovy-all\jars\groovy-all-@groovy.version@.jar;%GRAILS_HOME%\dist\grails-bootstrap-@grails.version@.jar
if exist "%USERPROFILE%/.groovy/init.bat" call "%USERPROFILE%/.groovy/init.bat"
View
8 conf/groovy-starter.conf → src/resources/conf/groovy-starter.conf
@@ -10,8 +10,8 @@
##
# Load required libraries
load ${grails.home}/dist/grails-bootstrap-${grails.version}.jar
- load ${grails.home}/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-1.8.0-rc-1.jar
- load ${grails.home}/lib/org.apache.ivy/ivy/jars/ivy-2.2.0.jar
- load ${grails.home}/lib/org.apache.ant/ant/jars/ant-1.7.1.jar
- load ${grails.home}/src/libs/gant_groovy1.8-1.9.4-SNAPSHOT.jar
+ load ${grails.home}/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-@groovy.version@.jar
+ load ${grails.home}/lib/org.apache.ivy/ivy/jars/ivy-@ivy.version@.jar
+ load ${grails.home}/lib/org.apache.ant/ant/jars/ant-@ant.version@.jar
+ load ${grails.home}/src/libs/gant_groovy1.8-@gant.version@.jar
load ${tools.jar}
View
0  conf/webdefault.xml → src/resources/conf/webdefault.xml
File renamed without changes
View
0  lib/junit-frames.xsl → src/resources/tests/junit-frames.xsl
File renamed without changes
View
0  lib/junit-noframes.xsl → src/resources/tests/junit-noframes.xsl
File renamed without changes
Please sign in to comment.
Something went wrong with that request. Please try again.