BuildID: 2921
Status: OK
Image: melezhik/sparrow:debian
Worker status: OK
---
Date: 08.02.2023 @ 18:47
Time elapsed: 453 sec
---
SCM:
https://github.com/libxml-raku/LibXML-raku
Git sha: 1630576
Git comment: adjust max error test for libxml2 bleed
image:
- melezhik/sparrow:debian
# - melezhik/sparrow:ubuntu
# - melezhik/sparrow:archlinux
tasks:
-
name: main
default: true
language: Raku
code: |
use Text::Table::Simple;
my @columns = ("Rakudo Version", "Status", "Time", "Linux Dist");
my @rows;
my $fail = False;
for config()<tasks><multi-versions><state><list><> -> $i {
@rows.push: [ $i<version>, $i<status>, $i<time>, os() ];
$fail = True unless $i<status> eq "OK";
}
my @table = lol2table(@columns,@rows);
.say for @table;
die "some tests failed" if $fail == True;
depends:
-
name: multi-versions
-
name: multi-versions
language: Raku
config:
list:
# - 2022.06
- 2022.07
code: |
my @state;
for config()<list><> -> $v {
my $s = %( version => $v );
if "{cache_root_dir()}/{$v}_ok".IO ~~ :e {
$s<status> = "OK";
} else {
$s<status> = "FAIL";
}
if "{cache_root_dir()}/{$v}_time".IO ~~ :e {
$s<time> = "{cache_root_dir()}/{$v}_time".IO.slurp();
} else {
$s<time> = "NA";
}
@state.push: $s;
}
update_state %( list => @state );
init: |
for config()<list><> -> $v {
run_task("test", %( version => $v ));
}
subtasks:
-
name: test
language: Bash
init: |
ignore_error
code: |
set -e
echo "Linux version: $os"
curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
-o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
echo "activating rakudo version $version ..."
eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)" > /dev/null
which raku
which zef
raku --version
zef --version
cd source/
zef install . --deps-only --test-depends --build-depends --/test --to=home
zef build .
/usr/bin/time -o "${cache_root_dir}/${version}_time" \
zef test . --verbose && touch "${cache_root_dir}/${version}_ok"
depends:
-
name: install-deps
-
name: install-deps
language: Bash
code: |
if test $os = "debian"; then
sudo apt-get install -y libxml2-dev libxslt-dev time
elif test $os = "ubuntu"; then
sudo apt-get install -y libxml2-dev libxslt-dev time
elif test $os = "arch"; then
sudo pacman -S --needed --noconfirm -q libxml2 libxslt time
fi
zef install --/test Text::Table::Simple
[35m18:41:27[0m :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
[1;36m[task run: task.bash - tasks/install-deps][0m
[1;36m[dump code: task.bash][0m
[1] if test $os = "debian"; then
[2] sudo apt-get install -y libxml2-dev libxslt-dev time
[3] elif test $os = "ubuntu"; then
[4] sudo apt-get install -y libxml2-dev libxslt-dev time
[5] elif test $os = "arch"; then
[6] sudo pacman -S --needed --noconfirm -q libxml2 libxslt time
[7] fi
[8] zef install --/test Text::Table::Simple
[9]
[1;36m[task stdout][0m
[35m18:41:30[0m :: Reading package lists...
[35m18:41:30[0m :: Building dependency tree...
[35m18:41:30[0m :: Reading state information...
[35m18:41:30[0m :: The following additional packages will be installed:
[35m18:41:30[0m :: icu-devtools libicu-dev libicu67 libxml2 libxslt1.1
[35m18:41:30[0m :: Suggested packages:
[35m18:41:30[0m :: icu-doc pkg-config
[35m18:41:30[0m :: The following NEW packages will be installed:
[35m18:41:30[0m :: icu-devtools libicu-dev libicu67 libxml2 libxml2-dev libxslt1-dev libxslt1.1
[35m18:41:30[0m :: time
[35m18:41:30[0m :: 0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
[35m18:41:30[0m :: Need to get 20.5 MB of archives.
[35m18:41:30[0m :: After this operation, 88.0 MB of additional disk space will be used.
[35m18:41:30[0m :: Get:1 http://deb.debian.org/debian bullseye/main amd64 libicu67 amd64 67.1-7 [8622 kB]
[35m18:41:31[0m :: Get:2 http://deb.debian.org/debian bullseye/main amd64 icu-devtools amd64 67.1-7 [201 kB]
[35m18:41:31[0m :: Get:3 http://deb.debian.org/debian bullseye/main amd64 libicu-dev amd64 67.1-7 [9597 kB]
[35m18:41:31[0m :: Get:4 http://deb.debian.org/debian-security bullseye-security/main amd64 libxml2 amd64 2.9.10+dfsg-6.7+deb11u3 [693 kB]
[35m18:41:31[0m :: Get:5 http://deb.debian.org/debian-security bullseye-security/main amd64 libxml2-dev amd64 2.9.10+dfsg-6.7+deb11u3 [790 kB]
[35m18:41:31[0m :: Get:6 http://deb.debian.org/debian bullseye/main amd64 libxslt1.1 amd64 1.1.34-4+deb11u1 [240 kB]
[35m18:41:31[0m :: Get:7 http://deb.debian.org/debian bullseye/main amd64 libxslt1-dev amd64 1.1.34-4+deb11u1 [329 kB]
[35m18:41:31[0m :: Get:8 http://deb.debian.org/debian bullseye/main amd64 time amd64 1.9-0.1 [50.8 kB]
[35m18:41:31[0m :: Fetched 20.5 MB in 0s (116 MB/s)
[35m18:41:31[0m :: Selecting previously unselected package libicu67:amd64.
[35m18:41:31[0m :: (Reading database ...
[35m18:41:31[0m :: (Reading database ... 5%
[35m18:41:31[0m :: (Reading database ... 10%
[35m18:41:31[0m :: (Reading database ... 15%
[35m18:41:31[0m :: (Reading database ... 20%
[35m18:41:31[0m :: (Reading database ... 25%
[35m18:41:31[0m :: (Reading database ... 30%
[35m18:41:31[0m :: (Reading database ... 35%
[35m18:41:31[0m :: (Reading database ... 40%
[35m18:41:31[0m :: (Reading database ... 45%
[35m18:41:31[0m :: (Reading database ... 50%
[35m18:41:31[0m :: (Reading database ... 55%
[35m18:41:31[0m :: (Reading database ... 60%
[35m18:41:31[0m :: (Reading database ... 65%
[35m18:41:31[0m :: (Reading database ... 70%
[35m18:41:31[0m :: (Reading database ... 75%
[35m18:41:31[0m :: (Reading database ... 80%
[35m18:41:31[0m :: (Reading database ... 85%
[35m18:41:31[0m :: (Reading database ... 90%
[35m18:41:31[0m :: (Reading database ... 95%
[35m18:41:31[0m :: (Reading database ... 100%
[35m18:41:31[0m :: (Reading database ... 19016 files and directories currently installed.)
[35m18:41:31[0m :: Preparing to unpack .../0-libicu67_67.1-7_amd64.deb ...
[35m18:41:31[0m :: Unpacking libicu67:amd64 (67.1-7) ...
[35m18:41:32[0m :: Selecting previously unselected package icu-devtools.
[35m18:41:32[0m :: Preparing to unpack .../1-icu-devtools_67.1-7_amd64.deb ...
[35m18:41:32[0m :: Unpacking icu-devtools (67.1-7) ...
[35m18:41:32[0m :: Selecting previously unselected package libicu-dev:amd64.
[35m18:41:32[0m :: Preparing to unpack .../2-libicu-dev_67.1-7_amd64.deb ...
[35m18:41:32[0m :: Unpacking libicu-dev:amd64 (67.1-7) ...
[35m18:41:33[0m :: Selecting previously unselected package libxml2:amd64.
[35m18:41:33[0m :: Preparing to unpack .../3-libxml2_2.9.10+dfsg-6.7+deb11u3_amd64.deb ...
[35m18:41:33[0m :: Unpacking libxml2:amd64 (2.9.10+dfsg-6.7+deb11u3) ...
[35m18:41:33[0m :: Selecting previously unselected package libxml2-dev:amd64.
[35m18:41:33[0m :: Preparing to unpack .../4-libxml2-dev_2.9.10+dfsg-6.7+deb11u3_amd64.deb ...
[35m18:41:33[0m :: Unpacking libxml2-dev:amd64 (2.9.10+dfsg-6.7+deb11u3) ...
[35m18:41:33[0m :: Selecting previously unselected package libxslt1.1:amd64.
[35m18:41:33[0m :: Preparing to unpack .../5-libxslt1.1_1.1.34-4+deb11u1_amd64.deb ...
[35m18:41:33[0m :: Unpacking libxslt1.1:amd64 (1.1.34-4+deb11u1) ...
[35m18:41:33[0m :: Selecting previously unselected package libxslt1-dev:amd64.
[35m18:41:33[0m :: Preparing to unpack .../6-libxslt1-dev_1.1.34-4+deb11u1_amd64.deb ...
[35m18:41:33[0m :: Unpacking libxslt1-dev:amd64 (1.1.34-4+deb11u1) ...
[35m18:41:33[0m :: Selecting previously unselected package time.
[35m18:41:33[0m :: Preparing to unpack .../7-time_1.9-0.1_amd64.deb ...
[35m18:41:33[0m :: Unpacking time (1.9-0.1) ...
[35m18:41:33[0m :: Setting up time (1.9-0.1) ...
[35m18:41:33[0m :: Setting up libicu67:amd64 (67.1-7) ...
[35m18:41:33[0m :: Setting up icu-devtools (67.1-7) ...
[35m18:41:33[0m :: Setting up libicu-dev:amd64 (67.1-7) ...
[35m18:41:33[0m :: Setting up libxml2:amd64 (2.9.10+dfsg-6.7+deb11u3) ...
[35m18:41:33[0m :: Setting up libxml2-dev:amd64 (2.9.10+dfsg-6.7+deb11u3) ...
[35m18:41:33[0m :: Setting up libxslt1.1:amd64 (1.1.34-4+deb11u1) ...
[35m18:41:33[0m :: Setting up libxslt1-dev:amd64 (1.1.34-4+deb11u1) ...
[35m18:41:33[0m :: Processing triggers for libc-bin (2.31-13+deb11u5) ...
[35m18:41:35[0m :: ===> Searching for: Text::Table::Simple
[35m18:41:44[0m :: ===> Installing: Text::Table::Simple:ver<0.1.0>:auth<github:ugexe>
[1;36m[task stderr][0m
[35m18:41:44[0m :: debconf: delaying package configuration, since apt-utils is not installed
[35m18:41:44[0m :: ===> Updating fez mirror: https://360.zef.pm/
[35m18:41:44[0m :: ===> Updated fez mirror: https://360.zef.pm/
[35m18:41:44[0m :: ===> Updating rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
[35m18:41:44[0m :: ===> Updated rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
[35m18:41:12[0m :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
[1;36m[task run: task.bash - tasks/multi-versions][0m
[1;36m[dump code: task.bash][0m
[1] set -e
[2]
[3] echo "Linux version: $os"
[4]
[5] curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
[6] -o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[7] tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[8] echo "activating rakudo version $version ..."
[9] eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)" > /dev/null
[10]
[11] which raku
[12] which zef
[13]
[14] raku --version
[15] zef --version
[16]
[17] cd source/
[18]
[19] zef install . --deps-only --test-depends --build-depends --/test --to=home
[20] zef build .
[21]
[22] /usr/bin/time -o "${cache_root_dir}/${version}_time" \
[23] zef test . --verbose && touch "${cache_root_dir}/${version}_ok"
[24]
[1;36m[task stdout][0m
[35m18:41:49[0m :: Linux version: debian
[35m18:41:50[0m :: activating rakudo version 2022.07 ...
[35m18:41:50[0m :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.07-01-linux-x86_64-gcc/bin/raku
[35m18:41:50[0m :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.07-01-linux-x86_64-gcc/share/perl6/site/bin/zef
[35m18:41:50[0m :: Welcome to Rakudo™ v2022.07.
[35m18:41:50[0m :: Implementing the Raku® Programming Language v6.d.
[35m18:41:50[0m :: Built on MoarVM version 2022.07.
[35m18:42:10[0m :: v0.14.5
[35m18:42:26[0m :: ===> Searching for missing dependencies: File::Temp, Method::Also, W3C::DOM:ver<0.0.2+>, XML, OO::Monitors, App::Prove6, LibraryMake
[35m18:43:15[0m :: ===> Searching for missing dependencies: Shell::Command, Getopt::Long:ver<0.3.0+>, Path::Finder:ver<0.4.4+>, Pod::Usage, TAP:ver<0.3.4+>, sigpipe
[35m18:43:15[0m :: ===> Searching for missing dependencies: File::Which, File::Find
[35m18:43:15[0m :: ===> Installing: W3C::DOM:ver<0.0.3>:auth<zef:dwarring>
[35m18:43:15[0m :: ===> Installing: XML:ver<0.3.3>:auth<zef:raku-community-modules>
[35m18:43:15[0m :: ===> Installing: File::Which:ver<1.0.4>
[35m18:43:15[0m :: ===> Installing: File::Find:ver<0.1.1>
[35m18:43:15[0m :: ===> Installing: Shell::Command
[35m18:43:15[0m :: ===> Installing: LibraryMake:ver<1.0.0>
[35m18:43:15[0m :: ===> Installing: OO::Monitors:ver<1.1.1>
[35m18:43:15[0m :: ===> Installing: Method::Also:ver<0.0.8>:auth<zef:lizmat>
[35m18:43:15[0m :: ===> Installing: Getopt::Long:ver<0.4.1>
[35m18:43:15[0m :: ===> Installing: File::Temp:ver<0.0.10>:auth<zef:rbt>
[35m18:43:15[0m :: ===> Installing: Path::Finder:ver<0.4.5>
[35m18:43:15[0m :: ===> Installing: Pod::Usage:ver<0.0.1>:auth<zef:leont>
[35m18:43:15[0m :: ===> Installing: TAP:ver<0.3.14>
[35m18:43:15[0m :: ===> Installing: sigpipe:ver<0.0.3>:auth<zef:leont>
[35m18:43:15[0m :: ===> Installing: App::Prove6:ver<0.0.17>:auth<cpan:LEONT>
[35m18:43:15[0m ::
[35m18:43:15[0m :: 1 bin/ script [prove6] installed to:
[35m18:43:15[0m :: /home/worker/.raku/bin
[35m18:43:17[0m :: ===> Building: LibXML:ver<0.9.8>:auth<zef:dwarring>:api<0.9.0>
[35m18:43:20[0m :: ===> Building [OK] for LibXML:ver<0.9.8>:auth<zef:dwarring>:api<0.9.0>
[35m18:43:21[0m :: ===> Testing: LibXML:ver<0.9.8>:auth<zef:dwarring>:api<0.9.0>
[35m18:47:16[0m :: [LibXML] t/000sanity.t ................... ok
[35m18:47:16[0m :: [LibXML] t/00ast.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/00config.t .................... ok
[35m18:47:16[0m :: [LibXML] t/00dict.t ...................... ok
[35m18:47:16[0m :: [LibXML] t/00dom-w3c.t ................... ok
[35m18:47:16[0m :: [LibXML] t/00dom.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/00dtd-decls.t ................. ok
[35m18:47:16[0m :: [LibXML] t/00dtd.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/00errors.t .................... ok
[35m18:47:16[0m :: [LibXML] t/00hash-object.t ............... ok
[35m18:47:16[0m :: [LibXML] t/00hash-type.t ................. ok
[35m18:47:16[0m :: [LibXML] t/00input-callback.t ............ ok
[35m18:47:16[0m :: [LibXML] t/00native.t .................... ok
[35m18:47:16[0m :: [LibXML] t/00query-selectors.t ........... ok
[35m18:47:16[0m :: [LibXML] t/00sax-coverage.t .............. ok
[35m18:47:16[0m :: [LibXML] t/00sax.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/00subclass.t .................. ok
[35m18:47:16[0m :: [LibXML] t/00threads.t ................... ok
[35m18:47:16[0m :: [LibXML] t/00xpath-object.t .............. ok
[35m18:47:16[0m :: [LibXML] t/01basic.t ..................... ok
[35m18:47:16[0m :: [LibXML] t/02parse.t ..................... ok
[35m18:47:16[0m :: [LibXML] t/03doc.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/04node.t ...................... ok
[35m18:47:16[0m :: [LibXML] t/05text.t ...................... ok
[35m18:47:16[0m :: [LibXML] t/06elements.t .................. ok
[35m18:47:16[0m :: [LibXML] t/07dtd.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/08findnodes.t ................. ok
[35m18:47:16[0m :: [LibXML] t/09xpath.t ..................... ok
[35m18:47:16[0m :: [LibXML] t/10ns.t ........................ ok
[35m18:47:16[0m :: [LibXML] t/12html.t ...................... ok
[35m18:47:16[0m :: [LibXML] t/13dtd.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/14sax.t ....................... ok
[35m18:47:16[0m :: [LibXML] t/15nodelist.t .................. ok
[35m18:47:16[0m :: [LibXML] t/16docnodes.t .................. ok
[35m18:47:16[0m :: [LibXML] t/17callbacks.t ................. ok
[35m18:47:16[0m :: [LibXML] t/18docfree.t ................... ok
[35m18:47:16[0m :: [LibXML] t/19encoding.t .................. ok
[35m18:47:16[0m :: [LibXML] t/20extras.t .................... ok
[35m18:47:16[0m :: [LibXML] t/21catalog.t ................... ok
[35m18:47:16[0m :: [LibXML] t/23rawfunctions.t .............. ok
[35m18:47:16[0m :: [LibXML] t/24c14n.t ...................... ok
[35m18:47:16[0m :: [LibXML] t/25relaxng.t ................... ok
[35m18:47:16[0m :: [LibXML] t/26schema.t .................... ok
[35m18:47:16[0m :: [LibXML] t/27input_callbacks_simple.t .... ok
[35m18:47:16[0m :: [LibXML] t/28input_callbacks_multiple.t .. ok
[35m18:47:16[0m :: [LibXML] t/29id.t ........................ ok
[35m18:47:16[0m :: [LibXML] t/30keep_blanks.t ............... ok
[35m18:47:16[0m :: [LibXML] t/30xpathcontext.t .............. ok
[35m18:47:16[0m :: [LibXML] t/31xpc_functions.t ............. ok
[35m18:47:16[0m :: [LibXML] t/32xpc_variables.t ............. ok
[35m18:47:16[0m :: [LibXML] t/35huge_mode.t ................. ok
[35m18:47:16[0m :: [LibXML] t/40reader.t .................... ok
[35m18:47:16[0m :: [LibXML] t/40reader_mem_error.t .......... ok
[35m18:47:16[0m :: [LibXML] t/41xinclude.t .................. ok
[35m18:47:16[0m :: [LibXML] t/42common.t .................... ok
[35m18:47:16[0m :: [LibXML] t/43options.t ................... ok
[35m18:47:16[0m :: [LibXML] t/44extent.t .................... ok
[35m18:47:16[0m :: [LibXML] t/45regex.t ..................... ok
[35m18:47:16[0m :: [LibXML] t/46err_column.t ................ ok
[35m18:47:16[0m :: [LibXML] t/47load_xml_callbacks.t ........ ok
[35m18:47:16[0m :: [LibXML] t/48importing_nodes_IDs.t ....... ok
[35m18:47:16[0m :: [LibXML] t/49global_extent.t ............. ok
[35m18:47:16[0m :: [LibXML] t/60error_prev_chain.t .......... ok
[35m18:47:16[0m :: [LibXML] t/61error.t ..................... ok
[35m18:47:16[0m :: [LibXML] t/90threads.t ................... ok
[35m18:47:16[0m :: [LibXML] t/91unique_key.t ................ ok
[35m18:47:16[0m :: [LibXML] t/99doc-examples.t .............. ok
[35m18:47:16[0m :: [LibXML] t/issue#025.t ................... ok
[35m18:47:16[0m :: [LibXML] All tests successful.
[35m18:47:16[0m :: [LibXML]
[35m18:47:16[0m :: [LibXML] Test Summary Report
[35m18:47:16[0m :: [LibXML] -------------------
[35m18:47:16[0m :: [LibXML] Files=68, Tests=734, 234 wallclock secs
[35m18:47:16[0m :: [LibXML] Result: PASS
[35m18:47:16[0m :: ===> Testing [OK] for LibXML:ver<0.9.8>:auth<zef:dwarring>:api<0.9.0>
[1;36m[task run: task.raku - tasks/multi-versions][0m
[1;36m[dump code: task.raku][0m
[1] my @state;
[2] for config()<list><> -> $v {
[3] my $s = %( version => $v );
[4] if "{cache_root_dir()}/{$v}_ok".IO ~~ :e {
[5] $s<status> = "OK";
[6] } else {
[7] $s<status> = "FAIL";
[8] }
[9] if "{cache_root_dir()}/{$v}_time".IO ~~ :e {
[10] $s<time> = "{cache_root_dir()}/{$v}_time".IO.slurp();
[11] } else {
[12] $s<time> = "NA";
[13] }
[14] @state.push: $s;
[15] }
[16] update_state %( list => @state );
[17]
[1;36m[task stdout][0m
[35m18:40:39[0m :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
source directory does not yet exist, download source archive from storage
[35m18:40:42[0m :: [repository] - installing pack-unpack, version 0.000001
[1;36m[task run: task.bash - unpack source archive][0m
[1;36m[dump code: task.bash][0m
[1] set -e
[2]
[3] file=$(config file)
[4] dir=$(config dir)
[5]
[6] echo "tar -xzf $file "
[7]
[8] tar -xzf $file
[9]
[10] if test $dir; then
[11] ls -l $dir
[12] fi
[13]
[14]
[1;36m[task stdout][0m
[35m18:40:44[0m :: tar -xzf source.tar.gz
[1;36m[task run: task.raku - tasks/main][0m
[1;36m[dump code: task.raku][0m
[1] use Text::Table::Simple;
[2] my @columns = ("Rakudo Version", "Status", "Time", "Linux Dist");
[3] my @rows;
[4] my $fail = False;
[5] for config()<tasks><multi-versions><state><list><> -> $i {
[6] @rows.push: [ $i<version>, $i<status>, $i<time>, os() ];
[7] $fail = True unless $i<status> eq "OK";
[8] }
[9] my @table = lol2table(@columns,@rows);
[10] .say for @table;
[11] die "some tests failed" if $fail == True;
[12]
[1;36m[task stdout][0m
[35m18:47:23[0m :: O----------------O--------O---------------------------------------------------------------------------------------O------------O
[35m18:47:23[0m :: | Rakudo Version | Status | Time | Linux Dist |
[35m18:47:23[0m :: O================O========O=======================================================================================O============O
[35m18:47:23[0m :: | 2022.07 | OK | 345.97user 22.83system 3:56.26elapsed 156%CPU (0avgtext+0avgdata 1738036maxresident)k | debian |
[35m18:47:23[0m :: | | | 0inputs+201848outputs (0major+8232112minor)pagefaults 0swaps | |
[35m18:47:23[0m :: --------------------------------------------------------------------------------------------------------------------------------