About the Execution of LoLa+red for CryptoMiner-COL-D20N100
Execution Chart
We display below the execution chart for this examination (boot time has been removed).
Trace from the execution
Formatting '/data/fkordon/mcc2023-input.r519-tall-167987244900141.qcow2', fmt=qcow2 size=4294967296 backing_file=/data/fkordon/mcc2023-input.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
Waiting for the VM to be ready (probing ssh)
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
=====================================================================
Generated by BenchKit 2-5348
Executing tool lolaxred
Input is CryptoMiner-COL-D20N100, examination is UpperBounds
Time confinement is 3600 seconds
Memory confinement is 16384 MBytes
Number of cores is 4
Run identifier is r519-tall-167987244900141
=====================================================================
--------------------
preparation of the directory to be used:
/home/mcc/execution
total 464K
-rw-r--r-- 1 mcc users 8.2K Mar 23 15:20 CTLCardinality.txt
-rw-r--r-- 1 mcc users 84K Mar 23 15:20 CTLCardinality.xml
-rw-r--r-- 1 mcc users 5.9K Mar 23 15:18 CTLFireability.txt
-rw-r--r-- 1 mcc users 51K Mar 23 15:18 CTLFireability.xml
-rw-r--r-- 1 mcc users 4.0K Mar 23 07:07 LTLCardinality.txt
-rw-r--r-- 1 mcc users 26K Mar 23 07:07 LTLCardinality.xml
-rw-r--r-- 1 mcc users 2.4K Mar 23 07:07 LTLFireability.txt
-rw-r--r-- 1 mcc users 17K Mar 23 07:07 LTLFireability.xml
-rw-r--r-- 1 mcc users 1 Mar 26 22:42 NewModel
-rw-r--r-- 1 mcc users 9.4K Mar 23 15:23 ReachabilityCardinality.txt
-rw-r--r-- 1 mcc users 86K Mar 23 15:23 ReachabilityCardinality.xml
-rw-r--r-- 1 mcc users 12K Mar 23 15:22 ReachabilityFireability.txt
-rw-r--r-- 1 mcc users 99K Mar 23 15:22 ReachabilityFireability.xml
-rw-r--r-- 1 mcc users 1.8K Mar 23 07:07 UpperBounds.txt
-rw-r--r-- 1 mcc users 3.8K Mar 23 07:07 UpperBounds.xml
-rw-r--r-- 1 mcc users 5 Mar 26 22:42 equiv_pt
-rw-r--r-- 1 mcc users 8 Mar 26 22:42 instance
-rw-r--r-- 1 mcc users 5 Mar 26 22:42 iscolored
-rw-r--r-- 1 mcc users 13K Mar 31 16:48 model.pnml
--------------------
content from stdout:
=== Data for post analysis generated by BenchKit (invocation template)
The expected result is a vector of positive values
NUM_VECTOR
here is the order used to build the result vector(from text file)
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-00
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-01
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-02
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-03
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-04
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-05
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-06
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-07
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-08
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-09
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-10
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-11
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-12
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-13
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-14
FORMULA_NAME CryptoMiner-COL-D20N100-UpperBounds-15
=== Now, execution of the tool begins
BK_START 1680839628937
bash -c /home/mcc/BenchKit/BenchKit_head.sh 2> STDERR ; echo ; echo -n "BK_STOP " ; date -u +%s%3N
Invoking MCC driver with
BK_TOOL=lolaxred
BK_EXAMINATION=UpperBounds
BK_BIN_PATH=/home/mcc/BenchKit/bin/
BK_TIME_CONFINEMENT=3600
BK_INPUT=CryptoMiner-COL-D20N100
Applying reductions before tool lola
Invoking reducer
Running Version 202304061127
[2023-04-07 03:53:50] [INFO ] Running its-tools with arguments : [-pnfolder, /home/mcc/execution, -examination, UpperBounds, -timeout, 360, -rebuildPNML]
[2023-04-07 03:53:50] [INFO ] Parsing pnml file : /home/mcc/execution/model.pnml
[2023-04-07 03:53:50] [INFO ] Detected file is not PT type :http://www.pnml.org/version-2009/grammar/symmetricnet
log4j:WARN No appenders could be found for logger (org.apache.axiom.locator.DefaultOMMetaFactoryLocator).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[2023-04-07 03:53:50] [WARNING] Using fallBack plugin, rng conformance not checked
[2023-04-07 03:53:50] [INFO ] Load time of PNML (colored model parsed with PNMLFW) : 376 ms
[2023-04-07 03:53:50] [INFO ] Imported 3 HL places and 5 HL transitions for a total of 63 PT places and 105.0 transition bindings in 15 ms.
Parsed 16 properties from file /home/mcc/execution/UpperBounds.xml in 6 ms.
[2023-04-07 03:53:50] [INFO ] Built PT skeleton of HLPN with 3 places and 5 transitions 14 arcs in 4 ms.
[2023-04-07 03:53:50] [INFO ] Skeletonized 16 HLPN properties in 0 ms.
Normalized transition count is 4 out of 5 initially.
// Phase 1: matrix 4 rows 3 cols
[2023-04-07 03:53:50] [INFO ] Computed 0 invariants in 3 ms
[2023-04-07 03:53:50] [INFO ] Flow matrix only has 4 transitions (discarded 1 similar events)
// Phase 1: matrix 4 rows 3 cols
[2023-04-07 03:53:50] [INFO ] Computed 0 invariants in 1 ms
[2023-04-07 03:53:50] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:50] [INFO ] [Real]Absence check using state equation in 7 ms returned unsat
[2023-04-07 03:53:50] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:50] [INFO ] [Real]Absence check using state equation in 3 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 6 ms returned sat
[2023-04-07 03:53:51] [INFO ] Solution in real domain found non-integer solution.
[2023-04-07 03:53:51] [INFO ] [Nat]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Nat]Absence check using state equation in 6 ms returned sat
[2023-04-07 03:53:51] [INFO ] State equation strengthened by 1 read => feed constraints.
[2023-04-07 03:53:51] [INFO ] [Nat]Added 1 Read/Feed constraints in 1 ms returned sat
[2023-04-07 03:53:51] [INFO ] Computed and/alt/rep : 1/1/1 causal constraints (skipped 0 transitions) in 0 ms.
[2023-04-07 03:53:51] [INFO ] Added : 0 causal constraints over 0 iterations in 5 ms. Result :sat
Minimization took 4 ms.
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 5 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 3 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 6 ms returned sat
[2023-04-07 03:53:51] [INFO ] Solution in real domain found non-integer solution.
[2023-04-07 03:53:51] [INFO ] [Nat]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Nat]Absence check using state equation in 3 ms returned sat
[2023-04-07 03:53:51] [INFO ] [Nat]Added 1 Read/Feed constraints in 0 ms returned sat
[2023-04-07 03:53:51] [INFO ] Computed and/alt/rep : 1/1/1 causal constraints (skipped 0 transitions) in 1 ms.
[2023-04-07 03:53:51] [INFO ] Added : 0 causal constraints over 0 iterations in 3 ms. Result :sat
Minimization took 1 ms.
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 3 ms returned sat
[2023-04-07 03:53:51] [INFO ] Solution in real domain found non-integer solution.
[2023-04-07 03:53:51] [INFO ] [Nat]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Nat]Absence check using state equation in 6 ms returned sat
[2023-04-07 03:53:51] [INFO ] [Nat]Added 1 Read/Feed constraints in 1 ms returned sat
[2023-04-07 03:53:51] [INFO ] Computed and/alt/rep : 1/1/1 causal constraints (skipped 0 transitions) in 1 ms.
[2023-04-07 03:53:51] [INFO ] Added : 0 causal constraints over 0 iterations in 4 ms. Result :sat
Minimization took 3 ms.
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 3 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 2 ms returned sat
[2023-04-07 03:53:51] [INFO ] Solution in real domain found non-integer solution.
[2023-04-07 03:53:51] [INFO ] [Nat]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Nat]Absence check using state equation in 3 ms returned sat
[2023-04-07 03:53:51] [INFO ] [Nat]Added 1 Read/Feed constraints in 1 ms returned sat
[2023-04-07 03:53:51] [INFO ] Computed and/alt/rep : 1/1/1 causal constraints (skipped 0 transitions) in 0 ms.
[2023-04-07 03:53:51] [INFO ] Added : 0 causal constraints over 0 iterations in 4 ms. Result :sat
Minimization took 3 ms.
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 3 ms returned sat
[2023-04-07 03:53:51] [INFO ] Solution in real domain found non-integer solution.
[2023-04-07 03:53:51] [INFO ] [Nat]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Nat]Absence check using state equation in 3 ms returned sat
[2023-04-07 03:53:51] [INFO ] [Nat]Added 1 Read/Feed constraints in 0 ms returned sat
[2023-04-07 03:53:51] [INFO ] Computed and/alt/rep : 1/1/1 causal constraints (skipped 0 transitions) in 2 ms.
[2023-04-07 03:53:51] [INFO ] Added : 0 causal constraints over 0 iterations in 5 ms. Result :sat
Minimization took 3 ms.
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 3 ms returned sat
[2023-04-07 03:53:51] [INFO ] Solution in real domain found non-integer solution.
[2023-04-07 03:53:51] [INFO ] [Nat]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Nat]Absence check using state equation in 2 ms returned sat
[2023-04-07 03:53:51] [INFO ] [Nat]Added 1 Read/Feed constraints in 0 ms returned sat
[2023-04-07 03:53:51] [INFO ] Computed and/alt/rep : 1/1/1 causal constraints (skipped 0 transitions) in 1 ms.
[2023-04-07 03:53:51] [INFO ] Added : 0 causal constraints over 0 iterations in 3 ms. Result :sat
Minimization took 1 ms.
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using state equation in 2 ms returned unsat
Current structural bounds on expressions (after SMT) : [1, 100, -1, 100, 1, 100, -1, 100, -1, 1, -1, 1, -1, -1, 1, 100]
FORMULA CryptoMiner-COL-D20N100-UpperBounds-15 100 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-14 1 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-11 1 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-09 1 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-07 100 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-05 100 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-04 1 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-03 100 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-01 100 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
FORMULA CryptoMiner-COL-D20N100-UpperBounds-00 1 TECHNIQUES TOPOLOGICAL SAT_SMT CPN_APPROX INITIAL_STATE
Arc [0:1*[(MOD (ADD $x 1) 21)]] contains successor/predecessor on variables of sort CD
[2023-04-07 03:53:51] [INFO ] Unfolded HLPN to a Petri net with 63 places and 63 transitions 187 arcs in 11 ms.
[2023-04-07 03:53:51] [INFO ] Unfolded 6 HLPN properties in 0 ms.
Incomplete random walk after 10064 steps, including 2 resets, run finished after 8 ms. (steps per millisecond=1258 ) properties (out of 6) seen :0
Incomplete Best-First random walk after 10001 steps, including 23 resets, run finished after 26 ms. (steps per millisecond=384 ) properties (out of 6) seen :600
Incomplete Best-First random walk after 10001 steps, including 23 resets, run finished after 12 ms. (steps per millisecond=833 ) properties (out of 6) seen :600
Incomplete Best-First random walk after 10001 steps, including 23 resets, run finished after 11 ms. (steps per millisecond=909 ) properties (out of 6) seen :600
Incomplete Best-First random walk after 10001 steps, including 23 resets, run finished after 11 ms. (steps per millisecond=909 ) properties (out of 6) seen :600
Incomplete Best-First random walk after 10001 steps, including 23 resets, run finished after 10 ms. (steps per millisecond=1000 ) properties (out of 6) seen :600
Incomplete Best-First random walk after 10001 steps, including 23 resets, run finished after 10 ms. (steps per millisecond=1000 ) properties (out of 6) seen :600
// Phase 1: matrix 63 rows 63 cols
[2023-04-07 03:53:51] [INFO ] Computed 1 invariants in 5 ms
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using 1 positive place invariants in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using 1 positive place invariants in 1 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using 1 positive place invariants in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using 1 positive place invariants in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using 1 positive place invariants in 2 ms returned unsat
[2023-04-07 03:53:51] [INFO ] [Real]Absence check using 1 positive place invariants in 3 ms returned unsat
Current structural bounds on expressions (after SMT) : [100, 100, 100, 100, 100, 100] Max seen :[100, 100, 100, 100, 100, 100]
FORMULA CryptoMiner-COL-D20N100-UpperBounds-13 100 TECHNIQUES TOPOLOGICAL SAT_SMT RANDOM_WALK
FORMULA CryptoMiner-COL-D20N100-UpperBounds-12 100 TECHNIQUES TOPOLOGICAL SAT_SMT RANDOM_WALK
FORMULA CryptoMiner-COL-D20N100-UpperBounds-10 100 TECHNIQUES TOPOLOGICAL SAT_SMT RANDOM_WALK
FORMULA CryptoMiner-COL-D20N100-UpperBounds-08 100 TECHNIQUES TOPOLOGICAL SAT_SMT RANDOM_WALK
FORMULA CryptoMiner-COL-D20N100-UpperBounds-06 100 TECHNIQUES TOPOLOGICAL SAT_SMT RANDOM_WALK
FORMULA CryptoMiner-COL-D20N100-UpperBounds-02 100 TECHNIQUES TOPOLOGICAL SAT_SMT RANDOM_WALK
All properties solved without resorting to model-checking.
Total runtime 1481 ms.
ITS solved all properties within timeout
BK_STOP 1680839632646
--------------------
content from stderr:
+ ulimit -s 65536
+ [[ -z '' ]]
+ export LTSMIN_MEM_SIZE=8589934592
+ LTSMIN_MEM_SIZE=8589934592
+ export PYTHONPATH=/home/mcc/BenchKit/itstools/pylibs
+ PYTHONPATH=/home/mcc/BenchKit/itstools/pylibs
+ export LD_LIBRARY_PATH=/home/mcc/BenchKit/itstools/pylibs:
+ LD_LIBRARY_PATH=/home/mcc/BenchKit/itstools/pylibs:
++ sed s/.jar//
++ perl -pe 's/.*\.//g'
++ ls /home/mcc/BenchKit/bin//../reducer/bin//../../itstools//itstools/plugins/fr.lip6.move.gal.application.pnmcc_1.0.0.202304061127.jar
+ VERSION=202304061127
+ echo 'Running Version 202304061127'
+ /home/mcc/BenchKit/bin//../reducer/bin//../../itstools//itstools/its-tools -pnfolder /home/mcc/execution -examination UpperBounds -timeout 360 -rebuildPNML
Sequence of Actions to be Executed by the VM
This is useful if one wants to reexecute the tool in the VM from the submitted image disk.
set -x
# this is for BenchKit: configuration of major elements for the test
export BK_INPUT="CryptoMiner-COL-D20N100"
export BK_EXAMINATION="UpperBounds"
export BK_TOOL="lolaxred"
export BK_RESULT_DIR="/tmp/BK_RESULTS/OUTPUTS"
export BK_TIME_CONFINEMENT="3600"
export BK_MEMORY_CONFINEMENT="16384"
export BK_BIN_PATH="/home/mcc/BenchKit/bin/"
# this is specific to your benchmark or test
export BIN_DIR="$HOME/BenchKit/bin"
# remove the execution directoty if it exists (to avoid increse of .vmdk images)
if [ -d execution ] ; then
rm -rf execution
fi
# this is for BenchKit: explicit launching of the test
echo "====================================================================="
echo " Generated by BenchKit 2-5348"
echo " Executing tool lolaxred"
echo " Input is CryptoMiner-COL-D20N100, examination is UpperBounds"
echo " Time confinement is $BK_TIME_CONFINEMENT seconds"
echo " Memory confinement is 16384 MBytes"
echo " Number of cores is 4"
echo " Run identifier is r519-tall-167987244900141"
echo "====================================================================="
echo
echo "--------------------"
echo "preparation of the directory to be used:"
tar xzf /home/mcc/BenchKit/INPUTS/CryptoMiner-COL-D20N100.tgz
mv CryptoMiner-COL-D20N100 execution
cd execution
if [ "UpperBounds" = "ReachabilityDeadlock" ] || [ "UpperBounds" = "UpperBounds" ] || [ "UpperBounds" = "QuasiLiveness" ] || [ "UpperBounds" = "StableMarking" ] || [ "UpperBounds" = "Liveness" ] || [ "UpperBounds" = "OneSafe" ] || [ "UpperBounds" = "StateSpace" ]; then
rm -f GenericPropertiesVerdict.xml
fi
pwd
ls -lh
echo
echo "--------------------"
echo "content from stdout:"
echo
echo "=== Data for post analysis generated by BenchKit (invocation template)"
echo
if [ "UpperBounds" = "UpperBounds" ] ; then
echo "The expected result is a vector of positive values"
echo NUM_VECTOR
elif [ "UpperBounds" != "StateSpace" ] ; then
echo "The expected result is a vector of booleans"
echo BOOL_VECTOR
else
echo "no data necessary for post analysis"
fi
echo
if [ -f "UpperBounds.txt" ] ; then
echo "here is the order used to build the result vector(from text file)"
for x in $(grep Property UpperBounds.txt | cut -d ' ' -f 2 | sort -u) ; do
echo "FORMULA_NAME $x"
done
elif [ -f "UpperBounds.xml" ] ; then # for cunf (txt files deleted;-)
echo echo "here is the order used to build the result vector(from xml file)"
for x in $(grep '
echo "FORMULA_NAME $x"
done
elif [ "UpperBounds" = "ReachabilityDeadlock" ] || [ "UpperBounds" = "QuasiLiveness" ] || [ "UpperBounds" = "StableMarking" ] || [ "UpperBounds" = "Liveness" ] || [ "UpperBounds" = "OneSafe" ] ; then
echo "FORMULA_NAME UpperBounds"
fi
echo
echo "=== Now, execution of the tool begins"
echo
echo -n "BK_START "
date -u +%s%3N
echo
timeout -s 9 $BK_TIME_CONFINEMENT bash -c "/home/mcc/BenchKit/BenchKit_head.sh 2> STDERR ; echo ; echo -n \"BK_STOP \" ; date -u +%s%3N"
if [ $? -eq 137 ] ; then
echo
echo "BK_TIME_CONFINEMENT_REACHED"
fi
echo
echo "--------------------"
echo "content from stderr:"
echo
cat STDERR ;